From 3c70f0a9c96f282b3b6e9c02a2d3ab1eaa861ee6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 15 Dec 2022 21:11:52 -0500 Subject: [PATCH 0001/1220] Run Prettier on YML files (#22345) --- .github/workflows/codeql.yml | 63 ++++++++++++++++++------------------ .rubocop.yml | 2 +- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 88ac2fb085..8534501d4e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,11 +1,11 @@ -name: "CodeQL" +name: 'CodeQL' on: push: - branches: [ "main" ] + branches: ['main'] pull_request: # The branches below must be a subset of the branches above - branches: [ "main" ] + branches: ['main'] schedule: - cron: '22 6 * * 1' @@ -21,43 +21,42 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'javascript', 'ruby' ] + language: ['javascript', 'ruby'] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - - name: Checkout repository - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v3 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. - # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - # ℹ️ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: '/language:${{matrix.language}}' diff --git a/.rubocop.yml b/.rubocop.yml index 67284fe34b..3c92234705 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -250,7 +250,7 @@ Metrics/ModuleLength: Metrics/ParameterLists: Max: 5 # RuboCop default 5 - CountKeywordArgs: true # RuboCop default true + CountKeywordArgs: true # RuboCop default true MaxOptionalParameters: 3 # RuboCop default 3 Exclude: - app/models/concerns/account_interactions.rb From 2889c686108e89a87317505f93b841f5a8a6649b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 16 Dec 2022 04:46:39 +0100 Subject: [PATCH 0002/1220] New Crowdin updates (#22182) * New translations activerecord.en.yml (Malayalam) * New translations devise.en.yml (Malayalam) * New translations doorkeeper.en.yml (Malayalam) * New translations en.json (Breton) * New translations simple_form.en.yml (Breton) * New translations activerecord.en.yml (Breton) * New translations devise.en.yml (Breton) * New translations doorkeeper.en.yml (Breton) * New translations en.json (Bosnian) * New translations en.json (French, Quebec) * New translations simple_form.en.yml (French, Quebec) * New translations activerecord.en.yml (French, Quebec) * New translations devise.en.yml (French, Quebec) * New translations doorkeeper.en.yml (French, Quebec) * New translations en.json (Sinhala) * New translations simple_form.en.yml (Sinhala) * New translations activerecord.en.yml (Sinhala) * New translations devise.en.yml (Sinhala) * New translations doorkeeper.en.yml (Sinhala) * New translations en.json (Cornish) * New translations en.json (Kannada) * New translations devise.en.yml (Kannada) * New translations simple_form.en.yml (Scottish Gaelic) * New translations activerecord.en.yml (Scottish Gaelic) * New translations devise.en.yml (Scottish Gaelic) * New translations doorkeeper.en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Asturian) * New translations activerecord.en.yml (Asturian) * New translations devise.en.yml (Asturian) * New translations simple_form.en.yml (Aragonese) * New translations activerecord.en.yml (Aragonese) * New translations devise.en.yml (Aragonese) * New translations doorkeeper.en.yml (Aragonese) * New translations simple_form.en.yml (Occitan) * New translations activerecord.en.yml (Occitan) * New translations devise.en.yml (Occitan) * New translations doorkeeper.en.yml (Occitan) * New translations activerecord.en.yml (Kurmanji (Kurdish)) * New translations doorkeeper.en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Sorani (Kurdish)) * New translations devise.en.yml (Sorani (Kurdish)) * New translations doorkeeper.en.yml (Sorani (Kurdish)) * New translations en.json (Igbo) * New translations en.json (Corsican) * New translations simple_form.en.yml (Corsican) * New translations activerecord.en.yml (Corsican) * New translations devise.en.yml (Corsican) * New translations doorkeeper.en.yml (Corsican) * New translations en.json (Sardinian) * New translations simple_form.en.yml (Sardinian) * New translations activerecord.en.yml (Sardinian) * New translations devise.en.yml (Sardinian) * New translations doorkeeper.en.yml (Sardinian) * New translations en.json (Sanskrit) * New translations en.json (Kabyle) * New translations simple_form.en.yml (Kabyle) * New translations activerecord.en.yml (Kabyle) * New translations devise.en.yml (Kabyle) * New translations doorkeeper.en.yml (Kabyle) * New translations en.json (Ido) * New translations simple_form.en.yml (Ido) * New translations activerecord.en.yml (Ido) * New translations devise.en.yml (Ido) * New translations doorkeeper.en.yml (Ido) * New translations en.json (Taigi) * New translations en.json (Silesian) * New translations en.json (Standard Moroccan Tamazight) * New translations simple_form.en.yml (Standard Moroccan Tamazight) * New translations activerecord.en.yml (Standard Moroccan Tamazight) * New translations devise.en.yml (Standard Moroccan Tamazight) * New translations doorkeeper.en.yml (Standard Moroccan Tamazight) * New translations en.json (Afrikaans) * New translations en.json (Bulgarian) * New translations en.json (Catalan) * New translations en.json (Czech) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Frisian) * New translations en.json (Finnish) * New translations en.json (Irish) * New translations en.json (Hungarian) * New translations en.json (Armenian) * New translations en.json (Italian) * New translations en.json (Georgian) * New translations en.json (Lithuanian) * New translations en.json (Macedonian) * New translations en.json (Dutch) * New translations en.json (Punjabi) * New translations en.json (Chinese Traditional) * New translations en.json (Urdu (Pakistan)) * New translations en.json (Vietnamese) * New translations en.json (Tamil) * New translations en.json (Bengali) * New translations en.json (Marathi) * New translations en.json (Croatian) * New translations en.json (Kazakh) * New translations en.json (Latvian) * New translations en.json (Hindi) * New translations en.json (Telugu) * New translations en.json (English, United Kingdom) * New translations en.json (Burmese) * New translations en.json (Uyghur) * New translations en.json (Tatar) * New translations en.json (Malayalam) * New translations en.json (Latin) * New translations en.json (Bosnian) * New translations en.json (Cornish) * New translations en.json (Kannada) * New translations en.json (Asturian) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Sorani (Kurdish)) * 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 (Taigi) * New translations en.json (Silesian) * New translations en.json (Standard Moroccan Tamazight) * New translations en.yml (French) * New translations en.yml (Spanish) * New translations en.yml (Arabic) * New translations en.yml (Belarusian) * New translations en.yml (Catalan) * New translations en.yml (Czech) * New translations en.yml (Danish) * New translations en.yml (German) * New translations en.yml (Greek) * New translations en.yml (Frisian) * New translations en.yml (Basque) * New translations en.yml (Finnish) * New translations en.yml (Hungarian) * New translations en.yml (Italian) * New translations en.yml (Japanese) * New translations en.yml (Korean) * New translations en.yml (Dutch) * New translations en.yml (Norwegian) * New translations en.yml (Polish) * New translations en.yml (Portuguese) * New translations en.yml (Russian) * New translations en.yml (Slovak) * New translations en.yml (Slovenian) * New translations en.yml (Albanian) * New translations en.yml (Swedish) * New translations en.yml (Turkish) * New translations en.yml (Ukrainian) * New translations en.yml (Chinese Simplified) * New translations en.yml (Chinese Traditional) * New translations en.yml (Vietnamese) * New translations en.yml (Galician) * New translations en.yml (Icelandic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Indonesian) * New translations en.yml (Persian) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Bengali) * New translations en.yml (Thai) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Kazakh) * New translations en.yml (Estonian) * New translations en.yml (Latvian) * New translations en.yml (Malay) * New translations en.yml (Welsh) * New translations en.yml (Faroese) * New translations en.yml (Esperanto) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.yml (Latin) * New translations en.yml (French, Quebec) * New translations en.yml (Sinhala) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Aragonese) * New translations en.yml (Occitan) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Scots) * New translations en.yml (Corsican) * New translations en.yml (Sardinian) * New translations en.yml (Ido) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Latin) * New translations simple_form.en.yml (French, Quebec) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations activerecord.en.yml (Frisian) * New translations activerecord.en.yml (Latin) * New translations devise.en.yml (Frisian) * New translations devise.en.yml (Latin) * New translations devise.en.yml (Kurmanji (Kurdish)) * New translations doorkeeper.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Frisian) * New translations doorkeeper.en.yml (Hungarian) * New translations doorkeeper.en.yml (Italian) * New translations doorkeeper.en.yml (Vietnamese) * New translations doorkeeper.en.yml (Latin) * New translations en.json (Belarusian) * New translations en.json (Catalan) * New translations en.json (Danish) * New translations en.json (Finnish) * New translations en.json (Turkish) * New translations en.yml (Belarusian) * New translations en.yml (Catalan) * New translations en.yml (Danish) * New translations en.yml (Swedish) * New translations en.yml (Turkish) * New translations doorkeeper.en.yml (Danish) * Normalize locale files * New translations en.json (German) * New translations en.json (Swedish) * New translations en.json (Estonian) * New translations en.json (Latvian) * New translations en.json (Welsh) * New translations en.yml (Hungarian) * New translations en.yml (Polish) * New translations en.yml (Latvian) * New translations en.yml (Welsh) * New translations simple_form.en.yml (Welsh) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Welsh) * New translations doorkeeper.en.yml (Czech) * New translations doorkeeper.en.yml (Latvian) * New translations doorkeeper.en.yml (Welsh) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.json (Estonian) * New translations en.yml (Swedish) * New translations en.yml (Ukrainian) * New translations en.yml (Chinese Traditional) * New translations doorkeeper.en.yml (Italian) * New translations doorkeeper.en.yml (Swedish) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations en.json (Catalan) * New translations en.json (Slovenian) * New translations en.json (Faroese) * New translations en.json (Asturian) * New translations en.yml (Catalan) * New translations en.yml (German) * New translations en.yml (Slovenian) * New translations en.yml (Faroese) * New translations doorkeeper.en.yml (German) * New translations doorkeeper.en.yml (Slovenian) * New translations doorkeeper.en.yml (Faroese) * New translations doorkeeper.en.yml (Ukrainian) * New translations en.json (Greek) * New translations en.yml (Danish) * New translations en.json (Danish) * New translations en.yml (Danish) * New translations doorkeeper.en.yml (Danish) * Normalize Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/af.json | 5 + app/javascript/mastodon/locales/an.json | 5 + app/javascript/mastodon/locales/ar.json | 5 + app/javascript/mastodon/locales/ast.json | 7 +- app/javascript/mastodon/locales/be.json | 5 + app/javascript/mastodon/locales/bg.json | 75 +- app/javascript/mastodon/locales/bn.json | 5 + app/javascript/mastodon/locales/br.json | 5 + app/javascript/mastodon/locales/bs.json | 5 + app/javascript/mastodon/locales/ca.json | 93 +-- app/javascript/mastodon/locales/ckb.json | 141 ++-- app/javascript/mastodon/locales/co.json | 5 + app/javascript/mastodon/locales/cs.json | 5 + app/javascript/mastodon/locales/cy.json | 5 + app/javascript/mastodon/locales/da.json | 5 + app/javascript/mastodon/locales/de.json | 13 +- .../mastodon/locales/defaultMessages.json | 19 +- app/javascript/mastodon/locales/el.json | 7 +- app/javascript/mastodon/locales/en-GB.json | 5 + app/javascript/mastodon/locales/en.json | 2 +- app/javascript/mastodon/locales/eo.json | 5 + app/javascript/mastodon/locales/es-AR.json | 5 + app/javascript/mastodon/locales/es-MX.json | 5 + app/javascript/mastodon/locales/es.json | 7 +- app/javascript/mastodon/locales/et.json | 9 +- app/javascript/mastodon/locales/eu.json | 5 + app/javascript/mastodon/locales/fa.json | 5 + app/javascript/mastodon/locales/fi.json | 49 +- app/javascript/mastodon/locales/fo.json | 11 +- app/javascript/mastodon/locales/fr-QC.json | 5 + app/javascript/mastodon/locales/fr.json | 7 +- app/javascript/mastodon/locales/fy.json | 393 +++++------ app/javascript/mastodon/locales/ga.json | 17 +- app/javascript/mastodon/locales/gd.json | 5 + app/javascript/mastodon/locales/gl.json | 5 + app/javascript/mastodon/locales/he.json | 13 +- app/javascript/mastodon/locales/hi.json | 35 +- app/javascript/mastodon/locales/hr.json | 5 + app/javascript/mastodon/locales/hu.json | 5 + app/javascript/mastodon/locales/hy.json | 5 + app/javascript/mastodon/locales/id.json | 5 + app/javascript/mastodon/locales/ig.json | 5 + app/javascript/mastodon/locales/io.json | 5 + app/javascript/mastodon/locales/is.json | 9 +- app/javascript/mastodon/locales/it.json | 5 + app/javascript/mastodon/locales/ja.json | 9 +- app/javascript/mastodon/locales/ka.json | 5 + app/javascript/mastodon/locales/kab.json | 5 + app/javascript/mastodon/locales/kk.json | 5 + app/javascript/mastodon/locales/kn.json | 5 + app/javascript/mastodon/locales/ko.json | 7 +- app/javascript/mastodon/locales/ku.json | 5 + app/javascript/mastodon/locales/kw.json | 5 + app/javascript/mastodon/locales/la.json | 654 ++++++++++++++++++ app/javascript/mastodon/locales/lt.json | 5 + app/javascript/mastodon/locales/lv.json | 75 +- app/javascript/mastodon/locales/mk.json | 5 + app/javascript/mastodon/locales/ml.json | 5 + app/javascript/mastodon/locales/mr.json | 229 +++--- app/javascript/mastodon/locales/ms.json | 5 + app/javascript/mastodon/locales/my.json | 5 + app/javascript/mastodon/locales/nl.json | 13 +- app/javascript/mastodon/locales/nn.json | 5 + app/javascript/mastodon/locales/no.json | 5 + app/javascript/mastodon/locales/oc.json | 5 + app/javascript/mastodon/locales/pa.json | 5 + app/javascript/mastodon/locales/pl.json | 25 +- app/javascript/mastodon/locales/pt-BR.json | 5 + app/javascript/mastodon/locales/pt-PT.json | 5 + app/javascript/mastodon/locales/ro.json | 5 + app/javascript/mastodon/locales/ru.json | 5 + app/javascript/mastodon/locales/sa.json | 5 + app/javascript/mastodon/locales/sc.json | 5 + app/javascript/mastodon/locales/sco.json | 5 + app/javascript/mastodon/locales/si.json | 5 + app/javascript/mastodon/locales/sk.json | 5 + app/javascript/mastodon/locales/sl.json | 5 + app/javascript/mastodon/locales/sq.json | 5 + app/javascript/mastodon/locales/sr-Latn.json | 5 + app/javascript/mastodon/locales/sr.json | 5 + app/javascript/mastodon/locales/sv.json | 5 + app/javascript/mastodon/locales/szl.json | 5 + app/javascript/mastodon/locales/ta.json | 5 + app/javascript/mastodon/locales/tai.json | 5 + app/javascript/mastodon/locales/te.json | 5 + app/javascript/mastodon/locales/th.json | 5 + app/javascript/mastodon/locales/tr.json | 5 + app/javascript/mastodon/locales/tt.json | 5 + app/javascript/mastodon/locales/ug.json | 5 + app/javascript/mastodon/locales/uk.json | 5 + app/javascript/mastodon/locales/ur.json | 5 + app/javascript/mastodon/locales/vi.json | 5 + .../mastodon/locales/whitelist_la.json | 2 + app/javascript/mastodon/locales/zgh.json | 5 + app/javascript/mastodon/locales/zh-CN.json | 5 + app/javascript/mastodon/locales/zh-HK.json | 5 + app/javascript/mastodon/locales/zh-TW.json | 25 +- config/locales/activerecord.ckb.yml | 5 + config/locales/activerecord.es-MX.yml | 2 +- config/locales/activerecord.la.yml | 1 + config/locales/an.yml | 1 - config/locales/ar.yml | 6 +- config/locales/ast.yml | 1 + config/locales/be.yml | 26 +- config/locales/bg.yml | 163 ++++- config/locales/ca.yml | 9 +- config/locales/ckb.yml | 1 - config/locales/cs.yml | 8 +- config/locales/cy.yml | 9 +- config/locales/da.yml | 11 +- config/locales/de.yml | 21 +- config/locales/devise.be.yml | 4 +- config/locales/devise.bg.yml | 40 +- config/locales/devise.fi.yml | 4 +- config/locales/devise.fy.yml | 97 ++- config/locales/devise.ku.yml | 6 +- config/locales/devise.la.yml | 1 + config/locales/doorkeeper.ast.yml | 1 + config/locales/doorkeeper.bg.yml | 36 +- config/locales/doorkeeper.ca.yml | 10 + config/locales/doorkeeper.cs.yml | 1 + config/locales/doorkeeper.da.yml | 10 + config/locales/doorkeeper.de.yml | 3 + config/locales/doorkeeper.es-AR.yml | 8 + config/locales/doorkeeper.fo.yml | 10 + config/locales/doorkeeper.fy.yml | 8 +- config/locales/doorkeeper.gl.yml | 10 +- config/locales/doorkeeper.he.yml | 10 + config/locales/doorkeeper.hu.yml | 10 + config/locales/doorkeeper.it.yml | 10 + config/locales/doorkeeper.ko.yml | 5 + config/locales/doorkeeper.la.yml | 1 + config/locales/doorkeeper.lv.yml | 10 + config/locales/doorkeeper.ro.yml | 2 + config/locales/doorkeeper.sl.yml | 10 + config/locales/doorkeeper.sv.yml | 10 + config/locales/doorkeeper.uk.yml | 2 + config/locales/doorkeeper.vi.yml | 10 + config/locales/doorkeeper.zh-TW.yml | 14 +- config/locales/el.yml | 8 +- config/locales/eo.yml | 6 +- config/locales/es-AR.yml | 11 +- config/locales/es-MX.yml | 6 +- config/locales/es.yml | 4 +- config/locales/et.yml | 74 +- config/locales/eu.yml | 1 - config/locales/fa.yml | 3 +- config/locales/fi.yml | 29 +- config/locales/fo.yml | 9 +- config/locales/fr-QC.yml | 29 +- config/locales/fr.yml | 6 +- config/locales/fy.yml | 80 ++- config/locales/ga.yml | 3 + config/locales/gd.yml | 1 - config/locales/gl.yml | 4 +- config/locales/he.yml | 9 +- config/locales/hu.yml | 11 +- config/locales/hy.yml | 2 - config/locales/id.yml | 4 +- config/locales/io.yml | 1 - config/locales/is.yml | 4 +- config/locales/it.yml | 9 +- config/locales/ja.yml | 9 +- config/locales/kab.yml | 2 - config/locales/ko.yml | 6 +- config/locales/ku.yml | 19 +- config/locales/la.yml | 12 + config/locales/lv.yml | 9 +- config/locales/ms.yml | 11 +- config/locales/nl.yml | 13 +- config/locales/nn.yml | 34 +- config/locales/pl.yml | 6 +- config/locales/pt-BR.yml | 2 +- config/locales/pt-PT.yml | 4 +- config/locales/ru.yml | 4 +- config/locales/sco.yml | 1 - config/locales/si.yml | 1 - config/locales/simple_form.ar.yml | 4 + config/locales/simple_form.be.yml | 87 ++- config/locales/simple_form.bg.yml | 75 +- config/locales/simple_form.de.yml | 2 +- config/locales/simple_form.et.yml | 12 +- config/locales/simple_form.fi.yml | 6 +- config/locales/simple_form.fy.yml | 99 +++ config/locales/simple_form.ku.yml | 4 +- config/locales/simple_form.la.yml | 1 + config/locales/simple_form.sr-Latn.yml | 254 ++++++- config/locales/simple_form.sr.yml | 28 + config/locales/simple_form.th.yml | 2 +- config/locales/sk.yml | 1 - config/locales/sl.yml | 9 +- config/locales/sq.yml | 13 +- config/locales/sr.yml | 40 +- config/locales/sv.yml | 9 +- config/locales/th.yml | 6 +- config/locales/tr.yml | 9 +- config/locales/uk.yml | 11 +- config/locales/vi.yml | 9 +- config/locales/zh-CN.yml | 8 +- config/locales/zh-HK.yml | 8 +- config/locales/zh-TW.yml | 19 +- 201 files changed, 3233 insertions(+), 833 deletions(-) create mode 100644 app/javascript/mastodon/locales/la.json create mode 100644 app/javascript/mastodon/locales/whitelist_la.json create mode 100644 config/locales/activerecord.la.yml create mode 100644 config/locales/devise.la.yml create mode 100644 config/locales/doorkeeper.la.yml create mode 100644 config/locales/la.yml create mode 100644 config/locales/simple_form.la.yml diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 60a814373d..d4a9927666 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Plasings en antwoorde", "account.report": "Rapporteer @{name}", "account.requested": "Wag op goedkeuring. Klik om volgversoek te kanselleer", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Deel @{name} se profiel", "account.show_reblogs": "Wys aangestuurde plasings van @{name}", "account.statuses_counter": "{count, plural, one {{counter} Plaas} other {{counter} Plasings}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Soekresultate", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 83722156b1..8b0669aaba 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Publicacions y respuestas", "account.report": "Denunciar a @{name}", "account.requested": "Esperando l'aprebación", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Compartir lo perfil de @{name}", "account.show_reblogs": "Amostrar retutz de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar lo seguimiento de pila en o portafuellas", "errors.unexpected_crash.report_issue": "Informar d'un problema/error", "explore.search_results": "Resultaus de busqueda", + "explore.suggested_follows": "For you", "explore.title": "Explorar", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no s'aplica a lo contexto en o qual ha accediu a esta publlicación. Si quiers que la publicación sía filtrada tamién en este contexto, habrás d'editar lo filtro.", "filter_modal.added.context_mismatch_title": "Lo contexto no coincide!", "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducau, amenesterá cambiar la calendata de caducidat pa que s'aplique.", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 6c95d47d6f..941af112f1 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "المنشورات والرُدود", "account.report": "الإبلاغ عن @{name}", "account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة", + "account.requested_follow": "{name} has requested to follow you", "account.share": "شارِك الملف التعريفي لـ @{name}", "account.show_reblogs": "عرض مشاركات @{name}", "account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة", "errors.unexpected_crash.report_issue": "الإبلاغ عن خلل", "explore.search_results": "نتائج البحث", + "explore.suggested_follows": "For you", "explore.title": "استكشف", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "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 e287b9a463..23e74f1f16 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Artículos ya rempuestes", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Amosar los artículos compartíos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Resultaos de la busca", + "explore.suggested_follows": "Pa ti", "explore.title": "Esploración", + "explore.trending_links": "Noticies", + "explore.trending_statuses": "Artículos", + "explore.trending_tags": "Etiquetes", "filter_modal.added.context_mismatch_explanation": "Esta categoría de peñera nun s'aplica al contestu nel qu'accediesti a esti artículu. Si tamién quies que se peñere l'artículu nesti contestu, tienes d'editar la peñera.", "filter_modal.added.context_mismatch_title": "¡El contestu nun coincide!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", @@ -257,7 +262,7 @@ "follow_recommendations.lead": "Los artículos de los perfiles que sigas van apaecer n'orde cronolóxicu nel to feed d'aniciu. ¡Nun tengas mieu d'enquivocate, pues dexar de siguilos con facilidá en cualesquier momentu!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Refugar", - "follow_requests.unlocked_explanation": "Magar que la cuenta nun tea bloquiada, ye posible que'l personal del dominiu {domain} quiera revisar manualmente les solicitúes de siguimientu d'estes cuentes.", + "follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.", "footer.about": "Tocante a", "footer.directory": "Direutoriu de perfiles", "footer.get_app": "Consiguir l'aplicación", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 0e84db7180..d221c00732 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Допісы і адказы", "account.report": "Паскардзіцца на @{name}", "account.requested": "Чакаецца ўхваленне. Націсніце, каб скасаваць запыт на падпіску", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Абагуліць профіль @{name}", "account.show_reblogs": "Паказаць падштурхоўванні ад @{name}", "account.statuses_counter": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Дадаць дыягнастычны стэк у буфер абмену", "errors.unexpected_crash.report_issue": "Паведаміць аб праблеме", "explore.search_results": "Вынікі пошуку", + "explore.suggested_follows": "For you", "explore.title": "Агляд", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Гэтая катэгорыя фільтра не прымяняецца да кантэксту, у якім вы адкрылі гэты пост. Калі вы хочаце, каб паведамленне таксама было адфільтравана ў гэтым кантэксце, вам трэба будзе адрэдагаваць фільтр", "filter_modal.added.context_mismatch_title": "Неадпаведны кантэкст!", "filter_modal.added.expired_explanation": "Тэрмін дзеяння гэтай катэгорыі фільтраў скончыўся, вам трэба будзе змяніць дату заканчэння тэрміну дзеяння, каб яна прымянялася", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index f04f6054df..ad7885fd93 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -12,7 +12,7 @@ "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}", "about.rules": "Правила на сървъра", "account.account_note_header": "Бележка", - "account.add_or_remove_from_list": "Добави или премахни от списъците", + "account.add_or_remove_from_list": "Добавяне или премахване от списъци", "account.badges.bot": "Бот", "account.badges.group": "Група", "account.block": "Блокиране на @{name}", @@ -40,7 +40,7 @@ "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,10 +51,11 @@ "account.muted": "Заглушено", "account.open_original_page": "Отваряне на оригиналната страница", "account.posts": "Публикации", - "account.posts_with_replies": "С отговори", + "account.posts_with_replies": "Публикации и отговори", "account.report": "Докладване на @{name}", "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване", - "account.share": "Изпращане на профила на @{name}", + "account.requested_follow": "{name} has requested to follow you", + "account.share": "Споделяне на профила на @{name}", "account.show_reblogs": "Показване на споделяния от @{name}", "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", "account.unblock": "Отблокиране на @{name}", @@ -142,11 +143,11 @@ "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Запазване на промените", "compose_form.sensitive.hide": "{count, plural, one {Маркиране на мултимедията като деликатна} other {Маркиране на мултимедиите като деликатни}}", - "compose_form.sensitive.marked": "{count, plural, one {Мултимедията е маркирана като деликатна} other {Мултимедиите са маркирани като деликатни}}", + "compose_form.sensitive.marked": "{count, plural, one {мултимедия е означена като деликатна} other {мултимедии са означени като деликатни}}", "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедията не е маркирана като деликатна} other {Мултимедиите не са маркирани като деликатни}}", "compose_form.spoiler.marked": "Премахване на предупреждението за съдържание", "compose_form.spoiler.unmarked": "Добавяне на предупреждение за съдържание", - "compose_form.spoiler_placeholder": "Напишете предупреждение", + "compose_form.spoiler_placeholder": "Тук напишете предупреждението си", "confirmation_modal.cancel": "Отказ", "confirmations.block.block_and_report": "Блокиране и докладване", "confirmations.block.confirm": "Блокиране", @@ -178,13 +179,13 @@ "conversation.with": "С {names}", "copypaste.copied": "Копирано", "copypaste.copy": "Копиране", - "directory.federated": "От познатата федивселена", + "directory.federated": "От позната федивселена", "directory.local": "Само от {domain}", "directory.new_arrivals": "Новодошли", "directory.recently_active": "Наскоро дейни", "disabled_account_banner.account_settings": "Настройки на акаунта", "disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.", - "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации, създадени от акаунти в {domain}.", + "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.", "dismissable_banner.dismiss": "Отхвърляне", "dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.", "dismissable_banner.explore_statuses": "Тези публикации от този и други сървъри в децентрализираната мрежа набират популярност сега на този сървър.", @@ -194,7 +195,7 @@ "embed.preview": "Ето как ще изглежда:", "emoji_button.activity": "Дейност", "emoji_button.clear": "Изчистване", - "emoji_button.custom": "Персонализирани", + "emoji_button.custom": "Персонализирано", "emoji_button.flags": "Знамена", "emoji_button.food": "Храна и напитки", "emoji_button.label": "Вмъкване на емоджи", @@ -207,9 +208,9 @@ "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.account_unavailable": "Недостъпен профил", "empty_column.blocks": "Още не сте блокирали никакви потребители.", "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.", "empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!", @@ -221,7 +222,7 @@ "empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.", "empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.", "empty_column.hashtag": "Още няма нищо в този хаштаг.", - "empty_column.home": "Вашият личен инфопоток е празен! Последвайте повече хора, за да го запълните. {suggestions}", + "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}", "empty_column.home.suggestions": "Преглед на някои предложения", "empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.", "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Копиране на stacktrace-а в клипборда", "errors.unexpected_crash.report_issue": "Сигнал за проблем", "explore.search_results": "Резултати от търсенето", + "explore.suggested_follows": "For you", "explore.title": "Разглеждане", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.", "filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!", "filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.", @@ -260,7 +265,7 @@ "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", "footer.about": "Относно", "footer.directory": "Директория на профилите", - "footer.get_app": "Изтегли приложението", + "footer.get_app": "Вземане на приложението", "footer.invite": "Поканване на хора", "footer.keyboard_shortcuts": "Клавишни комбинации", "footer.privacy_policy": "Политика за поверителност", @@ -284,7 +289,7 @@ "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": "На различен сървър", @@ -311,10 +316,10 @@ "keyboard_shortcuts.favourites": "Отваряне на списъка с любими", "keyboard_shortcuts.federated": "Отваряне на федерирания инфопоток", "keyboard_shortcuts.heading": "Клавишни съчетания", - "keyboard_shortcuts.home": "Отваряне на личния инфопоток", + "keyboard_shortcuts.home": "Отваряне на началната часова ос", "keyboard_shortcuts.hotkey": "Бърз клавиш", "keyboard_shortcuts.legend": "Показване на тази легенда", - "keyboard_shortcuts.local": "Отваряне на локалния инфопоток", + "keyboard_shortcuts.local": "Отваряне на местна часова ос", "keyboard_shortcuts.mention": "Споменаване на автор", "keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители", "keyboard_shortcuts.my_profile": "Отваряне на профила ви", @@ -339,7 +344,7 @@ "lightbox.previous": "Назад", "limited_account_hint.action": "Покажи профила въпреки това", "limited_account_hint.title": "Този профил е бил скрит от модераторита на {domain}.", - "lists.account.add": "Добавяне към списък", + "lists.account.add": "Добавяне в списък", "lists.account.remove": "Премахване от списък", "lists.delete": "Изтриване на списък", "lists.edit": "Промяна на списъка", @@ -381,13 +386,13 @@ "navigation_bar.personal": "Лично", "navigation_bar.pins": "Закачени публикации", "navigation_bar.preferences": "Предпочитания", - "navigation_bar.public_timeline": "Федериран инфопоток", + "navigation_bar.public_timeline": "Федеративна хронология", "navigation_bar.search": "Търсене", "navigation_bar.security": "Сигурност", "not_signed_in_indicator.not_signed_in": "Трябва да влезете за достъп до този ресурс.", "notification.admin.report": "{name} докладва {target}", "notification.admin.sign_up": "{name} се регистрира", - "notification.favourite": "{name} хареса ваша публикация", + "notification.favourite": "{name} сложи в любими ваша публикация", "notification.follow": "{name} ви последва", "notification.follow_request": "{name} поиска да ви последва", "notification.mention": "{name} ви спомена", @@ -416,7 +421,7 @@ "notifications.column_settings.status": "Нови публикации:", "notifications.column_settings.unread_notifications.category": "Непрочетени известия", "notifications.column_settings.unread_notifications.highlight": "Изтъкване на непрочетените известия", - "notifications.column_settings.update": "Редакции:", + "notifications.column_settings.update": "Промени:", "notifications.filter.all": "Всичко", "notifications.filter.boosts": "Споделяния", "notifications.filter.favourites": "Любими", @@ -436,7 +441,7 @@ "picture_in_picture.restore": "Връщане обратно", "poll.closed": "Затворено", "poll.refresh": "Опресняване", - "poll.total_people": "{count, plural, one {# човек} other {# човека}}", + "poll.total_people": "{count, plural, one {# човек} other {# души}}", "poll.total_votes": "{count, plural, one {# глас} other {# гласа}}", "poll.vote": "Гласуване", "poll.voted": "Гласувахте за този отговор", @@ -451,21 +456,21 @@ "privacy.public.long": "Видимо за всички", "privacy.public.short": "Публично", "privacy.unlisted.long": "Видимо за всички, но не чрез възможността за откриване", - "privacy.unlisted.short": "Скрито", + "privacy.unlisted.short": "Несписъчно", "privacy_policy.last_updated": "Последно осъвременяване на {date}", "privacy_policy.title": "Политика за поверителност", "refresh": "Опресняване", "regeneration_indicator.label": "Зареждане…", - "regeneration_indicator.sublabel": "Вашият основен инфопоток се подготвя!", + "regeneration_indicator.sublabel": "Подготовка на началния ви инфоканал!", "relative_time.days": "{number} д.", "relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}", "relative_time.full.hours": "преди {number, plural, one {# час} other {# часа}}", "relative_time.full.just_now": "току-що", "relative_time.full.minutes": "преди {number, plural, one {# минута} other {# минути}}", "relative_time.full.seconds": "преди {number, plural, one {# секунда} other {# секунди}}", - "relative_time.hours": "{number} ч.", + "relative_time.hours": "{number}ч.", "relative_time.just_now": "сега", - "relative_time.minutes": "{number} мин.", + "relative_time.minutes": "{number}м.", "relative_time.seconds": "{number}с.", "relative_time.today": "днес", "reply_indicator.cancel": "Отказ", @@ -505,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": "Спам", @@ -524,7 +529,7 @@ "search_results.hashtags": "Хаштагове", "search_results.nothing_found": "Не може да се намери каквото и да било за тези термини при търсене", "search_results.statuses": "Публикации", - "search_results.statuses_fts_disabled": "Търсенето на публикации по тяхното съдържание не е активирано за този Mastodon сървър.", + "search_results.statuses_fts_disabled": "Търсенето на публикации по съдържанието им не е включено в този сървър на Mastodon.", "search_results.title": "Търсене за {q}", "search_results.total": "{count, number} {count, plural, one {резултат} other {резултата}}", "server_banner.about_active_users": "Ползващите сървъра през последните 30 дни (дейните месечно потребители)", @@ -537,7 +542,7 @@ "sign_in_banner.sign_in": "Вход", "sign_in_banner.text": "Влезте, за да последвате профили или хаштагове, любимо, споделяне и отговаряне на публикации или взаимодействие от акаунта ви на друг сървър.", "status.admin_account": "Отваряне на интерфейс за модериране за @{name}", - "status.admin_status": "Open this status in the moderation interface", + "status.admin_status": "Отваряне на тази публикация в интерфейс на модериране", "status.block": "Блокиране на @{name}", "status.bookmark": "Отмятане", "status.cancel_reblog_private": "Отсподеляне", @@ -587,20 +592,20 @@ "status.translate": "Превод", "status.translated_from_with": "Преведено от {lang}, използвайки {provider}", "status.uncached_media_warning": "Не е налично", - "status.unmute_conversation": "Раззаглушаване на разговор", + "status.unmute_conversation": "Без заглушаването на разговора", "status.unpin": "Разкачане от профила", "subscribed_languages.lead": "Публикации само на избрани езици ще се явяват в началото ви и в списъка с часови оси след промяната. Изберете \"нищо\", за да получавате публикации на всички езици.", "subscribed_languages.save": "Запазване на промените", "subscribed_languages.target": "Смяна на езика за {target}", "suggestions.dismiss": "Отхвърляне на предложение", - "suggestions.header": "Може да се интересувате от…", + "suggestions.header": "Може да имате интерес от…", "tabs_bar.federated_timeline": "Федерална", "tabs_bar.home": "Начало", "tabs_bar.local_timeline": "Местни", "tabs_bar.notifications": "Известия", - "time_remaining.days": "{number, plural, one {# ден} other {# дни}} остава", - "time_remaining.hours": "{number, plural, one {# час} other {# часа}} остава", - "time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} остава", + "time_remaining.days": "{number, plural, one {остава # ден} other {остават # дни}}", + "time_remaining.hours": "{number, plural, one {остава # час} other {остават # часа}}", + "time_remaining.minutes": "{number, plural, one {остава # минута} other {остават # минути}}", "time_remaining.moments": "Оставащи моменти", "time_remaining.seconds": "{number, plural, one {# секунда} other {# секунди}} остава", "timeline_hint.remote_resource_not_displayed": "{resource} от други сървъри не се показват.", @@ -619,12 +624,12 @@ "upload_error.poll": "Качването на файлове не е позволено с анкети.", "upload_form.audio_description": "Опишете за хора със загубен слух", "upload_form.description": "Опишете за хора със зрително увреждане", - "upload_form.description_missing": "Няма добавено описание", + "upload_form.description_missing": "Няма добавен опис", "upload_form.edit": "Редактиране", "upload_form.thumbnail": "Промяна на миниобраза", "upload_form.undo": "Изтриване", "upload_form.video_description": "Опишете за хора със загубен слух или зрително увреждане", - "upload_modal.analyzing_picture": "Анализ на снимка…", + "upload_modal.analyzing_picture": "Снимков анализ…", "upload_modal.apply": "Прилагане", "upload_modal.applying": "Прилагане…", "upload_modal.choose_image": "Избор на образ", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 6e33bf789a..663c357e43 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "টুট এবং মতামত", "account.report": "@{name} কে রিপোর্ট করুন", "account.requested": "অনুমতির অপেক্ষা। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} র প্রোফাইল অন্যদের দেখান", "account.show_reblogs": "@{name} র সমর্থনগুলো দেখান", "account.statuses_counter": "{count, plural,one {{counter} টুট} other {{counter} টুট}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "স্টেকট্রেস ক্লিপবোর্ডে কপি করুন", "errors.unexpected_crash.report_issue": "সমস্যার প্রতিবেদন করুন", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index e046824b6c..d0f47dd01e 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toudoù ha respontoù", "account.report": "Disklêriañ @{name}", "account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Skignañ profil @{name}", "account.show_reblogs": "Diskouez skignadennoù @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toud} two {{counter} Doud} other {{counter} a Doudoù}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver", "errors.unexpected_crash.report_issue": "Danevellañ ur fazi", "explore.search_results": "Disoc'hoù an enklask", + "explore.suggested_follows": "For you", "explore.title": "Furchal", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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": "Kenarroud digenglotus !", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json index 3e3a5243e6..e3aab78cae 100644 --- a/app/javascript/mastodon/locales/bs.json +++ b/app/javascript/mastodon/locales/bs.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 6b1743d614..faeadad42d 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Tuts i respostes", "account.report": "Informa sobre @{name}", "account.requested": "S'espera l'aprovació. Clica per a cancel·lar la petició de seguiment", + "account.requested_follow": "{name} has requested to follow you", "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}}", @@ -104,7 +105,7 @@ "column.direct": "Missatges directes", "column.directory": "Navega pels perfils", "column.domain_blocks": "Dominis blocats", - "column.favourites": "Preferits", + "column.favourites": "Favorits", "column.follow_requests": "Peticions de seguir-te", "column.home": "Inici", "column.lists": "Llistes", @@ -126,8 +127,8 @@ "compose.language.change": "Canvia d'idioma", "compose.language.search": "Cerca idiomes...", "compose_form.direct_message_warning_learn_more": "Més informació", - "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació sensible mitjançant Mastodon.", - "compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.", + "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.lock_disclaimer.lock": "blocat", "compose_form.placeholder": "Què et passa pel cap?", @@ -137,11 +138,11 @@ "compose_form.poll.remove_option": "Elimina aquesta opció", "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions", "compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció", - "compose_form.publish": "Publica", + "compose_form.publish": "Tut", "compose_form.publish_form": "Publica", - "compose_form.publish_loud": "{publish}!", + "compose_form.publish_loud": "Tut!", "compose_form.save_changes": "Desa els canvis", - "compose_form.sensitive.hide": "{count, plural, one {Marca el contingut com a sensible} other {Marca el contingut com a sensible}}", + "compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}", "compose_form.sensitive.marked": "{count, plural, one {Contingut marcat com a sensible} other {Contingut marcat com a sensible}}", "compose_form.sensitive.unmarked": "{count, plural, one {Contingut no marcat com a sensible} other {Contingut no marcat com a sensible}}", "compose_form.spoiler.marked": "Elimina l'avís de contingut", @@ -187,10 +188,10 @@ "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.", - "dismissable_banner.explore_statuses": "Aquestes publicacions d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.", + "dismissable_banner.explore_statuses": "Aquests tuts d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.", "dismissable_banner.explore_tags": "Aquestes etiquetes estan guanyant ara mateix l'atenció dels usuaris d'aquest i altres servidors de la xarxa descentralitzada.", - "dismissable_banner.public_timeline": "Aquestes són les publicacions públiques més recents de persones en aquest i altres servidors de la xarxa descentralitzada que aquest servidor coneix.", - "embed.instructions": "Incrusta aquesta publicació a la teva pàgina web copiant el codi següent.", + "dismissable_banner.public_timeline": "Aquestes són els tuts públics més recents de persones en aquest i altres servidors de la xarxa descentralitzada que aquest servidor coneix.", + "embed.instructions": "Incrusta aquest tut a la teva pàgina web copiant el codi següent.", "embed.preview": "Aquest aspecte tindrà:", "emoji_button.activity": "Activitat", "emoji_button.clear": "Neteja", @@ -213,17 +214,17 @@ "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.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 teniu missatges directes. Quan n'envieu o en rebeu, sortiran aquí.", + "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 publicació. Quan ho facis, apareixerà aquí.", + "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_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}", "empty_column.home.suggestions": "Mostra alguns suggeriments", - "empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres facin noves publicacions, apareixeran aquí.", + "empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres facin nous tuts, apareixeran aquí.", "empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.", "empty_column.mutes": "Encara no has silenciat cap usuari.", "empty_column.notifications": "Encara no tens notificacions. Quan altre gent interactuï amb tu, les veuràs aquí.", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copia stacktrace al porta-retalls", "errors.unexpected_crash.report_issue": "Informa d'un problema", "explore.search_results": "Resultats de la cerca", + "explore.suggested_follows": "Per a tu", "explore.title": "Explora", + "explore.trending_links": "Notícies", + "explore.trending_statuses": "Tuts", + "explore.trending_tags": "Etiquetes", "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.", "filter_modal.added.context_mismatch_title": "El context no coincideix!", "filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necessitaràs canviar la seva data de caducitat per a aplicar-la.", @@ -251,7 +256,7 @@ "filter_modal.select_filter.search": "Cerca o crea", "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova", "filter_modal.select_filter.title": "Filtra aquesta publicació", - "filter_modal.title.status": "Filtra una publicació", + "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!", @@ -286,12 +291,12 @@ "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.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 aquesta publicació.", + "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_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.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 la publicació de {name}", + "interaction_modal.title.favourite": "Marca el tut de {name}", "interaction_modal.title.follow": "Segueix {name}", "interaction_modal.title.reblog": "Impulsa la publicació de {name}", "interaction_modal.title.reply": "Respon a la publicació de {name}", @@ -300,7 +305,7 @@ "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", "keyboard_shortcuts.back": "Vés enrere", "keyboard_shortcuts.blocked": "Obre la llista d'usuaris blocats", - "keyboard_shortcuts.boost": "Impulsa la publicació", + "keyboard_shortcuts.boost": "Impulsa el tut", "keyboard_shortcuts.column": "Centra la columna", "keyboard_shortcuts.compose": "Centra l'àrea de composició de text", "keyboard_shortcuts.description": "Descripció", @@ -319,10 +324,10 @@ "keyboard_shortcuts.muted": "Obre la llista d'usuaris silenciats", "keyboard_shortcuts.my_profile": "Obre el teu perfil", "keyboard_shortcuts.notifications": "Obre la columna de notificacions", - "keyboard_shortcuts.open_media": "Obre el contingut", - "keyboard_shortcuts.pinned": "Obre la llista de publicacions fixades", + "keyboard_shortcuts.open_media": "Obre mèdia", + "keyboard_shortcuts.pinned": "Obre la llista de tuts fixats", "keyboard_shortcuts.profile": "Obre el perfil de l'autor", - "keyboard_shortcuts.reply": "Respon a la publicació", + "keyboard_shortcuts.reply": "Respon al tut", "keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment", "keyboard_shortcuts.search": "Centra la barra de cerca", "keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW", @@ -401,7 +406,7 @@ "notifications.column_settings.admin.report": "Nous informes:", "notifications.column_settings.admin.sign_up": "Nous registres:", "notifications.column_settings.alert": "Notificacions d'escriptori", - "notifications.column_settings.favourite": "Preferits:", + "notifications.column_settings.favourite": "Favorits:", "notifications.column_settings.filter_bar.advanced": "Mostra totes les categories", "notifications.column_settings.filter_bar.category": "Barra ràpida de filtres", "notifications.column_settings.filter_bar.show_bar": "Mostra la barra de filtres", @@ -477,7 +482,7 @@ "report.category.subtitle": "Tria la millor coincidència", "report.category.title": "Explica'ns què passa amb això ({type})", "report.category.title_account": "perfil", - "report.category.title_status": "publicació", + "report.category.title_status": "tut", "report.close": "Fet", "report.comment.title": "Hi ha res més que creguis que hauríem de saber?", "report.forward": "Reenvia a {target}", @@ -497,7 +502,7 @@ "report.rules.subtitle": "Selecciona totes les aplicables", "report.rules.title": "Quines regles s'han violat?", "report.statuses.subtitle": "Selecciona totes les aplicables", - "report.statuses.title": "Hi ha cap publicació que doni suport a aquest informe?", + "report.statuses.title": "Hi ha cap tut que doni suport a aquest informe?", "report.submit": "Envia", "report.target": "Es reporta {target}", "report.thanks.take_action": "Aquestes són les teves opcions per a controlar el que veus a Mastodon:", @@ -506,7 +511,7 @@ "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_notification.attached_statuses": "{count, plural, one {{count} publicació adjunta} other {{count} publicacions adjuntes}}", + "report_notification.attached_statuses": "{count, plural, one {{count} tut} other {{count} tuts}} adjunts", "report_notification.categories.other": "Altres", "report_notification.categories.spam": "Brossa", "report_notification.categories.violation": "Violació de norma", @@ -514,17 +519,17 @@ "search.placeholder": "Cerca", "search.search_or_paste": "Cerca o escriu l'URL", "search_popout.search_format": "Format de cerca avançada", - "search_popout.tips.full_text": "Text simple recupera publicacions que has escrit, les marcades com a preferides, les impulsades o en les que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", + "search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "publicació", + "search_popout.tips.status": "tut", "search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes", "search_popout.tips.user": "usuari", "search_results.accounts": "Gent", "search_results.all": "Tots", "search_results.hashtags": "Etiquetes", "search_results.nothing_found": "No s'ha pogut trobar res per a aquests termes de cerca", - "search_results.statuses": "Publicacions", - "search_results.statuses_fts_disabled": "La cerca de publicacions pel seu contingut no està habilitada en aquest servidor Mastodon.", + "search_results.statuses": "Tuts", + "search_results.statuses_fts_disabled": "La cerca de tuts pel seu contingut no està habilitada en aquest servidor Mastodon.", "search_results.title": "Cerca de {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "server_banner.about_active_users": "Gent que ha fet servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)", @@ -537,12 +542,12 @@ "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}", - "status.admin_status": "Obre aquesta publicació a la interfície de moderació", + "status.admin_status": "Obrir aquest tut a la interfície de moderació", "status.block": "Bloca @{name}", "status.bookmark": "Marca", "status.cancel_reblog_private": "Desfés l'impuls", - "status.cannot_reblog": "No es pot impulsar aquesta publicació", - "status.copy": "Copia l'enllaç a la publicació", + "status.cannot_reblog": "No es pot impulsar aquest tut", + "status.copy": "Copia l'enllaç al tut", "status.delete": "Elimina", "status.detailed_status": "Vista detallada de la conversa", "status.direct": "Missatge directe a @{name}", @@ -550,10 +555,10 @@ "status.edited": "Editat {date}", "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", "status.embed": "Incrusta", - "status.favourite": "Preferit", - "status.filter": "Filtra aquesta publicació", + "status.favourite": "Favorit", + "status.filter": "Filtra aquest tut", "status.filtered": "Filtrada", - "status.hide": "Amaga la publicació", + "status.hide": "Amaga el tut", "status.history.created": "creat per {name} {date}", "status.history.edited": "editat per {name} {date}", "status.load_more": "Carrega'n més", @@ -562,9 +567,9 @@ "status.more": "Més", "status.mute": "Silencia @{name}", "status.mute_conversation": "Silencia la conversa", - "status.open": "Amplia la publicació", + "status.open": "Amplia el tut", "status.pin": "Fixa en el perfil", - "status.pinned": "Publicació fixada", + "status.pinned": "Tut fixat", "status.read_more": "Més informació", "status.reblog": "Impulsa", "status.reblog_private": "Impulsa amb la visibilitat original", @@ -589,7 +594,7 @@ "status.uncached_media_warning": "No està disponible", "status.unmute_conversation": "Deixa de silenciar la conversa", "status.unpin": "Desfixa del perfil", - "subscribed_languages.lead": "Només les publicacions en les llengües seleccionades apareixeran en les teves línies de temps \"Inici\" i \"Llistes\" després del canvi. No en seleccionis cap per a rebre publicacions en totes les llengües.", + "subscribed_languages.lead": "Només els tuts en les llengües seleccionades apareixeran en les teves línies de temps \"Inici\" i \"Llistes\" després del canvi. No en seleccionis cap per a rebre tuts en totes les llengües.", "subscribed_languages.save": "Desa els canvis", "subscribed_languages.target": "Canvia les llengües subscrites per a {target}", "suggestions.dismiss": "Ignora el suggeriment", @@ -610,27 +615,27 @@ "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} en {days, plural, one {el passat dia} other {els passats {days} dies}}", "trends.trending_now": "És tendència", "ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.", - "units.short.billion": "{count} B", - "units.short.million": "{count} M", - "units.short.thousand": "{count} K", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", "upload_area.title": "Arrossega i deixa anar per a carregar", "upload_button.label": "Afegeix imatges, un vídeo o un fitxer d'àudio", "upload_error.limit": "S'ha superat el límit de càrrega d'arxius.", "upload_error.poll": "No es permet carregar fitxers a les enquestes.", - "upload_form.audio_description": "Descripció per a persones amb discapacitat auditiva", - "upload_form.description": "Descripció per a persones amb discapacitat visual", + "upload_form.audio_description": "Descriu-ho per a persones amb problemes d'audició", + "upload_form.description": "Descriu-ho per a persones amb problemes de visió", "upload_form.description_missing": "No s'hi ha afegit cap descripció", "upload_form.edit": "Edita", "upload_form.thumbnail": "Canvia la miniatura", "upload_form.undo": "Elimina", - "upload_form.video_description": "Descripció per a persones amb discapacitat auditiva o amb discapacitat visual", + "upload_form.video_description": "Descriu-ho per a persones amb problemes de visió o audició", "upload_modal.analyzing_picture": "S'analitza la imatge…", "upload_modal.apply": "Aplica", "upload_modal.applying": "S'aplica…", "upload_modal.choose_image": "Tria la imatge", - "upload_modal.description_placeholder": "Jove xef, porti whisky amb quinze glaçons d’hidrogen, coi!", + "upload_modal.description_placeholder": "Setze jutges d'un jutjat mengen fetge d'un penjat", "upload_modal.detect_text": "Detecta el text de la imatge", - "upload_modal.edit_media": "Edita el contingut", + "upload_modal.edit_media": "Edita el Mèdia", "upload_modal.hint": "Fes clic o arrossega el cercle en la previsualització per a triar el punt focal que sempre serà visible en totes les miniatures.", "upload_modal.preparing_ocr": "Es prepara l'OCR…", "upload_modal.preview_label": "Previsualitza ({ratio})", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index f2879ca6ef..0a84153ae9 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -6,11 +6,11 @@ "about.domain_blocks.preamble": "ماستۆدۆن بە گشتی ڕێگەت پێدەدات بە پیشاندانی ناوەڕۆکەکان و کارلێک کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.", "about.domain_blocks.silenced.explanation": "بە گشتی ناتوانی زانیاریە تایبەتەکان و ناوەڕۆکی ئەم ڕاژەیە ببینی، مەگەر بە ڕوونی بەدوایدا بگەڕێیت یان هەڵیبژێریت بۆ شوێنکەوتنی.", "about.domain_blocks.silenced.title": "سنووردار", - "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.", + "about.domain_blocks.suspended.explanation": "هیچ داتایەک لەم سێرڤەرەوە پرۆسێس ناکرێت، هەڵناگیرێت یان ئاڵوگۆڕ ناکرێت، ئەمەش وا دەکات هیچ کارلێکێک یان پەیوەندییەک لەگەڵ بەکارهێنەران لەم سێرڤەرەوە مەحاڵ بێت.", "about.domain_blocks.suspended.title": "هەڵپەسێردراوە", - "about.not_available": "This information has not been made available on this server.", - "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", + "about.not_available": "ئەم زانیاریانە لەسەر ئەم سێرڤەرە بەردەست نەکراون.", + "about.powered_by": "سۆشیال میدیای لامەرکەزی کە لەلایەن {mastodon} ەوە بەهێز دەکرێت", + "about.rules": "یاساکانی سێرڤەر", "account.account_note_header": "تێبینی ", "account.add_or_remove_from_list": "زیادکردن یان سڕینەوە لە پێرستەکان", "account.badges.bot": "بوت", @@ -19,16 +19,16 @@ "account.block_domain": "بلۆکی هەموو شتێک لە {domain}", "account.blocked": "بلۆککرا", "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی", - "account.cancel_follow_request": "Withdraw follow request", + "account.cancel_follow_request": "داواکاری فۆڵۆو بکشێنەوە", "account.direct": "پەیامی تایبەت بە @{name}", "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت", "account.domain_blocked": "دۆمەین قەپاتکرا", "account.edit_profile": "دەستکاری پرۆفایل", "account.enable_notifications": "ئاگادارم بکەوە کاتێک @{name} بابەتەکان", "account.endorse": "ناساندن لە پرۆفایل", - "account.featured_tags.last_status_at": "Last post on {date}", - "account.featured_tags.last_status_never": "No posts", - "account.featured_tags.title": "{name}'s featured hashtags", + "account.featured_tags.last_status_at": "دوایین پۆست لە {date}", + "account.featured_tags.last_status_never": "هیچ پۆستێک نییە", + "account.featured_tags.title": "هاشتاگە تایبەتەکانی {name}", "account.follow": "شوێنکەوتن", "account.followers": "شوێنکەوتووان", "account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە", @@ -37,23 +37,24 @@ "account.following_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}", "account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.", "account.follows_you": "شوێنکەوتووەکانت", - "account.go_to_profile": "Go to profile", + "account.go_to_profile": "بڕۆ بۆ پڕۆفایلی", "account.hide_reblogs": "داشاردنی بووستەکان لە @{name}", - "account.joined_short": "Joined", - "account.languages": "Change subscribed languages", + "account.joined_short": "بەشداری کردووە", + "account.languages": "گۆڕینی زمانە بەشداربووەکان", "account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە", "account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.", "account.media": "میدیا", "account.mention": "ئاماژە @{name}", - "account.moved_to": "{name} has indicated that their new account is now:", + "account.moved_to": "{name} ئاماژەی بەوە کردووە کە ئەکاونتە نوێیەکەیان ئێستا:", "account.mute": "بێدەنگکردن @{name}", "account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}", "account.muted": "بێ دەنگ", - "account.open_original_page": "Open original page", + "account.open_original_page": "لاپەڕەی ئەسڵی بکەرەوە", "account.posts": "توتس", "account.posts_with_replies": "توتس و وەڵامەکان", "account.report": "گوزارشت @{name}", "account.requested": "چاوەڕێی ڕەزامەندین. کرتە بکە بۆ هەڵوەشاندنەوەی داواکاری شوێنکەوتن", + "account.requested_follow": "{name} has requested to follow you", "account.share": "پرۆفایلی @{name} هاوبەش بکە", "account.show_reblogs": "پیشاندانی بەرزکردنەوەکان لە @{name}", "account.statuses_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", @@ -77,27 +78,27 @@ "alert.unexpected.title": "تەححح!", "announcement.announcement": "بانگەواز", "attachments_list.unprocessed": "(unprocessed)", - "audio.hide": "Hide audio", + "audio.hide": "شاردنەوەی دەنگ", "autosuggest_hashtag.per_week": "{count} هەرهەفتە", "boost_modal.combo": "دەتوانیت دەست بنێی بە سەر {combo} بۆ بازدان لە جاری داهاتوو", - "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.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.copy_stacktrace": "ڕاپۆرتی هەڵەی کۆپی بکە", + "bundle_column_error.error.body": "لاپەڕەی داواکراو نەتوانرا ڕەندەر بکرێت. دەکرێت بەهۆی هەڵەیەکی کۆدەکەمانەوە بێت، یان کێشەی گونجانی وێبگەڕ.", + "bundle_column_error.error.title": "ئای نا!", + "bundle_column_error.network.body": "لە کاتی هەوڵدان بۆ بارکردنی ئەم لاپەڕەیە هەڵەیەک ڕوویدا. ئەمەش دەتوانێت بەهۆی کێشەیەکی کاتی هێڵی ئینتەرنێتەکەت یان ئەم سێرڤەرە بێت.", + "bundle_column_error.network.title": "هەڵەی تۆڕ", "bundle_column_error.retry": "دووبارە هەوڵبدە", - "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?", - "bundle_column_error.routing.title": "404", + "bundle_column_error.return": "بگەڕێرەوە ماڵەوە", + "bundle_column_error.routing.body": "پەیجی داواکراو ناتوانرێت بدۆزرێتەوە. ئایا دڵنیای کە URL ی ناو ناونیشانەکان ڕاستە?", + "bundle_column_error.routing.title": "٤٠٤", "bundle_modal_error.close": "داخستن", "bundle_modal_error.message": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.", "bundle_modal_error.retry": "دووبارە تاقی بکەوە", - "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", - "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", - "closed_registrations_modal.find_another_server": "Find another server", - "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", - "closed_registrations_modal.title": "Signing up on Mastodon", - "column.about": "About", + "closed_registrations.other_server_instructions": "بەو پێیەی ماستۆدۆن لامەرکەزییە، دەتوانیت ئەکاونتێک لەسەر سێرڤەرێکی تر دروست بکەیت و هێشتا کارلێک لەگەڵ ئەم سێرڤەرەدا بکەیت.", + "closed_registrations_modal.description": "دروستکردنی ئەکاونت لەسەر {domain} لە ئێستادا ناتوانرێت، بەڵام تکایە ئەوەت لەبەرچاو بێت کە پێویستت بە ئەکاونتێک نییە بە تایبەتی لەسەر {domain} بۆ بەکارهێنانی ماستۆدۆن.", + "closed_registrations_modal.find_another_server": "سێرڤەرێکی تر بدۆزەرەوە", + "closed_registrations_modal.preamble": "ماستۆدۆن لامەرکەزییە، بۆیە گرنگ نییە لە کوێ ئەکاونتەکەت دروست بکەیت، دەتوانیت فۆڵۆوی هەر کەسێک بکەیت و کارلێک لەگەڵیدا بکەیت لەسەر ئەم سێرڤەرە. تەنانەت دەتوانیت خۆت میوانداری بکەیت!", + "closed_registrations_modal.title": "ناو تۆمارکردن لە ماستۆدۆن", + "column.about": "دەربارە", "column.blocks": "بەکارهێنەرە بلۆککراوەکان", "column.bookmarks": "نیشانەکان", "column.community": "هێڵی کاتی ناوخۆیی", @@ -123,8 +124,8 @@ "community.column_settings.local_only": "تەنها خۆماڵی", "community.column_settings.media_only": "تەنها میدیا", "community.column_settings.remote_only": "تەنها بۆ دوور", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "گۆڕینی زمان", + "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": "ئەم توتە لە ژێر هیچ هاشتاگییەک دا ناکرێت وەک ئەوەی لە لیستەکەدا نەریزراوە. تەنها توتی گشتی دەتوانرێت بە هاشتاگی بگەڕێت.", @@ -137,8 +138,8 @@ "compose_form.poll.remove_option": "لابردنی ئەم هەڵبژاردەیە", "compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک", "compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "بڵاوی بکەوە", + "compose_form.publish_form": "بڵاوی بکەوە", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "پاشکەوتی گۆڕانکاریەکان", "compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار", @@ -151,8 +152,8 @@ "confirmations.block.block_and_report": "بلۆک & گوزارشت", "confirmations.block.confirm": "بلۆک", "confirmations.block.message": "ئایا دڵنیایت لەوەی دەتەوێت {name} بلۆک بکەیت?", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.cancel_follow_request.confirm": "داواکاری کشانەوە", + "confirmations.cancel_follow_request.message": "ئایا دڵنیای کە دەتەوێت داواکارییەکەت بۆ شوێنکەوتنی {ناو} بکشێنیتەوە؟", "confirmations.delete.confirm": "سڕینەوە", "confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?", "confirmations.delete_list.confirm": "سڕینەوە", @@ -176,20 +177,20 @@ "conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە", "conversation.open": "نیشاندان گفتوگۆ", "conversation.with": "لەگەڵ{names}", - "copypaste.copied": "Copied", - "copypaste.copy": "Copy", + "copypaste.copied": "کۆپی کراوە", + "copypaste.copy": "ڕوونووس", "directory.federated": "لە ڕاژەکانی ناسراو", "directory.local": "تەنها لە {domain}", "directory.new_arrivals": "تازە گەیشتنەکان", "directory.recently_active": "بەم دواییانە چالاکە", - "disabled_account_banner.account_settings": "Account settings", - "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", - "dismissable_banner.dismiss": "Dismiss", - "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_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.", + "disabled_account_banner.account_settings": "ڕێکخستنەکانی هەژمارە", + "disabled_account_banner.text": "ئەکاونتەکەت {disabledAccount} لە ئێستادا لەکارخراوە.", + "dismissable_banner.community_timeline": "ئەمانە دوایین پۆستی گشتی ئەو کەسانەن کە ئەکاونتەکانیان لەلایەن {domain}ەوە هۆست کراوە.", + "dismissable_banner.dismiss": "بەلاوە نان", + "dismissable_banner.explore_links": "ئەم هەواڵانە لە ئێستادا لەلایەن کەسانێکەوە لەسەر ئەم سێرڤەرە و سێرڤەرەکانی تری تۆڕی لامەرکەزی باس دەکرێن.", + "dismissable_banner.explore_statuses": "ئەم پۆستانەی ئەم سێرڤەرە و سێرڤەرەکانی تری ناو تۆڕی لامەرکەزی لە ئێستادا خەریکە کێشکردن لەسەر ئەم سێرڤەرە بەدەست دەهێنن.", + "dismissable_banner.explore_tags": "ئەم هاشتاگانە لە ئێستادا لە نێو خەڵکی سەر ئەم سێرڤەرە و سێرڤەرەکانی تری تۆڕی لامەرکەزیدا جێگەی خۆیان دەگرن.", + "dismissable_banner.public_timeline": "ئەمانە دوایین پۆستە گشتیەکانن لە کەسانی سەر ئەم سێرڤەرە و سێرڤەرەکانی تری تۆڕی لامەرکەزی کە ئەم سێرڤەرە دەزانێت.", "embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.", "embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:", "emoji_button.activity": "چالاکی", @@ -235,12 +236,16 @@ "errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد", "errors.unexpected_crash.report_issue": "کێشەی گوزارشت", "explore.search_results": "ئەنجامەکانی گەڕان", + "explore.suggested_follows": "For you", "explore.title": "گەڕان", - "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}.", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "ئەم پۆلە فلتەرە ئەو چوارچێوەیە ناگرێتەوە کە تۆ تێیدا دەستت بەم پۆستە کردووە. ئەگەر بتەوێت پۆستەکە لەم چوارچێوەیەشدا فلتەر بکرێت، دەبێت دەستکاری فلتەرەکە بکەیت.", + "filter_modal.added.context_mismatch_title": "ناتەبایی دەقی نووسراو!", + "filter_modal.added.expired_explanation": "ئەم پۆلە فلتەرە بەسەرچووە، پێویستە بەرواری بەسەرچوونی بگۆڕیت بۆ ئەوەی جێبەجێی بکات.", + "filter_modal.added.expired_title": "فلتەری بەسەرچووە!", + "filter_modal.added.review_and_configure": "بۆ پێداچوونەوە و ڕێکخستنی زیاتری ئەم پۆلە فلتەرە، بچۆ بۆ {settings_link}.", "filter_modal.added.review_and_configure_title": "Filter settings", "filter_modal.added.settings_link": "settings page", "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", @@ -528,14 +533,14 @@ "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {دەرئەنجام} other {دەرئەنجام}}", "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.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.server_stats": "Server stats:", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "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.", + "server_banner.active_users": "بەکارهێنەرانی چالاک", + "server_banner.administered_by": "بەڕێوەبردن لەلایەن:", + "server_banner.introduction": "{domain} بەشێکە لەو تۆڕە کۆمەڵایەتییە لامەرکەزییەی کە لەلایەن {mastodon}ەوە بەهێز دەکرێت.", + "server_banner.learn_more": "زیاتر فێربه", + "server_banner.server_stats": "دۆخی ڕاژەکار:", + "sign_in_banner.create_account": "هەژمار دروستبکە", + "sign_in_banner.sign_in": "بچۆ ژوورەوە", + "sign_in_banner.text": "چوونەژوورەوە بۆ فۆڵۆوکردنی پڕۆفایلی یان هاشتاگەکان، دڵخوازکردن، هاوبەشکردن و وەڵامدانەوەی پۆستەکان، یان کارلێککردن لە ئەکاونتەکەتەوە لەسەر سێرڤەرێکی جیاواز.", "status.admin_account": "کردنەوەی میانڕەوی بەڕێوەبەر بۆ @{name}", "status.admin_status": "ئەم توتە بکەوە لە ناو ڕووکاری بەڕیوەبەر", "status.block": "@{name} ئاستەنگ بکە", @@ -551,9 +556,9 @@ "status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}", "status.embed": "نیشتەجێ بکە", "status.favourite": "دڵخواز", - "status.filter": "Filter this post", + "status.filter": "ئەم پۆستە فلتەر بکە", "status.filtered": "پاڵاوتن", - "status.hide": "Hide toot", + "status.hide": "شاردنەوەی توت", "status.history.created": "{name} دروستکراوە لە{date}", "status.history.edited": "{name} دروستکاریکراوە لە{date}", "status.load_more": "زیاتر بار بکە", @@ -572,26 +577,26 @@ "status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.", "status.redraft": "سڕینەوەی و دووبارە ڕەشنووس", "status.remove_bookmark": "لابردنی نیشانه", - "status.replied_to": "Replied to {name}", + "status.replied_to": "لە وەڵامدا بۆ {name}", "status.reply": "وەڵام", "status.replyAll": "بە نووسراوە وەڵام بدەوە", "status.report": "گوزارشت @{name}", "status.sensitive_warning": "ناوەڕۆکی هەستیار", "status.share": "هاوبەشی بکە", - "status.show_filter_reason": "Show anyway", + "status.show_filter_reason": "بە هەر حاڵ نیشان بدە", "status.show_less": "کەمتر نیشان بدە", "status.show_less_all": "هەمووی بچووک بکەوە", "status.show_more": "زیاتر نیشان بدە", "status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی", - "status.show_original": "Show original", - "status.translate": "Translate", - "status.translated_from_with": "Translated from {lang} using {provider}", + "status.show_original": "پیشاندانی شێوه‌ی ڕاسته‌قینه‌", + "status.translate": "وەریبگێرە", + "status.translated_from_with": "لە {lang} وەرگێڕدراوە بە بەکارهێنانی {provider}", "status.uncached_media_warning": "بەردەست نیە", "status.unmute_conversation": "گفتوگۆی بێدەنگ", "status.unpin": "لە سەرەوە لایبە", - "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.target": "Change subscribed languages for {target}", + "subscribed_languages.lead": "تەنها پۆستەکان بە زمانە هەڵبژێردراوەکان لە ماڵەکەتدا دەردەکەون و هێڵەکانی کاتی لیستەکەت دوای گۆڕانکارییەکە. هیچیان هەڵبژێرە بۆ وەرگرتنی پۆست بە هەموو زمانەکان.", + "subscribed_languages.save": "پاشکەوتی گۆڕانکاریەکان", + "subscribed_languages.target": "گۆڕینی زمانە بەشداربووەکان بۆ {target}", "suggestions.dismiss": "ڕەتکردنەوەی پێشنیار", "suggestions.header": "لەوانەیە حەزت لەمەش بێت…", "tabs_bar.federated_timeline": "گشتی", @@ -635,7 +640,7 @@ "upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…", "upload_modal.preview_label": "پێشبینین ({ratio})", "upload_progress.label": "بار دەکرێت...", - "upload_progress.processing": "Processing…", + "upload_progress.processing": "جێبەجێکردن...", "video.close": "داخستنی ڤیدیۆ", "video.download": "داگرتنی فایل", "video.exit_fullscreen": "دەرچوون لە پڕ شاشە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 743d577d7a..96b17f2876 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Statuti è risposte", "account.report": "Palisà @{name}", "account.requested": "In attesa d'apprubazione. Cliccate per annullà a dumanda", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Sparte u prufile di @{name}", "account.show_reblogs": "Vede spartere da @{name}", "account.statuses_counter": "{count, plural, one {{counter} Statutu} other {{counter} Statuti}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Cupià stacktrace nant'à u fermacarta", "errors.unexpected_crash.report_issue": "Palisà prublemu", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index f153d823be..9ae003e76a 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Příspěvky a odpovědi", "account.report": "Nahlásit @{name}", "account.requested": "Čeká na schválení. Kliknutím žádost o sledování zrušíte", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Sdílet profil @{name}", "account.show_reblogs": "Zobrazit boosty od @{name}", "account.statuses_counter": "{count, plural, one {{counter} Příspěvek} few {{counter} Příspěvky} many {{counter} Příspěvků} other {{counter} Příspěvků}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky", "errors.unexpected_crash.report_issue": "Nahlásit problém", "explore.search_results": "Výsledky hledání", + "explore.suggested_follows": "Pro vás", "explore.title": "Objevit", + "explore.trending_links": "Zprávy", + "explore.trending_statuses": "Příspěvky", + "explore.trending_tags": "Hashtagy", "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtrů se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.", "filter_modal.added.context_mismatch_title": "Kontext se neshoduje!", "filter_modal.added.expired_explanation": "Tato kategorie filtrů vypršela, budete muset změnit datum vypršení platnosti, aby mohla být použita.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 0f29be2c97..a96d2b38eb 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Postiadau ac atebion", "account.report": "Adrodd @{name}", "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Rhannwch broffil @{name}", "account.show_reblogs": "Dangos hybiau gan @{name}", "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiad: {counter}}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd", "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem", "explore.search_results": "Canlyniadau chwilio", + "explore.suggested_follows": "I chi", "explore.title": "Archwilio", + "explore.trending_links": "Newyddion", + "explore.trending_statuses": "Postiadau", + "explore.trending_tags": "Hashnodau", "filter_modal.added.context_mismatch_explanation": "Nid yw'r categori hidlo hwn yn berthnasol i'r cyd-destun yr ydych wedi cyrchu'r postiad hwn ynddo. Os ydych chi am i'r postiad gael ei hidlo yn y cyd-destun hwn hefyd, bydd yn rhaid i chi olygu'r hidlydd.", "filter_modal.added.context_mismatch_title": "Diffyg cyfatebiaeth cyd-destun!", "filter_modal.added.expired_explanation": "Mae'r categori hidlydd hwn wedi dod i ben, bydd angen i chi newid y dyddiad dod i ben er mwyn iddo fod yn berthnasol.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 684f308a61..24064fcacf 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Indlæg og svar", "account.report": "Anmeld @{name}", "account.requested": "Afventer godkendelse. Tryk for at annullere følgeanmodning", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Del @{name}s profil", "account.show_reblogs": "Vis fremhævelser fra @{name}", "account.statuses_counter": "{count, plural, one {{counter} Indlæg} other {{counter} Indlæg}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen", "errors.unexpected_crash.report_issue": "Anmeld problem", "explore.search_results": "Søgeresultater", + "explore.suggested_follows": "Til dig", "explore.title": "Udforsk", + "explore.trending_links": "Nyheder", + "explore.trending_statuses": "Indlæg", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Denne filterkategori omfatter ikke konteksten, hvorunder dette indlæg er tilgået. Redigér filteret, hvis indlægget også ønskes filtreret i denne kontekst.", "filter_modal.added.context_mismatch_title": "Kontekstmisforhold!", "filter_modal.added.expired_explanation": "Denne filterkategori er udløbet. Ændr dens udløbsdato, for at anvende den.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 67ffd64763..784ef35fa0 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -54,10 +54,11 @@ "account.posts_with_replies": "Beiträge und Antworten", "account.report": "@{name} melden", "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Profil von @{name} teilen", "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen", "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", - "account.unblock": "@{name} entsperren", + "account.unblock": "@{name} Sperre aufheben", "account.unblock_domain": "Sperre von {domain} aufheben", "account.unblock_short": "Sperre aufheben", "account.unendorse": "Im Profil nicht mehr empfehlen", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Fehlerdiagnose in die Zwischenablage kopieren", "errors.unexpected_crash.report_issue": "Fehler melden", "explore.search_results": "Suchergebnisse", + "explore.suggested_follows": "Für dich", "explore.title": "Entdecken", + "explore.trending_links": "Nachrichten", + "explore.trending_statuses": "Beiträge", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Diese Filterkategorie gilt nicht für den Kontext, in welchem du auf diesen Beitrag zugegriffen hast. Wenn der Beitrag auch in diesem Kontext gefiltert werden soll, musst du den Filter bearbeiten.", "filter_modal.added.context_mismatch_title": "Kontext stimmt nicht überein!", "filter_modal.added.expired_explanation": "Diese Filterkategorie ist abgelaufen. Du musst das Ablaufdatum für diese Kategorie ändern.", @@ -493,7 +498,7 @@ "report.reasons.spam": "Das ist Spam", "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten", "report.reasons.violation": "Es verstößt gegen Serverregeln", - "report.reasons.violation_description": "Du weißt, welche Regeln verletzt werden", + "report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt", "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus", "report.rules.title": "Welche Regeln werden verletzt?", "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus", @@ -617,8 +622,8 @@ "upload_button.label": "Bilder, Videos oder Audios hinzufügen", "upload_error.limit": "Dateiupload-Limit überschritten.", "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.", - "upload_form.audio_description": "Beschreibung für Gehörlose und hörbehinderte Menschen", - "upload_form.description": "Bildbeschreibung für blinde und sehbehinderte Menschen", + "upload_form.audio_description": "Beschreibe den Ton für Gehörlose und hörbehinderte Menschen", + "upload_form.description": "Beschreibe für blinde und sehbehinderte Menschen", "upload_form.description_missing": "Keine Beschreibung hinzugefügt", "upload_form.edit": "Bearbeiten", "upload_form.thumbnail": "Vorschaubild ändern", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 4312e7b84b..786a5c4bb8 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1041,6 +1041,23 @@ ], "path": "app/javascript/mastodon/features/account/components/featured_tags.json" }, + { + "descriptors": [ + { + "defaultMessage": "{name} has requested to follow you", + "id": "account.requested_follow" + }, + { + "defaultMessage": "Authorize", + "id": "follow_request.authorize" + }, + { + "defaultMessage": "Reject", + "id": "follow_request.reject" + } + ], + "path": "app/javascript/mastodon/features/account/components/follow_request_note.json" + }, { "descriptors": [ { @@ -3934,7 +3951,7 @@ "id": "confirmations.discard_edit_media.confirm" }, { - "defaultMessage": "Describe for people who are deaf or hard of hearing", + "defaultMessage": "Describe for people who are hard of hearing", "id": "upload_form.audio_description" }, { diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 8026e6cdbc..cbe60a5730 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Τουτ και απαντήσεις", "account.report": "Κατάγγειλε @{name}", "account.requested": "Εκκρεμεί έγκριση. Κάνε κλικ για να ακυρώσεις το αίτημα παρακολούθησης", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Μοίρασμα του προφίλ @{name}", "account.show_reblogs": "Εμφάνιση προωθήσεων από @{name}", "account.statuses_counter": "{count, plural, one {{counter} Τουτ} other {{counter} Τουτ}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Αντιγραφή μηνυμάτων κώδικα στο πρόχειρο", "errors.unexpected_crash.report_issue": "Αναφορά προβλήματος", "explore.search_results": "Κανένα αποτέλεσμα.", + "explore.suggested_follows": "Για σένα", "explore.title": "Εξερεύνηση", + "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": "Αυτή η κατηγορία φίλτρων έχει λήξει, πρέπει να αλλάξετε την ημερομηνία λήξης για να ισχύσει.", @@ -618,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/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 666ac0e4c6..18416d6646 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index fd7755c089..04b07010cc 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -461,7 +462,6 @@ "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", - "relative_format.today": "Today at {time}", "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", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 0c8857a69a..defe52988f 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Mesaĝoj kaj respondoj", "account.report": "Raporti @{name}", "account.requested": "Atendo de aprobo. Klaku por nuligi la peton por sekvado", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Diskonigi la profilon de @{name}", "account.show_reblogs": "Montri diskonigojn de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Afiŝo} other {{counter} Afiŝoj}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo", "errors.unexpected_crash.report_issue": "Raporti problemon", "explore.search_results": "Serĉaj rezultoj", + "explore.suggested_follows": "For you", "explore.title": "Esplori", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 4540ab5d02..ab03e8965c 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Mnsjs y resp. públicas", "account.report": "Denunciar a @{name}", "account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar adhesiones de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Mensaje} other {{counter} Mensajes}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace al portapapeles", "errors.unexpected_crash.report_issue": "Informar problema", "explore.search_results": "Resultados de búsqueda", + "explore.suggested_follows": "Para vos", "explore.title": "Explorá", + "explore.trending_links": "Novedades", + "explore.trending_statuses": "Mensajes", + "explore.trending_tags": "Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que accediste a este mensaje. Si querés que el mensaje sea filtrado también en este contexto, vas a tener que editar el filtro.", "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", "filter_modal.added.expired_explanation": "Esta categoría de filtro caducó; vas a necesitar cambiar la fecha de caducidad para que se aplique.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index c5ec5d098b..c26abf3e30 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -54,6 +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.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar retoots de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +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.title": "Descubrir", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "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/es.json b/app/javascript/mastodon/locales/es.json index df14189c6f..17a878e385 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Publicaciones y respuestas", "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.report_issue": "Informar de un problema/error", "explore.search_results": "Resultados de búsqueda", + "explore.suggested_follows": "For you", "explore.title": "Explorar", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha 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, necesitará cambiar la fecha de caducidad para que se aplique.", @@ -272,7 +277,7 @@ "hashtag.column_header.tag_mode.none": "sin {additional}", "hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias", "hashtag.column_settings.select.placeholder": "Introduzca hashtags…", - "hashtag.column_settings.tag_mode.all": "Cualquiera de estos", + "hashtag.column_settings.tag_mode.all": "Todos estos", "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 19064ec043..d8f34becad 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Postitused ja vastused", "account.report": "Raporteeri @{name}", "account.requested": "Ootab kinnitust. Klõpsa jälgimise soovi tühistamiseks", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Jaga @{name} profiili", "account.show_reblogs": "Näita @{name} jagamisi", "account.statuses_counter": "{count, plural, one {{counter} postitus} other {{counter} postitust}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale", "errors.unexpected_crash.report_issue": "Teavita veast", "explore.search_results": "Otsitulemused", + "explore.suggested_follows": "Kasutajad", "explore.title": "Avasta", + "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_title": "Konteksti mittesobivus!", "filter_modal.added.expired_explanation": "Selle filtri kategooria on aegunud, peate muutma aegumiskuupäeva, kui tahate, et filter kehtiks.", @@ -253,7 +258,7 @@ "filter_modal.select_filter.title": "Filtreeri seda postitust", "filter_modal.title.status": "Postituse filtreerimine", "follow_recommendations.done": "Valmis", - "follow_recommendations.heading": "Jälgi inimesi, kelle postituse tahaksite näha! Mõned soovitused on siin.", + "follow_recommendations.heading": "Jälgi inimesi, kelle postitusi tahaksid näha! Mõned soovitused on siin.", "follow_recommendations.lead": "Postitused inimestelt, keda te jälgite ilmuvad ajalises järjekorras teie kodu ajajoonel. Ärge kartke eksida, alati saate inimeste jälgimist ka lõpetada!", "follow_request.authorize": "Autoriseeri", "follow_request.reject": "Hülga", @@ -261,7 +266,7 @@ "footer.about": "Teave", "footer.directory": "Profiilikataloog", "footer.get_app": "Tõmba äpp", - "footer.invite": "Liituma kutsumine", + "footer.invite": "Kutsu liituma", "footer.keyboard_shortcuts": "Klaviatuuri otseteed", "footer.privacy_policy": "Isikuandmete kaitse", "footer.source_code": "Lähtekood", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index fd17288b3a..854baf0d50 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Bidalketak eta erantzunak", "account.report": "Salatu @{name}", "account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name}(e)ren profila elkarbanatu", "account.show_reblogs": "Erakutsi @{name}(r)en bultzadak", "account.statuses_counter": "{count, plural, one {Bidalketa {counter}} other {{counter} bidalketa}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera", "errors.unexpected_crash.report_issue": "Eman arazoaren berri", "explore.search_results": "Bilaketaren emaitzak", + "explore.suggested_follows": "For you", "explore.title": "Arakatu", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.", "filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!", "filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 13382d67a2..f938541bee 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "فرسته‌ها و پاسخ‌ها", "account.report": "گزارش ‎@{name}", "account.requested": "منتظر پذیرش است. برای لغو درخواست پی‌گیری کلیک کنید", + "account.requested_follow": "{name} has requested to follow you", "account.share": "هم‌رسانی نمایهٔ ‎@{name}", "account.show_reblogs": "نمایش تقویت‌های ‎@{name}", "account.statuses_counter": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال", "errors.unexpected_crash.report_issue": "گزارش مشکل", "explore.search_results": "نتایج جست‌وجو", + "explore.suggested_follows": "For you", "explore.title": "کاوش", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "این دستهٔ پالایه به بافتاری که در آن به این فرسته دسترسی دارید اعمال نمی‌شود. اگر می‌خواهید فرسته در این بافتار هم پالوده شود، باید پالایه را ویرایش کنید.", "filter_modal.added.context_mismatch_title": "بافتار نامطابق!", "filter_modal.added.expired_explanation": "این دستهٔ پالایه منقضی شده است. برای اعمالش باید تاریخ انقضا را عوض کنید.", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index bda6df0752..96879c8b0b 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -3,11 +3,11 @@ "about.contact": "Yhteystiedot:", "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu", - "about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.", - "about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.", + "about.domain_blocks.preamble": "Yleisesti Mastodonin avulla voidaan tarkastella minkä tahansa muun fediverse-palvelinten sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.", + "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.", "about.domain_blocks.silenced.title": "Rajoitettu", - "about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.", - "about.domain_blocks.suspended.title": "Keskeytetty", + "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", + "about.domain_blocks.suspended.title": "Jäädytetty", "about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.", "about.powered_by": "Hajautettu sosiaalinen media, tarjoaa {mastodon}", "about.rules": "Palvelimen säännöt", @@ -16,7 +16,7 @@ "account.badges.bot": "Botti", "account.badges.group": "Ryhmä", "account.block": "Estä @{name}", - "account.block_domain": "Estä verkkotunnus {domain}", + "account.block_domain": "Estä palvelu {domain}", "account.blocked": "Estetty", "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", "account.cancel_follow_request": "Peruuta seurantapyyntö", @@ -54,11 +54,12 @@ "account.posts_with_replies": "Viestit ja vastaukset", "account.report": "Ilmoita käyttäjästä @{name}", "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}", - "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}", + "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", "account.unblock": "Salli @{name}", - "account.unblock_domain": "Salli {domain}", + "account.unblock_domain": "Salli palvelu {domain}", "account.unblock_short": "Poista esto", "account.unendorse": "Poista suosittelu profiilistasi", "account.unfollow": "Lopeta seuraaminen", @@ -93,7 +94,7 @@ "bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudelleen", "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja silti olla vuorovaikutuksessa tämän kanssa.", - "closed_registrations_modal.description": "Tilin luominen palvelimeen {domain} ei ole tällä hetkellä mahdollista, mutta huomioi, että et tarvitse tiliä erityisesti palvelimeen {domain} käyttääksesi Mastodonia.", + "closed_registrations_modal.description": "Tilin luonti palveluun {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen palvelun tiliä.", "closed_registrations_modal.find_another_server": "Etsi toinen palvelin", "closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!", "closed_registrations_modal.title": "Rekisteröityminen Mastodoniin", @@ -159,8 +160,8 @@ "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?", "confirmations.discard_edit_media.confirm": "Hylkää", "confirmations.discard_edit_media.message": "Onko sinulla tallentamattomia muutoksia kuvaukseen tai esikatseluun, hylätäänkö ne silti?", - "confirmations.domain_block.confirm": "Piilota koko verkko-osoite", - "confirmations.domain_block.message": "Oletko todella varma, että haluat estää koko {domain}? Useimmissa tapauksissa muutama kohdennettu lohko tai mykistys on riittävä ja parempi. Et näe kyseisen verkkotunnuksen sisältöä missään julkisessa aikajanassa tai ilmoituksissa. Seuraajasi tältä verkkotunnukselta poistetaan.", + "confirmations.domain_block.confirm": "Estä koko palvelu", + "confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.", "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Oletko varma, että haluat kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", @@ -179,12 +180,12 @@ "copypaste.copied": "Kopioitu", "copypaste.copy": "Kopioi", "directory.federated": "Koko tunnettu fediverse", - "directory.local": "Vain palvelimelta {domain}", + "directory.local": "Vain palvelusta {domain}", "directory.new_arrivals": "Äskettäin saapuneet", "directory.recently_active": "Hiljattain aktiiviset", "disabled_account_banner.account_settings": "Tilin asetukset", "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", - "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset viestit ihmisiltä, joiden tilejä isännöi {domain}.", + "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset julkaisut käyttäjiltä, joiden tilejä isännöi {domain}.", "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.", @@ -214,12 +215,12 @@ "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.", - "empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.", + "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.", "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_requests": "Sinulla ei ole vielä seurauspyyntöjä. Kun saat sellaisen, näkyy se tässä.", + "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}", "empty_column.home.suggestions": "Katso joitakin ehdotuksia", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle", "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta", "explore.search_results": "Hakutulokset", + "explore.suggested_follows": "Sinulle", "explore.title": "Selaa", + "explore.trending_links": "Uutiset", + "explore.trending_statuses": "Julkaisut", + "explore.trending_tags": "Aihetunnisteet", "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet käyttänyt tätä viestiä. Jos haluat, että viesti suodatetaan myös tässä yhteydessä, sinun on muokattava suodatinta.", "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!", "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut ja sinun on muutettava viimeistä voimassaolon päivää, jotta sitä voidaan käyttää.", @@ -338,7 +343,7 @@ "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", "limited_account_hint.action": "Näytä profiili joka tapauksessa", - "limited_account_hint.title": "Palvelun {domain} moderaattorit ovat piilottaneet tämän profiilin.", + "limited_account_hint.title": "Palvelun {domain} ylläpito on piilottanut tämän profiilin.", "lists.account.add": "Lisää listaan", "lists.account.remove": "Poista listasta", "lists.delete": "Poista lista", @@ -368,7 +373,7 @@ "navigation_bar.compose": "Luo uusi viesti", "navigation_bar.direct": "Yksityisviestit", "navigation_bar.discover": "Löydä uutta", - "navigation_bar.domain_blocks": "Estetyt verkkotunnukset", + "navigation_bar.domain_blocks": "Estetyt palvelut", "navigation_bar.edit_profile": "Muokkaa profiilia", "navigation_bar.explore": "Selaa", "navigation_bar.favourites": "Suosikit", @@ -413,7 +418,7 @@ "notifications.column_settings.reblog": "Buustit:", "notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.sound": "Äänimerkki", - "notifications.column_settings.status": "Uudet viestit:", + "notifications.column_settings.status": "Uudet julkaisut:", "notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset", "notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset", "notifications.column_settings.update": "Muokkaukset:", @@ -523,14 +528,14 @@ "search_results.all": "Kaikki", "search_results.hashtags": "Aihetunnisteet", "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", - "search_results.statuses": "Viestit", + "search_results.statuses": "Julkaisut", "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.", "search_results.title": "Etsi {q}", "search_results.total": "{count, number} {count, plural, one {tulos} other {tulosta}}", "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)", "server_banner.active_users": "aktiiviset käyttäjät", "server_banner.administered_by": "Ylläpitäjä:", - "server_banner.introduction": "{domain} on osa hajautettua sosiaalista verkostoa, jonka tarjoaa {mastodon}.", + "server_banner.introduction": "{domain} kuuluu hajautettuun sosiaaliseen verkostoon, jonka voimanlähde on {mastodon}.", "server_banner.learn_more": "Lue lisää", "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", @@ -617,13 +622,13 @@ "upload_button.label": "Lisää mediaa", "upload_error.limit": "Tiedostolatauksien raja ylitetty.", "upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.", - "upload_form.audio_description": "Kuvaile kuulovammaisille", - "upload_form.description": "Anna kuvaus näkörajoitteisia varten", + "upload_form.audio_description": "Kuvaile kuuroille tai kuulorajoitteisille", + "upload_form.description": "Kuvaile sokeille tai näkörajoitteisille", "upload_form.description_missing": "Kuvausta ei ole lisätty", "upload_form.edit": "Muokkaa", "upload_form.thumbnail": "Vaihda pikkukuva", "upload_form.undo": "Peru", - "upload_form.video_description": "Kuvaile kuulo- tai näkövammaisille", + "upload_form.video_description": "Kuvaile kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille", "upload_modal.analyzing_picture": "Analysoidaan kuvaa…", "upload_modal.apply": "Käytä", "upload_modal.applying": "Asetetaan…", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index f716b63739..ef5702dc02 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Uppsløg og svar", "account.report": "Melda @{name}", "account.requested": "Bíðar eftir góðkenning. Trýst fyri at angra umbønina", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Deil vanga @{name}'s", "account.show_reblogs": "Vís lyft frá @{name}", "account.statuses_counter": "{count, plural, one {{counter} postur} other {{counter} postar}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Avrita stakkaslóðina til setiborðið", "errors.unexpected_crash.report_issue": "Fráboða trupulleika", "explore.search_results": "Leitiúrslit", + "explore.suggested_follows": "Til tín", "explore.title": "Rannsaka", + "explore.trending_links": "Tíðindi", + "explore.trending_statuses": "Postar", + "explore.trending_tags": "Frámerki", "filter_modal.added.context_mismatch_explanation": "Hesin filturbólkurin viðvíkur ikki kontekstinum, sum tú hevur fingið atgongd til hendan postin. Ynskir tú at posturin verður filtreraður í hesum kontekstinum eisini, so er neyðugt at tú rættar filtrið.", "filter_modal.added.context_mismatch_title": "Ósamsvar við kontekst!", "filter_modal.added.expired_explanation": "Hesin filturbólkurin er útgingin, og tú mást broyta dagfestingina fyri at hann skal virka.", @@ -617,13 +622,13 @@ "upload_button.label": "Legg myndir, sjónfílu ella ljóðfílu afturat", "upload_error.limit": "Farið er um markið fyri fíluuppsending.", "upload_error.poll": "Ikki loyvt at leggja fílur upp í spurnarkanningum.", - "upload_form.audio_description": "Lýsing, av innihaldi, fyri deyv", - "upload_form.description": "Lýsing, av innihaldi, fyri blind og sjónveik", + "upload_form.audio_description": "Lýs fyri teimum, sum eru deyv ella hava ringa hoyrn", + "upload_form.description": "Lýs fyri teimum, sum eru blind ella eru sjónveik", "upload_form.description_missing": "Lýsing vantar", "upload_form.edit": "Rætta", "upload_form.thumbnail": "Broyt smámynd", "upload_form.undo": "Strika", - "upload_form.video_description": "Lýsing fyri deyv, blind og sjónveik", + "upload_form.video_description": "Lýs fyri teimum, sum eru deyv, hava ringa hoyrn, eru blind ella eru sjónveik", "upload_modal.analyzing_picture": "Greini mynd…", "upload_modal.apply": "Ger virkið", "upload_modal.applying": "Geri virkið…", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index d0d84fa4ac..965aa49630 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -54,6 +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.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}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.report_issue": "Signaler un problème", "explore.search_results": "Résultats", + "explore.suggested_follows": "Pour vous", "explore.title": "Explorer", + "explore.trending_links": "Nouvelles", + "explore.trending_statuses": "Messages", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Cette catégorie de filtre ne s'applique pas au contexte dans lequel vous avez accédé à cette publication. Si vous voulez que la publication soit filtrée dans ce contexte également, vous devrez modifier le filtre.", "filter_modal.added.context_mismatch_title": "Incompatibilité du contexte!", "filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index ce004ed9fe..863a858cff 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Messages 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.share": "Partager le profil de @{name}", "account.show_reblogs": "Afficher les partages de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Message} other {{counter} Messages}}", @@ -186,7 +187,7 @@ "disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.", "dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.", "dismissable_banner.dismiss": "Rejeter", - "dismissable_banner.explore_links": "Ces nouvelles sont actuellement en cours de discussion par des personnes sur d'autres serveurs du réseau décentralisé ainsi que sur celui-ci.", + "dismissable_banner.explore_links": "On parle actuellement de ces nouvelles sur ce serveur, ainsi que sur d'autres serveurs du réseau décentralisé.", "dismissable_banner.explore_statuses": "Ces publications depuis les serveurs du réseau décentralisé, dont celui-ci, sont actuellement en train de gagner de l'ampleur sur ce serveur.", "dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.", "dismissable_banner.public_timeline": "Voici les publications publiques les plus récentes des personnes de ce serveur et des autres du réseau décentralisé que ce serveur connait.", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.report_issue": "Signaler le problème", "explore.search_results": "Résultats de la recherche", + "explore.suggested_follows": "Pour vous", "explore.title": "Explorer", + "explore.trending_links": "Nouvelles", + "explore.trending_statuses": "Messages", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Cette catégorie de filtre ne s'applique pas au contexte dans lequel vous avez accédé à ce message. Si vous voulez que le message soit filtré dans ce contexte également, vous devrez modifier le filtre.", "filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !", "filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 86cfe64ad6..4aafeb5000 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -12,7 +12,7 @@ "about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}", "about.rules": "Serverrigels", "account.account_note_header": "Opmerking", - "account.add_or_remove_from_list": "Tafoegje of fuortsmite fan listen út", + "account.add_or_remove_from_list": "Tafoegje oan of fuortsmite út listen", "account.badges.bot": "Bot", "account.badges.group": "Groep", "account.block": "@{name} blokkearje", @@ -36,7 +36,7 @@ "account.following": "Folgjend", "account.following_counter": "{count, plural, one {{counter} folgjend} other {{counter} folgjend}}", "account.follows.empty": "Dizze brûker folget noch net ien.", - "account.follows_you": "Folget dy", + "account.follows_you": "Folget jo", "account.go_to_profile": "Gean nei profyl", "account.hide_reblogs": "Boosts fan @{name} ferstopje", "account.joined_short": "Registrearre op", @@ -45,15 +45,16 @@ "account.locked_info": "De privacysteat fan dizze account is op beskoattele set. De eigener bepaalt hânmjittich wa’t dyjinge folgje kin.", "account.media": "Media", "account.mention": "@{name} fermelde", - "account.moved_to": "{name} is ferhuze net:", + "account.moved_to": "{name} is ferhuze nei:", "account.mute": "@{name} negearje", "account.mute_notifications": "Meldingen fan @{name} negearje", "account.muted": "Negearre", - "account.open_original_page": "Iepenje orizjinele side", + "account.open_original_page": "Orizjinele side iepenje", "account.posts": "Berjochten", "account.posts_with_replies": "Berjochten en reaksjes", "account.report": "@{name} rapportearje", "account.requested": "Wacht op goedkarring. Klik om it folchfersyk te annulearjen", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Profyl fan @{name} diele", "account.show_reblogs": "Boosts fan @{name} toane", "account.statuses_counter": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}", @@ -63,39 +64,39 @@ "account.unendorse": "Net op profyl werjaan", "account.unfollow": "Net mear folgje", "account.unmute": "@{name} net langer negearje", - "account.unmute_notifications": "Notifikaasjes fan @{name} ynskeakelje", + "account.unmute_notifications": "Meldingen fan @{name} ynskeakelje", "account.unmute_short": "Net mear negearje", "account_note.placeholder": "Klik om notysje ta te foegjen", - "admin.dashboard.daily_retention": "Meidogger retinsjegraad per dei nei oanmelding", - "admin.dashboard.monthly_retention": "Meidogger retinsjegraad per moanne nei oanmelding", + "admin.dashboard.daily_retention": "Brûkerretinsjegraad per dei nei oanmelding", + "admin.dashboard.monthly_retention": "Brûkerretinsjegraad per moanne nei oanmelding", "admin.dashboard.retention.average": "Gemiddelde", - "admin.dashboard.retention.cohort": "Moanne fan registraasje", + "admin.dashboard.retention.cohort": "Registraasjemoanne", "admin.dashboard.retention.cohort_size": "Nije brûkers", - "alert.rate_limited.message": "Besykje asjebleaft opnij nei {retry_time, time, medium}.", + "alert.rate_limited.message": "Opnij probearje nei {retry_time, time, medium}.", "alert.rate_limited.title": "Dataferkear beheind", - "alert.unexpected.message": "Der barde in ûnferwachte flater.", + "alert.unexpected.message": "Der is in ûnferwachte flater bard.", "alert.unexpected.title": "Oepsy!", - "announcement.announcement": "Meidieling", + "announcement.announcement": "Oankundiging", "attachments_list.unprocessed": "(net ferwurke)", "audio.hide": "Audio ferstopje", "autosuggest_hashtag.per_week": "{count} yn ’e wike", - "boost_modal.combo": "Jo kinne op {combo} drukke om dit in oare kear oer te slaan", - "bundle_column_error.copy_stacktrace": "Kopiearje flaterrapport", + "boost_modal.combo": "Jo kinne op {combo} drukke om dit de folgjende kear oer te slaan", + "bundle_column_error.copy_stacktrace": "Flaterrapport kopiearje", "bundle_column_error.error.body": "De opfrege side koe net werjûn wurde. It kin wêze troch in flater yn ús koade, of in probleem mei browserkompatibiliteit.", "bundle_column_error.error.title": "Oh nee!", - "bundle_column_error.network.body": "Der wie in flater by it laden fan dizze side. Dit kin komme troch in tydlik probleem mei jo ynternetferbining of dizze server.", + "bundle_column_error.network.body": "Der is in flater bard by it laden fan dizze side. Dit kin komme troch in tydlik probleem mei jo ynternetferbining of dizze server.", "bundle_column_error.network.title": "Netwurkflater", "bundle_column_error.retry": "Opnij probearje", "bundle_column_error.return": "Tebek nei startside", - "bundle_column_error.routing.body": "De opfrege side kin net fûn wurde. Binne jo wis dat de URL yn 'e adresbalke goed is?", + "bundle_column_error.routing.body": "De opfrege side kin net fûn wurde. Binne jo wis dat de URL yn de adresbalke goed is?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Slute", - "bundle_modal_error.message": "Der gie der mis by it laden fan dizze komponint.", + "bundle_modal_error.message": "Der gie wat mis by it laden fan dizze komponint.", "bundle_modal_error.retry": "Opnij probearje", - "closed_registrations.other_server_instructions": "Sûnt Mastodon desintralisearre is, kinne jo in akkount meitsje op in oare server en noch hieltyd ynteraksje hawwe mei dizze.", - "closed_registrations_modal.description": "It oanmeitsjen fan in akkount op {domain} is op it stuit net mooglik, mar hâld asjebleaft yn gedachten dat jo gjin akkount spesifyk op {domain} nedich hawwe om Mastodon te brûken.", + "closed_registrations.other_server_instructions": "Omdat Mastodon desintralisearre is, kinne jo in account meitsje op in oare server en noch hieltyd ynteraksje hawwe mei dizze.", + "closed_registrations_modal.description": "It oanmeitsjen fan in account op {domain} is op dit stuit net mooglik, mar hâld asjebleaft yn gedachten dat jo gjin account spesifyk op {domain} nedich hawwe om Mastodon te brûken.", "closed_registrations_modal.find_another_server": "Sykje in oare server", - "closed_registrations_modal.preamble": "Mastodon is desintralisearre, dus nettsjinsteande wêr't jo jo akkount oanmeitsje, jo kinne elkenien op dizze server folgje en ynteraksje mei hawwe. Jo kinne it sels sels hoste!", + "closed_registrations_modal.preamble": "Mastodon is desintralisearre, dus nettsjinsteande wêr't jo jo account oanmeitsje, jo kinne elkenien op dizze server folgje en der ynteraksje mei hawwe. Jo kinne it sels sels hoste!", "closed_registrations_modal.title": "Oanmelde op Mastodon", "column.about": "Oer", "column.blocks": "Blokkearre brûkers", @@ -103,7 +104,7 @@ "column.community": "Lokale tiidline", "column.direct": "Direkte berjochten", "column.directory": "Profilen trochsykje", - "column.domain_blocks": "Blokkeare domeinen", + "column.domain_blocks": "Blokkearre domeinen", "column.favourites": "Favoriten", "column.follow_requests": "Folchfersiken", "column.home": "Startside", @@ -112,13 +113,13 @@ "column.notifications": "Meldingen", "column.pins": "Fêstsette berjochten", "column.public": "Globale tiidline", - "column_back_button.label": "Werom", + "column_back_button.label": "Tebek", "column_header.hide_settings": "Ynstellingen ferstopje", "column_header.moveLeft_settings": "Kolom nei links ferpleatse", "column_header.moveRight_settings": "Kolom nei rjochts ferpleatse", "column_header.pin": "Fêstsette", "column_header.show_settings": "Ynstellingen toane", - "column_header.unpin": "Los helje", + "column_header.unpin": "Losmeitsje", "column_subheading.settings": "Ynstellingen", "community.column_settings.local_only": "Allinnich lokaal", "community.column_settings.media_only": "Allinnich media", @@ -127,40 +128,40 @@ "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": "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.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.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 wolsto kwyt?", "compose_form.poll.add_option": "Kar tafoegje", - "compose_form.poll.duration": "Doer fan de poll", - "compose_form.poll.option_placeholder": "Keuze {number}", + "compose_form.poll.duration": "Doer fan de enkête", + "compose_form.poll.option_placeholder": "Kar {number}", "compose_form.poll.remove_option": "Dizze kar fuortsmite", - "compose_form.poll.switch_to_multiple": "Poll wizigje om meardere karren ta te stean", - "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.poll.switch_to_multiple": "Enkête wizigje om meardere karren ta te stean", + "compose_form.poll.switch_to_single": "Enkête wizigje om in inkelde kar ta te stean", "compose_form.publish": "Publisearje", - "compose_form.publish_form": "Publish", + "compose_form.publish_form": "Publisearje", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Wizigingen bewarje", "compose_form.sensitive.hide": "{count, plural, one {Media as gefoelich markearje} other {Media as gefoelich markearje}}", - "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", - "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Media as gefoelich markearre} other {Media as gefoelich markearre}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is net as gefoelich markearre} other {Media is net as gefoelich markearre}}", "compose_form.spoiler.marked": "Ynhâldswarskôging fuortsmite", "compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje", - "compose_form.spoiler_placeholder": "Write your warning here", + "compose_form.spoiler_placeholder": "Warskôgingstekst", "confirmation_modal.cancel": "Annulearje", "confirmations.block.block_and_report": "Blokkearje en rapportearje", "confirmations.block.confirm": "Blokkearje", "confirmations.block.message": "Bisto wis datsto {name} blokkearje wolst?", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.cancel_follow_request.confirm": "Fersyk annulearje", + "confirmations.cancel_follow_request.message": "Binne jo wis dat jo jo fersyk om {name} te folgjen annulearje wolle?", "confirmations.delete.confirm": "Fuortsmite", "confirmations.delete.message": "Bisto wis datsto dit berjocht fuortsmite wolst?", "confirmations.delete_list.confirm": "Fuortsmite", "confirmations.delete_list.message": "Bisto wis datsto dizze list foar permanint fuortsmite wolst?", "confirmations.discard_edit_media.confirm": "Fuortsmite", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?", "confirmations.domain_block.confirm": "Hide entire domain", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.domain_block.message": "Binne jo echt wis dat jo alles fan {domain} negearje wolle? Yn de measte gefallen is it blokkearjen of negearjen fan in pear spesifike persoanen genôch en better. Jo sille gjin berjochten fan dizze server op iepenbiere tiidlinen sjen of yn jo meldingen. Jo folgers fan dizze server wurde fuortsmiten.", "confirmations.logout.confirm": "Ofmelde", "confirmations.logout.message": "Bisto wis datsto ôfmelde wolst?", "confirmations.mute.confirm": "Negearje", @@ -182,16 +183,16 @@ "directory.local": "Allinnich fan {domain}", "directory.new_arrivals": "Nije accounts", "directory.recently_active": "Resint aktyf", - "disabled_account_banner.account_settings": "Account settings", - "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "disabled_account_banner.account_settings": "Accountynstellingen", + "disabled_account_banner.text": "Jo account {disabledAccount} is op dit stuit útskeakele.", + "dismissable_banner.community_timeline": "Dit binne de meast resinte iepenbiere berjochten fan accounts op {domain}.", "dismissable_banner.dismiss": "Slute", - "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_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.explore_links": "Dizze nijsberjochten winne oan populariteit op dizze en oare servers binnen it desintrale netwurk.", + "dismissable_banner.explore_statuses": "Dizze berjochten winne oan populariteit op dizze en oare servers binnen it desintrale netwurk.", + "dismissable_banner.explore_tags": "Dizze hashtags winne oan populariteit op dizze en oare servers binnen it desintrale netwurk.", + "dismissable_banner.public_timeline": "Dit binne de meast resinte iepenbiere berjochten fan accounts op dizze en oare servers binnen it desintrale netwurk. Jo kinne ûnder ‘Ynstellingen > Foarkarren > Oars’ kieze hokker talen jo sjen wolle.", "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", + "embed.preview": "Sa komt it der út te sjen:", "emoji_button.activity": "Aktiviteiten", "emoji_button.clear": "Wiskje", "emoji_button.custom": "Oanpast", @@ -199,7 +200,7 @@ "emoji_button.food": "Iten en drinken", "emoji_button.label": "Emoji tafoegje", "emoji_button.nature": "Natuer", - "emoji_button.not_found": "No matching emojis found", + "emoji_button.not_found": "Gjin oerienkommende emoji fûn", "emoji_button.objects": "Objekten", "emoji_button.people": "Minsken", "emoji_button.recent": "Faaks brûkt", @@ -211,41 +212,45 @@ "empty_column.account_timeline": "Hjir binne gjin berjochten!", "empty_column.account_unavailable": "Profyl net beskikber", "empty_column.blocks": "Do hast noch gjin brûkers blokkearre.", - "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", - "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.bookmarked_statuses": "Jo hawwe noch gjin berjochten oan jo blêdwizers tafoege. Wannear’t jo der ien oan jo blêdwizers tafoegje, falt dizze hjir te sjen.", + "empty_column.community": "De lokale tiidline is noch leech. Pleats in iepenbier berjocht om de spits ôf te biten!", + "empty_column.direct": "Jo hawwe noch gjin direkte berjochten. Wannear’t jo der ien ferstjoere of ûntfang, komt dizze hjir te stean.", "empty_column.domain_blocks": "Der binne noch gjin blokkearre domeinen.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", - "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", - "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", - "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.explore_statuses": "Op dit stuit binne der gjin trends. Kom letter werom!", + "empty_column.favourited_statuses": "Jo hawwe noch gjin favorite berjochten. Wannear’t jo ien as favoryt markearje, falt dizze hjir te sjen.", + "empty_column.favourites": "Net ien hat dit berjocht noch as favoryt markearre. Wannear’t ien dit docht, falt dat hjir te sjen.", + "empty_column.follow_recommendations": "It liket der op dat der gjin oanrekommandaasjes foar jo oanmakke wurde kinne. Jo kinne probearje te sykjen nei minsken dy’t jo miskien kinne, sykje op hashtags, de lokale en globale tiidlinen besjen of de brûkersgids trochblêdzje.", + "empty_column.follow_requests": "Jo hawwe noch gjin folchfersiken ûntfongen. Wannear’t jo der ien ûntfange, falt dat hjir te sjen.", + "empty_column.hashtag": "Der is noch neat te finen ûnder dizze hashtag.", + "empty_column.home": "Dizze tiidline is leech! Folgje mear minsken om it te foljen. {suggestions}", "empty_column.home.suggestions": "Suggestjes besjen", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.lists": "Jo hawwe noch gjin inkelde list. Wannear’t jo der ien oanmakke hawwe, falt dat hjir te sjen.", "empty_column.mutes": "Do hast noch gjin brûkers negearre.", "empty_column.notifications": "Do hast noch gjin meldingen. Ynteraksjes mei oare minsken sjochsto hjir.", "empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen", "error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.", "error.unexpected_crash.explanation_addons": "Dizze side kin net goed toand wurde. Dit probleem komt faaks troch in browserútwreiding of ark foar automatysk oersetten.", - "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", + "error.unexpected_crash.next_steps": "Probearje dizze side te fernijen. Wannear’t dit net helpt is it noch hieltyd mooglik om Mastodon yn in oare browser of mobile app te brûken.", + "error.unexpected_crash.next_steps_addons": "Probearje dizze út te skeakeljen en de side te fernijen. Wannear’t dit net helpt is it noch hieltyd mooglik om Mastodon yn in oare browser of mobile app te brûken.", + "errors.unexpected_crash.copy_stacktrace": "Stacktrace nei klamboerd kopiearje", "errors.unexpected_crash.report_issue": "Technysk probleem melde", "explore.search_results": "Sykresultaten", + "explore.suggested_follows": "For you", "explore.title": "Ferkenne", - "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}.", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Dizze filterkategory is net fan tapassing op de kontekst wêryn jo dit berjocht benadere hawwe. As jo wolle dat it berjocht ek yn dizze kontekst filtere wurdt, moatte jo it filter bewurkje.", + "filter_modal.added.context_mismatch_title": "Kontekst komt net oerien!", + "filter_modal.added.expired_explanation": "Dizze filterkategory is ferrûn. Jo moatte de ferrindatum wizigje om de kategory tapasse te kinnen.", + "filter_modal.added.expired_title": "Filter ferrûn!", + "filter_modal.added.review_and_configure": "Gean nei {settings_link} om dizze filterkategory opnij te besjen en fierder te konfigurearjen.", "filter_modal.added.review_and_configure_title": "Filterynstellingen", "filter_modal.added.settings_link": "ynstellingenside", - "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.short_explanation": "Dit berjocht is tafoege oan de folgjende filterkategory: {title}.", "filter_modal.added.title": "Filter tafoege!", - "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.context_mismatch": "is net fan tapassing op dizze kontekst", "filter_modal.select_filter.expired": "ferrûn", "filter_modal.select_filter.prompt_new": "Nije kategory: {name}", "filter_modal.select_filter.search": "Sykje of tafoegje", @@ -254,10 +259,10 @@ "filter_modal.title.status": "In berjocht filterje", "follow_recommendations.done": "Klear", "follow_recommendations.heading": "Folgje minsken dêr’tsto graach berjochten fan sjen wolst! Hjir binne wat suggestjes.", - "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!", + "follow_recommendations.lead": "Berjochten fan minsken dy’t jo folgje sille yn gronologyske folchoarder op jo starttiidline ferskine. Wês net bang om hjiryn flaters te meitsjen, want jo kinne minsken op elk momint krekt sa ienfâldich ûntfolgje!", "follow_request.authorize": "Goedkarre", "follow_request.reject": "Wegerje", - "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.", + "follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.", "footer.about": "Oer", "footer.directory": "Profylmap", "footer.get_app": "App downloade", @@ -270,41 +275,41 @@ "hashtag.column_header.tag_mode.all": "en {additional}", "hashtag.column_header.tag_mode.any": "of {additional}", "hashtag.column_header.tag_mode.none": "sûnder {additional}", - "hashtag.column_settings.select.no_options_message": "No suggestions found", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", - "hashtag.column_settings.tag_mode.any": "Any of these", - "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.select.no_options_message": "Gjin suggestjes fûn", + "hashtag.column_settings.select.placeholder": "Folje hashtags yn…", + "hashtag.column_settings.tag_mode.all": "Allegearre", + "hashtag.column_settings.tag_mode.any": "Ien fan dizze", + "hashtag.column_settings.tag_mode.none": "Gjin fan dizze", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", + "hashtag.follow": "Hashtag folgje", + "hashtag.unfollow": "Hashtag ûntfolgje", "home.column_settings.basic": "Algemien", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", "home.hide_announcements": "Meidielingen ferstopje", "home.show_announcements": "Meidielingen toane", - "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", - "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", - "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", - "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", - "interaction_modal.on_another_server": "On a different server", + "interaction_modal.description.favourite": "Jo kinne mei in Mastodon-account dit berjocht as favoryt markearje, om dy brûker witte te litten dat jo it berjocht wurdearje en om it te bewarjen.", + "interaction_modal.description.follow": "Jo kinne mei in Mastodon-account {name} folgje, om sa harren berjochten op jo starttiidline te ûntfangen.", + "interaction_modal.description.reblog": "Jo kinne mei in Mastodon-account dit berjocht booste, om it sa mei jo folgers te dielen.", + "interaction_modal.description.reply": "Jo kinne mei in Mastodon-account op dit berjocht reagearje.", + "interaction_modal.on_another_server": "Op een oare server", "interaction_modal.on_this_server": "Op dizze 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.title.favourite": "Favourite {name}'s post", + "interaction_modal.other_server_instructions": "Kopiearje en plak ienfâldich dizze URL yn it sykfjild fan de troch jo brûkte Mastodon-app of op de website fan de Mastodon-server wêrop jo oanmeld binne.", + "interaction_modal.preamble": "Mastodon is desintralisearre. Dêrom hawwe jo gjin account op dizze Mastodon-server nedich, wannear’t jo al in account op in oare Mastodon-server of kompatibel platfoarm hawwe.", + "interaction_modal.title.favourite": "Berjocht fan {name} as favoryt markearje", "interaction_modal.title.follow": "{name} folgje", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", - "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "interaction_modal.title.reblog": "Berjocht fan {name} booste", + "interaction_modal.title.reply": "Op it berjocht fan {name} reagearje", + "intervals.full.days": "{number, plural, one {# dei} other {# dagen}} lyn", + "intervals.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn", + "intervals.full.minutes": "{number, plural, one {# minút} other {# minuten}} lyn", "keyboard_shortcuts.back": "to navigate back", "keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.boost": "Berjocht booste", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Omskriuwing", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "Direkte berjochten toane", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "Berjocht iepenje", "keyboard_shortcuts.favourite": "As favoryt markearje", @@ -333,38 +338,38 @@ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "Nei boppe yn list ferpleatse", "lightbox.close": "Slute", - "lightbox.compress": "Compress image view box", - "lightbox.expand": "Expand image view box", + "lightbox.compress": "Ofbylding passend werjaan", + "lightbox.expand": "Ofbylding grut werjaan", "lightbox.next": "Folgjende", "lightbox.previous": "Foarige", "limited_account_hint.action": "Profyl dochs besjen", - "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "limited_account_hint.title": "Dit profyl is troch de behearders fan {domain} ferstoppe.", "lists.account.add": "Oan list tafoegje", "lists.account.remove": "Ut list fuortsmite", "lists.delete": "List fuortsmite", - "lists.edit": "Edit list", + "lists.edit": "List bewurkje", "lists.edit.submit": "Titel wizigje", - "lists.new.create": "Add list", + "lists.new.create": "List tafoegje", "lists.new.title_placeholder": "Nije listtitel", "lists.replies_policy.followed": "Elke folge brûker", "lists.replies_policy.list": "Leden fan de list", "lists.replies_policy.none": "Net ien", "lists.replies_policy.title": "Reaksjes toane oan:", - "lists.search": "Search among people you follow", + "lists.search": "Sykje nei minsken dy’t jo folgje", "lists.subheading": "Dyn listen", - "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", - "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "load_pending": "{count, plural, one {# nij item} other {# nije items}}", + "loading_indicator.label": "Lade…", + "media_gallery.toggle_visible": "{number, plural, one {ôfbylding ferstopje} other {ôfbyldingen ferstopje}}", "missing_indicator.label": "Net fûn", - "missing_indicator.sublabel": "This resource could not be found", - "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", - "mute_modal.duration": "Duration", + "missing_indicator.sublabel": "Dizze boarne kin net fûn wurde", + "moved_to_account_banner.text": "Omdat jo nei {movedToAccount} ferhuze binne is jo account {disabledAccount} op dit stuit útskeakele.", + "mute_modal.duration": "Doer", "mute_modal.hide_notifications": "Meldingen fan dizze brûker ferstopje?", - "mute_modal.indefinite": "Indefinite", - "navigation_bar.about": "About", + "mute_modal.indefinite": "Foar ûnbepaalde tiid", + "navigation_bar.about": "Oer", "navigation_bar.blocks": "Blokkearre brûkers", "navigation_bar.bookmarks": "Blêdwizers", - "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.community_timeline": "Lokale tiidline", "navigation_bar.compose": "Nij berjocht skriuwe", "navigation_bar.direct": "Direkte berjochten", "navigation_bar.discover": "Untdekke", @@ -408,7 +413,7 @@ "notifications.column_settings.follow": "Nije folgers:", "notifications.column_settings.follow_request": "Nij folchfersyk:", "notifications.column_settings.mention": "Fermeldingen:", - "notifications.column_settings.poll": "Pollresultaten:", + "notifications.column_settings.poll": "Enkêteresultaten:", "notifications.column_settings.push": "Pushmeldingen", "notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.show": "Yn kolom toane", @@ -423,17 +428,17 @@ "notifications.filter.follows": "Folget", "notifications.filter.mentions": "Fermeldingen", "notifications.filter.polls": "Pollresultaten", - "notifications.filter.statuses": "Updates from people you follow", - "notifications.grant_permission": "Grant permission.", - "notifications.group": "{count} notifications", - "notifications.mark_as_read": "Mark every notification as read", - "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", - "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", - "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", - "notifications_permission_banner.enable": "Enable desktop notifications", - "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", - "notifications_permission_banner.title": "Never miss a thing", - "picture_in_picture.restore": "Put it back", + "notifications.filter.statuses": "Fernijingen fan minsken dy’t jo folgje", + "notifications.grant_permission": "Tastimming jaan.", + "notifications.group": "{count} meldingen", + "notifications.mark_as_read": "Alle meldingen as lêzen markearje", + "notifications.permission_denied": "Desktopmeldingen binne net beskikber, omdat in eardere browsertastimming wegere waard", + "notifications.permission_denied_alert": "Desktopmeldingen kinne net ynskeakele wurde, omdat in eardere browsertastimming wegere waard", + "notifications.permission_required": "Desktopmeldingen binne net beskikber, omdat de nedige tastimming net ferliend is.", + "notifications_permission_banner.enable": "Desktopmeldingen ynskeakelje", + "notifications_permission_banner.how_to_control": "Om meldingen te ûntfangen wannear’t Mastodon net iepen stiet. Jo kinne krekt bepale hokker soarte fan ynteraksjes wol of gjin desktopmeldingen jouwe fia de boppesteande {icon} knop.", + "notifications_permission_banner.title": "Mis neat", + "picture_in_picture.restore": "Tebeksette", "poll.closed": "Sluten", "poll.refresh": "Ferfarskje", "poll.total_people": "{count, plural, one {# persoan} other {# persoanen}}", @@ -442,7 +447,7 @@ "poll.voted": "Do hast hjir op stimd", "poll.votes": "{votes, plural, one {# stim} other {# stimmen}}", "poll_button.add_poll": "Poll tafoegje", - "poll_button.remove_poll": "Poll fuortsmite", + "poll_button.remove_poll": "Enkête fuortsmite", "privacy.change": "Sichtberheid fan berjocht oanpasse", "privacy.direct.long": "Allinnich sichtber foar fermelde brûkers", "privacy.direct.short": "Allinnich fermelde minsken", @@ -450,13 +455,13 @@ "privacy.private.short": "Allinnich folgers", "privacy.public.long": "Sichtber foar elkenien", "privacy.public.short": "Iepenbier", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", - "privacy.unlisted.short": "Unlisted", - "privacy_policy.last_updated": "Last updated {date}", - "privacy_policy.title": "Privacy Policy", - "refresh": "Fernije", + "privacy.unlisted.long": "Foar elkenien sichtber, mar net ûnder trends, hashtags en op iepenbiere tiidlinen", + "privacy.unlisted.short": "Minder iepenbier", + "privacy_policy.last_updated": "Lêst bywurke op {date}", + "privacy_policy.title": "Privacybelied", + "refresh": "Ferfarskje", "regeneration_indicator.label": "Lade…", - "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "regeneration_indicator.sublabel": "Jo starttiidline wurdt oanmakke!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# dei} other {# dagen}} lyn", "relative_time.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn", @@ -481,71 +486,71 @@ "report.close": "Klear", "report.comment.title": "Tinksto dat wy noch mear witte moatte?", "report.forward": "Nei {target} trochstjoere", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "report.forward_hint": "De account stiet op in oare server. Wolle jo dêr ek in anonimisearre kopy fan dizze rapportaazje nei ta stjoere?", "report.mute": "Negearje", - "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.mute_explanation": "Jo kinne harren berjochten net sjen. Jo kinne noch wol folge wurde en jo berjochten binne noch sichtber, mar dyjinge kin net sjen dat dy negearre wurdt.", "report.next": "Folgjende", "report.placeholder": "Type or paste additional comments", "report.reasons.dislike": "Ik fyn der neat oan", "report.reasons.dislike_description": "It is net eat watsto sjen wolst", "report.reasons.other": "It is wat oars", "report.reasons.other_description": "It probleem stiet der net tusken", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "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", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.spam": "It is spam", + "report.reasons.spam_description": "Skeadlike keppelingen, reklame, mislieding of werheljende antwurden", + "report.reasons.violation": "It skeint de serverregels", + "report.reasons.violation_description": "Jo witte dat it spesifike regels skeint", + "report.rules.subtitle": "Selektearje wat fan tapassing is", + "report.rules.title": "Hokker regels wurde skeind?", + "report.statuses.subtitle": "Selektearje wat fan tapassing is", + "report.statuses.title": "Binne der berjochten dy’t dizze rapportaazje stypje?", "report.submit": "Submit report", "report.target": "Report {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", - "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", - "report_notification.categories.other": "Other", + "report.thanks.take_action": "Hjir binne jo opsjes wêrmei’t jo bepale kinne wat jo yn Mastodon sjen wolle:", + "report.thanks.take_action_actionable": "Wylst wy jo rapportaazje beoardiele, kinne jo dizze maatregels tsjin @{name} nimme:", + "report.thanks.title": "Wolle jo dit net sjen?", + "report.thanks.title_actionable": "Tank foar it rapportearjen. Wy sille der nei sjen.", + "report.unfollow": "{name} ûntfolgje", + "report.unfollow_explanation": "Jo folgje dizze account. Om harren berjochten net mear op jo starttiidline te sjen, kinne jo dyjinge ûntfolgje.", + "report_notification.attached_statuses": "{count, plural, one {{count} berjocht} other {{count} berjochten}} tafoege", + "report_notification.categories.other": "Oars", "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Rule violation", - "report_notification.open": "Open report", - "search.placeholder": "Search", - "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", + "report_notification.categories.violation": "Skeinde regels", + "report_notification.open": "Rapport iepenje", + "search.placeholder": "Sykje", + "search.search_or_paste": "Sykje of fier URL yn", + "search_popout.search_format": "Avansearre sykje", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", - "search_results.all": "All", + "search_popout.tips.text": "Brûk gewoane tekst om te sykjen op werjeftenammen, brûkersnammen en hashtags", + "search_popout.tips.user": "brûker", + "search_results.accounts": "Minsken", + "search_results.all": "Alles", "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.nothing_found": "Dizze syktermen leverje gjin resultaat op", "search_results.statuses": "Berjochten", - "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.statuses_fts_disabled": "It sykjen yn berjochten is op dizze Mastodon-server net ynskeakele.", "search_results.title": "Nei {q} sykje", - "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)", + "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}", + "server_banner.about_active_users": "Oantal brûkers yn de ôfrûne 30 dagen (MAU)", "server_banner.active_users": "warbere brûkers", "server_banner.administered_by": "Beheard troch:", - "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.introduction": "{domain} is ûnderdiel fan it desintralisearre sosjale netwurk {mastodon}.", "server_banner.learn_more": "Mear ynfo", "server_banner.server_stats": "Serverstatistiken:", "sign_in_banner.create_account": "Account registrearje", "sign_in_banner.sign_in": "Oanmelde", - "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}", + "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_status": "Open this status in the moderation interface", "status.block": "@{name} blokkearje", "status.bookmark": "Blêdwizer tafoegje", "status.cancel_reblog_private": "Net langer booste", - "status.cannot_reblog": "This post cannot be boosted", + "status.cannot_reblog": "Dit berjocht kin net boost wurde", "status.copy": "Copy link to status", "status.delete": "Fuortsmite", "status.detailed_status": "Detaillearre petearoersjoch", - "status.direct": "Direct message @{name}", + "status.direct": "@{name} in direkt berjocht stjoere", "status.edit": "Bewurkje", "status.edited": "Bewurke op {date}", "status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke", @@ -567,9 +572,9 @@ "status.pinned": "Fêstset berjocht", "status.read_more": "Mear ynfo", "status.reblog": "Booste", - "status.reblog_private": "Boost with original visibility", + "status.reblog_private": "Boost nei oarspronklike ûntfangers", "status.reblogged_by": "{name} hat boost", - "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.reblogs.empty": "Net ien hat dit berjocht noch boost. Wannear’t ien dit docht, falt dat hjir te sjen.", "status.redraft": "Fuortsmite en opnij opstelle", "status.remove_bookmark": "Blêdwizer fuortsmite", "status.replied_to": "Antwurde op {name}", @@ -589,12 +594,12 @@ "status.uncached_media_warning": "Net beskikber", "status.unmute_conversation": "Petear net mear negearje", "status.unpin": "Fan profylside losmeitsje", - "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.target": "Change subscribed languages for {target}", - "suggestions.dismiss": "Dismiss suggestion", - "suggestions.header": "You might be interested in…", - "tabs_bar.federated_timeline": "Federated", + "subscribed_languages.lead": "Nei de wiziging wurde allinnich berjochten fan selektearre talen op jo starttiidline en yn listen werjaan.", + "subscribed_languages.save": "Wizigingen bewarje", + "subscribed_languages.target": "Toande talen foar {target} wizigje", + "suggestions.dismiss": "Oanrekommandaasje ferwerpe", + "suggestions.header": "Jo binne wierskynlik ek ynteressearre yn…", + "tabs_bar.federated_timeline": "Globaal", "tabs_bar.home": "Startside", "tabs_bar.local_timeline": "Lokaal", "tabs_bar.notifications": "Meldingen", @@ -609,37 +614,37 @@ "timeline_hint.resources.statuses": "Aldere berjochten", "trends.counter_by_accounts": "{count, plural, one {{counter} persoan} other {{counter} persoanen}} {days, plural, one {de ôfrûne dei} other {de ôfrûne {days} dagen}}", "trends.trending_now": "Aktuele trends", - "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", - "units.short.billion": "{count}B", - "units.short.million": "{count}M", - "units.short.thousand": "{count}K", - "upload_area.title": "Drag & drop to upload", - "upload_button.label": "Add images, a video or an audio file", - "upload_error.limit": "File upload limit exceeded.", - "upload_error.poll": "File upload not allowed with polls.", + "ui.beforeunload": "Jo konsept giet ferlern wannear’t jo Mastodon ferlitte.", + "units.short.billion": "{count} mrd.", + "units.short.million": "{count} mln.", + "units.short.thousand": "{count}k", + "upload_area.title": "Hjir nei ta slepe om op te laden", + "upload_button.label": "Ofbyldingen, in fideo- of in lûdsbestân tafoegje", + "upload_error.limit": "Oer de oplaadlimyt fan bestân.", + "upload_error.poll": "It opladen fan bestannen is yn enkêten net tastien.", "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Describe for the visually impaired", - "upload_form.description_missing": "No description added", - "upload_form.edit": "Edit", - "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", + "upload_form.description_missing": "Gjin omskriuwing tafoege", + "upload_form.edit": "Bewurkje", + "upload_form.thumbnail": "Miniatuerôfbylding wizigje", + "upload_form.undo": "Fuortsmite", "upload_form.video_description": "Describe for people with hearing loss or visual impairment", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.applying": "Applying…", - "upload_modal.choose_image": "Choose image", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preparing_ocr": "Preparing OCR…", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Ofbylding analysearje…", + "upload_modal.apply": "Tapasse", + "upload_modal.applying": "Oan it tapassen…", + "upload_modal.choose_image": "Kies in ôfbylding", + "upload_modal.description_placeholder": "Heit syn wize foks ljept tûk oar de loaie hûn", + "upload_modal.detect_text": "Tekst yn in ôfbylding detektearje", + "upload_modal.edit_media": "Media bewurkje", + "upload_modal.hint": "Klik of sleep de sirkel yn de foarfertoaning nei in sintraal fokuspunt dat op elke thumbnail sichtber bliuwe moat.", + "upload_modal.preparing_ocr": "OCR tariede…", + "upload_modal.preview_label": "Foarfertoaning ({ratio})", "upload_progress.label": "Uploading…", - "upload_progress.processing": "Processing…", - "video.close": "Close video", - "video.download": "Download file", - "video.exit_fullscreen": "Exit full screen", - "video.expand": "Expand video", + "upload_progress.processing": "Dwaande…", + "video.close": "Fideo slute", + "video.download": "Bestân downloade", + "video.exit_fullscreen": "Folslein skerm slute", + "video.expand": "Fideo grutter meitsje", "video.fullscreen": "Folslein skerm", "video.hide": "Fideo ferstopje", "video.mute": "Lûd dôvje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index eac6d9dbc8..ae8813dcd6 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -54,6 +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.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}}", @@ -211,7 +212,7 @@ "empty_column.account_timeline": "Níl postálacha ar bith anseo!", "empty_column.account_unavailable": "Níl an phróifíl ar fáil", "empty_column.blocks": "Níl aon úsáideoir bactha agat fós.", - "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.bookmarked_statuses": "Níl aon phostáil leabharmharcaithe agat fós. Nuair a dhéanann tú leabharmharc, beidh sé le feiceáil anseo.", "empty_column.community": "Tá an amlíne áitiúil folamh. Foilsigh rud éigin go poiblí le tús a chur le cúrsaí!", "empty_column.direct": "Níl aon teachtaireacht dírithe agat fós. Nuair a sheolann tú nó nuair a fhaigheann tú ceann, feicfear anseo í.", "empty_column.domain_blocks": "Níl aon fearainn bhactha ann go fóill.", @@ -219,23 +220,27 @@ "empty_column.favourited_statuses": "Níor roghnaigh tú postáil ar bith fós. Nuair a roghnaigh tú ceann, beidh sí le feiceáil anseo.", "empty_column.favourites": "Níor thogh éinne an phostáil seo fós. Nuair a thoghfaidh duine éigin í, taispeánfar anseo é sin.", "empty_column.follow_recommendations": "Is cosúil nár fhéadfaí moltaí a ghineadh. D'fhéadfá cuardach a úsáid le teacht ar dhaoine a bhfuil aithne agat orthu, nó iniúchadh ar haischlibeanna atá ag treochtáil a dhéanamh.", - "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.follow_requests": "Níl aon phostáil leabharmharcaithe agat fós. Nuair a dhéanann tú leabharmharc, feicfear anseo é.", "empty_column.hashtag": "Níl rud ar bith faoin haischlib seo go fóill.", "empty_column.home": "Tá d'amlíne baile folamh! B'fhiú duit cúpla duine eile a leanúint lena líonadh! {suggestions}", "empty_column.home.suggestions": "Féach ar roinnt moltaí", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.lists": "Níl aon liostaí fós agat. Nuair a chruthaíonn tú ceann, feicfear anseo é.", "empty_column.mutes": "Níl aon úsáideoir balbhaithe agat fós.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", - "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "empty_column.notifications": "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.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.title": "Féach thart", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 8aa06ffe78..560b4f3083 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Postaichean ’s freagairtean", "account.report": "Dèan gearan mu @{name}", "account.requested": "A’ feitheamh air aontachadh. Briog airson sgur dhen iarrtas leantainn", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Co-roinn a’ phròifil aig @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}", "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Cuir lethbhreac dhen stacktrace air an stòr-bhòrd", "errors.unexpected_crash.report_issue": "Dèan aithris air an duilgheadas", "explore.search_results": "Toraidhean an luirg", + "explore.suggested_follows": "For you", "explore.title": "Rùraich", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Chan eil an roinn-seòrsa criathraidh iom seo chaidh dhan cho-theacs san do dh’inntrig thu am post seo. Ma tha thu airson am post a chriathradh sa cho-theacs seo cuideachd, feumaidh tu a’ chriathrag a dheasachadh.", "filter_modal.added.context_mismatch_title": "Co-theacsa neo-iomchaidh!", "filter_modal.added.expired_explanation": "Dh’fhalbh an ùine air an roinn-seòrsa criathraidh seo agus feumaidh tu an ceann-là crìochnachaidh atharrachadh mus cuir thu an sàs i.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 2e1f4684fd..d6c8735fe8 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Publicacións e respostas", "account.report": "Informar sobre @{name}", "account.requested": "Agardando aprobación. Preme para desbotar a solicitude", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Compartir o perfil de @{name}", "account.show_reblogs": "Amosar compartidos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicacións}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", "errors.unexpected_crash.report_issue": "Informar sobre un problema", "explore.search_results": "Resultados da busca", + "explore.suggested_follows": "For you", "explore.title": "Descubrir", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro non se aplica ao contexto no que accedeches a esta publicación. Se queres que a publicación se filtre nese contexto tamén, terás que editar o filtro.", "filter_modal.added.context_mismatch_title": "Non concorda o contexto!", "filter_modal.added.expired_explanation": "Esta categoría de filtro caducou, terás que cambiar a data de caducidade para que se aplique.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 3307e3ed78..283887f85a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -35,14 +35,14 @@ "account.followers_counter": "{count, plural,one {עוקב אחד} other {{counter} עוקבים}}", "account.following": "נעקבים", "account.following_counter": "{count, plural,one {עוקב אחרי {counter}}other {עוקב אחרי {counter}}}", - "account.follows.empty": "משתמש זה לא עוקב אחר אף אחד עדיין.", + "account.follows.empty": "משתמש זה עדיין לא עוקב אחרי אף אחד.", "account.follows_you": "במעקב אחריך", "account.go_to_profile": "מעבר לפרופיל", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}", "account.joined_short": "תאריך הצטרפות", "account.languages": "שנה שפת הרשמה", "account.link_verified_on": "בעלות על הקישור הזה נבדקה לאחרונה ב{date}", - "account.locked_info": "מצב הפרטיות של החשבון הנוכחי הוגדר כנעול. בעל החשבון קובע באופן פרטני מי יכול לעקוב אחריו.", + "account.locked_info": "החשבון הזה הוגדר כנעול. צריך לקבל אישור כדי לעקוב אחריו.", "account.media": "מדיה", "account.mention": "אזכור של @{name}", "account.moved_to": "{name} ציינו שהחשבון החדש שלהם הוא:", @@ -54,6 +54,7 @@ "account.posts_with_replies": "הודעות ותגובות", "account.report": "דווח על @{name}", "account.requested": "בהמתנה לאישור. לחצי כדי לבטל בקשת מעקב", + "account.requested_follow": "{name} has requested to follow you", "account.share": "שתף את הפרופיל של @{name}", "account.show_reblogs": "הצג הדהודים מאת @{name}", "account.statuses_counter": "{count, plural, one {הודעה} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}", @@ -119,7 +120,7 @@ "column_header.pin": "הצמדה", "column_header.show_settings": "הצגת העדפות", "column_header.unpin": "שחרור הצמדה", - "column_subheading.settings": "אפשרויות", + "column_subheading.settings": "הגדרות", "community.column_settings.local_only": "מקומי בלבד", "community.column_settings.media_only": "מדיה בלבד", "community.column_settings.remote_only": "מרוחק בלבד", @@ -161,7 +162,7 @@ "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", "confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)", "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו", - "confirmations.logout.confirm": "להתנתק", + "confirmations.logout.confirm": "התנתקות", "confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?", "confirmations.mute.confirm": "להשתיק", "confirmations.mute.explanation": "זה יסתיר הודעות שלהם והודעות שמאזכרות אותם, אבל עדיין יתיר להם לראות הודעות שלך ולעקוב אחריך.", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "להעתיק את הקוד ללוח הכתיבה", "errors.unexpected_crash.report_issue": "דווח על בעיה", "explore.search_results": "תוצאות חיפוש", + "explore.suggested_follows": "עבורך", "explore.title": "סיור", + "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/hi.json b/app/javascript/mastodon/locales/hi.json index c8e23e3997..3887fa00a8 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "टूट्स एवं जवाब", "account.report": "रिपोर्ट @{name}", "account.requested": "मंजूरी का इंतजार। फॉलो रिक्वेस्ट को रद्द करने के लिए क्लिक करें", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} की प्रोफाइल शेयर करे", "account.show_reblogs": "@{name} के बूस्ट दिखाए", "account.statuses_counter": "{count, plural, one {{counter} भोंपू} other {{counter} भोंपू}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "स्टैकट्रेस को क्लिपबोर्ड पर कॉपी करें", "errors.unexpected_crash.report_issue": "समस्या सूचित करें", "explore.search_results": "सर्च रिजल्ट्स", + "explore.suggested_follows": "For you", "explore.title": "एक्स्प्लोर", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।", "filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!", "filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।", @@ -349,7 +354,7 @@ "lists.replies_policy.followed": "अन्य फोल्लोवेद यूजर", "lists.replies_policy.list": "सूची के सदस्य", "lists.replies_policy.none": "कोई नहीं", - "lists.replies_policy.title": "Show replies to:", + "lists.replies_policy.title": "इसके जवाब दिखाएं:", "lists.search": "Search among people you follow", "lists.subheading": "आपकी सूचियाँ", "load_pending": "{count, plural, one {# new item} other {# new items}}", @@ -361,18 +366,18 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.about": "About", + "navigation_bar.about": "विवरण", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", "navigation_bar.bookmarks": "पुस्तकचिह्न:", "navigation_bar.community_timeline": "लोकल टाइम्लाइन", "navigation_bar.compose": "नया टूट् लिखें", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "प्रत्यक्ष संदेश", "navigation_bar.discover": "खोजें", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "प्रोफ़ाइल संपादित करें", - "navigation_bar.explore": "Explore", - "navigation_bar.favourites": "Favourites", - "navigation_bar.filters": "Muted words", + "navigation_bar.explore": "अन्वेषण करें", + "navigation_bar.favourites": "पसंदीदा", + "navigation_bar.filters": "वारित शब्द", "navigation_bar.follow_requests": "अनुसरण करने के अनुरोध", "navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.lists": "सूचियाँ", @@ -398,7 +403,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", - "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.report": "नई रिपोर्ट:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -416,7 +421,7 @@ "notifications.column_settings.status": "New toots:", "notifications.column_settings.unread_notifications.category": "Unread notifications", "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.update": "संपादन:", "notifications.filter.all": "सभी", "notifications.filter.boosts": "बूस्ट", "notifications.filter.favourites": "पसंदीदा", @@ -448,7 +453,7 @@ "privacy.direct.short": "Direct", "privacy.private.long": "Post to followers only", "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.public.long": "सब को दिखाई देगा", "privacy.public.short": "सार्वजनिक", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "अनलिस्टेड", @@ -471,15 +476,15 @@ "reply_indicator.cancel": "रद्द करें", "report.block": "Block", "report.block_explanation": "आपको उनकी पोस्टें नहीं दिखेंगे। वे आपकी पोस्टें को देख नहीं पाएंगे और आपको फ़ॉलो नहीं कर पाएंगे। उन्हे पता लगेगा कि वे blocked हैं।", - "report.categories.other": "Other", - "report.categories.spam": "Spam", + "report.categories.other": "अन्य", + "report.categories.spam": "अवांछित", "report.categories.violation": "Content violates one or more server rules", "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_account": "रूपरेखा", "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", + "report.close": "स्वीकार करें", + "report.comment.title": "क्या और कुछ है जिसके बारे में आपको लगता है कि हमें सूचित होना चाहिए?", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", "report.mute": "Mute", @@ -515,7 +520,7 @@ "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Advanced search format", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.hashtag": "हैशटैग", "search_popout.tips.status": "status", "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", "search_popout.tips.user": "user", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 8216e63033..0cd77dfa85 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Tootovi i odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čekanje na potvrdu. Kliknite za otkazivanje 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}}", @@ -235,7 +236,11 @@ "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.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index f16841923b..252588952e 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Bejegyzések és válaszok", "account.report": "@{name} jelentése", "account.requested": "Jóváhagysára vár. Kattints a követési kérés visszavonásához", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} profiljának megosztása", "account.show_reblogs": "@{name} megtolásainak mutatása", "account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása", "errors.unexpected_crash.report_issue": "Probléma jelentése", "explore.search_results": "Keresési találatok", + "explore.suggested_follows": "Neked", "explore.title": "Felfedezés", + "explore.trending_links": "Hírek", + "explore.trending_statuses": "Bejegyzések", + "explore.trending_tags": "Hashtagek", "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből elérted ezt a bejegyzést. Ha ebben a környezetben is szűrni szeretnéd a bejegyzést, akkor szerkesztened kell a szűrőt.", "filter_modal.added.context_mismatch_title": "Környezeti eltérés.", "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítanod kell az elévülési dátumot.", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 285e966369..e1f8543611 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Գրառումներ եւ պատասխաններ", "account.report": "Բողոքել @{name}֊ի մասին", "account.requested": "Հաստատման կարիք ունի։ Սեղմիր՝ հետեւելու հայցը չեղարկելու համար։", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Կիսուել @{name}֊ի էջով", "account.show_reblogs": "Ցուցադրել @{name}֊ի տարածածները", "account.statuses_counter": "{count, plural, one {{counter} Գրառում} other {{counter} Գրառումներ}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Պատճենել սթաքթրեյսը սեղմատախտակին", "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին", "explore.search_results": "Որոնման արդիւնքներ", + "explore.suggested_follows": "For you", "explore.title": "Բացայայտել", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index ae633965a0..f0db64ed8c 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Kiriman dan balasan", "account.report": "Laporkan @{name}", "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Bagikan profil @{name}", "account.show_reblogs": "Tampilkan boost dari @{name}", "account.statuses_counter": "{count, plural, other {{counter} Kiriman}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Salin stacktrace ke papan klip", "errors.unexpected_crash.report_issue": "Laporkan masalah", "explore.search_results": "Hasil pencarian", + "explore.suggested_follows": "For you", "explore.title": "Jelajahi", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Indonesia Translate", "filter_modal.added.context_mismatch_title": "Konteks tidak cocok!", "filter_modal.added.expired_explanation": "Kategori saringan ini telah kedaluwarsa, Anda harus mengubah tanggal kedaluwarsa untuk diterapkan.", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index bf7c7baae7..a1e268518d 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Kpesa nsogbu", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index d14750f98b..7aaba817e3 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posti e respondi", "account.report": "Denuncar @{name}", "account.requested": "Vartante aprobo", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Partigez profilo di @{name}", "account.show_reblogs": "Montrez busti de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Posto} other {{counter} Posti}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiez amastraso a klipplanko", "errors.unexpected_crash.report_issue": "Reportigez problemo", "explore.search_results": "Trovuri", + "explore.suggested_follows": "For you", "explore.title": "Explorez", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Ca filtrilgrupo ne relatesas kun informo de ca acesesita posto. Se vu volas posto filtresar kun ca informo anke, vu bezonas modifikar filtrilo.", "filter_modal.added.context_mismatch_title": "Kontenajneparigeso!", "filter_modal.added.expired_explanation": "Ca filtrilgrupo expiris, vu bezonas chanjar expirtempo por apliko.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 74211279a1..61243e5f2d 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Færslur og svör", "account.report": "Kæra @{name}", "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Deila notandasniði fyrir @{name}", "account.show_reblogs": "Sýna endurbirtingar frá @{name}", "account.statuses_counter": "{count, plural, one {Færsla: {counter}} other {Færslur: {counter}}}", @@ -130,7 +131,7 @@ "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.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ð varstu að hugsa?", + "compose_form.placeholder": "Hvað liggur þér á hjarta?", "compose_form.poll.add_option": "Bæta við valkosti", "compose_form.poll.duration": "Tímalengd könnunar", "compose_form.poll.option_placeholder": "Valkostur {number}", @@ -224,7 +225,7 @@ "empty_column.home": "Heimatímalínan þín er tóm! Fylgstu með fleira fólki til að fylla hana. {suggestions}", "empty_column.home.suggestions": "Skoðaðu nokkrar tillögur", "empty_column.list": "Það er ennþá ekki neitt á þessum lista. Þegar meðlimir á listanum senda inn nýjar færslur, munu þær birtast hér.", - "empty_column.lists": "Þú ert ennþá ekki með neina lista. Þegar þú byrð til einhvern lista, munu hann birtast hér.", + "empty_column.lists": "Þú ert ennþá ekki með neina lista. Þegar þú býrð til einhvern lista, munu hann birtast hér.", "empty_column.mutes": "Þú hefur ekki þaggað niður í neinum notendum ennþá.", "empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.", "empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Afrita rakningarupplýsingar (stacktrace) á klippispjald", "errors.unexpected_crash.report_issue": "Tilkynna vandamál", "explore.search_results": "Leitarniðurstöður", + "explore.suggested_follows": "For you", "explore.title": "Kanna", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Þessi síuflokkur á ekki við í því samhengi sem aðgangur þinn að þessari færslu felur í sér. Ef þú vilt að færslan sé einnig síuð í þessu samhengi, þá þarftu að breyta síunni.", "filter_modal.added.context_mismatch_title": "Misræmi í samhengi!", "filter_modal.added.expired_explanation": "Þessi síuflokkur er útrunninn, þú þarft að breyta gidistímanum svo hann geti átt við.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 2e6c9e1e37..dcbae3ca45 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Post e risposte", "account.report": "Segnala @{name}", "account.requested": "In attesa d'approvazione. Clicca per annullare la richiesta di seguire", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Condividi il profilo di @{name}", "account.show_reblogs": "Mostra potenziamenti da @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Post}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copia stacktrace negli appunti", "errors.unexpected_crash.report_issue": "Segnala un problema", "explore.search_results": "Risultati della ricerca", + "explore.suggested_follows": "Per te", "explore.title": "Esplora", + "explore.trending_links": "Novità", + "explore.trending_statuses": "Post", + "explore.trending_tags": "Hashtag", "filter_modal.added.context_mismatch_explanation": "La categoria di questo filtro non si applica al contesto in cui hai acceduto a questo post. Se desideri che il post sia filtrato anche in questo contesto, dovrai modificare il filtro.", "filter_modal.added.context_mismatch_title": "Contesto non corrispondente!", "filter_modal.added.expired_explanation": "La categoria di questo filtro è scaduta, dovrvai modificarne la data di scadenza per applicarlo.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index d70a3c62b1..dd43e6a115 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "投稿と返信", "account.report": "@{name}さんを通報", "account.requested": "フォロー承認待ちです。クリックしてキャンセル", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name}さんのプロフィールを共有する", "account.show_reblogs": "@{name}さんからのブーストを表示", "account.statuses_counter": "{counter} 投稿", @@ -82,7 +83,7 @@ "boost_modal.combo": "次からは{combo}を押せばスキップできます", "bundle_column_error.copy_stacktrace": "エラーレポートをコピー", "bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。", - "bundle_column_error.error.title": "あらら……", + "bundle_column_error.error.title": "おっと!", "bundle_column_error.network.body": "このページを読み込もうとしたときにエラーが発生しました。インターネット接続またはこのサーバーの一時的な問題が発生した可能性があります。", "bundle_column_error.network.title": "ネットワークエラー", "bundle_column_error.retry": "再試行", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "スタックトレースをクリップボードにコピー", "errors.unexpected_crash.report_issue": "問題を報告", "explore.search_results": "検索結果", + "explore.suggested_follows": "おすすめ", "explore.title": "エクスプローラー", + "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": "このフィルターカテゴリーは有効期限が切れています。適用するには有効期限を更新してください。", @@ -361,7 +366,7 @@ "mute_modal.duration": "ミュートする期間", "mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?", "mute_modal.indefinite": "無期限", - "navigation_bar.about": "About", + "navigation_bar.about": "概要", "navigation_bar.blocks": "ブロックしたユーザー", "navigation_bar.bookmarks": "ブックマーク", "navigation_bar.community_timeline": "ローカルタイムライン", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index ffdd38cfd8..6f490fdbdf 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "ტუტები და პასუხები", "account.report": "დაარეპორტე @{name}", "account.requested": "დამტკიცების მოლოდინში. დააწკაპუნეთ რომ უარყოთ დადევნების მოთხონვა", + "account.requested_follow": "{name} has requested to follow you", "account.share": "გააზიარე @{name}-ის პროფილი", "account.show_reblogs": "აჩვენე ბუსტები @{name}-სგან", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index f823a55dde..fbfa137997 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Tisuffaɣ d tririyin", "account.report": "Cetki ɣef @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus", "errors.unexpected_crash.report_issue": "Mmel ugur", "explore.search_results": "Igemmaḍ n unadi", + "explore.suggested_follows": "For you", "explore.title": "Snirem", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index e3b2a436c0..0e92c33c8e 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Жазбалар мен жауаптар", "account.report": "Шағымдану @{name}", "account.requested": "Растауын күтіңіз. Жазылудан бас тарту үшін басыңыз", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} профилін бөлісу\"", "account.show_reblogs": "@{name} бөліскендерін көрсету", "account.statuses_counter": "{count, plural, one {{counter} Пост} other {{counter} Пост}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Жиынтықты көшіріп ал клипбордқа", "errors.unexpected_crash.report_issue": "Мәселені хабарла", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 4e1bcbdc61..be85666a90 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 30a1bfe944..6f2640520f 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -48,12 +48,13 @@ "account.moved_to": "{name} 님은 자신의 새 계정이 다음과 같다고 표시했습니다:", "account.mute": "@{name} 뮤트", "account.mute_notifications": "@{name}의 알림을 뮤트", - "account.muted": "뮤트 됨", + "account.muted": "뮤트됨", "account.open_original_page": "원본 페이지 열기", "account.posts": "게시물", "account.posts_with_replies": "게시물과 답장", "account.report": "@{name} 신고", "account.requested": "승인 대기 중. 클릭해서 취소하기", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name}의 프로필 공유", "account.show_reblogs": "@{name}의 부스트 보기", "account.statuses_counter": "{counter} 게시물", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사", "errors.unexpected_crash.report_issue": "문제 신고", "explore.search_results": "검색 결과", + "explore.suggested_follows": "추천", "explore.title": "둘러보기", + "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/ku.json b/app/javascript/mastodon/locales/ku.json index 02ac43d57e..8cd4462c17 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Şandî û bersiv", "account.report": "@{name} ragihîne", "account.requested": "Li benda erêkirinê ye. Ji bo betal kirina daxwazê pêl bikin", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Profîla @{name} parve bike", "account.show_reblogs": "Bilindkirinên ji @{name} nîşan bike", "account.statuses_counter": "{count, plural,one {{counter} Şandî}other {{counter} Şandî}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Şopa gemara (stacktrace) tûrikê ra jê bigire", "errors.unexpected_crash.report_issue": "Pirsgirêkekê ragihîne", "explore.search_results": "Encamên lêgerînê", + "explore.suggested_follows": "Ji bo te", "explore.title": "Vekole", + "explore.trending_links": "Nûçe", + "explore.trending_statuses": "Şandî", + "explore.trending_tags": "Hashtag", "filter_modal.added.context_mismatch_explanation": "Ev beşa parzûnê ji bo naveroka ku te tê de xwe gihandiye vê şandiyê nayê sepandin. Ku tu dixwazî şandî di vê naverokê de jî werê parzûnkirin, divê tu parzûnê biguherînî.", "filter_modal.added.context_mismatch_title": "Naverok li hev nagire!", "filter_modal.added.expired_explanation": "Ev beşa parzûnê qediya ye, ji bo ku tu bikaribe wê biguherîne divê tu dema qedandinê biguherînî.", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index 8e937979fe..50c9705199 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Postow ha gorthebow", "account.report": "Reportya @{name}", "account.requested": "Ow kortos komendyans. Klyckyewgh dhe hedhi govyn holya", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Kevrenna profil @{name}", "account.show_reblogs": "Diskwedhes kenerthow a @{name}", "account.statuses_counter": "{count, plural, one {{counter} Tout} other {{counter} Tout}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Dasskrifa daslergh dhe'n astel glypp", "errors.unexpected_crash.report_issue": "Reportya kudyn", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json new file mode 100644 index 0000000000..39c6f48490 --- /dev/null +++ b/app/javascript/mastodon/locales/la.json @@ -0,0 +1,654 @@ +{ + "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.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.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", + "account.account_note_header": "Note", + "account.add_or_remove_from_list": "Add or Remove from lists", + "account.badges.bot": "Bot", + "account.badges.group": "Group", + "account.block": "Block @{name}", + "account.block_domain": "Block domain {domain}", + "account.blocked": "Blocked", + "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Direct message @{name}", + "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.domain_blocked": "Domain blocked", + "account.edit_profile": "Edit profile", + "account.enable_notifications": "Notify me when @{name} posts", + "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "Follow", + "account.followers": "Followers", + "account.followers.empty": "No one follows this user yet.", + "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.following": "Following", + "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "Hide boosts from @{name}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", + "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.media": "Media", + "account.mention": "Mention @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", + "account.mute": "Mute @{name}", + "account.mute_notifications": "Mute notifications from @{name}", + "account.muted": "Muted", + "account.open_original_page": "Open original page", + "account.posts": "Posts", + "account.posts_with_replies": "Posts and replies", + "account.report": "Report @{name}", + "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", + "account.share": "Share @{name}'s profile", + "account.show_reblogs": "Show boosts from @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", + "account.unblock": "Unblock @{name}", + "account.unblock_domain": "Unblock domain {domain}", + "account.unblock_short": "Unblock", + "account.unendorse": "Don't feature on profile", + "account.unfollow": "Unfollow", + "account.unmute": "Unmute @{name}", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.unmute_short": "Unmute", + "account_note.placeholder": "Click to add a note", + "admin.dashboard.daily_retention": "User retention rate by day after sign-up", + "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort_size": "New users", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", + "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", + "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", + "autosuggest_hashtag.per_week": "{count} per week", + "boost_modal.combo": "You can press {combo} to skip this next time", + "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.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.retry": "Try again", + "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?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", + "column.blocks": "Blocked users", + "column.bookmarks": "Bookmarks", + "column.community": "Local timeline", + "column.direct": "Direct messages", + "column.directory": "Browse profiles", + "column.domain_blocks": "Blocked domains", + "column.favourites": "Favourites", + "column.follow_requests": "Follow requests", + "column.home": "Home", + "column.lists": "Lists", + "column.mutes": "Muted users", + "column.notifications": "Notifications", + "column.pins": "Pinned post", + "column.public": "Federated timeline", + "column_back_button.label": "Back", + "column_header.hide_settings": "Hide settings", + "column_header.moveLeft_settings": "Move column to the left", + "column_header.moveRight_settings": "Move column to the right", + "column_header.pin": "Pin", + "column_header.show_settings": "Show settings", + "column_header.unpin": "Unpin", + "column_subheading.settings": "Settings", + "community.column_settings.local_only": "Local only", + "community.column_settings.media_only": "Media only", + "community.column_settings.remote_only": "Remote only", + "compose.language.change": "Change language", + "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 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?", + "compose_form.poll.add_option": "Add a choice", + "compose_form.poll.duration": "Poll duration", + "compose_form.poll.option_placeholder": "Choice {number}", + "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", + "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.publish": "Publish", + "compose_form.publish_form": "Publish", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "Save changes", + "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.spoiler.marked": "Text is hidden behind warning", + "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler_placeholder": "Write your warning here", + "confirmation_modal.cancel": "Cancel", + "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.confirm": "Block", + "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "Delete", + "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.mute.confirm": "Mute", + "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", + "confirmations.mute.message": "Are you sure you want to mute {name}?", + "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.reply.confirm": "Reply", + "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.unfollow.confirm": "Unfollow", + "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "conversation.delete": "Delete conversation", + "conversation.mark_as_read": "Mark as read", + "conversation.open": "View conversation", + "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "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_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.", + "embed.instructions": "Embed this status on your website by copying the code below.", + "embed.preview": "Here is what it will look like:", + "emoji_button.activity": "Activity", + "emoji_button.clear": "Clear", + "emoji_button.custom": "Custom", + "emoji_button.flags": "Flags", + "emoji_button.food": "Food & Drink", + "emoji_button.label": "Insert emoji", + "emoji_button.nature": "Nature", + "emoji_button.not_found": "No matching emojis found", + "emoji_button.objects": "Objects", + "emoji_button.people": "People", + "emoji_button.recent": "Frequently used", + "emoji_button.search": "Search...", + "emoji_button.search_results": "Search results", + "emoji_button.symbols": "Symbols", + "emoji_button.travel": "Travel & Places", + "empty_column.account_suspended": "Account suspended", + "empty_column.account_timeline": "No posts found", + "empty_column.account_unavailable": "Profile unavailable", + "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.domain_blocks": "There are no blocked domains yet.", + "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", + "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.hashtag": "There is nothing in this hashtag yet.", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home.suggestions": "See some suggestions", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "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.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": "Report issue", + "explore.search_results": "Search results", + "explore.suggested_follows": "For you", + "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", + "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.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.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", + "follow_recommendations.done": "Done", + "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "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!", + "follow_request.authorize": "Authorize", + "follow_request.reject": "Reject", + "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.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", + "generic.saved": "Saved", + "getting_started.heading": "Getting started", + "hashtag.column_header.tag_mode.all": "and {additional}", + "hashtag.column_header.tag_mode.any": "or {additional}", + "hashtag.column_header.tag_mode.none": "without {additional}", + "hashtag.column_settings.select.no_options_message": "No suggestions found", + "hashtag.column_settings.select.placeholder": "Enter hashtags…", + "hashtag.column_settings.tag_mode.all": "All of these", + "hashtag.column_settings.tag_mode.any": "Any of these", + "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", + "home.column_settings.basic": "Basic", + "home.column_settings.show_reblogs": "Show boosts", + "home.column_settings.show_replies": "Show replies", + "home.hide_announcements": "Hide announcements", + "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "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.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "to open pinned posts list", + "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toot": "to start a brand new post", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "to move up in the list", + "lightbox.close": "Close", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Next", + "lightbox.previous": "Previous", + "limited_account_hint.action": "Show profile anyway", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Add to list", + "lists.account.remove": "Remove from list", + "lists.delete": "Delete list", + "lists.edit": "Edit list", + "lists.edit.submit": "Change title", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "New list title", + "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.list": "Members of the list", + "lists.replies_policy.none": "No one", + "lists.replies_policy.title": "Show replies to:", + "lists.search": "Search among people you follow", + "lists.subheading": "Your lists", + "load_pending": "{count, plural, one {# new item} other {# new items}}", + "loading_indicator.label": "Loading...", + "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "Duration", + "mute_modal.hide_notifications": "Hide notifications from this user?", + "mute_modal.indefinite": "Indefinite", + "navigation_bar.about": "About", + "navigation_bar.blocks": "Blocked users", + "navigation_bar.bookmarks": "Bookmarks", + "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.compose": "Compose new post", + "navigation_bar.direct": "Direct messages", + "navigation_bar.discover": "Discover", + "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.edit_profile": "Edit profile", + "navigation_bar.explore": "Explore", + "navigation_bar.favourites": "Favourites", + "navigation_bar.filters": "Muted words", + "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.lists": "Lists", + "navigation_bar.logout": "Logout", + "navigation_bar.mutes": "Muted users", + "navigation_bar.personal": "Personal", + "navigation_bar.pins": "Pinned posts", + "navigation_bar.preferences": "Preferences", + "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", + "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", + "notification.admin.sign_up": "{name} signed up", + "notification.favourite": "{name} favourited your status", + "notification.follow": "{name} followed you", + "notification.follow_request": "{name} has requested to follow you", + "notification.mention": "{name} mentioned you", + "notification.own_poll": "Your poll has ended", + "notification.poll": "A poll you have voted in has ended", + "notification.reblog": "{name} boosted your status", + "notification.status": "{name} just posted", + "notification.update": "{name} edited a post", + "notifications.clear": "Clear notifications", + "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.alert": "Desktop notifications", + "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Show in column", + "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.status": "New posts:", + "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.update": "Edits:", + "notifications.filter.all": "All", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favourites", + "notifications.filter.follows": "Follows", + "notifications.filter.mentions": "Mentions", + "notifications.filter.polls": "Poll results", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Closed", + "poll.refresh": "Refresh", + "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.vote": "Vote", + "poll.voted": "You voted for this answer", + "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.short": "Direct", + "privacy.private.long": "Visible for followers only", + "privacy.private.short": "Followers-only", + "privacy.public.long": "Visible for all", + "privacy.public.short": "Public", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Refresh", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "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.minutes": "{number, plural, one {# minute} other {# minutes}} ago", + "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.hours": "{number}h", + "relative_time.just_now": "now", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "today", + "reply_indicator.cancel": "Cancel", + "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.categories.spam": "Spam", + "report.categories.violation": "Content violates one or more server rules", + "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.forward": "Forward to {target}", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "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.placeholder": "Type or paste additional comments", + "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.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "Hashtags", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Posts", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "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.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.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "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_status": "Open this status in the moderation interface", + "status.block": "Block @{name}", + "status.bookmark": "Bookmark", + "status.cancel_reblog_private": "Unboost", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Delete", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Direct message @{name}", + "status.edit": "Edit", + "status.edited": "Edited {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.embed": "Embed", + "status.favourite": "Favourite", + "status.filter": "Filter this post", + "status.filtered": "Filtered", + "status.hide": "Hide toot", + "status.history.created": "{name} created {date}", + "status.history.edited": "{name} edited {date}", + "status.load_more": "Load more", + "status.media_hidden": "Media hidden", + "status.mention": "Mention @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Expand this status", + "status.pin": "Pin on profile", + "status.pinned": "Pinned post", + "status.read_more": "Read more", + "status.reblog": "Boost", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Delete & re-draft", + "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", + "status.reply": "Reply", + "status.replyAll": "Reply to thread", + "status.report": "Report @{name}", + "status.sensitive_warning": "Sensitive content", + "status.share": "Share", + "status.show_filter_reason": "Show anyway", + "status.show_less": "Show less", + "status.show_less_all": "Show less for all", + "status.show_more": "Show more", + "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.uncached_media_warning": "Not available", + "status.unmute_conversation": "Unmute conversation", + "status.unpin": "Unpin from profile", + "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.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Home", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Notifications", + "time_remaining.days": "{number, plural, one {# day} other {# days}} left", + "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", + "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.resources.followers": "Followers", + "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.statuses": "Older posts", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Trending now", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people who are hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Delete", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Choose image", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Full screen", + "video.hide": "Hide video", + "video.mute": "Mute sound", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Unmute sound" +} diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index bff4aaeddb..fff232ee8d 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Pranešti apie @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 3949654f52..6b07d59114 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -1,19 +1,19 @@ { "about.blocks": "Moderētie serveri", "about.contact": "Kontakts:", - "about.disclaimer": "Mastodon ir bezmaksas atvērtā pirmkoda programmatūra un Mastodon gGmbH preču zīme.", + "about.disclaimer": "Mastodon ir bezmaksas atklātā pirmkoda programmatūra un Mastodon gGmbH preču zīme.", "about.domain_blocks.no_reason_available": "Iemesls nav norādīts", "about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.", "about.domain_blocks.silenced.explanation": "Parasti tu neredzēsi profilus un saturu no šī servera, ja vien tu nepārprotami izvēlēsies to pārskatīt vai sekot.", - "about.domain_blocks.silenced.title": "Ierobežotās", + "about.domain_blocks.silenced.title": "Ierobežotie", "about.domain_blocks.suspended.explanation": "Nekādi dati no šī servera netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu mijiedarbību vai saziņu ar lietotājiem no šī servera.", "about.domain_blocks.suspended.title": "Apturētie", "about.not_available": "Šī informācija šajā serverī nav bijusi pieejama.", - "about.powered_by": "Decentralizētu sociālo multividi nodrošina {mastodon}", + "about.powered_by": "Decentralizētu sociālo tīklu nodrošina {mastodon}", "about.rules": "Servera noteikumi", "account.account_note_header": "Piezīme", "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta", - "account.badges.bot": "Bots", + "account.badges.bot": "Robots", "account.badges.group": "Grupa", "account.block": "Bloķēt @{name}", "account.block_domain": "Bloķēt domēnu {domain}", @@ -34,14 +34,14 @@ "account.followers.empty": "Šim lietotājam vēl nav sekotāju.", "account.followers_counter": "{count, plural, zero {{counter} sekotāju} one {{counter} sekotājs} other {{counter} sekotāji}}", "account.following": "Seko", - "account.following_counter": "{count, plural, one {{counter} Sekojamais} other {{counter} Sekojamie}}", + "account.following_counter": "{count, plural, one {{counter} sekojamais} other {{counter} sekojamie}}", "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.joined_short": "Pievienojās", "account.languages": "Mainīt abonētās valodas", - "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}", + "account.link_verified_on": "Šīs saites piederība tika pārbaudīta {date}", "account.locked_info": "Šī konta privātuma statuss ir slēgts. Īpašnieks izskatīs, kurš viņam drīkst sekot.", "account.media": "Multivide", "account.mention": "Pieminēt @{name}", @@ -53,11 +53,12 @@ "account.posts": "Ieraksti", "account.posts_with_replies": "Ieraksti un atbildes", "account.report": "Sūdzēties par @{name}", - "account.requested": "Gaidām apstiprinājumu. Nospied lai atceltu sekošanas pieparasījumu", + "account.requested": "Gaida apstiprinājumu. Nospied, lai atceltu sekošanas pieparasījumu", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Dalīties ar @{name} profilu", "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus", "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}", - "account.unblock": "Atbloķēt lietotāju @{name}", + "account.unblock": "Atbloķēt @{name}", "account.unblock_domain": "Atbloķēt domēnu {domain}", "account.unblock_short": "Atbloķēt", "account.unendorse": "Neizcelt profilā", @@ -65,7 +66,7 @@ "account.unmute": "Noņemt apklusinājumu @{name}", "account.unmute_notifications": "Rādīt paziņojumus no @{name}", "account.unmute_short": "Noņemt apklusinājumu", - "account_note.placeholder": "Noklikšķiniet, lai pievienotu piezīmi", + "account_note.placeholder": "Noklikšķini, lai pievienotu piezīmi", "admin.dashboard.daily_retention": "Lietotāju saglabāšanas rādītājs dienā pēc reģistrēšanās", "admin.dashboard.monthly_retention": "Lietotāju saglabāšanas rādītājs mēnesī pēc reģistrēšanās", "admin.dashboard.retention.average": "Vidēji", @@ -128,7 +129,7 @@ "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.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.", + "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ā?", "compose_form.poll.add_option": "Pievienot izvēli", @@ -206,7 +207,7 @@ "emoji_button.search": "Meklēt...", "emoji_button.search_results": "Meklēšanas rezultāti", "emoji_button.symbols": "Simboli", - "emoji_button.travel": "Ceļošana & Vietas", + "emoji_button.travel": "Ceļošana un vietas", "empty_column.account_suspended": "Konta darbība ir apturēta", "empty_column.account_timeline": "Šeit ziņojumu nav!", "empty_column.account_unavailable": "Profils nav pieejams", @@ -216,10 +217,10 @@ "empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.", "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.", "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!", - "empty_column.favourited_statuses": "Patreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.", + "empty_column.favourited_statuses": "Pašreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.", "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad kāds to izdarīs, tas parādīsies šeit.", "empty_column.follow_recommendations": "Neizdevās ģenerēt tev pielāgotus ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākos tēmturus.", - "empty_column.follow_requests": "Šobrīd neviens nav pieteicies tev sekot. Kad kāds pieteiksies tas parādīsies šeit.", + "empty_column.follow_requests": "Šobrīd tev nav sekošanas pieprasījumu. Kad kāds pieteiksies tev sekot, pieprasījums parādīsies šeit.", "empty_column.hashtag": "Ar šo tēmturi nekas nav atrodams.", "empty_column.home": "Tava mājas laika līnija ir tukša! Lai to aizpildītu, pieseko vairāk cilvēkiem. {suggestions}", "empty_column.home.suggestions": "Apskatīt dažus ieteikumus", @@ -230,16 +231,20 @@ "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai pieseko lietotājiem no citiem serveriem", "error.unexpected_crash.explanation": "Koda kļūdas vai pārlūkprogrammas saderības problēmas dēļ šo lapu nevarēja parādīt pareizi.", "error.unexpected_crash.explanation_addons": "Šo lapu nevarēja parādīt pareizi. Šo kļūdu, iespējams, izraisīja pārlūkprogrammas papildinājums vai automātiskās tulkošanas rīki.", - "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.", - "error.unexpected_crash.next_steps_addons": "Mēģini tos atspējot un atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.", + "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai lietotni.", + "error.unexpected_crash.next_steps_addons": "Mēģini tos atspējot un atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai lietotni.", "errors.unexpected_crash.copy_stacktrace": "Kopēt stacktrace uz starpliktuvi", "errors.unexpected_crash.report_issue": "Ziņot par problēmu", "explore.search_results": "Meklēšanas rezultāti", + "explore.suggested_follows": "Tev", "explore.title": "Pārlūkot", + "explore.trending_links": "Jaunumi", + "explore.trending_statuses": "Ziņas", + "explore.trending_tags": "Tēmturi", "filter_modal.added.context_mismatch_explanation": "Šī filtra kategorija neattiecas uz kontekstu, kurā esi piekļuvis šai ziņai. Ja vēlies, lai ziņa tiktu filtrēta arī šajā kontekstā, tev būs jārediģē filtrs.", "filter_modal.added.context_mismatch_title": "Konteksta neatbilstība!", "filter_modal.added.expired_explanation": "Šai filtra kategorijai ir beidzies derīguma termiņš. Lai to lietotu, tev būs jāmaina derīguma termiņš.", - "filter_modal.added.expired_title": "Filtrs beidzies!", + "filter_modal.added.expired_title": "Filtra termiņš beidzies!", "filter_modal.added.review_and_configure": "Lai pārskatītu un tālāk konfigurētu šo filtru kategoriju, dodies uz {settings_link}.", "filter_modal.added.review_and_configure_title": "Filtra iestatījumi", "filter_modal.added.settings_link": "iestatījumu lapu", @@ -281,8 +286,8 @@ "home.column_settings.basic": "Pamata", "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus", "home.column_settings.show_replies": "Rādīt atbildes", - "home.hide_announcements": "Slēpt paziņojumus", - "home.show_announcements": "Rādīt paziņojumus", + "home.hide_announcements": "Slēpt anonsus", + "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.", @@ -305,7 +310,7 @@ "keyboard_shortcuts.compose": "Fokusēt veidojamā teksta lauku", "keyboard_shortcuts.description": "Apraksts", "keyboard_shortcuts.direct": "lai atvērtu privāto ziņojumu kolonnu", - "keyboard_shortcuts.down": "Pārvietot sarakstā uz leju", + "keyboard_shortcuts.down": "Pārvietoties lejup sarakstā", "keyboard_shortcuts.enter": "Atvērt ziņu", "keyboard_shortcuts.favourite": "Pievienot izlasei", "keyboard_shortcuts.favourites": "Atvērt izlašu sarakstu", @@ -331,7 +336,7 @@ "keyboard_shortcuts.toggle_sensitivity": "Rādīt/slēpt multividi", "keyboard_shortcuts.toot": "Sākt jaunu ziņu", "keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku", - "keyboard_shortcuts.up": "Pārvietot sarakstā uz augšu", + "keyboard_shortcuts.up": "Pārvietoties augšup sarakstā", "lightbox.close": "Aizvērt", "lightbox.compress": "Saspiest attēla skata lodziņu", "lightbox.expand": "Izvērst attēla skata lodziņu", @@ -408,7 +413,7 @@ "notifications.column_settings.follow": "Jauni sekotāji:", "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:", "notifications.column_settings.mention": "Pieminējumi:", - "notifications.column_settings.poll": "Aptaujas rezultāti:", + "notifications.column_settings.poll": "Aptauju rezultāti:", "notifications.column_settings.push": "Uznirstošie paziņojumi", "notifications.column_settings.reblog": "Pastiprinātie ieraksti:", "notifications.column_settings.show": "Rādīt kolonnā", @@ -420,18 +425,18 @@ "notifications.filter.all": "Visi", "notifications.filter.boosts": "Pastiprinātie ieraksti", "notifications.filter.favourites": "Izlases", - "notifications.filter.follows": "Seko", + "notifications.filter.follows": "Sekošana", "notifications.filter.mentions": "Pieminējumi", - "notifications.filter.polls": "Aptaujas rezultāti", + "notifications.filter.polls": "Aptauju rezultāti", "notifications.filter.statuses": "Jaunumi no cilvēkiem, kuriem tu seko", "notifications.grant_permission": "Piešķirt atļauju.", "notifications.group": "{count} paziņojumi", - "notifications.mark_as_read": "Atzīmēt katru paziņojumu kā izlasītu", + "notifications.mark_as_read": "Atzīmēt visus paziņojumus kā izlasītus", "notifications.permission_denied": "Darbvirsmas paziņojumi nav pieejami, jo iepriekš tika noraidīts pārlūka atļauju pieprasījums", "notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta", "notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.", "notifications_permission_banner.enable": "Iespējot darbvirsmas paziņojumus", - "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības ģenerē darbvirsmas paziņojumus, izmantojot augstāk redzamo pogu {icon}, kad tie būs iespējoti.", + "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības rada darbvirsmas paziņojumus, izmantojot augstāk redzamo pogu {icon}, kad tie būs iespējoti.", "notifications_permission_banner.title": "Nekad nepalaid neko garām", "picture_in_picture.restore": "Novietot atpakaļ", "poll.closed": "Pabeigta", @@ -477,7 +482,7 @@ "report.category.subtitle": "Izvēlieties labāko atbilstību", "report.category.title": "Pastāsti mums, kas notiek ar šo {type}", "report.category.title_account": "profilu", - "report.category.title_status": "ierakstu", + "report.category.title_status": "ziņu", "report.close": "Darīts", "report.comment.title": "Vai, tavuprāt, mums vēl būtu kas jāzina?", "report.forward": "Pārsūtīt {target}", @@ -487,7 +492,7 @@ "report.next": "Tālāk", "report.placeholder": "Papildu komentāri", "report.reasons.dislike": "Man tas nepatīk", - "report.reasons.dislike_description": "Tas nav kaut kas, ko tu vēlies redzēt", + "report.reasons.dislike_description": "Tas ir kaut kas, ko tu nevēlies redzēt", "report.reasons.other": "Tas ir kaut kas cits", "report.reasons.other_description": "Šī sūdzība neatbilst pārējām kategorijām", "report.reasons.spam": "Tas ir spams", @@ -497,16 +502,16 @@ "report.rules.subtitle": "Atlasi visus atbilstošos", "report.rules.title": "Kuri noteikumi tiek pārkāpti?", "report.statuses.subtitle": "Atlasi visus atbilstošos", - "report.statuses.title": "Vai ir kādas ziņas, kas atbalsta šo sūdzību?", + "report.statuses.title": "Vai ir kādi ieraksti, kas atbalsta šo sūdzību?", "report.submit": "Iesniegt", "report.target": "Sūdzība par {target}", - "report.thanks.take_action": "Tālāk ir norādītas iespējas, kā kontrolēt Mastodon redzamo saturu:", + "report.thanks.take_action": "Vari veikt šīs darbības, lai kontrolētu Mastodon redzamo saturu:", "report.thanks.take_action_actionable": "Kamēr mēs to izskatām, tu vari veikt darbības pret @{name}:", "report.thanks.title": "Vai nevēlies to redzēt?", "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.", - "report.unfollow": "Pārtraukt sekošanu @{name}", + "report.unfollow": "Pārtraukt sekot @{name}", "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā mājas plūsmā, pārtrauc viņiem sekot.", - "report_notification.attached_statuses": "{count, plural, zero {Pievienota {count} ierakstu} one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}", + "report_notification.attached_statuses": "{count, plural, one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}", "report_notification.categories.other": "Cita", "report_notification.categories.spam": "Spams", "report_notification.categories.violation": "Noteikumu pārkāpums", @@ -564,7 +569,7 @@ "status.mute_conversation": "Apklusināt sarunu", "status.open": "Paplašināt šo ziņu", "status.pin": "Piespraust profilam", - "status.pinned": "Piespraustā ziņa", + "status.pinned": "Piespraustais ieraksts", "status.read_more": "Lasīt vairāk", "status.reblog": "Pastiprināt", "status.reblog_private": "Pastiprināt, nemainot redzamību", @@ -574,7 +579,7 @@ "status.remove_bookmark": "Noņemt grāmatzīmi", "status.replied_to": "Atbildēja {name}", "status.reply": "Atbildēt", - "status.replyAll": "Atbildēt uz tematu", + "status.replyAll": "Atbildēt uz pavedienu", "status.report": "Sūdzēties par @{name}", "status.sensitive_warning": "Sensitīvs saturs", "status.share": "Kopīgot", @@ -588,12 +593,12 @@ "status.translated_from_with": "Tulkots no {lang}, izmantojot {provider}", "status.uncached_media_warning": "Nav pieejams", "status.unmute_conversation": "Noņemt sarunas apklusinājumu", - "status.unpin": "Noņemt no profila", + "status.unpin": "Noņemt profila piespraudumu", "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas un sarakstu laika līnijā tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.", "subscribed_languages.save": "Saglabāt izmaiņas", "subscribed_languages.target": "Mainīt abonētās valodas priekš {target}", "suggestions.dismiss": "Noraidīt ieteikumu", - "suggestions.header": "Jūs varētu interesēt arī…", + "suggestions.header": "Tevi varētu interesēt arī…", "tabs_bar.federated_timeline": "Apvienotā", "tabs_bar.home": "Sākums", "tabs_bar.local_timeline": "Vietējā", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 2acf78bbc6..f01f84c9e5 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Тутови и реплики", "account.report": "Пријави @{name}", "account.requested": "Се чека одобрување. Кликни за да одкажиш барање за следење", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Сподели @{name} профил", "account.show_reblogs": "Прикажи бустови од @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Пријавете проблем", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index a936c8dbad..39766a775d 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "പോസ്റ്റുകളും മറുപടികളും", "account.report": "റിപ്പോർട്ട് ചെയ്യുക @{name}", "account.requested": "അനുവാദത്തിനായി കാത്തിരിക്കുന്നു. പിന്തുടരാനുള്ള അപേക്ഷ റദ്ദാക്കുവാൻ ഞെക്കുക", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} ന്റെ പ്രൊഫൈൽ പങ്കിടുക", "account.show_reblogs": "@{name} ൽ നിന്നുള്ള ബൂസ്റ്റുകൾ കാണിക്കുക", "account.statuses_counter": "{count, plural, one {{counter} ടൂട്ട്} other {{counter} ടൂട്ടുകൾ}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "പ്രശ്നം അറിയിക്കുക", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "പര്യവേക്ഷണം നടത്തുക", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 65a4cd8af4..b52a85197f 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -1,81 +1,82 @@ { - "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.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.", - "about.domain_blocks.suspended.title": "Suspended", - "about.not_available": "This information has not been made available on this server.", - "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", - "account.account_note_header": "Note", + "about.blocks": "नियंत्रित सर्व्हर", + "about.contact": "संपर्क:", + "about.disclaimer": "Mastodon हे विनामूल्य, मुक्त-स्रोत सॉफ्टवेअर आहे आणि Mastodon gGmbH चे ट्रेडमार्क आहे.", + "about.domain_blocks.no_reason_available": "कारण उपलब्ध नाही", + "about.domain_blocks.preamble": "मास्टोडॉन तुम्हाला सामान्यत: फेडिव्हर्समधील इतर कोणत्याही सर्व्हरवरील वापरकर्त्यांवरील मजकूर पाहण्याची आणि त्यांच्याशी संवाद साधण्याची परवानगी देते. या विशिष्ट सर्व्हरवर केलेले हे अपवाद आहेत.", + "about.domain_blocks.silenced.explanation": "जोपर्यंत तुम्ही ते स्पष्टपणे शोधत नाही किंवा अनुसरण करून निवड करत नाही तोपर्यंत तुम्हाला या सर्व्हरवरील प्रोफाइल आणि मजकूर दिसणार नाही.", + "about.domain_blocks.silenced.title": "मर्यादित", + "about.domain_blocks.suspended.explanation": "या सर्व्हरवरील कोणत्याही डेटावर प्रक्रिया, संचयित किंवा देवाणघेवाण केली जाणार नाही, ज्यामुळे या सर्व्हरवरील वापरकर्त्यांशी कोणताही संवाद किंवा परस्पर क्रिया अशक्य होईल.", + "about.domain_blocks.suspended.title": "निलंबित", + "about.not_available": "ही माहिती या सर्व्हरवर उपलब्ध करून देण्यात आलेली नाही.", + "about.powered_by": "{mastodon} द्वारा समर्थित विकेंद्रित सोशल मीडिया", + "about.rules": "सर्व्हर नियम", + "account.account_note_header": "नोंद", "account.add_or_remove_from_list": "यादीत घाला किंवा यादीतून काढून टाका", "account.badges.bot": "स्वयंचलित खाते", - "account.badges.group": "Group", + "account.badges.group": "गट", "account.block": "@{name} यांना ब्लॉक करा", "account.block_domain": "{domain} पासून सर्व लपवा", "account.blocked": "ब्लॉक केले आहे", - "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Withdraw follow request", + "account.browse_more_on_origin_server": "मूळ प्रोफाइलवर अधिक ब्राउझ करा", + "account.cancel_follow_request": "फॉलो विनंती मागे घ्या", "account.direct": "थेट संदेश @{name}", - "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.disable_notifications": "जेव्हा @{name} पोस्ट करतात तेव्हा मला सूचित करणे थांबवा", "account.domain_blocked": "Domain hidden", "account.edit_profile": "प्रोफाइल एडिट करा", - "account.enable_notifications": "Notify me when @{name} posts", - "account.endorse": "Feature on profile", - "account.featured_tags.last_status_at": "Last post on {date}", - "account.featured_tags.last_status_never": "No posts", - "account.featured_tags.title": "{name}'s featured hashtags", + "account.enable_notifications": "जेव्हा @{name} पोस्ट करते तेव्हा मला सूचित करा", + "account.endorse": "प्रोफाइलवरील वैशिष्ट्य", + "account.featured_tags.last_status_at": "शेवटचे पोस्ट {date} रोजी", + "account.featured_tags.last_status_never": "पोस्ट नाहीत", + "account.featured_tags.title": "{name} चे वैशिष्ट्यीकृत हॅशटॅग", "account.follow": "अनुयायी व्हा", "account.followers": "अनुयायी", "account.followers.empty": "ह्या वापरकर्त्याचा आतापर्यंत कोणी अनुयायी नाही.", - "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", - "account.following": "Following", - "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.followers_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", + "account.following": "अनुसरण", + "account.following_counter": "{count, plural, one {{counter} following} other {{counter} following}}", "account.follows.empty": "हा वापरकर्ता अजूनपर्यंत कोणाचा अनुयायी नाही.", "account.follows_you": "तुमचा अनुयायी आहे", - "account.go_to_profile": "Go to profile", + "account.go_to_profile": "प्रोफाइल वर जा", "account.hide_reblogs": "@{name} पासून सर्व बूस्ट लपवा", - "account.joined_short": "Joined", - "account.languages": "Change subscribed languages", - "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.joined_short": "सामील झाले", + "account.languages": "सदस्यता घेतलेल्या भाषा बदला", + "account.link_verified_on": "या लिंकची मालकी {date} रोजी तपासली गेली", + "account.locked_info": "या खात्याची गोपनीयता स्थिती लॉक वर सेट केली आहे. त्यांचे अनुसरण कोण करू शकते याचे मालक स्वतः पुनरावलोकन करतात.", "account.media": "दृक्‌‌श्राव्य मजकूर", "account.mention": "@{name} चा उल्लेख करा", - "account.moved_to": "{name} has indicated that their new account is now:", + "account.moved_to": "{name} ने सूचित केले आहे की त्यांचे नवीन खाते आता आहे:", "account.mute": "@{name} ला मूक कारा", - "account.mute_notifications": "Mute notifications from @{name}", - "account.muted": "Muted", - "account.open_original_page": "Open original page", + "account.mute_notifications": "@{name} कडील सूचना नि: शब्द करा", + "account.muted": "मौन", + "account.open_original_page": "मूळ पृष्ठ उघडा", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", - "account.report": "Report @{name}", + "account.report": "@{name} ची तक्रार करा", "account.requested": "Awaiting approval", - "account.share": "Share @{name}'s profile", + "account.requested_follow": "{name} has requested to follow you", + "account.share": "@{name} चे प्रोफाइल शेअर करा", "account.show_reblogs": "{name}चे सर्व बुस्ट्स दाखवा", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.unblock": "@{name} ला ब्लॉक करा", "account.unblock_domain": "उघड करा {domain}", - "account.unblock_short": "Unblock", - "account.unendorse": "Don't feature on profile", + "account.unblock_short": "अनब्लॉक करा", + "account.unendorse": "प्रोफाइलवर वैशिष्ट्य देऊ नका", "account.unfollow": "अनुयायी असणे थांबवा", - "account.unmute": "Unmute @{name}", - "account.unmute_notifications": "Unmute notifications from @{name}", - "account.unmute_short": "Unmute", + "account.unmute": "@{name} अनम्यूट करा", + "account.unmute_notifications": "@{name} कडील सूचना अनम्यूट करा", + "account.unmute_short": "अनम्यूट करा", "account_note.placeholder": "Click to add a note", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", + "admin.dashboard.daily_retention": "साइन अप केल्यानंतर दिवसा वापरकर्ता धारणा दर", + "admin.dashboard.monthly_retention": "साइन अप केल्यानंतर महिन्यानुसार वापरकर्ता धारणा दर", + "admin.dashboard.retention.average": "सरासरी", + "admin.dashboard.retention.cohort": "साइन-अप महिना", + "admin.dashboard.retention.cohort_size": "नवीन वापरकर्ता", + "alert.rate_limited.message": "कृपया {retry_time, time, medium} नंतर पुन्हा प्रयत्न करा.", + "alert.rate_limited.title": "दर मर्यादित", + "alert.unexpected.message": "एक अनपेक्षित त्रुटी आली.", "alert.unexpected.title": "अरेरे!", - "announcement.announcement": "Announcement", + "announcement.announcement": "घोषणा", "attachments_list.unprocessed": "(unprocessed)", "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताह", @@ -162,8 +163,8 @@ "confirmations.domain_block.confirm": "संपूर्ण डोमेन लपवा", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "confirmations.logout.confirm": "Log out", - "confirmations.logout.message": "Are you sure you want to log out?", - "confirmations.mute.confirm": "Mute", + "confirmations.logout.message": "तुमची खात्री आहे की तुम्ही लॉग आउट करू इच्छिता?", + "confirmations.mute.confirm": "आवाज बंद करा", "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", @@ -272,29 +277,29 @@ "hashtag.column_header.tag_mode.none": "without {additional}", "hashtag.column_settings.select.no_options_message": "No suggestions found", "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", - "hashtag.column_settings.tag_mode.any": "Any of these", - "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.tag_mode.all": "यातील सर्व", + "hashtag.column_settings.tag_mode.any": "यापैकी कोणतेही", + "hashtag.column_settings.tag_mode.none": "यापैकी एकही नाही", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", - "home.column_settings.basic": "Basic", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", - "home.hide_announcements": "Hide announcements", - "home.show_announcements": "Show announcements", - "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", - "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", - "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", - "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", - "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.title.favourite": "Favourite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", + "hashtag.follow": "हॅशटॅग फॉलो करा", + "hashtag.unfollow": "हॅशटॅग अनफॉलो करा", + "home.column_settings.basic": "मूळ", + "home.column_settings.show_reblogs": "बूस्ट दाखवा", + "home.column_settings.show_replies": "उत्तरे दाखवा", + "home.hide_announcements": "घोषणा लपवा", + "home.show_announcements": "घोषणा दाखवा", + "interaction_modal.description.favourite": "मॅस्टोडॉनवरील खात्यासह, तुम्ही हे पोस्ट आवडते म्हणून लेखकाला कळवून तुम्ही त्याचे कौतुक करू शकता आणि ते नंतरसाठी जतन करू शकता.", + "interaction_modal.description.follow": "मॅस्टोडॉन वरील खात्यासह, तुम्ही त्यांच्या पोस्ट तुमच्या होम फीडमध्ये प्राप्त करण्यासाठी {name} चे अनुसरण करू शकता.", + "interaction_modal.description.reblog": "मॅस्टोडॉन वरील खात्यासह, तुम्ही ही पोस्ट तुमच्या स्वतःच्या अनुयायांसह शेअर करण्यासाठी बूस्ट करू शकता.", + "interaction_modal.description.reply": "मॅस्टोडॉनवरील खात्यासह, तुम्ही या पोस्टला प्रतिसाद देऊ शकता.", + "interaction_modal.on_another_server": "वेगळ्या सर्व्हरवर", + "interaction_modal.on_this_server": "या सर्व्हरवर", + "interaction_modal.other_server_instructions": "तुमच्या आवडत्या मॅस्टोडॉन अँपच्या सर्च फिल्डमध्ये किंवा तुमच्या मॅस्टोडॉन सर्व्हरच्या वेब इंटरफेसमध्ये ही URL कॉपी आणि पेस्ट करा.", + "interaction_modal.preamble": "मास्टोडॉन विकेंद्रित असल्याने, तुमचे खाते नसेल तर तुम्ही दुसरे मॅस्टोडॉन सर्व्हर किंवा सुसंगत प्लॅटफॉर्मद्वारे होस्ट केलेले तुमचे विद्यमान खाते वापरू शकता.", + "interaction_modal.title.favourite": "आवडत्या {name} ची पोस्ट", + "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.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -303,8 +308,8 @@ "keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.description": "वर्णन", + "keyboard_shortcuts.direct": "थेट संदेश स्तंभ उघडण्यासाठी", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -312,7 +317,7 @@ "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.hotkey": "हॉटकी", "keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.mention": "to mention author", @@ -332,28 +337,28 @@ "keyboard_shortcuts.toot": "to start a brand new toot", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "lightbox.close": "Close", - "lightbox.compress": "Compress image view box", - "lightbox.expand": "Expand image view box", - "lightbox.next": "Next", - "lightbox.previous": "Previous", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", - "lists.account.add": "Add to list", - "lists.account.remove": "Remove from list", - "lists.delete": "Delete list", - "lists.edit": "Edit list", - "lists.edit.submit": "Change title", - "lists.new.create": "Add list", - "lists.new.title_placeholder": "New list title", - "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", - "lists.replies_policy.none": "No one", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", + "lightbox.close": "बंद करा", + "lightbox.compress": "प्रतिमा दृश्य बॉक्स कॉम्प्रेस करा", + "lightbox.expand": "प्रतिमा दृश्य बॉक्स विस्तृत करा", + "lightbox.next": "पुढे", + "lightbox.previous": "मागील", + "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.none": "कोणीच नाही", + "lists.replies_policy.title": "यांना उत्तरे दाखवा:", + "lists.search": "तुम्ही फॉलो करत असलेल्या लोकांमध्ये शोधा", + "lists.subheading": "तुमच्या याद्या", "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", + "loading_indicator.label": "लोड करत आहे...", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", @@ -409,21 +414,21 @@ "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mentions:", "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifications", - "notifications.column_settings.reblog": "Boosts:", - "notifications.column_settings.show": "Show in column", - "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.push": "सूचना", + "notifications.column_settings.reblog": "बूस्ट:", + "notifications.column_settings.show": "स्तंभात दाखवा", + "notifications.column_settings.sound": "ध्वनी प्ले करा", "notifications.column_settings.status": "New toots:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", - "notifications.filter.statuses": "Updates from people you follow", + "notifications.column_settings.unread_notifications.category": "अपठित अधिसूचना", + "notifications.column_settings.unread_notifications.highlight": "न वाचलेल्या सूचना हायलाइट करा", + "notifications.column_settings.update": "संपादने:", + "notifications.filter.all": "सर्व", + "notifications.filter.boosts": "बूस्ट", + "notifications.filter.favourites": "आवडते", + "notifications.filter.follows": "अनुयायी आहे", + "notifications.filter.mentions": "उल्लेख केलेले", + "notifications.filter.polls": "मतदान परिणाम", + "notifications.filter.statuses": "तुम्ही फॉलो करत असलेल्या लोकांकडून अपडेट", "notifications.grant_permission": "Grant permission.", "notifications.group": "{count} notifications", "notifications.mark_as_read": "Mark every notification as read", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index e3dcf46a15..7e1205d882 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Hantaran dan balasan", "account.report": "Laporkan @{name}", "account.requested": "Menunggu kelulusan. Klik untuk batalkan permintaan ikut", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Kongsi profil @{name}", "account.show_reblogs": "Tunjukkan galakan daripada @{name}", "account.statuses_counter": "{count, plural, other {{counter} kiriman}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Salin surih tindanan ke papan keratan", "errors.unexpected_crash.report_issue": "Laporkan masalah", "explore.search_results": "Hasil carian", + "explore.suggested_follows": "For you", "explore.title": "Terokai", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Kumpulan penapis ini tidak terpakai pada konteks di mana anda mengakses hantaran ini. Jika anda ingin hantaran ini untuk ditapis dalam konteks ini juga, anda perlu menyunting penapis tersebut.", "filter_modal.added.context_mismatch_title": "Konteks tidak sepadan!", "filter_modal.added.expired_explanation": "Kumpulan filter ini telah tamat tempoh, anda perlu mengubah tarikh luput untuk melaksanakannya.", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 1e55e8dee2..c6b348b19e 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index e677251f10..9a873ffb76 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -16,7 +16,7 @@ "account.badges.bot": "Bot", "account.badges.group": "Groep", "account.block": "@{name} blokkeren", - "account.block_domain": "Alles van {domain} verbergen", + "account.block_domain": "Alles van {domain} blokkeren", "account.blocked": "Geblokkeerd", "account.browse_more_on_origin_server": "Zie meer op het originele profiel", "account.cancel_follow_request": "Volgverzoek annuleren", @@ -54,11 +54,12 @@ "account.posts_with_replies": "Berichten en reacties", "account.report": "@{name} rapporteren", "account.requested": "Wachten op goedkeuring. Klik om het volgverzoek te annuleren", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Profiel van @{name} delen", "account.show_reblogs": "Boosts van @{name} tonen", "account.statuses_counter": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", "account.unblock": "@{name} deblokkeren", - "account.unblock_domain": "{domain} niet langer verbergen", + "account.unblock_domain": "{domain} niet langer blokkeren", "account.unblock_short": "Deblokkeren", "account.unendorse": "Niet op profiel weergeven", "account.unfollow": "Ontvolgen", @@ -159,8 +160,8 @@ "confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?", "confirmations.discard_edit_media.confirm": "Weggooien", "confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?", - "confirmations.domain_block.confirm": "Verberg alles van deze server", - "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt negeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je zult geen berichten van deze server op openbare tijdlijnen zien of in jouw meldingen. Jouw volgers van deze server worden verwijderd.", + "confirmations.domain_block.confirm": "Blokkeer alles van deze server", + "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt blokkeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je zult geen berichten van deze server op openbare tijdlijnen zien of in jouw meldingen. Jouw volgers van deze server worden verwijderd.", "confirmations.logout.confirm": "Uitloggen", "confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?", "confirmations.mute.confirm": "Negeren", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Stacktrace naar klembord kopiëren", "errors.unexpected_crash.report_issue": "Technisch probleem melden", "explore.search_results": "Zoekresultaten", + "explore.suggested_follows": "Voor jou", "explore.title": "Verkennen", + "explore.trending_links": "Nieuws", + "explore.trending_statuses": "Berichten", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Deze filtercategorie is niet van toepassing op de context waarin je dit bericht hebt benaderd. Als je wilt dat het bericht ook in deze context wordt gefilterd, moet je het filter bewerken.", "filter_modal.added.context_mismatch_title": "Context komt niet overeen!", "filter_modal.added.expired_explanation": "Deze filtercategorie is verlopen. Je moet de vervaldatum wijzigen om de categorie toe te kunnen passen.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 0342b66c7b..56ccfe43b7 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Tut og svar", "account.report": "Rapporter @{name}", "account.requested": "Ventar på aksept. Klikk for å avbryta fylgjeførespurnaden", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Del @{name} sin profil", "account.show_reblogs": "Vis framhevingar frå @{name}", "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla", "errors.unexpected_crash.report_issue": "Rapporter problem", "explore.search_results": "Søkeresultat", + "explore.suggested_follows": "For you", "explore.title": "Utforsk", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Denne filterkategorien gjeld ikkje i den samanhengen du har lese dette innlegget. Viss du vil at innlegget skal filtrerast i denne samanhengen òg, må du endra filteret.", "filter_modal.added.context_mismatch_title": "Konteksten passar ikkje!", "filter_modal.added.expired_explanation": "Denne filterkategorien har gått ut på dato. Du må endre best før datoen for at den skal gjelde.", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 1c33c8a994..c6999ab201 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Innlegg med svar", "account.report": "Rapportér @{name}", "account.requested": "Venter på godkjennelse. Klikk for å avbryte forespørselen", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Del @{name}s profil", "account.show_reblogs": "Vis fremhevinger fra @{name}", "account.statuses_counter": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace-en til utklippstavlen", "errors.unexpected_crash.report_issue": "Rapporter en feil", "explore.search_results": "Søkeresultater", + "explore.suggested_follows": "For you", "explore.title": "Utforsk", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Denne filterkategorien gjelder ikke for den konteksten du har åpnet dette innlegget i. Hvis du vil at innlegget skal filtreres i denne konteksten også, må du redigere filteret.", "filter_modal.added.context_mismatch_title": "Feil sammenheng!", "filter_modal.added.expired_explanation": "Denne filterkategorien er utløpt, du må endre utløpsdato for at den skal gjelde.", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 446e0cd226..2e475aef93 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Tuts e responsas", "account.report": "Senhalar @{name}", "account.requested": "Invitacion mandada. Clicatz per anullar", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Partejar lo perfil a @{name}", "account.show_reblogs": "Mostrar los partatges de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar las traças al quichapapièrs", "errors.unexpected_crash.report_issue": "Senhalar un problèma", "explore.search_results": "Resultats de recèrca", + "explore.suggested_follows": "For you", "explore.title": "Explorar", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 693991651d..f31ea85377 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 9ee80586cd..bfe227c0fd 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -43,7 +43,7 @@ "account.languages": "Zmień subskrybowane języki", "account.link_verified_on": "Własność tego odnośnika została potwierdzona {date}", "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go obserwować.", - "account.media": "Zawartość multimedialna", + "account.media": "Multimedia", "account.mention": "Wspomnij o @{name}", "account.moved_to": "{name} jako swoje nowe konto wskazał/a:", "account.mute": "Wycisz @{name}", @@ -54,6 +54,7 @@ "account.posts_with_replies": "Wpisy i odpowiedzi", "account.report": "Zgłoś @{name}", "account.requested": "Oczekująca prośba, kliknij aby anulować", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Udostępnij profil @{name}", "account.show_reblogs": "Pokazuj podbicia od @{name}", "account.statuses_counter": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", @@ -121,7 +122,7 @@ "column_header.unpin": "Cofnij przypięcie", "column_subheading.settings": "Ustawienia", "community.column_settings.local_only": "Tylko Lokalne", - "community.column_settings.media_only": "Tylko zawartość multimedialna", + "community.column_settings.media_only": "Tylko multimedia", "community.column_settings.remote_only": "Tylko Zdalne", "compose.language.change": "Zmień język", "compose.language.search": "Szukaj języków...", @@ -141,9 +142,9 @@ "compose_form.publish_form": "Publikuj", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Zapisz zmiany", - "compose_form.sensitive.hide": "Oznacz multimedia jako wrażliwe", - "compose_form.sensitive.marked": "Zawartość multimedia jest oznaczona jako wrażliwa", - "compose_form.sensitive.unmarked": "Zawartość multimedialna nie jest oznaczona jako wrażliwa", + "compose_form.sensitive.hide": "{count, plural, one {Oznacz treść multimedialną jako wrażliwą} other {Oznacz treści multimedialne jako wrażliwe}}", + "compose_form.sensitive.marked": "{count, plural, one {Treść multimedialna jest oznaczona jako wrażliwa} other {Treści multimedialne są oznaczone jako wrażliwe}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Treść multimedialna nie jest oznaczona jako wrażliwa} other {Treści multimedialne nie są oznaczone jako wrażliwe}}", "compose_form.spoiler.marked": "Tekst jest ukryty za ostrzeżeniem", "compose_form.spoiler.unmarked": "Tekst nie jest ukryty", "compose_form.spoiler_placeholder": "Wprowadź swoje ostrzeżenie o zawartości", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Skopiuj ślad stosu do schowka", "errors.unexpected_crash.report_issue": "Zgłoś problem", "explore.search_results": "Wyniki wyszukiwania", + "explore.suggested_follows": "For you", "explore.title": "Odkrywaj", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Ta kategoria filtrów nie ma zastosowania do kontekstu, w którym uzyskałeś dostęp do tego wpisu. Jeśli chcesz, aby wpis został przefiltrowany również w tym kontekście, będziesz musiał edytować filtr.", "filter_modal.added.context_mismatch_title": "Niezgodność kontekstów!", "filter_modal.added.expired_explanation": "Ta kategoria filtra wygasła, będziesz musiał zmienić datę wygaśnięcia, aby ją zastosować.", @@ -319,7 +324,7 @@ "keyboard_shortcuts.muted": "aby przejść do listy wyciszonych użytkowników", "keyboard_shortcuts.my_profile": "aby otworzyć własny profil", "keyboard_shortcuts.notifications": "aby otworzyć kolumnę powiadomień", - "keyboard_shortcuts.open_media": "aby otworzyć zawartość multimedialną", + "keyboard_shortcuts.open_media": "Otwórz multimedia", "keyboard_shortcuts.pinned": "aby przejść do listy przypiętych wpisów", "keyboard_shortcuts.profile": "aby przejść do profilu autora wpisu", "keyboard_shortcuts.reply": "aby odpowiedzieć", @@ -328,7 +333,7 @@ "keyboard_shortcuts.spoilers": "aby pokazać/ukryć pole CW", "keyboard_shortcuts.start": "aby otworzyć kolumnę „Rozpocznij”", "keyboard_shortcuts.toggle_hidden": "aby wyświetlić lub ukryć wpis spod CW", - "keyboard_shortcuts.toggle_sensitivity": "by pokazać/ukryć multimedia", + "keyboard_shortcuts.toggle_sensitivity": "Pokaż/ukryj multimedia", "keyboard_shortcuts.toot": "Stwórz nowy post", "keyboard_shortcuts.unfocus": "aby opuścić pole wyszukiwania/pisania", "keyboard_shortcuts.up": "aby przejść na górę listy", @@ -470,7 +475,7 @@ "relative_time.today": "dzisiaj", "reply_indicator.cancel": "Anuluj", "report.block": "Zablokuj", - "report.block_explanation": "Nie zobaczysz ich postów. Nie będą mogli zobaczyć Twoich postów ani cię obserwować. Będą mogli domyślić się, że są zablokowani.", + "report.block_explanation": "Nie zobaczysz ich wpisów. Nie będą mogli zobaczyć Twoich postów ani cię obserwować. Będą mogli domyślić się, że są zablokowani.", "report.categories.other": "Inne", "report.categories.spam": "Spam", "report.categories.violation": "Zawartość narusza co najmniej jedną zasadę serwera", @@ -557,7 +562,7 @@ "status.history.created": "{name} utworzył(a) {date}", "status.history.edited": "{name} edytował(a) {date}", "status.load_more": "Załaduj więcej", - "status.media_hidden": "Zawartość multimedialna ukryta", + "status.media_hidden": "Multimedia ukryte", "status.mention": "Wspomnij o @{name}", "status.more": "Więcej", "status.mute": "Wycisz @{name}", @@ -614,7 +619,7 @@ "units.short.million": "{count} mln", "units.short.thousand": "{count} tys.", "upload_area.title": "Przeciągnij i upuść aby wysłać", - "upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)", + "upload_button.label": "Dodaj zdjęcia, filmy lub audio", "upload_error.limit": "Przekroczono limit plików do wysłania.", "upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.", "upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 5b75b8fcb8..0c0d3df709 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Com respostas", "account.report": "Denunciar @{name}", "account.requested": "Aguardando aprovação. Clique para cancelar a solicitação", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Compartilhar perfil de @{name}", "account.show_reblogs": "Mostrar boosts de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar dados do erro para área de transferência", "errors.unexpected_crash.report_issue": "Reportar problema", "explore.search_results": "Resultado da pesquisa", + "explore.suggested_follows": "For you", "explore.title": "Explorar", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto no qual você acessou esta publicação. Se quiser que a publicação seja filtrada nesse contexto também, você terá que editar o filtro.", "filter_modal.added.context_mismatch_title": "Incompatibilidade de contexto!", "filter_modal.added.expired_explanation": "Esta categoria de filtro expirou, você precisará alterar a data de expiração para aplicar.", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 8dd5b446c3..b414409ac9 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -54,6 +54,7 @@ "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_follow": "{name} has requested to follow you", "account.share": "Partilhar o perfil @{name}", "account.show_reblogs": "Mostrar partilhas de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar a stacktrace para o clipboard", "errors.unexpected_crash.report_issue": "Reportar problema", "explore.search_results": "Resultados da pesquisa", + "explore.suggested_follows": "For you", "explore.title": "Explorar", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "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.", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 69ab4fb9be..175d2216e7 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Postări și răspunsuri", "account.report": "Raportează pe @{name}", "account.requested": "Se așteaptă aprobarea. Apasă pentru a anula cererea de urmărire", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Distribuie profilul lui @{name}", "account.show_reblogs": "Arată impulsurile de la @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiere stacktrace în clipboard", "errors.unexpected_crash.report_issue": "Raportează o problemă", "explore.search_results": "Rezultatele căutării", + "explore.suggested_follows": "For you", "explore.title": "Explorează", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Această categorie de filtre nu se aplică în contextul în care ați accesat acestă postare. Dacă doriți ca postarea să fie filtrată și în acest context, va trebui să editați filtrul.", "filter_modal.added.context_mismatch_title": "Nepotrivire contextuală!", "filter_modal.added.expired_explanation": "Această categorie de filtre a expirat, va trebui să modifici data de expirare pentru ca aceasta să se aplice.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 0d664afe2a..355f972874 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Посты и ответы", "account.report": "Пожаловаться на @{name}", "account.requested": "Ожидает подтверждения. Нажмите для отмены запроса", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Поделиться профилем @{name}", "account.show_reblogs": "Показывать продвижения от @{name}", "account.statuses_counter": "{count, plural, one {{counter} пост} many {{counter} постов} other {{counter} поста}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Скопировать диагностическую информацию", "errors.unexpected_crash.report_issue": "Сообщить о проблеме", "explore.search_results": "Результаты поиска", + "explore.suggested_follows": "For you", "explore.title": "Обзор", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Эта категория не применяется к контексту, в котором вы получили доступ к этому посту. Если вы хотите, чтобы пост был отфильтрован в этом контексте, вам придётся отредактировать фильтр.", "filter_modal.added.context_mismatch_title": "Несоответствие контекста!", "filter_modal.added.expired_explanation": "Эта категория фильтра устарела, вам нужно изменить дату окончания фильтра, чтобы применить его.", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 0507010cc5..cf21d3775e 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "दौत्यानि प्रत्युत्तराणि च", "account.report": "आविद्यताम् @{name}", "account.requested": "स्वीकृतिः प्रतीक्ष्यते । नश्यतामित्यस्मिन्नुद्यतां निराकर्तुम् ।", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} मित्रस्य विवरणं विभाज्यताम्", "account.show_reblogs": "@{name} मित्रस्य प्रकाशनानि दृश्यन्ताम्", "account.statuses_counter": "{count, plural, one {{counter} दौत्यम्} two {{counter} दौत्ये} other {{counter} दौत्यानि}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 4990d68136..6949c8cc03 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Publicatziones e rispostas", "account.report": "Signala @{name}", "account.requested": "Abetende s'aprovatzione. Incarca pro annullare sa rechesta de sighidura", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Cumpartzi su profilu de @{name}", "account.show_reblogs": "Ammustra is cumpartziduras de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace in punta de billete", "errors.unexpected_crash.report_issue": "Sinnala unu problema", "explore.search_results": "Resurtados de sa chirca", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index deb2aca767..57c3b1c1cc 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Posts an repones", "account.report": "Clype @{name}", "account.requested": "Haudin fir approval. Chap tae cancel follae request", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Shaw heezes frae @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace tae yer clipboord", "errors.unexpected_crash.report_issue": "Sen in a issue", "explore.search_results": "Seirch finnins", + "explore.suggested_follows": "For you", "explore.title": "Splore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "This filter caitegory disnae apply tae the context thit ye'v uised tae access this post. Gin ye'r wantin the post tae be filtert in this context tae, ye'll hae tae edit the filter.", "filter_modal.added.context_mismatch_title": "Context disnae match!", "filter_modal.added.expired_explanation": "This filter caitegory haes expirit, ye'll hae tae chynge the expiration date fir it tae apply.", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index a7d66a25f1..84d2a1e4e7 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "ටූට්ස් සහ පිළිතුරු", "account.report": "@{name} වාර්තා කරන්න", "account.requested": "අනුමැතිය බලාපොරොත්තුවෙන්", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න", "account.show_reblogs": "@{name}සිට බූස්ට් පෙන්වන්න", "account.statuses_counter": "{count, plural, one {{counter} ටූට්} other {{counter} ටූට්ස්}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "ස්ටැක්ට්රේස් පසුරු පුවරුවට පිටපත් කරන්න", "errors.unexpected_crash.report_issue": "ගැටළුව වාර්තාව", "explore.search_results": "සෙවුම් ප්‍රතිඵල", + "explore.suggested_follows": "For you", "explore.title": "ගවේශණය", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 2dc44367da..0e9177c7d7 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -54,6 +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.share": "Zdieľaj @{name} profil", "account.show_reblogs": "Ukáž vyzdvihnutia od @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +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.title": "Objavuj", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "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.", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index b49db119bc..a6dc51bdc8 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Objave in odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čakanje na odobritev. Kliknite, da prekličete prošnjo za sledenje", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Deli profil osebe @{name}", "account.show_reblogs": "Pokaži izpostavitve osebe @{name}", "account.statuses_counter": "{count, plural, one {{count} tut} two {{count} tuta} few {{count} tuti} other {{count} tutov}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiraj sledenje skladu na odložišče", "errors.unexpected_crash.report_issue": "Prijavi težavo", "explore.search_results": "Rezultati iskanja", + "explore.suggested_follows": "Za vas", "explore.title": "Razišči", + "explore.trending_links": "Novice", + "explore.trending_statuses": "Objave", + "explore.trending_tags": "Ključniki", "filter_modal.added.context_mismatch_explanation": "Ta kategorija filtra ne velja za kontekst, v katerem ste dostopali do te objave. Če želite, da je objava filtrirana tudi v tem kontekstu, morate urediti filter.", "filter_modal.added.context_mismatch_title": "Neujemanje konteksta!", "filter_modal.added.expired_explanation": "Ta kategorija filtra je pretekla, morali boste spremeniti datum veljavnosti, da bo veljal še naprej.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index a09da3af6c..e641c30fde 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Mesazhe dhe përgjigje", "account.report": "Raportojeni @{name}", "account.requested": "Në pritje të miratimit. Që të anuloni kërkesën për ndjekje, klikojeni", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Ndajeni profilin e @{name} me të tjerët", "account.show_reblogs": "Shfaq përforcime nga @{name}", "account.statuses_counter": "{count, plural, one {{counter} Mesazh} other {{counter} Mesazhe}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopjo stacktrace-in në të papastër", "errors.unexpected_crash.report_issue": "Raportoni problemin", "explore.search_results": "Përfundime kërkimi", + "explore.suggested_follows": "Për ju", "explore.title": "Eksploroni", + "explore.trending_links": "Lajme", + "explore.trending_statuses": "Postime", + "explore.trending_tags": "Hashtagë", "filter_modal.added.context_mismatch_explanation": "Kjo kategori filtrash nuk aplikohet për kontekstin nën të cilin po merreni me këtë postim. Nëse doni që postimi të filtrohet edhe në këtë kontekst, do t’ju duhet të përpunoni filtrin.", "filter_modal.added.context_mismatch_title": "Mospërputhje kontekstesh!", "filter_modal.added.expired_explanation": "Kjo kategori filtrash ka skaduar, do t’ju duhet të ndryshoni datën e skadimit për të, pa të aplikohet.", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index bb9b4ee0fa..0ef3cdb1b4 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Objave i odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čekanje odobrenja. Kliknite za otkazivanje zahteva za praćenje", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Podeli profil korisnika @{name}", "account.show_reblogs": "Prikaži podržavanja od korisnika @{name}", "account.statuses_counter": "{count, plural, one {{counter} objavio} few {{counter} objavio} other {{counter} objavio}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord", "errors.unexpected_crash.report_issue": "Prijavi problem", "explore.search_results": "Rezultati pretrage", + "explore.suggested_follows": "For you", "explore.title": "Istraži", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Ova kategorija filtera se ne odnosi na kontekst u kojem ste pristupili ovoj objavi. Ako želite da se objava filtrira i u ovom kontekstu, morate urediti filter.", "filter_modal.added.context_mismatch_title": "Kontekst se ne podudara!", "filter_modal.added.expired_explanation": "Ova kategorija filtera je istekla, morate promeniti datum isteka da bi se primenjivala.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 5660c94acb..588b5a6f3e 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Објаве и одговори", "account.report": "Пријави @{name}", "account.requested": "Чекање одобрења. Кликните за отказивање захтева за праћење", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Подели профил корисника @{name}", "account.show_reblogs": "Прикажи подржавања од корисника @{name}", "account.statuses_counter": "{count, plural, one {{counter} објавио} few {{counter} објавио} other {{counter} објавио}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Копирај „stacktrace” у клипборд", "errors.unexpected_crash.report_issue": "Пријави проблем", "explore.search_results": "Резултати претраге", + "explore.suggested_follows": "For you", "explore.title": "Истражи", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Ова категорија филтера се не односи на контекст у којем сте приступили овој објави. Ако желите да се објава филтрира и у овом контексту, морате уредити филтер.", "filter_modal.added.context_mismatch_title": "Контекст се не подудара!", "filter_modal.added.expired_explanation": "Ова категорија филтера је истекла, морате променити датум истека да би се примењивала.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 832b76c1c4..a305b9ddd4 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Inlägg och svar", "account.report": "Rapportera @{name}", "account.requested": "Inväntar godkännande. Klicka för att ta tillbaka din begäran om att få följa", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Dela @{name}s profil", "account.show_reblogs": "Visa boostar från @{name}", "account.statuses_counter": "{count, plural, one {{counter} Inlägg} other {{counter} Inlägg}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiera stacktrace till urklipp", "errors.unexpected_crash.report_issue": "Rapportera problem", "explore.search_results": "Sökresultat", + "explore.suggested_follows": "För dig", "explore.title": "Utforska", + "explore.trending_links": "Nyheter", + "explore.trending_statuses": "Inlägg", + "explore.trending_tags": "Hashtaggar", "filter_modal.added.context_mismatch_explanation": "Denna filterkategori gäller inte för det sammanhang där du har tillgång till det här inlägget. Om du vill att inlägget ska filtreras även i detta sammanhang måste du redigera filtret.", "filter_modal.added.context_mismatch_title": "Misspassning av sammanhang!", "filter_modal.added.expired_explanation": "Denna filterkategori har utgått, du måste ändra utgångsdatum för att den ska kunna tillämpas.", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 693991651d..f31ea85377 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index c3eaf02f3f..8d001d9bb9 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots மற்றும் பதில்கள்", "account.report": "@{name} -ஐப் புகாரளி", "account.requested": "ஒப்புதலுக்காகக் காத்திருக்கிறது. பின்தொடரும் கோரிக்கையை நீக்க அழுத்தவும்", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} உடைய விவரத்தை பகிர்", "account.show_reblogs": "காட்டு boosts இருந்து @{name}", "account.statuses_counter": "{count, plural, one {{counter} டூட்} other {{counter} டூட்டுகள்}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Stacktrace-ஐ clipboard-ல் நகலெடு", "errors.unexpected_crash.report_issue": "புகாரளி", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index bf5ad7a4e0..cff5cb4de1 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 0000ffc918..ac675d660c 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "టూట్లు మరియు ప్రత్యుత్తరములు", "account.report": "@{name}పై ఫిర్యాదుచేయు", "account.requested": "ఆమోదం కోసం వేచి ఉంది. అభ్యర్థనను రద్దు చేయడానికి క్లిక్ చేయండి", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} యొక్క ప్రొఫైల్ను పంచుకోండి", "account.show_reblogs": "@{name}నుంచి బూస్ట్ లను చూపించు", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 6c3788d51f..f7ae69ab4a 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "โพสต์และการตอบกลับ", "account.report": "รายงาน @{name}", "account.requested": "กำลังรอการอนุมัติ คลิกเพื่อยกเลิกคำขอติดตาม", + "account.requested_follow": "{name} has requested to follow you", "account.share": "แบ่งปันโปรไฟล์ของ @{name}", "account.show_reblogs": "แสดงการดันจาก @{name}", "account.statuses_counter": "{count, plural, other {{counter} โพสต์}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด", "errors.unexpected_crash.report_issue": "รายงานปัญหา", "explore.search_results": "ผลลัพธ์การค้นหา", + "explore.suggested_follows": "สำหรับคุณ", "explore.title": "สำรวจ", + "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/tr.json b/app/javascript/mastodon/locales/tr.json index cfd542e475..27a89ec90c 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Gönderiler ve yanıtlar", "account.report": "@{name} adlı kişiyi bildir", "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} adlı kişinin profilini paylaş", "account.show_reblogs": "@{name} kişisinin boostlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Yığın izlemeyi (stacktrace) panoya kopyala", "errors.unexpected_crash.report_issue": "Sorun bildir", "explore.search_results": "Arama sonuçları", + "explore.suggested_follows": "Sizin için", "explore.title": "Keşfet", + "explore.trending_links": "Haberler", + "explore.trending_statuses": "Gönderiler", + "explore.trending_tags": "Etiketler", "filter_modal.added.context_mismatch_explanation": "Bu filtre kategorisi, bu gönderide eriştiğin bağlama uymuyor. Eğer gönderinin bu bağlamda da filtrelenmesini istiyorsanız, filtreyi düzenlemeniz gerekiyor.", "filter_modal.added.context_mismatch_title": "Bağlam uyumsuzluğu!", "filter_modal.added.expired_explanation": "Bu filtre kategorisinin süresi dolmuş, filtreyi uygulamak için bitiş tarihini değiştirmeniz gerekiyor.", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 536940a362..a3b18a2690 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 693991651d..f31ea85377 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index ed1e1ad75e..f248ab2a51 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Дописи й відповіді", "account.report": "Поскаржитися на @{name}", "account.requested": "Очікує підтвердження. Натисніть, щоб скасувати запит на підписку", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Поділитися профілем @{name}", "account.show_reblogs": "Показати поширення від @{name}", "account.statuses_counter": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} дописи}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Скопіювати трасування стека у буфер обміну", "errors.unexpected_crash.report_issue": "Повідомити про проблему", "explore.search_results": "Результати пошуку", + "explore.suggested_follows": "Для вас", "explore.title": "Огляд", + "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/ur.json b/app/javascript/mastodon/locales/ur.json index d9881abeb3..9be90fa243 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "ٹوٹ اور جوابات", "account.report": "@{name} اطلاع کریں", "account.requested": "منظوری کا منتظر۔ درخواستِ پیروی منسوخ کرنے کیلئے کلک کریں", + "account.requested_follow": "{name} has requested to follow you", "account.share": "@{name} کے مشخص کو بانٹیں", "account.show_reblogs": "@{name} کی افزائشات کو دکھائیں", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "مسئلہ کی اطلاع کریں", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 1b9b344542..2ece60cb34 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Trả lời", "account.report": "Báo cáo @{name}", "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi", + "account.requested_follow": "{name} has requested to follow you", "account.share": "Chia sẻ trang @{name}", "account.show_reblogs": "Hiện tút do @{name} đăng lại", "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Sao chép stacktrace vào clipboard", "errors.unexpected_crash.report_issue": "Báo cáo lỗi", "explore.search_results": "Kết quả tìm kiếm", + "explore.suggested_follows": "Đề xuất", "explore.title": "Khám phá", + "explore.trending_links": "Tin tức", + "explore.trending_statuses": "Tút", + "explore.trending_tags": "Hashtag", "filter_modal.added.context_mismatch_explanation": "Danh mục bộ lọc này không áp dụng cho ngữ cảnh mà bạn đã truy cập tút này. Nếu bạn muốn tút cũng được lọc trong ngữ cảnh này, bạn sẽ phải chỉnh sửa bộ lọc.", "filter_modal.added.context_mismatch_title": "Bối cảnh không phù hợp!", "filter_modal.added.expired_explanation": "Danh mục bộ lọc này đã hết hạn, bạn sẽ cần thay đổi ngày hết hạn để áp dụng.", diff --git a/app/javascript/mastodon/locales/whitelist_la.json b/app/javascript/mastodon/locales/whitelist_la.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_la.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index dd2bd7a068..63b58a46bb 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", "account.requested": "Awaiting approval", + "account.requested_follow": "{name} has requested to follow you", "account.share": "ⴱⴹⵓ ⵉⴼⵔⵙ ⵏ @{name}", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", + "explore.suggested_follows": "For you", "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 3d9c0ee1a3..f033e418e5 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "嘟文和回复", "account.report": "举报 @{name}", "account.requested": "正在等待对方同意。点击以取消发送关注请求", + "account.requested_follow": "{name} has requested to follow you", "account.share": "分享 @{name} 的个人资料页", "account.show_reblogs": "显示来自 @{name} 的转嘟", "account.statuses_counter": "{counter} 条嘟文", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "把堆栈跟踪信息复制到剪贴板", "errors.unexpected_crash.report_issue": "报告问题", "explore.search_results": "搜索结果", + "explore.suggested_follows": "For you", "explore.title": "探索", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "此过滤器分类不适用访问过嘟文的环境中。如果你想要在环境中过滤嘟文,你必须编辑此过滤器。", "filter_modal.added.context_mismatch_title": "环境不匹配!", "filter_modal.added.expired_explanation": "此过滤器分类已过期,你需要修改到期日期才能应用。", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 6c967f4142..46fa7a77ef 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -54,6 +54,7 @@ "account.posts_with_replies": "帖文與回覆", "account.report": "檢舉 @{name}", "account.requested": "正在等待核准。按一下以取消追蹤請求", + "account.requested_follow": "{name} has requested to follow you", "account.share": "分享 @{name} 的個人檔案", "account.show_reblogs": "顯示 @{name} 的轉推", "account.statuses_counter": "{count, plural,one {{counter} 篇}other {{counter} 篇}}帖文", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "複製 stacktrace 到剪貼簿", "errors.unexpected_crash.report_issue": "舉報問題", "explore.search_results": "搜尋結果", + "explore.suggested_follows": "For you", "explore.title": "探索", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "此過濾器類別不適用於您所存取帖文的情境。如果您想要此帖文被於此情境被過濾,您必須編輯過濾器。", "filter_modal.added.context_mismatch_title": "情境不符合!", "filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期才能套用。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index a8d6cb25e4..abc584d41b 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -39,9 +39,9 @@ "account.follows_you": "跟隨了您", "account.go_to_profile": "前往個人檔案", "account.hide_reblogs": "隱藏來自 @{name} 的轉嘟", - "account.joined_short": "已加入", + "account.joined_short": "加入時間", "account.languages": "變更訂閱的語言", - "account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限", + "account.link_verified_on": "已於 {date} 檢查此連結的擁有者權限", "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。", "account.media": "媒體", "account.mention": "提及 @{name}", @@ -54,6 +54,7 @@ "account.posts_with_replies": "嘟文與回覆", "account.report": "檢舉 @{name}", "account.requested": "正在等待核准。按一下以取消跟隨請求", + "account.requested_follow": "{name} has requested to follow you", "account.share": "分享 @{name} 的個人檔案", "account.show_reblogs": "顯示來自 @{name} 的嘟文", "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文", @@ -110,7 +111,7 @@ "column.lists": "列表", "column.mutes": "已靜音的使用者", "column.notifications": "通知", - "column.pins": "釘選的嘟文", + "column.pins": "釘選嘟文", "column.public": "聯邦時間軸", "column_back_button.label": "上一頁", "column_header.hide_settings": "隱藏設定", @@ -187,7 +188,7 @@ "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。", "dismissable_banner.dismiss": "關閉", "dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。", - "dismissable_banner.explore_statuses": "這些於這裡以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", + "dismissable_banner.explore_statuses": "這些於這個伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。", "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。", "embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。", @@ -225,7 +226,7 @@ "empty_column.home.suggestions": "檢視部份建議", "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。", "empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。", - "empty_column.mutes": "您尚未靜音任何使用者。", + "empty_column.mutes": "您還沒有靜音任何使用者。", "empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。", "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了", "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。", @@ -235,7 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "複製 stacktrace 到剪貼簿", "errors.unexpected_crash.report_issue": "回報問題", "explore.search_results": "搜尋結果", + "explore.suggested_follows": "為您推薦", "explore.title": "探索", + "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": "此過濾器類別已失效,您需要更新過期日期以套用。", @@ -320,7 +325,7 @@ "keyboard_shortcuts.my_profile": "開啟個人檔案頁面", "keyboard_shortcuts.notifications": "開啟通知欄", "keyboard_shortcuts.open_media": "開啟媒體", - "keyboard_shortcuts.pinned": "開啟釘選的嘟文列表", + "keyboard_shortcuts.pinned": "開啟釘選嘟文列表", "keyboard_shortcuts.profile": "開啟作者的個人檔案頁面", "keyboard_shortcuts.reply": "回應嘟文", "keyboard_shortcuts.requests": "開啟跟隨請求列表", @@ -379,7 +384,7 @@ "navigation_bar.logout": "登出", "navigation_bar.mutes": "靜音的使用者", "navigation_bar.personal": "個人", - "navigation_bar.pins": "釘選的嘟文", + "navigation_bar.pins": "釘選嘟文", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "聯邦時間軸", "navigation_bar.search": "搜尋", @@ -564,7 +569,7 @@ "status.mute_conversation": "靜音對話", "status.open": "展開此嘟文", "status.pin": "釘選到個人檔案頁面", - "status.pinned": "釘選的嘟文", + "status.pinned": "釘選嘟文", "status.read_more": "閱讀更多", "status.reblog": "轉嘟", "status.reblog_private": "依照原嘟可見性轉嘟", @@ -617,13 +622,13 @@ "upload_button.label": "上傳圖像、影片、或音樂檔案", "upload_error.limit": "已達到檔案上傳限制。", "upload_error.poll": "不允許在投票中上傳檔案。", - "upload_form.audio_description": "描述內容給聽障人士", + "upload_form.audio_description": "為聽障人士增加文字說明", "upload_form.description": "為視障人士增加文字說明", "upload_form.description_missing": "沒有任何描述", "upload_form.edit": "編輯", "upload_form.thumbnail": "更改預覽圖", "upload_form.undo": "刪除", - "upload_form.video_description": "描述內容給聽障或視障人士", + "upload_form.video_description": "為聽障或視障人士增加文字說明", "upload_modal.analyzing_picture": "正在分析圖片…", "upload_modal.apply": "套用", "upload_modal.applying": "正在套用⋯⋯", diff --git a/config/locales/activerecord.ckb.yml b/config/locales/activerecord.ckb.yml index 9983824c54..8bdad2173d 100644 --- a/config/locales/activerecord.ckb.yml +++ b/config/locales/activerecord.ckb.yml @@ -48,3 +48,8 @@ ckb: attributes: permissions_as_keys: dangerous: ئەو مۆڵەتانەش لەخۆبگرێت کە سەلامەت نین بۆ ڕۆلی سەرەکی + elevated: ناتوانێت ئەو مۆڵەتانە لەخۆبگرێت کە ڕۆڵی ئێستات خاوەنی نییە + own_role: ناتوانرێت بە ڕۆڵی ئێستات بگۆڕدرێت + position: + elevated: ناتوانێت لە ڕۆڵی ئێستات بەرزتر بێت + own_role: ناتوانرێت بە ڕۆڵی ئێستات بگۆڕدرێت diff --git a/config/locales/activerecord.es-MX.yml b/config/locales/activerecord.es-MX.yml index 1c0313e5af..da76110052 100644 --- a/config/locales/activerecord.es-MX.yml +++ b/config/locales/activerecord.es-MX.yml @@ -3,7 +3,7 @@ es-MX: activerecord: attributes: poll: - expires_at: Vencimiento + expires_at: Fecha límite options: Opciones user: agreement: Contrato de servicio diff --git a/config/locales/activerecord.la.yml b/config/locales/activerecord.la.yml new file mode 100644 index 0000000000..3a7ba0d445 --- /dev/null +++ b/config/locales/activerecord.la.yml @@ -0,0 +1 @@ +la: diff --git a/config/locales/an.yml b/config/locales/an.yml index 6fb24cc8a3..f3bb5a8957 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -561,7 +561,6 @@ an: report_notes: created_msg: Lo rechistro d'a denuncia s'ha creyau correctament! destroyed_msg: Lo rechistro d'a denuncia s'ha borrau correctament! - today_at: Hue a las %{time} reports: account: notes: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 97bbac031b..044e20e5f6 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -556,7 +556,6 @@ ar: report_notes: created_msg: تم إنشاء ملاحظة الشكوى بنجاح! destroyed_msg: تم حذف ملاحظة الشكوى بنجاح! - today_at: اليوم على %{time} reports: account: notes: @@ -694,6 +693,9 @@ ar: title: العلامة content_retention: title: الاحتفاظ بالمحتوى + default_noindex: + desc_html: يؤثر على جميع المستخدمين الذين لم يغيروا هذا الإعداد بأنفسهم + title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين discovery: follow_recommendations: اتبع التوصيات profile_directory: دليل الصفحات التعريفية @@ -1068,6 +1070,8 @@ ar: index: delete: إزالة empty: ليست لديك أية عوامل تصفية. + expires_in: تنتهي مدة صلاحيتها في غضون %{distance} + expires_on: تنتهي مدة صلاحيتها في %{date} title: عوامل التصفية new: save: حفظ عامل التصفية الجديد diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 2236aaf884..53e806b60d 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -759,6 +759,7 @@ ast: follow_limit_reached: Nun pues siguir a más de %{limit} persones invalid_otp_token: El códigu de l'autenticación en dos pasos nun ye válidu seamless_external_login: Aniciesti la sesión pente un serviciu esternu, polo que la configuración de la contraseña ya de la direición de corréu electrónicu nun tán disponibles. + signed_in_as: 'Aniciesti la sesión como:' verification: explanation_html: 'Pues verificate como la persona propietaria de los enllaces nos metadatos del to perfil. Pa ello, el sitiu web enllaciáu ha contener un enllaz al to perfil de Mastodon. Esti enllaz ha tener l''atributu rel="me". El testu del enllaz nun importa. Equí tienes un exemplu:' verification: Verificación diff --git a/config/locales/be.yml b/config/locales/be.yml index 152f92cccb..f192ad10b7 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -153,8 +153,8 @@ be: subscribe: Падпіска suspend: Прыпыніць suspended: Прыпынена - suspension_irreversible: Даныя гэтага ўліковага запісу былі канчаткова выдалены. Вы можаце аднавіць уліковы запіс каб зрабіць яго зноў працоўным, але гэта не адновіць даныя якія былі змешчаны на ім раней. - suspension_reversible_hint_html: Уліковы запіс быў прыпынены і даныя будуць цалкам выдалены ад %{date}. Дагэтуль уліковы запіс можа быць адноўлены без якіх-небудзь шкодных наступстваў. Калі вы хочаце вынішчыць усе даныя ўліковага запісу зараз, вы можаце зрабіць гэта ніжэй. + suspension_irreversible: Даныя гэтага ўліковага запісу былі канчаткова выдалены. Вы можаце аднавіць уліковы запіс, каб зрабіць яго зноў працоўным, але гэта не адновіць даныя якія былі змешчаны на ім раней. + suspension_reversible_hint_html: Уліковы запіс быў прыпынены і даныя будуць цалкам выдалены ад %{date}. Да гэтага ўліковы запіс можа быць адноўлены без якіх-небудзь шкодных наступстваў. Калі вы хочаце выдаліць усе даныя ўліковага запісу зараз, вы можаце зрабіць гэта ніжэй. title: Уліковыя запісы unblock_email: Разблакіраваць адрас эл. пошты unblocked_email_msg: Электронная пошта %{username} паспяхова разблакіраваная @@ -425,6 +425,11 @@ be: view: Праглядзець новы блок дамену email_domain_blocks: add_new: Дадаць + attempts_over_week: + few: "%{count} спробы рэгіістрацыі за апошні тыдзень" + many: "%{count} спроб рэгіістрацыі за апошні тыдзень" + one: "%{count} спроба рэгістрацыі за апошні тыдзень" + other: "%{count} спроб рэгіістрацыі за апошні тыдзень" created_msg: Дамен эл. пошты паспяхова заблакіраваны delete: Выдаліць dns: @@ -533,7 +538,7 @@ be: total_followed_by_us: Нашыя падпіскі total_reported: Скаргі на іх total_storage: Медыя дадаткі - totals_time_period_hint_html: Паказаныя агульныя значэнні ніжэй утрымліваюць дадзеныя за ўвесь час. + totals_time_period_hint_html: Паказаныя агульныя значэнні ніжэй уключаюць даныя за ўвесь час. invites: deactivate_all: Дэактываваць усё filter: @@ -578,7 +583,6 @@ be: report_notes: created_msg: Скарга паспяхова створана! destroyed_msg: Скарга паспяхова выдалена! - today_at: Сёння а %{time} reports: account: notes: @@ -727,6 +731,9 @@ be: content_retention: preamble: Кантралюйце, як створаны карыстальнікамі кантэнт захоўваецца ў Mastodon. title: Утрыманне кантэнту + default_noindex: + desc_html: Уплывае на ўсіх карыстальнікаў, якія не змянілі гэтую наладу самастойна + title: Перадвызначана выключыць карыстальнікаў з індэксацыі пашуковымі рухавікамі discovery: follow_recommendations: Выконвайце рэкамендацыі preamble: Прадстаўленне цікавага кантэнту дапамагае прыцягнуць новых карыстальнікаў, якія могуць не ведаць нікога на Mastodon. Кантралюйце працу розных функцый выяўлення на вашым серверы. @@ -928,6 +935,7 @@ be: title: Папулярныя допісы new_trending_tags: no_approved_tags: Зараз няма зацверджаных папулярных хэштэгаў. + requirements: 'Кожны з гэтых кандыдатаў можа перавысіць #%{rank} зацверджаных папулярных хэштэгаў. Зараз гэта #%{lowest_tag_name} з лікам %{lowest_tag_score}.' title: Папулярныя хэштэгі subject: Новае ў папулярным для разгляду %{instance} aliases: @@ -977,6 +985,7 @@ be: forgot_password: Забылі свой пароль? invalid_reset_password_token: Токен для скідвання пароля несапраўдны або састарэў. Зрабіце запыт на новы. link_to_otp: Увядзіце код двухфактарнай аўтэнтыфікацыі з вашага тэлефона або код аднаўлення + link_to_webauth: Скарыстайцеся вашай прыладай з ключом бяспекі log_in_with: Увайсці праз login: Увайсці logout: Выйсці @@ -1000,8 +1009,12 @@ be: 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: Чакаецца пацвярджэнне з электроннай пошты. @@ -1136,6 +1149,7 @@ be: add_new: Дадаць новы errors: limit: Вы ўжо дадалі максімальную колькасць хэштэгаў + hint_html: "Што такое выбраныя хэштэгі? Яны паказваюцца на бачным месцы вашага профілю і дазваляюць людзям праглядаць вашыя публічныя пасты з гэтымі хэштэгамі. З іхняй дапамогай вельмі зручна сачыць за творчымі ці даўгатэрміновымі праектамі." filters: contexts: account: Профілі @@ -1147,8 +1161,10 @@ be: add_keyword: Дадаць ключавое слова keywords: Ключавыя словы statuses: Асобныя допісы + statuses_hint_html: Гэты фільтр ужываецца каб абраць асобныя запісы незалежна ад таго, ці ўтрымліваюць яны ключавыя словы са спісу ніжэй.Праверце ці выдаліце допісы з фільтру. title: Рэдагаваць фільтр errors: + deprecated_api_multiple_keywords: Гэтыя параметры нельга памяняць з бягучай праграмы таму што яны ўжываюцца для больш чым аднаго ключавога слова. Скарыстайцеся навейшай версіяй праграмы ці вэб-інтэрфейсам. invalid_context: Дадзены кантэкст недастатковы альбо памылковы index: contexts: Фільтры ў %{contexts} @@ -1287,6 +1303,7 @@ be: missing_also_known_as: гэта не псеўданім уліковага запісу move_to_self: не можа быць бягучым уліковым запісам not_found: не знойдзена + on_cooldown: Вас часова замарозілі followers_count: Падпісчыкі на момант перамяшчэння incoming_migrations: Пераязджаем з іншага ўліковага запісу incoming_migrations_html: Каб перайсці з іншага ўліковага запісу ў гэты, спачатку трэба стварыць псеўданім уліковага запісу. @@ -1564,6 +1581,7 @@ be: ignore_favs: Ігнараваць упадабаныя ignore_reblogs: Ігнараваць пашырэнні interaction_exceptions: Выключэнні, заснаваныя на ўзаемадзеянні + interaction_exceptions_explanation: Звярніце ўвагу, што няма гарантыі выдалення пастоў, калі колькасць іх упадабанняў ці пашырэннняў упадзе ніжэй за ліміт, хаця некалі гэтая колькасць перавышала яго. keep_direct: Захаваць асабістыя паведамленні keep_direct_hint: Не выдаляць асабістыя паведамленні keep_media: Захоўваць допісы з медыя дадаткамі diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 1d210f156b..f821c1f5f7 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1,10 +1,10 @@ --- bg: about: - about_mastodon_html: 'Социалната мрежа на бъдещето: Без реклами, без корпоративно наблюдение, с етичен дизайн и децентрализация! Притежавайте своите данни с Mastodon!' + about_mastodon_html: 'Социалната мрежа на бъдещето: Без реклами, без корпоративно наблюдение, с нравствено оформление и децентрализиране! Притежавайте данните си с Mastodon!' contact_missing: Не е зададено contact_unavailable: Не е приложимо - hosted_on: Mastodon е хостван на %{domain} + hosted_on: Mastodon е разположен на хост %{domain} title: Относно accounts: follow: Последвай @@ -31,9 +31,9 @@ bg: created_msg: Бележката за модерация е създадена успешно! destroyed_msg: Бележката за модерация е успешно унищожена! accounts: - add_email_domain_block: Блокиране на имейл домейн + add_email_domain_block: Блокиране на домейн на имейл approve: Одобряване - approved_msg: Успешно одобрена заявка за регистрация на %{username} + approved_msg: Успешно одобрена заявка за регистриране на %{username} are_you_sure: Сигурни ли сте? avatar: Аватар by_domain: Домейн @@ -59,7 +59,7 @@ bg: destroyed_msg: Данните на %{username} вече са на опашка за незабавно изтриване disable: Замразяване disable_sign_in_token_auth: Изключване на удостоверяването с маркер по имейл - disable_two_factor_authentication: Изключване на 2FA + disable_two_factor_authentication: Изключване на 2факт. удостов. disabled: Замразено display_name: Показвано име domain: Домейн @@ -81,7 +81,7 @@ bg: location: all: Всичко local: Локално - remote: Дистанционно + remote: Отдалечено title: Местоположение login_status: Състояние на вход media_attachments: Прикачена мултимедия @@ -91,11 +91,11 @@ bg: moderation: active: Активно all: Всичко - pending: Чакащо + pending: Чака silenced: Ограничено suspended: Спряно - title: Модерация - moderation_notes: Модераторни бележки + title: Модериране + moderation_notes: Бележки за модериране most_recent_activity: Последна дейност most_recent_ip: Последен IP no_account_selected: Нито един акаунт не е променен, тъй като нито един не е избран @@ -106,23 +106,23 @@ bg: perform_full_suspension: Спиране previous_strikes: Предишни провинения previous_strikes_description_html: - one: "Този профил има \n едно провинение." - other: Този профил има %{count} провинения. + one: Този акаунт има едно провинение. + other: Този акунт има %{count} провинения. promote: Повишаване protocol: Протокол public: Публично push_subscription_expires: PuSH абонаментът изтича redownload: Опресняване на профил - redownloaded_msg: Успешно обновяване на профила на %{username} от източника + redownloaded_msg: Успешно опреснен профил на %{username} от източника reject: Отхвърляне rejected_msg: Успешно отхвърлена заявка за регистрация на %{username} remove_avatar: Премахване на аватар - remove_header: Премахване на заглавна част - removed_avatar_msg: Успешно премахване на изображението на аватара на %{username} - removed_header_msg: Успешно премахване на заглавното изображение на %{username} + remove_header: Премахване на заглавката + removed_avatar_msg: Успешно премахнат образ на аватара на %{username} + removed_header_msg: Успешно премахнат образ на заглавката на %{username} resend_confirmation: already_confirmed: Този потребител вече е потвърден - send: Повторно изпращане на имейла за потвърждение + send: Изпращане пак на е-писмо за потвърждаване success: Успешно изпращане на имейла за потвърждение! reset: Нулиране reset_password: Нулиране на паролата @@ -147,7 +147,7 @@ bg: subscribe: Абониране suspend: Спиране suspended: Спряно - suspension_irreversible: Данните на този профил са безвъзвратно изтрити. Можете да възстановите достъпа на този профил, за да може да бъде отново използван, но данните отпреди няма да бъдат възстановени. + suspension_irreversible: Данните на този акаунт са безвъзвратно изтрити. Може да възстановите достъпа до акаунта, за да може да се използва пак, но предишните данни няма да се възстановят. suspension_reversible_hint_html: Този профил е преустановен и данните от него ще бъдат напълно премахнати на %{date}. До тази дата профилът може да бъде възстановен без щети. Ако желаете, по-долу можете да премахнете всички данни от профила незабавно. title: Акаунти unblock_email: Отблокиране на адреса на имейла @@ -155,12 +155,12 @@ bg: unconfirmed_email: Непотвърден имейл undo_sensitized: Нeчувствителен undo_silenced: Отмяна на ограничението - undo_suspension: Връщане на достъпа - unsilenced_msg: Успешно премахване на ограниченията върху профила на %{username} - unsubscribe: Отписване - unsuspended_msg: Успешно връщане на достъпа до профила на %{username} + undo_suspension: Отмяна на спирането + unsilenced_msg: Успешна отмяна на ограниченията върху профила на %{username} + unsubscribe: Без абонамент + unsuspended_msg: Успешно връщане на достъпа до акаунта на %{username} username: Потребителско име - view_domain: Виж резюмето на домейна + view_domain: Преглед на обобщение за домейна warn: Предупреждение web: Уеб whitelisted: Позволено за федерацията @@ -176,19 +176,19 @@ bg: create_announcement: Създаване на оповестяване create_canonical_email_block: Създаване на имейл блокировка create_custom_emoji: Създаване на персонализирано емоджи - create_ip_block: Създаване на IP правило + create_ip_block: Създаване на правило за IP create_user_role: Създаване на роля demote_user: Понижаване на потребител destroy_announcement: Изтриване на оповестяване destroy_canonical_email_block: Изтриване на имейл блокировка destroy_custom_emoji: Изтриване на персонализирано емоджи destroy_ip_block: Изтриване на правило за IP - destroy_status: Изтриване на статус + destroy_status: Изтриване на публикация destroy_unavailable_domain: Изтриване на неналичен домейн destroy_user_role: Унищожаване на роля - disable_2fa_user: Деактивиране на 2FA + disable_2fa_user: Изкл. на 2факт.удостов. disable_custom_emoji: Деактивиране на персонализирано емоджи - disable_user: Деактивиране на потребител + disable_user: Изключване на потребител enable_custom_emoji: Активиране на персонализирано емоджи enable_user: Активиране на потребител memorialize_account: Запомни потребителя @@ -203,13 +203,47 @@ bg: update_ip_block: Обновяване на правило за IP update_status: Обновяване на публикация update_user_role: Обновяване на роля + actions: + memorialize_account_html: "%{name} превърна акаунта на %{target} във възпоменателна страница" + remove_avatar_user_html: "%{name} премахна аватар на %{target}" + reopen_report_html: "%{name} отвори пак доклада на %{target}" + reset_password_user_html: "%{name} нулира паролата на потребител %{target}" + sensitive_account_html: "%{name} означи мултимедия на %{target} като деликатна" + silence_account_html: "%{name} сложи ограничения на акаунта на %{target}" + unblock_email_account_html: "%{name} разблокира адреса на имейла на %{target}" + unsensitive_account_html: "%{name} размаркира мултимедия на %{target} като деликатна" + unsilence_account_html: "%{name} отмени ограничения на акаунта на %{target}" + update_announcement_html: "%{name} обнови оповестяването на %{target}" + update_custom_emoji_html: "%{name} обнови емоджито на %{target}" + update_ip_block_html: "%{name} промени правило за IP на %{target}" + update_status_html: "%{name} обнови публикация от %{target}" + update_user_role_html: "%{name} промени ролята на %{target}" deleted_account: изтрит акаунт + empty: Няма намерени дневници. + filter_by_action: Филтриране по действие + filter_by_user: Филтриране по потребител + title: Одитен дневник announcements: + destroyed_msg: Успешно изтрито оповестяване! + edit: + title: Редактиране на оповестянето + empty: Няма намерени оповестявания. live: На живо + new: + create: Създаване на оповестяване + title: Ново оповестяване publish: Публикуване + published_msg: Успешно публикувано оповестяване! + title: Оповестявания + unpublish: Без публикуване + unpublished_msg: Успешно скрито оповестяване! + updated_msg: Успешно осъвременено оповестяване! custom_emojis: + assign_category: Категоризиране by_domain: Домейн + copied_msg: Успешно създадено локално копие на емоджито copy: Копиране + copy_failed_msg: Не можа да се направи локално копие на това емоджи create_new_category: Създаване на нова категория created_msg: Успешно сътворено емоджи! delete: Изтриване @@ -226,6 +260,7 @@ bg: listed: В списъка new: title: Добавяне на ново потребителско емоджи + no_emoji_selected: Нито едно емоджи не е променено, тъй като нито едно не е избрано not_permitted: Нямате право да извършвате това действие overwrite: Презаписване shortcode: Кратък код @@ -256,9 +291,13 @@ bg: domain: Домейн private_comment: Личен коментар private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите. + reject_reports: Отхвърляне на докладите + reject_reports_hint: Пренебрегване на всички доклади, идващи от този домейн. Неуместни за прекратяване undo: Отмяна на блокиране на домейн view: Преглед на блокиране на домейн email_domain_blocks: + add_new: Добавяне на ново + created_msg: Успешно блокиран домейн на е-поща delete: Изтриване dns: types: @@ -267,24 +306,36 @@ bg: new: create: Добавяне на домейн title: Блокирани домейни на имейл + export_domain_allows: + no_file: Няма избран файл export_domain_blocks: import: existing_relationships_warning: Съществуващи последвания + no_file: Няма избран файл follow_recommendations: language: За език status: Състояние instances: + availability: + title: Наличност back_to_all: Всичко back_to_limited: Ограничено back_to_warning: Предупреждение by_domain: Домейн content_policies: + comment: Вътрешна бележка policies: silence: Ограничение policy: Политика + reason: Обществена причина + title: Политика на съдържанието dashboard: + instance_accounts_dimension: Най-следвани акаунти + instance_followers_measure: наши последователи там + instance_follows_measure: техни последователи тук instance_languages_dimension: Водещи езици delivery: + all: Всичко clear: Изчистване на грешките за доставка restart: Рестартиране на доставката stop: Спиране на доставката @@ -327,8 +378,6 @@ bg: enable: Включване enabled: Включено status: Състояние - report_notes: - today_at: Днес от %{time} reports: are_you_sure: Сигурни ли сте? category: Категория @@ -342,6 +391,8 @@ bg: mark_as_sensitive: Означаване като деликатно notes: create: Добавяне на бележка + create_and_resolve: Разрешаване с бележка + create_and_unresolve: Отваряне пак с бележка delete: Изтриване title: Бележки reopen: Отваряне пак на доклад @@ -355,16 +406,43 @@ bg: view_profile: Преглед на профила roles: add_new: Добавяне на роля + assigned_users: + one: "%{count} потребител" + other: "%{count} потребители" categories: administration: Администрация + devops: Развитие и операции invites: Покани moderation: Mодериране + special: Специални delete: Изтриване + edit: Промяна на ролята на „%{name}“ + everyone: Разрешения по подразбиране + permissions_count: + one: "%{count} разрешение" + other: "%{count} разрешения" privileges: administrator: Администратор + manage_federation: Управление на Федерацията + manage_federation_description: Позволява на потребители да блокират или позволяват федерация с други домейни, а и управление на доставаемостта manage_invites: Управление на поканите + manage_invites_description: Позволява на потребители да разглеждат и деактивират връзки за покана manage_reports: Управление на докладите + manage_reports_description: Позволява на потребители да преглеждат доклади и да извършват модериращи действия срещу тях manage_roles: Управление на ролите + manage_roles_description: Позволява на потребителите да управляват и разпределят роли под техните + manage_rules: Управление на правилата + manage_rules_description: Позволява на потребителите да променят правилата на сървъра + manage_settings: Управление на настройките + manage_settings_description: Позволява на потребителите да променят настройки на сайта + manage_user_access: Управление на потребителския достъп + manage_users: Управление на потребителите + manage_webhooks: Управление на уебкуките + manage_webhooks_description: Позволява на потребителите да настройват уебкуки за административни събития + view_audit_log: Преглед на одитния дневник + view_audit_log_description: Позволява на потребителите да виждат историята на административни действия в сървъра + view_devops: Развитие и операции + view_devops_description: Позволява на потребителите да имат достъп до таблото за управл. на Sidekiq и pgHero title: Роли rules: add_new: Добавяне на правило @@ -375,15 +453,27 @@ bg: settings: about: manage_rules: Управление на правилата на сървъра + title: Относно appearance: + preamble: Настройване на мрежовия интерфейс на Mastodon. title: Външен вид + branding: + title: Брандиране discovery: + profile_directory: Директория на профила public_timelines: Публични инфопотоци title: Откриване trends: Актуални + domain_blocks: + all: До всеки + disabled: До никого + users: До влезнали локални потребители registrations: + preamble: Управлява кой може да създава акаунт на сървъра ви. title: Регистрации title: Настройки на сървъра + site_uploads: + delete: Изтриване на качения файл statuses: account: Автор application: Приложение @@ -433,10 +523,16 @@ bg: events: Събития status: Състояние title: Уебкуки + webhook: Уебкука admin_mailer: new_appeal: actions: + delete_statuses: за изтриване на публикациите им + mark_statuses_as_sensitive: за означаване на публикациите им като деликатни none: предупреждение + sensitive: за означаване на акаунтите като деликатни + silence: за слагане на органичение на акаунтите им + suspend: за спиране на акаунтите им appearance: advanced_web_interface: Разширен уеб интерфейс advanced_web_interface_hint: 'Ако желаете да се възползвате от пълната ширина на своя екран, разширеният уеб интерфейс ще ви позволи да настроите най-различни колони, за да виждате едновременно множество информация: Начало, известия, федериран инфопоток, множество списъци и хаштагове.' @@ -469,15 +565,19 @@ bg: forgot_password: Забравих си паролата link_to_otp: Въведете двуфакторния код от телефона си или кода за възстановяване link_to_webauth: Използвайте ключа си за сигурност на устройството + log_in_with: Влизане с login: Влизане logout: Излизане migrate_account: Преместване в различен акаунт migrate_account_html: Ако желаете да пренасочите този акаунт към друг, можете да настроите това тук. or_log_in_with: Или влизане с помощта на + privacy_policy_agreement_html: Прочетох и има съгласието ми за политиката за поверителност register: Регистрация registration_closed: "%{instance} не приема нови членуващи" resend_confirmation: Изпрати отново инструкции за потвърждение reset_password: Подновяване на паролата + rules: + title: Някои основни правила. security: Сигурност set_new_password: Задаване на нова парола setup: @@ -875,7 +975,7 @@ bg: unlisted_long: Всеки ги вижда, но са скрити от публичните инфопотоци statuses_cleanup: enabled: Автоматично изтриване на стари публикации - enabled_hint: Автоматично изтрива публикациите ви щом достигнат указания възрастов праг, освен ако не съвпадне с някое от изключенията долу + enabled_hint: Автоматично изтрива публикациите ви, щом достигнат указания възрастов праг, освен ако не съвпаднат с някое от изключенията долу exceptions: Изключения explanation: Тъй като изтриването на публикации е скъпа операция, това се прави бавно във времето, когато сървърът иначе не е зает. Поради тази причина публикациите ви може да се изтрият известно време след като достигнат възрастовия праг. ignore_favs: Игнориране на харесвания @@ -950,6 +1050,9 @@ bg: disable: Акаунтът е замразен mark_statuses_as_sensitive: Публикацията отбелязана като деликатна none: Предупреждение + sensitive: Акаунтът е означен като деликатен + silence: Акаунтът има ограничение + suspend: Акаунтът е спрян welcome: edit_profile_action: Настройване на профила explanation: Ето няколко стъпки за начало @@ -976,6 +1079,8 @@ bg: error: Възникна проблем, изтривайки ключа си за сигурност. Опитайте пак. success: Вашият ключ за сигурност беше изтрит успешно. invalid_credential: Невалиден ключ за сигурност + nickname_hint: Въведете прякор на новия си ключ за сигурност + not_enabled: Още не сте включили WebAuthn not_supported: Този браузър не поддържа ключове за сигурност otp_required: Първо включете двуфакторното удостоверяване, за да използвате ключовете за сигурност. registered_on: Регистрирано на %{date} diff --git a/config/locales/ca.yml b/config/locales/ca.yml index d40d17a2e7..747b073123 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -116,6 +116,8 @@ ca: redownloaded_msg: El perfil de %{username} s’ha refrescat des de l’origen amb èxit reject: Rebutja rejected_msg: L’aplicació de registre de %{username} s’ha rebutjat amb èxit + remote_suspension_irreversible: Les dades d'aquest compte s'han esborrat irreversiblement. + remote_suspension_reversible_hint_html: El compte ha estat suspès en el seu servidor i les dades seran totalment suprimides el %{date}. Fins llavors, el servidor remot pot restaurar aquest compte sense efectes negatius. Si vols suprimir immediatament totes les dades del compte, ho pots fer a continuació. remove_avatar: Eliminar avatar remove_header: Treu la capçalera removed_avatar_msg: S’ha suprimit amb èxit l’imatge d’acabar de %{username} @@ -561,7 +563,6 @@ ca: report_notes: created_msg: La nota del informe s'ha creat correctament! destroyed_msg: La nota del informe s'ha esborrat correctament! - today_at: Avui a les %{time} reports: account: notes: @@ -704,6 +705,9 @@ ca: content_retention: preamble: Controla com es desa a Mastodon el contingut generat per l'usuari. title: Retenció de contingut + default_noindex: + desc_html: Afecta tothom qui no ha canviat per si mateix aquest paràmetre + title: Exclou per defecte els usuaris de la indexació dels motors de cerca discovery: follow_recommendations: Seguir les recomanacions preamble: L'aparició de contingut interessant és fonamental per atraure els nous usuaris que podrien no saber res de Mastodon. Controla com funcionen diverses opcions de descobriment en el teu servidor. @@ -971,6 +975,9 @@ ca: email_below_hint_html: Si l’adreça de correu electrònic següent és incorrecta, podeu canviar-la aquí i rebre un nou correu electrònic de confirmació. email_settings_hint_html: El correu electrònic de confirmació es va enviar a %{email}. Si aquesta adreça de correu electrònic no és correcta, la podeu canviar a la configuració del compte. title: Configuració + sign_in: + preamble_html: Inicia sessió amb les teves credencials %{domain}. Si el teu compte es troba a un servidor diferent, no podràs iniciar una sessió aquí. + title: Inicia sessió a %{domain} sign_up: preamble: Amb un compte en aquest servidor Mastodon, podràs seguir qualsevol altre persona de la xarxa, independentment d'on tingui el seu compte. title: Anem a configurar-te a %{domain}. diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index f774459f7d..0c29bb437f 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -454,7 +454,6 @@ ckb: report_notes: created_msg: تێبینی ڕاپۆرت کردن بە سەرکەوتوویی دروست کرا! destroyed_msg: تێبینی گوزارشت بە سەرکەوتوویی سڕاوەتەوە! - today_at: ئەمڕۆ لە %{time} reports: account: notes: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 923b4cd294..b579f92839 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -122,6 +122,8 @@ cs: redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje reject: Zamítnout rejected_msg: Žádost o registraci uživatele %{username} úspěšně zamítnuta + remote_suspension_irreversible: Data tohoto účtu byla nevratně smazána. + remote_suspension_reversible_hint_html: Účet byl pozastaven na svém serveru a data budou plně odstraněna dne %{date}. Do té doby může vzdálený server obnovit tento účet bez jakýchkoliv špatných efektů. Pokud chcete okamžitě odstranit všechna data účtu, můžete tak učinit níže. remove_avatar: Odstranit avatar remove_header: Odstranit záhlaví removed_avatar_msg: Úspěšně odstraněn avatar uživatele %{username} @@ -583,7 +585,6 @@ cs: report_notes: created_msg: Poznámka o hlášení úspěšně vytvořena! destroyed_msg: Poznámka o hlášení úspěšně smazána! - today_at: Dnes v %{time} reports: account: notes: @@ -732,6 +733,9 @@ cs: content_retention: preamble: Určuje, jak je obsah generovaný uživatelem uložen v Mastodonu. title: Uchovávání obsahu + default_noindex: + desc_html: Ovlivňuje všechny uživatele, kteří toto nastavení sami nezměnili + title: Odhlásit uživatele ze standardního indexování vyhledávačů discovery: follow_recommendations: Doporučená sledování preamble: Povrchový zajímavý obsah je užitečný pro zapojení nových uživatelů, kteří možná neznají žádného Mastodona. Mějte pod kontrolou, jak různé objevovací funkce fungují na vašem serveru. @@ -1007,6 +1011,8 @@ cs: email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a nechat si poslat nový potvrzovací e-mail. email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu. title: Nastavení + sign_in: + title: Přihlásit se k %{domain} sign_up: preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován. title: Pojďme vás nastavit na %{domain}. diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 94e529afa3..130a8b121d 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -128,6 +128,8 @@ cy: redownloaded_msg: Adnewyddwyd proffil %{username} o'r gweinydd gwreiddiol reject: Gwrthod rejected_msg: Wedi gwrthod cais cofrestru %{username} + remote_suspension_irreversible: Mae data'r cyfrif hwn wedi'i ddileu'n ddiwrthdro. + remote_suspension_reversible_hint_html: Mae'r cyfrif wedi'i atal dros dro ar eu gweinydd, a bydd y data'n cael ei ddileu yn llawn ar %{date}. Tan hynny, gall y gweinydd pell adfer y cyfrif hwn heb unrhyw effeithiau gwael. Os dymunwch gael gwared ar holl ddata'r cyfrif ar unwaith, gallwch wneud hynny isod. remove_avatar: Dileu afatar remove_header: Dileu pennyn removed_avatar_msg: Llwyddwyd i ddileu delwedd afatar %{username} @@ -605,7 +607,6 @@ cy: report_notes: created_msg: Llwyddwyd i greu nodyn adroddiad! destroyed_msg: Llwyddwyd i ddileu nodyn adroddiad! - today_at: Heddiw am %{time} reports: account: notes: @@ -760,6 +761,9 @@ cy: content_retention: preamble: Rheoli sut mae cynnwys sy'n cael ei gynhyrchu gan ddefnyddwyr yn cael ei storio yn Mastodon. title: Cadw cynnwys + default_noindex: + desc_html: Yn effeithio pob defnyddwr sydd heb newid y gosodiad ei hun + title: Eithrio defnyddwyr o fynegai peiriannau chwilio, fel rhagosodiad discovery: follow_recommendations: Dilyn yr argymhellion preamble: Mae amlygu cynnwys diddorol yn allweddol ar gyfer derbyn defnyddwyr newydd nad ydynt efallai'n gyfarwydd ag unrhyw un Mastodon. Rheolwch sut mae nodweddion darganfod amrywiol yn gweithio ar eich gweinydd. @@ -1043,6 +1047,9 @@ cy: email_below_hint_html: Os yw'r cyfeiriad e-bost isod yn anghywir, gallwch ei newid yma a derbyn e-bost cadarnhau newydd. email_settings_hint_html: Anfonwyd yr e-bost cadarnhau at %{email}. Os nad yw'r cyfeiriad e-bost hwnnw'n gywir, gallwch ei newid yng ngosodiadau'r cyfrif. title: Gosodiad + sign_in: + preamble_html: Mewngofnodwch gyda'ch manylion %{domain}. Os yw eich cyfrif yn cael ei gynnal ar weinydd gwahanol, ni fydd modd i chi fewngofnodi yma. + title: Mewngofnodi i %{domain} sign_up: preamble: Gyda chyfrif ar y gweinydd Mastodon hwn, byddwch yn gallu dilyn unrhyw berson arall ar y rhwydwaith, lle bynnag mae eu cyfrif yn cael ei gynnal. title: Gadewch i ni eich gosod ar %{domain}. diff --git a/config/locales/da.yml b/config/locales/da.yml index c66a011536..a66fdc5f2a 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -116,6 +116,8 @@ da: redownloaded_msg: "%{username}s profil opfrisket fra oprindelsesserver" reject: Afvis rejected_msg: "%{username}s tilmeldingsansøgning afvist" + remote_suspension_irreversible: Denne kontos data er slettet permanent. + remote_suspension_reversible_hint_html: Kontoen er suspenderet på den pågældende server, og kontodata fjernes fuldstændig pr. %{date}. Indtil da vil fjernserveren kunne foretage en komplet reetablering af kontoen. Ønskes alle kontodata fjernet straks, kan dette gøres nedenfor. remove_avatar: Fjern profilbillede remove_header: Fjern overskrift removed_avatar_msg: "%{username}s profilbillede fjernet" @@ -555,13 +557,12 @@ da: pending: Afventer videreformidlers godkendelse save_and_enable: Gem og aktivér setup: Opsæt en videreformidlerforbindelse - signatures_not_enabled: Videreformidlere fungerer ikke korrekt, mens sikker tilstand eller begrænset federeringstilstand er aktiveret + signatures_not_enabled: I sikker tilstand eller begrænset federeringstilstand fungerer videreformidlere muligvis ikke korrekt status: Status title: Videreformidlere report_notes: created_msg: Anmeldelsesnotat er oprettet! destroyed_msg: Anmeldelsesnotat er slettet! - today_at: I dag %{time} reports: account: notes: @@ -704,6 +705,9 @@ da: content_retention: preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold. title: Indholdsopbevaring + default_noindex: + desc_html: Påvirker alle brugere, som ikke selv har ændret denne indstilling + title: Fravælg som standard søgemaskineindeksering for brugere discovery: follow_recommendations: Følg-anbefalinger preamble: At vise interessant indhold er vitalt ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren. @@ -971,6 +975,9 @@ da: email_below_hint_html: Er nedenstående e-mailadresse forkert, kan du rette den hér og modtage en ny bekræftelses-e-mail. email_settings_hint_html: Bekræftelsese-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne. title: Opsætning + sign_in: + preamble_html: Log ind med dine %{domain}-legitimationsoplysninger. Hostes kontoen på en anden server, vil der ikke kunne logges ind her. + title: Log ind på %{domain} sign_up: preamble: Med en konto på denne Mastodon-server vil man kunne følge enhver anden person på netværket, uanset hvor vedkommendes konto hostes. title: Lad os få dig sat op på %{domain}. diff --git a/config/locales/de.yml b/config/locales/de.yml index 8a12a30470..dc31eb8ee9 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -73,7 +73,7 @@ de: followers: Follower follows: Folge ich header: Titelbild - inbox_url: Posteingangs-URL + inbox_url: Posteingangsadresse invite_request_text: Begründung für das Beitreten invited_by: Eingeladen von ip: IP-Adresse @@ -83,11 +83,11 @@ de: local: Lokal remote: Extern title: Herkunft - login_status: Loginstatus + login_status: Anmeldestatus media_attachments: Medienanhänge - memorialize: In Gedenkmal verwandeln - memorialized: Memorialisiert - memorialized_msg: "%{username} wurde erfolgreich in ein In-Memoriam-Konto umgewandelt" + memorialize: In Gedenkseite umwandeln + memorialized: Gedenkseite + memorialized_msg: "%{username} wurde erfolgreich in ein Gedenkseiten-Konto umgewandelt" moderation: active: Aktiv all: Alle @@ -116,6 +116,8 @@ de: redownloaded_msg: Das Profil %{username} wurde vom externen Server erfolgreich aktualisiert reject: Ablehnen rejected_msg: Antrag zur Registrierung von %{username} erfolgreich abgelehnt + remote_suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. + remote_suspension_reversible_hint_html: Das Konto wurde auf dem externen Server gesperrt – und sämtliche Daten werden am %{date} entfernt. Bis dahin kann diese Instanz das Konto ohne negative Auswirkungen wiederherstellen. Wenn du schon jetzt alle Daten des Kontos unwiderruflich löschen möchtest, kannst du dies nachfolgend tun. remove_avatar: Profilbild entfernen remove_header: Titelbild entfernen removed_avatar_msg: Profilbild von %{username} erfolgreich entfernt @@ -128,7 +130,7 @@ de: reset_password: Passwort zurücksetzen resubscribe: Wieder abonnieren role: Rolle - search: Suche + search: Suchen search_same_email_domain: Andere Benutzer*innen mit der gleichen E-Mail-Domain search_same_ip: Andere Benutzer*innen mit derselben IP-Adresse security_measures: @@ -561,7 +563,6 @@ de: report_notes: created_msg: Meldungs-Kommentar erfolgreich erstellt! destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht! - today_at: Heute um %{time} reports: account: notes: @@ -704,6 +705,9 @@ de: content_retention: preamble: Lege fest, wie lange nutzergenerierte Inhalte auf deiner Mastodon-Instanz gespeichert werden. title: Cache & Archive + default_noindex: + desc_html: Betrifft alle Benutzer, die diese Einstellung nicht selbst geändert haben + title: Benutzer standardmäßig von der Suchmaschinen-Indizierung ausnehmen discovery: follow_recommendations: Folgeempfehlungen preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. @@ -971,6 +975,9 @@ de: email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten. email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern. title: Konfiguration + sign_in: + preamble_html: Mit deinen Zugangsdaten für %{domain} anmelden. Solltest du dein Konto auf einer anderen Instanz registriert haben, ist eine Anmeldung hier nicht möglich. + title: Bei %{domain} anmelden sign_up: preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird. title: Okay, lass uns mit %{domain} anfangen. diff --git a/config/locales/devise.be.yml b/config/locales/devise.be.yml index d9872b516c..3bf35daeda 100644 --- a/config/locales/devise.be.yml +++ b/config/locales/devise.be.yml @@ -31,7 +31,7 @@ be: subject: 'Mastodon: адрас электроннай пошты зменены' title: Новы адрас электроннай пошты password_change: - explanation: Пароль вашага акаўнту быў зменены. + explanation: Пароль для вашага ўліковага запісу быў зменены extra: Калі вы не змянялі свой пароль, верагодна, нехта атрымаў доступ да вашага ўліковага запісу. Калі ласка, неадкладна змяніце свой пароль або звярніцеся да адміністратара сервера, калі вы заблакаваны з вашага ўліковага запісу subject: 'Mastodon: пароль зменены' title: Пароль зменены @@ -42,7 +42,7 @@ be: title: Пацвердзіце адрас электроннай пошты reset_password_instructions: action: Змяніць пароль - explanation: Запыт новага пароля для вашага акаўнту. + explanation: Вы запыталі новы пароль для свайго ўліковага запісу. extra: Калі вы не рабілі такога запыту, калі ласка, ігнаруйце гэты ліст. Ваш пароль не будзе зменены, пакуль вы не пяройдзеце па спасылцы вышэй і не створыце новы. subject: 'Mastodon: Інструкцыі па скіданню пароля' title: Скіданне пароля diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml index 45e11ccd66..93e18742c0 100644 --- a/config/locales/devise.bg.yml +++ b/config/locales/devise.bg.yml @@ -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: Моля, проверете правилата на сървъра и нашите условия за обслужване. + extra_html: Проверете правилата на сървъра и условията ни за обслужване. subject: 'Mastodon: Указания за потвърждаване за %{instance}' - title: Потвърдете своя имейл адрес + title: Потвърдете адреса на имейла email_changed: explanation: 'Имейл адресът на вашия акаунт се променя на:' extra: Ако не сте сменили имейла си, вероятно някой е получил достъп до вашия акаунт. Моля, сменете паролата си незабавно или се свържете с администратора на сървъра, ако сте блокирани от акаунта си. @@ -37,7 +37,7 @@ bg: title: Паролата е променена reconfirmation_instructions: explanation: Потвърдете новия адрес, за да промените имейла си. - extra: Ако тази промяна не е инициирана от вас, моля, игнорирайте този имейл. Имейл адресът за акаунта на Mastodon няма да се промени, докато не влезете в линка по-горе. + extra: Ако тази промяна не е инициирана от вас, то игнорирайте този имейл. Адресът на имейл за акаунта в Mastodon няма да се промени, докато не влезете в горната връзка. subject: 'Mastodon: Потвърдете имейла за %{instance}' title: Потвърдете своя имейл адрес reset_password_instructions: @@ -49,15 +49,15 @@ bg: two_factor_disabled: explanation: Двуфакторното удостоверяване за вашия акаунт е деактивирано. Влизането вече е възможно, като се използват само имейл адрес и парола. subject: 'Mastodon: Двуфакторното удостоверяване е деактивирано' - title: 2FA деактивирано + title: Двуфакторното изключено two_factor_enabled: explanation: За вашия акаунт е активирано двуфакторно удостоверяване. За влизане ще е необходим ключ, генериран от сдвоеното приложение за TOTP. subject: 'Mastodon: Двуфакторното удостоверяване е активирано' title: 2FA активирано two_factor_recovery_codes_changed: - explanation: Предишните кодове за възстановяване са анулирани и и се генерират нови. - subject: 'Mastodon: Възстановени са двуфакторни кодове за възстановяване' - title: 2FA кодове за възстановяване са променени + explanation: Предишните кодове за възстановяване са анулирани и се пораждат нови. + subject: 'Mastodon: Генерирани отново са двуфакторни кодове за възстановяване' + title: Кодове за 2 факт. удост. за възстановяване са променени unlock_instructions: subject: 'Mastodon: указания за отключване' webauthn_credential: @@ -68,9 +68,9 @@ bg: deleted: explanation: Следният ключ за сигурност е изтрит от вашия акаунт subject: 'Mastodon: Ключът за сигурност е изтрит' - title: Един от вашите ключове за сигурност е изтрит + title: Един от ключовете ви за сигурност е изтрит webauthn_disabled: - explanation: Удостоверяването с ключове за сигурност е деактивирано за вашия акаунт. Влизането вече е възможно, използвайки само ключа, генериран от сдвоеното приложение за TOTP. + explanation: Удостоверяването с ключове за сигурност е изключено за акаунта ви. Влизането вече е възможно, използвайки само ключа, породен от сдвоеното приложение TOTP. subject: 'Mastodon: Удостоверяването с ключове за сигурност е деактивирано' title: Ключовете за сигурност са деактивирани webauthn_enabled: @@ -79,11 +79,11 @@ bg: title: Ключовете за сигурност са активирани omniauth_callbacks: failure: Не успяхме да те упълномощим чрез %{kind}, защото "%{reason}". - success: Успешно упълномощаване чрез %{kind} профил. + success: Успешно упълномощаване от акаунт на %{kind}. passwords: no_token: Може да достъпваш тази страница само от имейл за промяна на паролата. Ако тази страница е отворена от такъв имейл, увери се, че използваш целия URL-адрес, който сме ти изпратили. - send_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. - send_paranoid_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. + send_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. + send_paranoid_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. updated: Паролата ти беше променена успешно. Влизането в профила е успешно. updated_not_active: Паролата ви беше променена успешно. registrations: @@ -91,18 +91,18 @@ bg: signed_up: Добре дошли! Успешно се регистрирахте. signed_up_but_inactive: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви все още не е активиран. signed_up_but_locked: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви е заключен. - signed_up_but_pending: На вашия имейл адрес е изпратено съобщение с връзка за потвърждение. След като щракнете върху линка, ние ще прегледаме вашето заявление. Ще бъдете уведомени, ако то е одобрено. - signed_up_but_unconfirmed: Писмо с връзка за потвърждаване профила ви беше изпратено на вашия имейл адрес. Моля, последвайте линка, за да активирате своя профил. - update_needs_confirmation: Профилът ви е успешно променен, но ние трябва да проверим вашия нов имейл адрес. Моля, проверете пощата си и отворете линка за потвърждаване на новия адрес. + 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: Ако твоят профил съществува в базата ни, на своя имейл адрес ще получиш инструкции за отключването му до няколко минути. - unlocked: Твоят профил беше отключен успешно. За да продължиш, влез в него. + send_instructions: Ще получите е-писмо с указания как да отключите акаунта си до няколко минути. Проверете папката си за спам, ако не сте получили това е-писмо. + send_paranoid_instructions: Ако акаунта ви съществува в базата ни, то ще получите е-писмо с указания за отключването му до няколко минути. Проверете папката си за спам, ако не сте получили това е-писмо. + unlocked: Акаунтът ви е успешно отключен. Влезте, за да продължите. errors: messages: already_confirmed: е вече потвърден, моля опитай да влезеш в профила си с него diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index 606be8d47b..ce5a35efde 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -111,5 +111,5 @@ fi: not_found: ei löydy not_locked: ei ollut lukittu not_saved: - one: 'Yksi virhe esti kohteen %{resource} tallentamisen:' - other: "%{count} virhettä esti kohteen %{resource} tallentamisen:" + one: '1 virhe esti kohteen %{resource} tallennuksen:' + other: "%{count} virhettä esti kohteen %{resource} tallennuksen:" diff --git a/config/locales/devise.fy.yml b/config/locales/devise.fy.yml index 9cdc97dd72..3a7ead83e3 100644 --- a/config/locales/devise.fy.yml +++ b/config/locales/devise.fy.yml @@ -7,14 +7,14 @@ fy: send_paranoid_instructions: As dyn e-mailadres yn de database stiet, ûntfangsto fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. failure: already_authenticated: Do bist al oanmeld. - inactive: Jo account is not net aktivearre. + inactive: Jo account is noch net aktivearre. invalid: "%{authentication_keys} of wachtwurd ûnjildich." last_attempt: Do hast noch ien besykjen oer eardat dyn account blokkearre wurdt. locked: Dyn account is blokkearre. not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich." pending: Dyn account moat noch hieltyd beoardiele wurde. timeout: Dyn sesje is ferrûn, meld dy opnij oan. - unauthenticated: Do moatst oanmelde of registrearje. + unauthenticated: Jo moatte oanmelde of registrearje. unconfirmed: Do moatst earst dyn account befêstigje. mailer: confirmation_instructions: @@ -25,10 +25,93 @@ fy: extra_html: |- 128 / 5.000 Kontrolearje ek de regels fan de server en ús tsjinstbetingsten. - subject: 'Mastodon: Befêstiging ynstruksjes foar %{instance}' - title: E-mailadres neigean + subject: 'Mastodon: Befêstigingsynstruksjes foar %{instance}' + title: E-mailadres ferifiearje email_changed: - explanation: 'It e-mailadres foar jo akkount wurdt feroare yn:' - extra: As jo ​​jo mailadres net wizige hawwe, is it wierskynlik dat immen tagong hat ta jo akkount. Wizigje asjebleaft jo wachtwurd daliks of nim kontakt op mei de server-admin as jo útsletten binne fan jo akkount. + explanation: 'It e-mailadres foar jo account wurdt wizige yn:' + extra: As jo ​​jo e-mailadres net wizige hawwe, is it wierskynlik dat immen tagong hat ta jo account. Wizigje jo wachtwurd daliks of nim kontakt op mei de server-admin as jo útsletten binne fan jo account. + subject: 'Mastodon: E-mailadres is wizige' + title: Nij e-mailadres + password_change: + explanation: It wachtwurd fan dizze account is wizige. + extra: As jo ​​jo wachtwurd net wizige hawwe, is it wierskynlik dat immen tagong hat ta jo account. Wizigje jo wachtwurd daliks of nim kontakt op mei de serveradmin as jo útsletten binne fan jo account. + subject: 'Mastodon: Wachtwurd wizige' + title: Wachtwurd wizige + reconfirmation_instructions: + explanation: Befêstigje jo nije e-mailadres om dizze te wizigjen. + extra: Wannear’t jo dizze wiziging net útfierd hawwe, meie jo dit e-mailberjocht negearje. It e-mailadres fan jo Mastodon-account wurdt pas werklik wizige oant jo de keppeling hjirboppe oanklikke. + subject: 'Mastodon: Befêstigje it e-mailadres foar %{instance}' + title: E-mailadres ferifiearje + reset_password_instructions: + action: Wachtwurd wizigje + explanation: Jo hawwe in nij wachtwurd foar jo account oanfrege. + extra: Wannear’t jo dit net oanfrege hawwe, meie jo dit e-mailberjocht negearje. Jo wachtwurd wurdt pas wizige neidat jo de keppeling hjirboppe oanklikt hawwe en in nij wachtwurd oanmeitsje. + subject: 'Mastodon: Wachtwurd opnij ynstelle' + title: Wachtwurd opnij ynstelle + two_factor_disabled: + explanation: Twa-stapsferifikaasje foar jo account is útskeakele. Jo kinne no allinnich oanmelde mei in e-mailadres en wachtwurd. + subject: 'Mastodon: Twa-stapsferifikaasje útskeakele' + title: Twa-stapsferifikaasje útskeakele + two_factor_enabled: + explanation: Twa-stapsferifikaasje foar jo account is ynskeakele. Om oanmelde te kinnen is in troch in twa-stapsferifikaasje-app generearre tagongskoade nedich. + subject: 'Mastodon: Twa-stapsferifikaasje ynskeakele' + title: Twa-stapsferifikaasje ynskeakele + two_factor_recovery_codes_changed: + explanation: De foarige werstelkoaden binne ûnjildich makke en nije binne oanmakke. + subject: 'Mastodon: Twa-staps-werstelkoaden binne opnij oanmakke' + title: Werstelkoaden twa-stapsferifikaasje wizige + unlock_instructions: + subject: 'Mastodon: Ynstruksjes foar ûntskoatteljen' + webauthn_credential: + added: + explanation: De folgjende befeiligingskaai is oan jo account tafoege + subject: 'Mastodon: Nije befeiligingskaai' + title: In nije befeiligingskaai is tafoege + deleted: + explanation: De folgjende befeiligingskaai is út jo account fuortsmiten + subject: 'Mastodon: Befeiligingskaai fuortsmiten' + title: Ien fan jo befeiligingskaaien is fuortsmiten + webauthn_disabled: + explanation: Ferifikaasje mei befeiligingskaaien is útskeakele foar jo account. Oanmelden is no allinnich mooglik mei it gebrûk fan in troch in keppele TOTP-app generearre kaai. + subject: 'Mastodon: Ferifikaasje mei befeiligingskaaien is útskeakele' + title: Befeiligingskaaien útskeakele + webauthn_enabled: + explanation: Ferifikaasje mei befeiligingskaaien is ynskeakele foar jo account. Jo befeiligingskaai kin no brûkt wurde om oan te melden. + subject: 'Mastodon: Ferifikaasje mei befeiligingskaaien is ynskeakele' + title: Befeiligingskaaien ynskeakele + omniauth_callbacks: + failure: Oanmelden mei jo %{kind}-account mislearre, omdat ‘%{reason}’. + success: Mei sukses mei jo %{kind}-account oanmeld. passwords: - updated_not_active: Jo wachtwurd is mei sukses feroare. + no_token: Jo kinne dizze side net benaderje sûnder dat jo in e-mailberjocht om jo wachtwurd opnij yn te stellen ûntfongen hawwe. + send_instructions: Jo ûntfange fia in e-mailberjocht ynstruksjes hoe’t jo jo wachtwurd opnij ynstelle moatte. Sjoch tusken jo net-winske wannear neat ûntfongen waard. + send_paranoid_instructions: Jo ûntfange fia in e-mailberjocht ynstruksjes hoe’t jo jo wachtwurd opnij ynstelle moatte. Sjoch tusken jo net-winske wannear neat ûntfongen waard. + updated: Jo wachtwurd is wizige. Jo binne no oanmeld. + updated_not_active: Jo wachtwurd is mei sukses wizige. + registrations: + destroyed: Jo account is mei sukses fuortsmiten. Miskien oant sjen. + signed_up: Jo binne registrearre. + signed_up_but_inactive: Jo binne registrearre. Jo koene allinnich net automatysk oanmeld wurde, omdat jo account noch net aktivearre is. + signed_up_but_locked: Jo binne registrearre. Jo koene allinnich net automatysk oanmeld wurde, omdat jo account beskoattele is. + signed_up_but_pending: Der is in berjocht mei in befêstigingskeppeling nei jo e-mailadres ferstjoerd. Neidat jo op dizze keppeling klikt hawwe nimme wy jo oanfraach yn behanneling. Jo wurde op de hichte steld wannear’t dizze goedkard wurdt. + signed_up_but_unconfirmed: Jo ûntfange fia in e-mailberjocht ynstruksjes hoe’t jo jo account aktivearje kinne. Sjoch tusken jo net-winske wannear’t neat ûntfongen waard. + update_needs_confirmation: Jo hawwe jo e-mailadres mei sukses wizige, mar wy moatte jo nije e-mailadres noch befêstigje. Kontrolearje jo Postfek YN en klik op de keppeling yn it e-mailberjocht om jo e-mailadres te befêstigjen. Sjoch tusken jo net-winske wannear’t neat ûntfongen waard. + updated: Jo accountgegevens binne bewarre. + sessions: + already_signed_out: Mei sukses ôfmeld. + signed_in: Mei sukses oanmeld. + signed_out: Mei sukses ôfmeld. + unlocks: + send_instructions: Jo ûntfange fia in e-mailberjocht ynstruksjes hoe’t jo jo account ûntskoattelje kinne. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. + send_paranoid_instructions: As jo account bestiet, ûntfange jo fia in e-mailberjocht ynstruksjes hoe’t jo jo account ûntskoattelje kinne. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. + unlocked: Jo account is net mear beskoattele. Jo kinne no wer oanmelde. + errors: + messages: + already_confirmed: is al befêstige + confirmation_period_expired: moat befêstige wurde binnen %{period}, probearje it nochris + expired: is ferrûn, freegje in nije oan + not_found: net fûn + not_locked: is net beskoattele + not_saved: + one: '1 flater ferhindere it bewarjen fan dizze %{resource}:' + other: "%{count} flaters ferhinderje it bewarjen fan dizze %{resource}:" diff --git a/config/locales/devise.ku.yml b/config/locales/devise.ku.yml index d5d0105efc..7ca89d7739 100644 --- a/config/locales/devise.ku.yml +++ b/config/locales/devise.ku.yml @@ -4,7 +4,7 @@ ku: 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_paranoid_instructions: Heger 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-name yek hildî. Heke ev e-name yê hilnedî ji kerema xwe re peldanka nexwestî binêrin. + 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. inactive: Ajimêra te hîn nehatiye çalakkirin. @@ -23,7 +23,7 @@ ku: 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_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ê. + 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ê. 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 @@ -41,7 +41,7 @@ ku: 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î. + 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: diff --git a/config/locales/devise.la.yml b/config/locales/devise.la.yml new file mode 100644 index 0000000000..3a7ba0d445 --- /dev/null +++ b/config/locales/devise.la.yml @@ -0,0 +1 @@ +la: diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index d85c0bcea3..445d1093c0 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -39,6 +39,7 @@ ast: title: Prodúxose un error new: prompt_html: "%{client_name}, que ye una aplicación de terceros, quier tener accesu a la cuenta. Si nun t'enfotes nella, nun habríes autorizala." + review_permissions: Revisión de los permisos show: title: Copia esti códigu d'autorización ya apiégalu na aplicación. authorized_applications: diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml index 4fe8a87815..4f8442b739 100644 --- a/config/locales/doorkeeper.bg.yml +++ b/config/locales/doorkeeper.bg.yml @@ -6,7 +6,7 @@ bg: name: Име на приложението redirect_uri: Пренасочващ URI scopes: Обхват - website: Уебсайт на приложение + website: Уебсайт на приложението errors: models: doorkeeper/application: @@ -23,17 +23,17 @@ bg: cancel: Отказ destroy: Унищожаване edit: Редактиране - submit: Изпращане + submit: Подаване confirmations: destroy: Сигурни ли сте? edit: title: Редактиране на приложението form: - error: О, не! Провери формата за възможни грешки + error: Опа! Проверете формуляра си за възможни грешки help: native_redirect_uri: Изполвайте %{native_redirect_uri} за локални тестове redirect_uri: Използвайте един ред за всяко URI - scopes: Разделяй диапазоните с интервал. Остави празно, за да използваш диапазона по подразбиране. + scopes: Разделяйте обхватите с интервал. Оставете празно, за да употребявате стандартните обхвати. index: application: Приложение callback_url: URL за обратно повикване @@ -43,15 +43,15 @@ bg: new: Ново приложение scopes: Обхват show: Показване - title: Твоите приложения + title: Вашите приложения new: title: Ново приложение show: actions: Действия - application_id: Идентификатор на приложението + application_id: Ключ на клиента callback_urls: URL-и за обратно повикване - scopes: Диапазони - secret: Тайна + scopes: Обхвати + secret: Тайна на клиента title: 'Приложение: %{name}' authorizations: buttons: @@ -74,7 +74,7 @@ bg: authorized_at: Упълномощено на %{date} description_html: Има приложения, можещи да имат достъп до акаунта ви, използвайки API. Ако тук има приложения, които не знаете, или работещи неправилно, то може да им откажете достъпа. last_used_at: Последно обновено на %{date} - never_used: Не е използвано + never_used: Нивга ползвано scopes: Разрешения superapp: Вътрешно title: Упълномощените ви приложения @@ -95,12 +95,12 @@ bg: expired: Маркерът за достъп изтече revoked: Маркерът за достъп беше отхвърлен unknown: Маркерът за достъп е невалиден - resource_owner_authenticator_not_configured: Намирането на Resource Owner се провали поради липса на конфигурация на Doorkeeper.configure.resource_owner_authenticator. + resource_owner_authenticator_not_configured: Намирането на собственика на ресурса се провали поради липса на конфигуриране на Doorkeeper.configure.resource_owner_authenticator. server_error: Сървърът за удостоверяване попадна на неочаквано условие, което предотврати изпълнението на заявката. temporarily_unavailable: Сървърът за удостоверяване не може да се справи със заявката в момента поради временно претоварване или профилактика на сървъра. - unauthorized_client: Клиентът не е удостоверен да изпълни заявката по този начин. - unsupported_grant_type: Типът на удостоврението за достъп не се поддържа от сървъра за удостоверяване. - unsupported_response_type: Удостоверяващият сървър не поддържа този тип отговор. + unauthorized_client: Клиентът не е упълномощен да изпълни заявката по този начин. + unsupported_grant_type: Типът за даване на пълномощно не се поддържа от сървъра за упълномощаване. + unsupported_response_type: Упълномощаващият сървър не поддържа този тип отговор. flash: applications: create: @@ -135,7 +135,7 @@ bg: media: Прикачена мултимедия mutes: Заглушения notifications: Известия - push: Push-известия + push: Изскачащи известия reports: Доклади search: Търсене statuses: Публикации @@ -156,7 +156,7 @@ bg: crypto: употреба на цялостно шифроване follow: промяна на взаимоотношенията с други акаунти push: получаване на вашите изскачащи известия - read: четене на всички данни от вашия акаунт + read: четене на всички данни от акаунта ви read:accounts: преглед на информация за акаунти read:blocks: преглед на вашите блокирания read:bookmarks: преглед на вашите отметки @@ -169,10 +169,10 @@ bg: read:reports: преглед на вашите докладвания read:search: търсене от ваше име read:statuses: преглед на всички публикации - write: промяна на всички данни от вашия акаунт + write: промяна на всички данни на акаунта ви write:accounts: промяна на вашия профил write:blocks: блокиране на акаунти и домейни - write:bookmarks: отмятане на състояния + write:bookmarks: отмятане на публикации write:conversations: заглушаване и изтриване на разговорите write:favourites: харесани публикации write:filters: създаване на филтри @@ -182,4 +182,4 @@ bg: write:mutes: заглушаване на хора и разговори write:notifications: изчистване на вашите известия write:reports: докладване на други хора - write:statuses: публикуване на състояния + write:statuses: публикуване на публикации diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index a0ad2d6227..1838db222f 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -149,9 +149,19 @@ ca: scopes: admin:read: llegeix totes les dades en el servidor admin:read:accounts: llegir informació confidencial de tots els comptes + admin:read:canonical_email_blocks: llegeix informació sensible de tots els blocs canònics de correu-e + admin:read:domain_allows: llegeix informació sensible de tots els dominis permesos + admin:read:domain_blocks: llegeix informació sensible de tots els blocs de domini + admin:read:email_domain_blocks: llegeix informació sensible de tots els blocs de domini de correu-e + admin:read:ip_blocks: llegeix informació sensible de tots els blocs d'IP admin:read:reports: llegir informació confidencial de tots els informes i comptes reportats admin:write: modificar totes les dades en el servidor admin:write:accounts: fer l'acció de moderació en els comptes + admin:write:canonical_email_blocks: executa accions de moderació en blocs canònics de correu-e + admin:write:domain_allows: executa accions de moderació en permisos de domini + admin:write:domain_blocks: executa accions de moderació en blocs de domini + admin:write:email_domain_blocks: executa accions de moderació en blocs de domini de correu-e + 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 diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index 5475114f68..09cad8487c 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -149,6 +149,7 @@ cs: scopes: admin:read: číst všechna data na serveru admin:read:accounts: číst citlivé informace všech účtů + admin:read:canonical_email_blocks: číst citlivé informace všech kanonických e-mailových bloků admin:read:reports: číst citlivé informace všech nahlášení a nahlášených účtů admin:write: měnit všechna data na serveru admin:write:accounts: provádět moderátorské akce s účty diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml index 094faedba4..43908f0207 100644 --- a/config/locales/doorkeeper.da.yml +++ b/config/locales/doorkeeper.da.yml @@ -149,9 +149,19 @@ da: scopes: admin:read: læs alle data på serveren admin:read:accounts: læs sensitiv information fra alle konti + admin:read:canonical_email_blocks: læs følsomme oplysninger fra alle kanoniske e-mailblokeringer + admin:read:domain_allows: læs følsomme informationer fra alle tilladte domæner + admin:read:domain_blocks: læs følsomme informationer fra alle domæneblokeringer + admin:read:email_domain_blocks: læs følsomme informationer fra alle e-maildomæneblokeringer + admin:read:ip_blocks: læs følsomme informationer fra alle IP-blokeringer admin:read:reports: læs sensitiv information fra alle anmeldelser og anmeldte konti admin:write: redigér alle data på serveren admin:write:accounts: udfør modereringshandlinger på konti + admin:write:canonical_email_blocks: udfør modereringshandlinger på kanoniske e-mailblokeringer + admin:write:domain_allows: udfør modereringshandlinger på tilladte domæner + admin:write:domain_blocks: udfør modereringshandlinger på domæneblokeringer + admin:write:email_domain_blocks: udfør modereringshandlinger på e-maildomæneblokeringer + admin:write:ip_blocks: udfør modereringshandlinger på IP-blokeringer admin:write:reports: udfør modereringshandlinger på anmeldelser crypto: benyt ende-til-ende kryptering follow: ændre kontorelationer diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 0e7ca2d558..7aac00b01a 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -149,6 +149,9 @@ de: scopes: admin:read: alle Daten auf dem Server lesen admin:read:accounts: sensible Daten aller Konten lesen + admin:read:canonical_email_blocks: vertrauliche Informationen aller kanonischen E-Mail-Blöcke lesen + admin:read:domain_allows: vertrauliche Informationen aller Domänen lesen + admin:read:domain_blocks: sensible Informationen aller Domänenblöcke lesen admin:read:reports: sensible Daten aller Meldungen und gemeldeten Konten lesen admin:write: alle Daten auf dem Server ändern admin:write:accounts: Moderationsaktionen auf Konten ausführen diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index 46210dbc4a..a6b6f87c65 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -149,9 +149,17 @@ es-AR: 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 canónicos de correo electrónico + 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 direcciones IP admin:read:reports: leer información sensible de todos los informes y cuentas denunciadas admin:write: modificar todos los datos en el servidor admin:write:accounts: ejecutar acciones de moderación en cuentas + admin:write:canonical_email_blocks: ejecutar acciones de moderación en bloques canónicos de correo electrónico + admin:write:domain_blocks: ejecutar acciones de moderación en bloques de dominio + admin:write:email_domain_blocks: ejecutar acciones de moderación en bloques de dominio de correo electrónico + admin:write:ip_blocks: ejecutar acciones de moderación en bloques de direcciones IP admin:write:reports: ejecutar acciones de moderación en denuncias crypto: usar cifrado de extremo a extremo follow: modificar relaciones de cuenta diff --git a/config/locales/doorkeeper.fo.yml b/config/locales/doorkeeper.fo.yml index d915ead3de..71fa73a0f7 100644 --- a/config/locales/doorkeeper.fo.yml +++ b/config/locales/doorkeeper.fo.yml @@ -149,9 +149,19 @@ fo: scopes: admin:read: les allar dátur á ambætaranum admin:read:accounts: les viðkvæmar upplýsingar úr øllum kontum + admin:read:canonical_email_blocks: les viðkvæmar upplýsingar frá øllum fyrimyndarligum teldupostblokeringum + admin:read:domain_allows: les viðkvæmar upplýsingar frá øllum loyvdum navnaøkjum + admin:read:domain_blocks: les viðkvæmar upplýsingar frá øllum navnaøkjablokeringum + admin:read:email_domain_blocks: les viðkvæmar upplýsingar frá øllum telduposta-navnaøkjablokeringum + admin:read:ip_blocks: les viðkvæmar upplýsingar frá øllum IP blokeringum admin:read:reports: les viðkvæmar upplýsingar um allar meldingar og meldaðar kontur admin:write: broyta allar dátur á ambætaranum admin:write:accounts: útinna kjakleiðsluatgerðir á kontum + admin:write:canonical_email_blocks: før umsjón við øllum fyrimyndarligum teldupostablokeringum + admin:write:domain_allows: før umsjón á loyvdum navnaøkjum + admin:write:domain_blocks: før umsjón á navnaøkjablokeringum + admin:write:email_domain_blocks: før umsjón á telduposta-navnaøkjablokeringum + admin:write:ip_blocks: før umsjón á IP blokeringum admin:write:reports: útinna kjakleiðsluatgerðir á meldingum crypto: brúka enda-til-enda bronglan follow: broyta viðurskifti millum kontur diff --git a/config/locales/doorkeeper.fy.yml b/config/locales/doorkeeper.fy.yml index 5e3f3c6c07..06f7e901fc 100644 --- a/config/locales/doorkeeper.fy.yml +++ b/config/locales/doorkeeper.fy.yml @@ -3,10 +3,10 @@ fy: activerecord: attributes: doorkeeper/application: - name: Namme fan applikaasje + name: Tapassingsnamme redirect_uri: Redirect-URI scopes: Tastimmingen - website: Webstee fan applikaasje + website: Tapassingswebsite errors: models: doorkeeper/application: @@ -15,7 +15,7 @@ fy: fragment_present: mei gjin fragmint befetsje. invalid_uri: moat in jildige URI wêze. relative_uri: moat in absolute URI wêze. - secured_uri: moat in HTTPS/SSL URI wêze. + secured_uri: moat in HTTPS/SSL-URI wêze. doorkeeper: applications: buttons: @@ -179,7 +179,7 @@ fy: write:follows: minsken folgje write:lists: listen oanmeitsje write:media: mediabestannen oplade - write:mutes: minsken en petearen negearre + write:mutes: minsken en petearen dôvje write:notifications: meldingen fuortsmite write:reports: oare minsken rapportearje write:statuses: berjochten pleatse diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index eb3b018bd2..aaf4c0823c 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -60,7 +60,7 @@ gl: error: title: Algo fallou new: - prompt_html: "%{client_name} gostaría acceder á túa conta. É unha aplicación de terceiros. Se non confías nela, non deberías autorizala." + prompt_html: "%{client_name} solicita permiso para acceder á túa conta. É unha aplicación de terceiros. Se non confías nela, non deberías autorizala." review_permissions: Revisar permisos title: Autorización necesaria show: @@ -74,7 +74,7 @@ gl: authorized_at: Autorizada o %{date} description_html: Estas aplicacións poden acceder á túa conta usando a API. Se ves aplicacións que non recoñeces, ou hai comportamentos non consentidos dalgunha delas, podes revogar o acceso. last_used_at: Último acceso o %{date} - never_used: Nunca utilizado + never_used: Nunca usada scopes: Permisos superapp: Interno title: As túas aplicacións autorizadas @@ -120,20 +120,20 @@ gl: title: accounts: Contas admin/accounts: Administración das contas - admin/all: Tódas funcións administrativas + admin/all: Tódalas funcións administrativas admin/reports: Administración das denuncias all: Todo blocks: Bloqueos bookmarks: Marcadores conversations: Conversas - crypto: Cifrado E2E + crypto: Cifrado extremo-a-extremo favourites: Favoritas filters: Filtros follow: Relacións follows: Seguimentos lists: Listas media: Anexos multimedia - mutes: Silenciamentos + mutes: Acaladas notifications: Notificacións push: Notificacións Push reports: Denuncias diff --git a/config/locales/doorkeeper.he.yml b/config/locales/doorkeeper.he.yml index eda38153c6..3e25e637f2 100644 --- a/config/locales/doorkeeper.he.yml +++ b/config/locales/doorkeeper.he.yml @@ -149,9 +149,19 @@ he: 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.hu.yml b/config/locales/doorkeeper.hu.yml index b394098a48..1157d0ee3f 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -149,9 +149,19 @@ hu: scopes: admin:read: a kiszolgáló összes adatának olvasása admin:read:accounts: minden kényes fiókadat olvasása + admin:read:canonical_email_blocks: kanonikus emailblokkok érzékeny információinak olvasása + admin:read:domain_allows: minden domainengedély érzékeny információinak olvasása + admin:read:domain_blocks: minden domaintiltás érzékeny információinak olvasása + admin:read:email_domain_blocks: minden email-domainblokk érzékeny információinak olvasása + admin:read:ip_blocks: minden IP-blokk érzékeny információinak olvasása admin:read:reports: minden bejelentés és bejelentett fiók kényes adatainak olvasása admin:write: a kiszolgáló összes adatának módosítása admin:write:accounts: moderációs műveletek végzése fiókokon + admin:write:canonical_email_blocks: moderáció végrehajtása kanonikus emailblokkokon + admin:write:domain_allows: moderáció végrehajtása domainengedélyeken + admin:write:domain_blocks: moderáció végrehajtása domaintiltásokon + admin:write:email_domain_blocks: moderáció végrehajtása email-domainblokkokon + admin:write:ip_blocks: moderáció végrehajtása IP-blokkokon admin:write:reports: moderációs műveletek végzése bejelentéseken crypto: végpontok közti titkosítás használata follow: fiókok követése, letiltása, tiltás feloldása és követés abbahagyása diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml index 4c48196a65..602c50fa91 100644 --- a/config/locales/doorkeeper.it.yml +++ b/config/locales/doorkeeper.it.yml @@ -149,9 +149,19 @@ it: scopes: admin:read: leggere tutti i dati sul server admin:read:accounts: leggere le informazioni sensibili su tutti i profili + admin:read:canonical_email_blocks: leggere le informazioni sensibili di tutti i blocchi canonici di posta elettronica + admin:read:domain_allows: leggere le informazioni sensibili di tutti i domini consentiti + admin:read:domain_blocks: leggere le informazioni sensibili di tutti i blocchi di dominio + admin:read:email_domain_blocks: leggi le informazioni sensibili di tutti i blocchi di dominio email + admin:read:ip_blocks: leggere le informazioni sensibili di tutti i blocchi IP admin:read:reports: leggere le informazioni sensibili di tutte le segnalazioni e tutti i profili segnalati admin:write: modificare tutti i dati sul server admin:write:accounts: eseguire azioni di moderazione sui profili + admin:write:canonical_email_blocks: eseguire azioni di moderazione sui blocchi canonici di posta elettronica + admin:write:domain_allows: consente di eseguire azioni di moderazione sul dominio + admin:write:domain_blocks: eseguire azioni di moderazione sui blocchi di dominio + admin:write:email_domain_blocks: eseguire azioni di moderazione sui blocchi di dominio email + admin:write:ip_blocks: eseguire azioni di moderazione sui blocchi IP admin:write:reports: eseguire azioni di moderazione sulle segnalazioni crypto: utilizzare la crittografia end-to-end follow: modifica le relazioni tra profili diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 66668a70ac..20e41af95d 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -149,6 +149,11 @@ ko: 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: 계정에 모더레이션 조치 취하기 diff --git a/config/locales/doorkeeper.la.yml b/config/locales/doorkeeper.la.yml new file mode 100644 index 0000000000..3a7ba0d445 --- /dev/null +++ b/config/locales/doorkeeper.la.yml @@ -0,0 +1 @@ +la: diff --git a/config/locales/doorkeeper.lv.yml b/config/locales/doorkeeper.lv.yml index 940d6f5efa..a45b4822d7 100644 --- a/config/locales/doorkeeper.lv.yml +++ b/config/locales/doorkeeper.lv.yml @@ -149,9 +149,19 @@ lv: scopes: admin:read: lasīt visus datus uz servera admin:read:accounts: lasīt sensitīvu informāciju no visiem kontiem + admin:read:canonical_email_blocks: lasīt sensitīvu informāciju par visiem kanoniskajiem e-pasta blokiem + admin:read:domain_allows: lasīt visu domēnu sensitīvo informāciju, ko atļauj + admin:read:domain_blocks: lasīt sensitīvu informāciju par visiem domēna blokiem + admin:read:email_domain_blocks: lasīt sensitīvu informāciju par visiem e-pasta domēna blokiem + admin:read:ip_blocks: lasīt sensitīvu informāciju par visiem IP blokiem admin:read:reports: lasīt sensitīvu informāciju no visiem pārskatiem un kontiem, par kuriem ziņots admin:write: modificēt visus datus uz servera admin:write:accounts: veikt moderācijas darbības kontos + admin:write:canonical_email_blocks: veikt regulēšanas darbības kanoniskajos e-pasta blokos + admin:write:domain_allows: veikt moderēšanas darbības domēna atļaujā + admin:write:domain_blocks: veikt moderēšanas darbības domēna blokos + admin:write:email_domain_blocks: veikt moderēšanas darbības e-pasta domēna blokos + admin:write:ip_blocks: veikt moderēšanas darbības IP blokos admin:write:reports: veikt moderācijas darbības pārskatos crypto: lieto pilnīgu šifrēšanu follow: mainīt konta attiecības diff --git a/config/locales/doorkeeper.ro.yml b/config/locales/doorkeeper.ro.yml index f3c6f43539..7ad11d13a1 100644 --- a/config/locales/doorkeeper.ro.yml +++ b/config/locales/doorkeeper.ro.yml @@ -122,6 +122,8 @@ ro: admin/accounts: Administrarea conturilor admin/all: Toate funcțiile administrative admin/reports: Administrarea rapoartelor + all: Tot + blocks: Blocuri bookmarks: Marcaje conversations: Conversații crypto: Criptare în ambele părți diff --git a/config/locales/doorkeeper.sl.yml b/config/locales/doorkeeper.sl.yml index 1a27f62329..ca689e8f1a 100644 --- a/config/locales/doorkeeper.sl.yml +++ b/config/locales/doorkeeper.sl.yml @@ -149,9 +149,19 @@ sl: scopes: admin:read: preberi vse podatke na strežniku admin:read:accounts: preberi občutljive informacije vseh računov + admin:read:canonical_email_blocks: preberi občutljive informacije vseh blokad kanoničnih e-računov + admin:read:domain_allows: preberi občutljive informacije vseh dovolil domene + admin:read:domain_blocks: preberi občutljive informacije vseh blokad domen + admin:read:email_domain_blocks: preberi občutljive informacije vseh blokad domen e-računov + admin:read:ip_blocks: preberi občutljive informacije vseh blokad IP admin:read:reports: preberi občutljive informacije vseh prijav in prijavljenih računov admin:write: spremeni vse podatke na strežniku admin:write:accounts: izvedi moderirana dejanja na računih + admin:write:canonical_email_blocks: izvedi moderirana dejanja na blokadah kanoničnih e-računov + admin:write:domain_allows: izvedi moderirana dejanja na dovolilih domen + admin:write:domain_blocks: izvedi moderirana dejanja na blokadah domen + admin:write:email_domain_blocks: izvedi moderirana dejanja na blokadah domen e-računov + admin:write:ip_blocks: izvedi moderirana dejanja na blokadah IP admin:write:reports: izvedi moderirana dejanja na prijavah crypto: Uporabi šifriranje od konca do konca follow: spremeni razmerja med računi diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 0c934155ed..9a7b53bcc9 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -149,9 +149,19 @@ sv: scopes: admin:read: läsa all data på servern admin:read:accounts: läsa känslig information om alla konton + admin:read:canonical_email_blocks: läsa känslig information om alla kanoniska e-postblockeringar + admin:read:domain_allows: läsa känslig information om alla tillåtna domäner + admin:read:domain_blocks: läsa känslig information om alla domänblockeringar + admin:read:email_domain_blocks: läsa känslig information om alla blockerade e-postdomäner + admin:read:ip_blocks: läsa känslig information om alla IP-adressblockeringar admin:read:reports: läsa känslig information om alla rapporter och rapporterade konton admin:write: ändra all data på servern admin:write:accounts: utföra modereringsåtgärder på konton + admin:write:canonical_email_blocks: utföra modereringsåtgärder på kanoniska e-postblockeringar + admin:write:domain_allows: utföra modereringsåtgärder på tillåtna domäner + admin:write:domain_blocks: utföra modereringsåtgärder på domänblockeringar + admin:write:email_domain_blocks: utföra modereringsåtgärder på e-postdomänblockeringar + admin:write:ip_blocks: utföra modereringsåtgärder på IP-adressblockeringar admin:write:reports: utföra modereringsåtgärder på rapporter crypto: använd obruten kryptering follow: modifiera kontorelationer diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index 09c89cd100..04ec0dc47e 100644 --- a/config/locales/doorkeeper.uk.yml +++ b/config/locales/doorkeeper.uk.yml @@ -149,9 +149,11 @@ uk: scopes: admin:read: читати всі дані на сервері admin:read:accounts: читати конфіденційну інформацію усіх акаунтів + admin:read:domain_allows: читати конфіденційну інформацію всіх доменів дозволено admin:read:reports: читати дражливу інформацію усіх скарг та облікових записів зі скаргами admin:write: модифікувати всі дані на сервері admin:write:accounts: модерувати облікові записи + admin:write:domain_allows: модерувати домени дозволено admin:write:reports: модерувати скарги crypto: використовувати наскрізне шифрування follow: змінювати стосунки облікового запису diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml index ce902a01c8..d4808984f4 100644 --- a/config/locales/doorkeeper.vi.yml +++ b/config/locales/doorkeeper.vi.yml @@ -149,9 +149,19 @@ vi: scopes: admin:read: đọc tất cả dữ liệu trên máy chủ admin:read:accounts: đọc thông tin nhạy cảm của tất cả các tài khoản + admin:read:canonical_email_blocks: đọc thông tin nhạy cảm của tất cả các khối email chuẩn + admin:read:domain_allows: đọc thông tin nhạy cảm của tất cả các tên miền cho phép + admin:read:domain_blocks: đọc thông tin nhạy cảm của tất cả các tên miền chặn + admin:read:email_domain_blocks: đọc thông tin nhạy cảm của tất cả các miền email chặn + admin:read:ip_blocks: đọc thông tin nhạy cảm của tất cả các IP chặn admin:read:reports: đọc thông tin của các báo cáo và các tài khoản bị báo cáo admin:write: sửa đổi tất cả dữ liệu trên máy chủ admin:write:accounts: áp đặt hành động kiểm duyệt trên tài khoản + admin:write:canonical_email_blocks: thực hiện các hành động kiểm duyệt đối với chặn email + admin:write:domain_allows: thực hiện các hành động kiểm duyệt đối với các email cho phép + admin:write:domain_blocks: thực hiện các hành động kiểm duyệt đối với các tên miền chặn + admin:write:email_domain_blocks: thực hiện các hành động kiểm duyệt đối với các tên miền email chặn + admin:write:ip_blocks: áp đặt kiểm duyệt với các IP chặn admin:write:reports: áp đặt kiểm duyệt với các báo cáo crypto: dùng mã hóa đầu cuối follow: sửa đổi các mối quan hệ tài khoản diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index 07b617192b..edafecf72b 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -149,10 +149,20 @@ zh-TW: 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:reports: 對報告進行仲裁管理動作 + 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: 修改帳號關係 push: 接收帳號的推播通知 diff --git a/config/locales/el.yml b/config/locales/el.yml index 314e7320b2..00bcdfd64d 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -106,6 +106,8 @@ el: redownloaded_msg: Επιτυχής ανανέωη προφίλ του/της %{username} από την πηγή reject: Απόρριψη rejected_msg: Επιτυχής απόρριψη αίτησης εγγραφής του/της %{username} + remote_suspension_irreversible: Τα δεδομένα αυτού του λογαριασμού έχουν διαγραφεί αμετάκλητα. + remote_suspension_reversible_hint_html: Ο λογαριασμός έχει ανασταλλεί στον server του και τα δεδομένα του θα διαγραφούν πλήρως στις %{date}. Μέχρι τότε, ο απομακρυσμένος server μπορεί να επαναφέρει τον λογαριασμό χωρίς επιπτώσεις. Αν θέλεις να διαγράψεις αμέσως όλα τα δεδομένα του λογαριασμού, μπορείς να το κάνεις παρακάτω. remove_avatar: Απομακρυσμένο αβατάρ remove_header: Αφαίρεση επικεφαλίδας removed_avatar_msg: Επιτυχής αφαίρεση εικόνας προφίλ του/της%{username} @@ -407,7 +409,6 @@ el: report_notes: created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας! destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας! - today_at: Σήμερα στις %{time} reports: account: notes: @@ -496,6 +497,9 @@ el: title: Εμφάνιση content_retention: title: Διατήρηση περιεχομένου + default_noindex: + desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση οι ίδιοι + title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης discovery: profile_directory: Κατάλογος προφίλ public_timelines: Δημόσιες ροές @@ -648,6 +652,8 @@ el: email_below_hint_html: Αν η παρακάτω διεύθυνση email είναι λανθασμένη, μπορείτε να την ενημερώσετε και να λάβετε νέο email επιβεβαίωσης. email_settings_hint_html: Το email επιβεβαίωσης στάλθηκε στο %{email}. Αν η διεύθυνση αυτή δεν είναι σωστή, μπορείτε να την ενημερώσετε στις ρυθμίσεις λογαριασμού. title: Ρυθμίσεις + sign_in: + title: Συνδεθείτε στο %{domain} sign_up: title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}. status: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 629e1e4d66..3092c55e25 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -561,7 +561,6 @@ eo: report_notes: created_msg: Signala noto sukcese kreita! destroyed_msg: Signala noto sukcese forigita! - today_at: Hodiaŭ je %{time} reports: account: notes: @@ -704,6 +703,9 @@ eo: content_retention: preamble: Regi kiel uzantogenerita enhavo konservitis en Mastodon. title: Enhavkonservo + default_noindex: + desc_html: Efektiviĝas por ĉiuj uzantoj, kiuj mem ne agordis ĉi tion + title: Defaŭltigi, ke uzantoj ne estu aŭtomate aldonitaj al la serĉilo-indekso sen sia konsento discovery: follow_recommendations: Sekvorekomendoj preamble: Interesa enhavo estas grava por novaj uzantoj kiuj eble ne konas ajn iun. @@ -1327,7 +1329,7 @@ eo: trillion: Dn otp_authentication: code_hint: Enmetu la kodon kreitan de via aŭtentiga aplikaĵo por konfirmi - description_html: Se vi ebligas dufaktoran aŭtentigon per autentilprogramaro, ensaluto bezonas vi havi vian telefonon. + description_html: Se vi ŝaltas dufaktoran aŭtentigon per aŭtentiga programo, saluti postulos ke vi havas vian telefonon, kiu generos ĵetonon por enigi. enable: Ŝalti instructions_html: "Skanu ĉi tiun QR-kodon per Google Authenticator aŭ per simila aplikaĵo en via poŝtelefono. De tiam, la aplikaĵo kreos nombrojn, kiujn vi devos enmeti." manual_instructions: 'Se vi ne povas skani la QR-kodon kaj bezonas enmeti ĝin mane, jen la tut-teksta sekreto:' diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 4b59662601..3f5ef4ede0 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -116,6 +116,8 @@ es-AR: redownloaded_msg: Se refrescó exitosamente el perfil de %{username} desde el origen reject: Rechazar rejected_msg: Se rechazó exitosamente la solicitud de registro de %{username} + remote_suspension_irreversible: Los datos de esta cuenta fueron eliminados irreversiblemente. + remote_suspension_reversible_hint_html: La cuenta fue suspendida en su servidor y los datos se eliminarán completamente el %{date}. Hasta entonces, el servidor remoto puede restaurar esta cuenta sin ningún efecto perjudicial. Si querés eliminar todos los datos de la cuenta inmediatamente, podés hacerlo abajo. remove_avatar: Quitar avatar remove_header: Quitar cabecera removed_avatar_msg: Se quitó exitosamente el avatar de %{username} @@ -555,13 +557,12 @@ es-AR: pending: Esperando aprobación del relé save_and_enable: Guardar y habilitar setup: Configurar una conexión de relé - signatures_not_enabled: Los relés no funcionarán correctamente mientras el modo seguro o el de federación limitada estén habilitados + signatures_not_enabled: Puede que los relés no funcionen correctamente mientras el modo seguro o el de federación limitada estén habilitados status: Estado title: Relés report_notes: created_msg: "¡La nota de denuncia fue creada exitosamente!" destroyed_msg: "¡La nota de denuncia fue eliminada exitosamente!" - today_at: Hoy a las %{time} reports: account: notes: @@ -704,6 +705,9 @@ es-AR: content_retention: preamble: Controlá cómo el contenido generado por el usuario se almacena en Mastodon. title: Retención de contenido + default_noindex: + desc_html: Afecta a todos los usuarios que no cambiaron esta configuración por sí mismos + title: Quitar predeterminadamente a los usuarios de la indexación de los motores de búsqueda discovery: follow_recommendations: Recom. de cuentas a seguir preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controlá cómo funcionan varias opciones de descubrimiento en tu servidor. @@ -971,6 +975,9 @@ es-AR: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, podés cambiarla acá y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: Se envió el correo electrónico de confirmación a %{email}. Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta. title: Configuración + sign_in: + preamble_html: Iniciá sesión con tus credenciales de %{domain}. Si tu cuenta está alojada en un servidor diferente, no vas a poder iniciar sesión acá. + title: Iniciar sesión en %{domain} sign_up: preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra cuenta en la red, independientemente de en qué servidor esté alojada su cuenta. title: Dejá que te preparemos en %{domain}. diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 65074e0f04..ae2d59336c 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -441,7 +441,7 @@ es-MX: title: Importar bloqueos de dominio new: title: Importar bloqueos de dominio - no_file: Ningún archivo seleccionado + no_file: No hay archivo seleccionado follow_recommendations: description_html: "Las recomendaciones de cuentas ayudan a los nuevos usuarios a encontrar rápidamente contenido interesante. Cuando un usuario no ha interactuado con otros lo suficiente como para suscitar recomendaciones personalizadas de cuentas a las que seguir, en su lugar se le recomiendan estas cuentas. Se recalculan diariamente a partir de una mezcla de cuentas con el mayor número de interacciones recientes y con el mayor número de seguidores locales con un idioma determinado." language: Para el idioma @@ -561,7 +561,6 @@ es-MX: report_notes: created_msg: "¡El registro de la denuncia se ha creado correctamente!" destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!" - today_at: Hoy a las %{time} reports: account: notes: @@ -704,6 +703,9 @@ es-MX: content_retention: preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. 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 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. diff --git a/config/locales/es.yml b/config/locales/es.yml index 3a350fba37..86fa5dcb73 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -561,7 +561,6 @@ es: report_notes: created_msg: "¡El registro de la denuncia se ha creado correctamente!" destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!" - today_at: Hoy a las %{time} reports: account: notes: @@ -704,6 +703,9 @@ es: content_retention: preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. 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 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. diff --git a/config/locales/et.yml b/config/locales/et.yml index 42432f020a..4f1c34be6e 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -116,6 +116,8 @@ et: redownloaded_msg: "%{username} kasutajakonto algallikast värskendatud" reject: Hülga rejected_msg: "%{username} liitumisavaldus tagasi lükatud" + remote_suspension_irreversible: Selle konto andmed on pöördumatult kustutatud. + remote_suspension_reversible_hint_html: Konto on lukustatud ja andmed kustutatakse jäädavalt %{date}. Seni võib teine server konto probleemideta taastada. Kui soovid andmied kohe jäädavalt eemaldada, võid seda teha allpool. remove_avatar: Kustuta profiilipilt remove_header: Kustuta päis removed_avatar_msg: "%{username} tunnuspilt eemaldatud" @@ -561,7 +563,6 @@ et: report_notes: created_msg: Teade edukalt koostatud! destroyed_msg: Teade edukalt kustutatud! - today_at: Täna kell %{time} reports: account: notes: @@ -704,6 +705,9 @@ et: content_retention: preamble: Juhi kuidas kasutajate loodud sisu Mastodon'is talletatakse. title: Sisu talletamine + default_noindex: + desc_html: Mõjub kasutajatele, kes pole seda sätet ise muutnud + title: Otsimootorite indeksitesse kasutajaid vaikimisi ei lisata discovery: follow_recommendations: Jälgi soovitusi preamble: Huvitava sisu esiletoomine on oluline uute kasutajate kaasamisel, kes ei pruugi Mastodonist kedagi tunda. Kontrollige, kuidas erinevad avastamisfunktsioonid teie serveris töötavad. @@ -901,12 +905,12 @@ et: title: Trendikad sildid subject: Uued %{instance} trendid ülevaatuseks aliases: - add_new: Loo teine nimi - created_msg: Teine nimi on edukalt loodud. Te saate nüüd alustada kolimist vanalt kontolt. + 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. - hint_html: Kui Te soovite kolida teiselt kontolt praegusele kontole, saate Te siin luua teise nime, mis on kohustuslik, enne kui saate kolida jälgijaid vanalt kontolt praegusele. See tegevus on iseenesest kahjutu ja taastatav. Konto ületoomine alustatakse vanalt kontolt. - remove: Eemalda teine nimi + 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: advanced_web_interface: Kohandatud veebiliides advanced_web_interface_hint: 'Kui soovite kasutada terve ekraani laiust, lubab kohandatud veebiliides seadistada mitut erinevat veergu, et näha nii palju informatsiooni samal ajal, kui võimalik: Kodu, teavitused, föderatsiooni ajajoon ning mis iganes arv nimekirju ja silte.' @@ -937,7 +941,7 @@ et: apply_for_account: Konto taotluse esitamine change_password: Salasõna delete_account: Konto kustutamine - delete_account_html: Kui soovid oma konto kustutada, siis jätka siit. Pead selle eraldi kinnitama. + delete_account_html: Kui soovid oma konto kustutada, siis jätka siit. Pead kustutamise eraldi kinnitama. description: prefix_invited_by_user: "@%{name} kutsub Teid liituma selle Mastodoni serveriga!" prefix_sign_up: Loo Mastodoni konto juba täna! @@ -952,9 +956,9 @@ et: 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 siit. + migrate_account_html: Kui soovid selle konto siit ära kolida, saad seda teha siin. or_log_in_with: Või logi sisse koos - privacy_policy_agreement_html: Olen lugenud ja nõustun privaatsuspoliitikaga + privacy_policy_agreement_html: Olen tutvunud isikuandmete kaitse põhimõtetega ja nõustun nendega providers: cas: CAS saml: SAML @@ -979,7 +983,7 @@ et: confirming: Ootan e-posti kinnitust. functional: Konto on täies mahus kasutatav. pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri. - redirecting_to: Teie konto ei ole aktiivne, kuna hetkel suunatakse ümber kasutajale %{acct}. + 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 @@ -1029,14 +1033,14 @@ et: proceed: Kustuta konto success_msg: Konto kustutamine õnnestus warning: - before: 'Enne jätkamist palun lugege neid märkmeid hoolikalt:' - caches: Sisu, mis on salvestatud teiste serverite poolt, võib jääda alles - data_removal: Teie postitused ning muud andmed kustutatakse jäädavalt + 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 - irreversible: Te ei saa taastada ega taasaktiveerida oma kontot - more_details_html: Rohkemate detailide jaoks palun lugege privaatsuspoliitikat. + 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: Teie kasutajanimi muutub uuesti kasutatavaks username_unavailable: Teie kasutajanimi jääb mitte kasutatavaks disputes: @@ -1237,9 +1241,9 @@ et: not_ready: Ei saa lisada faile, mida hetkel töödeldakse. Proovige uuesti mõne hetke pärast! too_many: Ei saa lisada rohkem, kui 4 faili migrations: - acct: uue konto kasutajanimi@domeen + acct: Kolitud aadressile cancel: Tühista ümbersuunamine - cancel_explanation: Ümbersuunamise tühistamine taasaktiveerib Teie praeguse konto, kuid ei too tagasi jälgijaid, mis on sellele kontole üle viidud. + cancel_explanation: Ümbersuunamise tühistamine aktiveerib siinse konto, kuid teisele kontole üle viidud jälgijaid tagasi ei too. cancelled_msg: Ümbersuunamise tühistamine õnnestus. errors: already_moved: on sama konto, kuhu Te olete juba kolinud @@ -1248,25 +1252,25 @@ et: not_found: ei leitud on_cooldown: Te olete hetkel ootel followers_count: Jälgijaid kolimise hetkel - incoming_migrations: Teiselt kontolt siia kolimine - incoming_migrations_html: Kui soovid kolida teise konto siia, pead esmalt määrama kolitava konto nime. + incoming_migrations: Teise konto siia kolimine + incoming_migrations_html: Kui soovid kolida teise konto siia, pead esmalt määrama kolitava konto aadressi. moved_msg: Teie konto on nüüd ümber suunamas kontole %{acct} ning Teie jälgijaid kolitakse üle. - not_redirecting: Teie kontot ei suunata hetkel ümber. - on_cooldown: Te olete hiljuti kolinud oma kontot. See funktsioon on jälle kättesaadav %{count} päeva pärast. - past_migrations: Eelmiseid kolimisi - proceed_with_move: Koli üle jälgijad - redirected_msg: Teie kontot suunatakse nüüd ümber kontole %{acct}. - redirecting_to: Teie konto suunatakse ümber kontole %{acct}. - set_redirect: Määra ümbersuunamine + not_redirecting: See konto pole praegu kuskile ümber suunatud. + on_cooldown: Oled oma kontot hiljuti kolinud. Uuesti saad seda teha %{count} päeva pärast. + past_migrations: Kolimisajalugu + proceed_with_move: Käivita kolimine + redirected_msg: Konto on suunatud ümber aadressile %{acct}. + redirecting_to: Konto on suunatud ümber aadressile %{acct}. + set_redirect: Suuna ümber warning: - backreference_required: Uus konto peab olema esmalt seadistatud tagasi viitama praegusele kontole - before: 'Enne jätkamist palun lugege neid märkmeid hoolikalt:' - cooldown: Pärast kolimist on ooteperiood, mille kestel ei saa Te uuesti kolida - disabled_account: Teie praegune konto ei ole täiesti kasutatav peale seda. Sellest hoolimata on Teil ligipääs andmete ekspordile ja taasaktiveerimisele. - followers: See tegevus kolib kõik jälgijad üle praeguselt kontolt uuele kontole - only_redirect_html: Alternatiivselt saate Te seadistada ainult ümbersuunamise Teie profiilil. - other_data: Muid andmeid ei liigutata automaatselt - redirect: Teie praegune konto eemaldatakse otsingutulemustest ning profiilile lisatakse ümbersuunamise märguanne + 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 konto kasutamine piiratakse. Säilib andmete eksportimise ja konto aktiveerimise 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 + redirect: Konto eemaldatakse avalikust kataloogist ja märgitakse profiilis ümbersuunatuks moderation: title: Modereerimine move_handler: @@ -1434,7 +1438,7 @@ et: settings: account: Konto account_settings: Kontosätted - aliases: Konto teised nimed + aliases: Siia kolitavad kontod appearance: Välimus authorized_apps: Lubatud rakendused back: Tagasi Mastodoni @@ -1445,7 +1449,7 @@ et: featured_tags: Esile toodud sildid import: Impordi import_and_export: Import / eksport - migrate: Konto migreerumine + migrate: Konto kolimine notifications: Teated preferences: Eelistused profile: Profiil diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 02a8390cd8..7558d08ccb 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -548,7 +548,6 @@ eu: report_notes: created_msg: Salaketa oharra ongi sortu da! destroyed_msg: Salaketa oharra ongi ezabatu da! - today_at: Gaur %{time}(e)tan reports: account: notes: diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 04a4d41419..0260e2e631 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -265,6 +265,7 @@ fa: update_custom_emoji_html: "%{name} شکلک %{target} را به‌روز کرد" update_domain_block_html: "%{name} مسدودسازی دامنه را برای %{target} به‌روزرسانی کرد" update_status_html: "%{name} نوشتهٔ %{target} را به‌روز کرد" + deleted_account: حساب حذف شد empty: هیچ گزارشی پیدا نشد. filter_by_action: پالایش بر اساس کنش filter_by_user: پالایش بر اساس کاربر @@ -370,6 +371,7 @@ fa: hint: مسدودسازی دامنه جلوی ایجاد ورودی‌های حساب در پایگاه داده را نمی‌گیرد، بلکه به طور خودکار روش‌های مدیریتی را روی فعالیت‌های فعلی و گذشتهٔ آن حساب‌ها اعمال می‌کند. severity: noop: هیچ + silence: محدود suspend: تعلیق title: مسدودسازی دامین تازه obfuscate: مبهم‌سازی نام دامنهٔ @@ -495,7 +497,6 @@ fa: report_notes: created_msg: یادداشت گزارش با موفقیت ساخته شد! destroyed_msg: یادداشت گزارش با موفقیت حذف شد! - today_at: امروز در %{time} reports: account: notes: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index ef4f21671a..e08502ddbe 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -116,6 +116,8 @@ fi: redownloaded_msg: Käyttäjän %{username} profiilin päivittäminen alkuperästä onnistui reject: Hylkää rejected_msg: Käyttäjän %{username} rekisteröitymishakemus hylättiin + remote_suspension_irreversible: Tilin tiedot on poistettu pysyvästi. + remote_suspension_reversible_hint_html: Tili on jäädytetty heidän palvelimellaan ja sen tiedot poistetaan pysyvästi %{date}. Ennen sitä tili etäpalvelimen ylläpito voi palauttaa tilin ilman haittavaikutuksia. Jos haluat poistaa kaikki tilin tiedot välittömästi, voit tehdä sen alta. remove_avatar: Poista profiilikuva remove_header: Poista otsakekuva removed_avatar_msg: Käyttäjän %{username} avatar-kuva poistettu onnistuneesti @@ -543,25 +545,24 @@ fi: relationships: title: "%{acct}n suhteet" relays: - add_new: Lisää uusi rele + add_new: Lisää uusi välittäjä delete: Poista - description_html: "federation relay on välittäjä palvelin, joka vaihtaa suuria määriä julkisia viestejä palvelimien välillä, jotka tilaavat ja julkaisevat sitä. Tämä auttaa pieniä ja keskisuuria palvelimia löytämään monipuolista sisältöä, joka muuten vaatisi käyttäjiä seuraamaan manuaalisesti muita ihmisiä eri palvelimilla." + description_html: "federaatiovälittäjä on välityspalvelin, joka siirtää siihen liittyneiden palvelimien välillä suuria julksia viestimääriä. Tämä voi auttaa pieniä ja keskikokoisia palvelimia löytämään fediversen sisältöä, joka muutoin vaatisi paikallisia käyttäjiä seuraamaan etäpalvelimien käyttäjiä manuaalisesti." disable: Poista käytöstä - disabled: Poistettu käytöstä + disabled: Ei käytössä enable: Ota käyttöön - enable_hint: Kun käytössä, palvelimesi tilaa kaikki julkiset viestit tästä releestä ja alkaa lähettää tämän palvelimen julkisia viestejä siihen. + enable_hint: Kun tämä on otettu käyttöön, palvelimesi liittyy välittäjään ja vastaanottaa jatkossa kaikki sen jakelemat julkiset julkaisut sekä välittää omat julkiset julkaisunsa sille. enabled: Käytössä - inbox_url: Synkronoi URL - pending: Odotetaan releen hyväksyntää + inbox_url: Välittäjän URL + pending: Odotetaan välittäjän hyväksyntää save_and_enable: Tallenna ja ota käyttöön - setup: Määritä releyhteys + setup: Määritä yhteys välittäjään signatures_not_enabled: Releet eivät toimi oikein, kun turvallinen tila tai rajoitettu federaatio on käytössä status: Tila - title: Releet + title: Välittäjät report_notes: created_msg: Muistiinpano onnistuneesti lisätty raporttiin! destroyed_msg: Muistiinpano onnistuneesti poistettu raportista! - today_at: Tänään klo %{time} reports: account: notes: @@ -704,6 +705,9 @@ fi: content_retention: preamble: Määritä, miten käyttäjän luoma sisältö tallennetaan Mastodoniin. title: Sisällön säilyttäminen + default_noindex: + desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse + title: Jätä käyttäjät oletusarvoisesti hakukoneindeksoinnin ulkopuolelle discovery: follow_recommendations: Noudata suosituksia preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi. @@ -971,6 +975,9 @@ fi: email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin. email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa. title: Asetukset + sign_in: + preamble_html: Kirjaudu %{domain}-tunnuksillasi. Jos tilisi sijaitsee eri palvelimella, et voi kirjautua täällä. + title: Kirjaudu palveluun %{domain} sign_up: preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on. title: Otetaan sinulle käyttöön %{domain}. @@ -1629,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 hashtagien avulla. 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 hashtageilla. Kannattaa myös esittäytyä! Käytä hashtagia #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 @@ -1641,7 +1648,7 @@ fi: seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut henkilönä:' verification: - explanation_html: 'Voit vahvistaa itsesi profiilisi metatietojen linkkien omistajaksi.. Tätä varten linkitetyn verkkosivuston on sisällettävä linkki takaisin Mastodon -profiiliisi. Palauttavalla linkillä täytyy olla rel="me" tuntomerkki. Linkin tekstisisällöllä ei ole väliä. Tässä on esimerkki:' + explanation_html: 'Voit vahvistaa olevasi profiilisi metatiedoissa olevien linkkien omistaja.. Tätä varten linkitetyn verkkosivuston täytyy sisältää linkki takaisin Mastodon-profiiliisi. Palauttavalla linkillä täytyy olla rel="me"-arvo. Linkin tekstisisällöllä ei ole merkitystä. Tässä on esimerkki:' verification: Vahvistus webauthn_credentials: add: Lisää uusi suojausavain diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 7d98d65ccf..5145be40c5 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -116,6 +116,8 @@ fo: redownloaded_msg: Tín vangamynd %{username}'s er nú endurnýggja reject: Nokta rejected_msg: Tað eydnaðist, at avvísa umsóknina frá %{username}'s um innskriving + remote_suspension_irreversible: Dáturnar hjá hesi kontuni eru strikaðar med alla. + remote_suspension_reversible_hint_html: Kontan er sett úr gildi á teirra ambætara og dáturnar verða endaliga strikaðar tann %{date}. Inntil tá kann fjarambætarin endurskapa kontuna uttan fylgjur. Ynskir tú at strika allar dátur hjá kontuni beinan vegin, so kanst tú gera tað niðanfyri. remove_avatar: Sletta avatar remove_header: Sletta headera removed_avatar_msg: Slettaði avatar myndina hjá %{username} @@ -561,7 +563,6 @@ fo: report_notes: created_msg: Viðmerking til melding stovnað! destroyed_msg: Viðmerking til melding strikað! - today_at: Í dag kl. %{time} reports: account: notes: @@ -704,6 +705,9 @@ fo: content_retention: preamble: Stýr hvussu brúkara-skapt tilfar er goymt í Mastodon. title: Varðveitsla av tilfari + default_noindex: + desc_html: Hevur ávirkan á allar brúkarar, sum ikki hava broytt hesa stillingina sjálvi + title: Tekur brúkarar úr leitimaskinu-indeksering, um ikki annað er valt discovery: follow_recommendations: Tilmæli um at fylgja preamble: At fáa áhugavert innihald í ljósmála er avgerandi fyri at nýggir brúkarar, sum kanska ongan kenna á Mastodon, kunnu koma væl umborð. Stýr, hvussu hentleikarnir at uppdaga ymiskt rigga á ambætaranum hjá tær. @@ -971,6 +975,9 @@ fo: email_below_hint_html: Er telduposturin niðanfyri skeivur, so kanst tú broyta hann her og móttaka eitt nýtt váttanarteldubræv. email_settings_hint_html: Váttanarteldubrævið varð sent til %{email}. Um telduposturin er skeivur, so kanst tú broyta hann í kontustillingunum. title: Uppseting + sign_in: + preamble_html: Rita inn við tínum %{domain} heimildum. Er konta tín á einum øðrum ambætara, so er ikki gjørligt hjá tær at rita inn her. + title: Rita inn á %{domain} sign_up: preamble: Við eini kontu á hesum Mastodon ambætaranum ber til hjá tær at fylgja ein og hvønn annan persón á netverkinum, óansæð hvar teirra konta er hýst. title: Latum okkum fáa teg settan upp á %{domain}. diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 91b4962122..f3a6e0b4c0 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -116,6 +116,8 @@ fr-QC: redownloaded_msg: Le profil de %{username} a été actualisé avec succès depuis l’origine reject: Rejeter rejected_msg: La demande d’inscription de %{username} a été rejetée avec succès + remote_suspension_irreversible: Les données de ce compte ont été supprimées définitivement. + remote_suspension_reversible_hint_html: Ce compte a été suspendu par son serveur d'accueil, et les données rattachées seront supprimées le %{date}. Jusqu'à cette date, il peut être restauré sans aucune perte par le serveur distant. Si vous souhaitez supprimer immédiatement toutes les données de ce compte, vous pouvez le faire ci-dessous. remove_avatar: Supprimer l’avatar remove_header: Supprimer l’entête removed_avatar_msg: L’avatar de %{username} a été supprimé avec succès @@ -373,6 +375,8 @@ fr-QC: add_new: Mettre le domaine sur liste sur blanche created_msg: Ce domaine a été ajouté à la liste blanche avec succès destroyed_msg: Le domaine a été supprimé de la liste blanche + export: Exporter + import: Importer undo: Supprimer de la liste blanche domain_blocks: add_new: Bloquer un nouveau domaine @@ -382,13 +386,18 @@ fr-QC: edit: Modifier le blocage de domaine existing_domain_block: Vous avez déjà imposé des limites plus strictes à %{name}. existing_domain_block_html: Vous avez déjà imposé des limites plus strictes à %{name}, vous devez d’abord le/la débloquer. + export: Exporter + import: Importer new: create: Créer le blocage hint: Le blocage de domaine n’empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. severity: + desc_html: "Limiter rendra les messages des comptes de ce domaine invisibles à ceux qui ne les suivent pas. Suspendre supprimera tout le contenu, les médias, et données de profile pour les comptes de ce domaine de votre serveur. Utilisez Aucun si vous voulez simplement rejeter les fichiers multimédia." noop: Aucune + silence: Limiter suspend: Suspendre title: Nouveau blocage de domaine + no_domain_block_selected: Aucun blocage de domaine n'a été modifié car aucun n'a été sélectionné not_permitted: Vous n’êtes pas autorisé à effectuer cette action obfuscate: Obfusquer le nom de domaine obfuscate_hint: Obfusquer partiellement le nom de domaine dans la liste si la publication de la liste des limitations de domaine est activée @@ -421,6 +430,20 @@ fr-QC: resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure. resolved_through_html: Résolu par %{domain} title: Blocage de domaines de courriel + export_domain_allows: + new: + title: Autoriser l'importation de domaine + no_file: Aucun fichier sélectionné + export_domain_blocks: + import: + description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste. + existing_relationships_warning: Relations de suivi existantes + private_comment_description_html: 'Pour vous aider à suivre d''où viennent les blocs importés, des blocs importés seront créés avec le commentaire privé suivant : %{comment}' + private_comment_template: Importé depuis %{source} le %{date} + title: Importer des blocs de domaine + new: + title: Importer des blocs de domaine + no_file: Aucun fichier sélectionné follow_recommendations: description_html: "Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée." language: Pour la langue @@ -540,7 +563,6 @@ fr-QC: report_notes: created_msg: Note de signalement créée avec succès ! destroyed_msg: Note de signalement effacée avec succès ! - today_at: Aujourd'hui à %{time} reports: account: notes: @@ -683,6 +705,9 @@ fr-QC: content_retention: preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon. title: Rétention du contenu + default_noindex: + desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes + title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche discovery: follow_recommendations: Suivre les recommandations preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. @@ -913,6 +938,7 @@ fr-QC: warning: Soyez prudent·e avec ces données. Ne les partagez pas ! your_token: Votre jeton d’accès auth: + apply_for_account: Demander un compte change_password: Mot de passe delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. @@ -1157,6 +1183,7 @@ fr-QC: invalid_markup: 'contient un balisage HTML invalide: %{error}' imports: errors: + invalid_csv_file: 'Fichier CSV non valide. Erreur : %{error}' over_rows_processing_limit: contient plus de %{count} lignes modes: merge: Fusionner diff --git a/config/locales/fr.yml b/config/locales/fr.yml index b24603db98..aaa4cb6335 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -116,6 +116,8 @@ fr: redownloaded_msg: Le profil de %{username} a été actualisé avec succès depuis l’origine reject: Rejeter rejected_msg: La demande d’inscription de %{username} a été rejetée avec succès + remote_suspension_irreversible: Les données de ce compte ont été supprimées définitivement. + remote_suspension_reversible_hint_html: Ce compte a été suspendu par son serveur d'accueil, et les données rattachées seront supprimées le %{date}. Jusqu'à cette date, il peut être restauré sans aucune perte par le serveur distant. Si vous souhaitez supprimer immédiatement toutes les données de ce compte, vous pouvez le faire ci-dessous. remove_avatar: Supprimer l’avatar remove_header: Supprimer l’entête removed_avatar_msg: L’avatar de %{username} a été supprimé avec succès @@ -561,7 +563,6 @@ fr: report_notes: created_msg: Note de signalement créée avec succès ! destroyed_msg: Note de signalement effacée avec succès ! - today_at: Aujourd'hui à %{time} reports: account: notes: @@ -704,6 +705,9 @@ fr: content_retention: preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon. title: Rétention du contenu + default_noindex: + desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes + title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche discovery: follow_recommendations: Suivre les recommandations preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 9d90643881..d178d21279 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1,17 +1,81 @@ --- fy: + about: + about_mastodon_html: Mastodon is in sosjaal netwurk dat gebrûkt makket fan iepen webprotokollen en frije software. It is krekt lykas e-mail desintralisearre! + contact_missing: Net ynsteld + contact_unavailable: Net fan tapassing + hosted_on: Mastodon op %{domain} + title: Oer accounts: - last_active: letst warber + follow: Folgje + followers: + one: Folger + other: Folgers + following: Folgjend + instance_actor_flash: Dit account is in ‘virtual actor’ wêrmei’t de server himself fertsjinwurdiget en is dus gjin yndividuele brûker. It wurdt foar federaasjedoeleinen brûkt en moat net útsteld wurde. + last_active: lêst warber + link_verified_on: Eigendom fan dizze keppeling is kontrolearre op %{date} + nothing_here: Hjir is neat! + pin_errors: + following: Jo moatte dizze account wol al folgje, eardat jo it oanrekommandearje kinne + posts: + one: Toot + other: Berjochten + posts_tab_heading: Berjochten admin: + account_actions: + action: Aksje útfiere + title: Moderaasjemaatregelen tsjin %{acct} nimme + account_moderation_notes: + create: Lit in opmerking efter + created_msg: Oanmeitsjen fan opmerking foar moderatoaren slagge! + destroyed_msg: Fuortsmiten fan opmerking foar moderatoaren slagge! accounts: + add_email_domain_block: E-maildomein blokkearje + approve: Goedkarre + approved_msg: It goedkarren fan de account fan %{username} is slagge + are_you_sure: Binne jo wis? + avatar: Profylfoto + by_domain: Domein + change_email: + changed_msg: E-mailadres mei sukses wizige! + current_email: Aktuele e-mailadres + label: E-mailadres wizigje + new_email: Nij e-mailadres + submit: E-mailadres wizigje + title: E-mailadres foar %{username} wizigje + change_role: + changed_msg: Rol mei sukses wizige! + label: Rol wizigje + no_role: Gjin rol + title: Rol fan %{username} wizigje + confirm: Befêstigje + confirmed: Befêstige + confirming: Befêstiging + custom: Oanpast delete: Gegevens fuortsmite deleted: Fuortsmiten + demote: Degradearje + destroyed_msg: It fuortsmiten fan de gegevens fan %{username} stiet no yn de wachtrige + disable: Befrieze + disable_sign_in_token_auth: Ferifikaasje mei in tagongskoade fia e-mailberjocht útskeakelje + disable_two_factor_authentication: 2FA útskeakelje + disabled: Beferzen + display_name: Werjeftenamme domain: Domein edit: Bewurkje + email: E-mailadres + email_status: E-mailsteat + enable: Untteie + enable_sign_in_token_auth: Ferifikaasje mei in tagongskoade fia e-mailberjocht ynskeakelje + enabled: Ynskeakele + enabled_msg: It ûntteie fan de account fan %{username} is slagge followers: Folgers follows: Folgjend header: Omslachfoto inbox_url: Ynboks-URL + invite_request_text: Redenen om te registrearjen + invited_by: Utnûge troch ip: IP joined: Registrearre location: @@ -21,6 +85,9 @@ fy: title: Lokaasje login_status: Oanmeldsteat media_attachments: Mediabylagen + memorialize: Nei in Yn memoriam wizigje + memorialized: Yn memoriam + memorialized_msg: It nei in Yn memoriam wizigje fan de account fan %{username} is slagge moderation: active: Aktyf all: Alle @@ -28,7 +95,16 @@ fy: silenced: Beheind suspended: Utsteld title: Moderaasje + moderation_notes: Opmerkingen foar moderatoaren + most_recent_activity: Lêst warber + most_recent_ip: Lêst brûkt IP-adres + no_account_selected: Der binne gjin accounts wizige, omdat der gjin ien selektearre waard + no_limits_imposed: Gjin limiten ynsteld + no_role_assigned: Gjin rol tawezen + not_subscribed: Net abonnearre + pending: Moat noch beoardiele wurde perform_full_suspension: Utstelle + previous_strikes: Eardere skeiningen promote: Promovearje protocol: Protokol public: Iepenbier @@ -148,6 +224,6 @@ fy: statuses: content_warning: 'Ynhâldswarskôging: %{warning}' pin_errors: - direct: Berjochten dy allinnich sichtber binne foar fermelde brûkers kinne net fêstset wurde + direct: Berjochten dy’t allinnich sichtber binne foar fermelde brûkers kinne net fêstset wurde webauthn_credentials: delete: Fuortsmite diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 90a1323a3d..c09238535d 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -180,6 +180,9 @@ ga: settings: appearance: title: Cuma + default_noindex: + desc_html: I bhfeidhm do ghach úsáideoir nár athraigh an socrú seo iad féin + title: Diúltaigh d'innéacsú inneall cuardaigh mar réamhshocrú d'úsáideoirí site_uploads: delete: Scrios comhad uaslódáilte statuses: diff --git a/config/locales/gd.yml b/config/locales/gd.yml index be1dad3992..22f87aa495 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -580,7 +580,6 @@ gd: report_notes: created_msg: Chaidh nòta a chruthachadh dhan ghearan! destroyed_msg: Chaidh nòta a’ ghearain a sguabadh às! - today_at: An-diugh aig %{time} reports: account: notes: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index a468d47d83..e9c71cceb7 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -561,7 +561,6 @@ gl: report_notes: created_msg: A nota da denuncia creouse de xeito correcto! destroyed_msg: A nota da denuncia borrouse de xeito correcto! - today_at: Hoxe ás %{time} reports: account: notes: @@ -704,6 +703,9 @@ gl: content_retention: preamble: Controla como se gardan en Mastodon os contidos creados polas usuarias. title: Retención do contido + default_noindex: + desc_html: Aféctalle a tódalas usuarias que non cambiaron este axuste elas mesmas + title: Por omisión exclúe as usuarias do indexado por servidores de busca discovery: follow_recommendations: Recomendacións de seguimento preamble: Destacar contido interesante é importante para axudar a que as novas usuarias se sintan cómodas se non coñecen a ninguén en Mastodon. Xestiona os diferentes xeitos de promocionar contidos. diff --git a/config/locales/he.yml b/config/locales/he.yml index 25464c3355..39c3652a0b 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -122,6 +122,8 @@ he: redownloaded_msg: הפרופיל של %{username} רוענן בהצלחה מהמקור reject: דחויים rejected_msg: בקשת ההרשמה של %{username} נדחתה בהצלחה + remote_suspension_irreversible: נתוני חשבון זה נמחקו באופן בלתי הפיך. + remote_suspension_reversible_hint_html: חשבון זה הושעה בשרת שלו ונתוניו יוסרו במלואם בתאריך %{date}. עד אז השרת המרוחק יכול לשחזר את החשבון ללא תופעות לוואי שליליות. אם ברצונך להסיר את כל נתוני החשבון באופן מיידי, ניתן לעשות זאת להלן. remove_avatar: הסרת תמונת פרופיל remove_header: הסרת כותרת removed_avatar_msg: תמונת הפרופיל של %{username} הוסרה בהצלחה @@ -583,7 +585,6 @@ he: report_notes: created_msg: הערה על דו"ח נוצרה בהצלחה! destroyed_msg: הערה על דו"ח נמחקה בהצלחה! - today_at: היום, ב%{time} reports: account: notes: @@ -732,6 +733,9 @@ he: content_retention: preamble: שליטה על דרך אחסון תוכן המשתמשים במסטודון. title: תקופת השמירה של תכנים + default_noindex: + desc_html: משפיע על כל המשתמשים/ות שלא שינו את ההגדרה הזו בעצמם + title: הסתרת משתמשיםות ממנוע החיפוש כברירת המחדל discovery: follow_recommendations: המלצות מעקב preamble: הצפה של תוכן מעניין בקבלת פני משתמשות חדשות שאולי אינן מכירות עדיין א.נשים במסטודון. ניתן לשלוט איך אפשרויות גילוי שונות עובדות על השרת שלך. @@ -1007,6 +1011,9 @@ he: email_below_hint_html: אם כתובת הדוא"ל להלן לא נכונה, ניתן לשנותה כאן ולקבל דוא"ל אישור חדש. email_settings_hint_html: דוא"ל האישור נשלח ל-%{email}. אם כתובת הדוא"ל הזו לא נכונה, ניתן לשנותה בהגדרות החשבון. title: הגדרות + sign_in: + preamble_html: הכנס.י עם שם וסיסמא מאתר %{domain}. אם חשבונך מתארח בשרת אחר, לא ניתן להתחבר איתו פה. + title: התחבר אל %{domain} sign_up: preamble: כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה. title: הבה ניצור לך חשבון בשרת %{domain}. diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 8e1eb7f152..3cec6e9796 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -116,6 +116,8 @@ hu: redownloaded_msg: "%{username} profilját sikeresen frissítettük az eredetiből" reject: Elutasítás rejected_msg: A %{username} fiók regisztrációs kérelmét sikeresen elutasítottuk + remote_suspension_irreversible: A fiók adatait véglegesen törölték. + remote_suspension_reversible_hint_html: 'A fiókot felfüggesztették a kiszolgálóján, az adatai ekkor lesznek teljesen eltávolítva: %{date}. Eddig az időpontig a távoli kiszolgáló probléma nélkül helyre tudja állítani a fiókot. Ha azonnal törölni szeretnéd a fiók adatait, alább megteheted.' remove_avatar: Profilkép eltávolítása remove_header: Fejléc törlése removed_avatar_msg: A %{username} fiók avatárját sikeresen töröltük @@ -555,13 +557,12 @@ hu: pending: Várakozás a relé jóváhagyására save_and_enable: Mentés és engedélyezés setup: Relé kapcsolat felállítása - signatures_not_enabled: A relék nem fognak jól működni, amíg a biztonságos mód vagy az engedélyező listás mód aktív + signatures_not_enabled: A relék nem fognak megfelelően működni, amíg a biztonságos mód vagy a korlátozott föderációs mód engedélyezett status: Állapot title: Relék report_notes: created_msg: Bejelentési feljegyzés létrehozva! destroyed_msg: Bejelentési feljegyzés törölve! - today_at: Ma %{time}-kor reports: account: notes: @@ -704,6 +705,9 @@ hu: content_retention: preamble: Felhasználók által generált tartalom Mastodonon való tárolásának szabályozása. title: Tartalom megtartása + default_noindex: + desc_html: Azokat a felhasználókat érinti, akik nem módosították ezt a beállítást + title: Alapértelmezetten ne indexeljék a keresők a felhasználókat discovery: follow_recommendations: Ajánlottak követése preamble: Az érdekes tartalmak felszínre hozása fontos szerepet játszik az új felhasználók bevonásában, akik esetleg nem ismerik a Mastodont. Szabályozd, hogy a különböző felfedezési funkciók hogyan működjenek a kiszolgálón. @@ -971,6 +975,9 @@ hu: email_below_hint_html: Ha az alábbi e-mail cím nem megfelelő, itt megváltoztathatod és kaphatsz egy új igazoló e-mailt. email_settings_hint_html: A visszaigazoló e-mailt elküldtük ide %{email}. Ha az e-mail cím nem megfelelő, megváltoztathatod a fiókod beállításainál. title: Beállítás + sign_in: + preamble_html: Jelentkezz be a %{domain} fiókoddal. Ha másik kiszolgálón található a fiókod, akkor itt nem fogsz tudni belépni. + title: Jelentkezz be a %{domain}-ra sign_up: preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található. title: Állítsuk be a fiókod a %{domain} kiszolgálón. diff --git a/config/locales/hy.yml b/config/locales/hy.yml index ca2598b14e..5cd6d53a34 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -335,8 +335,6 @@ hy: save_and_enable: Պահպանել եւ միացնել status: Կարգավիճակ title: Վերահեռարձակիչներ - report_notes: - today_at: Այսօր ժամը %{time}-ին reports: account: notes: diff --git a/config/locales/id.yml b/config/locales/id.yml index a6965cdbd2..db6379c7f0 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -550,7 +550,6 @@ id: report_notes: created_msg: Catatan laporan berhasil dibuat! destroyed_msg: Catatan laporan berhasil dihapus! - today_at: Hari ini pada %{time} reports: account: notes: @@ -690,6 +689,9 @@ id: content_retention: preamble: Atur bagaimana konten yang dibuat oleh pengguna disimpan di Mastodon. title: Retensi konten + default_noindex: + desc_html: Memengaruhi semua pengguna yang belum mengubah pengaturan ini sendiri + title: Keluarkan pengguna dari pengindeksan mesin telusur secara bawaan discovery: follow_recommendations: Ikuti rekomendasi preamble: Menampilkan konten menarik penting dalam memandu pengguna baru yang mungkin tidak tahu siapa pun di Mastodon. Atur bagaimana berbagai fitur penemuan bekerja di server Anda. diff --git a/config/locales/io.yml b/config/locales/io.yml index 7dc54986ed..b05555e1be 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -536,7 +536,6 @@ io: report_notes: created_msg: Raportnoto sucesoze kreesis! destroyed_msg: Raportnoto sucesoze efacesis! - today_at: Hodie en %{time} reports: account: notes: diff --git a/config/locales/is.yml b/config/locales/is.yml index cd0a5a2b15..5df9c2c724 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -561,7 +561,6 @@ is: report_notes: created_msg: Tókst að útbúa minnispunkt skýrslu! destroyed_msg: Tókst að eyða minnispunkti skýrslu! - today_at: Í dag kl. %{time} reports: account: notes: @@ -704,6 +703,9 @@ is: content_retention: preamble: Stýrðu hvernig efni frá notendum sé geymt í Mastodon. title: Geymsla efnis + default_noindex: + desc_html: Hefur áhrif á alla þá notendur sem ekki hafa breytt þessum stillingum sjálfir + title: Sjálfgefið láta notendur afþakka atriðaskráningu í leitarvélum discovery: follow_recommendations: Meðmæli um að fylgjast með preamble: Að láta áhugavert efni koma skýrt fram er sérstaklega mikilvægt til að nálgast nýja notendur sem ekki þekkja neinn sem er á Mastodon. Stýrðu því hvernig hinir ýmsu eiginleikar við uppgötvun efnis virka á netþjóninum þínum. diff --git a/config/locales/it.yml b/config/locales/it.yml index b0e911f7f4..59d9f910a8 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -116,6 +116,8 @@ it: redownloaded_msg: Il profilo di %{username} è stato aggiornato correttamente dall'origine reject: Rifiuta rejected_msg: Richiesta d'iscrizione di %{username} rifiutata correttamente + remote_suspension_irreversible: I dati di questo account sono stati cancellati in modo irreversibile. + remote_suspension_reversible_hint_html: L'account è stato sospeso sul loro server e i dati saranno completamente eliminati il %{date}. Fino ad allora, il server remoto può ripristinare questo account senza effetti negativi. Se si desidera eliminare immediatamente tutti i dati dell'account, è possibile farlo qui sotto. remove_avatar: Rimuovi l'avatar remove_header: Rimuovi l'intestazione removed_avatar_msg: Immagine dell'avatar di %{username} rimossa correttamente @@ -561,7 +563,6 @@ it: report_notes: created_msg: Nota rapporto creata! destroyed_msg: Nota rapporto cancellata! - today_at: Oggi alle %{time} reports: account: notes: @@ -704,6 +705,9 @@ it: content_retention: preamble: Controlla come vengono memorizzati i contenuti generati dall'utente in Mastodon. title: Conservazione dei contenuti + default_noindex: + desc_html: Interessa tutti gli utenti che non hanno modificato personalmente questa impostazione + title: Esclude gli utenti dall'indicizzazione dei motori di ricerca per impostazione predefinita discovery: follow_recommendations: Segui le raccomandazioni preamble: La comparsa di contenuti interessanti è determinante per l'arrivo di nuovi utenti che potrebbero non conoscere nessuno su Mastodon. Controlla in che modo varie funzionalità di scoperta funzionano sul tuo server. @@ -973,6 +977,9 @@ it: email_below_hint_html: Se l'indirizzo e-mail sottostante non è corretto, puoi cambiarlo qui e ricevere una nuova e-mail di conferma. email_settings_hint_html: L'email di conferma è stata inviata a %{email}. Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account. title: Configurazione + sign_in: + preamble_html: Accedi con le tue credenziali %{domain}. Se il tuo account si trova su un server diverso, non potrai accedere qui. + title: Accedi a %{domain} sign_up: preamble: Con un account su questo server Mastodon, sarai in grado di seguire qualsiasi altra persona sulla rete, indipendentemente da dove sia ospitato il suo account. title: Lascia che ti configuriamo su %{domain}. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 271257e27d..6c434c90bd 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -383,6 +383,7 @@ ja: create: ブロックを作成 hint: ドメインブロックはデータベース中のアカウント項目の作成を妨げませんが、遡って自動的に指定されたモデレーションをそれらのアカウントに適用します。 severity: + desc_html: "はこのドメインでのアカウントの投稿をフォローしていない人から隠します。停止はこのドメインでのアカウントのコンテンツ、メディア、プロフィールデータをサーバーから削除します。メディアファイルのみを拒否したい場合はなしを選択します。" noop: なし silence: 制限 suspend: 停止 @@ -420,10 +421,14 @@ ja: resolved_through_html: "%{domain}を通して解決しました" title: メールドメインブロック export_domain_allows: + new: + title: ドメイン許可をインポート no_file: ファイルが選択されていません export_domain_blocks: import: + description_html: ドメインブロックのリストをインポートしようとしています。このリストを自分で作成していない場合は、慎重に確認してください。 existing_relationships_warning: 既存のフォロー関係 + private_comment_description_html: インポートされたブロックがどこから来たのかを追跡するため、インポートされたブロックは次のプライベートコメントを追加して作成されます:%{comment} private_comment_template: "%{source} から %{date} にインポートしました" title: ドメインブロックをインポート new: @@ -545,7 +550,6 @@ ja: report_notes: created_msg: 通報メモを書き込みました! destroyed_msg: 通報メモを削除しました! - today_at: 今日 %{time} reports: account: notes: @@ -685,6 +689,9 @@ ja: content_retention: preamble: ユーザーが生成したコンテンツがどのように Mastodon に保存されるかを管理します。 title: コンテンツの保持 + default_noindex: + desc_html: この設定を自分で変更していない全ユーザーに影響します + title: デフォルトで検索エンジンによるインデックスを拒否する discovery: follow_recommendations: おすすめフォロー preamble: Mastodon を知らないユーザーを取り込むには、興味深いコンテンツを浮上させることが重要です。サーバー上で様々なディスカバリー機能がどのように機能するかを制御します。 diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 7dd8bcabde..d2a96d41fd 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -344,8 +344,6 @@ kab: save_and_enable: Sekles rnu rmed-it status: Addad title: Imnegliyen - report_notes: - today_at: Ass-a ɣef %{time} reports: account: notes: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index af8ba5657c..4dc950197b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -113,6 +113,8 @@ ko: redownloaded_msg: 성공적으로 %{username}의 프로필을 원본으로부터 업데이트 하였습니다 reject: 거부 rejected_msg: 성공적으로 %{username}의 가입 신청서를 반려하였습니다 + remote_suspension_irreversible: 이 계정의 데이터는 되돌릴 수 없도록 삭제되었습니다. + remote_suspension_reversible_hint_html: 이 계정은 계정이 속한 서버에서 정지되었습니다, 그리고 %{date}에 데이터가 완전히 삭제될 것입니다. 그 때까지는 해당 서버에서 계정을 그대로 복구할 수 있습니다. 만약 지금 당장 이 계정의 모든 데이터를 삭제하고 싶다면, 아래에서 실행할 수 있습니다. remove_avatar: 아바타 지우기 remove_header: 헤더 삭제 removed_avatar_msg: 성공적으로 %{username}의 아바타 이미지를 삭제하였습니다 @@ -552,7 +554,6 @@ ko: report_notes: created_msg: 신고 기록이 성공적으로 작성되었습니다! destroyed_msg: 신고 기록이 성공적으로 삭제되었습니다! - today_at: 오늘 %{time} reports: account: notes: @@ -692,6 +693,9 @@ ko: content_retention: preamble: 마스토돈에 저장된 사용자 콘텐츠를 어떻게 다룰지 제어합니다. title: 콘텐츠 보존기한 + default_noindex: + desc_html: 이 설정을 개인적으로 바꾸지 않은 모든 사용자들에게 적용 됩니다 + title: 사용자들이 기본적으로 검색엔진에 인덱싱되지 않도록 합니다 discovery: follow_recommendations: 팔로우 추천 preamble: 흥미로운 콘텐츠를 노출하는 것은 마스토돈을 알지 못할 수도 있는 신규 사용자를 유입시키는 데 중요합니다. 이 서버에서 작동하는 다양한 발견하기 기능을 제어합니다. diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 453bc839b1..ed665d621d 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -116,6 +116,8 @@ ku: redownloaded_msg: Bi serkeftî profîla %{username} ji kokê va hat nûve kirin reject: Nepejirîne rejected_msg: Tomarkirina %{username} bi awayekî serkeftî nehate pejirandin + remote_suspension_irreversible: Daneyên vê ajimêrê bi awayekî bê veger hatine jêbirin. + remote_suspension_reversible_hint_html: Ajimêr hate rawestandin li ser rajekarê wan, û daneyên di %{date} de wê hemû werin rakirin. Heya vê demê, ajimêr bêyî bandorên nebaş dikare dîsa vegere. Ku tu dixwazî hemû daneyan ajimêrê niha rakî, tu dikarî li jêrê bikî. remove_avatar: Avatarê rake remove_header: Sernavê rake removed_avatar_msg: Wêneyê %{username} bi awayekî serkeftî hate rakirin @@ -148,7 +150,7 @@ ku: suspend: Hatiye rawestandin suspended: Hatiye rawestandin suspension_irreversible: Daneyên vê ajimêrê bêveger hatine jêbirin. Tu dikarî ajimêra xwe ji rawestandinê vegerinî da ku ew bi kar bînî lê ew ê tu daneya ku berê hebû venegere. - suspension_reversible_hint_html: Ajimêr hat qerisandin, û daneyên di %{date} de hemû were rakirin. Hetta vê demê, ajimêr bê bandorên nebaş dikare dîsa vegere. Heke tu dixwazî hemû daneyan ajimêrê niha rakî, tu dikarî li jêrê bikî. + suspension_reversible_hint_html: Ajimêr hate rawestandin, û daneyên di %{date} de wê hemû werin rakirin. Heya vê demê, ajimêr bêyî bandorên nebaş dikare dîsa vegere. Ku tu dixwazî hemû daneyan ajimêrê niha rakî, tu dikarî li jêrê bikî. title: Ajimêr unblock_email: Astengiyê li ser navnîşana e-nameyê rake unblocked_email_msg: Bi serkeftî astengiya li ser navnîşana e-nameyê %{username} hate rakirin @@ -563,7 +565,6 @@ ku: report_notes: created_msg: Nîşeyê ragihandinê bi awayekî serkeftî pêk hat! destroyed_msg: Nîşeyê ragihandinê bi awayekî serkeftî hate jêbirin! - today_at: Îro di %{time} de reports: account: notes: @@ -706,6 +707,9 @@ ku: content_retention: preamble: Kontrol bike ka naveroka ku ji aliyê bikarhêner ve hatiye çêkirin di Mastodon de çawa tê tomarkirin. title: Parastina naverokê + default_noindex: + desc_html: Bandorê li ser hemû bikarhênerên ku bi xwe ev sazkarî neguhertine + title: Pêlrêçkirna bikarhêneran ji motorê lêgerînê dûr bixe discovery: follow_recommendations: Pêşniyarên şopandinê preamble: Rûbirûbûna naveroka balkêş ji bo bikarhênerên nû yên ku li ser Mastodon kesek nas nakin pir bi bandor e. Kontrol bike ka çend taybetmendiyên vekolînê li ser rajekarê te çawa dixebite. @@ -973,6 +977,9 @@ ku: email_below_hint_html: Heke navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne. email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Heke ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne. title: Damezirandin + sign_in: + preamble_html: Têketinê bike bi riya %{domain} xwe. Ku ajimêrê te li ser rajekareke cuda hatiye pêşkêşkirin, tu yê nikaribû têketinê bikî vir. + title: Têkeve %{domain} sign_up: preamble: Bi ajimêrekê li ser vê rajekarê Mastodon re, tu yê karîbî her keseke din li ser torê bişopînî, her ku ajimêrê wan li ku derê tê pêşkêşkirin. title: Ka em te bi rê bixin li ser %{domain}. @@ -1327,10 +1334,10 @@ ku: trillion: Trîlyon otp_authentication: code_hint: Ji bo pejirandinê têkeve koda te ya ku ji alîyê sepana piştraskirinê va hatiye çê kirin - description_html: Heke tubi piştrastkirina du-faktorî re sepana piştrastkirinê çalak bikî, ji bo têketinê hewceye telefona te li ba te be, ji bona têketinê te ra nîşaneyan çê bike. + description_html: Ku tubi piştrastkirina du-gavî re sepana piştrastkirinê çalak bikî, ji bo têketinê pêdivî heye ku telefona te li ba te be, ji bona têketinê te ra nîşaneyan çê bike. enable: Çalak bike instructions_html: "Vê kodê QR kontrol bike bi riya Google Authenticator an jî sepanekeTOTP li ser têlefona xwe . Ji niha û pê ve, ew sepan dê nîşanên ku divê tu binivîsîne dema têketinê de biafirîne." - manual_instructions: 'Heke tu nikarî bî koda QR venêrî û pêwîst be bi dest bikevî, ev nivîsê hêsan ê veşartî:' + manual_instructions: 'Ku tu nikarî bî koda QR venêrî û pêwîst be bi dest bikevî, ev nivîsê hêsan ê veşartî:' setup: Saz bike wrong_code: Koda têketinê betal e! Dema rajekarê û dema amûrê raste? pagination: @@ -1567,7 +1574,7 @@ ku: enabled: Rastandina du-gavî bi serfirazî hate çalak kirin enabled_success: Rastandina du-gavî bi serfirazî hate çalak kirin generate_recovery_codes: Kodên xilaskirinê çêbike - lost_recovery_codes: Ku telefon winda bibe kodên xilaskirinê derfet dide ku tu bigihijî ajimêra xwe. Heke te kodên xwe yê xilaskirinê winda kiribe tu dikarî ji vê derê dîsa ava bikî. Kodên te yê xilaskirinê ên kevin wê nederbasdar bibe. + lost_recovery_codes: Ku telefon winda bibe kodên xilaskirinê derfet dide ku tu bigihijî ajimêra xwe. Ku te kodên xwe yê xilaskirinê winda kiribe tu dikarî ji vê derê dîsa ava bikî. Kodên te yê xilaskirinê ên kevin wê nederbasdar bibe. methods: Rêbazên du-gavî otp: Sepana Authenticator recovery_codes: Kilîtên rizgarbûna hilanînê @@ -1652,7 +1659,7 @@ ku: success: Tevlîkirina kilîteke ewlehiyê nû bi awayekî serkeftî qediya. delete: Jê bibe delete_confirmation: Ma tu bi rastî dixwazî ku ev kilîta ewlehiyê jê bibe? - description_html: Heker tu piştrastkirina kilîta ewlehiyê çalak bikî, Ji bo têketinê ger tu kilîtekî ewlehiyê bikarbînî. + description_html: Ku tu piştrastkirina kilîta ewlehiyê çalak bikî, Ji bo têketinê divê tu kilîtekî ewlehiyê bi kar bînî. destroy: error: Dema kilîda ewlehiyê hate jêbirin pirsgirêkek peyda bû. Ji kerema xwe re careke din biceribîne. success: Kilîda ewlehiyê bi awayekî serkeftî hatê jêbirin. diff --git a/config/locales/la.yml b/config/locales/la.yml new file mode 100644 index 0000000000..0a4bec9ee9 --- /dev/null +++ b/config/locales/la.yml @@ -0,0 +1,12 @@ +--- +la: + 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. diff --git a/config/locales/lv.yml b/config/locales/lv.yml index da4765f067..f0759dab0c 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -119,6 +119,8 @@ lv: redownloaded_msg: Veiksmīgi atsvaidzināts %{username} profils no izcelsmes reject: Noraidīt rejected_msg: Veiksmīgi noraidīts %{username} reģistrēšanās pieteikums + remote_suspension_irreversible: Šī konta dati ir neatgriezeniski dzēsti. + remote_suspension_reversible_hint_html: Konts ir apturēts viņu serverī, un dati tiks pilnībā noņemti %{date}. Līdz tam attālais serveris var atjaunot šo kontu bez jebkādām negatīvām sekām. Ja vēlaties nekavējoties noņemt visus konta datus, varat to izdarīt tālāk. remove_avatar: Noņemt avatāru remove_header: Noņemt galveni removed_avatar_msg: Veiksmīgi noņemts %{username} avatāra attēls @@ -572,7 +574,6 @@ lv: report_notes: created_msg: Ziņojuma piezīme ir veiksmīgi izveidota! destroyed_msg: Ziņojuma piezīme ir veiksmīgi izdzēsta! - today_at: Šodien %{time} reports: account: notes: @@ -718,6 +719,9 @@ lv: content_retention: preamble: Kontrolē, kā Mastodon tiek glabāts lietotāju ģenerēts saturs. title: Satura saglabāšana + default_noindex: + desc_html: Ietekmē visus lietotājus, kuri paši nav mainījuši šo iestatījumu + title: Pēc noklusējuma lietotāji būs atteikušies no meklētājprogrammu indeksēšanas discovery: follow_recommendations: Sekotšanas rekomendācijas preamble: Interesanta satura parādīšana palīdz piesaistīt jaunus lietotājus, kuri, iespējams, nepazīst nevienu Mastodon. Kontrolē, kā tavā serverī darbojas dažādi atklāšanas līdzekļi. @@ -989,6 +993,9 @@ lv: email_below_hint_html: Ja zemāk norādītā e-pasta adrese ir nepareiza, vari to nomainīt šeit un saņemt jaunu apstiprinājuma e-pastu. email_settings_hint_html: Apstiprinājuma e-pasts tika nosūtīts uz %{email}. Ja šī e-pasta adrese nav pareiza, vari to nomainīt konta iestatījumos. title: Iestatīt + sign_in: + preamble_html: Pierakstieties ar saviem %{domain} akreditācijas datiem. Ja jūsu konts ir mitināts citā serverī, jūs nevarēsit pieteikties šeit. + title: Pierakstīties %{domain} sign_up: preamble: Izmantojot kontu šajā Mastodon serverī, tu varēsi sekot jebkurai citai personai tīklā neatkarīgi no tā, kur tiek mitināts viņas konts. title: Atļauj tevi iestatīt %{domain}. diff --git a/config/locales/ms.yml b/config/locales/ms.yml index e13827a6b4..848580f0ce 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -525,7 +525,6 @@ ms: report_notes: created_msg: Catatan laporan telah berjaya dicipta! destroyed_msg: Catatan laporan telah berjaya dipadam! - today_at: Hari ini pada %{time} reports: account: notes: @@ -685,6 +684,8 @@ ms: original_status: Hantaran asal reblogs: Ulang siar status_changed: Hantaran diubah + title: Hantaran akaun + trending: Sohor kini strikes: actions: delete_statuses: "%{name} memadam hantaran %{target}" @@ -731,6 +732,10 @@ ms: trendable: Boleh muncul di bawah sohor kini trending_rank: 'Sohor kini #%{rank}' usable: Boleh digunakan + title: Sohor kini + trending: Sohor kini + warning_presets: + delete: Padam webhooks: delete: Padam enable: Dayakan @@ -744,6 +749,7 @@ ms: guide_link_text: Sesiapa sahaja boleh memberi sumbangan. sensitive_content: Kandungan sensitif application_mailer: + notification_preferences: Tukar keutamaan e-mel view: 'Lihat:' view_profile: Lihat profil view_status: Lihat hantaran @@ -777,6 +783,9 @@ ms: confirm: Teruskan invalid_password: Kata laluan tidak sah prompt: Sahkan kata laluan untuk teruskan + datetime: + distance_in_words: + half_a_minute: Sebentar tadi deletes: proceed: Padam akaun disputes: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 04a4aa696d..f0236d37aa 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -116,6 +116,8 @@ nl: redownloaded_msg: Het herstellen van het oorspronkelijke profiel van %{username} is geslaagd reject: Afwijzen rejected_msg: Het afwijzen van het registratieverzoek van %{username} is geslaagd + remote_suspension_irreversible: De gegevens van dit account zijn onomkeerbaar verwijderd. + remote_suspension_reversible_hint_html: Dit account is opgeschort op hun server en de gegevens worden volledig verwijderd op %{date}. Tot die tijd kan de externe server dit account herstellen zonder nadelige gevolgen. Wanneer je alle gegevens van dit account onmiddellijk wilt verwijderen, kun je dit hieronder doen. remove_avatar: Profielfoto verwijderen remove_header: Omslagfoto verwijderen removed_avatar_msg: Het verwijderen van de profielfoto van %{username} is geslaagd @@ -555,13 +557,12 @@ nl: pending: Aan het wachten op toestemming van de relayserver save_and_enable: Opslaan en inschakelen setup: Een verbinding met een relayserver maken - signatures_not_enabled: Federatierelays werken niet goed wanneer de veilige modus of de beperkte federatiemodus is ingeschakeld + signatures_not_enabled: Federatierelays werken mogelijk niet goed wanneer de veilige modus of de beperkte federatiemodus is ingeschakeld status: Status title: Relayservers report_notes: created_msg: Opmerking bij rapportage succesvol aangemaakt! destroyed_msg: Opmerking bij rapportage succesvol verwijderd! - today_at: Vandaag om %{time} reports: account: notes: @@ -704,6 +705,9 @@ nl: content_retention: preamble: Toezicht houden op hoe berichten en media van gebruikers op Mastodon worden bewaard. title: Bewaartermijn berichten + default_noindex: + desc_html: Heeft invloed op alle gebruikers die deze instelling niet zelf hebben veranderd + title: Gebruikers standaard niet door zoekmachines laten indexeren discovery: follow_recommendations: Aanbevolen accounts preamble: Het tonen van interessante inhoud is van essentieel belang voor het aan boord halen van nieuwe gebruikers, die mogelijk niemand van Mastodon kennen. Bepaal hoe verschillende functies voor het ontdekken van inhoud en gebruikers op jouw server werken. @@ -971,6 +975,9 @@ nl: email_below_hint_html: Wanneer onderstaand e-mailadres niet klopt, kun je dat hier veranderen. Je ontvangt dan hierna een bevestigingsmail. email_settings_hint_html: De bevestigingsmail is verzonden naar %{email}. Wanneer dat e-mailadres niet klopt, kun je dat veranderen in je accountinstellingen. title: Instellen + sign_in: + preamble_html: Log in met de inloggegevens van %{domain}. Als jouw account zich op een andere server bevindt, kun je hier niet inloggen. + title: Inloggen op %{domain} sign_up: preamble: Je kunt met een Mastodon-account iedereen in het netwerk volgen, ongeacht waar deze persoon een account heeft. title: Laten we je account op %{domain} instellen. @@ -1631,7 +1638,7 @@ nl: final_action: Begin berichten te plaatsen final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen bekeken worden, bijvoorbeeld op de lokale tijdlijn en onder hashtags. Je kunt jezelf voorstellen met het gebruik van de hashtag #introductions.' full_handle: Jouw volledige Mastodonadres - full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jouw berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen. + full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jou berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen. subject: Welkom op Mastodon title: Welkom aan boord %{name}! users: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 9155950bbd..0ff641cb23 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -418,6 +418,8 @@ nn: create: Legg til domene resolve: Løs domene title: Ny blokkeringsoppføring av e-postdomene + no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde + resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. Pass på så du ikkje blokkerer dei store e-postleverandørane. resolved_through_html: Løyst gjennom %{domain} title: Blokkerte e-postadresser export_domain_allows: @@ -444,6 +446,9 @@ nn: unsuppress: Tilbakestill følgjeforslag instances: availability: + description_html: + one: Om leveransar til domenet feilar %{count} dag, vil det ikkje bli gjort fleire forsøk før det eventuelt kjem ein leveranse frå domenet. + other: Om leveransar til domenet feilar %{count} ulike dagar, vil det ikkje bli gjort fleire forsøk før det eventuelt kjem ein leveranse frå domenet. failure_threshold_reached: Feilterskelen ble nådd %{date}. failures_recorded: one: Mislykkede forsøk på %{count} dag. @@ -451,7 +456,7 @@ nn: no_failures_recorded: Ingen feil registrert. title: Tilgjenge warning: Det siste forsøket på å koble til denne serveren lyktes ikke - back_to_all: All + back_to_all: Alle back_to_limited: Begrenset back_to_warning: Advarsel by_domain: Domene @@ -464,9 +469,11 @@ nn: reject_reports: Avvis rapporter silence: Begrens suspend: Suspender + policy: Vilkår reason: Offentlig årsak title: Retningslinjer for innhold dashboard: + instance_accounts_dimension: Mest fylgde kontoar instance_accounts_measure: lagrede kontoer instance_followers_measure: våre følgere der instance_follows_measure: deres følgere her @@ -475,26 +482,35 @@ nn: instance_reports_measure: rapporter om dem instance_statuses_measure: lagrede innlegg delivery: - all: All + all: Alle clear: Feil ved fjerning + failing: Feilar restart: Starte levering stop: Stopp levering unavailable: Ikke tilgjengelig delivery_available: Levering er tilgjengelig + delivery_error_days: Leveringsfeildagar delivery_error_hint: Dersom levering ikke er mulig i løpet av %{count} dager, blir det automatisk merket som ikke mulig å levere. + destroyed_msg: Data frå %{domain} er no lagt i kø for å bli sletta. empty: Ingen domener funnet. + known_accounts: + one: "%{count} kjend konto" + other: "%{count} kjende kontoar" moderation: all: Alle limited: Avgrensa title: Moderasjon private_comment: Privat kommentar public_comment: Offentleg kommentar + purge: Reinse + purge_description_html: Dersom du trur dette domenet har blitt kopla ned for godt, kan du sletta all kontoinformasjon og tilhøyrande data som gjeld domenet frå lageret ditt. Dette kan ta litt tid. title: Samling total_blocked_by_us: Blokkert av oss total_followed_by_them: Fylgd av dei total_followed_by_us: Fylgd av oss total_reported: Rapportar om dei total_storage: Medievedlegg + totals_time_period_hint_html: Totalsum vist nedanfor gjeld data for alle tidsperiodar. invites: deactivate_all: Slå av alle filter: @@ -612,6 +628,14 @@ nn: manage_invites_description: Tillet at brukarar blar gjennom og deaktiverer innbydingslenkjer manage_roles: Handsam roller manage_roles_description: Tillet at brukarar handsamar og tilset rollar under deira eiga + 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 + manage_users_description: Let brukarar sjå detaljar om andre brukarar og utføre moderasjonshandlingar mot dei + manage_webhooks: Handtere webhooks + manage_webhooks_description: Let brukarar setje opp webhooks for administrative hendingar + view_audit_log: Sjå revisjonslogg + view_audit_log_description: Let brukarar sjå historikk over administrative handlingar på tenaren view_dashboard: Vis dashbord view_dashboard_description: Gir brukere tilgang til dashbordet og ulike metrikker view_devops: DevOps @@ -626,9 +650,15 @@ nn: title: Server regler settings: about: + manage_rules: Handter tenarreglar + preamble: Gje grundig informasjon om korleis tenaren blir drifta, moderert og finansiert. + rules_hint: Det er eit eige område for reglar som brukarar må retta seg etter. title: Om appearance: title: Utsjånad + 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. diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 753c407254..20d7c3976d 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -122,6 +122,8 @@ pl: redownloaded_msg: Pomyślnie odświeżono profil %{username} z miejsca pochodzenia reject: Odrzuć rejected_msg: Pomyślnie odrzucono wniosek o rejestrację %{username} + remote_suspension_irreversible: Dane tego konta zostały nieodwracalnie usunięte. + remote_suspension_reversible_hint_html: Konto zostało zawieszone na serwerze, a dane zostaną w pełni usunięte dnia %{date}. Do tego czasu zdalny serwer może przywrócić to konto bez żadnych konsekwencji. Jeśli chcesz natychmiast usunąć wszystkie dane konta, możesz to zrobić poniżej. remove_avatar: Usun awatar remove_header: Usuń nagłówek removed_avatar_msg: Pomyślnie usunięto awatar %{username} @@ -583,7 +585,6 @@ pl: report_notes: created_msg: Pomyslnie utworzono notatkę moderacyjną. destroyed_msg: Pomyślnie usunięto notatkę moderacyjną. - today_at: Dziś o %{time} reports: account: notes: @@ -732,6 +733,9 @@ pl: content_retention: preamble: Kontroluj, jak treści generowane przez użytkownika są przechowywane w Mastodon. title: Retencja treści + default_noindex: + desc_html: Wpłynie to na wszystkich użytkowników, którzy sami tego nie zmienili w swoich ustawieniach + title: Domyślnie żądaj nieindeksowania użytkowników przez wyszukiwarki discovery: follow_recommendations: Polecane konta preamble: Prezentowanie interesujących treści ma kluczowe znaczenie dla nowych użytkowników, którzy mogą nie znać nikogo z Mastodona. Kontroluj, jak różne funkcje odkrywania działają na Twoim serwerze. diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index eca2804e87..b6202f0e69 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -433,6 +433,7 @@ pt-BR: export_domain_blocks: import: description_html: Você está prestes a importar uma lista de boqueio de domínio. Por favor, revise esta lista com muito cuidado, especialmente se você mesmo não criou esta lista. + existing_relationships_warning: Existem relações de seguimento private_comment_template: Importado de %{source} em %{date} title: Importar bloqueio de domínios new: @@ -557,7 +558,6 @@ pt-BR: report_notes: created_msg: Nota de denúncia criada! destroyed_msg: Nota de denúncia excluída! - today_at: Hoje às %{time} reports: account: notes: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 1f382f6156..8853ebbf05 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -561,7 +561,6 @@ pt-PT: report_notes: created_msg: Nota de denúncia criada com sucesso! destroyed_msg: Nota de denúncia eliminada com sucesso! - today_at: Hoje às %{time} reports: account: notes: @@ -704,6 +703,9 @@ pt-PT: content_retention: preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon. title: Retenção de conteúdo + default_noindex: + desc_html: Afeta todos os utilizadores que não alteraram esta configuração + title: Desativar, por omissão, a indexação de utilizadores por parte dos motores de pesquisa discovery: follow_recommendations: Recomendações para seguir preamble: Revelar conteúdos interessantes é fundamental para a entrada de novos utilizadores que podem não conhecer ninguém no Mastodon. Controle como os vários recursos de descoberta funcionam no seu servidor. diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9b13ee12e8..a0d787e0b0 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -577,7 +577,6 @@ ru: report_notes: created_msg: Примечание жалобы создано! destroyed_msg: Примечание жалобы удалено! - today_at: Сегодня в %{time} reports: account: notes: @@ -726,6 +725,9 @@ ru: content_retention: preamble: Управление сохранением пользовательского контента в Mastodon. title: Хранение контента + default_noindex: + desc_html: Влияет на всех пользователей, которые не изменили эту настройку сами + title: Исключить пользователей из индексации поисковиками по умолчанию discovery: follow_recommendations: Рекомендации подписок profile_directory: Каталог профилей diff --git a/config/locales/sco.yml b/config/locales/sco.yml index a2b91173e9..23b9057540 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -561,7 +561,6 @@ sco: report_notes: created_msg: Clype note successfully creatit! destroyed_msg: Clype note successfully deletit! - today_at: The day at %{time} reports: account: notes: diff --git a/config/locales/si.yml b/config/locales/si.yml index 1f5fe630cf..37f8a8d7ee 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -510,7 +510,6 @@ si: report_notes: created_msg: වාර්තා සටහන සාර්ථකව සාදන ලදී! destroyed_msg: වාර්තා සටහන සාර්ථකව මකා ඇත! - today_at: අද %{time}ට reports: account: notes: diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 1208c62fb4..41b659fac5 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -232,6 +232,7 @@ ar: profile_directory: تفعيل دليل الصفحات التعريفية registrations_mode: من يمكنه التسجيل require_invite_text: يتطلب سببا للانضمام + show_domain_blocks: إظهار النطاقات المحظورة show_domain_blocks_rationale: أظهِر لماذا تم حظر النطاقات site_contact_email: للاتصال بالبريد الإلكتروني site_contact_username: اسم مستخدم جهة الاتصال @@ -269,6 +270,8 @@ ar: mention: ابعث بريداً إلكترونيًا عندما يُشير إليك أو يذكُرك أحدهم pending_account: ابعث رسالة إلكترونية إن كان هناك حساب جديد بحاجة إلى مراجعة reblog: ابعث بريداً إلكترونيًا عندما يقوم أحدهم بترقية منشورك + report: هناك إبلاغ جديد تم إرساله + trending_tag: المتداولة الجديدة تتطلّب مراجعة rule: text: قانون tag: @@ -280,6 +283,7 @@ ar: role: الدور user_role: color: لون الشارة + highlighted: عرض الدور كشارة على الملفات الشخصية للمستخدمين name: التسمية permissions_as_keys: الصلاحيات position: الأولوية diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index 73b27b1dc1..54651ca663 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -18,29 +18,81 @@ be: disable: Перадухіліць выкарыстанне акаунтаў, але не выдаляць і не хаваць іх змесціва. none: Выкарыстоўвай гэта для папярэджвання карыстальнікаў але без іншых наступстваў. sensitive: Прымусова адмячаць усе медыя карыстальніка як дэлікатныя. + silence: Забараніць карыстальніку пасты з публічнай бачнасцю, схаваць ягоныя допісы і апавяшчэнні ад людзей, якія на яго не падпісаныя. + suspend: Забараніць любыя ўзаемадзеянні ад ці з гэтым уліковым запісам і выдаліць ягонае змесціва. Можна адрабіць цягам 30 дзён. + warning_preset_id: Неабавязкова. Вы можаце дадаць уласны тэкст напрыканцы шаблону announcement: + all_day: Калі пазначана, будуць паказаны толькі даты з пазначанага прамежку часу ends_at: Неабавязкова. Аб'ява будзе аўтаматычна знята ў пэўны час scheduled_at: Пакіньце пустым, каб апублікаваць аб'яву імаверна starts_at: Неабавязкова. На выпадак, калі ваша аб'ява прывязана да пэўнага перыяду часу + text: Вы можаце карыстацца сінтаксісам допісаў. Калі ласка, улічвайце месца, якое аб'ява зойме на экране карыстальніка appeal: text: Вы можаце абскардзіць рашэнне толькі адзін раз defaults: + autofollow: Людзі, якія зарэгістраваліся праз запрашэнне, аўтаматычна падпішуцца на вас + avatar: PNG, GIF ці JPG. Не больш за %{size}. Будзе сціснуты да памеру %{dimensions}} пікселяў + bot: Паведаміць іншым, што гэты ўліковы запіс у асноўным выконвае аўтаматычныя дзеянні і можа не кантралявацца + context: Адзін ці некалькі кантэкстаў, да якіх трэба прымяніць фільтр + current_password: У мэтах бяспекі, калі ласка, увядзіце пароль бягучага ўліковага запісу + current_username: Каб пацвердзіць, увядзіце, калі ласка імя карыстальніка бягучага ўліковага запісу + digest: Будзе даслана толькі пасля доўгага перыяду неактыўнасці і толькі калі вы атрымалі асабістыя паведамленні падчас вашай адсутнасці discoverable: Дазволіць незнаёмым людзям знаходзіць ваш уліковы запіс праз рэкамендацыі, трэнды і іншыя функцыі email: Пацвярджэнне будзе выслана па электроннай пошце + fields: У вашаму профілі можа быць паказана да 4 элементаў у выглядзе табліцы + header: PNG, GIF ці JPG. Не больш за %{size}. Будзе сціснуты да памеру %{dimensions}} пікселяў + inbox_url: Капіраваць URL са старонкі рэтранслятара, якім вы хочаце карыстацца + irreversible: Адфільтраваныя пасты прападуць незваротна, нават калі фільтр потым будзе выдалены locale: Мова карыстальніцкага інтэрфейсу, электронных паведамленняў і апавяшчэнняў locked: Уручную кантралюйце, хто можа быць вашым падпісантам, ухваляючы запросы на падпіску password: Не менш за 8 сімвалаў + phrase: Параўнанне адбудзецца нягледзячы на рэгістр тэксту і папярэджанні аб змесціве допісу + scopes: Якімі API праграм будзе дазволена карыстацца. Калі вы абярэце найвышэйшы ўзровень, не трэба абіраць асобныя. + setting_aggregate_reblogs: Не паказваць новыя пашырэнні для допісаў, якія нядаўна пашырылі(уплывае выключна на будучыя пашырэнні) + setting_always_send_emails: Звычайна лісты з апавяшчэннямі не будуць дасылацца, калі вы актыўна карыстаецеся Mastodon + setting_default_sensitive: Далікатныя медыя прадвызначана схаваныя. Іх можна адкрыць адзіным клікам setting_display_media_default: Хаваць медыя пазначаныя як далікатныя setting_display_media_hide_all: Заўсёды хаваць медыя setting_display_media_show_all: Заўсёды паказваць медыя setting_hide_network: Вашы падпіскі і вашы падпісчыкі будуць нябачны ў вашым профілі setting_noindex: Уплывае на бачнасць старонкі вашага профілю і вашых допісаў + setting_show_application: Праграма, праз якую вы ствараеце допісы, будзе паказвацца ў падрабязнасцях пра допісы + setting_use_blurhash: Градыенты заснаваны на колерах схаваных выяў, але размываюць дэталі + setting_use_pending_items: Схаваць абнаўленні стужкі за клікам замест аўтаматычнага пракручвання стужкі + username: Ваша імя карыстальніка будзе ўнікальным на %{domain} + whole_word: Калі ключавое слова ці фраза складаецца толькі з літар і лічбаў, яно будзе ўжытае толькі калі супадае з усім словам + domain_allow: + domain: Гэты дамен зможа атрымліваць даныя з гэтага сервера. Даныя з гэтага дамену будуць апрацаваныя ды захаваныя + email_domain_block: + domain: Гэта можа быць імя дамена, якое паказваецца ў электронным адрасе ці ў MX запісе, якім ён карыстаецца. Іх правераць пры рэгістрацыі. + with_dns_records: Будзе здзейснена спроба развязаць DNS запісы дадзенага дамену. Вынікі таксама будуць заблакіраваны + featured_tag: + name: 'Вось некаторыя з хэштэгаў, якімі вы нядаўна карысталіся:' + filters: + action: Абярыце, што зрабіць, калі пост падпадае пад умовы фільтру + actions: + hide: Поўнасцю схаваць адфільтраванае змесціва, дзейнічаць, нібы яго не існуе + warn: Схаваць адфільтраваны кантэнт за папярэджаннем з назвай фільтру form_admin_settings: backups_retention_period: Захоўваць створаныя архівы карыстальніка адзначаную колькасць дзён. bootstrap_timeline_accounts: Гэтыя ўліковыя запісы будуць замацаваны ў топе рэкамендацый для новых карыстальнікаў. + closed_registrations_message: Паказваецца, калі рэгістрацыя закрытая + content_cache_retention_period: Допісы з іншых сервераў будуць выдаляцца пасля выстаўленай колькасці дзён, калі выстаўлены станоўчы лік. Гэта можа быць незваротным. custom_css: Вы можаце прымяняць карыстальніцкія стылі ў вэб-версіі Mastodon. mascot: Замяняе ілюстрацыю ў пашыраным вэб-інтэрфейсе. + media_cache_retention_period: Спампаваныя медыя будуць выдаляцца пасля выстаўленай колькасці дзён, калі выстаўлены станоўчы лік, і спампоўвацца нанова па запыце. + profile_directory: Дырэкторыя профіляў змяшчае спіс усіх карыстальнікаў, якія вырашылі быць бачнымі. + require_invite_text: Калі рэгістрацыя патрабуе ручнога пацвержання, зрабіце поле "Чаму вы хочаце далучыцца?" абавязковым + site_contact_email: Як людзі могуць звязацца з вамі па юрыдычных запытах або пытаннях падтрымкі. site_contact_username: Як людзі могуць звязацца з вамі на Mastodon. + site_extended_description: Любая дадатковая інфармацыя, якая можа быць карыснай наведвальнікам ды вашым карыстальнікам. Можна карыстацца сінтаксісам Markdown каб структураваць тэкст. + site_short_description: Кароткае апісанне, каб дапамагчы адназначна ідэнтыфікаваць ваш сервер. Хто яго падтрымлівае, для каго ён? + site_terms: Апішыце ўласную палітыку прыватнасці альбо пакіньце поле пустым, калі хочаце скарыстацца прадвызначанай. Можна карыстацца сінтаксісам Markdown каб структураваць тэкст. + site_title: Як людзі могуць звяртацца да вашага серверу акрамя яго даменнага імя. + theme: Тэма, што бачаць новыя карыстальнікі ды наведвальнікі, якія выйшлі. + thumbnail: Выява памерамі прыкладна 2:1, якая паказваецца побач з інфармацыяй пра ваш сервер. + timeline_preview: Наведвальнікі, якія выйшлі, змогуць праглядаць апошнія публічныя допісы на серверы. + trendable_by_default: Прапусціць ручны агляд трэндавага змесціва. Асобныя элементы ўсё яшчэ можна будзе выдаліць з трэндаў пастфактум. trends: Трэнды паказваюць, якія допісы, хэштэгі і навіны набываюць папулярнасць на вашым серверы. form_challenge: current_password: Вы ўваходзіце ў бяспечную зону @@ -51,13 +103,28 @@ be: ip_block: comment: Неабавязкова. Напамін, чаму вы дадалі гэта правіла. expires_in: IP адрасы з'яўляюцца абмежаваным рэсурсам, часам яны падзяляюцца паміж карыстальнікамі і мяняюць уладальніка. Па гэтай прычыне, безтэрміновае блакаванне IP не рэкамендуецца. + ip: Увядзіце адрас IPv4 ці IPv6. Вы можаце заблакіраваць цэлыя абсягі з дапамогай CIDR сінтаксісу. Асцярожна! Не заблакіруйце самі сябе! severities: no_access: Заблакіраваць доступ да ўсіх рэсурсаў sign_up_block: Новыя рэгістрацыі будуць немагчымы sign_up_requires_approval: Новыя рэгістрацыі запатрабуюць вашага ўзгаднення severity: Абярыце, што будзе адбывацца з запытамі з гэтага IP + rule: + text: Апішыце правіла ці патрабаванне для карыстальнікаў на гэтым серверы. Імкніцеся зрабіць яго простым ды кароткім sessions: otp: 'Увядзіце код двухфактарнай аўтэнтыфікацыі з вашага тэлефона або адзін з кодаў аднаўлення:' + webauthn: Калі гэта USB прылада, устаўце яе і, калі неабходна, націсніце на яе. + tag: + name: Вы можаце змяняць толькі рэгістр літар, напрыклад для таго, каб падвысіць чытабельнасць + user: + chosen_languages: У публічных стужках будуць паказвацца допісы толькі на тых мовах, якія вы пазначыце + role: Гэтая роля кантралюе дазволы, якія мае карыстальнік + user_role: + color: Колер, які будзе выкарыстоўвацца для гэтай ролі па ўсім UI, у фармаце RGB ці hex + highlighted: Гэта робіць ролю публічна бачнай + name: Публічная назва ролі, калі роля дэманструецца як значок у профілю + permissions_as_keys: Карыстальнікі з гэтай роляй будуць мець доступ да... + position: Ролі вышэйшага рангу займаюцца вырашэннем канфліктаў у пэўных сітуацыях. Некаторыя дзеянні можна выкананаць толькі над ролямі з ніжэйшым рангам webhook: events: Выберыце падзеі для адпраўкі url: Куды падзеі будуць адпраўляцца @@ -66,6 +133,10 @@ be: fields: name: Пазнака value: Змесціва + account_alias: + acct: Маркер старога ўліковага запісу + account_migration: + acct: Маркер новага ўліковага запісу account_warning_preset: text: Тэкст шаблону title: Загаловак @@ -80,6 +151,7 @@ be: sensitive: Далікатны silence: Абмежаваць suspend: Прыпыніць + warning_preset_id: Выкарыстаць шаблон папярэджання announcement: all_day: Падзея на ўвесь дзень ends_at: Канец падзеі @@ -102,9 +174,10 @@ be: display_name: Адлюстраванае імя email: Адрас электроннай пошты expires_in: Заканчваецца пасля - fields: Метададзеныя профілю + fields: Метаданыя профілю header: Загаловак honeypot: "%{label} (не запаўняць)" + inbox_url: URL паштовай скрыні-рэтранслятара irreversible: Выдаляць, а не хаваць locale: Мова інтэрфейсу locked: Зрабіць уліковы запіс закрытым @@ -116,6 +189,7 @@ be: phrase: Ключавое слова ці фраза setting_advanced_layout: Уключыць пашыраны вэб-інтэрфейс setting_aggregate_reblogs: Групаваць прасоўванні ў стужках + setting_always_send_emails: Заўжды дасылаць для апавяшчэнні эл. пошты setting_auto_play_gif: Аўтапрайграванне анімаваных GIF setting_boost_modal: Паказваць акно пацвярджэння перад пашырэннем setting_crop_images: У неразгорнутых допісах абразаць відарысы да 16:9 @@ -130,11 +204,14 @@ be: setting_display_media_show_all: Паказаць усё setting_expand_spoilers: Заўжды разгортваць допісы з папярэджаннем аб змесціве setting_hide_network: Схаваць вашы сувязі + setting_noindex: Адмовіцца ад індэксавання пашуковымі рухавікамі setting_reduce_motion: Памяншэнне руху ў анімацыях + setting_show_application: Паказваць праграмы, праз якія дасылаюцца допісы setting_system_font_ui: Выкарыстоўваць прадвызначаны сістэмны шрыфт setting_theme: Тэма сайта setting_trends: Паказваць трэнды дня setting_unfollow_modal: Паказваць акно пацвярджэння перад адпіскай + setting_use_blurhash: Паказваць каляровыя градыенты замест схаваных медыя setting_use_pending_items: Павольны рэжым severity: Узровень sign_in_token_attempt: Код бяспекі @@ -150,8 +227,14 @@ be: filters: actions: hide: Схаваць цалкам + 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: Хто можа зарэгістравацца @@ -166,6 +249,7 @@ be: site_title: Назва сервера theme: Тэма па змаўчанні thumbnail: Мініяцюра сервера + timeline_preview: Дазволіць неаўтэнтыфікаваны доступ да публічных стужак trendable_by_default: Дазваляць трэнды без папярэдняй праверкі trends: Уключыць трэнды interactions: @@ -186,6 +270,7 @@ be: severity: Правіла notification_emails: appeal: Нехта падае апеляцыю на рашэнне мадэратара + digest: Дасылаць лісты з дайджэстам favourite: Нехта ўпадабаў ваш допіс follow: Нехта падпісаўся на вас follow_request: Нехта даслаў вам запыт на падпіску diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 5a4642c822..6df35ac226 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -2,11 +2,17 @@ bg: simple_form: hints: + account_alias: + acct: Посочете потребителско_име@домейн на акаунта си, от който искате да се преместите + account_migration: + acct: Посочете потребителско_име@домейн на акаунта си, към който се премествате account_warning_preset: + text: 'Можете да използвате синтаксиса на публикация: URL адреси, хаштагове и споменавания и пр.' title: По избор. Невидимо за получателя admin_account_action: include_statuses: Потребителят ще може да види кои публикации са довели до действието от страна на модератора или до предупреждението send_email_notification: Потребителят ще получи обяснение какво се е случило с неговия акаунт + text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време type_html: Изберете какво да сторите с %{acct} types: disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт. @@ -21,29 +27,45 @@ bg: scheduled_at: Ако се остави празно, обявлението ще се публикува незабавно starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон text: Можете да използвате синтаксиса на обикновени публикации. Не забравяйте, че обявлението ще заеме известно място от екрана на потребителя + appeal: + text: Можете да възразите срещу провинение само веднъж defaults: autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят context: Един или повече контексти, към които да се приложи филтърът + current_password: От съображения за сигуроност, въведете паролата на текущия профил + current_username: За да потвърдите, въведете потребителското име на текущия профил + digest: Изпраща се само след дълъг период на неактивност и само ако сте получили лични съобщения, докато ви е нямало discoverable: Позволете на непознати потребители да открият вашия акаунт чрез препоръки, трендове и други функции - email: Ще въ бъде изпратен имейл за потвърждение + email: Ще ви се изпрати е-писмо за потвърждение fields: Можете да добавите до 4 елемента в таблицата към своя профил header: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела + inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате + irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно + locale: Езикът на потребителския интерфейс, известиятата по имейл и насочените известия locked: Изисква ръчно одобрение на последователите. По подразбиране, публикациите са достъпни само до последователи. password: Използвайте поне 8 символа + phrase: Ще съвпадне без значение дали са главни или малки букви, или ако е предупреждение към публикация scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални. setting_aggregate_reblogs: Скриване на нови споделяния за публикации, които са били споделени наскоро (засяга само новополучени споделяния) + setting_always_send_emails: Обикновено известия по имейл няма да бъдат изпратени при активно използване на Mastodon setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване setting_display_media_default: Скриване на мултимедия отбелязана като деликатна setting_display_media_hide_all: Винаги да се скрива мултимедията setting_display_media_show_all: Винаги да се показва мултимедията setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва setting_noindex: Засяга вашите публикации и публичен профил - setting_show_application: Приложението, от което публикувате, ще бъде показано в подробностите към публикацията + setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити setting_use_pending_items: Инфопотокът ще се обновява само при кликване, вместо автоматично username: Вашето потребителско име ще е неповторим в %{domain} + whole_word: Ако ключовата дума/фраза е стриктно буквеноцифрена, ще бъде приложена само, ако съвпадне с цялата дума + domain_allow: + domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени + email_domain_block: + domain: Това може да е името на домейна, който се съдържа в имейл адреса или MX записа, който той използва. Ще бъдат проверени при регистрация. + with_dns_records: Ще има опит за преобразуване на DNS записите за дадения домейн и резултатите също ще бъдат блокирани featured_tag: name: 'Ето няколко хаштага, които последно сте използвали:' filters: @@ -52,6 +74,9 @@ bg: hide: Напълно скриване на филтрираното съдържание, сякаш не съществува warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра form_admin_settings: + backups_retention_period: Запазване на генерираните потребителски архиви за посочения брой дни. + bootstrap_timeline_accounts: Тези профили ще бъдат закачени най-горе в предложенията за следване за новите потребители. + closed_registrations_message: Показва се, когато е затворено за регистрации site_contact_username: Как хората могат да ви достигнат в Mastodon. site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown. site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е? @@ -59,8 +84,11 @@ bg: data: CSV файл, експортиран от друга инстанция на Mastodon ip_block: expires_in: IP адресите са краен ресурс. Понякога са споделени и често сменят притежателите си. Поради това, блокиране на IP за неопределен период не се препоръчва. + ip: Въведете IPv4 или IPv6 адрес. Можете да блокирате цели диапазони с помощта на CIDR синтаксис. Внимавайте да не се самозаключите! severities: no_access: Блокиране на достъп до всички ресурси + sign_up_block: Забрана на нови регистрации + sign_up_requires_approval: Ще трябва да одобрите новопостъпващи регистрации severity: Изберете какво да се случва със заявките от този IP rule: text: Опишете правило или изискване за потребителите на този сървър. Опитайте се да го направите кратко и просто @@ -80,35 +108,47 @@ bg: name: Етикет value: Съдържание account_warning_preset: + text: Предварително настроен текст title: Заглавие admin_account_action: include_statuses: Включва докладваните публикации в е-писмо + send_email_notification: Известяване на потребителя по имейл + text: Предупреждение по избор type: Действие types: disable: Замразяване + none: Изпращане на предупреждение sensitive: Деликатно silence: Ограничение suspend: Спиране + warning_preset_id: Предварителна настройка на предупреждение announcement: all_day: Целодневно събитие ends_at: Край на събитието + scheduled_at: Планиране на публикация starts_at: Начало на събитието text: Оповестяване + appeal: + text: Обяснете защо това решение трябва да се отхвърли defaults: autofollow: Автоматично последване на вашия акаунт avatar: Аватар bot: Този акаунт е бот chosen_languages: Филтриране на езиците confirm_new_password: Потвърди новата парола - confirm_password: Потвърди паролата + confirm_password: Потвърдете паролата + context: Филтриране на контекста current_password: Текуща парола data: Данни - discoverable: Препоръчайте своя акаунт + discoverable: Предложете акаунта на други display_name: Показвано име email: Адрес на имейла expires_in: Изтича след fields: Метаданни за профила - header: Заглавен ред + header: Заглавка + honeypot: "%{label} (не се попълва)" + inbox_url: URL адрес за входящи съобщения на предаващия сървър + irreversible: Премахване, вместо скриване locale: Език на интерфейса locked: Направи акаунта поверителен max_uses: Максимален брой използвания @@ -117,14 +157,14 @@ bg: otp_attempt: Двуфакторен код password: Парола phrase: Ключова дума или фраза - setting_advanced_layout: Включете разширения уеб интерфейс + setting_advanced_layout: Включване на разширен уеб интерфейс setting_aggregate_reblogs: Групиране на споделянията в инфопотока setting_always_send_emails: Винаги да се изпращат известия по имейл setting_auto_play_gif: Самопускащи се анимирани гифчета setting_boost_modal: Показване на диалога за потвърждение преди споделяне setting_crop_images: Изрязване на изображения от неразгънати публикации до 16x9 setting_default_language: Език на публикуване - setting_default_privacy: Поверителност на публикациите + setting_default_privacy: Поверителност на публикуване setting_default_sensitive: Винаги да се отбелязва мултимедията като деликатна setting_delete_modal: Показване на диалога за потвърждение преди изтриване на публикация setting_disable_swiping: Деактивиране на бързо плъзгащи движения @@ -132,7 +172,8 @@ bg: setting_display_media_default: Стандартно setting_display_media_hide_all: Скриване на всичко setting_display_media_show_all: Показване на всичко - setting_expand_spoilers: Постоянно разширяване на публикации, маркирани с предупреждения + setting_expand_spoilers: Винаги разширяване на публикации, отбелязани с предупреждения за съдържание + setting_hide_network: Скриване на социалното ви графосвързване setting_noindex: Отказване от индексирането от търсачки setting_reduce_motion: Забавяне на движението на анимациите setting_show_application: Показване от кое приложение е изпратена публикацията @@ -155,7 +196,14 @@ bg: hide: Напълно скриване warn: Скриване зад предупреждение form_admin_settings: + custom_css: Собствен CSS + media_cache_retention_period: Период на запазване на мултимедията в кеш паметта + profile_directory: Показване на директорията от профили + registrations_mode: Кой може да се регистрира require_invite_text: Изисква се причина за присъединяване + show_domain_blocks: Показване на блокиранията на домейни + show_domain_blocks_rationale: Показване защо са били блокирани домейните + site_contact_email: Имейл за контакт site_contact_username: Потребителско име на контакт site_extended_description: Разширено описание site_short_description: Описание на сървъра @@ -163,6 +211,7 @@ bg: site_title: Име на сървъра theme: Стандартна тема thumbnail: Миниобраз на сървъра + timeline_preview: Позволяване на неудостоверен достъп до публични инфопотоци interactions: must_be_follower: Блокирай известия от не-последователи must_be_following: Блокирай известия от хора, които не следваш @@ -180,6 +229,7 @@ bg: sign_up_requires_approval: Ограничаване на регистриране severity: Правило notification_emails: + appeal: Някой възразява срещу решение на модератора digest: Изпращай извлечения на съобщенията favourite: Изпращай e-mail, когато някой хареса твоя публикация follow: Изпращай e-mail, когато някой те последва @@ -191,18 +241,27 @@ bg: rule: text: Правило tag: + listable: Хаштагът ще се появява в търсене и предложения name: Хаштаг + usable: Публикациите могат да използват този хаштаг user: role: Роля user_role: color: Цвят на значката + highlighted: Показване на ролята като значка на потребителския профил name: Име permissions_as_keys: Разрешения position: Приоритет + webhook: + events: Включване на събития + url: URL адрес на крайната точка 'no': Не not_recommended: Не се препоръчва recommended: Препоръчано required: mark: "*" text: задължително + title: + sessions: + webauthn: Използвайте един от ключовете си за защита, за да влезете 'yes': Да diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index f12211c94f..5e8a5b3a9c 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -18,7 +18,7 @@ de: 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. sensitive: Erzwingen, dass alle Medienanhänge dieses Profils mit einer Inhaltswarnung versehen werden. - silence: Verhindern, dass der Benutzer in der Lage ist, mit der öffentlichen Sichtbarkeit zu posten und seine Beiträge und Benachrichtigungen von Personen zu verstecken, die ihm nicht folgen. + silence: Verhindern, dass der Benutzer in der Lage ist, mit der öffentlichen Sichtbarkeit zu posten und seine Beiträge und Benachrichtigungen vor Personen zu verbergen, die ihm nicht folgen. suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Kann innerhalb von 30 Tagen rückgängig gemacht werden. warning_preset_id: Optional. Du kannst immer noch eigenen Text an das Ende der Vorlage hinzufügen announcement: diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 1b718dde6e..e8abb261d6 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -3,9 +3,9 @@ et: simple_form: hints: account_alias: - acct: Sisesta selle konto kasutajanimi@domeen, millelt soovite kolida + acct: Sisesta konto kasutajanimi@domeen, mille soovid siia ümber kolida account_migration: - acct: Sisesta selle konto kasutajanimi@domeen, millele soovite kolida + 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 title: Valikuline. Ei ole nähtav saajale @@ -34,7 +34,7 @@ et: avatar: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini 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: Turvalisuse huvides palume sisestage praeguse konto salasõna + 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 discoverable: Konto on leitav võhivõõraste jaoks soovituste ja trendide sirvimise teel vm sarnaste vahenditega @@ -87,7 +87,7 @@ et: 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. site_short_description: Lühikirjeldus serveri unikaalseks identifitseerimiseks. Kes haldab, kellele mõeldud? - site_terms: Kasuta oma privaatsuspoliitikat või tühjaks jättes vaikimisi-teksti. Saab liigendada Markdown süntaksi abil. + site_terms: Lisa siia serveri isikuandmete kaitse põhimõtted või jäta tühjaks, et kasutada geneerilisi. Tekstis on lubatud Markdowni süntaks. site_title: Kuidas inimesed saavad serverile viidata, lisaks domeeninimele. theme: Teema, mida näevad sisenemata ning uued kasutajad. thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval. @@ -134,9 +134,9 @@ et: name: Nimetus value: Sisu account_alias: - acct: Vana konto täisnimi + acct: Vana konto aadress account_migration: - acct: Uue konto täisnimi + acct: Uue konto aadress account_warning_preset: text: Eelseadistatud tekst title: Pealkiri diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 218113d32e..cd9a034b58 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -41,7 +41,7 @@ fi: email: Sinulle lähetetään vahvistussähköposti fields: Sinulla voi olla korkeintaan 4 asiaa profiilissasi taulukossa header: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px - inbox_url: Kopioi URL-osoite sen viestin etusivulta, jota haluat käyttää + inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta irreversible: Suodatetut julkaisut katoavat lopullisesti, vaikka suodatin poistettaisiin myöhemmin locale: Käyttöliittymän, sähköpostien ja ilmoitusten kieli locked: Sinun täytyy hyväksyä seuraajat manuaalisesti @@ -177,7 +177,7 @@ fi: fields: Profiilin metadata header: Otsakekuva honeypot: "%{label} (älä täytä)" - inbox_url: Välityspostilaatikon URL-osoite + inbox_url: Välittäjän postilaatikon URL-osoite irreversible: Pudota piilottamisen sijaan locale: Kieli locked: Lukitse tili @@ -204,7 +204,7 @@ fi: setting_display_media_show_all: Näytä kaikki setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt viestit setting_hide_network: Piilota verkkosi - setting_noindex: Jättäydy pois hakukoneindeksoinnista + setting_noindex: Jättäydy hakukoneindeksoinnin ulkopuolelle setting_reduce_motion: Vähennä animaatioiden liikettä setting_show_application: Näytä sovellus mistä lähetät viestejä setting_system_font_ui: Käytä järjestelmän oletusfonttia diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index b568750e2c..d3ec0dfc9f 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -1,6 +1,105 @@ --- fy: simple_form: + hints: + account_alias: + acct: Fermeld de brûkersnamme@domein fan de account fan wêr’t jo ferhúzje wolle + account_migration: + acct: Fermeld de brûkersnamme@domein fan de account wêr’t jo nei ta ferhúzje wolle + account_warning_preset: + text: Jo kinne spesifike tekst foar berjochten brûke, lykas URL’s, hashtags en fermeldingen + title: Opsjoneel. Net sichtber foar de ûntfanger + admin_account_action: + include_statuses: De brûker sjocht hokker berjochten ferantwurdlik binne foar de moderaasjemaatregel of warskôging + send_email_notification: De brûker ûntfangt in útlis oer wat der mei harren account bard is + defaults: + password: Brûk op syn minst 8 tekens + setting_display_media_hide_all: Media altyd ferstopje + setting_display_media_show_all: Media altyd toane labels: + account: + fields: + name: Label + value: Ynhâld + account_alias: + acct: Mastodonadres fan it âlde account + account_migration: + acct: Mastodonadres fan it nije account + account_warning_preset: + text: Tekst fan preset + title: Titel + admin_account_action: + include_statuses: Rapportearre berjochten oan it e-mailberjocht tafoegje + send_email_notification: Meld dit per e-mailberjocht oan de brûker + announcement: + all_day: De hiele dei troch + ends_at: Einiget + scheduled_at: Meidieling ynplanne + starts_at: Begjint + text: Oankundiging + defaults: + avatar: Profylfoto + bot: Dit is in bot-account + chosen_languages: Talen filterje + confirm_new_password: Nij wachtwurd befêstigje + confirm_password: Wachtwurd befêstigje + context: Filterlokaasjes + current_password: Aktueel wachtwurd + data: Gegevens + discoverable: Dizze account oanrekommandearje litte en yn de brûkersgids toane + display_name: Werjeftenamme + email: E-mailadres + expires_in: Ferrint nei + fields: Profylmetadata + header: Omslachfoto + honeypot: "%{label} (net ynfolje)" + inbox_url: Relais-ynboks-URL + new_password: Nije wachtwurd + note: Bio + otp_attempt: Twa-stapstagangskoade + password: Wachtwurd + setting_display_media_default: Standert + setting_display_media_hide_all: Alles ferstopje + setting_display_media_show_all: Alles toane + form_admin_settings: + site_contact_email: E-mailadres kontaktpersoan + site_contact_username: Brûkersnamme kontaktpersoan + site_terms: Privacybelied + site_title: Servernamme + theme: Standerttema + thumbnail: Serverthumbnail + trends: Trends ynskeakelje + invite: + comment: Opmerking + invite_request: + text: Wêrom wolle jo jo hjir registrearje? + ip_block: + comment: Opmerking + ip: IP-adres + severities: + no_access: Tagong blokkearje + sign_up_block: Registraasjes blokkearje + sign_up_requires_approval: Registraasjes beheine + severity: Regel notification_emails: mention: Ien hat jo fermeld + rule: + text: Regel + tag: + name: Hashtag + user: + role: Rol + user_role: + color: Badgekleur + name: Namme + permissions_as_keys: Tastimmingen + position: Prioriteit + webhook: + url: Einpunt-URL + 'no': Nee + not_recommended: Net oanrekommandearre + recommended: Oanrekommandearre + required: + mark: "*" + text: fereaske + 'yes': Ja diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml index d67a21209e..8065c3a677 100644 --- a/config/locales/simple_form.ku.yml +++ b/config/locales/simple_form.ku.yml @@ -25,7 +25,7 @@ ku: all_day: Dema were nîşankirin, tenê dîrokên navbera demê dê werin nîşan kirin ends_at: Bi dilê xwe ye. Daxuyanî di vê demê de bi xweberî ji weşanê de rabe scheduled_at: Vala bihêle ku yekcar daxûyanî were weşandin - starts_at: Bi dilê xwe ye. Heke daxûyanî ya te di demeke diyar ve girêdayî be + starts_at: Vebijêrkî ye. Ku daxûyanî ya te di demeke diyar ve girêdayî be text: Tu dikarî hevoksaziya şandiyê bi kar bînî. Ji kerema xwe bila haya te ji cihê ku ev daxuyanî li ser dîmenderê bikarhêner bigire hebe appeal: text: Tu dikarî tenê carekê îtîraza binpêkirinê bikî @@ -84,7 +84,7 @@ ku: mascot: Îlustrasyona navrûyê webê yê pêşketî bêbandor dike. media_cache_retention_period: Pelên medyayê yên daxistî wê piştî çend rojên diyarkirî dema ku li ser nirxek erênî were danîn werin jêbirin, û li gorî daxwazê ​​ji nû ve werin daxistin. profile_directory: Pelrêça profîlê hemû bikarhênerên keşfbûnê hilbijartine lîste dike. - require_invite_text: Heke ji bo qeydkirinê pejirandina bi destan hewce bike, Nivîsa "Hûn çima dixwazin tevlê bibin?" li şûna vebijarkî bike mecbûrî + require_invite_text: Gava ku tomarkirin pêdiviya pejirandina destan dike, Têketina nivîsê "Tu çima dixwazî beşdar bibî?" Bike sereke ji devla vebijêrkî site_contact_email: Mirov dikarin ji bo pirsên qanûnî yan jî yên piştgiriyê çawa xwe digihînin te. site_contact_username: Mirov dikarin li ser Mastodonê xwe çawa xwe bigihînin te. site_extended_description: Her zanyariyek daxwazî dibe ku bibe alîkar bo mêvan û bikarhêneran re. Û dikarin bi hevoksaziya Markdown re werin sazkirin. diff --git a/config/locales/simple_form.la.yml b/config/locales/simple_form.la.yml new file mode 100644 index 0000000000..3a7ba0d445 --- /dev/null +++ b/config/locales/simple_form.la.yml @@ -0,0 +1 @@ +la: diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 66efa3db8d..069d30b6d7 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -2,58 +2,308 @@ sr-Latn: simple_form: hints: + account_alias: + acct: Navedi korisničko_ime@domen naloga sa kojeg želiš da pređeš + account_migration: + acct: Navedi korisničko_ime@domen naloga na koji želiš da pređeš + account_warning_preset: + text: Možete koristiti sintaksu truba, kao što su npr. URL-ova, tarabe i pominjanja + title: Opciono. Nije vidljivo primaocu + admin_account_action: + include_statuses: Korisnik će videti koje su objave prouzrokovale moderiranje ili upozorenje + send_email_notification: Korisnik će dobiti objašnjenje toga šta mu se desilo sa naloga + text_html: Opcionalno. Možete koristiti sintaksu truba. Možete dodati upozoravajuća prepodešavanje da sačuvate vreme + type_html: Izaberite šta da radite sa %{acct} + types: + disable: Spreči korisnika da koristi svoj nalog, ali nemoj brisati ili sakrivati njegov sadržaj. + none: Koristi ovo da pošalješ upozorenje korisniku, bez pokretanja bilo koje druge akcije. + sensitive: Učini da svi medijski prilozi ovog korisnika prisilno budu označeni kao osetljivi. + silence: Onemogući korisnika da objavljuje javno, sakrij sve njegove svoje objave i obaveštenja od korisnika koji ga ne prate. + suspend: Spreči bilo kakvu interakciju sa ovog naloga ili sa njim i izbriši njegov sadržaj. Može da se opozove u roku od 30 dana. + warning_preset_id: Opcionalno. Možete i dalje dodati prilagođeni tekst na kraj preseta + announcement: + all_day: Biće prikazani samo datumi vremenskog opsega koji su označeni + ends_at: Opciono. Objava će biti automatski opozvana u ovom trenutku + scheduled_at: Ostavi prazno da bi najava bila odmah objavljena + starts_at: Opciono. U slučaju da je najava vezana za određeni vremenski raspon + text: Možeš koristiti post sintaksu. Vodi računa o prostoru koji će objava zauzimati na ekranu korisnika + appeal: + text: Na brisanje se možeš žaliti samo jednom defaults: + autofollow: Osobe koje se prijave kroz pozivnice će vas automatski zapratiti avatar: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px + bot: Ovaj nalog uglavnom vrši automatizovane radnje i možda se ne nadgleda + context: Jedan ili više konteksta u kojima treba da se primeni filter + current_password: Unesi lozinku tekućeg naloga iz bezbednosnih razloga + current_username: Unesi korisničko ime tekućeg naloga za potvrdu digest: Poslato posle dužeg perioda neaktivnosti sa pregledom svih bitnih stvari koje ste dobili dok ste bili odsutni + discoverable: Dozvoli nepoznatim korisnicima da otkriju tvoj nalog putem preporuka, trendova i drugih funkcija + email: Biće vam poslata e-pošta sa potvrdom + fields: Možete imati do 4 stavke prikazane kao tabela na vašem nalogu header: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px + inbox_url: Kopirajte URL sa naslovne strane releja koji želite koristiti + irreversible: Filtrirane trube će nestati nepovratno, čak i ako je filter kasnije uklonjen + locale: Jezik korisničkog interfejsa, e-pošte i mobilnih obaveštenja locked: Zahteva da pojedinačno odobrite pratioce - setting_noindex: Utiče na Vaš javni profil i statusne strane + password: Koristite najmanje 8 znakova + phrase: Biće uparena bez obzira na veliko ili malo slovo u tekstu ili upozorenja o sadržaju trube + scopes: Kojim API-jima će aplikacija dozvoliti pristup. Ako izaberete opseg najvišeg nivoa, ne morate odabrati pojedinačne. + setting_aggregate_reblogs: Ne pokazuj nova deljenja za trube koje su nedavno podeljene (utiče samo na nedavno primljena deljenja) + setting_always_send_emails: Obaveštenja e-poštom se po pravilu neće slati kada aktivno koristiš Mastodon + setting_default_sensitive: Osetljivi mediji su podrazumevano skriveni i mogu se otkriti klikom + setting_display_media_default: Sakrij medije označene kao osetljive + setting_display_media_hide_all: Uvek sakrij sve medije + setting_display_media_show_all: Uvek prikaži medije označene kao osetljive + setting_hide_network: Koga pratite i ko vas prati neće biti prikazano na vašem nalogu + setting_noindex: Utiče na Vaš javni nalog i statusne strane + setting_show_application: Aplikacija koju koristiš za objavljivanje biće prikazana u detaljnom prikazu tvojih objava + setting_use_blurhash: Gradijent se zasniva na bojama skrivenih vizuelnih prikaza, ali prikriva sve detalje + setting_use_pending_items: Sakrij ažuriranja vremenske ose iza klika umesto automatskog pomeranja izvora objava + username: Vaš nadimak će biti jedinstven na %{domain} + whole_word: Kada je ključna reč ili fraza isključivo alfanumerička, biće primenjena samo ako se podudara sa celom reči + domain_allow: + domain: Ovaj domen će moći da preuzima podatke sa ovog servera i dolazni podaci sa njega će se obrađivati i čuvati + email_domain_block: + domain: Ovo može biti ime domena koje se pojavljuje u adresi e-pošte ili MX zapisa koji koristi. Oni će biti provereni prilikom registracije. + with_dns_records: Biće učinjen pokušaj da se razreše DNS zapisi datog domena i rezultati će takođe biti blokirani + featured_tag: + name: 'Evo nekih od heš oznaka koje ste nedavno koristili:' + filters: + action: Izaberi koju radnju treba izvršiti kada objava odgovara filteru + actions: + hide: Potpuno sakrij filtrirani sadržaj, ponašajući se kao da ne postoji + warn: Sakrij filtrirani sadržaj iza upozorenja u kome se navodi naziv filtera + form_admin_settings: + backups_retention_period: Čuvaj generisane korisničke arhive navedeni broj dana. + bootstrap_timeline_accounts: Ovi nalozi će biti zakačeni na vrh preporuka za praćenje novih korisnika. + closed_registrations_message: Prikazuje se kada su prijave zatvorene + content_cache_retention_period: Kada se postavi na pozitivnu vrednost, objave sa drugih servera će biti izbrisane nakon navedenog broja dana. Ovo može biti nepovratno. + custom_css: Možeš da primeniš prilagođene stilove na veb verziji Mastodona. + mascot: Zamenjuje ilustraciju u naprednom veb interfejsu. + media_cache_retention_period: Kada se postavi na pozitivnu vrednost, preuzete medijske datoteke će biti izbrisane nakon navedenog broja dana, i ponovo preuzete na zahtev. + profile_directory: Direktorijum profila navodi sve korisnike koji su se opredelili da budu vidljivi. + require_invite_text: Kada registracije zahtevaju ručno odobrenje, postavi da unos teksta „Zašto želiš da se pridružiš?“ bude obavezan, a ne opcioni + site_contact_email: Kako korisnici mogu da te kontaktiraju za pravna pitanja ili pitanja u vezi podrške. + site_contact_username: Kako korisnici mogu da te kontaktiraju na Mastodonu. + site_extended_description: Bilo koja dodatna informacija koja može biti korisne posetiocima i tvojim korisnicima. Može se strukturirati pomoću Markdown sintakse. + site_short_description: Kratak opis pomoću koga se na jedinstven način identifikuje tvoj server. Ko ga održava, kome je namenjen? + site_terms: Koristi sopstvenu politiku privatnosti ili ostavi prazno da bi se koristila podrazumevana. Može se strukturirati pomoću Markdown sintakse. + site_title: Način na moji može da se pozove na tvoj server osim naziva njegovog domena. + theme: Tema koju vide posetioci koji nisu prijavljeni i novi korisnici. + thumbnail: Slika koja se približno 2:1 prikazuje pored informacija o tvom serveru. + timeline_preview: Posetioci koji nisu prijavljeni će moći da pregledaju najnovije javne objave dostupne na serveru. + trendable_by_default: Preskoči ručni pregled sadržaja koji je u trendu. Pojedinačne stavke se nakon toga i dalje mogu ukloniti iz trendova. + trends: Trendovi pokazuju koje objave, heš oznake i vesti postaju sve popularniji na tvom serveru. + form_challenge: + current_password: Ulaziš u bezbedno područje imports: data: CSV fajl izvezen sa druge Mastodont instance + invite_request: + text: Ovo će nam pomoći da pregledamo tvoju prijavu + ip_block: + comment: Opciono. Zapamti zašto si dodao ovo pravilo. + expires_in: IP adrese su ograničeni resurs, ponekad se dele i često menjaju korisnika. Zbog toga se IP blokovi na neograničeno vreme ne preporučuju. + ip: Unesi IPv4 ili IPv6 adresu. Možeš blokirati čitave opsege koristeći CIDR sintaksu. Vodi računa da sebe ne zaključaš! + severities: + no_access: Blokiraj pristup svim resursima + sign_up_block: Nove prijave neće biti moguće + sign_up_requires_approval: Nove prijave će zahtevati tvoje odobrenje + severity: Izaberi šta će se desiti sa zahtevima sa ove IP adrese + rule: + text: Opiši pravilo ili zahtev za korisnike na ovom serveru. Potrudi se da opis bude kratak i jednostavan sessions: otp: 'Unesite dvofaktorski kod sa Vašeg telefona ili koristite jedan od kodova za oporavak:' + webauthn: Ako je to USB ključ, obavezno ga ubaci i, ako je potrebno, pritisni ga. + tag: + name: Mogu se samo promeniti mala slova u velika, na primer, da bi bilo čitljivije + user: + chosen_languages: Kada označite, trube u izabranim jezicima će se prikazati na javnoj vremenskoj liniji + role: Uloga kontroliše koje dozvole korisnik ima + user_role: + color: Boja koja će se koristiti za ulogu u celom korisničkom interfejsu, kao RGB, u heksadecimalnom formatu + highlighted: Ovo čini ulogu javno vidljivom + name: Javni naziv uloge, ako je uloga podešena da se prikazuje kao značka + permissions_as_keys: Korisnici sa ovom ulogom će imati pristup... + position: Viša uloga odlučuje o rešavanju sukoba u određenim situacijama. Određene radnje se mogu izvršiti samo na ulogama sa nižim prioritetom + webhook: + events: Izaberite događaje za slanje + url: Gde će se događaji slati labels: + account: + fields: + name: Etiketa + value: Sadržaj + account_alias: + acct: Ručica (@) starog naloga + account_migration: + acct: Ručica (@) novog naloga + account_warning_preset: + text: Tekst preseta + title: Naslov + admin_account_action: + include_statuses: Uključi prijavljene objave u e-poštu + send_email_notification: Obavesti korisnika preko e-pošte + text: Prilagođeno upozorenje + type: Radnja + types: + disable: Onemogući + none: Ne radi ništa + sensitive: Osetljivo + silence: Utišaj + suspend: Obustavite i nepovratno izbrišite podatke o nalogu + warning_preset_id: Koristi upozoravajući preset + announcement: + all_day: Celodnevni događaj + ends_at: Kraj događaja + scheduled_at: Planiraj objavljivanje + starts_at: Početak događaja + text: Najava + appeal: + text: Objasni zašto ovu odluku treba poništiti defaults: + autofollow: Pozovite da prati vaš nalog + avatar: Avatar + bot: Ovo je nalog bota + chosen_languages: Filtriraj jezike confirm_new_password: Potvrdite novu lozinku confirm_password: Potvrdite lozinku + context: Filtriraj kontekste current_password: Trenutna lozinka data: Podaci + discoverable: Navedite ovaj nalog u fascikli display_name: Ime za prikaz email: Adresa e-pošte expires_in: Ističe nakon + fields: Metapodaci naloga header: Zaglavlje + honeypot: "%{label} (ne popunjavaj)" + inbox_url: URL od relejnog prijemnog sandučeta + irreversible: Ispustiti umesto sakriti locale: Jezik - locked: Zaključaj nalog + locked: Zahtevaj zahteve za praćenje max_uses: Maksimalni broj korišćenja new_password: Nova lozinka note: Biografija otp_attempt: Dvofaktorski kod password: Lozinka + phrase: Ključna reč ili fraza + setting_advanced_layout: Omogući napredni veb interfejs + setting_aggregate_reblogs: Grupiši deljenja u vremenskim linijama + setting_always_send_emails: Uvek šalji obaveštenja e-poštom setting_auto_play_gif: Automatski puštaj animirane GIF-ove setting_boost_modal: Prikaži dijalog za potvrdu pre davanja podrške + setting_crop_images: Izreži slike u neproširenim objavama na 16x9 + setting_default_language: Jezik objavljivanja setting_default_privacy: Privatnost objava setting_default_sensitive: Uvek označi multimediju kao osetljivu setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja tuta + setting_disable_swiping: Onemogući pokrete prevlačenja + setting_display_media: Prikaz medija + setting_display_media_default: Podrazumevano + setting_display_media_hide_all: Sakrij sve + setting_display_media_show_all: Prikaži sve + setting_expand_spoilers: Uvek prošiti trube koje su označene upozorenjem sadržaja + setting_hide_network: Sakrij svoju mrežu setting_noindex: Odjavi se od indeksiranja search engine-a setting_reduce_motion: Smanji pokrete u animacijama + setting_show_application: Otkrij aplikaciju koja se koristi za slanje postova setting_system_font_ui: Koristi sistemski font setting_theme: Tema sajta + setting_trends: Prikaži današnje trendove setting_unfollow_modal: Prikaži dijalog za potvrdu pre nego što otpratite nekoga + setting_use_blurhash: Prikaži gradijente u boji za skrivene medije + setting_use_pending_items: Spori režim severity: Oštrina + sign_in_token_attempt: Sigurnosni kod + title: Naslov type: Tip uvoza username: Korisničko ime + username_or_email: Korisničko ime ili E-pošta + whole_word: Cela reč + email_domain_block: + with_dns_records: Uključite MX zapise i IP adrese domena + featured_tag: + name: Heš oznaka + filters: + actions: + hide: Sakrij u potpunosti + warn: Sakrij uz upozorenje + form_admin_settings: + backups_retention_period: Period čuvanja korisničke arhive + bootstrap_timeline_accounts: Uvek preporuči ove naloge novim korisnicima + closed_registrations_message: Prilagođena poruka kada prijave nisu moguće + content_cache_retention_period: Period čuvanja keša sadržaja + custom_css: Prilagođeni CSS + mascot: Prilagođena maskota (nasleđe) + media_cache_retention_period: Period čuvanja keša medija + profile_directory: Omogući direktorijum profila + registrations_mode: Ko može da se prijavi + require_invite_text: Zatraži razlog za pristupanje + show_domain_blocks: Pprikaži blokove domena + show_domain_blocks_rationale: Pokaži zašto su domeni blokirani + site_contact_email: E-adresa za kontakt + site_contact_username: Korisničko ime za kontakt + site_extended_description: Prošireni opis + site_short_description: Opis servera + site_terms: Politika privatnosti + site_title: Ime servera + theme: Podrazumevana tema + thumbnail: Sličica servera + timeline_preview: Dozvoli neautorizovan pristup javnim vremenskim osama + trendable_by_default: Dozvoli trendove bez prethodnog pregleda + trends: Omogući trendove interactions: must_be_follower: Blokiraj obaveštenja od korisnika koji me ne prate must_be_following: Blokiraj obaveštenja od ljudi koje ne pratim must_be_following_dm: Blokiraj direktne poruke od ljudi koje ne pratim + invite: + comment: Komentar + invite_request: + text: Zašto želiš da se pridružiš? + ip_block: + comment: Komentar + ip: Avatar + severities: + no_access: Blokiraj pristup + sign_up_block: Blokiraj prijave + sign_up_requires_approval: Ograniči prijave + severity: Pravilo notification_emails: + appeal: Neko se žali na odluku moderatora digest: Šalji e-poštu sa sažetkom favourite: Šalji e-poštu kada neko stavi da mu je Vaš status omiljen follow: Šalji e-poštu kada Vas neko zaprati follow_request: Šalji e-poštu kada neko zatraži da Vas zaprati mention: Šalji e-poštu kada Vas neko pomene + pending_account: Novi nalog treba pregledati reblog: Šalji e-poštu kada neko podrži Vaš status + report: Podneta je nova prijava + trending_tag: Novi trend treba pregledati + rule: + text: Pravilo + tag: + listable: Dozvoli da se ova heš oznaka pojavljuje u pretragama i predlozima + name: Heš oznaka + trendable: Dozvoli da se ova heš oznaka pojavi u okviru trendova + usable: Dozvoli objavama da koriste ovu heš oznaku + user: + role: Uloga + user_role: + color: Boja bedža + highlighted: Prikaži ulogu i bedž na profilima korisnika + name: Ime + permissions_as_keys: Ovlašćenja + position: Prioritet + webhook: + events: Omogućeni događaji + url: URL krajnje tačke 'no': Ne + not_recommended: Nije preporučeno + recommended: Preporučeno required: + mark: "*" text: obavezno + title: + sessions: + webauthn: Koristi jedan od svojih bezbednosnih ključeva za prijavljivanje 'yes': Da diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index 7d4f2e0cc8..cf590b5f43 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -58,9 +58,24 @@ sr: setting_noindex: Утиче на Ваш јавни налог и статусне стране setting_show_application: Апликација коју користиш за објављивање биће приказана у детаљном приказу твојих објава setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље + setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава username: Ваш надимак ће бити јединствен на %{domain} whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речи + domain_allow: + domain: Овај домен ће моћи да преузима податке са овог сервера и долазни подаци са њега ће се обрађивати и чувати + email_domain_block: + domain: Ово може бити име домена које се појављује у адреси е-поште или MX записа који користи. Они ће бити проверени приликом регистрације. + with_dns_records: Биће учињен покушај да се разреше DNS записи датог домена и резултати ће такође бити блокирани + featured_tag: + name: 'Ево неких од хеш ознака које сте недавно користили:' + filters: + action: Изабери коју радњу треба извршити када објава одговара филтеру + actions: + hide: Потпуно сакриј филтрирани садржај, понашајући се као да не постоји + warn: Сакриј филтрирани садржај иза упозорења у коме се наводи назив филтера form_admin_settings: + backups_retention_period: Чувај генерисане корисничке архиве наведени број дана. + bootstrap_timeline_accounts: Ови налози ће бити закачени на врх препорука за праћење нових корисника. closed_registrations_message: Приказује се када су пријаве затворене content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно. custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона. @@ -70,8 +85,21 @@ sr: require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони site_contact_email: Како корисници могу да те контактирају за правна питања или питања у вези подршке. site_contact_username: Како корисници могу да те контактирају на Мастодону. + site_extended_description: Било која додатна информација која може бити корисне посетиоцима и твојим корисницима. Може се структурирати помоћу Markdown синтаксе. + site_short_description: Кратак опис помоћу кога се на јединствен начин идентификује твој сервер. Ко га одржава, коме је намењен? + site_terms: Користи сопствену политику приватности или остави празно да би се користила подразумевана. Може се структурирати помоћу Markdown синтаксе. + site_title: Начин на моји може да се позове на твој сервер осим назива његовог домена. + theme: Тема коју виде посетиоци који нису пријављени и нови корисници. + thumbnail: Слика која се приближно 2:1 приказује поред информација о твом серверу. + timeline_preview: Посетиоци који нису пријављени ће моћи да прегледају најновије јавне објаве доступне на серверу. + trendable_by_default: Прескочи ручни преглед садржаја који је у тренду. Појединачне ставке се након тога и даље могу уклонити из трендова. + trends: Трендови показују које објаве, хеш ознаке и вести постају све популарнији на твом серверу. + form_challenge: + current_password: Улазиш у безбедно подручје imports: data: CSV фајл извезен са друге Мастодонт инстанце + invite_request: + text: Ово ће нам помоћи да прегледамо твоју пријаву ip_block: comment: Опционо. Запамти зашто си додао ово правило. expires_in: IP адресе су ограничени ресурс, понекад се деле и често мењају корисника. Због тога се IP блокови на неограничено време не препоручују. diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 315702d1e9..3635c39907 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -42,7 +42,7 @@ th: fields: คุณสามารถมีได้มากถึง 4 รายการแสดงเป็นตารางในโปรไฟล์ของคุณ header: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px inbox_url: คัดลอก URL จากหน้าแรกของรีเลย์ที่คุณต้องการใช้ - irreversible: โพสต์ที่กรองอยู่จะหายไปอย่างถาวร แม้ว่าจะเอาตัวกรองออกในภายหลัง + irreversible: โพสต์ที่กรองอยู่จะหายไปอย่างถาวร แม้ว่าจะเอาตัวกรองออกในภายหลังก็ตาม locale: ภาษาของส่วนติดต่อผู้ใช้, อีเมล และการแจ้งเตือนแบบผลัก locked: ควบคุมผู้ที่สามารถติดตามคุณด้วยตนเองได้โดยอนุมัติคำขอติดตาม password: ใช้อย่างน้อย 8 ตัวอักษร diff --git a/config/locales/sk.yml b/config/locales/sk.yml index bbccc58394..064d44d20d 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -402,7 +402,6 @@ sk: report_notes: created_msg: Poznámka o nahlásení úspešne vytvorená! destroyed_msg: Poznámka o nahlásení úspešne vymazaná! - today_at: Dnes o %{time} reports: action_taken_by: Zákrok vykonal/a are_you_sure: Si si istý/á? diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 4e6b499b1e..299f6107be 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -122,6 +122,8 @@ sl: redownloaded_msg: Uspešno osvežen profil %{username} iz izvirnika reject: Zavrni rejected_msg: Uspešno zavrnjena vloga prijave uporabnika %{username} + remote_suspension_irreversible: Podatki tega računa so bili nepovratno izbrisani. + remote_suspension_reversible_hint_html: Račun je bil suspendiran na njihovem strežniku, podatki pa bodo v celoti odstranjeni %{date}. Do takrat lahko oddaljeni strežnik obnovi ta račun obnoviti brez negativnih posledic. Če želite takoj odstraniti vse podatke računa, lahko to storite spodaj. remove_avatar: Odstrani podobo remove_header: Odstrani glavo removed_avatar_msg: Uspešno odstranjena slika avatarja uporabnika %{username} @@ -583,7 +585,6 @@ sl: report_notes: created_msg: Opomba o prijavi je uspešno ustvarjena! destroyed_msg: Opomba o prijavi je uspešno izbrisana! - today_at: Danes ob %{time} reports: account: notes: @@ -732,6 +733,9 @@ sl: content_retention: preamble: Nazdor nad hrambo vsebine uporabnikov v Mastodonu. title: Hramba vsebin + default_noindex: + desc_html: Vpliva na vse uporabnike, ki niso sami spremenili te nastavitve + title: Privzeto izvzemi uporabnike iz indeksiranja iskalnika discovery: follow_recommendations: Sledi priporočilom preamble: Izpostavljanje zanimivih vsebin je ključno za pridobivanje novih uporabnikov, ki morda ne poznajo nikogar na Mastodonu. Nadzirajte, kako različne funkcionalnosti razkritja delujejo na vašem strežniku. @@ -1007,6 +1011,9 @@ sl: email_below_hint_html: Če spodnji e-poštni naslov ni pravilen, ga lahko spremenite tukaj in prejmete novo potrditveno e-pošto. email_settings_hint_html: Potrditvena e-pošta je bila poslana na %{email}. Če ta e-poštni naslov ni pravilen, ga lahko spremenite v nastavitvah računa. title: Nastavitev + sign_in: + preamble_html: Prijavite se s svojimi poverilnicami %{domain}. Če vaš račun gostuje na drugem strežniku, se tukaj ne boste mogli prijaviti. + title: Vpiši se v %{domain} sign_up: preamble: Z računom na strežniku Mastodon boste lahko sledili vsem drugim v tem omrežju, ne glede na to, kje gostuje njihov račun. title: Naj vas namestimo na %{domain}. diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 239ea24413..928a5873bc 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -116,6 +116,8 @@ sq: redownloaded_msg: Profili i %{username} u rifreskua me sukses prej origjinës reject: Hidhe tej rejected_msg: Aplikimi për regjistrim i %{username} u hodh poshtë me sukses + remote_suspension_irreversible: Të dhënat e kësaj llogarie janë fshirë në mënyrë të pakthyeshme. + remote_suspension_reversible_hint_html: Llogaria është pezulluar në shërbyesit e tyre dhe të dhënat do të hiqen plotësisht më %{date}. Deri atëherë, shërbyesi i largët mund të rikthejë këtë llogari pa u cënuar. Nëse dëshironi të hiqen menjëherë të dhënat e llogarisë, mund ta bëni më poshtë. remove_avatar: Hiqe avatarin remove_header: Hiqe kryen removed_avatar_msg: U hoq me sukses figura e avatarit të %{username} @@ -373,6 +375,8 @@ sq: add_new: Shtoje përkatësinë në listë lejimesh created_msg: Përkatësia u shtua me sukses në listë lejimesh destroyed_msg: Përkatësia u hoq nga listë lejimesh + export: Eksportim + import: Importim undo: Hiqe nga listë lejimesh domain_blocks: add_new: Shtoni bllokim të ri përkatësie @@ -382,6 +386,8 @@ sq: edit: Përpunoni bllokim përkatësie existing_domain_block: Keni vendosur tashmë kufizime më të rrepta mbi %{name}. existing_domain_block_html: Keni vendosur tashmë kufizime më të rrepta mbi %{name}, lypset ta zhbllokoni së pari. + export: Eksportim + import: Importim new: create: Krijoni bllokim hint: Bllokimi i përkatësisë nuk do të pengojë krijim zërash llogarie te baza e të dhënave, por do të aplikojë në mënyrë retroaktive dhe të vetvetishme metoda specifike moderimi mbi këto llogari. @@ -554,7 +560,6 @@ sq: report_notes: created_msg: Shënimi i raportimit u krijua me sukses! destroyed_msg: Shënimi i raportimit u fshi me sukses! - today_at: Sot më %{time} reports: account: notes: @@ -695,6 +700,9 @@ sq: content_retention: preamble: Kontrolloni se si depozitohen në Mastodon lënda e prodhuar nga përdoruesit. title: Mbajtje lënde + default_noindex: + desc_html: Prek krejt përdoruesit që s’e kanë ndryshuar vetë këtë rregullim + title: Lëri, si parazgjedhje, përdoruesit jashtë indeksimi nga motorë kërkimesh discovery: follow_recommendations: Rekomandime ndjekjeje preamble: Shpërfaqja e lëndës interesante është me rëndësi kyçe për mirëseardhjen e përdoruesve të rinj që mund të mos njohin njeri në Mastodon. Kontrolloni se si funksionojnë në shërbyesin tuaj veçori të ndryshme zbulimi. @@ -960,6 +968,9 @@ sq: email_below_hint_html: Nëse adresa email më poshtë s’është e saktë, mund ta ndryshoni këtu dhe të merrni një email të ri ripohimi. email_settings_hint_html: Email-i i ripohimit u dërgua te %{email}. Nëse ajo adresë email s’është e saktë, mund ta ndryshoni që nga rregullimet e llogarisë. title: Ujdisje + sign_in: + preamble_html: Hyni me kredencialet tuaja për te %{domain}. Nëse llogaria juaj strehohet në një tjetër shërbyes, s’do të jeni në gjendje të bëni hyrjen këtu. + title: Bëni hyrjen te %{domain} sign_up: preamble: Me një llogari në këtë shërbyes Mastodon, do të jeni në gjendje të ndiqni cilindo person tjetër në rrjet, pavarësisht se ku strehohet llogaria e tyre. title: Le të ujdisim llogarinë tuaj në %{domain}. diff --git a/config/locales/sr.yml b/config/locales/sr.yml index eb80ab9eec..13d7b3db65 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -4,10 +4,10 @@ sr: about_mastodon_html: Мастодон је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта. contact_missing: Није постављено contact_unavailable: Није доступно - hosted_on: Мастодонт хостован на %{domain} + hosted_on: Мастодон хостован на %{domain} title: О accounts: - follow: Запрати + follow: Прати followers: few: Пратиоци one: Пратиоц @@ -32,15 +32,23 @@ sr: created_msg: Модераторска белешка успешно направљена! destroyed_msg: Модераторска белешка успешно обрисана! accounts: + add_email_domain_block: Блокирај домен е-поште + approve: Одобри are_you_sure: Да ли сте сигурни? avatar: Аватар by_domain: Домен change_email: + changed_msg: Е-пошта налога успешно промењена! current_email: Тренутна е-пошта label: Промените е-пошту new_email: Нова e-пошта submit: Промените e-пошту title: Промените e-пошту за %{username} + change_role: + changed_msg: Улога успешно промењена! + label: Промени улогу + no_role: Нема улогу + title: Промени улогу за %{username} confirm: Потврди confirmed: Потврђено confirming: Потврдување @@ -62,7 +70,9 @@ sr: follows: Праћени header: Заглавље inbox_url: Адреса сандучета + invite_request_text: Разлози за придруживање invited_by: Позван од стране + ip: IP joined: Придружио се location: all: Све @@ -75,19 +85,24 @@ sr: moderation: active: Активан all: Сви + pending: На чекању + silenced: Ограничено suspended: Суспендовани title: Модерација moderation_notes: Модераторске белешке most_recent_activity: Најскорија активност most_recent_ip: Најскорија IP адреса no_limits_imposed: Нема ограничења + no_role_assigned: Ниједна улога није додељена not_subscribed: Није претплаћен + pending: Чека на преглед perform_full_suspension: Искључи promote: Унапреди protocol: Протокол public: Јавно push_subscription_expires: PuSH претплата истиче redownload: Освежи налог + reject: Одбаци remove_avatar: Уклони аватар remove_header: Одстрани заглавље resend_confirmation: @@ -97,7 +112,11 @@ sr: reset: Ресетуј reset_password: Ресетуј лозинку resubscribe: Поново се претплати + role: Улога search: Претрага + security_measures: + only_password: Само лозинка + sensitized: Означено као осетљиво shared_inbox_url: Адреса дељеног сандучета show: created_reports: Направљени извештаји @@ -106,8 +125,10 @@ sr: silenced: Ућуткан statuses: Статуси subscribe: Претплати се + suspend: Суспендуј suspended: Суспендовани title: Налози + unblock_email: Одблокирај адресу е-поште unconfirmed_email: Непотврђена е-пошта undo_silenced: Укини ћутање undo_suspension: Укини суспензију @@ -116,6 +137,18 @@ sr: warn: Упозори web: Веб action_logs: + action_types: + approve_user: Одобри корисника + confirm_user: Потврди корисника + create_account_warning: Креирај упозорење + create_announcement: Креирај најаву + create_canonical_email_block: Креирај блок е-поште + create_user_role: Креирај улогу + destroy_announcement: Избриши најаву + destroy_canonical_email_block: Избриши блок е-поште + disable_user: Онемогући корисника + enable_user: Омогући корисника + reject_user: Одбаци корисника title: Записник custom_emojis: by_domain: Домен @@ -238,6 +271,9 @@ sr: settings: appearance: title: Изглед + default_noindex: + desc_html: Утиче на све кориснике који нису сами променили ову поставку + title: Подразумевано искључи кориснике из индексирања претраживача discovery: public_timelines: Јавне временске линије statuses: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index f85c2fa24a..c974df7716 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -116,6 +116,8 @@ sv: redownloaded_msg: Uppdaterade %{username}s profil från server reject: Förkasta rejected_msg: Avvisade %{username}s registreringsansökan + remote_suspension_irreversible: Detta konto har raderats och uppgifterna kan inte återkallas. + remote_suspension_reversible_hint_html: Kontot har stängts av på dess server och all data som tillhör det kommer att raderas permanent den %{date}. Tills dess kan kontot återställas på sin server utan dataförlust. Om du vill radera all kontodata redan nu, kan du göra detta nedan. remove_avatar: Ta bort avatar remove_header: Ta bort rubrik removed_avatar_msg: Tog bort %{username}s profilbild @@ -561,7 +563,6 @@ sv: report_notes: created_msg: Anmälningsanteckning har skapats! destroyed_msg: Anmälningsanteckning har raderats! - today_at: Idag kl. %{time} reports: account: notes: @@ -704,6 +705,9 @@ sv: content_retention: preamble: Kontrollera hur användargenererat innehåll lagras i Mastodon. title: Bibehållande av innehåll + default_noindex: + desc_html: Påverkar alla användare som inte själva ändrat denna inställning + title: Undantag användare från sökmotorindexering som standard discovery: follow_recommendations: Följrekommendationer preamble: Att visa intressant innehåll är avgörande i onboarding av nya användare som kanske inte känner någon på Mastodon. Styr hur olika upptäcktsfunktioner fungerar på din server. @@ -971,6 +975,9 @@ sv: email_below_hint_html: Om nedanstående e-postadress är felaktig kan du ändra den här, och få ett nytt bekräftelsemeddelande. email_settings_hint_html: E-postmeddelande för verifiering skickades till %{email}. Om e-postadressen inte stämmer kan du ändra den i kontoinställningarna. title: Ställ in + sign_in: + preamble_html: Logga in med dina användaruppgifter på %{domain}. Om ditt konto finns på en annan server kommer du inte att kunna logga in här. + title: Logga in på %{domain} sign_up: preamble: Med ett konto på denna Mastodon-server kan du följa alla andra personer på nätverket, oavsett vilken server deras konto tillhör. title: Låt oss få igång dig på %{domain}. diff --git a/config/locales/th.yml b/config/locales/th.yml index 5be7e33f35..0abb690497 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -417,7 +417,7 @@ th: resolve: แปลงที่อยู่โดเมน title: ปิดกั้นโดเมนอีเมลใหม่ no_email_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนอีเมลเนื่องจากไม่มีการเลือก - resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกัน ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่ + resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกันก็ตาม ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่ resolved_through_html: แปลงที่อยู่ผ่าน %{domain} title: โดเมนอีเมลที่ปิดกั้นอยู่ export_domain_allows: @@ -550,7 +550,6 @@ th: report_notes: created_msg: สร้างหมายเหตุรายงานสำเร็จ! destroyed_msg: ลบหมายเหตุรายงานสำเร็จ! - today_at: วันนี้เวลา %{time} reports: account: notes: @@ -690,6 +689,9 @@ th: content_retention: preamble: ควบคุมวิธีการจัดเก็บเนื้อหาที่ผู้ใช้สร้างขึ้นใน Mastodon title: การเก็บรักษาเนื้อหา + default_noindex: + desc_html: มีผลต่อผู้ใช้ทั้งหมดที่ไม่ได้เปลี่ยนการตั้งค่านี้ด้วยตนเอง + title: เลือกให้ผู้ใช้ไม่รับการทำดัชนีโดยเครื่องมือค้นหาเป็นค่าเริ่มต้น discovery: follow_recommendations: คำแนะนำการติดตาม preamble: การแสดงเนื้อหาที่น่าสนใจเป็นเครื่องมือในการเตรียมความพร้อมให้ผู้ใช้ใหม่ที่อาจไม่รู้จักใครก็ตามใน Mastodon ควบคุมวิธีที่คุณลักษณะการค้นพบต่าง ๆ ทำงานในเซิร์ฟเวอร์ของคุณ diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 15637c3236..aae1188588 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -116,6 +116,8 @@ tr: redownloaded_msg: "%{username} kullanıcısının profili kökenden başarıyla yenilendi" reject: Reddet rejected_msg: "%{username} adlı kullanıcının kayıt başvurusu başarıyla reddedildi" + remote_suspension_irreversible: Bu hesaba ait veriler geri dönüşümsüz bir şekilde silindi. + remote_suspension_reversible_hint_html: Hesap sunucusunda askıya alındı ve veriler %{date} tarihinde tamamen kaldırılacak. O zamana kadar, uzak sunucu herhangi bir olumsuz etki olmadan hesabı geri yüklenebilir. Hesabın tüm verilerini hemen kaldırmak isterseniz, bunu aşağıdan yapabilirsiniz. remove_avatar: Profil resmini kaldır remove_header: Üstbilgiyi kaldır removed_avatar_msg: "%{username} hesabının avatar resmi başarıyla kaldırıldı" @@ -554,7 +556,6 @@ tr: report_notes: created_msg: Şikayet notu başarıyla oluşturuldu! destroyed_msg: Şikayet notu başarıyla silindi! - today_at: 'Bugün şu saatte: %{time}' reports: account: notes: @@ -697,6 +698,9 @@ tr: content_retention: preamble: Kullanıcıların ürettiği içeriğin Mastodon'da nasıl saklanacağını denetleyin. title: İçerik saklama + default_noindex: + desc_html: Bu ayarı kendileri değiştirmeyen tüm kullanıcıları etkiler + title: Varsayılan olarak kullanıcıları arama motoru indekslemesinin dışında tut discovery: follow_recommendations: Takip önerileri preamble: İlginç içeriği gezinmek, Mastodon'da kimseyi tanımayan yeni kullanıcıları alıştırmak için oldukça etkilidir. Sunucunuzdaki çeşitli keşif özelliklerinin nasıl çalıştığını denetleyin. @@ -964,6 +968,9 @@ tr: email_below_hint_html: Eğer aşağıdaki e-posta adresi yanlışsa, onu burada değiştirebilir ve yeni bir doğrulama e-postası alabilirsiniz. email_settings_hint_html: Onaylama e-postası %{email} adresine gönderildi. Eğer bu e-posta adresi doğru değilse, hesap ayarlarından değiştirebilirsiniz. title: Kurulum + sign_in: + preamble_html: "%{domain} kimlik bilgilerinizi kullanarak giriş yapın. Eğer hesabınız başka bir sunucuda barındırılıyorsa, burada giriş yapamazsınız." + title: "%{domain} giriş yapın" sign_up: preamble: Bu Mastodon sunucusu üzerinden bir hesap ile ağdaki herhangi bir kişiyi, hesabı hangi sunucuda saklanırsa saklansın, takip edebilirsiniz. title: "%{domain} için kurulumunuzu yapalım." diff --git a/config/locales/uk.yml b/config/locales/uk.yml index c11e0688a7..a86774443a 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -122,6 +122,8 @@ uk: redownloaded_msg: Профіль %{username} оновлено з джерела походження reject: Відхилити rejected_msg: Заявку на реєстрацію %{username} відхилено + remote_suspension_irreversible: Дані цього облікового запису безповоротно видалені. + remote_suspension_reversible_hint_html: Обліковий запис було призупинено на їхньому сервері, а дані будуть повністю вилучені на %{date}. До цього часу віддалений сервер може відновити цей обліковий запис без будь-яких наслідків. Якщо ви бажаєте вилучити всі дані облікового запису негайно, ви можете зробити це нижче. remove_avatar: Видалити аватар remove_header: Видалити заголовок removed_avatar_msg: Зображення користувача %{username} вилучено @@ -577,13 +579,12 @@ uk: pending: Очікуємо на підтвердження ретранслятором save_and_enable: Зберегти та увімкнути setup: Налаштування з'єднання з ретранслятором - signatures_not_enabled: Ретранслятори не будуть добре працювати поки ввімкнений безопасний режим або режим білого списка + signatures_not_enabled: Ретранслятори не будуть працювати коректно поки ввімкнений безпечний режим або режим обмеженої федерації status: Стан title: Ретранслятори report_notes: created_msg: Скарга успішно створена! destroyed_msg: Скарга успішно видалена! - today_at: Сьогодні о %{time} reports: account: notes: @@ -732,6 +733,9 @@ uk: content_retention: preamble: Контролюйте, як зберігаються користувацькі матеріали в Mastodon. title: Зберігання вмісту + default_noindex: + desc_html: Впливає на всіх користувачів, які не змінили це налаштування самостійно + title: Усталено відмовитись від індексації користувачів пошуковими системами discovery: follow_recommendations: Поради щодо підписок preamble: Показ цікавих матеріалів відіграє важливу роль у залученні нових користувачів, які, можливо, не знають нікого з Mastodon. Контролюйте роботу різних функцій виявлення на вашому сервері. @@ -1007,6 +1011,9 @@ uk: email_below_hint_html: Якщо ця електронна адреса не є вірною, ви можете змінити її тут та отримати новий лист для підтвердження. email_settings_hint_html: Електронний лист-підтвердження було вислано на %{email}. Якщо ця адреса електронної пошти не правильна, ви можете змінити її в налаштуваннях облікового запису. title: Налаштування + sign_in: + preamble_html: Увійдіть за допомогою облікових даних %{domain}. Якщо ваш обліковий запис розміщений на іншому сервері, ви не зможете увійти тут. + title: Увійти до %{domain} sign_up: preamble: За допомогою облікового запису на цьому сервері Mastodon, ви зможете слідкувати за будь-якою іншою людиною в мережі, не зважаючи на те, де розміщений обліковий запис. title: Налаштуймо вас на %{domain}. diff --git a/config/locales/vi.yml b/config/locales/vi.yml index fe412d06fd..fbc8db2ccb 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -113,6 +113,8 @@ vi: redownloaded_msg: Đã tiếp nhận tài khoản %{username} thành công reject: Từ chối rejected_msg: Đã từ chối đăng ký tài khoản %{username} + remote_suspension_irreversible: Dữ liệu của người này đã bị xóa vĩnh viễn. + remote_suspension_reversible_hint_html: Mọi dữ liệu của người này sẽ bị xóa hoàn toàn vào %{date}. Trước thời hạn này, các máy chủ khác vẫn có thể lưu trữ mà không ảnh hưởng. Nếu bạn muốn xóa dữ liệu của người này ngay lập tức, hãy tiếp tục. remove_avatar: Xóa ảnh đại diện remove_header: Xóa ảnh bìa removed_avatar_msg: Đã xóa bỏ ảnh đại diện của %{username} @@ -550,7 +552,6 @@ vi: report_notes: created_msg: Đã thêm lưu ý kiểm duyệt! destroyed_msg: Đã xóa lưu ý kiểm duyệt! - today_at: Hôm nay lúc %{time} reports: account: notes: @@ -690,6 +691,9 @@ vi: content_retention: preamble: Kiểm soát cách lưu trữ nội dung cá nhân trong Mastodon. title: Lưu giữ nội dung + default_noindex: + desc_html: Ảnh hưởng đến tất cả người không tự thay đổi cài đặt này + title: Mặc định người dùng không xuất hiện trong công cụ tìm kiếm discovery: follow_recommendations: Gợi ý theo dõi preamble: Hiển thị nội dung thú vị là công cụ để thu hút người dùng mới, những người có thể không quen bất kỳ ai trong Mastodon. Kiểm soát cách các tính năng khám phá hoạt động trên máy chủ của bạn. @@ -953,6 +957,9 @@ vi: email_below_hint_html: Nếu địa chỉ email dưới đây không chính xác, bạn có thể thay đổi địa chỉ tại đây và nhận email xác nhận mới. email_settings_hint_html: Email xác minh đã được gửi tới %{email}. Nếu địa chỉ email đó không chính xác, bạn có thể thay đổi nó trong cài đặt tài khoản. title: Thiết lập + sign_in: + preamble_html: Đăng nhập bằng tài khoản %{domain}. Nếu tài khoản của bạn được lưu trữ trên một máy chủ khác, bạn sẽ không thể đăng nhập tại đây. + title: Đăng nhập %{domain} sign_up: preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu. title: Cho phép bạn đăng ký trên %{domain}. diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 176054be6f..8f2ec606f3 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -45,8 +45,8 @@ zh-CN: change_role: changed_msg: 已成功更改角色! label: 更改角色 - no_role: 未设置角色 - title: 为 %{username} 更改角色 + no_role: 没有角色 + title: 更改 %{username} 的角色 confirm: 确认 confirmed: 已确认 confirming: 等待确认 @@ -550,7 +550,6 @@ zh-CN: report_notes: created_msg: 举报记录建立成功! destroyed_msg: 举报记录删除成功! - today_at: 今天 %{time} reports: account: notes: @@ -690,6 +689,9 @@ zh-CN: content_retention: preamble: 控制用户生成的内容在 Mastodon 中如何存储。 title: 内容保留 + default_noindex: + desc_html: 影响所有尚未更改此设置的用户 + title: 默认不让用户被搜索引擎索引 discovery: follow_recommendations: 关注推荐 preamble: 露出有趣的内容有助于新加入 Mastodon 的用户融入。可在这里控制多种发现功能如何在你的服务器上工作。 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index fabfd892f7..e4981ec0c5 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -49,7 +49,7 @@ zh-HK: title: 更改 %{username} 身份 confirm: 確定 confirmed: 已確定 - confirming: 確定 + confirming: 確定中 custom: 自訂 delete: 刪除資料 deleted: 已刪除 @@ -113,6 +113,8 @@ zh-HK: redownloaded_msg: 成功重新載入 %{username} 的個人資料頁面 reject: 拒絕 rejected_msg: 成功拒絕了 %{username} 的新帳號申請 + remote_suspension_irreversible: 帳戶已永久刪除 + remote_suspension_reversible_hint_html: 此帳戶已被停權及所有數據將會於 %{date} 被刪除。在此之前,你仍可以完全回復帳號。如果你想即時刪除此帳戶的資料,可以在下面進行操作。 remove_avatar: 刪除頭像 remove_header: 移除頁面頂端 removed_avatar_msg: 成功刪除 %{username} 的頭像 @@ -550,7 +552,6 @@ zh-HK: report_notes: created_msg: 舉報備註已建立! destroyed_msg: 舉報備註已刪除! - today_at: 今天 %{time} reports: account: notes: @@ -690,6 +691,9 @@ zh-HK: content_retention: preamble: 控制使用者生成的內容如何儲存在 Mastodon。 title: 內容留存 + default_noindex: + desc_html: 影響所有未自行設定的用戶 + title: 預設用戶不在搜尋引擎索引之內 discovery: follow_recommendations: 追蹤建議 preamble: 呈現有趣的內容有助於吸引不認識 Mastodon 的使用者新手上路。控制各種探索功能在你的伺服器上的運作方式。 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 6fec210837..1674ad7567 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -75,7 +75,7 @@ zh-TW: invite_request_text: 加入原因 invited_by: 邀請者 ip: IP 位址 - joined: 已加入 + joined: 加入時間 location: all: 全部 local: 本站 @@ -113,6 +113,8 @@ zh-TW: redownloaded_msg: 成功重新載入%{username} 的個人檔案頁面 reject: 拒絕 rejected_msg: 成功拒絕了%{username} 的新帳號申請 + remote_suspension_irreversible: 此帳號之資料已被不可逆地刪除。 + remote_suspension_reversible_hint_html: 這個帳號已於此伺服器被停權,所有資料將會於 %{date} 被刪除。在此之前,遠端伺服器可以完全回復此的帳號。如果您想即時刪除這個帳號的資料,您可以在下面進行操作。 remove_avatar: 取消大頭貼 remove_header: 移除開頭 removed_avatar_msg: 成功刪除了 %{username} 的大頭貼 @@ -552,7 +554,6 @@ zh-TW: report_notes: created_msg: 檢舉記錄建立成功! destroyed_msg: 檢舉記錄刪除成功! - today_at: 今日為 %{time} reports: account: notes: @@ -692,6 +693,9 @@ zh-TW: content_retention: preamble: 控制使用者產生內容如何儲存於 Mastodon 上。 title: 內容保留期間 + default_noindex: + desc_html: 影響所有沒有變更此設定的使用者 + title: 預設將使用者排除於搜尋引擎索引 discovery: follow_recommendations: 跟隨建議 preamble: 呈現有趣的內容有助於 Mastodon 上一人不識的新手上路。控制各種不同的分類在您伺服器上如何被探索到。 @@ -889,7 +893,7 @@ zh-TW: created_msg: 成功建立別名。您可以自舊帳號開始轉移。 deleted_msg: 成功移除別名。您將無法再由舊帳號轉移到目前的帳號。 empty: 您目前沒有任何別名。 - hint_html: 如果想由其他帳號轉移到此帳號,您可以在此處新增別名,稍後系統將容許您把跟隨者由舊帳號轉移至此。此項作業是無害且可復原的帳號的遷移程序需要在舊帳號啟動。 + hint_html: 如果想由其他帳號轉移至此帳號,您可以在此處新增別名,稍後系統將容許您將跟隨者由舊帳號轉移至此。此項作業是無害且可復原的帳號的遷移程序需要在舊帳號啟動。 remove: 取消連結別名 appearance: advanced_web_interface: 進階網頁介面 @@ -955,6 +959,9 @@ zh-TW: email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。 email_settings_hint_html: 請確認 e-mail 是否傳送到 %{email} 。如果不對的話,可以從帳號設定修改。 title: 設定 + sign_in: + preamble_html: 請登入您於 %{domain} 之帳號密碼。若您的帳號託管於其他伺服器,您將無法於此登入。 + title: 登入 %{domain} sign_up: preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。 title: 讓我們一起設定 %{domain} 吧! @@ -1478,7 +1485,7 @@ zh-TW: enabled: 自動刪除舊嘟文 enabled_hint: 一旦達到指定的保存期限,就會自動刪除您的嘟文,除非該嘟文符合下列例外 exceptions: 例外 - explanation: 因為刪除嘟文是昂貴的操作,當伺服器不那麼忙碌時才會慢慢完成。因此,您的嘟文會在到達保存期限後一段時間才會被刪除。 + explanation: 因為刪除嘟文是耗費資源的操作,當伺服器不那麼忙碌時才會慢慢完成。因此,您的嘟文會在到達保存期限後一段時間才會被刪除。 ignore_favs: 忽略最愛 ignore_reblogs: 忽略轉嘟 interaction_exceptions: 基於互動的例外規則 @@ -1486,7 +1493,7 @@ zh-TW: keep_direct: 保留私訊 keep_direct_hint: 不會刪除任何您的私訊 keep_media: 保留包含媒體內容的嘟文 - keep_media_hint: 不會刪除您包含媒體內容的嘟文 + keep_media_hint: 不會刪除您包含媒體內容之嘟文 keep_pinned: 保留釘選嘟文 keep_pinned_hint: 不會刪除您的釘選嘟文 keep_polls: 保留投票 @@ -1501,7 +1508,7 @@ zh-TW: '2629746': 1 個月 '31556952': 1 年 '5259492': 2 個月 - '604800': 一週 + '604800': 1 週 '63113904': 2 年 '7889238': 3 個月 min_age_label: 保存期限 From eded36676fcbe13d26dffb9f7035f69365d087cf Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Sun, 18 Dec 2022 03:07:06 +0100 Subject: [PATCH 0003/1220] Fix status reactions preventing an on_cascade delete --- ...218015350_fix_foreign_keys_status_reactions.rb | 15 +++++++++++++++ lib/mastodon/version.rb | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20221218015350_fix_foreign_keys_status_reactions.rb diff --git a/db/migrate/20221218015350_fix_foreign_keys_status_reactions.rb b/db/migrate/20221218015350_fix_foreign_keys_status_reactions.rb new file mode 100644 index 0000000000..facd3c3678 --- /dev/null +++ b/db/migrate/20221218015350_fix_foreign_keys_status_reactions.rb @@ -0,0 +1,15 @@ +class FixForeignKeysStatusReactions < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + + def change + remove_foreign_key :status_reactions, :accounts + add_foreign_key :status_reactions, :accounts, on_delete: :cascade, validate: false + validate_foreign_key :status_reactions, :accounts + remove_foreign_key :status_reactions, :statuses + add_foreign_key :status_reactions, :statuses, on_delete: :cascade, validate: false + validate_foreign_key :status_reactions, :statuses + remove_foreign_key :status_reactions, :custom_emojis + add_foreign_key :status_reactions, :custom_emojis, on_delete: :cascade, validate: false + validate_foreign_key :status_reactions, :custom_emojis + end +end diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index f665e446a5..3ff9f78cea 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.1.0' + '+1.1.1' end def to_a From 181ad9ef93e4ac8eb188cfbe3b47b6e9a5ccf885 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Sun, 18 Dec 2022 04:29:35 +0100 Subject: [PATCH 0004/1220] Update schema.rb --- db/schema.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/schema.rb b/db/schema.rb index bb685a9dbd..8ac0739e37 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_12_06_114142) do +ActiveRecord::Schema.define(version: 2022_12_18_015350) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" From 06b68490d1957d680adc0c0c4ed2c84641de2056 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 18 Dec 2022 10:51:37 -0500 Subject: [PATCH 0005/1220] Enable eslint:recommended ruleset (#22433) * Enable ESLint recommended ruleset * Disable failing ESLint recommended rules * Remove rules shadowed by eslint:recommended --- .eslintrc.js | 16 +- .../mastodon/actions/account_notes.js | 8 +- app/javascript/mastodon/actions/accounts.js | 144 +++++++++--------- app/javascript/mastodon/actions/alerts.js | 6 +- app/javascript/mastodon/actions/blocks.js | 16 +- app/javascript/mastodon/actions/bookmarks.js | 16 +- app/javascript/mastodon/actions/columns.js | 6 +- app/javascript/mastodon/actions/compose.js | 88 +++++------ .../mastodon/actions/custom_emojis.js | 8 +- .../mastodon/actions/domain_blocks.js | 32 ++-- app/javascript/mastodon/actions/emojis.js | 2 +- app/javascript/mastodon/actions/favourites.js | 16 +- .../mastodon/actions/height_cache.js | 4 +- .../mastodon/actions/interactions.js | 80 +++++----- app/javascript/mastodon/actions/markers.js | 10 +- app/javascript/mastodon/actions/modal.js | 4 +- app/javascript/mastodon/actions/mutes.js | 16 +- .../mastodon/actions/notifications.js | 18 +-- .../mastodon/actions/pin_statuses.js | 8 +- app/javascript/mastodon/actions/search.js | 12 +- app/javascript/mastodon/actions/settings.js | 4 +- app/javascript/mastodon/actions/statuses.js | 48 +++--- app/javascript/mastodon/actions/store.js | 2 +- .../mastodon/actions/suggestions.js | 8 +- app/javascript/mastodon/actions/timelines.js | 18 +-- app/javascript/mastodon/common.js | 2 +- app/javascript/mastodon/compare_id.js | 2 +- .../mastodon/components/admin/Retention.js | 2 +- .../closed_registrations_modal/index.js | 2 +- .../mastodon/features/compose/util/counter.js | 2 +- .../components/column_settings.js | 4 +- .../mastodon/features/list_timeline/index.js | 2 +- .../ui/components/disabled_account_banner.js | 2 +- .../features/ui/components/link_footer.js | 2 +- .../features/ui/util/react_router_helpers.js | 2 +- app/javascript/mastodon/middleware/errors.js | 2 +- .../mastodon/middleware/loading_bar.js | 2 +- app/javascript/mastodon/middleware/sounds.js | 2 +- app/javascript/mastodon/reducers/accounts.js | 2 +- .../mastodon/reducers/accounts_counters.js | 2 +- .../mastodon/reducers/accounts_map.js | 2 +- app/javascript/mastodon/reducers/alerts.js | 2 +- .../mastodon/reducers/announcements.js | 2 +- app/javascript/mastodon/reducers/compose.js | 10 +- app/javascript/mastodon/reducers/contexts.js | 2 +- .../mastodon/reducers/conversations.js | 2 +- .../mastodon/reducers/custom_emojis.js | 2 +- .../mastodon/reducers/domain_lists.js | 2 +- app/javascript/mastodon/reducers/filters.js | 2 +- .../mastodon/reducers/height_cache.js | 2 +- .../mastodon/reducers/list_adder.js | 2 +- .../mastodon/reducers/list_editor.js | 2 +- app/javascript/mastodon/reducers/lists.js | 2 +- app/javascript/mastodon/reducers/markers.js | 2 +- .../mastodon/reducers/media_attachments.js | 2 +- app/javascript/mastodon/reducers/meta.js | 2 +- .../mastodon/reducers/missed_updates.js | 2 +- app/javascript/mastodon/reducers/modal.js | 2 +- .../mastodon/reducers/notifications.js | 2 +- .../mastodon/reducers/picture_in_picture.js | 2 +- .../mastodon/reducers/push_notifications.js | 2 +- .../mastodon/reducers/relationships.js | 2 +- app/javascript/mastodon/reducers/search.js | 2 +- app/javascript/mastodon/reducers/settings.js | 2 +- .../mastodon/reducers/status_lists.js | 2 +- app/javascript/mastodon/reducers/statuses.js | 2 +- .../mastodon/reducers/suggestions.js | 2 +- app/javascript/mastodon/reducers/tags.js | 2 +- app/javascript/mastodon/reducers/timelines.js | 2 +- app/javascript/mastodon/reducers/trends.js | 2 +- .../mastodon/reducers/user_lists.js | 2 +- .../mastodon/store/configureStore.js | 2 +- app/javascript/mastodon/uuid.js | 2 +- streaming/index.js | 2 +- 74 files changed, 350 insertions(+), 348 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index e4ada6fe0d..03af2975b8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,10 @@ module.exports = { root: true, + extends: [ + 'eslint:recommended', + ], + env: { browser: true, node: true, @@ -64,8 +68,8 @@ module.exports = { eqeqeq: 'error', indent: ['warn', 2], 'jsx-quotes': ['error', 'prefer-single'], + 'no-case-declarations': 'off', 'no-catch-shadow': 'error', - 'no-cond-assign': 'error', 'no-console': [ 'warn', { @@ -75,18 +79,16 @@ module.exports = { ], }, ], - 'no-fallthrough': 'error', - 'no-irregular-whitespace': 'error', - 'no-mixed-spaces-and-tabs': 'warn', + 'no-empty': 'off', 'no-nested-ternary': 'warn', + 'no-prototype-builtins': 'off', 'no-restricted-properties': [ 'error', { property: 'substring', message: 'Use .slice instead of .substring.' }, { property: 'substr', message: 'Use .slice instead of .substr.' }, ], + 'no-self-assign': 'off', 'no-trailing-spaces': 'warn', - 'no-undef': 'error', - 'no-unreachable': 'error', 'no-unused-expressions': 'error', 'no-unused-vars': [ 'error', @@ -96,6 +98,7 @@ module.exports = { ignoreRestSiblings: true, }, ], + 'no-useless-escape': 'off', 'object-curly-spacing': ['error', 'always'], 'padded-blocks': [ 'error', @@ -105,7 +108,6 @@ module.exports = { ], quotes: ['error', 'single'], semi: 'error', - strict: 'off', 'valid-typeof': 'error', 'react/jsx-boolean-value': 'error', diff --git a/app/javascript/mastodon/actions/account_notes.js b/app/javascript/mastodon/actions/account_notes.js index d174410002..72b943300d 100644 --- a/app/javascript/mastodon/actions/account_notes.js +++ b/app/javascript/mastodon/actions/account_notes.js @@ -14,24 +14,24 @@ export function submitAccountNote(id, value) { dispatch(submitAccountNoteSuccess(response.data)); }).catch(error => dispatch(submitAccountNoteFail(error))); }; -}; +} export function submitAccountNoteRequest() { return { type: ACCOUNT_NOTE_SUBMIT_REQUEST, }; -}; +} export function submitAccountNoteSuccess(relationship) { return { type: ACCOUNT_NOTE_SUBMIT_SUCCESS, relationship, }; -}; +} export function submitAccountNoteFail(error) { return { type: ACCOUNT_NOTE_SUBMIT_FAIL, error, }; -}; +} diff --git a/app/javascript/mastodon/actions/accounts.js b/app/javascript/mastodon/actions/accounts.js index f61f06e408..88407ae6cf 100644 --- a/app/javascript/mastodon/actions/accounts.js +++ b/app/javascript/mastodon/actions/accounts.js @@ -91,7 +91,7 @@ export function fetchAccount(id) { dispatch(fetchAccountFail(id, error)); }); }; -}; +} export const lookupAccount = acct => (dispatch, getState) => { dispatch(lookupAccountRequest(acct)); @@ -126,13 +126,13 @@ export function fetchAccountRequest(id) { type: ACCOUNT_FETCH_REQUEST, id, }; -}; +} export function fetchAccountSuccess() { return { type: ACCOUNT_FETCH_SUCCESS, }; -}; +} export function fetchAccountFail(id, error) { return { @@ -141,7 +141,7 @@ export function fetchAccountFail(id, error) { error, skipAlert: true, }; -}; +} export function followAccount(id, options = { reblogs: true }) { return (dispatch, getState) => { @@ -156,7 +156,7 @@ export function followAccount(id, options = { reblogs: true }) { dispatch(followAccountFail(error, locked)); }); }; -}; +} export function unfollowAccount(id) { return (dispatch, getState) => { @@ -168,7 +168,7 @@ export function unfollowAccount(id) { dispatch(unfollowAccountFail(error)); }); }; -}; +} export function followAccountRequest(id, locked) { return { @@ -177,7 +177,7 @@ export function followAccountRequest(id, locked) { locked, skipLoading: true, }; -}; +} export function followAccountSuccess(relationship, alreadyFollowing) { return { @@ -186,7 +186,7 @@ export function followAccountSuccess(relationship, alreadyFollowing) { alreadyFollowing, skipLoading: true, }; -}; +} export function followAccountFail(error, locked) { return { @@ -195,7 +195,7 @@ export function followAccountFail(error, locked) { locked, skipLoading: true, }; -}; +} export function unfollowAccountRequest(id) { return { @@ -203,7 +203,7 @@ export function unfollowAccountRequest(id) { id, skipLoading: true, }; -}; +} export function unfollowAccountSuccess(relationship, statuses) { return { @@ -212,7 +212,7 @@ export function unfollowAccountSuccess(relationship, statuses) { statuses, skipLoading: true, }; -}; +} export function unfollowAccountFail(error) { return { @@ -220,7 +220,7 @@ export function unfollowAccountFail(error) { error, skipLoading: true, }; -}; +} export function blockAccount(id) { return (dispatch, getState) => { @@ -233,7 +233,7 @@ export function blockAccount(id) { dispatch(blockAccountFail(id, error)); }); }; -}; +} export function unblockAccount(id) { return (dispatch, getState) => { @@ -245,14 +245,14 @@ export function unblockAccount(id) { dispatch(unblockAccountFail(id, error)); }); }; -}; +} export function blockAccountRequest(id) { return { type: ACCOUNT_BLOCK_REQUEST, id, }; -}; +} export function blockAccountSuccess(relationship, statuses) { return { @@ -260,35 +260,35 @@ export function blockAccountSuccess(relationship, statuses) { relationship, statuses, }; -}; +} export function blockAccountFail(error) { return { type: ACCOUNT_BLOCK_FAIL, error, }; -}; +} export function unblockAccountRequest(id) { return { type: ACCOUNT_UNBLOCK_REQUEST, id, }; -}; +} export function unblockAccountSuccess(relationship) { return { type: ACCOUNT_UNBLOCK_SUCCESS, relationship, }; -}; +} export function unblockAccountFail(error) { return { type: ACCOUNT_UNBLOCK_FAIL, error, }; -}; +} export function muteAccount(id, notifications, duration=0) { @@ -302,7 +302,7 @@ export function muteAccount(id, notifications, duration=0) { dispatch(muteAccountFail(id, error)); }); }; -}; +} export function unmuteAccount(id) { return (dispatch, getState) => { @@ -314,14 +314,14 @@ export function unmuteAccount(id) { dispatch(unmuteAccountFail(id, error)); }); }; -}; +} export function muteAccountRequest(id) { return { type: ACCOUNT_MUTE_REQUEST, id, }; -}; +} export function muteAccountSuccess(relationship, statuses) { return { @@ -329,35 +329,35 @@ export function muteAccountSuccess(relationship, statuses) { relationship, statuses, }; -}; +} export function muteAccountFail(error) { return { type: ACCOUNT_MUTE_FAIL, error, }; -}; +} export function unmuteAccountRequest(id) { return { type: ACCOUNT_UNMUTE_REQUEST, id, }; -}; +} export function unmuteAccountSuccess(relationship) { return { type: ACCOUNT_UNMUTE_SUCCESS, relationship, }; -}; +} export function unmuteAccountFail(error) { return { type: ACCOUNT_UNMUTE_FAIL, error, }; -}; +} export function fetchFollowers(id) { @@ -374,14 +374,14 @@ export function fetchFollowers(id) { dispatch(fetchFollowersFail(id, error)); }); }; -}; +} export function fetchFollowersRequest(id) { return { type: FOLLOWERS_FETCH_REQUEST, id, }; -}; +} export function fetchFollowersSuccess(id, accounts, next) { return { @@ -390,7 +390,7 @@ export function fetchFollowersSuccess(id, accounts, next) { accounts, next, }; -}; +} export function fetchFollowersFail(id, error) { return { @@ -399,7 +399,7 @@ export function fetchFollowersFail(id, error) { error, skipNotFound: true, }; -}; +} export function expandFollowers(id) { return (dispatch, getState) => { @@ -421,14 +421,14 @@ export function expandFollowers(id) { dispatch(expandFollowersFail(id, error)); }); }; -}; +} export function expandFollowersRequest(id) { return { type: FOLLOWERS_EXPAND_REQUEST, id, }; -}; +} export function expandFollowersSuccess(id, accounts, next) { return { @@ -437,7 +437,7 @@ export function expandFollowersSuccess(id, accounts, next) { accounts, next, }; -}; +} export function expandFollowersFail(id, error) { return { @@ -445,7 +445,7 @@ export function expandFollowersFail(id, error) { id, error, }; -}; +} export function fetchFollowing(id) { return (dispatch, getState) => { @@ -461,14 +461,14 @@ export function fetchFollowing(id) { dispatch(fetchFollowingFail(id, error)); }); }; -}; +} export function fetchFollowingRequest(id) { return { type: FOLLOWING_FETCH_REQUEST, id, }; -}; +} export function fetchFollowingSuccess(id, accounts, next) { return { @@ -477,7 +477,7 @@ export function fetchFollowingSuccess(id, accounts, next) { accounts, next, }; -}; +} export function fetchFollowingFail(id, error) { return { @@ -486,7 +486,7 @@ export function fetchFollowingFail(id, error) { error, skipNotFound: true, }; -}; +} export function expandFollowing(id) { return (dispatch, getState) => { @@ -508,14 +508,14 @@ export function expandFollowing(id) { dispatch(expandFollowingFail(id, error)); }); }; -}; +} export function expandFollowingRequest(id) { return { type: FOLLOWING_EXPAND_REQUEST, id, }; -}; +} export function expandFollowingSuccess(id, accounts, next) { return { @@ -524,7 +524,7 @@ export function expandFollowingSuccess(id, accounts, next) { accounts, next, }; -}; +} export function expandFollowingFail(id, error) { return { @@ -532,7 +532,7 @@ export function expandFollowingFail(id, error) { id, error, }; -}; +} export function fetchRelationships(accountIds) { return (dispatch, getState) => { @@ -553,7 +553,7 @@ export function fetchRelationships(accountIds) { dispatch(fetchRelationshipsFail(error)); }); }; -}; +} export function fetchRelationshipsRequest(ids) { return { @@ -561,7 +561,7 @@ export function fetchRelationshipsRequest(ids) { ids, skipLoading: true, }; -}; +} export function fetchRelationshipsSuccess(relationships) { return { @@ -569,7 +569,7 @@ export function fetchRelationshipsSuccess(relationships) { relationships, skipLoading: true, }; -}; +} export function fetchRelationshipsFail(error) { return { @@ -578,7 +578,7 @@ export function fetchRelationshipsFail(error) { skipLoading: true, skipNotFound: true, }; -}; +} export function fetchFollowRequests() { return (dispatch, getState) => { @@ -590,13 +590,13 @@ export function fetchFollowRequests() { dispatch(fetchFollowRequestsSuccess(response.data, next ? next.uri : null)); }).catch(error => dispatch(fetchFollowRequestsFail(error))); }; -}; +} export function fetchFollowRequestsRequest() { return { type: FOLLOW_REQUESTS_FETCH_REQUEST, }; -}; +} export function fetchFollowRequestsSuccess(accounts, next) { return { @@ -604,14 +604,14 @@ export function fetchFollowRequestsSuccess(accounts, next) { accounts, next, }; -}; +} export function fetchFollowRequestsFail(error) { return { type: FOLLOW_REQUESTS_FETCH_FAIL, error, }; -}; +} export function expandFollowRequests() { return (dispatch, getState) => { @@ -629,13 +629,13 @@ export function expandFollowRequests() { dispatch(expandFollowRequestsSuccess(response.data, next ? next.uri : null)); }).catch(error => dispatch(expandFollowRequestsFail(error))); }; -}; +} export function expandFollowRequestsRequest() { return { type: FOLLOW_REQUESTS_EXPAND_REQUEST, }; -}; +} export function expandFollowRequestsSuccess(accounts, next) { return { @@ -643,14 +643,14 @@ export function expandFollowRequestsSuccess(accounts, next) { accounts, next, }; -}; +} export function expandFollowRequestsFail(error) { return { type: FOLLOW_REQUESTS_EXPAND_FAIL, error, }; -}; +} export function authorizeFollowRequest(id) { return (dispatch, getState) => { @@ -661,21 +661,21 @@ export function authorizeFollowRequest(id) { .then(() => dispatch(authorizeFollowRequestSuccess(id))) .catch(error => dispatch(authorizeFollowRequestFail(id, error))); }; -}; +} export function authorizeFollowRequestRequest(id) { return { type: FOLLOW_REQUEST_AUTHORIZE_REQUEST, id, }; -}; +} export function authorizeFollowRequestSuccess(id) { return { type: FOLLOW_REQUEST_AUTHORIZE_SUCCESS, id, }; -}; +} export function authorizeFollowRequestFail(id, error) { return { @@ -683,7 +683,7 @@ export function authorizeFollowRequestFail(id, error) { id, error, }; -}; +} export function rejectFollowRequest(id) { @@ -695,21 +695,21 @@ export function rejectFollowRequest(id) { .then(() => dispatch(rejectFollowRequestSuccess(id))) .catch(error => dispatch(rejectFollowRequestFail(id, error))); }; -}; +} export function rejectFollowRequestRequest(id) { return { type: FOLLOW_REQUEST_REJECT_REQUEST, id, }; -}; +} export function rejectFollowRequestSuccess(id) { return { type: FOLLOW_REQUEST_REJECT_SUCCESS, id, }; -}; +} export function rejectFollowRequestFail(id, error) { return { @@ -717,7 +717,7 @@ export function rejectFollowRequestFail(id, error) { id, error, }; -}; +} export function pinAccount(id) { return (dispatch, getState) => { @@ -729,7 +729,7 @@ export function pinAccount(id) { dispatch(pinAccountFail(error)); }); }; -}; +} export function unpinAccount(id) { return (dispatch, getState) => { @@ -741,49 +741,49 @@ export function unpinAccount(id) { dispatch(unpinAccountFail(error)); }); }; -}; +} export function pinAccountRequest(id) { return { type: ACCOUNT_PIN_REQUEST, id, }; -}; +} export function pinAccountSuccess(relationship) { return { type: ACCOUNT_PIN_SUCCESS, relationship, }; -}; +} export function pinAccountFail(error) { return { type: ACCOUNT_PIN_FAIL, error, }; -}; +} export function unpinAccountRequest(id) { return { type: ACCOUNT_UNPIN_REQUEST, id, }; -}; +} export function unpinAccountSuccess(relationship) { return { type: ACCOUNT_UNPIN_SUCCESS, relationship, }; -}; +} export function unpinAccountFail(error) { return { type: ACCOUNT_UNPIN_FAIL, error, }; -}; +} export const revealAccount = id => ({ type: ACCOUNT_REVEAL, diff --git a/app/javascript/mastodon/actions/alerts.js b/app/javascript/mastodon/actions/alerts.js index 1670f9c10d..0220b0af58 100644 --- a/app/javascript/mastodon/actions/alerts.js +++ b/app/javascript/mastodon/actions/alerts.js @@ -17,13 +17,13 @@ export function dismissAlert(alert) { type: ALERT_DISMISS, alert, }; -}; +} export function clearAlert() { return { type: ALERT_CLEAR, }; -}; +} export function showAlert(title = messages.unexpectedTitle, message = messages.unexpectedMessage, message_values = undefined) { return { @@ -32,7 +32,7 @@ export function showAlert(title = messages.unexpectedTitle, message = messages.u message, message_values, }; -}; +} export function showAlertForError(error, skipNotFound = false) { if (error.response) { diff --git a/app/javascript/mastodon/actions/blocks.js b/app/javascript/mastodon/actions/blocks.js index fd9881302a..192aa3ce40 100644 --- a/app/javascript/mastodon/actions/blocks.js +++ b/app/javascript/mastodon/actions/blocks.js @@ -24,13 +24,13 @@ export function fetchBlocks() { dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => dispatch(fetchBlocksFail(error))); }; -}; +} export function fetchBlocksRequest() { return { type: BLOCKS_FETCH_REQUEST, }; -}; +} export function fetchBlocksSuccess(accounts, next) { return { @@ -38,14 +38,14 @@ export function fetchBlocksSuccess(accounts, next) { accounts, next, }; -}; +} export function fetchBlocksFail(error) { return { type: BLOCKS_FETCH_FAIL, error, }; -}; +} export function expandBlocks() { return (dispatch, getState) => { @@ -64,13 +64,13 @@ export function expandBlocks() { dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => dispatch(expandBlocksFail(error))); }; -}; +} export function expandBlocksRequest() { return { type: BLOCKS_EXPAND_REQUEST, }; -}; +} export function expandBlocksSuccess(accounts, next) { return { @@ -78,14 +78,14 @@ export function expandBlocksSuccess(accounts, next) { accounts, next, }; -}; +} export function expandBlocksFail(error) { return { type: BLOCKS_EXPAND_FAIL, error, }; -}; +} export function initBlockModal(account) { return dispatch => { diff --git a/app/javascript/mastodon/actions/bookmarks.js b/app/javascript/mastodon/actions/bookmarks.js index 544ed2ff22..3c8eec5468 100644 --- a/app/javascript/mastodon/actions/bookmarks.js +++ b/app/javascript/mastodon/actions/bookmarks.js @@ -25,13 +25,13 @@ export function fetchBookmarkedStatuses() { dispatch(fetchBookmarkedStatusesFail(error)); }); }; -}; +} export function fetchBookmarkedStatusesRequest() { return { type: BOOKMARKED_STATUSES_FETCH_REQUEST, }; -}; +} export function fetchBookmarkedStatusesSuccess(statuses, next) { return { @@ -39,14 +39,14 @@ export function fetchBookmarkedStatusesSuccess(statuses, next) { statuses, next, }; -}; +} export function fetchBookmarkedStatusesFail(error) { return { type: BOOKMARKED_STATUSES_FETCH_FAIL, error, }; -}; +} export function expandBookmarkedStatuses() { return (dispatch, getState) => { @@ -66,13 +66,13 @@ export function expandBookmarkedStatuses() { dispatch(expandBookmarkedStatusesFail(error)); }); }; -}; +} export function expandBookmarkedStatusesRequest() { return { type: BOOKMARKED_STATUSES_EXPAND_REQUEST, }; -}; +} export function expandBookmarkedStatusesSuccess(statuses, next) { return { @@ -80,11 +80,11 @@ export function expandBookmarkedStatusesSuccess(statuses, next) { statuses, next, }; -}; +} export function expandBookmarkedStatusesFail(error) { return { type: BOOKMARKED_STATUSES_EXPAND_FAIL, error, }; -}; +} diff --git a/app/javascript/mastodon/actions/columns.js b/app/javascript/mastodon/actions/columns.js index 9b87415fb8..302c3f0f9b 100644 --- a/app/javascript/mastodon/actions/columns.js +++ b/app/javascript/mastodon/actions/columns.js @@ -15,7 +15,7 @@ export function addColumn(id, params) { dispatch(saveSettings()); }; -}; +} export function removeColumn(uuid) { return dispatch => { @@ -26,7 +26,7 @@ export function removeColumn(uuid) { dispatch(saveSettings()); }; -}; +} export function moveColumn(uuid, direction) { return dispatch => { @@ -38,7 +38,7 @@ export function moveColumn(uuid, direction) { dispatch(saveSettings()); }; -}; +} export function changeColumnParams(uuid, path, value) { return dispatch => { diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index a9b7efc4a3..531a5eb2b0 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -94,14 +94,14 @@ export function setComposeToStatus(status, text, spoiler_text) { text, spoiler_text, }; -}; +} export function changeCompose(text) { return { type: COMPOSE_CHANGE, text: text, }; -}; +} export function replyCompose(status, routerHistory) { return (dispatch, getState) => { @@ -112,19 +112,19 @@ export function replyCompose(status, routerHistory) { ensureComposeIsVisible(getState, routerHistory); }; -}; +} export function cancelReplyCompose() { return { type: COMPOSE_REPLY_CANCEL, }; -}; +} export function resetCompose() { return { type: COMPOSE_RESET, }; -}; +} export function mentionCompose(account, routerHistory) { return (dispatch, getState) => { @@ -135,7 +135,7 @@ export function mentionCompose(account, routerHistory) { ensureComposeIsVisible(getState, routerHistory); }; -}; +} export function directCompose(account, routerHistory) { return (dispatch, getState) => { @@ -146,7 +146,7 @@ export function directCompose(account, routerHistory) { ensureComposeIsVisible(getState, routerHistory); }; -}; +} export function submitCompose(routerHistory) { return function (dispatch, getState) { @@ -211,27 +211,27 @@ export function submitCompose(routerHistory) { dispatch(submitComposeFail(error)); }); }; -}; +} export function submitComposeRequest() { return { type: COMPOSE_SUBMIT_REQUEST, }; -}; +} export function submitComposeSuccess(status) { return { type: COMPOSE_SUBMIT_SUCCESS, status: status, }; -}; +} export function submitComposeFail(error) { return { type: COMPOSE_SUBMIT_FAIL, error: error, }; -}; +} export function uploadCompose(files) { return function (dispatch, getState) { @@ -294,9 +294,9 @@ export function uploadCompose(files) { } }); }).catch(error => dispatch(uploadComposeFail(error))); - }; + } }; -}; +} export const uploadComposeProcessing = () => ({ type: COMPOSE_UPLOAD_PROCESSING, @@ -354,14 +354,14 @@ export function initMediaEditModal(id) { dispatch(openModal('FOCAL_POINT', { id })); }; -}; +} export function onChangeMediaDescription(description) { return { type: COMPOSE_CHANGE_MEDIA_DESCRIPTION, description, }; -}; +} export function onChangeMediaFocus(focusX, focusY) { return { @@ -369,7 +369,7 @@ export function onChangeMediaFocus(focusX, focusY) { focusX, focusY, }; -}; +} export function changeUploadCompose(id, params) { return (dispatch, getState) => { @@ -381,14 +381,14 @@ export function changeUploadCompose(id, params) { dispatch(changeUploadComposeFail(id, error)); }); }; -}; +} export function changeUploadComposeRequest() { return { type: COMPOSE_UPLOAD_CHANGE_REQUEST, skipLoading: true, }; -}; +} export function changeUploadComposeSuccess(media) { return { @@ -396,7 +396,7 @@ export function changeUploadComposeSuccess(media) { media: media, skipLoading: true, }; -}; +} export function changeUploadComposeFail(error) { return { @@ -404,14 +404,14 @@ export function changeUploadComposeFail(error) { error: error, skipLoading: true, }; -}; +} export function uploadComposeRequest() { return { type: COMPOSE_UPLOAD_REQUEST, skipLoading: true, }; -}; +} export function uploadComposeProgress(loaded, total) { return { @@ -419,7 +419,7 @@ export function uploadComposeProgress(loaded, total) { loaded: loaded, total: total, }; -}; +} export function uploadComposeSuccess(media, file) { return { @@ -428,7 +428,7 @@ export function uploadComposeSuccess(media, file) { file: file, skipLoading: true, }; -}; +} export function uploadComposeFail(error) { return { @@ -436,14 +436,14 @@ export function uploadComposeFail(error) { error: error, skipLoading: true, }; -}; +} export function undoUploadCompose(media_id) { return { type: COMPOSE_UPLOAD_UNDO, media_id: media_id, }; -}; +} export function clearComposeSuggestions() { if (fetchComposeSuggestionsAccountsController) { @@ -452,7 +452,7 @@ export function clearComposeSuggestions() { return { type: COMPOSE_SUGGESTIONS_CLEAR, }; -}; +} const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => { if (fetchComposeSuggestionsAccountsController) { @@ -530,7 +530,7 @@ export function fetchComposeSuggestions(token) { break; } }; -}; +} export function readyComposeSuggestionsEmojis(token, emojis) { return { @@ -538,7 +538,7 @@ export function readyComposeSuggestionsEmojis(token, emojis) { token, emojis, }; -}; +} export function readyComposeSuggestionsAccounts(token, accounts) { return { @@ -546,7 +546,7 @@ export function readyComposeSuggestionsAccounts(token, accounts) { token, accounts, }; -}; +} export const readyComposeSuggestionsTags = (token, tags) => ({ type: COMPOSE_SUGGESTIONS_READY, @@ -591,7 +591,7 @@ export function selectComposeSuggestion(position, token, suggestion, path) { }); } }; -}; +} export function updateSuggestionTags(token) { return { @@ -652,19 +652,19 @@ export function mountCompose() { return { type: COMPOSE_MOUNT, }; -}; +} export function unmountCompose() { return { type: COMPOSE_UNMOUNT, }; -}; +} export function changeComposeSensitivity() { return { type: COMPOSE_SENSITIVITY_CHANGE, }; -}; +} export const changeComposeLanguage = language => ({ type: COMPOSE_LANGUAGE_CHANGE, @@ -675,21 +675,21 @@ export function changeComposeSpoilerness() { return { type: COMPOSE_SPOILERNESS_CHANGE, }; -}; +} export function changeComposeSpoilerText(text) { return { type: COMPOSE_SPOILER_TEXT_CHANGE, text, }; -}; +} export function changeComposeVisibility(value) { return { type: COMPOSE_VISIBILITY_CHANGE, value, }; -}; +} export function insertEmojiCompose(position, emoji, needsSpace) { return { @@ -698,33 +698,33 @@ export function insertEmojiCompose(position, emoji, needsSpace) { emoji, needsSpace, }; -}; +} export function changeComposing(value) { return { type: COMPOSE_COMPOSING_CHANGE, value, }; -}; +} export function addPoll() { return { type: COMPOSE_POLL_ADD, }; -}; +} export function removePoll() { return { type: COMPOSE_POLL_REMOVE, }; -}; +} export function addPollOption(title) { return { type: COMPOSE_POLL_OPTION_ADD, title, }; -}; +} export function changePollOption(index, title) { return { @@ -732,14 +732,14 @@ export function changePollOption(index, title) { index, title, }; -}; +} export function removePollOption(index) { return { type: COMPOSE_POLL_OPTION_REMOVE, index, }; -}; +} export function changePollSettings(expiresIn, isMultiple) { return { @@ -747,4 +747,4 @@ export function changePollSettings(expiresIn, isMultiple) { expiresIn, isMultiple, }; -}; +} diff --git a/app/javascript/mastodon/actions/custom_emojis.js b/app/javascript/mastodon/actions/custom_emojis.js index 7b7d0091b5..9ec8156b17 100644 --- a/app/javascript/mastodon/actions/custom_emojis.js +++ b/app/javascript/mastodon/actions/custom_emojis.js @@ -14,14 +14,14 @@ export function fetchCustomEmojis() { dispatch(fetchCustomEmojisFail(error)); }); }; -}; +} export function fetchCustomEmojisRequest() { return { type: CUSTOM_EMOJIS_FETCH_REQUEST, skipLoading: true, }; -}; +} export function fetchCustomEmojisSuccess(custom_emojis) { return { @@ -29,7 +29,7 @@ export function fetchCustomEmojisSuccess(custom_emojis) { custom_emojis, skipLoading: true, }; -}; +} export function fetchCustomEmojisFail(error) { return { @@ -37,4 +37,4 @@ export function fetchCustomEmojisFail(error) { error, skipLoading: true, }; -}; +} diff --git a/app/javascript/mastodon/actions/domain_blocks.js b/app/javascript/mastodon/actions/domain_blocks.js index 34a33a6546..d06de20a2d 100644 --- a/app/javascript/mastodon/actions/domain_blocks.js +++ b/app/javascript/mastodon/actions/domain_blocks.js @@ -29,14 +29,14 @@ export function blockDomain(domain) { dispatch(blockDomainFail(domain, err)); }); }; -}; +} export function blockDomainRequest(domain) { return { type: DOMAIN_BLOCK_REQUEST, domain, }; -}; +} export function blockDomainSuccess(domain, accounts) { return { @@ -44,7 +44,7 @@ export function blockDomainSuccess(domain, accounts) { domain, accounts, }; -}; +} export function blockDomainFail(domain, error) { return { @@ -52,7 +52,7 @@ export function blockDomainFail(domain, error) { domain, error, }; -}; +} export function unblockDomain(domain) { return (dispatch, getState) => { @@ -66,14 +66,14 @@ export function unblockDomain(domain) { dispatch(unblockDomainFail(domain, err)); }); }; -}; +} export function unblockDomainRequest(domain) { return { type: DOMAIN_UNBLOCK_REQUEST, domain, }; -}; +} export function unblockDomainSuccess(domain, accounts) { return { @@ -81,7 +81,7 @@ export function unblockDomainSuccess(domain, accounts) { domain, accounts, }; -}; +} export function unblockDomainFail(domain, error) { return { @@ -89,7 +89,7 @@ export function unblockDomainFail(domain, error) { domain, error, }; -}; +} export function fetchDomainBlocks() { return (dispatch, getState) => { @@ -102,13 +102,13 @@ export function fetchDomainBlocks() { dispatch(fetchDomainBlocksFail(err)); }); }; -}; +} export function fetchDomainBlocksRequest() { return { type: DOMAIN_BLOCKS_FETCH_REQUEST, }; -}; +} export function fetchDomainBlocksSuccess(domains, next) { return { @@ -116,14 +116,14 @@ export function fetchDomainBlocksSuccess(domains, next) { domains, next, }; -}; +} export function fetchDomainBlocksFail(error) { return { type: DOMAIN_BLOCKS_FETCH_FAIL, error, }; -}; +} export function expandDomainBlocks() { return (dispatch, getState) => { @@ -142,13 +142,13 @@ export function expandDomainBlocks() { dispatch(expandDomainBlocksFail(err)); }); }; -}; +} export function expandDomainBlocksRequest() { return { type: DOMAIN_BLOCKS_EXPAND_REQUEST, }; -}; +} export function expandDomainBlocksSuccess(domains, next) { return { @@ -156,11 +156,11 @@ export function expandDomainBlocksSuccess(domains, next) { domains, next, }; -}; +} export function expandDomainBlocksFail(error) { return { type: DOMAIN_BLOCKS_EXPAND_FAIL, error, }; -}; +} diff --git a/app/javascript/mastodon/actions/emojis.js b/app/javascript/mastodon/actions/emojis.js index 7cd9d4b7b3..3b5d53996c 100644 --- a/app/javascript/mastodon/actions/emojis.js +++ b/app/javascript/mastodon/actions/emojis.js @@ -11,4 +11,4 @@ export function useEmoji(emoji) { dispatch(saveSettings()); }; -}; +} diff --git a/app/javascript/mastodon/actions/favourites.js b/app/javascript/mastodon/actions/favourites.js index 9448b1efe7..7388e0c580 100644 --- a/app/javascript/mastodon/actions/favourites.js +++ b/app/javascript/mastodon/actions/favourites.js @@ -25,14 +25,14 @@ export function fetchFavouritedStatuses() { dispatch(fetchFavouritedStatusesFail(error)); }); }; -}; +} export function fetchFavouritedStatusesRequest() { return { type: FAVOURITED_STATUSES_FETCH_REQUEST, skipLoading: true, }; -}; +} export function fetchFavouritedStatusesSuccess(statuses, next) { return { @@ -41,7 +41,7 @@ export function fetchFavouritedStatusesSuccess(statuses, next) { next, skipLoading: true, }; -}; +} export function fetchFavouritedStatusesFail(error) { return { @@ -49,7 +49,7 @@ export function fetchFavouritedStatusesFail(error) { error, skipLoading: true, }; -}; +} export function expandFavouritedStatuses() { return (dispatch, getState) => { @@ -69,13 +69,13 @@ export function expandFavouritedStatuses() { dispatch(expandFavouritedStatusesFail(error)); }); }; -}; +} export function expandFavouritedStatusesRequest() { return { type: FAVOURITED_STATUSES_EXPAND_REQUEST, }; -}; +} export function expandFavouritedStatusesSuccess(statuses, next) { return { @@ -83,11 +83,11 @@ export function expandFavouritedStatusesSuccess(statuses, next) { statuses, next, }; -}; +} export function expandFavouritedStatusesFail(error) { return { type: FAVOURITED_STATUSES_EXPAND_FAIL, error, }; -}; +} diff --git a/app/javascript/mastodon/actions/height_cache.js b/app/javascript/mastodon/actions/height_cache.js index 4c752993fe..a8645410c8 100644 --- a/app/javascript/mastodon/actions/height_cache.js +++ b/app/javascript/mastodon/actions/height_cache.js @@ -8,10 +8,10 @@ export function setHeight (key, id, height) { id, height, }; -}; +} export function clearHeight () { return { type: HEIGHT_CACHE_CLEAR, }; -}; +} diff --git a/app/javascript/mastodon/actions/interactions.js b/app/javascript/mastodon/actions/interactions.js index d60ccc1fb8..bc35736ffa 100644 --- a/app/javascript/mastodon/actions/interactions.js +++ b/app/javascript/mastodon/actions/interactions.js @@ -54,7 +54,7 @@ export function reblog(status, visibility) { dispatch(reblogFail(status, error)); }); }; -}; +} export function unreblog(status) { return (dispatch, getState) => { @@ -67,7 +67,7 @@ export function unreblog(status) { dispatch(unreblogFail(status, error)); }); }; -}; +} export function reblogRequest(status) { return { @@ -75,7 +75,7 @@ export function reblogRequest(status) { status: status, skipLoading: true, }; -}; +} export function reblogSuccess(status) { return { @@ -83,7 +83,7 @@ export function reblogSuccess(status) { status: status, skipLoading: true, }; -}; +} export function reblogFail(status, error) { return { @@ -92,7 +92,7 @@ export function reblogFail(status, error) { error: error, skipLoading: true, }; -}; +} export function unreblogRequest(status) { return { @@ -100,7 +100,7 @@ export function unreblogRequest(status) { status: status, skipLoading: true, }; -}; +} export function unreblogSuccess(status) { return { @@ -108,7 +108,7 @@ export function unreblogSuccess(status) { status: status, skipLoading: true, }; -}; +} export function unreblogFail(status, error) { return { @@ -117,7 +117,7 @@ export function unreblogFail(status, error) { error: error, skipLoading: true, }; -}; +} export function favourite(status) { return function (dispatch, getState) { @@ -130,7 +130,7 @@ export function favourite(status) { dispatch(favouriteFail(status, error)); }); }; -}; +} export function unfavourite(status) { return (dispatch, getState) => { @@ -143,7 +143,7 @@ export function unfavourite(status) { dispatch(unfavouriteFail(status, error)); }); }; -}; +} export function favouriteRequest(status) { return { @@ -151,7 +151,7 @@ export function favouriteRequest(status) { status: status, skipLoading: true, }; -}; +} export function favouriteSuccess(status) { return { @@ -159,7 +159,7 @@ export function favouriteSuccess(status) { status: status, skipLoading: true, }; -}; +} export function favouriteFail(status, error) { return { @@ -168,7 +168,7 @@ export function favouriteFail(status, error) { error: error, skipLoading: true, }; -}; +} export function unfavouriteRequest(status) { return { @@ -176,7 +176,7 @@ export function unfavouriteRequest(status) { status: status, skipLoading: true, }; -}; +} export function unfavouriteSuccess(status) { return { @@ -184,7 +184,7 @@ export function unfavouriteSuccess(status) { status: status, skipLoading: true, }; -}; +} export function unfavouriteFail(status, error) { return { @@ -193,7 +193,7 @@ export function unfavouriteFail(status, error) { error: error, skipLoading: true, }; -}; +} export function bookmark(status) { return function (dispatch, getState) { @@ -206,7 +206,7 @@ export function bookmark(status) { dispatch(bookmarkFail(status, error)); }); }; -}; +} export function unbookmark(status) { return (dispatch, getState) => { @@ -219,14 +219,14 @@ export function unbookmark(status) { dispatch(unbookmarkFail(status, error)); }); }; -}; +} export function bookmarkRequest(status) { return { type: BOOKMARK_REQUEST, status: status, }; -}; +} export function bookmarkSuccess(status, response) { return { @@ -234,7 +234,7 @@ export function bookmarkSuccess(status, response) { status: status, response: response, }; -}; +} export function bookmarkFail(status, error) { return { @@ -242,14 +242,14 @@ export function bookmarkFail(status, error) { status: status, error: error, }; -}; +} export function unbookmarkRequest(status) { return { type: UNBOOKMARK_REQUEST, status: status, }; -}; +} export function unbookmarkSuccess(status, response) { return { @@ -257,7 +257,7 @@ export function unbookmarkSuccess(status, response) { status: status, response: response, }; -}; +} export function unbookmarkFail(status, error) { return { @@ -265,7 +265,7 @@ export function unbookmarkFail(status, error) { status: status, error: error, }; -}; +} export function fetchReblogs(id) { return (dispatch, getState) => { @@ -278,14 +278,14 @@ export function fetchReblogs(id) { dispatch(fetchReblogsFail(id, error)); }); }; -}; +} export function fetchReblogsRequest(id) { return { type: REBLOGS_FETCH_REQUEST, id, }; -}; +} export function fetchReblogsSuccess(id, accounts) { return { @@ -293,14 +293,14 @@ export function fetchReblogsSuccess(id, accounts) { id, accounts, }; -}; +} export function fetchReblogsFail(id, error) { return { type: REBLOGS_FETCH_FAIL, error, }; -}; +} export function fetchFavourites(id) { return (dispatch, getState) => { @@ -313,14 +313,14 @@ export function fetchFavourites(id) { dispatch(fetchFavouritesFail(id, error)); }); }; -}; +} export function fetchFavouritesRequest(id) { return { type: FAVOURITES_FETCH_REQUEST, id, }; -}; +} export function fetchFavouritesSuccess(id, accounts) { return { @@ -328,14 +328,14 @@ export function fetchFavouritesSuccess(id, accounts) { id, accounts, }; -}; +} export function fetchFavouritesFail(id, error) { return { type: FAVOURITES_FETCH_FAIL, error, }; -}; +} export function pin(status) { return (dispatch, getState) => { @@ -348,7 +348,7 @@ export function pin(status) { dispatch(pinFail(status, error)); }); }; -}; +} export function pinRequest(status) { return { @@ -356,7 +356,7 @@ export function pinRequest(status) { status, skipLoading: true, }; -}; +} export function pinSuccess(status) { return { @@ -364,7 +364,7 @@ export function pinSuccess(status) { status, skipLoading: true, }; -}; +} export function pinFail(status, error) { return { @@ -373,7 +373,7 @@ export function pinFail(status, error) { error, skipLoading: true, }; -}; +} export function unpin (status) { return (dispatch, getState) => { @@ -386,7 +386,7 @@ export function unpin (status) { dispatch(unpinFail(status, error)); }); }; -}; +} export function unpinRequest(status) { return { @@ -394,7 +394,7 @@ export function unpinRequest(status) { status, skipLoading: true, }; -}; +} export function unpinSuccess(status) { return { @@ -402,7 +402,7 @@ export function unpinSuccess(status) { status, skipLoading: true, }; -}; +} export function unpinFail(status, error) { return { @@ -411,4 +411,4 @@ export function unpinFail(status, error) { error, skipLoading: true, }; -}; +} diff --git a/app/javascript/mastodon/actions/markers.js b/app/javascript/mastodon/actions/markers.js index b7f406cb86..16ec7fe774 100644 --- a/app/javascript/mastodon/actions/markers.js +++ b/app/javascript/mastodon/actions/markers.js @@ -101,7 +101,7 @@ export function submitMarkersSuccess({ home, notifications }) { home: (home || {}).last_read_id, notifications: (notifications || {}).last_read_id, }; -}; +} export function submitMarkers(params = {}) { const result = (dispatch, getState) => debouncedSubmitMarkers(dispatch, getState); @@ -111,7 +111,7 @@ export function submitMarkers(params = {}) { } return result; -}; +} export const fetchMarkers = () => (dispatch, getState) => { const params = { timeline: ['notifications'] }; @@ -130,7 +130,7 @@ export function fetchMarkersRequest() { type: MARKERS_FETCH_REQUEST, skipLoading: true, }; -}; +} export function fetchMarkersSuccess(markers) { return { @@ -138,7 +138,7 @@ export function fetchMarkersSuccess(markers) { markers, skipLoading: true, }; -}; +} export function fetchMarkersFail(error) { return { @@ -147,4 +147,4 @@ export function fetchMarkersFail(error) { skipLoading: true, skipAlert: true, }; -}; +} diff --git a/app/javascript/mastodon/actions/modal.js b/app/javascript/mastodon/actions/modal.js index 3e576fab8e..ef2ae0e4c7 100644 --- a/app/javascript/mastodon/actions/modal.js +++ b/app/javascript/mastodon/actions/modal.js @@ -7,7 +7,7 @@ export function openModal(type, props) { modalType: type, modalProps: props, }; -}; +} export function closeModal(type, options = { ignoreFocus: false }) { return { @@ -15,4 +15,4 @@ export function closeModal(type, options = { ignoreFocus: false }) { modalType: type, ignoreFocus: options.ignoreFocus, }; -}; +} diff --git a/app/javascript/mastodon/actions/mutes.js b/app/javascript/mastodon/actions/mutes.js index d8874f353f..cbc42a67eb 100644 --- a/app/javascript/mastodon/actions/mutes.js +++ b/app/javascript/mastodon/actions/mutes.js @@ -26,13 +26,13 @@ export function fetchMutes() { dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => dispatch(fetchMutesFail(error))); }; -}; +} export function fetchMutesRequest() { return { type: MUTES_FETCH_REQUEST, }; -}; +} export function fetchMutesSuccess(accounts, next) { return { @@ -40,14 +40,14 @@ export function fetchMutesSuccess(accounts, next) { accounts, next, }; -}; +} export function fetchMutesFail(error) { return { type: MUTES_FETCH_FAIL, error, }; -}; +} export function expandMutes() { return (dispatch, getState) => { @@ -66,13 +66,13 @@ export function expandMutes() { dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => dispatch(expandMutesFail(error))); }; -}; +} export function expandMutesRequest() { return { type: MUTES_EXPAND_REQUEST, }; -}; +} export function expandMutesSuccess(accounts, next) { return { @@ -80,14 +80,14 @@ export function expandMutesSuccess(accounts, next) { accounts, next, }; -}; +} export function expandMutesFail(error) { return { type: MUTES_EXPAND_FAIL, error, }; -}; +} export function initMuteModal(account) { return dispatch => { diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index d4588db2c9..93588d3c0c 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -118,7 +118,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) { }); } }; -}; +} const excludeTypesFromSettings = state => state.getIn(['settings', 'notifications', 'shows']).filter(enabled => !enabled).keySeq().toJS(); @@ -197,14 +197,14 @@ export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) { done(); }); }; -}; +} export function expandNotificationsRequest(isLoadingMore) { return { type: NOTIFICATIONS_EXPAND_REQUEST, skipLoading: !isLoadingMore, }; -}; +} export function expandNotificationsSuccess(notifications, next, isLoadingMore, isLoadingRecent, usePendingItems) { return { @@ -215,7 +215,7 @@ export function expandNotificationsSuccess(notifications, next, isLoadingMore, i usePendingItems, skipLoading: !isLoadingMore, }; -}; +} export function expandNotificationsFail(error, isLoadingMore) { return { @@ -224,7 +224,7 @@ export function expandNotificationsFail(error, isLoadingMore) { skipLoading: !isLoadingMore, skipAlert: !isLoadingMore || error.name === 'AbortError', }; -}; +} export function clearNotifications() { return (dispatch, getState) => { @@ -234,14 +234,14 @@ export function clearNotifications() { api(getState).post('/api/v1/notifications/clear'); }; -}; +} export function scrollTopNotifications(top) { return { type: NOTIFICATIONS_SCROLL_TOP, top, }; -}; +} export function setFilter (filterType) { return dispatch => { @@ -253,7 +253,7 @@ export function setFilter (filterType) { dispatch(expandNotifications({ forceLoad: true })); dispatch(saveSettings()); }; -}; +} export const mountNotifications = () => ({ type: NOTIFICATIONS_MOUNT, @@ -291,7 +291,7 @@ export function requestBrowserPermission(callback = noOp) { callback(permission); }); }; -}; +} export function setBrowserSupport (value) { return { diff --git a/app/javascript/mastodon/actions/pin_statuses.js b/app/javascript/mastodon/actions/pin_statuses.js index 77abba7b5a..e2de98ca9d 100644 --- a/app/javascript/mastodon/actions/pin_statuses.js +++ b/app/javascript/mastodon/actions/pin_statuses.js @@ -18,13 +18,13 @@ export function fetchPinnedStatuses() { dispatch(fetchPinnedStatusesFail(error)); }); }; -}; +} export function fetchPinnedStatusesRequest() { return { type: PINNED_STATUSES_FETCH_REQUEST, }; -}; +} export function fetchPinnedStatusesSuccess(statuses, next) { return { @@ -32,11 +32,11 @@ export function fetchPinnedStatusesSuccess(statuses, next) { statuses, next, }; -}; +} export function fetchPinnedStatusesFail(error) { return { type: PINNED_STATUSES_FETCH_FAIL, error, }; -}; +} diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js index e333c0ea7c..666c6c223b 100644 --- a/app/javascript/mastodon/actions/search.js +++ b/app/javascript/mastodon/actions/search.js @@ -19,13 +19,13 @@ export function changeSearch(value) { type: SEARCH_CHANGE, value, }; -}; +} export function clearSearch() { return { type: SEARCH_CLEAR, }; -}; +} export function submitSearch() { return (dispatch, getState) => { @@ -60,13 +60,13 @@ export function submitSearch() { dispatch(fetchSearchFail(error)); }); }; -}; +} export function fetchSearchRequest() { return { type: SEARCH_FETCH_REQUEST, }; -}; +} export function fetchSearchSuccess(results, searchTerm) { return { @@ -74,14 +74,14 @@ export function fetchSearchSuccess(results, searchTerm) { results, searchTerm, }; -}; +} export function fetchSearchFail(error) { return { type: SEARCH_FETCH_FAIL, error, }; -}; +} export const expandSearch = type => (dispatch, getState) => { const value = getState().getIn(['search', 'value']); diff --git a/app/javascript/mastodon/actions/settings.js b/app/javascript/mastodon/actions/settings.js index 6bf85e4648..6ae001b6ff 100644 --- a/app/javascript/mastodon/actions/settings.js +++ b/app/javascript/mastodon/actions/settings.js @@ -15,7 +15,7 @@ export function changeSetting(path, value) { dispatch(saveSettings()); }; -}; +} const debouncedSave = debounce((dispatch, getState) => { if (getState().getIn(['settings', 'saved'])) { @@ -31,4 +31,4 @@ const debouncedSave = debounce((dispatch, getState) => { export function saveSettings() { return (dispatch, getState) => debouncedSave(dispatch, getState); -}; +} diff --git a/app/javascript/mastodon/actions/statuses.js b/app/javascript/mastodon/actions/statuses.js index 4ae1b21e01..275280a537 100644 --- a/app/javascript/mastodon/actions/statuses.js +++ b/app/javascript/mastodon/actions/statuses.js @@ -45,7 +45,7 @@ export function fetchStatusRequest(id, skipLoading) { id, skipLoading, }; -}; +} export function fetchStatus(id, forceFetch = false) { return (dispatch, getState) => { @@ -66,14 +66,14 @@ export function fetchStatus(id, forceFetch = false) { dispatch(fetchStatusFail(id, error, skipLoading)); }); }; -}; +} export function fetchStatusSuccess(skipLoading) { return { type: STATUS_FETCH_SUCCESS, skipLoading, }; -}; +} export function fetchStatusFail(id, error, skipLoading) { return { @@ -83,7 +83,7 @@ export function fetchStatusFail(id, error, skipLoading) { skipLoading, skipAlert: true, }; -}; +} export function redraft(status, raw_text) { return { @@ -91,7 +91,7 @@ export function redraft(status, raw_text) { status, raw_text, }; -}; +} export const editStatus = (id, routerHistory) => (dispatch, getState) => { let status = getState().getIn(['statuses', id]); @@ -147,21 +147,21 @@ export function deleteStatus(id, routerHistory, withRedraft = false) { dispatch(deleteStatusFail(id, error)); }); }; -}; +} export function deleteStatusRequest(id) { return { type: STATUS_DELETE_REQUEST, id: id, }; -}; +} export function deleteStatusSuccess(id) { return { type: STATUS_DELETE_SUCCESS, id: id, }; -}; +} export function deleteStatusFail(id, error) { return { @@ -169,7 +169,7 @@ export function deleteStatusFail(id, error) { id: id, error: error, }; -}; +} export const updateStatus = status => dispatch => dispatch(importFetchedStatus(status)); @@ -190,14 +190,14 @@ export function fetchContext(id) { dispatch(fetchContextFail(id, error)); }); }; -}; +} export function fetchContextRequest(id) { return { type: CONTEXT_FETCH_REQUEST, id, }; -}; +} export function fetchContextSuccess(id, ancestors, descendants) { return { @@ -207,7 +207,7 @@ export function fetchContextSuccess(id, ancestors, descendants) { descendants, statuses: ancestors.concat(descendants), }; -}; +} export function fetchContextFail(id, error) { return { @@ -216,7 +216,7 @@ export function fetchContextFail(id, error) { error, skipAlert: true, }; -}; +} export function muteStatus(id) { return (dispatch, getState) => { @@ -228,21 +228,21 @@ export function muteStatus(id) { dispatch(muteStatusFail(id, error)); }); }; -}; +} export function muteStatusRequest(id) { return { type: STATUS_MUTE_REQUEST, id, }; -}; +} export function muteStatusSuccess(id) { return { type: STATUS_MUTE_SUCCESS, id, }; -}; +} export function muteStatusFail(id, error) { return { @@ -250,7 +250,7 @@ export function muteStatusFail(id, error) { id, error, }; -}; +} export function unmuteStatus(id) { return (dispatch, getState) => { @@ -262,21 +262,21 @@ export function unmuteStatus(id) { dispatch(unmuteStatusFail(id, error)); }); }; -}; +} export function unmuteStatusRequest(id) { return { type: STATUS_UNMUTE_REQUEST, id, }; -}; +} export function unmuteStatusSuccess(id) { return { type: STATUS_UNMUTE_SUCCESS, id, }; -}; +} export function unmuteStatusFail(id, error) { return { @@ -284,7 +284,7 @@ export function unmuteStatusFail(id, error) { id, error, }; -}; +} export function hideStatus(ids) { if (!Array.isArray(ids)) { @@ -295,7 +295,7 @@ export function hideStatus(ids) { type: STATUS_HIDE, ids, }; -}; +} export function revealStatus(ids) { if (!Array.isArray(ids)) { @@ -306,7 +306,7 @@ export function revealStatus(ids) { type: STATUS_REVEAL, ids, }; -}; +} export function toggleStatusCollapse(id, isCollapsed) { return { @@ -314,7 +314,7 @@ export function toggleStatusCollapse(id, isCollapsed) { id, isCollapsed, }; -}; +} export const translateStatus = id => (dispatch, getState) => { dispatch(translateStatusRequest(id)); diff --git a/app/javascript/mastodon/actions/store.js b/app/javascript/mastodon/actions/store.js index 34dcafc510..b3030467b3 100644 --- a/app/javascript/mastodon/actions/store.js +++ b/app/javascript/mastodon/actions/store.js @@ -21,4 +21,4 @@ export function hydrateStore(rawState) { dispatch(hydrateCompose()); dispatch(importFetchedAccounts(Object.values(rawState.accounts))); }; -}; +} diff --git a/app/javascript/mastodon/actions/suggestions.js b/app/javascript/mastodon/actions/suggestions.js index 1f1116e75e..9e8cd1ea40 100644 --- a/app/javascript/mastodon/actions/suggestions.js +++ b/app/javascript/mastodon/actions/suggestions.js @@ -21,14 +21,14 @@ export function fetchSuggestions(withRelationships = false) { } }).catch(error => dispatch(fetchSuggestionsFail(error))); }; -}; +} export function fetchSuggestionsRequest() { return { type: SUGGESTIONS_FETCH_REQUEST, skipLoading: true, }; -}; +} export function fetchSuggestionsSuccess(suggestions) { return { @@ -36,7 +36,7 @@ export function fetchSuggestionsSuccess(suggestions) { suggestions, skipLoading: true, }; -}; +} export function fetchSuggestionsFail(error) { return { @@ -45,7 +45,7 @@ export function fetchSuggestionsFail(error) { skipLoading: true, skipAlert: true, }; -}; +} export const dismissSuggestion = accountId => (dispatch, getState) => { dispatch({ diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index a3434908f0..4f772a55f0 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -51,7 +51,7 @@ export function updateTimeline(timeline, status, accept) { dispatch(submitMarkers()); } }; -}; +} export function deleteFromTimelines(id) { return (dispatch, getState) => { @@ -67,13 +67,13 @@ export function deleteFromTimelines(id) { reblogOf, }); }; -}; +} export function clearTimeline(timeline) { return (dispatch) => { dispatch({ type: TIMELINE_CLEAR, timeline }); }; -}; +} const noOp = () => {}; @@ -122,7 +122,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { done(); }); }; -}; +} export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) { return (dispatch, getState) => { @@ -168,7 +168,7 @@ export function expandTimelineRequest(timeline, isLoadingMore) { timeline, skipLoading: !isLoadingMore, }; -}; +} export function expandTimelineSuccess(timeline, statuses, next, partial, isLoadingRecent, isLoadingMore, usePendingItems) { return { @@ -181,7 +181,7 @@ export function expandTimelineSuccess(timeline, statuses, next, partial, isLoadi usePendingItems, skipLoading: !isLoadingMore, }; -}; +} export function expandTimelineFail(timeline, error, isLoadingMore) { return { @@ -191,7 +191,7 @@ export function expandTimelineFail(timeline, error, isLoadingMore) { skipLoading: !isLoadingMore, skipNotFound: timeline.startsWith('account:'), }; -}; +} export function scrollTopTimeline(timeline, top) { return { @@ -199,7 +199,7 @@ export function scrollTopTimeline(timeline, top) { timeline, top, }; -}; +} export function connectTimeline(timeline) { return { @@ -207,7 +207,7 @@ export function connectTimeline(timeline) { timeline, usePendingItems: preferPendingItems, }; -}; +} export const disconnectTimeline = timeline => ({ type: TIMELINE_DISCONNECT, diff --git a/app/javascript/mastodon/common.js b/app/javascript/mastodon/common.js index 6818aa5d54..8f35053036 100644 --- a/app/javascript/mastodon/common.js +++ b/app/javascript/mastodon/common.js @@ -9,4 +9,4 @@ export function start() { } catch (e) { // If called twice } -}; +} diff --git a/app/javascript/mastodon/compare_id.js b/app/javascript/mastodon/compare_id.js index 66cf51c4b6..d2bd74f447 100644 --- a/app/javascript/mastodon/compare_id.js +++ b/app/javascript/mastodon/compare_id.js @@ -8,4 +8,4 @@ export default function compareId (id1, id2) { } else { return id1.length > id2.length ? 1 : -1; } -}; +} diff --git a/app/javascript/mastodon/components/admin/Retention.js b/app/javascript/mastodon/components/admin/Retention.js index 47c9e71513..f312a45eb2 100644 --- a/app/javascript/mastodon/components/admin/Retention.js +++ b/app/javascript/mastodon/components/admin/Retention.js @@ -137,7 +137,7 @@ export default class Retention extends React.PureComponent { break; default: title = ; - }; + } return (
diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.js index 275bd50aad..e6540e825d 100644 --- a/app/javascript/mastodon/features/closed_registrations_modal/index.js +++ b/app/javascript/mastodon/features/closed_registrations_modal/index.js @@ -72,4 +72,4 @@ class ClosedRegistrationsModal extends ImmutablePureComponent { ); } -}; +} diff --git a/app/javascript/mastodon/features/compose/util/counter.js b/app/javascript/mastodon/features/compose/util/counter.js index 7aa9e87b1b..5a68bad992 100644 --- a/app/javascript/mastodon/features/compose/util/counter.js +++ b/app/javascript/mastodon/features/compose/util/counter.js @@ -6,4 +6,4 @@ export function countableText(inputText) { return inputText .replace(urlRegex, urlPlaceholder) .replace(/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/ig, '$1@$3'); -}; +} diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js index ede8907e50..ac7863ed38 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js +++ b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js @@ -38,7 +38,7 @@ class ColumnSettings extends React.PureComponent { } else { return tags; } - }; + } onSelect = mode => value => { const oldValue = this.tags(mode); @@ -98,7 +98,7 @@ class ColumnSettings extends React.PureComponent { default: return ''; } - }; + } render () { const { settings, onChange } = this.props; diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.js index f1829d34dd..c2e72e2e9a 100644 --- a/app/javascript/mastodon/features/list_timeline/index.js +++ b/app/javascript/mastodon/features/list_timeline/index.js @@ -126,7 +126,7 @@ class ListTimeline extends React.PureComponent { onConfirm: () => { dispatch(deleteList(id)); - if (!!columnId) { + if (columnId) { dispatch(removeColumn(columnId)); } else { this.context.router.history.push('/lists'); diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js index cc8cc32850..038cc35535 100644 --- a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js +++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js @@ -89,4 +89,4 @@ class DisabledAccountBanner extends React.PureComponent { ); } -}; +} diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.js index c29aac4185..2b83d6378f 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.js +++ b/app/javascript/mastodon/features/ui/components/link_footer.js @@ -91,4 +91,4 @@ class LinkFooter extends React.PureComponent { ); } -}; +} diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.js index 2ee06c3ff6..205dd6f107 100644 --- a/app/javascript/mastodon/features/ui/util/react_router_helpers.js +++ b/app/javascript/mastodon/features/ui/util/react_router_helpers.js @@ -46,7 +46,7 @@ export class WrappedRoute extends React.Component { return { hasError: true, }; - }; + } state = { hasError: false, diff --git a/app/javascript/mastodon/middleware/errors.js b/app/javascript/mastodon/middleware/errors.js index 0a65fd3211..708df6bb8d 100644 --- a/app/javascript/mastodon/middleware/errors.js +++ b/app/javascript/mastodon/middleware/errors.js @@ -14,4 +14,4 @@ export default function errorsMiddleware() { return next(action); }; -}; +} diff --git a/app/javascript/mastodon/middleware/loading_bar.js b/app/javascript/mastodon/middleware/loading_bar.js index a98f1bb2b6..da8cc4c7d3 100644 --- a/app/javascript/mastodon/middleware/loading_bar.js +++ b/app/javascript/mastodon/middleware/loading_bar.js @@ -22,4 +22,4 @@ export default function loadingBarMiddleware(config = {}) { return next(action); }; -}; +} diff --git a/app/javascript/mastodon/middleware/sounds.js b/app/javascript/mastodon/middleware/sounds.js index 9f1bc02b97..7f23889836 100644 --- a/app/javascript/mastodon/middleware/sounds.js +++ b/app/javascript/mastodon/middleware/sounds.js @@ -43,4 +43,4 @@ export default function soundsMiddleware() { return next(action); }; -}; +} diff --git a/app/javascript/mastodon/reducers/accounts.js b/app/javascript/mastodon/reducers/accounts.js index b5589668c1..44973e9395 100644 --- a/app/javascript/mastodon/reducers/accounts.js +++ b/app/javascript/mastodon/reducers/accounts.js @@ -35,4 +35,4 @@ export default function accounts(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/accounts_counters.js b/app/javascript/mastodon/reducers/accounts_counters.js index 9ebf72af9b..4e1256d1bd 100644 --- a/app/javascript/mastodon/reducers/accounts_counters.js +++ b/app/javascript/mastodon/reducers/accounts_counters.js @@ -35,4 +35,4 @@ export default function accountsCounters(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js index 444bbda191..8412ad4d0c 100644 --- a/app/javascript/mastodon/reducers/accounts_map.js +++ b/app/javascript/mastodon/reducers/accounts_map.js @@ -17,4 +17,4 @@ export default function accountsMap(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/alerts.js b/app/javascript/mastodon/reducers/alerts.js index c62ab0dfdb..5b3010a599 100644 --- a/app/javascript/mastodon/reducers/alerts.js +++ b/app/javascript/mastodon/reducers/alerts.js @@ -23,4 +23,4 @@ export default function alerts(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/announcements.js b/app/javascript/mastodon/reducers/announcements.js index 34e08eac88..b53f93a4a9 100644 --- a/app/javascript/mastodon/reducers/announcements.js +++ b/app/javascript/mastodon/reducers/announcements.js @@ -99,4 +99,4 @@ export default function announcementsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 60b0cfb577..9ce7e97ed8 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -108,7 +108,7 @@ function statusToTextMentions(state, status) { } return set.union(status.get('mentions').filterNot(mention => mention.get('id') === me).map(mention => `@${mention.get('acct')} `)).join(''); -}; +} function clearAll(state) { return state.withMutations(map => { @@ -126,7 +126,7 @@ function clearAll(state) { map.set('poll', null); map.set('idempotencyKey', uuid()); }); -}; +} function appendMedia(state, media, file) { const prevSize = state.get('media_attachments').size; @@ -146,7 +146,7 @@ function appendMedia(state, media, file) { map.set('sensitive', true); } }); -}; +} function removeMedia(state, mediaId) { const prevSize = state.get('media_attachments').size; @@ -159,7 +159,7 @@ function removeMedia(state, mediaId) { map.set('sensitive', false); } }); -}; +} const insertSuggestion = (state, position, token, completion, path) => { return state.withMutations(map => { @@ -524,4 +524,4 @@ export default function compose(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/contexts.js b/app/javascript/mastodon/reducers/contexts.js index 4c2d6cc8a3..7aa95b5d50 100644 --- a/app/javascript/mastodon/reducers/contexts.js +++ b/app/javascript/mastodon/reducers/contexts.js @@ -103,4 +103,4 @@ export default function replies(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/conversations.js b/app/javascript/mastodon/reducers/conversations.js index 975418eda2..feccf18f03 100644 --- a/app/javascript/mastodon/reducers/conversations.js +++ b/app/javascript/mastodon/reducers/conversations.js @@ -113,4 +113,4 @@ export default function conversations(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/custom_emojis.js b/app/javascript/mastodon/reducers/custom_emojis.js index d2c801ade4..0338c2e532 100644 --- a/app/javascript/mastodon/reducers/custom_emojis.js +++ b/app/javascript/mastodon/reducers/custom_emojis.js @@ -12,4 +12,4 @@ export default function custom_emojis(state = initialState, action) { } return state; -}; +} diff --git a/app/javascript/mastodon/reducers/domain_lists.js b/app/javascript/mastodon/reducers/domain_lists.js index eff97fbd60..6bf8cee681 100644 --- a/app/javascript/mastodon/reducers/domain_lists.js +++ b/app/javascript/mastodon/reducers/domain_lists.js @@ -22,4 +22,4 @@ export default function domainLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/filters.js b/app/javascript/mastodon/reducers/filters.js index f4f97cd3a8..e1f0140465 100644 --- a/app/javascript/mastodon/reducers/filters.js +++ b/app/javascript/mastodon/reducers/filters.js @@ -41,4 +41,4 @@ export default function filters(state = ImmutableMap(), action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/height_cache.js b/app/javascript/mastodon/reducers/height_cache.js index 2f5716fae9..77a59c8c56 100644 --- a/app/javascript/mastodon/reducers/height_cache.js +++ b/app/javascript/mastodon/reducers/height_cache.js @@ -20,4 +20,4 @@ export default function statuses(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/list_adder.js b/app/javascript/mastodon/reducers/list_adder.js index b8c1b0e269..b144610a52 100644 --- a/app/javascript/mastodon/reducers/list_adder.js +++ b/app/javascript/mastodon/reducers/list_adder.js @@ -44,4 +44,4 @@ export default function listAdderReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/list_editor.js b/app/javascript/mastodon/reducers/list_editor.js index 91e524dd55..6e020dbe64 100644 --- a/app/javascript/mastodon/reducers/list_editor.js +++ b/app/javascript/mastodon/reducers/list_editor.js @@ -93,4 +93,4 @@ export default function listEditorReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/lists.js b/app/javascript/mastodon/reducers/lists.js index f30ffbcbdb..ba3e2b3cb5 100644 --- a/app/javascript/mastodon/reducers/lists.js +++ b/app/javascript/mastodon/reducers/lists.js @@ -34,4 +34,4 @@ export default function lists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/markers.js b/app/javascript/mastodon/reducers/markers.js index fb1572ff59..e3d1b1936b 100644 --- a/app/javascript/mastodon/reducers/markers.js +++ b/app/javascript/mastodon/reducers/markers.js @@ -22,4 +22,4 @@ export default function markers(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/media_attachments.js b/app/javascript/mastodon/reducers/media_attachments.js index 24119f6286..7a155b77fb 100644 --- a/app/javascript/mastodon/reducers/media_attachments.js +++ b/app/javascript/mastodon/reducers/media_attachments.js @@ -12,4 +12,4 @@ export default function meta(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/meta.js b/app/javascript/mastodon/reducers/meta.js index 5040a340fc..755dd73905 100644 --- a/app/javascript/mastodon/reducers/meta.js +++ b/app/javascript/mastodon/reducers/meta.js @@ -19,4 +19,4 @@ export default function meta(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/missed_updates.js b/app/javascript/mastodon/reducers/missed_updates.js index b71d62d828..a3141d854e 100644 --- a/app/javascript/mastodon/reducers/missed_updates.js +++ b/app/javascript/mastodon/reducers/missed_updates.js @@ -18,4 +18,4 @@ export default function missed_updates(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/modal.js b/app/javascript/mastodon/reducers/modal.js index 3eab07d9d4..edde2f947e 100644 --- a/app/javascript/mastodon/reducers/modal.js +++ b/app/javascript/mastodon/reducers/modal.js @@ -36,4 +36,4 @@ export default function modal(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js index eb5368198c..44fa1c6134 100644 --- a/app/javascript/mastodon/reducers/notifications.js +++ b/app/javascript/mastodon/reducers/notifications.js @@ -303,4 +303,4 @@ export default function notifications(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/picture_in_picture.js b/app/javascript/mastodon/reducers/picture_in_picture.js index 48772ae7f3..10fbc16958 100644 --- a/app/javascript/mastodon/reducers/picture_in_picture.js +++ b/app/javascript/mastodon/reducers/picture_in_picture.js @@ -22,4 +22,4 @@ export default function pictureInPicture(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/push_notifications.js b/app/javascript/mastodon/reducers/push_notifications.js index c48cfb705a..6a62ecb816 100644 --- a/app/javascript/mastodon/reducers/push_notifications.js +++ b/app/javascript/mastodon/reducers/push_notifications.js @@ -50,4 +50,4 @@ export default function push_subscriptions(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/relationships.js b/app/javascript/mastodon/reducers/relationships.js index 850ece3516..a3b01a0f64 100644 --- a/app/javascript/mastodon/reducers/relationships.js +++ b/app/javascript/mastodon/reducers/relationships.js @@ -82,4 +82,4 @@ export default function relationships(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/search.js b/app/javascript/mastodon/reducers/search.js index 7dceac6b93..d3e71da9d9 100644 --- a/app/javascript/mastodon/reducers/search.js +++ b/app/javascript/mastodon/reducers/search.js @@ -64,4 +64,4 @@ export default function search(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js index f9d3236e4a..f48d58bdc5 100644 --- a/app/javascript/mastodon/reducers/settings.js +++ b/app/javascript/mastodon/reducers/settings.js @@ -171,4 +171,4 @@ export default function settings(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/status_lists.js b/app/javascript/mastodon/reducers/status_lists.js index 106f64d32b..b1716e9cf5 100644 --- a/app/javascript/mastodon/reducers/status_lists.js +++ b/app/javascript/mastodon/reducers/status_lists.js @@ -145,4 +145,4 @@ export default function statusLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index c30c1e2ccd..a39ac6b649 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -92,4 +92,4 @@ export default function statuses(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/suggestions.js b/app/javascript/mastodon/reducers/suggestions.js index 1a6e66ee70..0b4bc77899 100644 --- a/app/javascript/mastodon/reducers/suggestions.js +++ b/app/javascript/mastodon/reducers/suggestions.js @@ -34,4 +34,4 @@ export default function suggestionsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/tags.js b/app/javascript/mastodon/reducers/tags.js index d24098e394..ea73af452a 100644 --- a/app/javascript/mastodon/reducers/tags.js +++ b/app/javascript/mastodon/reducers/tags.js @@ -22,4 +22,4 @@ export default function tags(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js index d72109e696..973e3cf184 100644 --- a/app/javascript/mastodon/reducers/timelines.js +++ b/app/javascript/mastodon/reducers/timelines.js @@ -223,4 +223,4 @@ export default function timelines(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/trends.js b/app/javascript/mastodon/reducers/trends.js index 3e01bd07d0..3d5f6ecd67 100644 --- a/app/javascript/mastodon/reducers/trends.js +++ b/app/javascript/mastodon/reducers/trends.js @@ -43,4 +43,4 @@ export default function trendsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js index 88b51fb63c..2a80cf6398 100644 --- a/app/javascript/mastodon/reducers/user_lists.js +++ b/app/javascript/mastodon/reducers/user_lists.js @@ -187,4 +187,4 @@ export default function userLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/mastodon/store/configureStore.js b/app/javascript/mastodon/store/configureStore.js index e18af842ff..0e0d45c668 100644 --- a/app/javascript/mastodon/store/configureStore.js +++ b/app/javascript/mastodon/store/configureStore.js @@ -12,4 +12,4 @@ export default function configureStore() { errorsMiddleware(), soundsMiddleware(), ), window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f)); -}; +} diff --git a/app/javascript/mastodon/uuid.js b/app/javascript/mastodon/uuid.js index be18993057..0d2cfaa776 100644 --- a/app/javascript/mastodon/uuid.js +++ b/app/javascript/mastodon/uuid.js @@ -1,3 +1,3 @@ export default function uuid(a) { return a ? (a^Math.random() * 16 >> a / 4).toString(16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, uuid); -}; +} diff --git a/streaming/index.js b/streaming/index.js index 34bf1d1fca..0350c488da 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -717,7 +717,7 @@ const startWorker = async (workerId) => { Object.keys(req.cachedFilters).forEach((key) => { req.cachedFilters[key].regexp = new RegExp(req.cachedFilters[key].keywords.map(([keyword, whole_word]) => { - let expr = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');; + let expr = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); if (whole_word) { if (/^[\w]/.test(expr)) { From 2bad619d171f8516137725c83878cdf5f6f61aa9 Mon Sep 17 00:00:00 2001 From: Kai <2644614+Schweinepriester@users.noreply.github.com> Date: Mon, 19 Dec 2022 01:46:22 +0100 Subject: [PATCH 0006/1220] Change HTTP to HTTPS for links in CODE_OF_CONDUCT (#22465) --- CODE_OF_CONDUCT.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 7cec571806..ea5f64b0bc 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -40,7 +40,7 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version] -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ From c1de6730604f526a6c2d19adcf6f195352de0641 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 19 Dec 2022 17:55:17 +0100 Subject: [PATCH 0007/1220] Fix suspension worker crashing on S3-compatible setups without ACL support (#22487) --- app/services/suspend_account_service.rb | 5 +++++ app/services/unsuspend_account_service.rb | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index b8dc8d5e09..6856c2c515 100644 --- a/app/services/suspend_account_service.rb +++ b/app/services/suspend_account_service.rb @@ -76,10 +76,15 @@ class SuspendAccountService < BaseService styles.each do |style| case Paperclip::Attachment.default_options[:storage] when :s3 + # Prevent useless S3 calls if ACLs are disabled + next if ENV['S3_PERMISSION'] == '' + begin attachment.s3_object(style).acl.put(acl: 'private') rescue Aws::S3::Errors::NoSuchKey Rails.logger.warn "Tried to change acl on non-existent key #{attachment.s3_object(style).key}" + rescue Aws::S3::Errors::NotImplemented => e + Rails.logger.error "Error trying to change ACL on #{attachment.s3_object(style).key}: #{e.message}" end when :fog # Not supported diff --git a/app/services/unsuspend_account_service.rb b/app/services/unsuspend_account_service.rb index 39d8a6ba7f..534203dce1 100644 --- a/app/services/unsuspend_account_service.rb +++ b/app/services/unsuspend_account_service.rb @@ -73,10 +73,15 @@ class UnsuspendAccountService < BaseService styles.each do |style| case Paperclip::Attachment.default_options[:storage] when :s3 + # Prevent useless S3 calls if ACLs are disabled + next if ENV['S3_PERMISSION'] == '' + begin attachment.s3_object(style).acl.put(acl: Paperclip::Attachment.default_options[:s3_permissions]) rescue Aws::S3::Errors::NoSuchKey Rails.logger.warn "Tried to change acl on non-existent key #{attachment.s3_object(style).key}" + rescue Aws::S3::Errors::NotImplemented => e + Rails.logger.error "Error trying to change ACL on #{attachment.s3_object(style).key}: #{e.message}" end when :fog # Not supported From 6a1d41635bd71b419c37b09581af2fb9901b3f04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:07:56 +0900 Subject: [PATCH 0008/1220] Bump sass from 1.56.2 to 1.57.0 (#22519) Bumps [sass](https://github.com/sass/dart-sass) from 1.56.2 to 1.57.0. - [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.56.2...1.57.0) --- updated-dependencies: - dependency-name: sass 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 9f0c836fda..ba39204611 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.56.2", + "sass": "^1.57.0", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index abbd51eb9c..5143a29c52 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.56.2: - version "1.56.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.2.tgz#9433b345ab3872996c82a53a58c014fd244fd095" - integrity sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w== +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== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From fcaeae7761d7ca7a1587e61db87e38cf1a25b339 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:08:22 +0900 Subject: [PATCH 0009/1220] Bump fog-core from 2.1.0 to 2.3.0 (#22521) 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> --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 92620d991c..fe7bff5653 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,7 @@ gem 'pghero', '~> 2.8' gem 'dotenv-rails', '~> 2.8' gem 'aws-sdk-s3', '~> 1.117', require: false -gem 'fog-core', '<= 2.1.0' +gem 'fog-core', '<= 2.4.0' gem 'fog-openstack', '~> 0.3', require: false gem 'kt-paperclip', '~> 7.1' gem 'blurhash', '~> 0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 25ffebdbe1..f23143639d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -226,7 +226,7 @@ GEM erubi (1.11.0) et-orbi (1.2.7) tzinfo - excon (0.76.0) + excon (0.95.0) fabrication (2.30.0) faker (3.0.0) i18n (>= 1.8.11, < 2) @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.1.0) + fog-core (2.3.0) builder - excon (~> 0.58) - formatador (~> 0.2) + excon (~> 0.71) + formatador (>= 0.2, < 2.0) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.10) - fog-core (>= 1.45, <= 2.1.0) + fog-openstack (0.3.2) + fog-core (~> 2.1) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (0.2.5) + formatador (1.1.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) @@ -785,7 +785,7 @@ DEPENDENCIES faker (~> 3.0) fast_blank (~> 1.0) fastimage - fog-core (<= 2.1.0) + fog-core (<= 2.4.0) fog-openstack (~> 0.3) fuubar (~> 2.5) gitlab-omniauth-openid-connect (~> 0.10.0) From ef09016f350347b709a9706cdc26f7da43af0cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:08:53 +0900 Subject: [PATCH 0010/1220] Bump pundit from 2.2.0 to 2.3.0 (#22516) Bumps [pundit](https://github.com/varvet/pundit) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/varvet/pundit/releases) - [Changelog](https://github.com/varvet/pundit/blob/main/CHANGELOG.md) - [Commits](https://github.com/varvet/pundit/commits) --- updated-dependencies: - dependency-name: pundit 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 fe7bff5653..f339718982 100644 --- a/Gemfile +++ b/Gemfile @@ -67,7 +67,7 @@ gem 'ox', '~> 2.14' gem 'parslet' gem 'posix-spawn' gem 'public_suffix', '~> 5.0' -gem 'pundit', '~> 2.2' +gem 'pundit', '~> 2.3' gem 'premailer-rails' gem 'rack-attack', '~> 6.6' gem 'rack-cors', '~> 1.1', require: 'rack/cors' diff --git a/Gemfile.lock b/Gemfile.lock index f23143639d..228ec7be30 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -486,7 +486,7 @@ GEM public_suffix (5.0.1) puma (5.6.5) nio4r (~> 2.0) - pundit (2.2.0) + pundit (2.3.0) activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.1) @@ -831,7 +831,7 @@ DEPENDENCIES pry-rails (~> 0.3) public_suffix (~> 5.0) puma (~> 5.6) - pundit (~> 2.2) + pundit (~> 2.3) rack (~> 2.2.4) rack-attack (~> 6.6) rack-cors (~> 1.1) From c04b762b9c85244c0a5dd5a7b78a402c8992796b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:09:14 +0900 Subject: [PATCH 0011/1220] Bump http from 5.1.0 to 5.1.1 (#22515) Bumps [http](https://github.com/httprb/http) from 5.1.0 to 5.1.1. - [Release notes](https://github.com/httprb/http/releases) - [Changelog](https://github.com/httprb/http/blob/main/CHANGES.md) - [Commits](https://github.com/httprb/http/compare/v5.1.0...v5.1.1) --- updated-dependencies: - dependency-name: http 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 228ec7be30..949ac5c149 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -299,7 +299,7 @@ GEM hiredis (0.6.3) hkdf (0.3.0) htmlentities (4.3.4) - http (5.1.0) + http (5.1.1) addressable (~> 2.8) http-cookie (~> 1.0) http-form_data (~> 2.2) From 919747322f38858800d8ebea824ef7dacce63fb4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:10:09 +0900 Subject: [PATCH 0012/1220] Bump scenic from 1.6.0 to 1.7.0 (#22258) Bumps [scenic](https://github.com/scenic-views/scenic) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/scenic-views/scenic/releases) - [Changelog](https://github.com/scenic-views/scenic/blob/main/CHANGELOG.md) - [Commits](https://github.com/scenic-views/scenic/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: scenic 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 f339718982..bfbb14f08b 100644 --- a/Gemfile +++ b/Gemfile @@ -79,7 +79,7 @@ gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 2.1' gem 'ruby-progressbar', '~> 1.11' gem 'sanitize', '~> 6.0' -gem 'scenic', '~> 1.6' +gem 'scenic', '~> 1.7' gem 'sidekiq', '~> 6.5' gem 'sidekiq-scheduler', '~> 4.0' gem 'sidekiq-unique-jobs', '~> 7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 949ac5c149..eb262fd96e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -620,7 +620,7 @@ GEM sanitize (6.0.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - scenic (1.6.0) + scenic (1.7.0) activerecord (>= 4.0.0) railties (>= 4.0.0) semantic_range (3.0.0) @@ -855,7 +855,7 @@ DEPENDENCIES rubocop-rspec ruby-progressbar (~> 1.11) sanitize (~> 6.0) - scenic (~> 1.6) + scenic (~> 1.7) sidekiq (~> 6.5) sidekiq-bulk (~> 0.2.0) sidekiq-scheduler (~> 4.0) From 628b350516b8a4121d91995941b316db24496a7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 19:44:56 +0900 Subject: [PATCH 0013/1220] 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> --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eb262fd96e..00e8dcfd92 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.3.0) + fog-core (2.1.0) builder - excon (~> 0.71) - formatador (>= 0.2, < 2.0) + excon (~> 0.58) + formatador (~> 0.2) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.2) - fog-core (~> 2.1) + fog-openstack (0.3.10) + fog-core (>= 1.45, <= 2.1.0) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (1.1.0) + formatador (0.3.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) From 749c360ba06cef2c2ff1f0592c6a774b584909aa Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 20 Dec 2022 12:37:14 +0100 Subject: [PATCH 0014/1220] =?UTF-8?q?Reuse=20upstream's=20=E2=80=9CPosts?= =?UTF-8?q?=20and=20replies=E2=80=9D=20as=20column=20heading=20(#2023)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream does not have a column heading for “Posts and replies”, but the text itself exists in a similar context, so re-use that translatable string so that we can use upstream's translations. --- app/javascript/flavours/glitch/features/status/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index e190652b06..c716e4f0f5 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -67,7 +67,7 @@ const messages = defineMessages({ detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' }, replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, - tootHeading: { id: 'column.toot', defaultMessage: 'Toots and replies' }, + tootHeading: { id: 'account.posts_with_replies', defaultMessage: 'Posts and replies' }, }); const makeMapStateToProps = () => { From ee71d42c2965cba43ef9e28003426c9a7c863801 Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Tue, 20 Dec 2022 12:45:53 +0100 Subject: [PATCH 0015/1220] Add missing translation keys (#2010) * Add missing locale keys Added missing translation keys to en.js to make translation easier and more complete. Signed-off-by: Plastikmensch * Remove translation keys for explore Have been added to vanilla in #2014 Signed-off-by: Plastikmensch * Remove unused key Sorry, originally worked on this on my custom fork, which has this key, before I decided to work on glitch. Signed-off-by: Plastikmensch Signed-off-by: Plastikmensch --- app/javascript/flavours/glitch/locales/en.js | 127 ++++++++++++++++++- 1 file changed, 126 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/locales/en.js b/app/javascript/flavours/glitch/locales/en.js index 90e924d4a6..fd3f17683d 100644 --- a/app/javascript/flavours/glitch/locales/en.js +++ b/app/javascript/flavours/glitch/locales/en.js @@ -5,12 +5,36 @@ const messages = { 'layout.auto': 'Auto', 'layout.current_is': 'Your current layout is:', 'layout.desktop': 'Desktop', - 'layout.mobile': 'Mobile', + 'layout.single': 'Mobile', + 'layout.hint.auto': 'Automatically chose layout based on “Enable advanced web interface” setting and screen size.', + 'layout.hint.desktop': 'Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.', + 'layout.hint.single': 'Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.', 'navigation_bar.app_settings': 'App settings', + 'navigation_bar.misc': 'Misc', + 'navigation_bar.keyboard_shortcuts': 'Keyboard shortcuts', + 'navigation_bar.info': 'Extended information', + 'navigation_bar.featured_users': 'Featured users', 'getting_started.onboarding': 'Show me around', + 'onboarding.next': 'Next', + 'onboarding.done': 'Done', + 'onboarding.skip': 'Skip', '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.welcome': 'Welcome to {domain}!', + 'onboarding.page_one.handle': 'You are on {domain}, so your full handle is {handle}', + 'onboarding.page_two.compose': 'Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.', + 'onboarding.page_three.search': 'Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.', + 'onboarding.page_three.profile': 'Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.', + 'onboarding.page_four.home': 'The home timeline shows posts from people you follow.', + 'onboarding.page_four.notifications': 'The notifications column shows when someone interacts with you.', + 'onboarding.page_five.public_timelines': 'The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.', + 'onboarding.page_six.admin': 'Your instance\'s admin is {admin}.', + 'onboarding.page_six.read_guidelines': 'Please read {domain}\'s {guidelines}!', + 'onboarding.page_six.guidelines': 'community guidelines', + 'onboarding.page_six.almost_done': 'Almost done...', 'onboarding.page_six.github': '{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.', + 'onboarding.page_six.apps_available': 'There are {apps} available for iOS, Android and other platforms.', + 'onboarding.page_six.various_app': 'mobile apps', + 'onboarding.page_six.appetoot': 'Bon Appetoot!', 'settings.auto_collapse': 'Automatic collapsing', 'settings.auto_collapse_all': 'Everything', 'settings.auto_collapse_lengthy': 'Lengthy toots', @@ -22,18 +46,99 @@ const messages = { 'settings.close': 'Close', 'settings.collapsed_statuses': 'Collapsed toots', 'settings.enable_collapsed': 'Enable collapsed toots', + 'settings.enable_collapsed_hint': 'Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature', 'settings.general': 'General', + 'settings.compose_box_opts': 'Compose box', + 'settings.side_arm': 'Secondary toot button:', + 'settings.side_arm.none': 'None', + 'settings.side_arm_reply_mode': 'When replying to a toot, the secondary toot button should:', + 'settings.side_arm_reply_mode.keep': 'Keep its set privacy', + 'settings.side_arm_reply_mode.copy': 'Copy privacy setting of the toot being replied to', + 'settings.side_arm_reply_mode.restrict': 'Restrict privacy setting to that of the toot being replied to', + 'settings.always_show_spoilers_field': 'Always enable the Content Warning field', + 'settings.prepend_cw_re': 'Prepend “re: ” to content warnings when replying', + 'settings.preselect_on_reply': 'Pre-select usernames on reply', + 'settings.preselect_on_reply_hint': 'When replying to a conversation with multiple participants, pre-select usernames past the first', + 'settings.confirm_missing_media_description': 'Show confirmation dialog before sending toots lacking media descriptions', + 'settings.confirm_before_clearing_draft': 'Show confirmation dialog before overwriting the message being composed', + 'settings.show_content_type_choice': 'Show content-type choice when authoring toots', + 'settings.content_warnings': 'Content Warnings', + 'settings.content_warnings.regexp': 'Regular expression', + 'settings.content_warnings_shared_state': 'Show/hide content of all copies at once', + 'settings.content_warnings_shared_state_hint': 'Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW', + 'settings.content_warnings_media_outside': 'Display media attachments outside content warnings', + 'settings.content_warnings_media_outside_hint': 'Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments', + 'settings.content_warnings_unfold_opts': 'Auto-unfolding options', + 'settings.enable_content_warnings_auto_unfold': 'Automatically unfold content-warnings', + 'settings.deprecated_setting': 'This setting is now controlled from Mastodon\'s {settings_page_link}', + 'settings.shared_settings_link': 'user preferences', + 'settings.content_warnings_filter': 'Content warnings to not automatically unfold:', + 'settings.layout_opts': 'Layout options', + 'settings.rewrite_mentions_no': 'Do not rewrite mentions', + 'settings.rewrite_mentions_acct': 'Rewrite with username and domain (when the account is remote)', + 'settings.rewrite_mentions_username': 'Rewrite with username', + 'settings.show_reply_counter': 'Display an estimate of the reply count', + 'settings.hicolor_privacy_icons': 'High color privacy icons', + 'settings.hicolor_privacy_icons.hint': 'Display privacy icons in bright and easily distinguishable colors', + 'settings.confirm_boost_missing_media_description': 'Show confirmation dialog before boosting toots lacking media descriptions', + 'settings.tag_misleading_links': 'Tag misleading links', + 'settings.tag_misleading_links.hint': 'Add a visual indication with the link target host to every link not mentioning it explicitly', + 'settings.rewrite_mentions': 'Rewrite mentions in displayed statuses', + 'settings.notifications_opts': 'Notifications options', + 'settings.notifications.tab_badge': 'Unread notifications badge', + 'settings.notifications.tab_badge.hint': 'Display a badge for unread notifications in the column icons when the notifications column isn\'t open', + 'settings.notifications.favicon_badge': 'Unread notifications favicon badge', + 'settings.notifications.favicon_badge.hint': 'Add a badge for unread notifications to the favicon', + 'settings.status_icons': 'Toot icons', + 'settings.status_icons_language': 'Language indicator', + 'settings.status_icons_reply': 'Reply indicator', + 'settings.status_icons_local_only': 'Local-only indicator', + 'settings.status_icons_media': 'Media and poll indicators', + 'settings.status_icons_visibility': 'Toot privacy indicator', + 'settings.layout': 'Layout:', 'settings.image_backgrounds': 'Image backgrounds', 'settings.image_backgrounds_media': 'Preview collapsed toot media', + 'settings.image_backgrounds_media_hint': 'If the post has any media attachment, use the first one as a background', 'settings.image_backgrounds_users': 'Give collapsed toots an image background', 'settings.media': 'Media', 'settings.media_letterbox': 'Letterbox media', + 'settings.media_letterbox_hint': 'Scale down and letterbox media to fill the image containers instead of stretching and cropping them', 'settings.media_fullwidth': 'Full-width media previews', + 'settings.inline_preview_cards': 'Inline preview cards for external links', + 'settings.media_reveal_behind_cw': 'Reveal sensitive media behind a CW by default', + 'settings.pop_in_player': 'Enable pop-in player', + 'settings.pop_in_position': 'Pop-in player position:', + 'settings.pop_in_left': 'Left', + 'settings.pop_in_right': 'Right', 'settings.preferences': 'User preferences', 'settings.wide_view': 'Wide view (Desktop mode only)', + 'settings.wide_view_hint': 'Stretches columns to better fill the available space.', 'settings.navbar_under': 'Navbar at the bottom (Mobile only)', 'status.collapse': 'Collapse', 'status.uncollapse': 'Uncollapse', + 'status.in_reply_to': 'This toot is a reply', + 'status.has_preview_card': 'Features an attached preview card', + 'status.has_pictures': 'Features attached pictures', + 'status.is_poll': 'This toot is a poll', + 'status.has_video': 'Features attached videos', + 'status.has_audio': 'Features attached audio files', + 'status.local_only': 'Only visible from your instance', + + 'content_type.change': 'Content type', + 'compose.content-type.html': 'HTML', + 'compose.content-type.markdown': 'Markdown', + 'compose.content-type.plain': 'Plain text', + + 'compose_form.poll.single_choice': 'Allow one choice', + 'compose_form.poll.multiple_choices': 'Allow multiple choices', + 'compose_form.spoiler': 'Hide text behind warning', + + 'column.toot': 'Toots and replies', + 'column_header.profile': 'Profile', + 'column.heading': 'Misc', + 'column.subheading': 'Miscellaneous options', + 'column_subheading.navigation': 'Navigation', + 'column_subheading.lists': 'Lists', 'media_gallery.sensitive': 'Sensitive', @@ -46,6 +151,7 @@ const messages = { 'notifications.marked_clear_confirmation': 'Are you sure you want to permanently clear all selected notifications?', 'notifications.marked_clear': 'Clear selected notifications', + 'notification_purge.start': 'Enter notification cleaning mode', 'notification_purge.btn_all': 'Select\nall', 'notification_purge.btn_none': 'Select\nnone', 'notification_purge.btn_invert': 'Invert\nselection', @@ -62,6 +168,25 @@ const messages = { 'advanced_options.threaded_mode.short': 'Threaded mode', 'advanced_options.threaded_mode.long': 'Automatically opens a reply on posting', 'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled', + + 'endorsed_accounts_editor.endorsed_accounts': 'Featured accounts', + + 'account.add_account_note': 'Add note for @{name}', + 'account_note.cancel': 'Cancel', + 'account_note.save': 'Save', + 'account_note.edit': 'Edit', + 'account_note.glitch_placeholder': 'No comment provided', + 'account.joined': 'Joined {date}', + 'account.follows': 'Follows', + + 'home.column_settings.advanced': 'Advanced', + 'home.column_settings.filter_regex': 'Filter out by regular expressions', + 'direct.group_by_conversations': 'Group by conversation', + 'community.column_settings.allow_local_only': 'Show local-only toots', + + 'keyboard_shortcuts.bookmark': 'to bookmark', + 'keyboard_shortcuts.toggle_collapse': 'to collapse/uncollapse toots', + 'keyboard_shortcuts.secondary_toot': 'to send toot using secondary privacy setting', }; export default Object.assign({}, inherited, messages); From ba1569400322930ebe32693750b8e1abff395829 Mon Sep 17 00:00:00 2001 From: www-cat <112013524+www-cat@users.noreply.github.com> Date: Tue, 20 Dec 2022 11:47:03 +0000 Subject: [PATCH 0016/1220] Add ukrainian translations (#1959) --- app/javascript/flavours/glitch/locales/uk.js | 67 +++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/locales/uk.js b/app/javascript/flavours/glitch/locales/uk.js index ab6d9a7dc7..fe05342aa0 100644 --- a/app/javascript/flavours/glitch/locales/uk.js +++ b/app/javascript/flavours/glitch/locales/uk.js @@ -1,7 +1,72 @@ import inherited from 'mastodon/locales/uk.json'; + + const messages = { - // No translations available. + 'getting_started.open_source_notice': 'Glitchsoc — вільна та відкрита модифікація {Mastodon}. Ви можете зробити свій внесок у проєкт або повідомити про вади на нашому {github}.', + 'layout.auto': 'Автоматичний', + 'layout.current_is': 'Ваш тип інтерфейсу зараз:', + 'layout.desktop': 'Настільний', + 'layout.mobile': 'Мобільний', + 'navigation_bar.app_settings': 'Налаштування програми', + 'getting_started.onboarding': 'Шо тут', + + 'onboarding.page_one.federation': '{domain} є сервером of Mastodon. Mastodon — мережа незалежних серверів, які працюють разом великою соціяльною мережою. Сервери Mastodon також називають „інстансами“.', + 'onboarding.page_one.welcome': 'Ласкаво просимо до {domain}!', + 'onboarding.page_six.github': '{domain} використовує Glitchsoc. Glitchsoc — дружній {fork} {Mastodon}, сумісний з будь-яким сервером Mastodon або програмою для нього. Glitchsoc повністю вільний та відкритий. Повідомляти про баги, просити фічі, або працювати з кодом можна на {github}.', + 'settings.auto_collapse': 'Автоматичне згортання', + 'settings.auto_collapse_all': 'Все', + 'settings.auto_collapse_lengthy': 'Довгі дмухи', + 'settings.auto_collapse_media': 'Дмухи з медіафайлами', + 'settings.auto_collapse_notifications': 'Сповіщення', + 'settings.auto_collapse_reblogs': 'Передмухи', + 'settings.auto_collapse_replies': 'Відповіді', + 'settings.show_action_bar': 'Показувати кнопки у згорнутих дмухах', + 'settings.close': 'Закрити', + 'settings.collapsed_statuses': 'Згорнуті дмухи', + 'settings.enable_collapsed': 'Увімкути згорнутання дмухів', + 'settings.general': 'Основне', + 'settings.image_backgrounds': 'Картинки на тлі', + 'settings.image_backgrounds_media': 'Підглядати медіа зі схованих дмухів', + 'settings.image_backgrounds_users': 'Давати схованим дмухам тло-картинку', + 'settings.media': 'Медіа', + 'settings.media_letterbox': 'Обрізати медіа', + 'settings.media_fullwidth': 'Показувати медіа повною шириною', + 'settings.preferences': 'Користувацькі налаштування', + 'settings.wide_view': "Широкий вид (тільки в режимі для комп'ютерів)", + 'settings.navbar_under': 'Панель навігації знизу (тільки в режимі для мобілок)', + 'status.collapse': 'Згорнути', + 'status.uncollapse': 'Розгорнути', + + 'media_gallery.sensitive': 'Чутливі', + + 'favourite_modal.combo': 'Ви можете натиснути {combo}, щоб пропустити це наступного разу', + + 'home.column_settings.show_direct': 'Показати прямі повідомлення', + + 'notification.markForDeletion': 'Позначити для видалення', + 'notifications.clear': 'Очистити всі мої сповіщення', + 'notifications.marked_clear_confirmation': 'Ви впевнені, що хочете незворотньо очистити всі вибрані сповіщення?', + 'notifications.marked_clear': 'Очистити вибрані сповіщення', + + 'notification_purge.btn_all': 'Вибрати\nвсе', + 'notification_purge.btn_none': 'Вибрати\nнічого', + 'notification_purge.btn_invert': 'Інвертувати\nвибір', + 'notification_purge.btn_apply': 'Очистити\nвибір', + + 'compose.attach.upload': 'Завантажити сюди файл', + 'compose.attach.doodle': 'Помалювати', + 'compose.attach': 'Вкласти...', + + 'advanced_options.local-only.short': 'Лише локальне', + 'advanced_options.local-only.long': 'Не дмухати це на інші сервери', + 'advanced_options.local-only.tooltip': 'Цей дмух лише локальний', + + // TODO: я не знаю що це значить + //'advanced_options.icon_title': 'Advanced options', + //'advanced_options.threaded_mode.short': 'Threaded mode', + //'advanced_options.threaded_mode.long': 'Automatically opens a reply on posting', + //'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled', }; export default Object.assign({}, inherited, messages); From de21695162d9600ae4e0a7ae54d62254b87ae460 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 20 Dec 2022 15:02:47 +0100 Subject: [PATCH 0017/1220] 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 --- app/javascript/mastodon/locales/ast.json | 6 +- app/javascript/mastodon/locales/be.json | 10 +- app/javascript/mastodon/locales/bg.json | 12 +- app/javascript/mastodon/locales/bn.json | 12 +- app/javascript/mastodon/locales/ca.json | 2 +- app/javascript/mastodon/locales/cs.json | 2 +- app/javascript/mastodon/locales/cy.json | 2 +- app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 24 +- app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es.json | 10 +- app/javascript/mastodon/locales/et.json | 160 ++++---- app/javascript/mastodon/locales/eu.json | 4 +- app/javascript/mastodon/locales/fa.json | 6 +- app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fo.json | 2 +- app/javascript/mastodon/locales/fr.json | 8 +- app/javascript/mastodon/locales/fy.json | 8 +- app/javascript/mastodon/locales/gl.json | 10 +- app/javascript/mastodon/locales/he.json | 2 +- app/javascript/mastodon/locales/hu.json | 2 +- app/javascript/mastodon/locales/id.json | 10 +- app/javascript/mastodon/locales/is.json | 10 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/ja.json | 4 +- app/javascript/mastodon/locales/ko.json | 2 +- app/javascript/mastodon/locales/ku.json | 8 +- app/javascript/mastodon/locales/la.json | 160 ++++---- app/javascript/mastodon/locales/lv.json | 2 +- app/javascript/mastodon/locales/nl.json | 2 +- app/javascript/mastodon/locales/nn.json | 12 +- app/javascript/mastodon/locales/no.json | 2 +- app/javascript/mastodon/locales/oc.json | 22 +- app/javascript/mastodon/locales/pl.json | 10 +- app/javascript/mastodon/locales/pt-BR.json | 10 +- app/javascript/mastodon/locales/pt-PT.json | 10 +- app/javascript/mastodon/locales/ru.json | 10 +- app/javascript/mastodon/locales/sl.json | 2 +- app/javascript/mastodon/locales/sq.json | 2 +- app/javascript/mastodon/locales/sr-Latn.json | 10 +- app/javascript/mastodon/locales/sr.json | 10 +- app/javascript/mastodon/locales/sv.json | 2 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 2 +- app/javascript/mastodon/locales/uk.json | 2 +- app/javascript/mastodon/locales/vi.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 14 +- app/javascript/mastodon/locales/zh-HK.json | 10 +- app/javascript/mastodon/locales/zh-TW.json | 2 +- config/locales/activerecord.bg.yml | 2 +- config/locales/activerecord.et.yml | 2 +- config/locales/be.yml | 2 + config/locales/bg.yml | 374 ++++++++++++++++++- config/locales/cs.yml | 1 + config/locales/de.yml | 16 +- config/locales/devise.et.yml | 18 +- config/locales/devise.sv.yml | 6 +- config/locales/doorkeeper.be.yml | 8 + config/locales/doorkeeper.bg.yml | 10 + config/locales/doorkeeper.cs.yml | 9 + config/locales/doorkeeper.de.yml | 19 +- config/locales/doorkeeper.es-AR.yml | 2 + config/locales/doorkeeper.es.yml | 10 + config/locales/doorkeeper.et.yml | 22 +- config/locales/doorkeeper.fr.yml | 14 +- config/locales/doorkeeper.gl.yml | 10 + config/locales/doorkeeper.is.yml | 10 + config/locales/doorkeeper.ko.yml | 19 +- config/locales/doorkeeper.nl.yml | 10 + config/locales/doorkeeper.nn.yml | 10 + config/locales/doorkeeper.pt-PT.yml | 10 + config/locales/doorkeeper.ru.yml | 2 + config/locales/doorkeeper.sq.yml | 10 + config/locales/doorkeeper.sr-Latn.yml | 5 + config/locales/doorkeeper.sr.yml | 5 + config/locales/doorkeeper.th.yml | 10 + config/locales/doorkeeper.tr.yml | 10 + config/locales/doorkeeper.uk.yml | 2 +- config/locales/doorkeeper.zh-CN.yml | 10 + config/locales/doorkeeper.zh-HK.yml | 10 + config/locales/es.yml | 5 + config/locales/et.yml | 138 +++---- config/locales/eu.yml | 1 + config/locales/fr.yml | 3 + config/locales/gl.yml | 5 + config/locales/he.yml | 2 +- config/locales/id.yml | 1 + config/locales/is.yml | 5 + config/locales/ja.yml | 2 + config/locales/ko.yml | 11 +- config/locales/ku.yml | 30 +- config/locales/nn.yml | 6 +- config/locales/no.yml | 5 + config/locales/pl.yml | 4 +- config/locales/pt-PT.yml | 5 + config/locales/ru.yml | 9 + config/locales/simple_form.bg.yml | 114 ++++-- config/locales/simple_form.et.yml | 28 +- config/locales/simple_form.fy.yml | 52 +++ config/locales/simple_form.is.yml | 2 +- config/locales/simple_form.ku.yml | 4 +- config/locales/simple_form.uk.yml | 8 +- config/locales/sq.yml | 2 + config/locales/sr-Latn.yml | 1 + config/locales/sr.yml | 83 ++++ config/locales/sv.yml | 8 +- config/locales/th.yml | 5 + config/locales/tr.yml | 7 + config/locales/uk.yml | 8 +- config/locales/zh-CN.yml | 5 + config/locales/zh-HK.yml | 3 + 112 files changed, 1308 insertions(+), 528 deletions(-) diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 23e74f1f16..ed135545c3 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -622,13 +622,13 @@ "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.", - "upload_form.audio_description": "Descripción pa persones con perda auditiva", - "upload_form.description": "Descripción pa persones con discapacidá visual", + "upload_form.audio_description": "Describe for people who are hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", "upload_form.description_missing": "Nun s'amestó la descripción", "upload_form.edit": "Editar", "upload_form.thumbnail": "Change thumbnail", "upload_form.undo": "Desaniciar", - "upload_form.video_description": "Descripción pa persones con perda auditiva o discapacidá visual", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", "upload_modal.analyzing_picture": "Analizando la semeya…", "upload_modal.apply": "Aplicar", "upload_modal.applying": "Aplicando…", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index d221c00732..9ef66ec727 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.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, one {{counter} допіс} 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/bg.json b/app/javascript/mastodon/locales/bg.json index ad7885fd93..da61d6200d 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.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, one {{counter} публикация} other {{counter} публикации}}", @@ -62,7 +62,7 @@ "account.unblock_domain": "Отблокиране на домейн {domain}", "account.unblock_short": "Отблокирване", "account.unendorse": "Не включвайте в профила", - "account.unfollow": "Не следвай", + "account.unfollow": "Без следване", "account.unmute": "Без заглушаване на @{name}", "account.unmute_notifications": "Без заглушаване на известия от @{name}", "account.unmute_short": "Без заглушаване", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Копиране на 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/bn.json b/app/javascript/mastodon/locales/bn.json index 663c357e43..e936b4128c 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.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,one {{counter} টুট} other {{counter} টুট}}", @@ -71,7 +71,7 @@ "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Average", "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", + "admin.dashboard.retention.cohort_size": "নতুন ব্যবহারকারী", "alert.rate_limited.message": "{retry_time, time, medium} -এর পরে আবার প্রচেষ্টা করুন।", "alert.rate_limited.title": "হার সীমিত", "alert.unexpected.message": "সমস্যা অপ্রত্যাশিত.", @@ -124,7 +124,7 @@ "community.column_settings.local_only": "শুধুমাত্র স্থানীয়", "community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও", "community.column_settings.remote_only": "শুধুমাত্র দূরবর্তী", - "compose.language.change": "Change language", + "compose.language.change": "ভাষা পরিবর্তন করুন", "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.", @@ -138,7 +138,7 @@ "compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন", "compose_form.poll.switch_to_multiple": "একাধিক পছন্দ অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন", "compose_form.poll.switch_to_single": "একটি একক পছন্দের অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন", - "compose_form.publish": "Publish", + "compose_form.publish": "প্রকাশ করুন", "compose_form.publish_form": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", @@ -238,7 +238,7 @@ "explore.search_results": "Search results", "explore.suggested_follows": "For you", "explore.title": "Explore", - "explore.trending_links": "News", + "explore.trending_links": "সংবাদ", "explore.trending_statuses": "Posts", "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.", @@ -274,7 +274,7 @@ "getting_started.heading": "শুরু করা", "hashtag.column_header.tag_mode.all": "এবং {additional}", "hashtag.column_header.tag_mode.any": "অথবা {additional}", - "hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}", + "hashtag.column_header.tag_mode.none": "{additional} বাদ দিয়ে", "hashtag.column_settings.select.no_options_message": "কোনটা পাওয়া যায় নি", "hashtag.column_settings.select.placeholder": "হ্যাশট্যাগের ভেতরে ঢুকুন…", "hashtag.column_settings.tag_mode.all": "এগুলো সব", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index faeadad42d..46ae984c6e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Tuts i respostes", "account.report": "Informa sobre @{name}", "account.requested": "S'espera l'aprovació. Clica per a cancel·lar la petició de seguiment", - "account.requested_follow": "{name} has requested to follow you", + "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}}", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 9ae003e76a..39ebaac230 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Příspěvky a odpovědi", "account.report": "Nahlásit @{name}", "account.requested": "Čeká na schválení. Kliknutím žádost o sledování zrušíte", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} tě požádal o sledování", "account.share": "Sdílet profil @{name}", "account.show_reblogs": "Zobrazit boosty od @{name}", "account.statuses_counter": "{count, plural, one {{counter} Příspěvek} few {{counter} Příspěvky} many {{counter} Příspěvků} other {{counter} Příspěvků}}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index a96d2b38eb..f38bfb0ddc 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Postiadau ac atebion", "account.report": "Adrodd @{name}", "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "Mae {name} wedi gwneud cais i'ch dilyn", "account.share": "Rhannwch broffil @{name}", "account.show_reblogs": "Dangos hybiau gan @{name}", "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiad: {counter}}}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 24064fcacf..d27e77dc25 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Indlæg og svar", "account.report": "Anmeld @{name}", "account.requested": "Afventer godkendelse. Tryk for at annullere følgeanmodning", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} har anmodet om at følge dig", "account.share": "Del @{name}s profil", "account.show_reblogs": "Vis fremhævelser fra @{name}", "account.statuses_counter": "{count, plural, one {{counter} Indlæg} other {{counter} Indlæg}}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 784ef35fa0..73fff4f255 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -3,8 +3,8 @@ "about.contact": "Kontakt:", "about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Grund unbekannt", - "about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.", - "about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen – oder Du folgst einer Person dieser Mastodon-Instanz.", + "about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diesen Server gibt es aber ein paar Ausnahmen.", + "about.domain_blocks.silenced.explanation": "Alle Inhalte und Profile dieses Servers werden zunächst nicht angezeigt. Du kannst die Profile und Inhalte aber dennoch sehen, wenn du explizit nach diesen suchst oder diesen folgst.", "about.domain_blocks.silenced.title": "Stummgeschaltet", "about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.", "about.domain_blocks.suspended.title": "Gesperrt", @@ -49,12 +49,12 @@ "account.mute": "@{name} stummschalten", "account.mute_notifications": "Benachrichtigungen von @{name} stummschalten", "account.muted": "Stummgeschaltet", - "account.open_original_page": "Auf ursprünglicher Instanz anzeigen", + "account.open_original_page": "Ursprüngliche Seite öffnen", "account.posts": "Beiträge", "account.posts_with_replies": "Beiträge und Antworten", "account.report": "@{name} melden", "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} hat angefragt, dir folgen zu dürfen", "account.share": "Profil von @{name} teilen", "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen", "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", @@ -121,9 +121,9 @@ "column_header.show_settings": "Einstellungen anzeigen", "column_header.unpin": "Lösen", "column_subheading.settings": "Einstellungen", - "community.column_settings.local_only": "Nur lokale Instanz", + "community.column_settings.local_only": "Nur lokal", "community.column_settings.media_only": "Nur Beiträge mit angehängten Medien", - "community.column_settings.remote_only": "Nur andere Mastodon-Instanzen anzeigen", + "community.column_settings.remote_only": "Nur andere Mastodon-Server anzeigen", "compose.language.change": "Sprache festlegen", "compose.language.search": "Sprachen suchen …", "compose_form.direct_message_warning_learn_more": "Mehr erfahren", @@ -190,7 +190,7 @@ "dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.", "dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.", "dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.", - "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Profilen auf dieser Mastodon-Instanz und auf anderen Servern des dezentralen Netzwerks, von denen dieser Server Kenntnis hat.", + "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Profilen auf diesem und anderen Servern des dezentralen Netzwerks, von denen dieser Server Kenntnis hat.", "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.", "embed.preview": "Vorschau:", "emoji_button.activity": "Aktivitäten", @@ -238,7 +238,7 @@ "explore.search_results": "Suchergebnisse", "explore.suggested_follows": "Für dich", "explore.title": "Entdecken", - "explore.trending_links": "Nachrichten", + "explore.trending_links": "Neuigkeiten", "explore.trending_statuses": "Beiträge", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Diese Filterkategorie gilt nicht für den Kontext, in welchem du auf diesen Beitrag zugegriffen hast. Wenn der Beitrag auch in diesem Kontext gefiltert werden soll, musst du den Filter bearbeiten.", @@ -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 Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.", + "limited_account_hint.title": "Dieses Profil wurde von den Moderatoren*innen von {domain} ausgeblendet.", "lists.account.add": "Zur Liste hinzufügen", "lists.account.remove": "Von der Liste entfernen", "lists.delete": "Liste löschen", @@ -622,13 +622,13 @@ "upload_button.label": "Bilder, Videos oder Audios hinzufügen", "upload_error.limit": "Dateiupload-Limit überschritten.", "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.", - "upload_form.audio_description": "Beschreibe den Ton für Gehörlose und hörbehinderte Menschen", - "upload_form.description": "Beschreibe für blinde und sehbehinderte Menschen", + "upload_form.audio_description": "Für Gehörlose und hörbehinderte Menschen beschreiben", + "upload_form.description": "Beschreibe für Menschen mit Sehbehinderung", "upload_form.description_missing": "Keine Beschreibung hinzugefügt", "upload_form.edit": "Bearbeiten", "upload_form.thumbnail": "Vorschaubild ändern", "upload_form.undo": "Löschen", - "upload_form.video_description": "Beschreibe das Video für Menschen mit einer Hör- oder Sehbehinderung", + "upload_form.video_description": "Beschreibe für Menschen mit einer Hör- oder Sehbehinderung", "upload_modal.analyzing_picture": "Bild wird analysiert …", "upload_modal.apply": "Übernehmen", "upload_modal.applying": "Wird angewendet …", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index cbe60a5730..ec78dab5be 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.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, one {{counter} Τουτ} other {{counter} Τουτ}}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index ab03e8965c..75db62925a 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Mnsjs y resp. públicas", "account.report": "Denunciar a @{name}", "account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} solicitó seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar adhesiones de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Mensaje} other {{counter} Mensajes}}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 17a878e385..8e0f5295c3 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Publicaciones y respuestas", "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación. Clica 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 impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.report_issue": "Informar de un problema/error", "explore.search_results": "Resultados de búsqueda", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Para ti", "explore.title": "Explorar", - "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 ha 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, necesitará 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 d8f34becad..f3adeacf67 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -3,7 +3,7 @@ "about.contact": "Kontakt:", "about.disclaimer": "Mastodon on tasuta ja vaba tarkvara ning Mastodon gGmbH kaubamärk.", "about.domain_blocks.no_reason_available": "Mittesaadavuse põhjus", - "about.domain_blocks.preamble": "Mastodon tavaliselt lubab Teil vaadata sisu ning suhelda kasutajatega üks kõik millisest teisest serverist fediversumis. Need on erandid, mis on paika pandud sellel kindlal serveril.", + "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.", @@ -54,7 +54,7 @@ "account.posts_with_replies": "Postitused ja vastused", "account.report": "Raporteeri @{name}", "account.requested": "Ootab kinnitust. Klõpsa jälgimise soovi tühistamiseks", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} on taodelnud sinu jälgimist", "account.share": "Jaga @{name} profiili", "account.show_reblogs": "Näita @{name} jagamisi", "account.statuses_counter": "{count, plural, one {{counter} postitus} other {{counter} postitust}}", @@ -82,21 +82,21 @@ "autosuggest_hashtag.per_week": "{count} nädalas", "boost_modal.combo": "Vajutades {combo}, saab selle edaspidi vahele jätta", "bundle_column_error.copy_stacktrace": "Kopeeri veateade", - "bundle_column_error.error.body": "Soovitud lehte ei suudetud esitleda. See võib olla mingi koodivea tagajärg või probleem brauseri ühilduvusega.", + "bundle_column_error.error.body": "Soovitud lehte ei õnnestunud esitada. See võib olla meie koodiviga või probleem brauseri ühilduvusega.", "bundle_column_error.error.title": "Oh, ei!", - "bundle_column_error.network.body": "Selle lehe laadimisel tekkis tõrge. See võib olla ajutine probleem internetiühendusega või selle serveriga.", + "bundle_column_error.network.body": "Lehe laadimisel tekkis tõrge. See võib olla ajutine probleem internetiühendusega või selle serveriga.", "bundle_column_error.network.title": "Võrguühenduse viga", "bundle_column_error.retry": "Proovi uuesti", "bundle_column_error.return": "Tagasi koju", - "bundle_column_error.routing.body": "Päritud lehte ei leitud. Kas URL aadressiribal on õige?", + "bundle_column_error.routing.body": "Päritud lehte ei leitud. Kas URL on aadressiribal õige?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sulge", "bundle_modal_error.message": "Selle komponendi laadimisel läks midagi viltu.", "bundle_modal_error.retry": "Proovi uuesti", "closed_registrations.other_server_instructions": "Kuna Mastodon on detsentraliseeritud, võib konto teha teise serverisse ja sellegipoolest siinse kontoga suhelda.", - "closed_registrations_modal.description": "Praegu ei ole võimalik teha {domain} peale kontot, aga pidage meeles, et teil ei pea olema just {domain} konto, et Mastodoni kasutada.", + "closed_registrations_modal.description": "Praegu ei ole võimalik teha {domain} peale kontot, aga pea meeles, et sul ei pea olema just {domain} konto, et Mastodoni kasutada.", "closed_registrations_modal.find_another_server": "Leia teine server", - "closed_registrations_modal.preamble": "Mastodon on detsentraliseeritud, mis tähendab seda, et ükskõik kuhu konto luua, võib jälgida ja suhelda igaühega sellel serveril. Võib isegi oma serveri püsti panna!", + "closed_registrations_modal.preamble": "Mastodon on detsentraliseeritud, mis tähendab, et konto võib luua ükskõik kuhu, kuid ikkagi saab jälgida ja suhelda igaühega sellel serveril. Võib isegi oma serveri püsti panna!", "closed_registrations_modal.title": "Mastodoni registreerumine", "column.about": "Teave", "column.blocks": "Blokeeritud kasutajad", @@ -129,50 +129,50 @@ "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.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab teid jälgida ja näha teie ainult-jälgijatele postitusi.", + "compose_form.lock_disclaimer": "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?", "compose_form.poll.add_option": "Lisa valik", "compose_form.poll.duration": "Küsitluse kestus", "compose_form.poll.option_placeholder": "Valik {number}", "compose_form.poll.remove_option": "Eemalda see valik", - "compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut", - "compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut", + "compose_form.poll.switch_to_multiple": "Muuda küsitlust mitmikvaliku lubamiseks", + "compose_form.poll.switch_to_single": "Muuda küsitlust ainult ühe valiku lubamiseks", "compose_form.publish": "Postita", "compose_form.publish_form": "Postita", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Salvesta muudatused", - "compose_form.sensitive.hide": "Märgista meedia tundlikuks", - "compose_form.sensitive.marked": "Meedia on sensitiivseks märgitud", - "compose_form.sensitive.unmarked": "Meedia ei ole sensitiivseks märgitud", - "compose_form.spoiler.marked": "Tekst on hoiatuse taha peidetud", + "compose_form.sensitive.hide": "{count, plural, one {Märgi meedia tundlikuks} other {Märgi meediad tundlikuks}}", + "compose_form.sensitive.marked": "{count, plural, one {Meedia on märgitud tundlikuks} other {Meediad on märgitud tundlikuks}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Meedia ei ole tundlikuks märgitud} other {Meediad ei ole märgitud tundlikuks}}", + "compose_form.spoiler.marked": "Tekst on peidetud hoiatuse taha", "compose_form.spoiler.unmarked": "Märgi sisu tundlikuks", - "compose_form.spoiler_placeholder": "Kirjutage oma hoiatus siia", + "compose_form.spoiler_placeholder": "Kirjuta hoiatus siia", "confirmation_modal.cancel": "Katkesta", "confirmations.block.block_and_report": "Blokeeri ja teata", "confirmations.block.confirm": "Blokeeri", - "confirmations.block.message": "Kindel, et blokeerida {name}?", + "confirmations.block.message": "Oled kindel, et soovid blokeerida {name}?", "confirmations.cancel_follow_request.confirm": "Tühista taotlus", - "confirmations.cancel_follow_request.message": "Olete kindel, et tahate võtta tagasi taotluse jälgida kasutajat {name}?", + "confirmations.cancel_follow_request.message": "Oled kindel, et soovid kasutaja {name} jälgimistaotluse tagasi võtta?", "confirmations.delete.confirm": "Kustuta", - "confirmations.delete.message": "Olete kindel, et soovite selle staatuse kustutada?", + "confirmations.delete.message": "Oled kindel, et soovid postituse kustutada?", "confirmations.delete_list.confirm": "Kustuta", - "confirmations.delete_list.message": "Olete kindel, et soovite selle nimekirja pöördumatult kustutada?", + "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.domain_block.confirm": "Peida terve domeen", - "confirmations.domain_block.message": "Olete ikka päris kindel, et soovite blokeerida terve {domain}? Enamikul juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatav. Te ei näe selle domeeni sisu üheski avalikus ajajoones või teadetes. Teie jälgijad sellest domeenist eemaldatakse.", + "confirmations.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", - "confirmations.logout.message": "Kas olete kindel, et soovite välja logida?", + "confirmations.logout.message": "Kas oled kindel, et soovid välja logida?", "confirmations.mute.confirm": "Vaigista", - "confirmations.mute.explanation": "See peidab postitusi temalt ning postitusi, kus mainitakse neid, kuid see lubab neil ikka näha teie postitusi ning teid jälgida.", - "confirmations.mute.message": "Olete kindel, et soovite {name} vaigistada?", + "confirmations.mute.explanation": "See peidab tema postitused ning postitused, kus teda mainitakse, kuid lubab tal ikka su postitusi näha ning sind jälgida.", + "confirmations.mute.message": "Oled kindel, et soovid {name} vaigistada?", "confirmations.redraft.confirm": "Kustuta & taasalusta", "confirmations.redraft.message": "Kas kustutada postitus ja võtta uue aluseks? Meeldimised ja jagamised lähevad kaotsi ning vastused jäävad ilma algse postituseta.", "confirmations.reply.confirm": "Vasta", - "confirmations.reply.message": "Praegu vastamine kirjutab üle sõnumi, mida hetkel koostate. Olete kindel, et soovite jätkata?", + "confirmations.reply.message": "Praegu vastamine kirjutab hetkel koostatava sõnumi üle. Oled kindel, et soovid jätkata?", "confirmations.unfollow.confirm": "Ära jälgi", - "confirmations.unfollow.message": "Olete kindel, et ei soovi rohkem jälgida kasutajat {name}?", + "confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?", "conversation.delete": "Kustuta vestlus", "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", @@ -184,14 +184,14 @@ "directory.new_arrivals": "Uustulijad", "directory.recently_active": "Hiljuti aktiivne", "disabled_account_banner.account_settings": "Kontosätted", - "disabled_account_banner.text": "Teie konto {disabledAccount} ei ole praegu kasutusvõimeline.", + "disabled_account_banner.text": "Su konto {disabledAccount} on hetkel keelatud.", "dismissable_banner.community_timeline": "Need on kõige viimased avalikud postitused inimestelt, kelle kontosid majutab {domain}.", "dismissable_banner.dismiss": "Sulge", "dismissable_banner.explore_links": "Need on uudised, millest inimesed siin ja teistes serverites üle detsentraliseeritud võrgu praegu räägivad.", "dismissable_banner.explore_statuses": "Need postitused siit ja teistes serveritest detsentraliseeritud võrgus koguvad tähelepanu just praegu selles serveris.", "dismissable_banner.explore_tags": "Need sildid siit ja teistes serveritest detsentraliseeritud võrgus koguvad tähelepanu just praegu selles serveris.", "dismissable_banner.public_timeline": "Need on kõige uuemad avalikud postitused inimestelt selles ja teistes serverites üle detsentraliseeritud võrgu, millest see server on teadlik.", - "embed.instructions": "Manusta see staatus oma veebilehele, kopeerides alloleva koodi.", + "embed.instructions": "Lisa see postitus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", "emoji_button.clear": "Tühjenda", @@ -219,12 +219,12 @@ "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.favourites": "Keegi pole veel seda postitust lemmikuks märkinud. Kui seegi seda teeb, näed seda siin.", - "empty_column.follow_recommendations": "Tundub, et teie jaoks ei ole võimalik soovitusi tekitada. Proovige kasutada otsingut, et leida inimesi, keda te teate või sirvida trendivaid silte.", + "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.hashtag": "Seda sildi all ei ole ühtegi postitust.", - "empty_column.home": "Teie kodu ajajoon on tühi! Külastage {public} või kasutage otsingut alustamaks ja kohtamaks teisi kasutajaid.", + "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 nimistus pole veel midagi. Kui nimistu liikmed teevad uusi postitusi, näed neid siin.", + "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.", @@ -259,10 +259,10 @@ "filter_modal.title.status": "Postituse filtreerimine", "follow_recommendations.done": "Valmis", "follow_recommendations.heading": "Jälgi inimesi, kelle postitusi tahaksid näha! Mõned soovitused on siin.", - "follow_recommendations.lead": "Postitused inimestelt, keda te jälgite ilmuvad ajalises järjekorras teie kodu ajajoonel. Ärge kartke eksida, alati saate inimeste jälgimist ka lõpetada!", + "follow_recommendations.lead": "Postitused inimestelt, keda jälgid, ilmuvad ajalises järjestuses kodu ajajoonel. Ära karda eksida, alati saab inimeste jälgimist ka lõpetada!", "follow_request.authorize": "Autoriseeri", "follow_request.reject": "Hülga", - "follow_requests.unlocked_explanation": "Kuigi teie konto pole lukustatud, soovitab {domain} personal siiski manuaalselt üle vaadata jälgimistaotlused nendelt kontodelt.", + "follow_requests.unlocked_explanation": "Kuigi su konto pole lukustatud, soovitab {domain} personal siiski nende kontode jälgimistaotlused käsitsi üle vaadata.", "footer.about": "Teave", "footer.directory": "Profiilikataloog", "footer.get_app": "Tõmba äpp", @@ -290,7 +290,7 @@ "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.reblog": "Mastodoni kontoga saate jagada seda postitust oma jälgijatele.", + "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.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", @@ -300,43 +300,43 @@ "interaction_modal.title.follow": "Jälgi kontot {name}", "interaction_modal.title.reblog": "Jaga {name} postitust", "interaction_modal.title.reply": "Vasta kasutaja {name} postitusele", - "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}", + "intervals.full.days": "{number, plural, one {# päev} other {# päeva}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}", - "keyboard_shortcuts.back": "tagasiminekuks", + "keyboard_shortcuts.back": "Liigu tagasi", "keyboard_shortcuts.blocked": "avamaks blokeeritud kasutajate nimistut", "keyboard_shortcuts.boost": "Jaga", - "keyboard_shortcuts.column": "fokuseerimaks staatust ühele tulpadest", - "keyboard_shortcuts.compose": "fokuseerimaks tekstikoostamise alale", + "keyboard_shortcuts.column": "Fookus veerule", + "keyboard_shortcuts.compose": "Fookus teksti koostamise alale", "keyboard_shortcuts.description": "Kirjeldus", - "keyboard_shortcuts.direct": "avamaks otsesõnumite tulpa", - "keyboard_shortcuts.down": "liikumaks nimstus alla", + "keyboard_shortcuts.direct": "ava otsesõnumite veerg", + "keyboard_shortcuts.down": "Liigu loetelus alla", "keyboard_shortcuts.enter": "Ava postitus", - "keyboard_shortcuts.favourite": "lemmikuks märkimiseks", - "keyboard_shortcuts.favourites": "avamaks lemmikute nimistut", - "keyboard_shortcuts.federated": "avamaks föderatsiooni ajajoont", - "keyboard_shortcuts.heading": "Klaviatuuri kiirkäsud", - "keyboard_shortcuts.home": "avamaks kodu ajajoont", + "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.home": "Ava kodu ajajoon", "keyboard_shortcuts.hotkey": "Kiirklahv", - "keyboard_shortcuts.legend": "selle legendi kuvamiseks", - "keyboard_shortcuts.local": "avamaks kohalikku ajajoont", - "keyboard_shortcuts.mention": "autori mainimiseks", - "keyboard_shortcuts.muted": "avamaks vaigistatud kasutajate nimistut", - "keyboard_shortcuts.my_profile": "avamaks profiili", - "keyboard_shortcuts.notifications": "avamaks teadete tulpa", - "keyboard_shortcuts.open_media": "et avada meedia", - "keyboard_shortcuts.pinned": "Ava kinnitatud postituste nimekiri", - "keyboard_shortcuts.profile": "avamaks autori profiili", + "keyboard_shortcuts.legend": "Kuva see legend", + "keyboard_shortcuts.local": "Ava kohalik ajajoon", + "keyboard_shortcuts.mention": "Maini autorit", + "keyboard_shortcuts.muted": "Ava vaigistatud kasutajate loetelu", + "keyboard_shortcuts.my_profile": "Ava oma profiil", + "keyboard_shortcuts.notifications": "Ava teadete veerg", + "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.requests": "avamaks jälgimistaotluste nimistut", - "keyboard_shortcuts.search": "otsingu fokuseerimiseks", - "keyboard_shortcuts.spoilers": "to show/hide CW field", - "keyboard_shortcuts.start": "avamaks \"Alusta\" tulpa", - "keyboard_shortcuts.toggle_hidden": "näitamaks/peitmaks teksti CW taga", - "keyboard_shortcuts.toggle_sensitivity": "et peita/näidata meediat", + "keyboard_shortcuts.requests": "Ava jälgimistaotluste loetelu", + "keyboard_shortcuts.search": "Fookus otsingule", + "keyboard_shortcuts.spoilers": "Näita/peida CW väli", + "keyboard_shortcuts.start": "Ava veerg \"Alusta\"", + "keyboard_shortcuts.toggle_hidden": "Näida/peida teksti CW taga", + "keyboard_shortcuts.toggle_sensitivity": "Näita/peida meediat", "keyboard_shortcuts.toot": "Alusta uut postitust", - "keyboard_shortcuts.unfocus": "tekstiala/otsingu koostamise mittefokuseerimiseks", - "keyboard_shortcuts.up": "liikumaks nimistus üles", + "keyboard_shortcuts.unfocus": "Fookus tekstialalt/otsingult ära", + "keyboard_shortcuts.up": "Liigu loetelus üles", "lightbox.close": "Sulge", "lightbox.compress": "Suru kokku pildi vaatamise kast", "lightbox.expand": "Laienda pildi vaatamise kast", @@ -355,14 +355,14 @@ "lists.replies_policy.list": "Listi liikmetelt", "lists.replies_policy.none": "Mitte kellegilt", "lists.replies_policy.title": "Näita vastuseid nendele:", - "lists.search": "Otsige teie poolt jälgitavate inimese hulgast", - "lists.subheading": "Teie nimistud", + "lists.search": "Otsi enda jälgitavate inimeste hulgast", + "lists.subheading": "Su loetelud", "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": "Teie kontot {disabledAccount} ei ole praegu võimalik kasutada, sest te kolisite kontole {movedToAccount}.", + "moved_to_account_banner.text": "Su 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", @@ -392,17 +392,17 @@ "not_signed_in_indicator.not_signed_in": "Peate logima sisse, 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 teie staatuse lemmikuks", - "notification.follow": "{name} jälgib nüüd teid", + "notification.favourite": "{name} märkis su postituse lemmikuks", + "notification.follow": "{name} alustas su jälgimist", "notification.follow_request": "{name} soovib teid jälgida", "notification.mention": "{name} mainis teid", - "notification.own_poll": "Teie küsitlus on lõppenud", + "notification.own_poll": "Su küsitlus on lõppenud", "notification.poll": "Küsitlus, milles osalesite, on lõppenud", - "notification.reblog": "{name} jagas postitust", + "notification.reblog": "{name} jagas edasi postitust", "notification.status": "{name} just postitas", "notification.update": "{name} muutis postitust", "notifications.clear": "Puhasta teated", - "notifications.clear_confirmation": "Olete kindel, et soovite püsivalt kõik oma teated eemaldada?", + "notifications.clear_confirmation": "Oled kindel, et soovid püsivalt kõik oma teated eemaldada?", "notifications.column_settings.admin.report": "Uued teavitused:", "notifications.column_settings.admin.sign_up": "Uued kasutajad:", "notifications.column_settings.alert": "Töölauateated", @@ -436,7 +436,7 @@ "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, kui Mastodon pole avatud, lubage töölaua märguanded. Saate määrata täpselt, mis tüüpi läbikäimised tekitavad töölauale märguandeid kasutates {icon} nuppu üleval, kui need on sisse lülitatud.", + "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", "picture_in_picture.restore": "Pane tagasi", "poll.closed": "Suletud", @@ -444,7 +444,7 @@ "poll.total_people": "{count, plural,one {# inimene} other {# inimest}}", "poll.total_votes": "{count, plural, one {# hääl} other {# häält}}", "poll.vote": "Hääleta", - "poll.voted": "Teie hääletasite selle poolt", + "poll.voted": "Hääletasid selle poolt", "poll.votes": "{votes, plural, one {# hääl} other {# häält}}", "poll_button.add_poll": "Lisa küsitlus", "poll_button.remove_poll": "Eemalda küsitlus", @@ -461,7 +461,7 @@ "privacy_policy.title": "Isikuandmete kaitse", "refresh": "Värskenda", "regeneration_indicator.label": "Laeb…", - "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!", + "regeneration_indicator.sublabel": "Su kodu voog 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", @@ -475,7 +475,7 @@ "relative_time.today": "täna", "reply_indicator.cancel": "Tühista", "report.block": "Blokeeri", - "report.block_explanation": "Te ei näe tema postitusi. Tema ei saa näha teie postitusi ega teid jälgida. Talle on näha, et ta on blokeeritud.", + "report.block_explanation": "Sa ei näe tema postitusi. Tema ei saa näha sinu postitusi ega sind jälgida. Talle on näha, et ta on blokeeritud.", "report.categories.other": "Muud", "report.categories.spam": "Rämpspost", "report.categories.violation": "Sisu, mis rikub ühte või enamat serveri reeglit", @@ -488,7 +488,7 @@ "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", - "report.mute_explanation": "Te ei näe tema postitusi. Ta võib ikka teil jälgida ja näha teie postitusi ja ta ei saa teada, et ta on vaigistatud.", + "report.mute_explanation": "Sa ei näe tema postitusi. Ta võib ikka sind jälgida ja su postitusi näha. Ta ei saa teada, et ta on vaigistatud.", "report.next": "Järgmine", "report.placeholder": "Lisaks kommentaarid", "report.reasons.dislike": "Mulle ei meeldi see", @@ -517,11 +517,11 @@ "report_notification.categories.violation": "Reeglite rikkumine", "report_notification.open": "Ava teavitus", "search.placeholder": "Otsi", - "search.search_or_paste": "Otsi või aseta URL", + "search.search_or_paste": "Otsi või kleebi URL", "search_popout.search_format": "Täiustatud otsiformaat", - "search_popout.tips.full_text": "Lihttekst annab vastuseks postitused, mida olete kirjutanud, lisanud lemmikuks, jaganud või kus mainitud, ning lisaks kattuvad kasutajanimed, kuvanimed ja sildid.", + "search_popout.tips.full_text": "Lihttekst annab vastuseks postitused, mille oled kirjutanud, lisanud lemmikuks, jaganud või kus on sind mainitud, ning lisaks kokkusobivad kasutajanimed, profiili kuvanimed ja sildid.", "search_popout.tips.hashtag": "silt", - "search_popout.tips.status": "staatus", + "search_popout.tips.status": "postitus", "search_popout.tips.text": "Lihtne tekst toob esile kattuvad kuvanimed, kasutajanimed ning sildid", "search_popout.tips.user": "kasutaja", "search_results.accounts": "Inimesed", @@ -567,7 +567,7 @@ "status.more": "Veel", "status.mute": "Vaigista @{name}", "status.mute_conversation": "Vaigista vestlus", - "status.open": "Laienda see postitus", + "status.open": "Laienda postitus", "status.pin": "Kinnita profiilile", "status.pinned": "Kinnitatud postitus", "status.read_more": "Loe veel", @@ -594,7 +594,7 @@ "status.uncached_media_warning": "Pole saadaval", "status.unmute_conversation": "Ära vaigista vestlust", "status.unpin": "Eemalda profiilile kinnitus", - "subscribed_languages.lead": "Pärast muudatust näidatakse kodu ja nimistute ajajoontel postitusi valitud keeltes. Jäta tühjaks, kui tahad näha postitusi keelest sõltumata.", + "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", "suggestions.dismiss": "Eira soovitust", @@ -614,7 +614,7 @@ "timeline_hint.resources.statuses": "Eelnevaid postitusi", "trends.counter_by_accounts": "{count, plural, one {{counter} inimene} other {{counter} inimest}} viimase {days, plural, one {päeva} other {{days} päeva}} jooksul", "trends.trending_now": "Hetkel populaarne", - "ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.", + "ui.beforeunload": "Mustand läheb kaotsi, kui lahkud Mastodonist.", "units.short.billion": "{count} mld", "units.short.million": "{count} mln", "units.short.thousand": "{count} tuh", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 854baf0d50..0bbd9f9c73 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -236,9 +236,9 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera", "errors.unexpected_crash.report_issue": "Eman arazoaren berri", "explore.search_results": "Bilaketaren emaitzak", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Zuretzako", "explore.title": "Arakatu", - "explore.trending_links": "News", + "explore.trending_links": "Berriak", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index f938541bee..589972de25 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -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_links": "اخبار", "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "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/fi.json b/app/javascript/mastodon/locales/fi.json index 96879c8b0b..fab0e7c476 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Viestit ja vastaukset", "account.report": "Ilmoita käyttäjästä @{name}", "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} haluaa seurata sinua", "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}", "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index ef5702dc02..15b5d6ce00 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Uppsløg og svar", "account.report": "Melda @{name}", "account.requested": "Bíðar eftir góðkenning. Trýst fyri at angra umbønina", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} hevur biðið um at fylgja tær", "account.share": "Deil vanga @{name}'s", "account.show_reblogs": "Vís lyft frá @{name}", "account.statuses_counter": "{count, plural, one {{counter} postur} other {{counter} postar}}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 863a858cff..ca4d20b30d 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Messages 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 partages de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Message} other {{counter} Messages}}", @@ -391,7 +391,7 @@ "navigation_bar.security": "Sécurité", "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", "notification.admin.report": "{name} a signalé {target}", - "notification.admin.sign_up": "{name} s'est inscrit·e", + "notification.admin.sign_up": "{name} s'est inscrit", "notification.favourite": "{name} a aimé votre publication", "notification.follow": "{name} vous suit", "notification.follow_request": "{name} a demandé à vous suivre", @@ -523,7 +523,7 @@ "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "message", "search_popout.tips.text": "Un texte simple renvoie les noms affichés, les identifiants et les hashtags correspondants", - "search_popout.tips.user": "utilisateur·ice", + "search_popout.tips.user": "utilisateur", "search_results.accounts": "Comptes", "search_results.all": "Tous les résultats", "search_results.hashtags": "Hashtags", @@ -623,7 +623,7 @@ "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés d’audition", - "upload_form.description": "Décrire pour les malvoyant·e·s", + "upload_form.description": "Décrire pour les malvoyants", "upload_form.description_missing": "Description manquante", "upload_form.edit": "Modifier", "upload_form.thumbnail": "Changer la vignette", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 4aafeb5000..3943574098 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Berjochten en reaksjes", "account.report": "@{name} rapportearje", "account.requested": "Wacht op goedkarring. Klik om it folchfersyk te annulearjen", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} hat dy in folchfersyk stjoerd", "account.share": "Profyl fan @{name} diele", "account.show_reblogs": "Boosts fan @{name} toane", "account.statuses_counter": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}", @@ -236,10 +236,10 @@ "errors.unexpected_crash.copy_stacktrace": "Stacktrace nei klamboerd kopiearje", "errors.unexpected_crash.report_issue": "Technysk probleem melde", "explore.search_results": "Sykresultaten", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Foar jo", "explore.title": "Ferkenne", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_links": "Nijs", + "explore.trending_statuses": "Berjochten", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Dizze filterkategory is net fan tapassing op de kontekst wêryn jo dit berjocht benadere hawwe. As jo wolle dat it berjocht ek yn dizze kontekst filtere wurdt, moatte jo it filter bewurkje.", "filter_modal.added.context_mismatch_title": "Kontekst komt net oerien!", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index d6c8735fe8..2764b7e591 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Publicacións e respostas", "account.report": "Informar sobre @{name}", "account.requested": "Agardando aprobación. Preme para desbotar a solicitude", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} solicitou seguirte", "account.share": "Compartir o perfil de @{name}", "account.show_reblogs": "Amosar compartidos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicacións}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", "errors.unexpected_crash.report_issue": "Informar sobre un problema", "explore.search_results": "Resultados da busca", - "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": "Novas", + "explore.trending_statuses": "Publicacións", + "explore.trending_tags": "Cancelos", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro non se aplica ao contexto no que accedeches a esta publicación. Se queres que a publicación se filtre nese contexto tamén, terás que editar o filtro.", "filter_modal.added.context_mismatch_title": "Non concorda o contexto!", "filter_modal.added.expired_explanation": "Esta categoría de filtro caducou, terás que cambiar a data de caducidade para que se aplique.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 283887f85a..422549f4d0 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.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, one {הודעה} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 252588952e..15c1a7ad7e 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Bejegyzések és válaszok", "account.report": "@{name} jelentése", "account.requested": "Jóváhagysára vár. Kattints a követési kérés visszavonásához", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} kérte, hogy követhessen téged", "account.share": "@{name} profiljának megosztása", "account.show_reblogs": "@{name} megtolásainak mutatása", "account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index f0db64ed8c..f10b957563 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Kiriman dan balasan", "account.report": "Laporkan @{name}", "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} ingin mengikuti Anda", "account.share": "Bagikan profil @{name}", "account.show_reblogs": "Tampilkan boost dari @{name}", "account.statuses_counter": "{count, plural, other {{counter} Kiriman}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Salin stacktrace ke papan klip", "errors.unexpected_crash.report_issue": "Laporkan masalah", "explore.search_results": "Hasil pencarian", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Untuk Anda", "explore.title": "Jelajahi", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Berita", + "explore.trending_statuses": "Kiriman", + "explore.trending_tags": "Tagar", "filter_modal.added.context_mismatch_explanation": "Indonesia Translate", "filter_modal.added.context_mismatch_title": "Konteks tidak cocok!", "filter_modal.added.expired_explanation": "Kategori saringan ini telah kedaluwarsa, Anda harus mengubah tanggal kedaluwarsa untuk diterapkan.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 61243e5f2d..20604a9e43 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Færslur og svör", "account.report": "Kæra @{name}", "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} hefur beðið um að fylgjast með þér", "account.share": "Deila notandasniði fyrir @{name}", "account.show_reblogs": "Sýna endurbirtingar frá @{name}", "account.statuses_counter": "{count, plural, one {Færsla: {counter}} other {Færslur: {counter}}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Afrita rakningarupplýsingar (stacktrace) á klippispjald", "errors.unexpected_crash.report_issue": "Tilkynna vandamál", "explore.search_results": "Leitarniðurstöður", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Fyrir þig", "explore.title": "Kanna", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Fréttir", + "explore.trending_statuses": "Færslur", + "explore.trending_tags": "Myllumerki", "filter_modal.added.context_mismatch_explanation": "Þessi síuflokkur á ekki við í því samhengi sem aðgangur þinn að þessari færslu felur í sér. Ef þú vilt að færslan sé einnig síuð í þessu samhengi, þá þarftu að breyta síunni.", "filter_modal.added.context_mismatch_title": "Misræmi í samhengi!", "filter_modal.added.expired_explanation": "Þessi síuflokkur er útrunninn, þú þarft að breyta gidistímanum svo hann geti átt við.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index dcbae3ca45..82560c0405 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Post e risposte", "account.report": "Segnala @{name}", "account.requested": "In attesa d'approvazione. Clicca per annullare la richiesta di seguire", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} ha richiesto di seguirti", "account.share": "Condividi il profilo di @{name}", "account.show_reblogs": "Mostra potenziamenti da @{name}", "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Post}}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index dd43e6a115..eb83b3f3bd 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.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": "{counter} 投稿", @@ -83,7 +83,7 @@ "boost_modal.combo": "次からは{combo}を押せばスキップできます", "bundle_column_error.copy_stacktrace": "エラーレポートをコピー", "bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。", - "bundle_column_error.error.title": "おっと!", + "bundle_column_error.error.title": "あらら……", "bundle_column_error.network.body": "このページを読み込もうとしたときにエラーが発生しました。インターネット接続またはこのサーバーの一時的な問題が発生した可能性があります。", "bundle_column_error.network.title": "ネットワークエラー", "bundle_column_error.retry": "再試行", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 6f2640520f..eb92e1bec9 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.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": "{counter} 게시물", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 8cd4462c17..92e7e92670 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -18,7 +18,7 @@ "account.block": "@{name} asteng bike", "account.block_domain": "Navpera {domain} asteng bike", "account.blocked": "Astengkirî", - "account.browse_more_on_origin_server": "Li pelên resen bêhtir bigere", + "account.browse_more_on_origin_server": "Li pelên resen bêtir bigere", "account.cancel_follow_request": "Daxwaza şopandinê vekişîne", "account.direct": "Peyamekê bişîne @{name}", "account.disable_notifications": "Êdî min agahdar neke gava @{name} diweşîne", @@ -54,7 +54,7 @@ "account.posts_with_replies": "Şandî û bersiv", "account.report": "@{name} ragihîne", "account.requested": "Li benda erêkirinê ye. Ji bo betal kirina daxwazê pêl bikin", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} dixwaze te bişopîne", "account.share": "Profîla @{name} parve bike", "account.show_reblogs": "Bilindkirinên ji @{name} nîşan bike", "account.statuses_counter": "{count, plural,one {{counter} Şandî}other {{counter} Şandî}}", @@ -231,8 +231,8 @@ "empty_column.public": "Li vir tiştekî tuneye! Ji raya giştî re tiştekî binivîsîne, an ji bo tijîkirinê ji rajekerên din bikarhêneran bi destan bişopînin", "error.unexpected_crash.explanation": "Ji ber xeletîyeke di koda me da an jî ji ber mijara lihevhatina gerokan, ev rûpel rast nehat nîşandan.", "error.unexpected_crash.explanation_addons": "Ev rûpel bi awayekî rast nehat nîşandan. Ev çewtî mimkûn e ji ber lêzêdekirina gerokan an jî amûrên wergera xweberî pêk tê.", - "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.", - "error.unexpected_crash.next_steps_addons": "Ne çalak kirin û nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.", + "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Ku ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhî ya Mastodon bi kar bînî.", + "error.unexpected_crash.next_steps_addons": "Neçalakkirin û nûkirina rûpelê biceribîne. Ku ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecihî ya Mastodon bi kar bînî.", "errors.unexpected_crash.copy_stacktrace": "Şopa gemara (stacktrace) tûrikê ra jê bigire", "errors.unexpected_crash.report_issue": "Pirsgirêkekê ragihîne", "explore.search_results": "Encamên lêgerînê", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 39c6f48490..ebae909193 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -1,6 +1,6 @@ { "about.blocks": "Moderated servers", - "about.contact": "Contact:", + "about.contact": "Ratio:", "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.", @@ -11,23 +11,23 @@ "about.not_available": "This information has not been made available on this server.", "about.powered_by": "Decentralized social media powered by {mastodon}", "about.rules": "Server rules", - "account.account_note_header": "Note", + "account.account_note_header": "Annotatio", "account.add_or_remove_from_list": "Add or Remove from lists", - "account.badges.bot": "Bot", - "account.badges.group": "Group", - "account.block": "Block @{name}", - "account.block_domain": "Block domain {domain}", - "account.blocked": "Blocked", + "account.badges.bot": "Robotum", + "account.badges.group": "Congregatio", + "account.block": "Impedire @{name}", + "account.block_domain": "Imperire dominium {domain}", + "account.blocked": "Impeditum est", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocked": "Domain blocked", - "account.edit_profile": "Edit profile", + "account.domain_blocked": "Dominium impeditum", + "account.edit_profile": "Recolere notionem", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", "account.featured_tags.last_status_at": "Last post on {date}", - "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.last_status_never": "Nulla contributa", "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", @@ -48,7 +48,7 @@ "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", - "account.muted": "Muted", + "account.muted": "Confutatus", "account.open_original_page": "Open original page", "account.posts": "Posts", "account.posts_with_replies": "Posts and replies", @@ -60,7 +60,7 @@ "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", "account.unblock": "Unblock @{name}", "account.unblock_domain": "Unblock domain {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Solvere impedimentum", "account.unendorse": "Don't feature on profile", "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", @@ -69,46 +69,46 @@ "account_note.placeholder": "Click to add a note", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.average": "Mediocritas", "admin.dashboard.retention.cohort": "Sign-up month", "admin.dashboard.retention.cohort_size": "New users", "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Proclamatio", "attachments_list.unprocessed": "(unprocessed)", "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "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": "Eheu!", "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.retry": "Try again", + "bundle_column_error.retry": "Retemptare", "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?", - "bundle_column_error.routing.title": "404", - "bundle_modal_error.close": "Close", + "bundle_column_error.routing.title": "CCCCIIII", + "bundle_modal_error.close": "Claudere", "bundle_modal_error.message": "Something went wrong while loading this component.", - "bundle_modal_error.retry": "Try again", + "bundle_modal_error.retry": "Retemptare", "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.title": "Signing up on Mastodon", - "column.about": "About", + "column.about": "De", "column.blocks": "Blocked users", - "column.bookmarks": "Bookmarks", + "column.bookmarks": "Signa paginales", "column.community": "Local timeline", "column.direct": "Direct messages", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", - "column.favourites": "Favourites", + "column.favourites": "Dilecti", "column.follow_requests": "Follow requests", - "column.home": "Home", - "column.lists": "Lists", + "column.home": "Domi", + "column.lists": "Catalogi", "column.mutes": "Muted users", "column.notifications": "Notifications", "column.pins": "Pinned post", @@ -124,13 +124,13 @@ "community.column_settings.local_only": "Local only", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Remote only", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", - "compose_form.direct_message_warning_learn_more": "Learn more", + "compose.language.change": "Mutare linguam", + "compose.language.search": "Quaerere linguas...", + "compose_form.direct_message_warning_learn_more": "Discere plura", "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 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.lock_disclaimer.lock": "clausum", "compose_form.placeholder": "What is on your mind?", "compose_form.poll.add_option": "Add a choice", "compose_form.poll.duration": "Poll duration", @@ -138,8 +138,8 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "Barrire", + "compose_form.publish_form": "Barrire", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -150,13 +150,13 @@ "compose_form.spoiler_placeholder": "Write your warning here", "confirmation_modal.cancel": "Cancel", "confirmations.block.block_and_report": "Block & Report", - "confirmations.block.confirm": "Block", + "confirmations.block.confirm": "Impedire", "confirmations.block.message": "Are you sure you want to block {name}?", "confirmations.cancel_follow_request.confirm": "Withdraw request", "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", - "confirmations.delete.confirm": "Delete", + "confirmations.delete.confirm": "Oblitterare", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.confirm": "Oblitterare", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", @@ -164,12 +164,12 @@ "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", - "confirmations.mute.confirm": "Mute", + "confirmations.mute.confirm": "Confutare", "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "confirmations.reply.confirm": "Reply", + "confirmations.reply.confirm": "Respondere", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", @@ -202,15 +202,15 @@ "emoji_button.nature": "Nature", "emoji_button.not_found": "No matching emojis found", "emoji_button.objects": "Objects", - "emoji_button.people": "People", + "emoji_button.people": "Homines", "emoji_button.recent": "Frequently used", - "emoji_button.search": "Search...", + "emoji_button.search": "Quaerere...", "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", "empty_column.account_suspended": "Account suspended", - "empty_column.account_timeline": "No posts found", - "empty_column.account_unavailable": "Profile unavailable", + "empty_column.account_timeline": "Hic nulla contributa!", + "empty_column.account_unavailable": "Notio non impetrabilis", "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", @@ -239,7 +239,7 @@ "explore.suggested_follows": "For you", "explore.title": "Explore", "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_statuses": "Contributa", "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!", @@ -257,7 +257,7 @@ "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", - "follow_recommendations.done": "Done", + "follow_recommendations.done": "Confectum", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "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!", "follow_request.authorize": "Authorize", @@ -308,10 +308,10 @@ "keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.description": "Descriptio", "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", - "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.enter": "Aperire contributum", "keyboard_shortcuts.favourite": "to favourite", "keyboard_shortcuts.favourites": "to open favourites list", "keyboard_shortcuts.federated": "to open federated timeline", @@ -327,7 +327,7 @@ "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "to open pinned posts list", "keyboard_shortcuts.profile": "to open author's profile", - "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.reply": "Respondere ad contributum", "keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.search": "to focus search", "keyboard_shortcuts.spoilers": "to show/hide CW field", @@ -337,10 +337,10 @@ "keyboard_shortcuts.toot": "to start a brand new post", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "lightbox.close": "Close", + "lightbox.close": "Claudere", "lightbox.compress": "Compress image view box", "lightbox.expand": "Expand image view box", - "lightbox.next": "Next", + "lightbox.next": "Secundum", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", @@ -422,12 +422,12 @@ "notifications.column_settings.unread_notifications.category": "Unread notifications", "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", "notifications.column_settings.update": "Edits:", - "notifications.filter.all": "All", + "notifications.filter.all": "Omnia", "notifications.filter.boosts": "Boosts", "notifications.filter.favourites": "Favourites", "notifications.filter.follows": "Follows", "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", + "notifications.filter.polls": "Eventus electionis", "notifications.filter.statuses": "Updates from people you follow", "notifications.grant_permission": "Grant permission.", "notifications.group": "{count} notifications", @@ -439,22 +439,22 @@ "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", "notifications_permission_banner.title": "Never miss a thing", "picture_in_picture.restore": "Put it back", - "poll.closed": "Closed", + "poll.closed": "Clausum", "poll.refresh": "Refresh", "poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", + "poll.vote": "Eligere", + "poll.voted": "Elegisti hoc responsum", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll_button.add_poll": "Addere electionem", + "poll_button.remove_poll": "Auferre electionem", "privacy.change": "Adjust status privacy", "privacy.direct.long": "Visible for mentioned users only", "privacy.direct.short": "Direct", "privacy.private.long": "Visible for followers only", "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", - "privacy.public.short": "Public", + "privacy.public.long": "Coram publico", + "privacy.public.short": "Coram publico", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", "privacy_policy.last_updated": "Last updated {date}", @@ -465,31 +465,31 @@ "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": "nunc", "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", - "relative_time.just_now": "now", + "relative_time.just_now": "nunc", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", - "relative_time.today": "today", + "relative_time.today": "hodie", "reply_indicator.cancel": "Cancel", - "report.block": "Block", + "report.block": "Impedimentum", "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.categories.other": "Altera", "report.categories.spam": "Spam", "report.categories.violation": "Content violates one or more server rules", "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.category.title_account": "notio", + "report.category.title_status": "contributum", + "report.close": "Confectum", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "report.mute": "Mute", + "report.mute": "Confutare", "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.next": "Secundum", "report.placeholder": "Type or paste additional comments", "report.reasons.dislike": "I don't like it", "report.reasons.dislike_description": "It is not something you want to see", @@ -503,7 +503,7 @@ "report.rules.title": "Which rules are being violated?", "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "Are there any posts that back up this report?", - "report.submit": "Submit report", + "report.submit": "Mittere", "report.target": "Report {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", @@ -512,11 +512,11 @@ "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", - "report_notification.categories.other": "Other", + "report_notification.categories.other": "Altera", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", - "search.placeholder": "Search", + "search.placeholder": "Quaerere", "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Advanced search format", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", @@ -536,23 +536,23 @@ "server_banner.active_users": "active users", "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": "Discere plura", "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "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_status": "Open this status in the moderation interface", - "status.block": "Block @{name}", - "status.bookmark": "Bookmark", + "status.block": "Impedire @{name}", + "status.bookmark": "Signa paginaris", "status.cancel_reblog_private": "Unboost", "status.cannot_reblog": "This post cannot be boosted", "status.copy": "Copy link to status", - "status.delete": "Delete", + "status.delete": "Oblitterare", "status.detailed_status": "Detailed conversation view", "status.direct": "Direct message @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", + "status.edit": "Recolere", + "status.edited": "Recultum {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", @@ -599,8 +599,8 @@ "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", - "tabs_bar.federated_timeline": "Federated", - "tabs_bar.home": "Home", + "tabs_bar.federated_timeline": "Foederatum", + "tabs_bar.home": "Domi", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", @@ -611,7 +611,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", - "timeline_hint.resources.statuses": "Older posts", + "timeline_hint.resources.statuses": "Contributa pristina", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", @@ -625,9 +625,9 @@ "upload_form.audio_description": "Describe for people who are hard of hearing", "upload_form.description": "Describe for people who are blind or have low vision", "upload_form.description_missing": "No description added", - "upload_form.edit": "Edit", + "upload_form.edit": "Recolere", "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", + "upload_form.undo": "Oblitterare", "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", "upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.apply": "Apply", @@ -647,7 +647,7 @@ "video.expand": "Expand video", "video.fullscreen": "Full screen", "video.hide": "Hide video", - "video.mute": "Mute sound", + "video.mute": "Confutare soni", "video.pause": "Pause", "video.play": "Play", "video.unmute": "Unmute sound" diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 6b07d59114..3322be0ca8 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Ieraksti un atbildes", "account.report": "Sūdzēties par @{name}", "account.requested": "Gaida apstiprinājumu. Nospied, lai atceltu sekošanas pieparasījumu", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} nosūtīja tev sekošanas pieprasījumu", "account.share": "Dalīties ar @{name} profilu", "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus", "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 9a873ffb76..81375f51a5 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Berichten en reacties", "account.report": "@{name} rapporteren", "account.requested": "Wachten op goedkeuring. Klik om het volgverzoek te annuleren", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} wil je graag volgen", "account.share": "Profiel van @{name} delen", "account.show_reblogs": "Boosts van @{name} tonen", "account.statuses_counter": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 56ccfe43b7..1693636020 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Tut og svar", "account.report": "Rapporter @{name}", "account.requested": "Ventar på aksept. Klikk for å avbryta fylgjeførespurnaden", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} har bedt om å få fylgja deg", "account.share": "Del @{name} sin profil", "account.show_reblogs": "Vis framhevingar frå @{name}", "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}", @@ -138,7 +138,7 @@ "compose_form.poll.remove_option": "Fjern dette valet", "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": "Publisér", + "compose_form.publish": "Legg ut", "compose_form.publish_form": "Publisér", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Lagre endringar", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla", "errors.unexpected_crash.report_issue": "Rapporter problem", "explore.search_results": "Søkeresultat", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "For deg", "explore.title": "Utforsk", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Nytt", + "explore.trending_statuses": "Innlegg", + "explore.trending_tags": "Emneknaggar", "filter_modal.added.context_mismatch_explanation": "Denne filterkategorien gjeld ikkje i den samanhengen du har lese dette innlegget. Viss du vil at innlegget skal filtrerast i denne samanhengen òg, må du endra filteret.", "filter_modal.added.context_mismatch_title": "Konteksten passar ikkje!", "filter_modal.added.expired_explanation": "Denne filterkategorien har gått ut på dato. Du må endre best før datoen for at den skal gjelde.", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index c6999ab201..b40ca049ea 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -349,7 +349,7 @@ "lists.delete": "Slett listen", "lists.edit": "Rediger listen", "lists.edit.submit": "Endre tittel", - "lists.new.create": "Ligg til liste", + "lists.new.create": "Legg til liste", "lists.new.title_placeholder": "Ny listetittel", "lists.replies_policy.followed": "Enhver fulgt bruker", "lists.replies_policy.list": "Medlemmer i listen", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 2e475aef93..b4fbcec33d 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -2,7 +2,7 @@ "about.blocks": "Servidors moderats", "about.contact": "Contacte :", "about.disclaimer": "Mastodon es gratuit, un logicial libre e una marca de Mastodon gGmbH.", - "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.no_reason_available": "Rason pas disponibla", "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.", "about.domain_blocks.silenced.title": "Limitats", @@ -49,12 +49,12 @@ "account.mute": "Rescondre @{name}", "account.mute_notifications": "Rescondre las notificacions de @{name}", "account.muted": "Mes en silenci", - "account.open_original_page": "Open original page", + "account.open_original_page": "Dobrir la pagina d’origina", "account.posts": "Tuts", "account.posts_with_replies": "Tuts e responsas", "account.report": "Senhalar @{name}", "account.requested": "Invitacion mandada. Clicatz per anullar", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} a demandat a vos sègre", "account.share": "Partejar lo perfil a @{name}", "account.show_reblogs": "Mostrar los partatges de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}", @@ -139,7 +139,7 @@ "compose_form.poll.switch_to_multiple": "Cambiar lo sondatge per permetre de causidas multiplas", "compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida", "compose_form.publish": "Publicar", - "compose_form.publish_form": "Publish", + "compose_form.publish_form": "Publicar", "compose_form.publish_loud": "{publish} !", "compose_form.save_changes": "Salvar los cambiaments", "compose_form.sensitive.hide": "Marcar coma sensible", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar las traças al quichapapièrs", "errors.unexpected_crash.report_issue": "Senhalar un problèma", "explore.search_results": "Resultats de recèrca", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Per vos", "explore.title": "Explorar", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Novèlas", + "explore.trending_statuses": "Publicacions", + "explore.trending_tags": "Etiquetas", "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.", @@ -501,7 +501,7 @@ "report.reasons.violation_description": "You are aware that it breaks specific rules", "report.rules.subtitle": "Select all that apply", "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", + "report.statuses.subtitle": "Seleccionatz çò que s’aplica", "report.statuses.title": "Are there any posts that back up this report?", "report.submit": "Mandar", "report.target": "Senhalar {target}", @@ -513,8 +513,8 @@ "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report_notification.attached_statuses": "{count, plural, one {{count} publicacion junta} other {{count} publicacions juntas}}", "report_notification.categories.other": "Autre", - "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Rule violation", + "report_notification.categories.spam": "Messatge indesirable", + "report_notification.categories.violation": "Violacion de las règlas", "report_notification.open": "Dobrir lo senhalament", "search.placeholder": "Recercar", "search.search_or_paste": "Recercar o picar una URL", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index bfe227c0fd..b096fde4fa 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Wpisy i odpowiedzi", "account.report": "Zgłoś @{name}", "account.requested": "Oczekująca prośba, kliknij aby anulować", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} poprosił(a) o możliwość zaobserwowania twojego profilu", "account.share": "Udostępnij profil @{name}", "account.show_reblogs": "Pokazuj podbicia od @{name}", "account.statuses_counter": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Skopiuj ślad stosu do schowka", "errors.unexpected_crash.report_issue": "Zgłoś problem", "explore.search_results": "Wyniki wyszukiwania", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Dla Ciebie", "explore.title": "Odkrywaj", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Aktualności", + "explore.trending_statuses": "Posty", + "explore.trending_tags": "Hasztagi", "filter_modal.added.context_mismatch_explanation": "Ta kategoria filtrów nie ma zastosowania do kontekstu, w którym uzyskałeś dostęp do tego wpisu. Jeśli chcesz, aby wpis został przefiltrowany również w tym kontekście, będziesz musiał edytować filtr.", "filter_modal.added.context_mismatch_title": "Niezgodność kontekstów!", "filter_modal.added.expired_explanation": "Ta kategoria filtra wygasła, będziesz musiał zmienić datę wygaśnięcia, aby ją zastosować.", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 0c0d3df709..54faf79cd8 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Com respostas", "account.report": "Denunciar @{name}", "account.requested": "Aguardando aprovação. Clique para cancelar a solicitação", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} quer te seguir", "account.share": "Compartilhar perfil de @{name}", "account.show_reblogs": "Mostrar boosts de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -89,7 +89,7 @@ "bundle_column_error.retry": "Tente novamente", "bundle_column_error.return": "Voltar à página inicial", "bundle_column_error.routing.body": "A página solicitada não foi encontrada. Tem certeza de que a URL na barra de endereços está correta?", - "bundle_column_error.routing.title": "Erro 404", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fechar", "bundle_modal_error.message": "Erro ao carregar este componente.", "bundle_modal_error.retry": "Tente novamente", @@ -236,10 +236,10 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar dados do erro para área de transferência", "errors.unexpected_crash.report_issue": "Reportar problema", "explore.search_results": "Resultado da pesquisa", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Para você", "explore.title": "Explorar", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_links": "Notícias", + "explore.trending_statuses": "Publicações", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto no qual você acessou esta publicação. Se quiser que a publicação seja filtrada nesse contexto também, você terá que editar o filtro.", "filter_modal.added.context_mismatch_title": "Incompatibilidade de contexto!", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index b414409ac9..83a351dcd9 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -54,7 +54,7 @@ "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_follow": "{name} has requested to follow you", + "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}}", @@ -236,10 +236,10 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar a stacktrace para o clipboard", "errors.unexpected_crash.report_issue": "Reportar problema", "explore.search_results": "Resultados da pesquisa", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Para si", "explore.title": "Explorar", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_links": "Notícias", + "explore.trending_statuses": "Publicações", "explore.trending_tags": "Hashtags", "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!", @@ -623,7 +623,7 @@ "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.", "upload_error.poll": "Carregamento de ficheiros não é permitido em votações.", "upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva", - "upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais", + "upload_form.description": "Descreva para pessoas com diminuição da acuidade visual", "upload_form.description_missing": "Nenhuma descrição adicionada", "upload_form.edit": "Editar", "upload_form.thumbnail": "Alterar miniatura", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 355f972874..7d28a5e432 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.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, one {{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/sl.json b/app/javascript/mastodon/locales/sl.json index a6dc51bdc8..2616c8e7db 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Objave in odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čakanje na odobritev. Kliknite, da prekličete prošnjo za sledenje", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} vam želi slediti", "account.share": "Deli profil osebe @{name}", "account.show_reblogs": "Pokaži izpostavitve osebe @{name}", "account.statuses_counter": "{count, plural, one {{count} tut} two {{count} tuta} few {{count} tuti} other {{count} tutov}}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index e641c30fde..4b51250655 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Mesazhe dhe përgjigje", "account.report": "Raportojeni @{name}", "account.requested": "Në pritje të miratimit. Që të anuloni kërkesën për ndjekje, klikojeni", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} ka kërkuar t’ju ndjekë", "account.share": "Ndajeni profilin e @{name} me të tjerët", "account.show_reblogs": "Shfaq përforcime nga @{name}", "account.statuses_counter": "{count, plural, one {{counter} Mesazh} other {{counter} Mesazhe}}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 0ef3cdb1b4..23d52021d1 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Objave i odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čekanje odobrenja. Kliknite za otkazivanje zahteva za praćenje", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} je zatražio da vas prati", "account.share": "Podeli profil korisnika @{name}", "account.show_reblogs": "Prikaži podržavanja od korisnika @{name}", "account.statuses_counter": "{count, plural, one {{counter} objavio} few {{counter} objavio} other {{counter} objavio}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord", "errors.unexpected_crash.report_issue": "Prijavi problem", "explore.search_results": "Rezultati pretrage", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Za tebe", "explore.title": "Istraži", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Vesti", + "explore.trending_statuses": "Objave", + "explore.trending_tags": "Heš oznake", "filter_modal.added.context_mismatch_explanation": "Ova kategorija filtera se ne odnosi na kontekst u kojem ste pristupili ovoj objavi. Ako želite da se objava filtrira i u ovom kontekstu, morate urediti filter.", "filter_modal.added.context_mismatch_title": "Kontekst se ne podudara!", "filter_modal.added.expired_explanation": "Ova kategorija filtera je istekla, morate promeniti datum isteka da bi se primenjivala.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 588b5a6f3e..5ad0bb50b4 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.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, one {{counter} објавио} few {{counter} објавио} other {{counter} објавио}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Копирај „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/sv.json b/app/javascript/mastodon/locales/sv.json index a305b9ddd4..6adec8c775 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Inlägg och svar", "account.report": "Rapportera @{name}", "account.requested": "Inväntar godkännande. Klicka för att ta tillbaka din begäran om att få följa", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} har begärt att följa dig", "account.share": "Dela @{name}s profil", "account.show_reblogs": "Visa boostar från @{name}", "account.statuses_counter": "{count, plural, one {{counter} Inlägg} other {{counter} Inlägg}}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index f7ae69ab4a..4ab9e84d85 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.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, other {{counter} โพสต์}}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 27a89ec90c..ffa439db9e 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Gönderiler ve yanıtlar", "account.report": "@{name} adlı kişiyi bildir", "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} size takip isteği gönderdi", "account.share": "@{name} adlı kişinin profilini paylaş", "account.show_reblogs": "@{name} kişisinin boostlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index f248ab2a51..bae66ac698 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.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, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} дописи}}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 2ece60cb34..05608928f5 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Trả lời", "account.report": "Báo cáo @{name}", "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} yêu cầu theo dõi bạn", "account.share": "Chia sẻ trang @{name}", "account.show_reblogs": "Hiện tút do @{name} đăng lại", "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f033e418e5..e03c891ef1 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -37,7 +37,7 @@ "account.following_counter": "正在关注 {counter} 人", "account.follows.empty": "此用户目前尚未关注任何人。", "account.follows_you": "关注了你", - "account.go_to_profile": "转到个人资料", + "account.go_to_profile": "转到个人资料界面", "account.hide_reblogs": "隐藏来自 @{name} 的转贴", "account.joined_short": "加入于", "account.languages": "更改订阅语言", @@ -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": "{counter} 条嘟文", @@ -200,7 +200,7 @@ "emoji_button.food": "食物和饮料", "emoji_button.label": "插入表情符号", "emoji_button.nature": "自然", - "emoji_button.not_found": "没有找到匹配的表情符号", + "emoji_button.not_found": "木有这个表情符号!(╯°□°)╯︵ ┻━┻", "emoji_button.objects": "物体", "emoji_button.people": "人物", "emoji_button.recent": "常用", @@ -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/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 46fa7a77ef..5080b7b177 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.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,one {{counter} 篇}other {{counter} 篇}}帖文", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "複製 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/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index abc584d41b..1cffc2c0fd 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.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,one {{counter} 則}other {{counter} 則}}嘟文", diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml index 123e7cd9b1..07c0d8bb47 100644 --- a/config/locales/activerecord.bg.yml +++ b/config/locales/activerecord.bg.yml @@ -40,7 +40,7 @@ bg: user: attributes: email: - blocked: използва се непозволен имейл доставчик + blocked: използва се непозволен доставчик на услуга за е-поща unreachable: изглежда, че не съществува role_id: elevated: не може да е по-висока от текущата ви роля diff --git a/config/locales/activerecord.et.yml b/config/locales/activerecord.et.yml index 1496dedcb6..b76001ed9b 100644 --- a/config/locales/activerecord.et.yml +++ b/config/locales/activerecord.et.yml @@ -36,7 +36,7 @@ et: status: attributes: reblog: - taken: postitusel juba eksisteerib + taken: postitusel on juba user: attributes: email: diff --git a/config/locales/be.yml b/config/locales/be.yml index f192ad10b7..de6ac186d1 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -122,6 +122,8 @@ be: redownloaded_msg: Профіль %{username} паспяхова абноўлены за арыгіналу reject: Адхіліць rejected_msg: Заяўка на рэгістрацыю %{username} адхіленая + remote_suspension_irreversible: Даныя гэтага уліковага запісу былі незваротна выдалены. + remote_suspension_reversible_hint_html: Уліковы запіс быў прыпынены на сваім серверы і даныя будуць цалкам выдалены ад %{date}. Да гэтага аддалёны сервер можа аднавіць гэты уліковы запіс без якіх-небудзь шкодных наступстваў. Калі вы хочаце выдаліць усе даныя ўліковага запісу зараз, вы можаце зрабіць гэта ніжэй. remove_avatar: Выдаліць аватар remove_header: Выдаліць шапку removed_avatar_msg: Аватар %{username} выдалены diff --git a/config/locales/bg.yml b/config/locales/bg.yml index f821c1f5f7..c37c0bcbf5 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -12,7 +12,7 @@ bg: one: Последовател other: Последователи following: Следва - instance_actor_flash: Този профил е виртуално действащо лице, представляващо сървъра, а не индивидуален потребител. Използва се за федериране и не бива да бъде преустановен. + instance_actor_flash: Акаунтът е виртуално действащо лице, представляващо сървъра, а не отделен потребител. Използва се за федерацията и не бива да се спира. last_active: последна дейност link_verified_on: Собствеността върху тази връзка е проверена на %{date} nothing_here: Тук няма нищо! @@ -76,7 +76,7 @@ bg: inbox_url: Входящ URL invite_request_text: Причини за присъединяване invited_by: Покана от - ip: IP + ip: IP адрес joined: Присъединено location: all: Всичко @@ -86,10 +86,10 @@ bg: login_status: Състояние на вход media_attachments: Прикачена мултимедия memorialize: Възпоминание - memorialized: Възпоминателен + memorialized: Възпоминато memorialized_msg: Успещно превръщане на %{username} във възпоминателен профил moderation: - active: Активно + active: Дейно all: Всичко pending: Чака silenced: Ограничено @@ -116,6 +116,8 @@ bg: redownloaded_msg: Успешно опреснен профил на %{username} от източника reject: Отхвърляне rejected_msg: Успешно отхвърлена заявка за регистрация на %{username} + remote_suspension_irreversible: Данните за този акаунт са изтрити безвъзвратно. + remote_suspension_reversible_hint_html: Акаунтът е бил преустановен на своя сървър и данните ще бъдат напълно премахнати на %{date}. Дотогава отдалеченият сървър може да възстанови този акаунт без щети. Ако желаете да премахнете всички данни за акаунта незабавно, можете да го сторите по-долу. remove_avatar: Премахване на аватар remove_header: Премахване на заглавката removed_avatar_msg: Успешно премахнат образ на аватара на %{username} @@ -134,7 +136,7 @@ bg: security_measures: only_password: Само парола password_and_2fa: Парола и двуфакторно удостоверяване - sensitive: Чувствителен + sensitive: Деликатен sensitized: Отбелязано като деликатно съдържание shared_inbox_url: URL адрес на споделена входяща кутия show: @@ -148,7 +150,7 @@ bg: suspend: Спиране suspended: Спряно suspension_irreversible: Данните на този акаунт са безвъзвратно изтрити. Може да възстановите достъпа до акаунта, за да може да се използва пак, но предишните данни няма да се възстановят. - suspension_reversible_hint_html: Този профил е преустановен и данните от него ще бъдат напълно премахнати на %{date}. До тази дата профилът може да бъде възстановен без щети. Ако желаете, по-долу можете да премахнете всички данни от профила незабавно. + suspension_reversible_hint_html: Акаунтът е спрян и данните от него ще бъдат напълно премахнати на %{date}. До тогава акаунтът може да се възстанови без лоши ефекти. Ако желаете, по-долу може да премахнете всички данни от акаунта незабавно. title: Акаунти unblock_email: Отблокиране на адреса на имейла unblocked_email_msg: Успешно разблокиране на имейл адреса на %{username} @@ -156,7 +158,7 @@ bg: undo_sensitized: Нeчувствителен undo_silenced: Отмяна на ограничението undo_suspension: Отмяна на спирането - unsilenced_msg: Успешна отмяна на ограниченията върху профила на %{username} + unsilenced_msg: Успешна отмяна на ограниченията върху акаунта на %{username} unsubscribe: Без абонамент unsuspended_msg: Успешно връщане на достъпа до акаунта на %{username} username: Потребителско име @@ -176,45 +178,110 @@ bg: create_announcement: Създаване на оповестяване create_canonical_email_block: Създаване на имейл блокировка create_custom_emoji: Създаване на персонализирано емоджи + create_domain_allow: Създаване на позволение за домейна + create_domain_block: Създаване на блокиране за домейна + create_email_domain_block: Създаване за блокиране на имейл домейна create_ip_block: Създаване на правило за IP + create_unavailable_domain: Създаване на недостъпен домейн create_user_role: Създаване на роля demote_user: Понижаване на потребител destroy_announcement: Изтриване на оповестяване destroy_canonical_email_block: Изтриване на имейл блокировка destroy_custom_emoji: Изтриване на персонализирано емоджи + destroy_domain_allow: Изтриване на позволението за домейн + destroy_domain_block: Изтриване на блокирането за домейна + destroy_email_domain_block: Изтриване на блокирането за имейл домейна + destroy_instance: Прочистване на домейна destroy_ip_block: Изтриване на правило за IP destroy_status: Изтриване на публикация 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_sign_in_token_auth_user: Включване на удостоверяването с код по имейл за потребителя enable_user: Активиране на потребител - memorialize_account: Запомни потребителя + memorialize_account: Възпоменаване на акаунта promote_user: Повишаване на потребител + reject_appeal: Отхвърляне на молбата + reject_user: Отхвърляне на потребителя remove_avatar_user: Премахване на аватар reopen_report: Повторно отваряне на доклад resend_user: Повторно изпращане на имейла за потвърждение reset_password_user: Нулиране на парола - silence_account: Ограничи Акаунта - suspend_account: Прекрати акаунта + resolve_report: Отстраняване на доклада + sensitive_account: Деликатен акаунт + silence_account: Ограничаване на акаунта + suspend_account: Преустановяване на акаунта + unassigned_report: Освобождаване на доклада unblock_email_account: Разблокирай Email адреса + unsensitive_account: Не е деликатен акаунт + unsilence_account: Отмяна на ограничението за акаунта + unsuspend_account: Връщане на акаунта + update_announcement: Актуализиране на обявлението + update_custom_emoji: Обновяване на емоджитата по избор + update_domain_block: Обновяване на блокирането за домейна update_ip_block: Обновяване на правило за IP update_status: Обновяване на публикация 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}" + change_role_user_html: "%{name} промени ролята на %{target}" + confirm_user_html: "%{name} потвърди имейл адреса на потребителя %{target}" + create_account_warning_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_ip_block_html: "%{name} създаде правило за IP %{target}" + create_unavailable_domain_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_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_instance_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}" + disable_sign_in_token_auth_user_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}" 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}" reopen_report_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}" unblock_email_account_html: "%{name} разблокира адреса на имейла на %{target}" unsensitive_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}" + update_domain_block_html: "%{name} обнови блокирането на домейна за %{target}" update_ip_block_html: "%{name} промени правило за IP на %{target}" update_status_html: "%{name} обнови публикация от %{target}" update_user_role_html: "%{name} промени ролята на %{target}" @@ -234,6 +301,8 @@ bg: title: Ново оповестяване publish: Публикуване published_msg: Успешно публикувано оповестяване! + scheduled_for: Планирано за %{time} + scheduled_msg: Обявлението е планирано за публикуване! title: Оповестявания unpublish: Без публикуване unpublished_msg: Успешно скрито оповестяване! @@ -267,6 +336,8 @@ bg: shortcode_hint: Поне 2 символа, само азбучно-цифрови символи и долни черти title: Потребителски емоджита uncategorized: Некатегоризирано + unlist: Скриване от списъка + unlisted: Скрито от списъка update_failed_msg: Не може да се обнови това емоджи updated_msg: Успешно осъвременено емоджи! upload: Качване @@ -276,8 +347,21 @@ bg: media_storage: Мултимедийно хранилище new_users: нови потребители opened_reports: отворени доклади + pending_appeals_html: + one: "%{count} чакаща молба" + other: "%{count} чакащи молби" + pending_reports_html: + one: "%{count} чакащ доклад" + other: "%{count} чакащи доклади" + pending_tags_html: + one: "%{count} чакащ хаштаг" + other: "%{count} чакащи хаштагове" + pending_users_html: + one: "%{count} чакащ потребител" + other: "%{count} чакащи потребители" resolved_reports: разрешени доклади software: Софтуер + sources: Източници на регистрации space: Използвано пространство title: Табло за управление top_languages: Водещи дейни езици @@ -287,16 +371,51 @@ bg: appeals: empty: Няма намерени обжалвания. title: Жалби + domain_allows: + add_new: Позволявам федерацията с домейна + created_msg: Домейнът е успешно позволен за федерацията + destroyed_msg: Домейнът не е позволен за федерацията + export: Експортиране + import: Импортиране + undo: Не позволявам федерацията с домейна domain_blocks: + add_new: Добавяне на ново блокиране за домейна + created_msg: Блокирането на домейна се обработва + destroyed_msg: Блокирането на домейна е спряно domain: Домейн + edit: Редакция на блокирането на домейна + existing_domain_block: Вече сте наложили строги ограничения на %{name}. + existing_domain_block_html: Вече сте наложили строги ограничения за %{name} и трябва първо да премахнете блокирането. + export: Експортиране + import: Импортиране + new: + create: Блокиране + hint: Блокирането на домейн няма да предотврати създаването на записи в базата данни за нови акаунти, но автоматично и с обратно действие ще приложи определени методи за модерация на тези акаунти. + severity: + desc_html: "Ограничаване ще скрие публикациите от акаунти в този домейн за всеки, който не ги следва. Преустановяване ще премахне всякакво съдържание, мултимедия и профилни данни за акаунтите в този домейн от вашия сървър. Използвайте Без, ако искате просто да забраните мултимедийни файлове." + noop: Без + silence: Ограничаване + suspend: Преустановяване + title: Ново блокиране на домейн + no_domain_block_selected: Нищо не беше проемено, защото нямаше избрано блокиране на домейн + not_permitted: Нямате право да извършвате това действие + obfuscate: Скриване на името на домейна + obfuscate_hint: Частично скриване на името на домейна в списъка, ако е включена опцията за рекламиране на списъка с ограничения на домейни private_comment: Личен коментар private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите. + public_comment: Публичен коментар + public_comment_hint: Оставяне на коментар за ограничението на домейна за широката публика, ако рекламирането на списъка с ограниченията на домейни е включено. + reject_media: Забрана на мултимедийни файлове + reject_media_hint: Премахва локално запазени мултимедийни файлове и отказва да сваля такива в бъдеще. Ирелевантно в случай на преустановяване reject_reports: Отхвърляне на докладите reject_reports_hint: Пренебрегване на всички доклади, идващи от този домейн. Неуместни за прекратяване undo: Отмяна на блокиране на домейн view: Преглед на блокиране на домейн email_domain_blocks: add_new: Добавяне на ново + attempts_over_week: + one: "%{count} опит за изминалата седмица" + other: "%{count} опити за записване през изминалата седмица" created_msg: Успешно блокиран домейн на е-поща delete: Изтриване dns: @@ -305,52 +424,93 @@ bg: domain: Домейн new: create: Добавяне на домейн + title: Блокиране на нов домейн на имейл title: Блокирани домейни на имейл export_domain_allows: no_file: Няма избран файл export_domain_blocks: import: existing_relationships_warning: Съществуващи последвания + private_comment_template: Внесено от %{source} на %{date} + title: Импортиране на блокиранията на домейни + new: + title: Импортиране на блокиранията на домейни no_file: Няма избран файл follow_recommendations: + description_html: "Препоръките за следване помагат на новите потребители бързо да намерят ново съдържание. Когато един потребител не е създавал достатъчно връзки, за да формира свои собствени препоръки за следване, тези акаунти ще бъдат препоръчани. Акаунтите ще бъдат генерирани всеки ден на базата на най-голяма скорошна ангажираност и най-голям брой местни последователи за даден език." language: За език status: Състояние + suppress: Забрана на препоръките за следване + suppressed: Забранени + title: Препоръки за следване + unsuppress: Възстановяване на препоръките за следване instances: availability: + description_html: + one: Ако доставянето до домейна не е успешно за %{count} ден, няма да има последващи опити, докато не се получи доставка от домейна. + other: Ако доставянето до домейна не е успешно за %{count} дни, няма да има последващи опити, докато не се получи доставка от домейна. + failure_threshold_reached: Прага за общ брой грешки е достигнат на %{date}. + failures_recorded: + one: Неуспешен опит в %{count} ден. + other: Неуспешни опити в %{count} различни дни. + no_failures_recorded: Няма записани неуспешни опити. title: Наличност + warning: Последният опит за свързване с този сървър беше неуспешен back_to_all: Всичко back_to_limited: Ограничено back_to_warning: Предупреждение by_domain: Домейн + confirm_purge: Сигурни ли сте, че желаете да окончателно да изтриете данните от този домейн? content_policies: comment: Вътрешна бележка + description_html: Можете да дефинирате политики за съдържание, които ще бъдат приложени към всички акаунти от този домейн и всеки от под-домейните му. policies: + reject_media: Отхвърляне на мултимедия + reject_reports: Отхвърляне на докладите silence: Ограничение + suspend: Преустановяване policy: Политика reason: Обществена причина title: Политика на съдържанието dashboard: instance_accounts_dimension: Най-следвани акаунти + instance_accounts_measure: запазени акаунти instance_followers_measure: наши последователи там instance_follows_measure: техни последователи тук instance_languages_dimension: Водещи езици + instance_media_attachments_measure: запазена прикачена мултимедия + instance_reports_measure: доклади за тях + instance_statuses_measure: запазени публикации delivery: all: Всичко clear: Изчистване на грешките за доставка + failing: Неуспех restart: Рестартиране на доставката stop: Спиране на доставката unavailable: Неналично delivery_available: Доставката е налична delivery_error_days: Грешни дни на доставяне + delivery_error_hint: Ако доставката не е възможна за %{count} дни, автоматично ще бъде маркирана като невъзможно за доставка. + destroyed_msg: Данните от %{domain} бяха поставени на опашка за незабавно изтриване. empty: Няма намерени домейни. + known_accounts: + one: "%{count} известен акаунт" + other: "%{count} известни акаунти" moderation: all: Всичко limited: Ограничено title: Mодериране + private_comment: Личен коментар + public_comment: Публичен коментар + purge: Чистка + purge_description_html: Ако считате, че този домейн е офлайн завинаги, можете да изтриете всички записи за акаунти и прилежащи данни за този домейн от вашата памет. Това може да отнеме известно време. title: Федерация total_blocked_by_us: Блокирано от нас total_followed_by_them: Последвани от тях total_followed_by_us: Последвано от нас + total_reported: Доклади за тях + total_storage: Прикачена мултимедия + totals_time_period_hint_html: Общите стойности, показани по-долу, включват всички данни. invites: deactivate_all: Деактивиране на всички filter: @@ -361,6 +521,7 @@ bg: title: Покани ip_blocks: add_new: Създаване на правило + created_msg: Успешно добавено ново правило за IP delete: Изтриване expires_in: '1209600': 2 седмици @@ -369,16 +530,38 @@ bg: '31556952': 1 година '86400': 1 ден '94670856': 3 години + new: + title: Създаване на ново правило за IP + no_ip_block_selected: Няма променени IP правила, тъй като нито едно не беше избрано + title: IP правила relationships: title: Отношения на %{acct} relays: + add_new: Добавяне на нов предаващ сървър delete: Изтриване + description_html: "Федериращ предаващ сървър е междинен сървър, който обменя огромни количества публични публикации между сървъри, които са записани и публикуват на него. Може да помогне на малки и средно-големи сървъри да открият съдържание от федивселената, който процес иначе би изискал от локалните потребители да следват хора от отдалечени сървъри." disable: Изключване disabled: Изключено enable: Включване + enable_hint: Щом бъде включена настройката, вашият сървър ще се запише за всички публични публикации от този предаващ сървър и ще започне да изпраща към него публичните публикации от вашия сървър. enabled: Включено + inbox_url: URL на предаващия сървър + pending: Изчакване на одобрение от предаващия сървър + save_and_enable: Запазване и включване + setup: Настройка на връзка с предаващия сървър + signatures_not_enabled: Предаващите сървъри може да не работят коректно, докато са включени режима за сигурност или режима за ограничено федериране status: Състояние + title: Предаващи сървъри + report_notes: + created_msg: Успешно създаване на бележка за доклад! + destroyed_msg: Успешно изтриване на бележка за доклад! reports: + account: + notes: + one: "%{count} бележка" + other: "%{count} бележки" + action_log: Одитен дневник + action_taken_by: Действие, предприето от are_you_sure: Сигурни ли сте? category: Категория comment: @@ -389,6 +572,7 @@ bg: forwarded_to: Препратено до %{domain} mark_as_resolved: Маркиране като решено mark_as_sensitive: Означаване като деликатно + mark_as_unresolved: Отбелязване като нерешено notes: create: Добавяне на бележка create_and_resolve: Разрешаване с бележка @@ -399,8 +583,10 @@ bg: reported_account: Докладван акаунт reported_by: Докладвано от resolved: Разрешено + skip_to_actions: Прескок към действия status: Състояние statuses: Докладвано съдържание + target_origin: Произход на докладвания акаунт title: Доклади updated_at: Обновено view_profile: Преглед на профила @@ -423,6 +609,18 @@ bg: other: "%{count} разрешения" privileges: administrator: Администратор + administrator_description: Потребители с това разрешение ще заобиколят всички разрешения + delete_user_data: Изтриване на потребителските данни + invite_users: Поканване на потребители + invite_users_description: Позволява на потребителите да канят нови хора в сървъра + manage_announcements: Управляване на оповестяванията + manage_announcements_description: Позволява на потребителите да управляват оповестяванията в сървъра + manage_appeals: Управление на обжалванията + manage_appeals_description: Позволява на потребителите да разглеждат обжалвания срещу модераторски действия + manage_blocks: Управляване на блокиранията + manage_blocks_description: Позволява на потребителите да блокират доставчици на е-поща и IP адреси + manage_custom_emojis: Управляване на персонализирани емоджита + manage_custom_emojis_description: Позволява на потребителите да управляват персонализирани емоджита в сървъра manage_federation: Управление на Федерацията manage_federation_description: Позволява на потребители да блокират или позволяват федерация с други домейни, а и управление на доставаемостта manage_invites: Управление на поканите @@ -459,6 +657,8 @@ bg: title: Външен вид branding: title: Брандиране + default_noindex: + desc_html: Влияе на всички потребители, които не са променили тази настройка за себе си discovery: profile_directory: Директория на профила public_timelines: Публични инфопотоци @@ -491,18 +691,62 @@ bg: metadata: Метаданни open: Отваряне на публикация original_status: Първообразна публикация + reblogs: Блогване пак + status_changed: Публикацията променена + title: Публикации на акаунта + trending: Изгряващи visibility: Видимост + with_media: С мултимедия + strikes: + 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: + 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: Не сте определили никакви правила на сървъра. + tags: + review: Преглед на състояние + updated_msg: Успешно осъвременени настройки на хаштага + title: Администрация trends: + allow: Позволяване + approved: Одобрено + disallow: Забранявам links: + allow: Позволяване на връзка + allow_provider: Позволяване на публикуващия description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове. + disallow: Забранявам връзката + disallow_provider: Забраняване на публикуващия shared_by_over_week: one: Споделено от един човек през последната седмица other: Споделено от %{count} хора през последната седмица usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера + only_allowed: Само позволените + pending_review: В очакване на преглед preview_card_providers: description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни. + title: Публикуващи + rejected: Отхвърлено statuses: + allow: Позволяване на публикацията + allow_account: Позволяване на автора description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или харесвани. Би помогнало на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показан публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации. + disallow: Забраняване на публикацията + disallow_account: Забрана на автора shared_by: one: Споделено или харесано един път other: Споделено или харесано %{friendly_count} пъти @@ -516,6 +760,7 @@ bg: not_usable: Не може да се използва usable: Може да се употребява warning_presets: + add_new: Добавяне на ново delete: Изтриване webhooks: add_new: Добавяне на крайна точка @@ -533,6 +778,20 @@ bg: sensitive: за означаване на акаунтите като деликатни silence: за слагане на органичение на акаунтите им suspend: за спиране на акаунтите им + new_report: + body: "%{reporter} докладва %{target}" + body_remote: Някого от %{domain} докладва %{target} + new_trends: + new_trending_links: + title: Налагащи се връзки + new_trending_statuses: + title: Налагащи се публикации + new_trending_tags: + title: Нашумели хаштагове + subject: Нови нашумели, готови за преглед в %{instance} + aliases: + add_new: Създайте псевдоним + empty: Нямате псевдоними. appearance: advanced_web_interface: Разширен уеб интерфейс advanced_web_interface_hint: 'Ако желаете да се възползвате от пълната ширина на своя екран, разширеният уеб интерфейс ще ви позволи да настроите най-различни колони, за да виждате едновременно множество информация: Начало, известия, федериран инфопоток, множество списъци и хаштагове.' @@ -554,12 +813,14 @@ bg: view_status: Преглед на публикацията applications: warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого! + your_token: Вашият код за достъп auth: change_password: Парола delete_account: Изтриване на акаунта delete_account_html: Ако желаете да изтриете акаунта си, можете да сторите това тук. Ще ви бъде поискано потвърждение. description: prefix_invited_by_user: "@%{name} ви покани да се присъедините към този сървър на Mastodon!" + prefix_sign_up: Регистрирайте се днес в Mastodon! didnt_get_confirmation: Не получих инструкции за потвърждение dont_have_your_security_key: Нямате ли си ключ за сигурност? forgot_password: Забравих си паролата @@ -584,11 +845,12 @@ bg: title: Настройка status: account_status: Състояние на акаунта + confirming: Чакане завършването на потвърждение на имейла. functional: Вашият акаунт е в изправност. use_security_key: Употреба на ключ за сигурност authorize_follow: already_following: Вече следвате този акаунт - error: Възникна грешка в откриването на потребителя + error: Възникна грешка, търсейки отдалечения акаунт follow: Последвай follow_request: 'Изпратихте следната заявка до:' following: 'Успешно! Сега сте последвали:' @@ -622,6 +884,7 @@ bg: x_seconds: "%{count} сек" deletes: challenge_not_passed: Въвели сте неправилна информация + confirm_password: Въведете текущата си парола, за да потвърдите самоличността си confirm_username: Въведете потребителското си име, за да потвърдите процедурата proceed: Изтриване на акаунта success_msg: Вашият акаунт е успешно изтрит @@ -636,32 +899,51 @@ bg: status: 'Публикация #%{id}' title: "%{action} от %{date}" title_actions: + mark_statuses_as_sensitive: Означаване на публикациите като деликатни none: Предупреждение + sensitive: Означаване на акаунта като деликатен + suspend: Преустановяване на акаунта + your_appeal_approved: Вашето обжалване е одобрено + your_appeal_rejected: Вашето обжалване е отхвърлено + domain_validator: + invalid_domain: не е валидно име на домейн errors: - '400': The request you submitted was invalid or malformed. + '400': Подадохте невалидна или деформирана заявка. '403': Нямате позволение да разгледате тази страница. '404': Търсената от вас страница не е тук. - '406': This page is not available in the requested format. - '410': The page you were looking for doesn't exist here anymore. + '406': Страницата не е налична в искания формат. + '410': Страницата, която търсехте, вече не съществува тук. '422': + content: Провали се проверката за сигурността. Блокирате ли бисквитките? title: Неуспешна проверка за сигурност '429': Премного заявки '500': + content: Съжаляваме, но нещо се обърка в нашия край. title: Страницата не е правилна - '503': The page could not be served due to a temporary server failure. + '503': Страницата не може да се обслужва заради временен провал на сървъра. + noscript_html: Включете JavaScript, за да използвате уеб приложението Mastodon. Като алтернатива опитайте някое от естествените приложения за Mastodon за платформата ви. + existing_username_validator: + not_found: не можа да се намери местен потребител с това потребителско име + not_found_multiple: не можа да намери %{usernames} exports: archive_takeout: date: Дата download: Изтегляне на архива ви hint_html: Можете да поръчате архив с вашите публикации и качена мултимедия. Експортираните данни ще бъдат във формат ActivityPub, който е четим от всеки съвместим софтуер. Можете да поръчате такъв архив на всеки 7 дни. + in_progress: Съставяне на архива ви... + request: Искане на архива ви size: Размер blocks: Вашите блокирания bookmarks: Отметки + csv: CSV + domain_blocks: Блокирания на домейна lists: Списъци mutes: Заглушавания storage: Съхранение на мултимедия featured_tags: add_new: Добавяне на нов + errors: + limit: Вече достигнахте максималния брой хаштагове hint_html: "Какво представляват актуалните хаштагове? Те се показват ясно на вашия публичен профил и позволяват на хората да преглеждат публичните ви публикации с тези хаштагове. Те са чудесен инструмент, с който може да се следи творческа работа или дългосрочни проекти." filters: contexts: @@ -676,14 +958,19 @@ bg: statuses: Отделни публикации title: Редактиране на филтър index: + contexts: Филтри в %{contexts} delete: Изтриване empty: Нямате филтри. + expires_on: Изтича на %{date} keywords: one: "%{count} ключова дума" other: "%{count} ключови думи" statuses: one: "%{count} публикация" other: "%{count} публикации" + statuses_long: + one: "%{count} скрита отделна публикация" + other: "%{count} скрити отделни публикации" title: Филтри new: save: Запазване на нов филтър @@ -699,10 +986,16 @@ bg: changes_saved_msg: Успешно запазване на промените! copy: Копиране delete: Изтриване + deselect: Размаркиране на всичко none: Нищо order_by: Подреждане по save_changes: Запази промените today: днес + validation_errors: + one: Нещо още не е напълно наред! Прегледайте грешката долу + other: Нещо още не е напълно наред! Прегледайте %{count} грешки долу + html_validator: + invalid_markup: 'съдържа невалидно HTML маркиране: %{error}' imports: modes: merge: Сливане @@ -756,6 +1049,8 @@ bg: images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения too_many: Не мога да прикача повече от 4 файла migrations: + acct: Преместено в + cancel: Отмяна на пренасочването cancelled_msg: Успешно отменено пренасочване. errors: move_to_self: не може да е текущия акаунт @@ -771,6 +1066,11 @@ bg: moderation: title: Mодериране notification_mailer: + admin: + report: + subject: "%{name} подаде доклад" + sign_up: + subject: "%{name} се регистрира" favourite: body: 'Публикацията ти беше харесана от %{name}:' subject: "%{name} хареса твоята публикация" @@ -793,6 +1093,10 @@ bg: reblog: body: 'Твоята публикация беше споделена от %{name}:' subject: "%{name} сподели публикацията ти" + status: + subject: "%{name} току-що публикува" + update: + subject: "%{name} промени публикация" notifications: email_events: Събития за известия по имейл email_events_hint: 'Изберете събития, за които искате да получавате известия:' @@ -841,6 +1145,7 @@ bg: reactions: errors: limit_reached: Ограничението на различни реакции е достигнат + unrecognized_emoji: не е разпознато емоджи relationships: activity: Дейност на акаунта dormant: Неактивен @@ -859,12 +1164,15 @@ bg: remove_selected_follows: Стоп на следването на избраните потребители status: Състояние на акаунта remote_follow: - missing_resource: Неуспешно търсене на нужния URL за пренасочване за твоя акаунт + missing_resource: Не можа да се намери искания URL за пренасочване за акаунта ви rss: content_warning: 'Предупреждение за съдържанието:' descriptions: account: Публични публикации от @%{acct} + tag: 'Публични публикации с таг #%{hashtag}' scheduled_statuses: + over_daily_limit: Завишили сте ограничението от %{limit} планирани публикации за днес + over_total_limit: Завишили сте ограничението от %{limit} планирани публикации too_soon: Заплануваната дата трябва да е в бъдеще sessions: activity: Последна активност @@ -905,6 +1213,7 @@ bg: windows_mobile: Windows Mobile windows_phone: Windows Phone revoke: Анулирaне + revoke_success: Успешно анулирана сесия title: Сесии view_authentication_history: Преглед на историята на удостоверяване на акаунта ви settings: @@ -984,6 +1293,7 @@ bg: interaction_exceptions_explanation: Забележете, че няма гаранция, че публикации ще бъдат изтрити, ако паднат под прага на брой харесвания/споделяния, след като са го надвишили. keep_direct: Запазване на директните съобщения keep_direct_hint: Директните ви съобщения не се изтриват + keep_media: Задържане на публикации с прикачена мултимедия keep_pinned: Запазване на закачените публикации keep_self_bookmark: Запазване на публикации, добавени в отметки keep_self_bookmark_hint: Не се изтриват ваши публикации, ако сте ги добавили към отметки @@ -1007,6 +1317,8 @@ bg: pinned: Закачена публикация reblogged: споделено sensitive_content: Деликатно съдържание + tags: + does_not_match_previous_name: не съвпада с предишното име themes: contrast: Mastodon (висок контраст) default: Mastodon (тъмно) @@ -1029,22 +1341,46 @@ bg: otp: Приложение за удостоверяване recovery_codes: Резервни кодове за възстановяване recovery_codes_regenerated: Успешно генериране на кодовете за възстановяване - recovery_instructions_html: Ако изгубите достъп до телефона си, можете да използвате кодовете за възстановяване по-долу, за да достъпите акаунта си. Запазете тези кодове на сигурно място. Например, можете да ги принтирате и да ги съхранявате заедно с други важни документи. + recovery_instructions_html: Ако изгубите достъп до телефона си, може да използвате долните кодовете за възстановяване, за да достъп до акаунта си. Запазете тези кодове на сигурно място. Например, можете да ги отпечатате и да ги складирате заедно с други важни документи. webauthn: Ключове за сигурност user_mailer: appeal_approved: action: Към акаунта ви + subject: Вашето обжалване от %{date} е било одобрено + title: Одобрено обжалване + appeal_rejected: + subject: Вашето обжалване от %{date} е било отхвърлено + title: Отхвърлено обжалване backup_ready: + explanation: Изискахте пълно резервно копиране на акаунта си в Mastodon. Вече е готово за изтегляне! subject: Вашият архив е готов за изтегляне + suspicious_sign_in: + change_password: промяна на паролата ви + details: 'Ето подробности при вход:' + explanation: Засякохме влизане в акаунта ви от нов IP адрес. + subject: Вашият акаунт е използвал достъп от нов IP адрес + title: Нов вход warning: + appeal: Подаване на обжалване + appeal_description: Ако вярвате, че това е грешка, то може да подадете обжалване до щаба на %{instance}. categories: spam: Спам + violation: Съдържанието нарушава следните ръководни линии + explanation: + delete_statuses: Някои от публикациите ви са нарушили една или повече от ръководните линии на общността и впоследствие бяха премахнати от модераторите на %{instance}. + mark_statuses_as_sensitive: Някои от публикациите ви са отбелязани като деликатни от модераторите на %{instance}. Това означава, че хората трябва да почукнат на мултимедията в публикацията преди да се показва нагледно. Може сами да отбелязвате мултимедия като деликатна, публикувайки в бъдеще. + sensitive: От сега нататък, всички качени мултимедийни файлове ще се означават като деликатни и скрити зад предупреждение за щракване. + silence: Още може да употребявате акаунта си, но само хора, които вече са ви последвали ще виждат публикациите ви на този сървър, а и може да бъдете изключени от различни функции за откриване. Въпреки това, други все още могат да ви последват ръчно. reason: 'Причина:' statuses: 'Цитирани публ.:' subject: delete_statuses: Ваши публикации в %{acct} са били премахнати disable: Вашият акаунт %{acct} е бил замразен + mark_statuses_as_sensitive: Вашите публикации в %{acct} са означени като деликатни none: Предупреждение за %{acct} + sensitive: Вашите публикации в %{acct} ще се означават като деликатни от сега нататък + silence: Вашият акаунт %{acct} е бил ограничен + suspend: Вашият акаунт %{acct} е бил преустановен title: delete_statuses: Публикацията е премахната disable: Акаунтът е замразен @@ -1055,14 +1391,18 @@ bg: suspend: Акаунтът е спрян welcome: edit_profile_action: Настройване на профила + edit_profile_step: Може да настроите профила си, качвайки снимката на профила, променяйки показваното си име и други неща. Може да се включите за преглед на нови последователи преди да бъдат позволени да ви последват. explanation: Ето няколко стъпки за начало final_action: Начало на публикуване final_step: 'Публикувайте! Дори без последователи, вашите публични публикации ще бъдат видени от други, например в местния инфопоток или под хаштагове. Не забравяйте да се представите с хаштаг #introductions.' + full_handle_hint: Ето какво бихте казали на приятелите си, за да могат да ви изпращат съобщения или да ви последват от друг сървър. subject: Добре дошли в Mastodon title: Добре дошли на борда, %{name}! users: follow_limit_reached: Не може да последвате повече от %{limit} души invalid_otp_token: Невалиден код + otp_lost_help_html: Ако загубите достъп до двете, то може да се свържете с %{email} + seamless_external_login: Влезли сте чрез външна услуга, така че настройките за парола и имейл не са налични. signed_in_as: 'Влезли като:' verification: explanation_html: 'Можете да удостоверите самоличността си като собственик на линковете в метаданните на своя профил. За целта сайтът, към който води линк от метаданните, трябва да съдържа линк обратно към вашия профил в Mastodon. Линкът от сайта трябва да съдържа атрибут rel="me". Текстовото съдържание на линка няма значение. Ето пример:' diff --git a/config/locales/cs.yml b/config/locales/cs.yml index b579f92839..21ba100ea4 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1012,6 +1012,7 @@ cs: email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu. title: Nastavení sign_in: + preamble_html: Přihlaste se se svýma %{domain} údajema. Pokud je váš účet hostován na jiném serveru, nemůžete se zde přihlásit. title: Přihlásit se k %{domain} sign_up: preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován. diff --git a/config/locales/de.yml b/config/locales/de.yml index dc31eb8ee9..8dd3e4978b 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -117,7 +117,7 @@ de: reject: Ablehnen rejected_msg: Antrag zur Registrierung von %{username} erfolgreich abgelehnt remote_suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. - remote_suspension_reversible_hint_html: Das Konto wurde auf dem externen Server gesperrt – und sämtliche Daten werden am %{date} entfernt. Bis dahin kann diese Instanz das Konto ohne negative Auswirkungen wiederherstellen. Wenn du schon jetzt alle Daten des Kontos unwiderruflich löschen möchtest, kannst du dies nachfolgend tun. + remote_suspension_reversible_hint_html: Das Konto wurde auf dem Server gesperrt und sämtliche Daten werden am %{date} entfernt. Bis dahin kann der Server dieses Konto ohne negative Auswirkungen wiederherstellen. Wenn du schon jetzt alle Daten des Kontos unwiderruflich löschen möchtest, kannst du dies nachfolgend tun. remove_avatar: Profilbild entfernen remove_header: Titelbild entfernen removed_avatar_msg: Profilbild von %{username} erfolgreich entfernt @@ -309,7 +309,7 @@ de: updated_msg: Ankündigung erfolgreich geändert! custom_emojis: assign_category: Kategorie zuweisen - by_domain: Domain der externen Instanz + by_domain: Domain copied_msg: Eine lokale Kopie des Emojis wurde erstellt copy: Kopieren copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden @@ -512,7 +512,7 @@ de: public_comment: Öffentlicher Kommentar purge: Löschen purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten aus dieser Domain löschen. Das kann eine Weile dauern. - title: Externe Instanzen + title: Föderation total_blocked_by_us: Von uns gesperrt total_followed_by_them: Gefolgt von denen total_followed_by_us: Gefolgt von uns @@ -657,7 +657,7 @@ de: manage_custom_emojis: Eigene Emojis verwalten manage_custom_emojis_description: Erlaubt es Benutzer*innen, eigene Emojis auf dem Server zu verwalten manage_federation: Föderation verwalten - manage_federation_description: Erlaubt es Benutzer*innen, Domains anderer Mastodon-Instanzen zu sperren oder zuzulassen – und die Zustellbarkeit zu steuern. + manage_federation_description: Erlaubt Nutzer*innen, Domains anderer Mastodon-Server zu sperren oder zuzulassen – und die Zustellbarkeit zu steuern manage_invites: Einladungen verwalten manage_invites_description: Erlaubt es Benutzer*innen, Einladungslinks zu durchsuchen und zu deaktivieren manage_reports: Meldungen verwalten @@ -667,7 +667,7 @@ de: manage_rules: Serverregeln verwalten manage_rules_description: Erlaubt es Benutzer*innen, Serverregeln zu ändern manage_settings: Einstellungen verwalten - manage_settings_description: Erlaubt es Benutzer*innen, Einstellungen dieser Instanz zu ändern + manage_settings_description: Erlaubt Nutzer*innen, Einstellungen dieses Servers zu ändern manage_taxonomies: Taxonomien verwalten manage_taxonomies_description: Ermöglicht Benutzer*innen, die Trends zu überprüfen und die Hashtag-Einstellungen zu aktualisieren manage_user_access: Benutzer*in-Zugriff verwalten @@ -718,7 +718,7 @@ de: domain_blocks: all: Allen disabled: Niemandem - users: Benutzer*innen deiner Instanz + users: Für angemeldete lokale Benutzer*innen registrations: preamble: Lege fest, wer auf Deinem Server ein Konto erstellen darf. title: Registrierungen @@ -976,7 +976,7 @@ de: email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern. title: Konfiguration sign_in: - preamble_html: Mit deinen Zugangsdaten für %{domain} anmelden. Solltest du dein Konto auf einer anderen Instanz registriert haben, ist eine Anmeldung hier nicht möglich. + preamble_html: Melde dich mit deinen Zugangsdaten für %{domain} an. Solltest du dein Konto auf einem anderen Server registriert haben, ist eine Anmeldung hier nicht möglich. title: Bei %{domain} anmelden sign_up: preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird. @@ -1609,7 +1609,7 @@ de: explanation: delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Gemeinschaftsrichtlinien erkannt und von den Moderator*innen von %{instance} entfernt. disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und andere Daten bleiben unversehrt. Du kannst eine Sicherung deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen. - mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen der Instanz %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. + mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen von %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. sensitive: Von nun an werden alle deine hochgeladenen Mediendateien mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt. silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen. suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index 4142eaec8a..b49a9f05f5 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -6,7 +6,7 @@ et: send_instructions: Te saate paari minuti pärast e-kirja juhistega, kuidas oma e-posti aadressit kinnitada. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. send_paranoid_instructions: Kui teie e-postiaadress eksisteerib meie andmebaasis, saate paari minuti pärast e-kirja juhistega, kuidas oma e-posti aadressit kinnitada. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. failure: - already_authenticated: Te olete juba sisse loginud. + already_authenticated: Oled juba sisse loginud. inactive: Teie konto pole veel aktiveeritud. invalid: Valed %{authentication_keys} või salasõna. last_attempt: Teil on veel üks katse kuni teie konto on lukustatud. @@ -18,21 +18,21 @@ et: unconfirmed: Te peate kinnitama oma e-postiaadressi enne jätkamist. mailer: confirmation_instructions: - action: Kinnita e-postiaadress + action: Kinnitage e-postiaadress action_with_app: Kinnita ja naase %{app} - explanation: Te olete loonud %{host} konto selle e-postiaadressiga. Te olete ühe kliki kaugusel selle aktiveerimisest. Kui see polnud teie, palun eirake seda kirja. - explanation_when_pending: Te esitasite taotluse liituda %{host} kasutajaks selle e-postiaadressiga. Palun kinnitage oma e-posti aadress ja siis vaatame me teie taotluse üle. Võite logida sisse, et oma andmeid muuta või konto kustutada, aga te ei saa ligi enamustele tegevustele enne, kui teie konto on kinnitatud moderaatorite poolt. Kui teie taotlus tagasi lükatakse, kustutatakse teie andmed, seega pole mingit järgevat tegevust teie poolt vaja. Kui see polnud teie, siis palun eirake seda kirja. Kui konto on kinnitatud, siis saate selle kohta eraldi e-kirja. + 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. subject: 'Mastodon: %{instance} kinnitamisjuhised' title: Kinnita e-postiaadress email_changed: explanation: 'Teie konto e-postiaadress muudetakse:' - extra: Kui te ei muutnud oma e-posti, on tõenäoline, et kellelgi on ligipääs teie kontole. Palun muutke oma salasõna koheselt või võtke ühendust oma serveri administraatoriga, kui olete oma kontost välja lukustatud. + 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 password_change: explanation: Konto salasõna on vahetatud. - extra: Kui Te ei muutnud oma salasõna, on tõenäoline, et keegi on teie kontole ligi pääsenud. Palun muutke viivitamata oma salasõna või võtke ühendust serveri haldajaga, kui oma kontole ligi ei pääse. + extra: Kui sa ei muutnud oma salasõna, on tõenäoline, et keegi on su kontole ligi pääsenud. Palun muuda viivitamata oma salasõna. Kui sa oma kontole ligi ei pääse, võta ühendust serveri haldajaga. subject: 'Mastodon: salasõna muudetud' title: Salasõna muudetud reconfirmation_instructions: @@ -81,10 +81,10 @@ et: failure: Ei saanud teid tuvastada %{kind} kaudu, kuna "%{reason}". success: Tuvastamine %{kind} konto järgi õnnestus. passwords: - no_token: Te ei saa sellele leheküljele ligi ilma tulemata salasõna lähtestamis e-kirjast. Kui te tulete salasõna lähtestamise e-kirjast, palun olge kindel, et kasutasite tervet teile antud URLi. + 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. - updated: Teie salasõna muutmine õnnestus. Te olete nüüd sisse loginud. + updated: Salasõna muutmine õnnestus. Oled nüüd sisse logitud. updated_not_active: Teie salasõna muutmine õnnestus. registrations: destroyed: Nägemist! Teie konto sulgemine õnnestus. Me loodame teid varsti taas näha. @@ -93,7 +93,7 @@ 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 me peame teie e-postiaadressit kinnitama. Palun kontrollige oma e-posti ning järgige linki, et kinnitada oma e-postiaadress. 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. sessions: already_signed_out: Väljumine õnnestus. diff --git a/config/locales/devise.sv.yml b/config/locales/devise.sv.yml index c1696d3b43..e02983ad5f 100644 --- a/config/locales/devise.sv.yml +++ b/config/locales/devise.sv.yml @@ -84,16 +84,16 @@ sv: no_token: Du kan inte komma åt den här sidan utan att komma från ett e-postmeddelande för lösenordsåterställning. Om du kommer från ett lösenordsåterställt e-postmeddelande, var vänlig och se till att du använde hela webbadressen. send_instructions: Om din e-postadress finns i vår databas, får du en länk för återställning av lösenord på din e-postadress om några minuter. Kontrollera din spammapp om du inte fick det här e-postmeddelandet. send_paranoid_instructions: Om din e-postadress finns i vår databas, får du en länk för återställning av lösenord på din e-postadress om några minuter. Kontrollera din spammapp om du inte fick det här e-postmeddelandet. - updated: Ditt lösenord har ändrats framgångsrikt. Du är nu inloggad. + updated: Ditt lösenord har ändrats. Du är nu inloggad. updated_not_active: Ditt lösenord har ändrats. Du är nu inloggad. registrations: - destroyed: Adjö! Ditt konto har blivit nerstängt. Vi hoppas att vi ses snart igen. + destroyed: Adjö! Ditt konto har blivit nedstängt. Vi hoppas att vi snart ses igen. signed_up: Välkommen! Du har nu registrerat dig. signed_up_but_inactive: Du har nu registrerat dig. Vi kunde dock inte logga in dig eftersom ditt konto ännu inte är aktiverat. signed_up_but_locked: Du har nu registrerat dig. Vi kunde dock inte logga in eftersom ditt konto är låst. signed_up_but_pending: Ett meddelande med en bekräftelselänk har skickats till din e-postadress. När du klickar på länken kommer vi att granska din ansökan. Du kommer att meddelas om den godkänns. signed_up_but_unconfirmed: Ett meddelande med en bekräftelselänk har skickats till din e-postadress. Vänligen följ länken för att aktivera ditt konto. Kontrollera din skräppostmapp om du inte fick det här e-postmeddelandet. - update_needs_confirmation: Du har uppdaterat ditt konto med framgång, men vi måste verifiera din nya e-postadress. Vänligen kolla din email och följ bekräfta länken för att bekräfta din nya e-postadress. Kontrollera din spammapp om du inte fick det här e-postmeddelandet. + update_needs_confirmation: Du har uppdaterat ditt konto, men vi måste verifiera din nya e-postadress. Vänligen kolla din e-post och följ bekräfta-länken för att bekräfta din nya e-postadress. Kontrollera din skräppost om du inte fick e-postmeddelandet. updated: Ditt konto har uppdaterats utan problem. sessions: already_signed_out: Utloggad. diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index 3f031904a0..9211818421 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -149,9 +149,17 @@ be: 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:write: змяняць усе даныя на серверы admin:write:accounts: мадэраваць уліковыя запісы + 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.bg.yml b/config/locales/doorkeeper.bg.yml index 4f8442b739..ba19ea313f 100644 --- a/config/locales/doorkeeper.bg.yml +++ b/config/locales/doorkeeper.bg.yml @@ -149,9 +149,19 @@ bg: 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.cs.yml b/config/locales/doorkeeper.cs.yml index 09cad8487c..c9f8777fa3 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -150,9 +150,18 @@ cs: admin:read: číst všechna data na serveru admin:read:accounts: číst citlivé informace všech účtů admin:read:canonical_email_blocks: číst citlivé informace všech kanonických e-mailových bloků + admin:read:domain_allows: číst citlivé informace ze všech povolených domén + admin:read:domain_blocks: číst citlivé informace ze všech bloků domén + admin:read:email_domain_blocks: číst citlivé informace ze všech bloků emailových domén + admin:read:ip_blocks: číst citlivé informace ze všech bloků IP admin:read:reports: číst citlivé informace všech nahlášení a nahlášených účtů admin:write: měnit všechna data na serveru admin:write:accounts: provádět moderátorské akce s účty + admin:write:canonical_email_blocks: provést akce moderace na kanonických emailových blocích + admin:write:domain_allows: provést akce moderace na povolených doménách + admin:write:domain_blocks: provést akce moderace na doménových blocích + admin:write:email_domain_blocks: provést akce moderace na blocích emailových domén + admin:write:ip_blocks: provést akce moderace na blocích IP admin:write:reports: provádět moderátorské akce s hlášeními crypto: používat end-to-end šifrování follow: upravovat vztahy mezi profily diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 7aac00b01a..c27e419799 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -72,7 +72,7 @@ de: revoke: Bist du sicher? index: authorized_at: Autorisiert am %{date} - description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) dieser Mastodon-Instanz auf dein Konto zugreifen können. Sollten hier Apps aufgeführt sein, die du nicht erkennst oder die sich verdächtig verhalten, solltest du den Zugriff schnellstmöglich widerrufen. + description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht zuordnen kannst oder wenn sich eine Anwendung verdächtig verhält, kannst du den Zugriff widerrufen. last_used_at: Zuletzt verwendet am %{date} never_used: Nie verwendet scopes: Berechtigungen @@ -148,13 +148,20 @@ de: title: OAuth-Autorisierung nötig scopes: admin:read: alle Daten auf dem Server lesen - admin:read:accounts: sensible Daten aller Konten lesen - admin:read:canonical_email_blocks: vertrauliche Informationen aller kanonischen E-Mail-Blöcke lesen - admin:read:domain_allows: vertrauliche Informationen aller Domänen lesen - admin:read:domain_blocks: sensible Informationen aller Domänenblöcke lesen - admin:read:reports: sensible Daten aller Meldungen und gemeldeten Konten 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: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:ip_blocks: Moderationsaktionen auf IP-Sperren ausführen admin:write:reports: Moderationsaktionen auf Meldungen ausführen crypto: Ende-zu-Ende-Verschlüsselung verwenden follow: Kontenbeziehungen verändern diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index a6b6f87c65..789e7ab1de 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -150,6 +150,7 @@ es-AR: 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 canónicos de correo electró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 direcciones IP @@ -157,6 +158,7 @@ es-AR: admin:write: modificar todos los datos en el servidor admin:write:accounts: ejecutar acciones de moderación en cuentas admin:write:canonical_email_blocks: ejecutar acciones de moderación en bloques canónicos de correo electrónico + admin:write:domain_allows: realizar acciones de moderación en el dominio permitido admin:write:domain_blocks: ejecutar acciones de moderación en bloques de dominio admin:write:email_domain_blocks: ejecutar acciones de moderación en bloques de dominio de correo electrónico admin:write:ip_blocks: ejecutar acciones de moderación en bloques de direcciones IP diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 9b2eee652b..6e7ae458c9 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -149,9 +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: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: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: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 5660832a13..74d16942c1 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -25,7 +25,7 @@ et: edit: Muuda submit: Saada confirmations: - destroy: Olete kindel? + destroy: Oled kindel? edit: title: Avalduse muutmine form: @@ -69,7 +69,7 @@ et: buttons: revoke: Tühista confirmations: - revoke: Olete kindel? + revoke: Oled kindel? index: authorized_at: Autoriseeritud %{date} description_html: Need on rakendused, millel on API kaudu juurdepääs kontole. Kui on rakendusi, mis on tundmatud või rakendus käitub halvasti, saab selle juurdepääsu tühistada. @@ -149,9 +149,19 @@ et: scopes: admin:read: lugeda kõiki andmeid serveril admin:read:accounts: lugeda privaatset informatsiooni kõikidel kontodel + admin:read:canonical_email_blocks: loe kõigi kanooniliste e-posti blokeeringute tundlikku infot + admin:read:domain_allows: loe kõigi domeenide lubade tundliku infot + 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:write: muuta kõiki andmeid serveril admin:write:accounts: teostada moderaatori tegevusi kontodel + admin:write:canonical_email_blocks: modereeri kanoonilisi e-posti blokeeringuid + admin:write:domain_allows: modereeri domeeni lubasid + admin:write:domain_blocks: modereeri domeeni blokeeringuid + admin:write:email_domain_blocks: modereeri e-postidomeenide blokeeringuid + admin:write:ip_blocks: modereeri IP-blokeeringuid admin:write:reports: teostada moderaatori tegevusi teavitustel crypto: kasuta otspunktkrüpeerimist follow: muuta kontode suhteid @@ -168,13 +178,13 @@ et: read:notifications: näha Teie teateid read:reports: näha Teie teavitusi read:search: otsida Teie nimel - read:statuses: näha kõiki staatuseid + read:statuses: näha kõiki postitusi write: muuta kogu konto andmeid write:accounts: muuta profiili write:blocks: blokeerida kontosid ja domeene - write:bookmarks: lisada staatusele järjehoidjaid + write:bookmarks: lisada postitusele järjehoidja write:conversations: vaigista ja kustuta vestlused - write:favourites: lisada staatuseid lemmikuks + write:favourites: lisada postitusi lemmikuks write:filters: luua filtreid write:follows: jälgida inimesi write:lists: luua nimekirju @@ -182,4 +192,4 @@ et: write:mutes: vaigista inimesi ja vestluseid write:notifications: puhasta Teie teateid write:reports: teavitada teistest inimestest - write:statuses: avaldada staatuseid + write:statuses: avaldada postitusi diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index bc4bd20bb7..079842de3a 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -3,8 +3,8 @@ fr: activerecord: attributes: doorkeeper/application: - name: Nom - redirect_uri: L’URL de redirection + name: Nom de l'application + redirect_uri: URI de redirection scopes: Étendues website: Site web de l’application errors: @@ -149,9 +149,19 @@ fr: 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.gl.yml b/config/locales/doorkeeper.gl.yml index aaf4c0823c..b71df1c771 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -149,9 +149,19 @@ gl: scopes: admin:read: ler todos os datos no servidor admin:read:accounts: ler información sensible de todas as contas + admin:read:canonical_email_blocks: ler a información sensible de tódolos bloqueos de email canónicos + admin:read:domain_allows: ler a información sensible de tódolos dominios permitidos + admin:read:domain_blocks: ler a información sensible de tódolos bloqueos de dominio + admin:read:email_domain_blocks: ler a información sensible de tódolos dominios de email + admin:read:ip_blocks: ler a información sensible de tódolos bloqueos de IP admin:read:reports: ler información sensible de todos os informes e contas denunciadas admin:write: modificar todos os datos no servidor admin:write:accounts: executar accións de moderación nas contas + admin:write:canonical_email_blocks: realizar accións de moderación en bloqueos de email canónicos + admin:write:domain_allows: realizar accións de moderación en dominios permitidos + admin:write:domain_blocks: realizar accións de moderación en bloqueos de dominio + admin:write:email_domain_blocks: realizar accións de moderación en bloqueos de dominio de email + admin:write:ip_blocks: realizar accións de moderación en bloqueos de IPs admin:write:reports: executar accións de moderación nas denuncias crypto: usar cifrado extremo-a-extremo follow: modificar as relacións da conta diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml index e607901f77..243b45c802 100644 --- a/config/locales/doorkeeper.is.yml +++ b/config/locales/doorkeeper.is.yml @@ -149,9 +149,19 @@ is: scopes: admin:read: lesa öll gögn á netþjóninum admin:read:accounts: lesa viðkvæmar upplýsingar á öllum notendaaðgöngum + admin:read:canonical_email_blocks: lesa viðkvæmar upplýsingar um allar stafréttar útilokanir tölvupósts + admin:read:domain_allows: lesa viðkvæmar upplýsingar um öll leyfð lén + admin:read:domain_blocks: lesa viðkvæmar upplýsingar um öll útilokuð lén + admin:read:email_domain_blocks: lesa viðkvæmar upplýsingar um öll útilokuð tölvupóstlén + admin:read:ip_blocks: lesa viðkvæmar upplýsingar um allar útilokanir IP-vistfanga admin:read:reports: lesa viðkvæmar upplýsingar í öllum skýrslum og kærðum notendaaðgöngum admin:write: breyta öllum gögnum á netþjóninum admin:write:accounts: framkvæma umsjónaraðgerðir á notendaaðganga + admin:write:canonical_email_blocks: framkvæma umsjónaraðgerðir á stafréttar útilokanir tölvupósts + admin:write:domain_allows: framkvæma umsjónaraðgerðir á leyfð lén + admin:write:domain_blocks: framkvæma umsjónaraðgerðir á útilokuð lén + admin:write:email_domain_blocks: framkvæma umsjónaraðgerðir á útilokuð tölvupóstlén + admin:write:ip_blocks: framkvæma umsjónaraðgerðir á útilokuð IP-vistföng admin:write:reports: framkvæma umsjónaraðgerðir á kærur crypto: nota enda-í-enda dulritun follow: breyta venslum aðgangs diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 20e41af95d..214e2c9d83 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -3,10 +3,10 @@ ko: activerecord: attributes: doorkeeper/application: - name: 어플리케이션 이름 + name: 애플리케이션 이름 redirect_uri: 리다이렉트 URI scopes: 범위 - website: 어플리케이션 웹사이트 + website: 애플리케이션 웹사이트 errors: models: doorkeeper/application: @@ -27,18 +27,18 @@ ko: confirmations: destroy: 정말로 실행하시겠습니까? edit: - title: 어플리케이션 수정 + title: 애플리케이션 수정 form: error: 이런! 오류를 확인하세요 help: native_redirect_uri: "%{native_redirect_uri} 을/를 이용해 로컬 테스트를 할 수 있습니다" - redirect_uri: 한 줄에 하나의 URI 를 작성하세요 + redirect_uri: 한 줄에 하나의 URI를 작성하세요 scopes: 스페이스로 범위를 구분하세요. 빈 칸으로 놔두면 기본 범위를 사용합니다. index: - application: 어플리케이션 + application: 애플리케이션 callback_url: 콜백 URL delete: 삭제 - empty: 어플리케이션이 없습니다. + empty: 애플리케이션이 없습니다. name: 이름 new: 새 애플리케이션 scopes: 범위 @@ -58,7 +58,7 @@ ko: authorize: 승인 deny: 거부 error: - title: 에러가 발생하였습니다 + title: 오류가 발생하였습니다 new: prompt_html: "%{client_name}이 당신의 계정에 대한 접근 권한을 요청합니다. 이것은 제3자의 응용프로그램입니다. 이것을 신뢰하지 않는다면, 권한을 승인하지 말아야 합니다." review_permissions: 권한 검토 @@ -157,6 +157,11 @@ ko: 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.nl.yml b/config/locales/doorkeeper.nl.yml index 38ae2f4f41..67ba5aa9d0 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -149,9 +149,19 @@ nl: scopes: admin:read: alle gegevens op de server lezen admin:read:accounts: gevoelige informatie van alle accounts lezen + admin:read:canonical_email_blocks: lees gevoelige informatie van alle canonieke e-mailblokken + admin:read:domain_allows: lees gevoelige informatie van alle domeinen + admin:read:domain_blocks: lees gevoelige informatie van alle domeinblokken + admin:read:email_domain_blocks: lees gevoelige informatie van alle e-maildomeinblokken + admin:read:ip_blocks: lees gevoelige informatie van alle IP-blokken admin:read:reports: gevoelige informatie van alle rapportages en gerapporteerde accounts lezen admin:write: wijzig alle gegevens op de server admin:write:accounts: moderatiemaatregelen tegen accounts nemen + admin:write:canonical_email_blocks: voer moderatieacties uit op canonieke e-mailblokken + admin:write:domain_allows: voer moderatieacties uit op domeintoestemmingen + admin:write:domain_blocks: moderatiemaatregelen nemen op domeinblokkades + admin:write:email_domain_blocks: moderatiemaatregelen nemen op e-maildomeinen + admin:write:ip_blocks: moderatiemaatregelen nemen tegen IP-adresblokken admin:write:reports: moderatiemaatregelen nemen in rapportages crypto: end-to-end-encryptie gebruiken follow: relaties tussen accounts bewerken diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 4cc4ebace2..10e7fbc1d8 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -149,9 +149,19 @@ nn: scopes: admin:read: lese alle data på tjeneren admin:read:accounts: lese sensitiv informasjon om alle kontoar + admin:read:canonical_email_blocks: les ømtolig informasjon om alle kanoniske e-postblokkeringar + admin:read:domain_allows: les ømtolig informasjon om alle domeneløyve + admin:read:domain_blocks: les ømtolig informasjon om alle domeneblokkeringar + admin:read:email_domain_blocks: les ømtolig informasjon om alle e-postdomeneblokkeringar + admin:read:ip_blocks: les ømtolig informasjon om alle IP-blokkeringar admin:read:reports: lese sensitiv informasjon om alle rapportar og rapporterte kontoar admin:write: endre alle data på tenaren admin:write:accounts: utføre moderatorhandlingar på kontoar + admin:write:canonical_email_blocks: utføre modereringshandlingar på kanoniske e-postblokkeringar + admin:write:domain_allows: utføre modereringshandlingar på domeneløyve + admin:write:domain_blocks: utføre modereringshandlingar på domeneblokkeringar + admin:write:email_domain_blocks: utføre modereringshandlingar på e-postdomeneblokkeringar + admin:write:ip_blocks: utføre modereringshandlingar på IP-blokkeringar admin:write:reports: utføre moderatorhandlingar på rapportar crypto: bruk ende-til-ende-kryptering follow: fylg, blokkér, avblokkér, avfylg brukarar diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml index 4336362ffb..2648118d83 100644 --- a/config/locales/doorkeeper.pt-PT.yml +++ b/config/locales/doorkeeper.pt-PT.yml @@ -149,9 +149,19 @@ pt-PT: scopes: admin:read: ler todos os dados no servidor admin:read:accounts: ler informações sensíveis de todas as contas + admin:read:canonical_email_blocks: ler informações sensíveis de todos os bloqueios de endereços de e-mail canônicos + admin:read:domain_allows: ler informações sensíveis de todos os domínios permitios + admin:read:domain_blocks: ler informações sensíveis de todos os bloqueios de domínio + admin:read:email_domain_blocks: ler informações sensíveis de todos os bloqueios de domínio de e-mail + admin:read:ip_blocks: ler informações sensíveis de todos os bloqueios de IPs admin:read:reports: ler informações sensíveis de todas as denúnicas e contas denunciadas admin:write: modificar todos os dados no servidor admin:write:accounts: executar ações de moderação em contas + admin:write:canonical_email_blocks: executar ações de moderação no bloqueio de endereços de e-mail canônicos + admin:write:domain_allows: executar ações de moderação na permissão de domínios + admin:write:domain_blocks: executar ações de moderação no bloqueio de domínios + admin:write:email_domain_blocks: executar ações de moderação no bloqueio de domínios de e-mail + admin:write:ip_blocks: executar ações de moderação no bloqueio de IPs admin:write:reports: executar ações de moderação em denúncias crypto: usa encriptação ponta-a-ponta follow: siga, bloqueie, desbloqueie, e deixa de seguir contas diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index 86883bf149..97bf7fcc1c 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -149,6 +149,8 @@ ru: scopes: admin:read: читать все данные на сервере admin:read:accounts: читать конфиденциальную информацию всех учётных записей + admin:read:canonical_email_blocks: чтение конфиденциальной информации всех канонических блоков электронной почты + admin:read:domain_allows: чтение конфиденциальной информации для всего домена позволяет admin:read:reports: читать конфиденциальную информацию о всех жалобах и учётных записях с жалобами admin:write: модифицировать все данные на сервере admin:write:accounts: производить модерацию учётных записей diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml index 7b346efc90..c6c1731874 100644 --- a/config/locales/doorkeeper.sq.yml +++ b/config/locales/doorkeeper.sq.yml @@ -149,9 +149,19 @@ sq: scopes: admin:read: të lexojë krejt të dhënat te shërbyesi admin:read:accounts: të lexojë krejt të dhënat rezervat të krejt llogarive + admin:read:canonical_email_blocks: të lexojë hollësi rezervat të krejt bllokimeve të zakonshëm të email-eve + admin:read:domain_allows: të lexojë hollësi rezervat të krejt lejimeve të përkatësive + admin:read:domain_blocks: të lexojë hollësi rezervat të krejt bllokimeve të përkatësive + admin:read:email_domain_blocks: të lexojë hollësi rezervat të krejt bllokimeve të përkatësive të email-eve + admin:read:ip_blocks: të lexojë hollësi rezervat të krejt bllokimeve të IP-eve admin:read:reports: të lexojë të dhëna rezervat të krejt raportimeve dhe të llogarive të raportuara admin:write: të përpunojë krejt të dhënat në shërbyes admin:write:accounts: të kryejë veprime moderimi në llogaritë + admin:write:canonical_email_blocks: të kryejë veprime moderimi në bllokime të zakonshëm të email-eve + admin:write:domain_allows: të kryejë veprime moderimi mbi lejime përkatësish + admin:write:domain_blocks: të kryejë veprime moderimi mbi bllokime përkatësish + admin:write:email_domain_blocks: të kryejë veprime moderimi mbi lejime përkatësish email + admin:write:ip_blocks: të kryejë veprime moderimi mbi bllokime IP-sh admin:write:reports: të kryejë veprime moderimi në raportime crypto: përdor fshehtëzim skaj-më-skaj follow: të ndryshojë marrëdhënie llogarish diff --git a/config/locales/doorkeeper.sr-Latn.yml b/config/locales/doorkeeper.sr-Latn.yml index 568e53d590..66ec102b1c 100644 --- a/config/locales/doorkeeper.sr-Latn.yml +++ b/config/locales/doorkeeper.sr-Latn.yml @@ -149,9 +149,14 @@ sr-Latn: scopes: admin:read: čitanje svih podataka na serveru admin:read:accounts: čitanje osetljivih podataka za sve naloge + admin:read:domain_allows: pročitaj osetljive informacije za sve dozvole domena + admin:read:domain_blocks: pročitaj osetljive informacije za sve blokove domena + admin:read:ip_blocks: pročitaj osetljive informacije za sve IP blokove admin:read:reports: čitanje osetljivih podataka svih izveštaja i prijavljenih naloga admin:write: menjanje svih podataka na serveru admin:write:accounts: vršenje moderatorskih aktivnosti nad nalozima + admin:write:domain_blocks: izvrši moderatorske aktivnosti na blokovima domena + admin:write:ip_blocks: izvrši moderatorske aktivnosti na IP blokovima admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima crypto: korišćenje end-to-end enkripcije follow: prati, blokira, odblokira i otprati naloge diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml index 8053320513..20e39e1c04 100644 --- a/config/locales/doorkeeper.sr.yml +++ b/config/locales/doorkeeper.sr.yml @@ -149,9 +149,14 @@ sr: scopes: admin:read: читање свих података на серверу admin:read:accounts: читање осетљивих података за све налоге + admin:read:domain_allows: прочитај осетљиве информације за све дозволе домена + admin:read:domain_blocks: прочитај осетљиве информације за све блокове домена + admin:read:ip_blocks: прочитај осетљиве информације за све IP блокове admin:read:reports: читање осетљивих података свих извештаја и пријављених налога admin:write: мењање свих података на серверу admin:write:accounts: вршење модераторских активности над налозима + admin:write:domain_blocks: изврши модераторске активности на блоковима домена + admin:write:ip_blocks: изврши модераторске активности на IP блоковима admin:write:reports: вршење модераторских активности над извештајима crypto: коришћење end-to-end енкрипције follow: прати, блокира, одблокира и отпрати налоге diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index a0913dc92c..e4ca5b58f3 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -149,9 +149,19 @@ th: 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.tr.yml b/config/locales/doorkeeper.tr.yml index 51d0dff085..704a5af071 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -149,9 +149,19 @@ tr: scopes: admin:read: sunucudaki tüm verileri okuma admin:read:accounts: tüm hesapların hassas bilgilerini okuma + admin:read:canonical_email_blocks: tüm kurallı e-posta engellerinin hassas bilgilerini okuma + admin:read:domain_allows: tüm alan adı izinlerinin hassas bilgilerini okuma + admin:read:domain_blocks: tüm alan adı engellerinin hassas bilgilerini okuma + admin:read:email_domain_blocks: tüm e-posta alan adı engellerinin hassas bilgilerini okuma + admin:read:ip_blocks: tüm IP engellerinin hassas bilgilerini okuma admin:read:reports: tüm raporların ve raporlanan hesapların hassas bilgilerini okuma admin:write: sunucudaki tüm verileri değiştirin admin:write:accounts: hesaplarda denetleme eylemleri gerçekleştirin + admin:write:canonical_email_blocks: kurallı e-posta engellemeleri için denetleme eylemleri gerçekleştirin + admin:write:domain_allows: alan adı izinleri için denetleme eylemleri gerçekleştirin + admin:write:domain_blocks: alan adı engellemeleri için denetleme eylemleri gerçekleştirin + admin:write:email_domain_blocks: e-posta alan adı engellemeleri için denetleme eylemleri gerçekleştirin + admin:write:ip_blocks: IP engellemeleri için denetleme eylemleri gerçekleştirin admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin crypto: uçtan uca şifreleme kullan follow: hesap ilişkilerini değiştirin diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index 04ec0dc47e..8cdecabbcd 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: Переглянути дозволи diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml index 2ce18fe440..e74f46ad59 100644 --- a/config/locales/doorkeeper.zh-CN.yml +++ b/config/locales/doorkeeper.zh-CN.yml @@ -149,9 +149,19 @@ zh-CN: 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.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml index 0bd60c08ee..632d51183c 100644 --- a/config/locales/doorkeeper.zh-HK.yml +++ b/config/locales/doorkeeper.zh-HK.yml @@ -149,9 +149,19 @@ zh-HK: 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/es.yml b/config/locales/es.yml index 86fa5dcb73..ad836bd4ef 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -116,6 +116,8 @@ es: 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 irreversiblemente eliminados. + 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} @@ -973,6 +975,9 @@ es: 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: Inicia sesión con tus credenciales de %{domain}. Si tu cuenta está alojada en un servidor diferente, no podrás iniciar sesión aquí. + title: Iniciar sesión 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 4f1c34be6e..89ee5c092a 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -34,7 +34,7 @@ et: add_email_domain_block: Keela e-posti domeen approve: Võta vastu approved_msg: Kasutaja %{username} liitumisavaldus rahuldatud - are_you_sure: Olete kindel? + are_you_sure: Oled kindel? avatar: Profiilipilt by_domain: Domeen change_email: @@ -65,7 +65,7 @@ et: domain: Domeen edit: Muuda email: E-post - email_status: E-posti staatus + email_status: E-posti olek enable: Luba enable_sign_in_token_auth: Luba e-posti võtmetega autentimine enabled: Lubatud @@ -144,7 +144,7 @@ et: targeted_reports: Teavitusi teiste poolt silence: Vaigista silenced: Vaigistatud - statuses: Staatuseid + statuses: Postitused strikes: Eelnevad juhtumid subscribe: Telli suspend: Kustuta @@ -193,7 +193,7 @@ et: destroy_email_domain_block: Eemaldas e-posti domeeni blokeeringu destroy_instance: Domeeni kustutamine destroy_ip_block: IP-reegli kustutamine - destroy_status: Eemaldas staatuse + destroy_status: Kustuta postitus destroy_unavailable_domain: Kättesaamatu domeeni kustutamine destroy_user_role: Rolli kustutamine disable_2fa_user: Keela 2FA @@ -224,7 +224,7 @@ et: update_custom_emoji: Uuendas kohandatud emotikoni update_domain_block: Uuenda domeenipiirangut update_ip_block: IP-reegli uuendamine - update_status: Uuendas staatust + update_status: Uuenda postitust update_user_role: Uuenda rolli actions: approve_appeal_html: "%{name} kiitis heaks modereerimise otsuse vaidlustuse %{target} poolt" @@ -447,7 +447,7 @@ et: 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." language: Keel - status: Staatus + status: Olek suppress: Eemalda jälgimissoovitus suppressed: Eemaldatud title: Jälgimissoovitused @@ -558,7 +558,7 @@ et: 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 - status: Staatus + status: Olek title: Releed report_notes: created_msg: Teade edukalt koostatud! @@ -579,7 +579,7 @@ et: suspend_description_html: Konto ja kogu sisu muutub lõpliku kustutamiseni kättesaamatuks. Kontoga suhtlemine pole võimalik. Tagasivõetav 30 päeva jooksul. actions_description_html: Otsustus, mida raporti lahendamiseks ette võtta. Karistava tegevuse korral saadetakse e-postiga teade, välja arvatud kategooria rämpspost puhul. add_to_report: Lisa raportile juurde - are_you_sure: Olete kindel? + are_you_sure: Oled kindel? assign_to_self: Määra mulle assigned: Määratud moderaator by_target_domain: Teavitatud konto domeen @@ -589,7 +589,7 @@ et: none: Pole comment_description_html: 'Täiendava infona kirjutas %{name}:' created_at: Teavitatud - delete_and_resolve: Kustutatud postitused + delete_and_resolve: Kustuta postitused forwarded: Edastatud forwarded_to: Edastatud domeenile %{domain} mark_as_resolved: Märgi lahendatuks @@ -613,7 +613,7 @@ et: resolved: Lahendatud resolved_msg: Teavituse lahendamine õnnestus! skip_to_actions: Otsuste juurde - status: Staatus + status: Olek statuses: Raporteeritud sisu statuses_description_html: Sobimatu sisu kaasatakse suhtlusse raporteeritud kontoga target_origin: Raporteeritud konto päritolu @@ -710,10 +710,10 @@ et: title: Otsimootorite indeksitesse kasutajaid vaikimisi ei lisata discovery: follow_recommendations: Jälgi soovitusi - preamble: Huvitava sisu esiletoomine on oluline uute kasutajate kaasamisel, kes ei pruugi Mastodonist kedagi tunda. Kontrollige, kuidas erinevad avastamisfunktsioonid teie serveris töötavad. + preamble: Huvitava sisu esiletoomine on oluline uute kasutajate kaasamisel, kes ei pruugi Mastodonist kedagi tunda. Kontrolli, kuidas erinevad avastamisfunktsioonid serveris töötavad. profile_directory: Kasutajate kataloog public_timelines: Avalikud ajajooned - title: Avastus + title: Avastamine trends: Trendid domain_blocks: all: Kõigile @@ -747,12 +747,12 @@ et: media: title: Meedia metadata: Metaandmed - no_status_selected: Mitte ühtegi staatust muudeti sest midagi polnud valitud + no_status_selected: Ühtegi postitust ei muudetud, sest ühtegi polnud valitud open: Ava postitus original_status: Algne postitus reblogs: Jagamised status_changed: Muudetud postitus - title: Konto staatused + title: Konto postitused trending: Populaarne visibility: Nähtavus with_media: Meediaga @@ -781,7 +781,7 @@ et: sidekiq_process_check: message_html: Ühtegi Sidekiq protsessi pole %{value} järjekorra jaoks. Sidekiq seadistus vajab üle vaatamist tags: - review: Staatuse ülevaade + review: Vaata olek üle updated_msg: Sildi sätted edukalt uuendatud title: Administreerimine trends: @@ -791,7 +791,7 @@ et: links: allow: Luba viit allow_provider: Luba autor - description_html: Need on lingid, mida jagavad praegu palju kontod, mille postitusi teie server näeb. See võib aidata kasutajatel teada saada, mis maailmas toimub. Ühtegi linki ei kuvata avalikult enne, kui avaldaja on heaks kiidetud. Samuti saab üksikuid linke lubada või tagasi lükata. + description_html: Need on lingid, mida jagavad praegu paljud kontod, mille postitusi server näeb. See võib aidata kasutajatel teada saada, mis maailmas toimub. Ühtegi linki ei kuvata avalikult enne, kui avaldaja on heakskiidetud. Samuti saab üksikuid linke lubada või tagasi lükata. disallow: Keela viit disallow_provider: Keela autor no_link_selected: Viitasid ei muudetud, kuna ühtegi polnud valitud @@ -856,7 +856,7 @@ et: webhooks: add_new: Lisa lõpp-punkt delete: Kustuta - description_html: "Veebihaak võimaldab Mastodonil edastada reaalajas märguandeid valitud sündmuste kohta teie enda rakendusele, et teie rakendus saaks automaatselt reaktsioone käivitada." + description_html: "Veebihaak võimaldab Mastodonil edastada valitud sündmuste kohta su rakendusele reaalajas märguandeid, et rakendus saaks automaatselt reaktsioone käivitada." disable: Keela disabled: Keelatud edit: Muuda lõpp-punkti @@ -870,7 +870,7 @@ et: new: Uus veebikonks rotate_secret: Salavõtme rotatsioon secret: Salavõti allkirjastamiseks - status: Staatus + status: Olek title: Veebikonksud webhook: Veebikonks admin_mailer: @@ -913,10 +913,10 @@ et: remove: Loobu suunamise vastuvõtmisest appearance: advanced_web_interface: Kohandatud veebiliides - advanced_web_interface_hint: 'Kui soovite kasutada terve ekraani laiust, lubab kohandatud veebiliides seadistada mitut erinevat veergu, et näha nii palju informatsiooni samal ajal, kui võimalik: Kodu, teavitused, föderatsiooni ajajoon ning mis iganes arv nimekirju ja silte.' + advanced_web_interface_hint: 'Kui soovid kasutada kogu ekraani laiust, saab kohandatud veebiliideses seadistada mitut veergu, nii et samal ajal oleks näha nii palju infot kui soovid: Kodu, teavitused, föderatsiooni ajajoon ning kuitahes palju nimekirju ja silte.' animations_and_accessibility: Animatsioonid ja ligipääs confirmation_dialogs: Kinnitusdialoogid - discovery: Avastus + discovery: Avastamine localization: body: Mastodoni tõlgivad vabatahtlikud. guide_link: https://crowdin.com/project/mastodon/et @@ -929,14 +929,14 @@ et: settings: 'Muuda e-kirjade eelistusi: %{link}' view: 'Vaade:' view_profile: Vaata profiili - view_status: Vaata staatust + view_status: Vaata postitust applications: created: Rakenduse loomine õnnestus destroyed: Rakenduse kustutamine õnnestus regenerate_token: Loo uus access token token_regenerated: Access tokeni loomine õnnestus - warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi! - your_token: Teie access token + warning: Ole nende andmetega ettevaatlikud. Ära jaga neid kellegagi! + your_token: Su juurdepääsutunnus auth: apply_for_account: Konto taotluse esitamine change_password: Salasõna @@ -975,6 +975,9 @@ et: 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. title: Seadistamine + sign_in: + 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. title: Loo konto serverisse %{domain}. @@ -982,7 +985,7 @@ et: account_status: Konto olek confirming: Ootan e-posti kinnitust. functional: Konto on täies mahus kasutatav. - pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri. + 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. 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. @@ -992,7 +995,7 @@ et: already_requested: Te juba saatsite jälgimistaotluse sellele kontole error: Kahjuks ilmus viga kasutaja kaugserverist otsimisel follow: Jälgi - follow_request: 'Te olete saatnud jälgimistaotluse kasutajale:' + follow_request: 'Oled saatnud jälgimistaotluse kasutajale:' following: 'Õnnestus! Te nüüd jälgite kasutajat:' post_follow: close: Või Te saate lihtsalt sulgeda seda akent. @@ -1041,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: Teie kasutajanimi muutub uuesti kasutatavaks - username_unavailable: Teie kasutajanimi jääb mitte kasutatavaks + username_available: Su kasutajanimi muutub uuesti kasutatavaks + username_unavailable: Su kasutajanimi jääb mittekasutatavaks disputes: strikes: action_taken: Tulemus @@ -1070,7 +1073,7 @@ et: sensitive: Konto tundlikuna märkimine silence: Konto piirang suspend: Konto kustutamine - your_appeal_approved: Teie vaidlustus on rahuldatud + your_appeal_approved: Su vaidlustus on heakskiidetud your_appeal_pending: Vaidlustus on esitatud your_appeal_rejected: Vaidlustus on tagasi lükatud domain_validator: @@ -1089,7 +1092,7 @@ et: content: Palume vabandust, midagi läks valesti meie pool. title: See lehekülg pole õige '503': Lehekülge ei saanud serveerida ajutise serveri vea tõttu. - noscript_html: Et kasutada Mastodoni veebirakendust, palun lubage JavaScript. Alternatiivselt, proovige mõnda rakendust Teie platvormile. + noscript_html: Et kasutada Mastodoni veebirakendust, palun luba JavaScript. Teise võimalusena proovi mõnda rakendust su platvormile. existing_username_validator: not_found: ei suutnud leida kohalikku kasutajat selle kasutajanimega not_found_multiple: ei suutnud leida %{usernames} @@ -1098,21 +1101,21 @@ et: date: Kuupäev download: Lae alla oma arhiiv hint_html: "Postitustest ja üleslaetud meediast on võimalik saada koopia. Eksporditud andmed on ActivityPub-formaadis, loetav vastava tarkvara poolt. Koopia saamine on võimalik iga 7 päeva järel." - in_progress: Loome Teie arhiivi... + in_progress: Loome arhiivi... request: Taotle oma arhiivi size: Suurus - blocks: Teie blokeerite + blocks: Sa blokeerid bookmarks: Järjehoidjad csv: CSV domain_blocks: Domeeni blokeeringud lists: Nimistud - mutes: Teie vaigistate + mutes: Oled vaigistanud storage: Meedia hoidla featured_tags: add_new: Lisa uus errors: - limit: Olete jõudnud maksimum lubatud siltide arvuni - hint_html: "Mis on esile toodud sildid? Need sildid näidatakse nähtavalt Teie avalikul profiilil ning nad aitavad inimestel leida postitusi, millel on antud sildid. Nad on hea viis, kuidas näiteks hoida järge loovtöödel või pikaajalistel projektidel." + limit: Oled jõudnud siltide lubatud maksimumarvuni + hint_html: "Mis on esiletõstetud sildid? Neid silte näidatakse su avalikul profiilil esiletõstetult ning need aitavad teistel leida postitusi, millel on selline silt. See on hea viis, kuidas hoida järge loovtöödel või pikaajalistel projektidel." filters: contexts: account: Profiilid @@ -1191,7 +1194,7 @@ et: 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. - success: Teie andmete üleslaadimine õnnestus ning neid töödeldakse + success: Andmete üleslaadimine õnnestus ning neid töödeldakse types: blocking: Blokeeringute nimekiri bookmarks: Järjehoidjad @@ -1223,7 +1226,7 @@ et: title: Kutsu inimesi lists: errors: - limit: Olete jõudnud maksimum lubatud nimekirjade arvuni + limit: Oled jõudnud loetelude lubatud maksimumarvuni login_activities: authentication_methods: otp: kahe-etapise autentimise rakendus @@ -1237,7 +1240,7 @@ et: title: Autentimise ajalugu media_attachments: validations: - images_and_video: Ei saa lisada video staatusele, millel on juba pildid + 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! too_many: Ei saa lisada rohkem, kui 4 faili migrations: @@ -1246,16 +1249,16 @@ et: cancel_explanation: Ümbersuunamise tühistamine aktiveerib siinse konto, kuid teisele kontole üle viidud jälgijaid tagasi ei too. cancelled_msg: Ümbersuunamise tühistamine õnnestus. errors: - already_moved: on sama konto, kuhu Te olete juba kolinud + already_moved: on sama konto, kuhu oled juba kolinud missing_also_known_as: ei viita tagasi sellele kontole move_to_self: ei saa olla praegune konto not_found: ei leitud - on_cooldown: Te olete hetkel ootel + on_cooldown: Oled hetkel ootel followers_count: Jälgijaid kolimise hetkel incoming_migrations: Teise konto siia kolimine incoming_migrations_html: Kui soovid kolida teise konto siia, pead esmalt määrama kolitava konto aadressi. - moved_msg: Teie konto on nüüd ümber suunamas kontole %{acct} ning Teie jälgijaid kolitakse üle. - not_redirecting: See konto pole praegu kuskile ümber suunatud. + moved_msg: Su konto suunab nüüd ümber kontole %{acct}, jälgijaid kolitakse üle. + not_redirecting: See konto pole praegu kuhugi ümber suunatud. on_cooldown: Oled oma kontot hiljuti kolinud. Uuesti saad seda teha %{count} päeva pärast. past_migrations: Kolimisajalugu proceed_with_move: Käivita kolimine @@ -1266,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 konto kasutamine piiratakse. Säilib andmete eksportimise ja konto aktiveerimise võimalus. + disabled_account: Pärast kolimist ei ole konto kasutamine täielikult 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 @@ -1286,12 +1289,12 @@ et: sign_up: subject: "%{name} liitus" favourite: - body: "%{name} lisas Teie staatuse lemmikutesse:" - subject: "%{name} märkis su staatuse lemmikuks" + body: "%{name} lisas su postituse lemmikutesse:" + subject: "%{name} märkis su postituse lemmikuks" title: Uus lemmik follow: - body: "%{name} nüüd jälgib teid!" - subject: "%{name} nüüd jälgib teid" + body: "%{name} alustas su jälgimist!" + subject: "%{name} alustas su jälgimist" title: Uus jälgija follow_request: action: Halda jälgimistaotlusi @@ -1306,7 +1309,7 @@ et: poll: subject: "%{name} küsitlus lõppes" reblog: - body: "%{name} jagas postitust:" + body: "%{name} jagas edasi postitust:" subject: "%{name} jagas postitust" title: Uus jagamine status: @@ -1343,7 +1346,7 @@ et: truncate: "…" polls: errors: - already_voted: Olete siin juba hääletanud + already_voted: Oled siin hääletusel juba hääletanud duplicate_options: sisaldab samu asju mitu korda duration_too_long: kestab liiga kaua duration_too_short: on liiga vara @@ -1380,7 +1383,7 @@ et: remove_selected_follows: Lõpeta valitud kasutajate jälgimine status: Konto olek remote_follow: - missing_resource: Ei suutnud leida vajalikku suunamise URLi Teie konto jaoks + missing_resource: Ei suutnud konto jaoks leida vajalikku suunamise URLi reports: errors: invalid_rules: ei viita kehtivatele reeglitele @@ -1391,7 +1394,7 @@ et: tag: 'Avalikud postitused sildiga #%{hashtag}' scheduled_statuses: over_daily_limit: Lubatud ajastatud postituste arv %{limit} päevas on tänaseks ületatud - over_total_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} + over_total_limit: Oled jõudnud ajastatud postituste lubatud maksimumarvuni %{limit} too_soon: Ajastatud kuupäev peab olema tukevikus sessions: activity: Viimane aktiivsus @@ -1416,7 +1419,7 @@ et: weibo: Weibo current_session: Praegune seanss description: "%{browser} platvormil %{platform}" - explanation: Need on veebilehitsejad on praegu sinu Mastodoni kontole sisse loginud. + explanation: Need veebilehitsejad on praegu su Mastodoni kontole sisse loginud. ip: IP platforms: adobe_air: Adobe Air @@ -1478,12 +1481,12 @@ et: other: 'sisaldab ebasobivaid silte: %{tags}' edited_at_html: Muudetud %{date} errors: - in_reply_not_found: Staatus, millele üritate vastata, ei näi enam eksisteerivat. + in_reply_not_found: Postitus, millele üritad vastata, ei näi enam eksisteerivat. open_in_web: Ava veebis over_character_limit: tähtmärkide limiit %{max} ületatud pin_errors: direct: Ei saa kinnitada postitusi, mis on nähtavad vaid mainitud kasutajatele - limit: Maksimaalne arv postitusi on juba kinnitatud + limit: Kinnitatud on juba maksimaalne arv postitusi ownership: Kellegi teise postitust ei saa kinnitada reblog: Jagamist ei saa kinnitada poll: @@ -1569,7 +1572,7 @@ et: enabled: Kahe-etapine autentimine on lubatud enabled_success: Kahe-etapine 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 taasetkoodid kaotavad kehtivuse. + 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 otp: Autentimisrakendus recovery_codes: Taastekoodide varundamine @@ -1608,18 +1611,18 @@ et: 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. - silence: Konto kasutamine on võimalik, ent sel serveril näevad postitusi ainult need, kes on juba jälgijad ning erinevatest avastusvõimalustest võidakse välja jätta. Käsitsi jälgima asumine on siiski võimalik. + silence: Saad kontot kasutada, ent sel serveril näevad su postitusi ainult need, kes on juba jälgijad, ning võid välja jääda erinevatest avastamisvõimalustest. Käsitsi jälgima asumine on siiski võimalik. suspend: Konto kasutamine pole enam võimalik ja profiil ja muud andmed pole enam kättesaadavad. Sisenemine on võimalik andmetest varukoopia saamiseks kuni nende lõpliku kustutamiseni 30 päeva pärast, ent säiltame mõned põhiandmed kustutamisest mööda hiilimise vältimiseks. reason: 'Põhjus:' statuses: 'Tsiteeritud postitused:' subject: delete_statuses: Postitused kontol %{acct} on eemaldatud - disable: Teie konto %{acct} on lukustatud + disable: Su konto %{acct} on lukustatud mark_statuses_as_sensitive: Konto %{acct} postitused on märgitud kui tundlik sisu none: Hoiatus kasutajale %{acct} sensitive: Konto %{acct} postitused on nüüdsest märgitud kui tundlik sisu - silence: Teie kontole %{acct} on kehtestatud limiidid - suspend: Teie konto %{acct} on kustutatud + silence: Su kontole %{acct} on kehtestatud piirangud + suspend: Su konto %{acct} on peatatud title: delete_statuses: Postitused eemaldatud disable: Konto lukustatud @@ -1630,22 +1633,25 @@ et: suspend: Konto kustutatud welcome: edit_profile_action: Seadista oma profiil - edit_profile_step: "Esmalt seadistage oma profiil. Kindlasti lisage pilt ning lühikirjeldus. Vaadake üle oma konto seaded. Saate ise otsustada kui nähtav on teie konto teiste jaoks, mis keeltes postitusi oma ajavoos näha soovite ning kui privaatne peaks olema teie konto seadistus.\n\nKui mõni asi arusaamatuks jääb, siis võte vaadata juhendvideot: https://youtu.be/J4ItbTOAw7Q. " - explanation: Siin on mõned nõuanded, mis aitavad sul alustada - final_action: Alusa postitamist - final_step: 'Nüüd tehke oma esimene postitus. Hea tava on uues kohas ennast tutvustada ning kindlasti kasutage selles postituses ka teemaviidet #tutvustus. Isegi kui teil ei ole veel jälgijaid, siis teie postitusi nähevad kohalikul ajajoonel ka kõik teised serveri kasutajad.' - full_handle: Teie kasutajanimi Mastodon võrgustikus - full_handle_hint: Kui jagad oma kasutajat väljaspool serverit siis kindlasti kasuta pikka nime, sest eri serverites võib olla sama kasutajanimega liikmeid. + 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. + 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_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}! 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 - seamless_external_login: Läbi välise teenuse sisse logides pole salasõna ja e-posti sätted saadaval. + 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: - explanation_html: 'Te saate kinnitada ennast oma profiili veebiviidete omanikena. Et seda teha, peab Teie viidatud veebilehel olema link tagasi Teie Mastodoni profiilile. Tagasi saatval lingil peab olema rel="me" atribuut. Tekstisisu lingil ei loe. Siin on üks näide:' + explanation_html: 'Saad kinnitada ennast oma profiili veebiviidete omanikuna. Selleks peab viidatud veebilehel olema link tagasi su Mastodoni profiilile. Tagasi saatval lingil peab olema rel="me" atribuut. Lingi tekstiline sisu ei ole oluline. Siin on üks näide:' verification: Kinnitamine webauthn_credentials: add: Uue turvavõtme lisamine diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 7558d08ccb..b94f621dcb 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1164,6 +1164,7 @@ eu: invalid_markup: 'HTML markaketa baliogabea du: %{error}' imports: errors: + invalid_csv_file: 'CSV fitxategi baliogabea. Errorea: %{error}' over_rows_processing_limit: "%{count} lerro baina gehiago ditu" modes: merge: Bateratu diff --git a/config/locales/fr.yml b/config/locales/fr.yml index aaa4cb6335..14dd73b85c 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -975,6 +975,9 @@ fr: 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/gl.yml b/config/locales/gl.yml index e9c71cceb7..d472296e80 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -116,6 +116,8 @@ gl: redownloaded_msg: Actualizado o perfil de %{username} desde a orixe reject: Rexeitar rejected_msg: Rexeitada a solicitude de rexistro de %{username} + remote_suspension_irreversible: Elimináronse de xeito irreversible os datos desta conta. + remote_suspension_reversible_hint_html: Esta conta foi suspendida no seu servidor, e os datos serán totalmente eliminados o %{date}. Ata entón, o servidor remoto pode restablecer a conta sen perder datos. Se desexas eliminar agora mesmo todos os datos da conta, podes facelo aquí embaixo. remove_avatar: Eliminar imaxe de perfil remove_header: Eliminar cabeceira removed_avatar_msg: Eliminado a imaxe de avatar de %{username} @@ -973,6 +975,9 @@ gl: email_below_hint_html: Se o enderezo inferior non é correcto, podes cambialo aquí e recibir un correo de confirmación. email_settings_hint_html: Enviouse un correo de confirmación a %{email}. Se o enderezo non é correcto podes cambialo nos axustes da conta. title: Axustes + sign_in: + preamble_html: Accede coas túas credenciais en %{domain}. Se a túa conta está nun servidor diferente, non podes acceder desde aquí. + title: Accede a %{domain} sign_up: preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa na rede, independentemente de onde estivese hospedada esa conta. title: Imos crear a túa conta en %{domain}. diff --git a/config/locales/he.yml b/config/locales/he.yml index 39c3652a0b..fb7f10fb3a 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -123,7 +123,7 @@ he: reject: דחויים rejected_msg: בקשת ההרשמה של %{username} נדחתה בהצלחה remote_suspension_irreversible: נתוני חשבון זה נמחקו באופן בלתי הפיך. - remote_suspension_reversible_hint_html: חשבון זה הושעה בשרת שלו ונתוניו יוסרו במלואם בתאריך %{date}. עד אז השרת המרוחק יכול לשחזר את החשבון ללא תופעות לוואי שליליות. אם ברצונך להסיר את כל נתוני החשבון באופן מיידי, ניתן לעשות זאת להלן. + remote_suspension_reversible_hint_html: חשבון זה הושעה ע"י השרת שלו ונתוניו יוסרו במלואם בתאריך %{date}. עד אז יוכל השרת המרוחק לשחזר את החשבון ללא תופעות לוואי שליליות. אם ברצונך להסיר את כל נתוני החשבון באופן מיידי, ניתן לעשות זאת להלן. remove_avatar: הסרת תמונת פרופיל remove_header: הסרת כותרת removed_avatar_msg: תמונת הפרופיל של %{username} הוסרה בהצלחה diff --git a/config/locales/id.yml b/config/locales/id.yml index db6379c7f0..bfd87673d1 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -113,6 +113,7 @@ id: redownloaded_msg: Berhasil menyegarkan profil %{username} dari asal reject: Tolak rejected_msg: Berhasil menolak permintaan pendaftaran %{username} + remote_suspension_irreversible: Data akun ini telah dihapus permanen. remove_avatar: Hapus avatar remove_header: Hapus header removed_avatar_msg: Berhasil menghapus gambar avatar %{username} diff --git a/config/locales/is.yml b/config/locales/is.yml index 5df9c2c724..d08d8c6a70 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -116,6 +116,8 @@ is: redownloaded_msg: Tókst að endurlesa notandasnið %{username} úr upphaflegu sniði reject: Hafna rejected_msg: Tókst að hafna skráningu fyrir %{username} + remote_suspension_irreversible: Gögnum þessa notandaaðgangs hefur verið eytt óafturkvæmt. + remote_suspension_reversible_hint_html: Notandaaðgangurinn hefur verið settur í frysti á hinum netþjóninum og gögnunum á honum verður eytt að fullu þann %{date}. Þangað til gæti hinn netþjóninn endurheimt aðganginn úr frysti án nokkurra breytinga. Ef þú vilt eyða öllum gögnum af honum strax, geturðu gert það hér fyrir neðan. remove_avatar: Fjarlægja auðkennismynd remove_header: Fjarlægja haus removed_avatar_msg: Tókst að fjarlægja auðkennismynd notandans %{username} @@ -973,6 +975,9 @@ is: email_below_hint_html: Ef tölvupóstfangið hér fyrir neðan er rangt, skaltu breyta því hér og fá nýjan staðfestingarpóst. email_settings_hint_html: Staðfestingarpósturinn var sendur til %{email}. Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins. title: Uppsetning + sign_in: + preamble_html: Skráðu þig inn með auðkennum þínum fyrir %{domain}. Ef aðgangurinn þinn er hýstur á öðrum netþjóni, muntu ekki geta skráð þig inn hér. + title: Skrá inn á %{domain} sign_up: preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á netkerfinu, sama hvar notandaaðgangurinn þeirra er hýstur. title: Förum núna að setja þig upp á %{domain}. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 6c434c90bd..f0cafc49a7 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -113,6 +113,8 @@ ja: redownloaded_msg: "%{username}のプロフィールを正常に更新しました" reject: 却下 rejected_msg: "%{username}さんの登録申請を却下しました" + remote_suspension_irreversible: このアカウントのデータは不可逆的に削除されました。 + remote_suspension_reversible_hint_html: このアカウントは停止されており、データは%{date} 日で完全に削除されます。それまでは悪影響なしにアカウントを復旧させることができます。アカウントを即座に削除したい場合は、以下から行うことができます。 remove_avatar: アイコンを削除 remove_header: ヘッダーを削除 removed_avatar_msg: "%{username}さんのアバター画像を削除しました" diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 4dc950197b..a1eb584162 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -30,7 +30,7 @@ ko: destroyed_msg: 중재 기록이 성공적으로 삭제되었습니다! accounts: add_email_domain_block: 이 이메일 도메인을 차단하기 - approve: 승인 + approve: 허가 approved_msg: 성공적으로 %{username}의 가입 신청서를 승인했습니다 are_you_sure: 정말로 실행하시겠습니까? avatar: 아바타 @@ -47,7 +47,7 @@ ko: label: 역할 변경 no_role: 역할 없음 title: "%{username}의 역할 변경" - confirm: 확인 + confirm: 확정 confirmed: 확인됨 confirming: 확인 중 custom: 사용자 지정 @@ -418,7 +418,7 @@ ko: domain: 도메인 new: create: 차단 규칙 생성 - resolve: 도메인 해결 + resolve: 도메인 검사 title: 새 이메일 도메인 차단 no_email_domain_block_selected: 아무 것도 선택 되지 않아 어떤 이메일 도메인 차단도 변경되지 않았습니다 resolved_dns_records_hint_html: 도메인 네임은 다음의 MX 도메인으로 연결되어 있으며, 이메일을 받는데 필수적입니다. MX 도메인을 차단하면 같은 MX 도메인을 사용하는 어떤 이메일이라도 가입할 수 없게 되며, 보여지는 도메인이 다르더라도 적용됩니다. 주요 이메일 제공자를 차단하지 않도록 조심하세요. @@ -959,6 +959,9 @@ ko: email_below_hint_html: 아래의 이메일 계정이 올바르지 않을 경우, 여기서 변경하고 새 확인 메일을 받을 수 있습니다. email_settings_hint_html: 확인 메일이 %{email}로 보내졌습니다. 이메일 주소가 올바르지 않은 경우, 계정 설정에서 변경하세요. title: 설정 + sign_in: + preamble_html: "%{domain}의 계정 정보를 이용해 로그인 하세요. 만약 내 계정이 다른 서버에 존재한다면, 여기서는 로그인 할 수 없습니다." + title: "%{domain}에 로그인" sign_up: preamble: 이 마스토돈 서버의 계정을 통해, 네트워크에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다. title: "%{domain}에 가입하기 위한 정보들을 입력하세요." @@ -1402,7 +1405,7 @@ ko: firefox_os: 파이어폭스OS ios: iOS linux: 리눅스 - mac: 맥OS + mac: macOS other: 알 수 없는 플랫폼 windows: 윈도우 windows_mobile: 윈도우 모바일 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index ed665d621d..ccee57b42b 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -911,7 +911,7 @@ ku: created_msg: Bi serkeftî nûçikê nû hat çêkirin. Tu niha dikarî di ajimêrê xwe kevn bar bikî. deleted_msg: Nûçik bi serkeftî hat rakirin. Êdî nepêkan e vê ajimêrê de barkirina ajimêrek din. empty: Nûçikên te tune ne. - hint_html: Heke tu dixwazî ji ajimêreke din bar bike bo yekî din, li vir tu dikarî bernavekê biafirîne, ku pêdivî ye berî ku tu bi şopandina şopînerên xwe ji ajimêra kevn ber bi vê yekê biçe. Ev çalakî bi serê xwe bê ziyan û vegere.Koçberiya ajimêr ji ajimêreke kevin dest pê dike. + hint_html: Ku tu dixwazî ji ajimêreke din bar bike bo yekî din, li vir tu dikarî bernavekê biafirîne, ku pêdivî ye berî ku tu bi şopandina şopînerên xwe ji ajimêra kevn ber bi vê yekê biçe. Ev çalakî bi serê xwe bê ziyan û vegere.Koçberiya ajimêr ji ajimêreke kevin dest pê dike. remove: Girêdana nûçikê rake appearance: advanced_web_interface: Navrûya tevnê yê pêşketî @@ -943,11 +943,11 @@ ku: apply_for_account: Ajimêrekê bixwaze change_password: Borînpeyv delete_account: Ajimêr jê bibe - delete_account_html: Heke tu dixwazî ajimêra xwe jê bibe, tu dikarî li vir bidomîne. Ji te tê xwestin ku were pejirandin. + delete_account_html: Ku tu dixwazî ajimêra xwe jê bibe, tu dikarî li vir bidomîne. Ji te tê xwestin ku were pejirandin. description: prefix_invited_by_user: "@%{name} te vedixwîne ku tu beşdarî vê rajekara Mastodon-ê bibî!" prefix_sign_up: Îro li Mastodonê tomar bibe! - suffix: Bi ajimêrekê, tu yê karibî kesan bişopînî, rojanekirinan bişînî û bi bikarhênerên ji her rajekarê Mastodon re peyaman bişînî û bêhtir! + suffix: Bi ajimêrekê, tu yê karibî kesan bişopînî, rojanekirinan bişînî û bi bikarhênerên ji her rajekarê Mastodon re peyaman bişînî û bêtir! didnt_get_confirmation: Te rêwerzên pejirandinê wernegirt? dont_have_your_security_key: Kilîda te ya ewlehiyê tune ye? forgot_password: Te borînpeyva xwe ji bîr kir? @@ -958,7 +958,7 @@ ku: login: Têkeve logout: Derkeve migrate_account: Livandin bo ajimêreke din - migrate_account_html: Heke tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike. + migrate_account_html: Ku tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike. or_log_in_with: An têketinê bike bi riya privacy_policy_agreement_html: Min Politîka taybetiyê xwend û dipejirînim providers: @@ -974,8 +974,8 @@ ku: security: Ewlehî set_new_password: Borînpeyveke nû ji nû ve saz bike setup: - email_below_hint_html: Heke navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne. - email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Heke ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne. + email_below_hint_html: Ku navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne. + email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Ku ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne. title: Damezirandin sign_in: preamble_html: Têketinê bike bi riya %{domain} xwe. Ku ajimêrê te li ser rajekareke cuda hatiye pêşkêşkirin, tu yê nikaribû têketinê bikî vir. @@ -987,7 +987,7 @@ ku: account_status: Rewşa ajimêr confirming: Li benda pejirandina e-nameyê ne da ku biqede. functional: Ajimêra te êdî amade ye. - pending: Daxwaza te li benda vekolînê ji hêla xebatkarên me ye. Ev dibe ku hinek dem bigire. Heke daxwaza te were pejirandin tu yê e-nameyekê bistîne. + pending: Daxwaza te li benda vekolînê ji hêla xebatkarên me ye. Ev dibe ku hinek dem bigire. Ku daxwaza te were pejirandin tu yê e-nameyekê bistîne. redirecting_to: Ajimêra te neçalak e ji ber ku niha ber bi %{acct} ve tê beralîkirin. view_strikes: Binpêkirinên berê yên dijî ajimêrê xwe bibîne too_fast: Form pir zû hat şandin, dîsa biceribîne. @@ -1042,10 +1042,10 @@ ku: caches: Naveroka ku ji hêla rajekarên din ve hatiye pêşbîrkirin dibe ku bimîne data_removal: Şandiyên te û daneyên din wê bi awayekî dawî bêne rakirin email_change_html: Tu dikarî navnîşana e-nameya xwe biguherînî bêyî ku tu ajimêra xwe jê bibî - email_contact_html: Heke ew hîn jî negihîştiye, tu dikarî ji bo alîkariyê %{email} e-nameyê bişînî - email_reconfirmation_html: Heke te e-nameya pejirandinê nesitand, tu dikarî dîsa daxwaz bike + email_contact_html: Ku ew hîn jî negihîştiye, tu dikarî ji bo alîkariyê %{email} e-nameyê bişînî + email_reconfirmation_html: Ku te e-nameya pejirandinê nesitand, tu dikarî dîsa daxwaz bike irreversible: Tu yê nikaribe ajimêra xwe serrast bike an ji nû ve çalak bike - more_details_html: Bo bêhtir zanyarî, polîtika nihêniyê binêre. + more_details_html: Bo bêtir zanyarî, polîtika taybetiyê binêre. username_available: Navê bikarhêneriyê te wê dîsa peyda bibe username_unavailable: Navê bikarhêneriyê ye wê tuneyî bimîne disputes: @@ -1356,7 +1356,7 @@ ku: invalid_choice: Vebijarka dengdanê ya bijartî tune over_character_limit: her yek ji %{max} karakterê dirêjtirîn nabe too_few_options: divê ji yekî zêdetir tişt hebin - too_many_options: nikare ji %{max} hêmanan bêhtir pêk bê + too_many_options: nikare ji %{max} hêmanan bêtir pêk be preferences: other: Yên din posting_defaults: Berdestên şandiyê @@ -1531,7 +1531,7 @@ ku: keep_polls: Rapirsîyan veşêre keep_polls_hint: Yek ji rapirsiyên te jê nabe keep_self_bookmark: Şandiyên ku wek şûnpel hatine tevlêkirin veşêre - keep_self_bookmark_hint: Şandî heke te wek şûnpel tomar kiriye we neyê jêbirin + keep_self_bookmark_hint: Şandî ku te wek şûnpel tomar kiriye wê neyê jêbirin keep_self_fav: Şandiyên ku te eciband veşêre keep_self_fav_hint: Ger te şandiyên xwe ecibandibe jê nabe min_age: @@ -1579,7 +1579,7 @@ ku: otp: Sepana Authenticator recovery_codes: Kilîtên rizgarbûna hilanînê recovery_codes_regenerated: Kilîtên rizgarbûna bi serkeftî hate nûvkirin - recovery_instructions_html: Heke gava te têlefona xwe winda kir, tu dikarî yek ji kodên rizgarkirinê yên jêrîn bi kar bîne da ku tu bigihîjî ajimêra xwe. Kodên rizgarkirinê li cihekî ewle biparêze . Mînakî, tu dikarî wan çap bikî û wan bi peldandkên din ên girîng re tomar bike. + recovery_instructions_html: Ku gava te têlefona xwe winda kir, tu dikarî yek ji kodên rizgarkirinê yên jêrîn bi kar bîne da ku tu bigihîjî ajimêra xwe. Kodên rizgarkirinê li cihekî ewle biparêze . Mînakî, tu dikarî wan çap bikî û wan bi peldandkên din ên girîng re tomar bike. webauthn: Kilîdên ewlehiyê user_mailer: appeal_approved: @@ -1604,7 +1604,7 @@ ku: title: Têketineke nû warning: appeal: Îtîrazekê bişîne - appeal_description: Heke tu bawer dikî ku ev şaşetiyeke, tu dikarî îtîrazekê ji karmendên %{instance} re bişînî. + appeal_description: Ku tu bawer dikî ku ev şaşetiyeke, tu dikarî îtîrazekê ji karmendên %{instance} re bişînî. categories: spam: Nexwestî (Spam) violation: Naverok rêbazên civakê yên jêrîn binpê dike @@ -1646,7 +1646,7 @@ ku: users: follow_limit_reached: Tu nikarî zêdetirî %{limit} kesan bişopînî invalid_otp_token: Koda du-gavî ya nelê - otp_lost_help_html: Heke te gihîştina herduyan ji dest da, dibe ku tu bi %{email} re têkilî deyne + otp_lost_help_html: Ku te gihîştina herduyan ji dest da, dibe ku tu bi %{email} re têkilî deyne seamless_external_login: Te bi rajekarke biyanî re têketina xwe kir, ji ber vê yekê borînpeyv û e-name nayê bikaranîn. signed_in_as: 'Têketin wekî:' verification: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 0ff641cb23..60858909e0 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -116,6 +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. remove_avatar: Fjern bilete remove_header: Fjern overskrift removed_avatar_msg: Fjerna %{username} sitt avatarbilete @@ -775,7 +777,7 @@ nn: confirmation_dialogs: Bekreftelsesdialoger discovery: Oppdaging localization: - body: Mastodon er oversatt av frivillige. + body: Mastodon er omsett av friviljuge. guide_link_text: Alle kan bidra. sensitive_content: Ømtolig innhald toot_layout: Tutoppsett @@ -812,7 +814,7 @@ nn: login: Innlogging logout: Logg ut migrate_account: Flytt til ein annan konto - migrate_account_html: Hvis du ønsker å henvise denne kontoen til en annen, kan du konfigurere det her. + migrate_account_html: Om du vil visa denne kontoen til ein anna, kan du skipe det her. or_log_in_with: Eller logg inn med privacy_policy_agreement_html: Jeg har lest og godtar retningslinjer for personvern providers: diff --git a/config/locales/no.yml b/config/locales/no.yml index 7013b6a1b1..f25a2f2d1b 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -116,6 +116,8 @@ redownloaded_msg: Oppdatert %{username} sin profil fra opprinnelse reject: Avslå rejected_msg: Vellykket avvist %{username} sin registreringsapplikasjon + 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. remove_avatar: Fjern profilbilde remove_header: Fjern overskrift removed_avatar_msg: Fjernet %{username} sitt avatarbilde @@ -604,6 +606,9 @@ settings: about: title: Om + default_noindex: + desc_html: Påvirker alle brukerne som ikke selv har justert denne innstillingen + title: Ikke la brukere indekseres av søkemotorer som standard discovery: trends: Trender domain_blocks: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 20d7c3976d..194d3fd72b 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1011,6 +1011,8 @@ pl: email_below_hint_html: Jeżeli poniższy adres e-mail jest nieprawidłowy, możesz zmienić go tutaj i otrzymać nowy e-mail potwierdzający. 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: + 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. title: Skonfigurujmy Twoje konto na %{domain}. @@ -1506,7 +1508,7 @@ pl: preferences: Preferencje profile: Profil relationships: Obserwowani i obserwujący - statuses_cleanup: Automatyczne usuwanie posta + statuses_cleanup: Automatyczne usuwanie wpisów strikes: Ostrzeżenia moderacyjne two_factor_authentication: Uwierzytelnianie dwuetapowe webauthn_authentication: Klucze bezpieczeństwa diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 8853ebbf05..cb1fb5832f 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -116,6 +116,8 @@ pt-PT: redownloaded_msg: Atualizado com sucesso o perfil de %{username} da origem reject: Rejeitar rejected_msg: Inscrição de %{username} rejeitada com sucesso + 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 @@ -973,6 +975,9 @@ pt-PT: email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, pode alterá-lo aqui e receber um novo e-mail de confirmação. email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver 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. + 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. title: Vamos lá inscrevê-lo em %{domain}. diff --git a/config/locales/ru.yml b/config/locales/ru.yml index a0d787e0b0..e955afc30a 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -122,6 +122,8 @@ ru: redownloaded_msg: Профиль %{username} успешно обновлен из оригинала reject: Отклонить rejected_msg: Успешно отклонено приложение для регистрации %{username} + remote_suspension_irreversible: Данные этого аккаунта были необратимо удалены. + remote_suspension_reversible_hint_html: Учётная запись была заблокирована, и данные будут полностью удалены %{date}. До этого момента её можно восстановить без каких-либо неприятных последствий. Если вы хотите немедленно удалить все данные учётной записи, вы можете сделать это ниже. remove_avatar: Удалить аватар remove_header: Убрать шапку removed_avatar_msg: Аватар %{username} успешно удален @@ -468,6 +470,7 @@ ru: unsuppress: Восстановить рекомендацию instances: availability: + failure_threshold_reached: Порог отказа достиг %{date}. failures_recorded: few: Попытки неудачны уже %{count} дня. many: Попытки неудачны уже %{count} дней. @@ -730,6 +733,7 @@ ru: title: Исключить пользователей из индексации поисковиками по умолчанию discovery: follow_recommendations: Рекомендации подписок + preamble: Наблюдение интересного контента играет важную роль при открытии новых пользователей, которые могут не знать ни одного Mastodon. Контролируйте как работают различные функции обнаружения на вашем сервере. profile_directory: Каталог профилей public_timelines: Публичные ленты title: Обзор @@ -836,6 +840,7 @@ ru: allow_account: Разрешить автора disallow: Запретить пост disallow_account: Запретить автора + no_status_selected: Тенденции не были изменены, так как ни одна запись не была выбрана not_discoverable: Автор решил не раскрывать себя shared_by: few: Поделились или добавили в избранное %{friendly_count} раза @@ -851,6 +856,7 @@ ru: tag_servers_dimension: Самые популярные серверы tag_servers_measure: разные сервера tag_uses_measure: всего использований + description_html: Это хэштеги, которые сейчас появляются в большом количестве сообщений, которые видит ваш сервер. Это может помочь вашим пользователям узнать о том, что говорят больше всего на данный момент. Хэштеги не отображаются публично до тех пор, пока вы их не подтвердите. listable: Может предлагаться no_tag_selected: Теги небыли изменены, поскольку ни один из них не выбран not_listable: Не будет предлагаться @@ -998,6 +1004,8 @@ ru: email_below_hint_html: Если ниже указан неправильный адрес, вы можете исправить его здесь и получить новое письмо подтверждения. email_settings_hint_html: Письмо с подтверждением было отправлено на %{email}. Если адрес указан неправильно, его можно поменять в настройках учётной записи. title: Установка + sign_in: + title: Войти в %{domain} sign_up: preamble: С учётной записью на этом сервере Mastodon вы сможете следить за любым другим пользователем в сети, независимо от того, где размещён их аккаунт. title: Зарегистрируйтесь в %{domain}. @@ -1624,6 +1632,7 @@ ru: subject: Ваше обжалование от %{date} была одобрено title: Обжалование одобрено appeal_rejected: + explanation: Апелляция на разблокировку против вашей учетной записи %{strike_date}, которую вы подали на %{appeal_date}, была одобрена. Ваша учетная запись восстановлена. subject: Ваше обжалование от %{date} отклонено title: Обжалование отклонено backup_ready: diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 6df35ac226..94cae75d15 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -35,11 +35,11 @@ bg: bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят context: Един или повече контексти, към които да се приложи филтърът current_password: От съображения за сигуроност, въведете паролата на текущия профил - current_username: За да потвърдите, въведете потребителското име на текущия профил - digest: Изпраща се само след дълъг период на неактивност и само ако сте получили лични съобщения, докато ви е нямало - discoverable: Позволете на непознати потребители да открият вашия акаунт чрез препоръки, трендове и други функции + current_username: Въведете потребителското име на текущия профил, за да потвърдите + digest: Изпраща се само след дълъг период на бездействие и само ако сте получили лични съобщения във ваше отсъствие + discoverable: Позволяване на странници да откриват вашия акаунт чрез препоръки, нашумели и други неща email: Ще ви се изпрати е-писмо за потвърждение - fields: Можете да добавите до 4 елемента в таблицата към своя профил + fields: Може да добавите до 4 елемента в таблицата към профила си header: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно @@ -58,7 +58,7 @@ bg: setting_noindex: Засяга вашите публикации и публичен профил setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити - setting_use_pending_items: Инфопотокът ще се обновява само при кликване, вместо автоматично + setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала username: Вашето потребителско име ще е неповторим в %{domain} whole_word: Ако ключовата дума/фраза е стриктно буквеноцифрена, ще бъде приложена само, ако съвпадне с цялата дума domain_allow: @@ -69,22 +69,41 @@ bg: featured_tag: name: 'Ето няколко хаштага, които последно сте използвали:' filters: - action: Изберете кое действие да бъде извършено, когато публикация бъде филтрирана + action: Изберете кое действие да се извърши, прецеждайки съвпаденията на публикацията actions: hide: Напълно скриване на филтрираното съдържание, сякаш не съществува warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра form_admin_settings: backups_retention_period: Запазване на генерираните потребителски архиви за посочения брой дни. - bootstrap_timeline_accounts: Тези профили ще бъдат закачени най-горе в предложенията за следване за новите потребители. + bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители. closed_registrations_message: Показва се, когато е затворено за регистрации + content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо. + custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon. + mascot: Можете да заместите илюстрацията в разширения уеб интерфейс. + media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване. + profile_directory: Указателят на профили съдържа всички потребители, които са се съгласили да бъдат откривани. + require_invite_text: Когато регистрацията изисква ръчно одобрение, текстовото поле за това "Защо желаете да се присъедините?" ще бъде задължително, вместо по желание + site_contact_email: Как могат хората да се свържат с вас относно правни запитвания или помощ. site_contact_username: Как хората могат да ви достигнат в Mastodon. site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown. site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е? + site_terms: Използвайте собствени правила за поверителност или оставете празно, за да използвате тези по подразбиране. Може да се структурира с Markdown синтаксис. + site_title: Как могат хората да наричат вашия сървър, освен името на домейна. + theme: Темата, която нови и невлезли потребители ще виждат. + thumbnail: Изображение в резолюция около 2:1, показвана до информацията за вашия сървър. + timeline_preview: Невлезлите потребители ще могат да преглеждат най-новите публични публикации, налични на сървъра. + trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие. + trends: В секцията Нашумели се показват публикации, хаштагове и новини, набрали популярност на вашия сървър. + form_challenge: + current_password: Навлизате в защитена зона imports: data: CSV файл, експортиран от друга инстанция на Mastodon + invite_request: + text: Това ще ни помогне да разгледаме заявлението ви ip_block: + comment: По избор. Помага да се сетите защо сте добавили това правило. expires_in: IP адресите са краен ресурс. Понякога са споделени и често сменят притежателите си. Поради това, блокиране на IP за неопределен период не се препоръчва. - ip: Въведете IPv4 или IPv6 адрес. Можете да блокирате цели диапазони с помощта на CIDR синтаксис. Внимавайте да не се самозаключите! + ip: Въведете адреси IPv4 или IPv6. Може да блокирате цели обхвати с помощта на синтаксиса CIDR. Внимавайте да не се самозаключите! severities: no_access: Блокиране на достъп до всички ресурси sign_up_block: Забрана на нови регистрации @@ -94,11 +113,18 @@ bg: text: Опишете правило или изискване за потребителите на този сървър. Опитайте се да го направите кратко и просто sessions: otp: 'Въведете двуфакторния код, породен от приложението на телефона си или използвайте един от кодовете си за възстановяване:' + webauthn: Ако е USB ключ, то не забравяйте да го вмъкнете и, ако е необходимо, го натикайте. + tag: + name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо user: chosen_languages: Само публикации на езиците с отметка ще бъдат показвани в публичните инфопотоци + role: Ролите управляват какви права има потребителят user_role: + color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат highlighted: Това прави ролята публично видима + name: Публично име за ролята, ако ролята е настроена да се показва като значка permissions_as_keys: Потребители с тази роля ще имат достъп до... + position: По-висшата роля може да разреши конфликти в някои ситуации. Някои действия могат да бъдат извършени само за роли с по-нисък приоритет webhook: events: Изберете събития за изпращане url: До къде ще се изпращат събитията @@ -107,13 +133,17 @@ bg: fields: name: Етикет value: Съдържание + account_alias: + acct: Потребителско име на предишния акаунт + account_migration: + acct: Потребителско име на новия акаунт account_warning_preset: text: Предварително настроен текст title: Заглавие admin_account_action: include_statuses: Включва докладваните публикации в е-писмо send_email_notification: Известяване на потребителя по имейл - text: Предупреждение по избор + text: Потребителско предупреждение type: Действие types: disable: Замразяване @@ -121,7 +151,7 @@ bg: sensitive: Деликатно silence: Ограничение suspend: Спиране - warning_preset_id: Предварителна настройка на предупреждение + warning_preset_id: Употреба на преднастройка за предупреждение announcement: all_day: Целодневно събитие ends_at: Край на събитието @@ -131,11 +161,11 @@ bg: appeal: text: Обяснете защо това решение трябва да се отхвърли defaults: - autofollow: Автоматично последване на вашия акаунт + autofollow: Поканете за следване на акаунта ви avatar: Аватар - bot: Този акаунт е бот + bot: Акаунтът е бот chosen_languages: Филтриране на езиците - confirm_new_password: Потвърди новата парола + confirm_new_password: Потвърждаване на новата парола confirm_password: Потвърдете паролата context: Филтриране на контекста current_password: Текуща парола @@ -153,7 +183,7 @@ bg: locked: Направи акаунта поверителен max_uses: Максимален брой използвания new_password: Нова парола - note: Биография + note: Биогр. otp_attempt: Двуфакторен код password: Парола phrase: Ключова дума или фраза @@ -162,11 +192,11 @@ bg: setting_always_send_emails: Винаги да се изпращат известия по имейл setting_auto_play_gif: Самопускащи се анимирани гифчета setting_boost_modal: Показване на диалога за потвърждение преди споделяне - setting_crop_images: Изрязване на изображения от неразгънати публикации до 16x9 + setting_crop_images: Изрязване на образи в неразгънати публикации до 16x9 setting_default_language: Език на публикуване setting_default_privacy: Поверителност на публикуване setting_default_sensitive: Винаги да се отбелязва мултимедията като деликатна - setting_delete_modal: Показване на диалога за потвърждение преди изтриване на публикация + setting_delete_modal: Показване на прозорче за потвърждение преди изтриване на публикация setting_disable_swiping: Деактивиране на бързо плъзгащи движения setting_display_media: Показване на мултимедия setting_display_media_default: Стандартно @@ -175,20 +205,23 @@ bg: setting_expand_spoilers: Винаги разширяване на публикации, отбелязани с предупреждения за съдържание setting_hide_network: Скриване на социалното ви графосвързване setting_noindex: Отказване от индексирането от търсачки - setting_reduce_motion: Забавяне на движението на анимациите - setting_show_application: Показване от кое приложение е изпратена публикацията - setting_system_font_ui: Използване на системния шрифт по подразбиране + setting_reduce_motion: Обездвижване на анимациите + setting_show_application: Разкриване на приложението, изпращащо публикации + setting_system_font_ui: Употреба на стандартния шрифт на системата setting_theme: Тема на сайта - setting_trends: Показване на ежедневните актуални теми - setting_unfollow_modal: Показване на диалога за потвърждение преди прекратяване следването на акаунт - setting_use_blurhash: Показване на цветно преливане за скрита мултимедия + setting_trends: Показване на днешните нашумели + setting_unfollow_modal: Показване на прозорче за потвърждение преди прекратяване следването на някого + setting_use_blurhash: Показване на цветни преливки за скрита мултимедия setting_use_pending_items: Бавен режим + severity: Тежест sign_in_token_attempt: Код за сигурност title: Заглавие type: Тип на импортиране username: Потребителско име username_or_email: Потребителско име или имейл whole_word: Цяла дума + email_domain_block: + with_dns_records: Включване не MX записи и IP на домейна featured_tag: name: Хаштаг filters: @@ -196,7 +229,12 @@ bg: hide: Напълно скриване warn: Скриване зад предупреждение form_admin_settings: - custom_css: Собствен CSS + 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: Кой може да се регистрира @@ -205,17 +243,19 @@ bg: show_domain_blocks_rationale: Показване защо са били блокирани домейните site_contact_email: Имейл за контакт site_contact_username: Потребителско име на контакт - site_extended_description: Разширено описание - site_short_description: Описание на сървъра + site_extended_description: Разширен опис + site_short_description: Опис на сървъра site_terms: Политика за поверителност site_title: Име на сървъра theme: Стандартна тема thumbnail: Миниобраз на сървъра - timeline_preview: Позволяване на неудостоверен достъп до публични инфопотоци + timeline_preview: Позволяване на неупълномощен достъп до публични часови оси + trendable_by_default: Без преглед на нашумели + trends: Включване на нашумели interactions: must_be_follower: Блокирай известия от не-последователи - must_be_following: Блокирай известия от хора, които не следваш - must_be_following_dm: Блокиране на директни съобщения от хора, които не следвате + must_be_following: Блокиране на известия от неследваните + must_be_following_dm: Блокиране на директни съобщения от неследваните invite: comment: Коментар invite_request: @@ -231,24 +271,26 @@ bg: notification_emails: appeal: Някой възразява срещу решение на модератора digest: Изпращай извлечения на съобщенията - favourite: Изпращай e-mail, когато някой хареса твоя публикация - follow: Изпращай e-mail, когато някой те последва - follow_request: Изпращай e-mail, когато някой пожелае да те последва - mention: Изпращай e-mail, когато някой те спомене + favourite: Изпращане на е-писмо, когато някой означи ваша публикация като любима + follow: Изпращане на е-писмо, когато някой ви последва + follow_request: Изпращане на е-писмо, когато някой пожелае да ви последва + mention: Изпращане на е-писмо, когато някой ви спомене pending_account: Новите акаунти трябва да се прегледат reblog: Изпращай e-mail, когато някой сподели твоя публикация report: Новият доклад е подаден + trending_tag: Изискване на преглед за новонашумели rule: text: Правило tag: - listable: Хаштагът ще се появява в търсене и предложения + listable: Позволяване на хаштага да се появява при търсене и предложения name: Хаштаг - usable: Публикациите могат да използват този хаштаг + trendable: Показване на хаштага да се появява под нашумели + usable: Позволяване на публикациите да употребяват този хаштаг user: role: Роля user_role: color: Цвят на значката - highlighted: Показване на ролята като значка на потребителския профил + highlighted: Показване на ролята като значка на потребителските профили name: Име permissions_as_keys: Разрешения position: Приоритет @@ -263,5 +305,5 @@ bg: text: задължително title: sessions: - webauthn: Използвайте един от ключовете си за защита, за да влезете + webauthn: Употребете един от ключовете си за сигурност, за да влезете 'yes': Да diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index e8abb261d6..df14bf8391 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -22,10 +22,10 @@ et: 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 announcement: - all_day: Kui valitud, ainult kuupäevad antud ajavahemikus on kuvatud + 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 teie teadaanne on limiteeritud kindlale ajavahemikule + 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 appeal: text: Otsust on võimalik vaidlustada vaid 1 kord @@ -54,12 +54,12 @@ et: setting_display_media_default: Peida tundlikuks märgitud meedia 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: Keda Te jälgite ja kes jägib Teid ei kuvata Teie profiilil - setting_noindex: Mõjutab Teie avalikku profiili ja staatuse lehekülgi - setting_show_application: Rakendus, mida kasutate postitamiseks, kuvatakse postituste detailvaates + 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_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: Peida ajajoone uuendused kliki taga selle asemel, et automaatselt kerida voogu - username: Teie kasutajanimi on %{domain}-il unikaalne + setting_use_pending_items: Voo automaatse kerimise asemel peida ajajoone uuendused kliki taha + username: Su 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 @@ -74,13 +74,13 @@ et: hide: Filtreeritud sisu täielik peitmine, nagu seda polekski üldse olemas warn: Varja filtreeritud sisu hoiatusega, nimetades filtri pealkirja form_admin_settings: - backups_retention_period: Talleta genereeritud kasutajaarhiivid määratud arv päevadeks. + backups_retention_period: Talleta genereeritud kasutajaarhiivid määratud arv päevi. bootstrap_timeline_accounts: Need kasutajad kinnitatakse uute kasutajate jälgimissoovituste esiritta. closed_registrations_message: Kuvatakse, kui liitumised pole võimalikud content_cache_retention_period: Teiste serverite postitused kustutatakse pärast määratud päevade arvu, kui see on seatud positiivsele väärtusele. See võib olla pöördumatu. custom_css: Kohandatud stiile on võimalik kasutada Mastodoni veebiliideses. mascot: Asendab kohandatud veebiliidese illustratsiooni. - media_cache_retention_period: Positiivse väärtuse korral kustutatakse allalaetud meediafailid nende päevade möödudes ning laetakse vajadusel uuesti alla. + 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 site_contact_email: Kui peaks tekkima vajadus ühendust võtta täiendavate küsimuste osas. @@ -99,7 +99,7 @@ et: imports: data: CSV fail eksporditi teisest Mastodoni serverist invite_request: - text: See aitab meil üle vaadata Teie taotlust + text: See aitab meil su 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. @@ -190,9 +190,9 @@ et: setting_advanced_layout: Aktiveeri kohandatud veebiliides setting_aggregate_reblogs: Grupeeri jagamised ajajoontel setting_always_send_emails: Edasta kõik teavitused meilile - setting_auto_play_gif: Mängi GIF-e automaatselt + setting_auto_play_gif: Esita GIF-e automaatselt setting_boost_modal: Näita enne jagamist kinnitusdialoogi - setting_crop_images: Kuva suurendamata postituste pildid kui 16x9 + setting_crop_images: Kärbi suurendamata postituste pildid mõõtu 16x9 setting_default_language: Postituse keel setting_default_privacy: Postituse nähtavus setting_default_sensitive: Alati märgista meedia tundlikuks @@ -205,7 +205,7 @@ et: setting_expand_spoilers: Alati laienda sisuhoiatustega postitused setting_hide_network: Peida oma võrk setting_noindex: Keeldu otsingumootorite indekseerimistest - setting_reduce_motion: Vähenda liikumist animatsioonides + setting_reduce_motion: Vähenda animatsioonides liikumist setting_show_application: Avalikusta postituste tegemisel kasutatud rakendus setting_system_font_ui: Kasuta süsteemi vaikefonti setting_theme: Saidi teema @@ -271,7 +271,7 @@ et: notification_emails: appeal: Moderaatori otsus on vaidlustatud digest: Saada ülevaatlike e-kirju - favourite: Saada e-kiri, kui keegi lisab teie staatuse lemmikuks + favourite: Saada e-kiri, kui keegi lisab su postituse lemmikuks follow: Saada e-kiri, kui keegi alustab Teie jälgimist follow_request: Saada e-kiri, kui keegi soovib Teid jälgida mention: Saada e-kiri, kui keegi mainib Teid diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index d3ec0dfc9f..0125ca40f4 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -12,10 +12,62 @@ fy: admin_account_action: include_statuses: De brûker sjocht hokker berjochten ferantwurdlik binne foar de moderaasjemaatregel of warskôging send_email_notification: De brûker ûntfangt in útlis oer wat der mei harren account bard is + text_html: Opsjoneel. Jo kinne spesifike tekst foar berjochten brûke. Om tiid te besparjen kinne jo presets foar warskôgingen tafoegje + type_html: Kies wat der mei %{acct} barre moat + types: + disable: Foarkom dat de brûker harren account brûkt, mar wiskje of ferstopje de ynhâld net. + none: Brûk dit om in warskôging nei de brûker te stjoeren, sûnder dat noch in oare maatregel nommen wurdt. + sensitive: Forsearje dat alle mediabylagen fan dizze brûker as gefoelich markearre wurde. + silence: Foarkom dat de brûker iepenbiere berjochten ferstjoere kin, ferstopje harren berjochten en meldingen foar minsken dy’t dyjinge net folgje. + suspend: Alle ynteraksjes fan en mei dizze account opkeare, en de accountgegevens fuortsmite. Dit kin binnen 30 dagen weromdraaid wurde. + warning_preset_id: Opsjoneel. Jo kinne noch hieltyd hânmjittich tekst tafoegje oan it ein fan de foarynstelling + announcement: + all_day: Wannear dit oanfinkt is, wurde allinnich de datums binnen it tiidrek toand + ends_at: Opsjoneel. De publikaasje fan de meidieling wurdt op dit tiidstip automatysk beëinige + scheduled_at: Lit leech om de meidieling daliks te publisearjen + starts_at: Opsjoneel. Yn it gefal dat jo meidieling oan in bepaald tiidrek bûn is + text: Jo kinne spesifike tekst foar berjochten brûke. Let op de romte dy’t de meidieling op it skerm fan de brûker yn nimt + appeal: + text: Jo kinne mar ien kear beswier yntsjinje tsjin in fêststelde oertrêding defaults: + autofollow: Minsken dy’t harren fia de útnûging registrearre hawwe, folgje jo automatysk + avatar: PNG, GIF of JPG. Maksimaal %{size}. Wurdt weromskeald nei %{dimensions}px + bot: Sinjaal nei oare brûkers ta dat dizze account yn haadsaak automatisearre berjochten stjoert en mooglik net kontrolearre wurdt + context: Ien of meardere lokaasjes wêr’t it filter aktyf wêze moat + current_password: Fier foar feilichheidsredenen it wachtwurd fan jo aktuele account yn + current_username: Fier ta befêstiging de brûkersnamme fan jo aktuele account yn + digest: Wurdt allinnich nei in lange perioade fan ynaktiviteit ferstjoerd en allinnich wannear’t jo wylst jo ôfwêzigens persoanlike berjochten ûntfongen hawwe + discoverable: Tastean dat jo account te finen is foar ûnbekenden, fia oanrekommandaasjes, trends en op oare manieren + email: Jo krije in befêstigings-e-mailberjocht + fields: Jo kinne maksimaal 4 items as in tabel op jo profyl werjaan + header: PNG, GIF of JPG. Maksimaal %{size}. Wurdt weromskeald nei %{dimensions}px + inbox_url: Kopiearje de URL fan de foarside fan de relayserver dy’t jo brûke wolle + irreversible: Filtere berjochten ferdwine definityf, sels as it filter letter fuortsmiten wurdt + locale: De taal fan de brûkersomjouwing, e-mailberjochten en pushmeldingen + locked: Troch it goedkarren fan folgers hânmjittich bepale wa’t jo folgje mei password: Brûk op syn minst 8 tekens + phrase: Komt oerien nettsjinsteande haad-/lytse letters of in ynhâldswarskôging + scopes: Ta hokker API’s hat de tapassing tagong. Wannear’t jo in tastimming fan it boppeste nivo kieze, hoege jo gjin yndividuele tastimmingen mear te kiezen. + setting_aggregate_reblogs: Gjin nije boosts toane foar berjochten dy’t resintlik noch boost binne (hat allinnich effekt op nij ûntfongen boosts) + setting_always_send_emails: Normaliter wurde der gjin e-mailmeldingen ferstjoerd wannear’t jo aktyf Mastodon brûke + setting_default_sensitive: Gefoelige media wurdt standert ferstoppe en kin mei ien klik toand wurde + setting_display_media_default: As gefoelich markearre media ferstopje setting_display_media_hide_all: Media altyd ferstopje setting_display_media_show_all: Media altyd toane + setting_hide_network: Wa’t jo folgje en wa’t jo folget wurdt net op jo profyl toand + setting_noindex: Hat ynfloed op jo iepenbiere profyl en siden mei berjochten + setting_show_application: De tapassing dy’t jo brûke om berjochten te pleatsen, wurdt yn de detaillearre werjefte fan it berjocht toand + setting_use_blurhash: Dizige kleuroergongen binne basearre op de kleuren fan de ferstoppe media, wêrmei elk detail ferdwynt + setting_use_pending_items: De tiidline wurdt bywurke troch op it oantal nije items te klikken, yn stee fan dat dizze automatysk bywurke wurdt + username: Jo brûkersnamme is unyk op %{domain} + whole_word: Wannear it trefwurd of part fan de sin alfanumeryk is, wurdt it allinnich filtere wannear’t it hiele wurd oerienkomt + domain_allow: + domain: Dit domein is yn steat om gegevens fan dizze server op te heljen, en ynkommende gegevens wurde ferwurke en bewarre + email_domain_block: + domain: Dit kin de domeinnamme wêze dy’t werjûn wurdt yn it e-mailadres of yn it MX-record dat it brûkt. Se wurde kontrolearre wylst de registraasje. + 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:' labels: account: fields: diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 6044e23e8e..1f0ac6eef8 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -203,7 +203,7 @@ is: setting_display_media_hide_all: Fela allt setting_display_media_show_all: Birta allt setting_expand_spoilers: Alltaf útfella færslur sem eru með aðvörun vegna efnisins - setting_hide_network: Fela netkerfið þitt + setting_hide_network: Fela félagsnetið þitt setting_noindex: Afþakka atriðaskráningu í leitarvélum setting_reduce_motion: Minnka hreyfingu í hreyfimyndum setting_show_application: Upplýsa um forrit sem er til að senda færslur diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml index 8065c3a677..aaef8cf559 100644 --- a/config/locales/simple_form.ku.yml +++ b/config/locales/simple_form.ku.yml @@ -115,9 +115,9 @@ ku: text: Ji bo bikarhênerên li ser vê rajekarê rêzikek an jî pêdivîyê pênase bike. Hewl bide ku rêzikê kin û xwerû bigire sessions: otp: 'Koda du-gavî a telefona xwe têkevê an jî yek ji wan kodên xilaskirinê têkevê:' - webauthn: Heke kilîta USB-yê be, jê ewle be ku wê têxinê û heke pêdivî be, pê li wê bike. + webauthn: Ku kilîta USB be, jê ewle be ku wê têxî û ku pêdivî be, pê li wê bike. tag: - name: Tîpan, mînak ji bo ku bêhtir paknivîs bibe, tenê rewşa tîpên girdek/hûrdek dikarî biguherînî + name: Tu dikarî tenê mezinahiya tîpan biguherînî bo mînak, da ku ew bêtir were xwendin user: chosen_languages: Dema were nîşankirin, tenê parvekirinên bi zimanên hilbijartî dê di rêzikên giştî de werin nîşandan role: Rola kîjan mafdayînên bikarhêner heye kontrol dike diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 532416327e..06b2f91002 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -50,8 +50,8 @@ uk: scopes: Які API додатку буде дозволено використовувати. Якщо ви виберете самий верхній, нижчестоящі будуть обрані автоматично. setting_aggregate_reblogs: Не показувати поширення для дописів, які нещодавно вже були поширені (не вплине на вже отримані поширення) setting_always_send_emails: Зазвичай, під час активного користування Mastodon, сповіщення не будуть відправлятися електронною поштою - setting_default_sensitive: Дражливі медіа приховані за промовчанням та можуть бути розкрити кліком - setting_display_media_default: Ховати медіа, позначені делікатними + setting_default_sensitive: Делікатні медіа типово приховані та можуть бути розкриті натисканням + setting_display_media_default: Приховувати медіа, позначені як делікатними setting_display_media_hide_all: Завжди приховувати медіа setting_display_media_show_all: Завжди показувати медіа setting_hide_network: У вашому профілі не буде показано підписки та підписників @@ -188,7 +188,7 @@ uk: password: Пароль phrase: Ключове слово або фраза setting_advanced_layout: Увімкнути розширений вебінтерфейс - setting_aggregate_reblogs: Групувати просування в стрічках + setting_aggregate_reblogs: Групувати поширення в стрічках setting_always_send_emails: Завжди надсилати сповіщення електронною поштою setting_auto_play_gif: Автоматично відтворювати анімовані GIF setting_boost_modal: Показувати діалог підтвердження під час поширення @@ -282,7 +282,7 @@ uk: rule: text: Правило tag: - listable: Дозволити появу цього хештеґа у каталозі профілів + listable: Дозволити появу цього хештеґа у каталозі пошуку і пропозицій name: Хештеґ trendable: Дозволити появу цього хештеґа у списку популярних хештеґів usable: Дозволити дописам використовувати цей хештег diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 928a5873bc..8b46063a7a 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -431,6 +431,8 @@ sq: resolved_through_html: Zgjidhur përmes %{domain} title: Listë bllokimesh email-esh export_domain_allows: + new: + title: Impotoni lejime përkatësish no_file: S’u përzgjodh kartelë export_domain_blocks: import: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 93cbb01372..dc62f22206 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -52,6 +52,7 @@ sr-Latn: protocol: Protokol public: Javno redownload: Osveži avatar + remote_suspension_reversible_hint_html: Налог је суспендован на њиховом серверу, а подаци ће бити у потпуности уклоњени %{date}. До тада, удаљени сервер може вратити овај налог без икаквих негативних ефеката. Ако желите одмах да уклоните све податке налога, то можете учинити у наставку. resend_confirmation: already_confirmed: Ovaj korisnik je već potvrđen send: Ponovo pošaljite e-poruku za potvrdu diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 13d7b3db65..656b6f7638 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -139,6 +139,8 @@ sr: action_logs: action_types: approve_user: Одобри корисника + change_email_user: Промени e-адресу корисника + change_role_user: Промени улогу корисника confirm_user: Потврди корисника create_account_warning: Креирај упозорење create_announcement: Креирај најаву @@ -146,22 +148,45 @@ sr: create_user_role: Креирај улогу destroy_announcement: Избриши најаву destroy_canonical_email_block: Избриши блок е-поште + destroy_status: Избриши пост disable_user: Онемогући корисника enable_user: Омогући корисника reject_user: Одбаци корисника + silence_account: Ограничи налог + suspend_account: Обустави налог + update_status: Уреди објаву + update_user_role: Уреди улогу + deleted_account: обрисан налог + filter_by_action: Филтрирај по активности + filter_by_user: Филтрирај по кориснику title: Записник + announcements: + edit: + title: Уреди најаву + empty: Ниједна најава није пронађена. + live: Уживо + new: + create: Креирај најаву + title: Нова најава + publish: Објави + published_msg: Најава успешно објављена! + title: Најаве custom_emojis: + assign_category: Додели категорију by_domain: Домен copied_msg: Успешно направљена локална копија емоџија copy: Копирај copy_failed_msg: Не могу да направим локалну копију тог емотиџија + create_new_category: Kreiraj novu kategoriju created_msg: Емоџи успешно направљен! delete: Обриши destroyed_msg: Емоџи успешно обрисан! disable: Онемогући + disabled: Онемогућено disabled_msg: Емоџи успешно онемогућен emoji: Емоџи enable: Омогући + enabled: Омогућено enabled_msg: Емоџи успешно омогућен listed: Излистан new: @@ -178,11 +203,16 @@ sr: software: Софтвер space: Коришћење простора title: Командна табла + domain_allows: + export: Извоз + import: Увоз domain_blocks: add_new: Додај нови блок домена created_msg: Блокирање домена се обрађује destroyed_msg: Блокирање домена је опозвано domain: Домен + export: Извоз + import: Увоз new: create: Направи блокаду hint: Блокирање домена неће спречити прављење налога у бази, али ће ретроактивно и аутоматски применити одређене модераторске методе над тим налозима. @@ -190,6 +220,8 @@ sr: noop: Ништа suspend: Суспензија title: Ново блокирање домена + private_comment: Приватни коментар + public_comment: Јавни коментар reject_media: Одбаци мултимедију reject_media_hint: Уклања локално ускладиштене мултимедијске фајлове и одбија да их скида убудуће. Небитно је за суспензију reject_reports: Одбаци извештај @@ -204,12 +236,29 @@ sr: create: Додај домен title: Нова ставка е-поштe у црној листи title: Црна листа E-поште + follow_recommendations: + status: Статус instances: + back_to_all: Све + back_to_limited: Ограничено + back_to_warning: Упозорење + by_domain: Домен + content_policies: + policies: + silence: Ограничи + suspend: Суспендуј + policy: Политика + reason: Јавни разлог + delivery: + all: Све + unavailable: Недоступно delivery_available: Достава је доступна moderation: all: Све limited: Ограничено title: Модерација + private_comment: Приватни коментар + public_comment: Јавни коментар title: Федерација total_blocked_by_us: Блокирано од стране нас total_followed_by_them: Праћени од стране њих @@ -223,6 +272,17 @@ sr: expired: Истекли title: Филтер title: Позивнице + ip_blocks: + expires_in: + '1209600': 2 недеље + '15778476': 6 месеци + '2629746': 1 месец + '31556952': 1 година + '86400': 1 дан + '94670856': 3 године + new: + title: Креирај ново IP правило + no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано relays: add_new: Додај нови релеј delete: Обриши @@ -268,6 +328,29 @@ sr: unassign: Уклони доделу unresolved: Нерешене updated_at: Ажурирана + view_profile: Погледај профил + roles: + add_new: Додај улогу + categories: + administration: Администрација + moderation: Модерација + delete: Избриши + privileges: + administrator: Администратор + delete_user_data: Избриши податке корисника + invite_users: Позови кориснике + manage_announcements: Управљај обавештењима + manage_roles: Управљај улогама + manage_rules: Управљај правилима + manage_rules_description: Дозволи корисницима да мењају правила сервера + manage_settings: Управљај поставкама + manage_settings_description: Дозволи корисницима да мењају поставке сајта + rules: + add_new: Додај правило + delete: Избриши + edit: Уреди правило + empty: Ниједно правило сервера још није дефинисано. + title: Правила сервера settings: appearance: title: Изглед diff --git a/config/locales/sv.yml b/config/locales/sv.yml index c974df7716..bae4a964bd 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -125,7 +125,7 @@ sv: resend_confirmation: already_confirmed: Den här användaren är redan bekräftad send: Skicka om e-postbekräftelse - success: Bekräftelsemeddelande skickas framgångsrikt! + success: Bekräftelsemeddelande skickades framgångsrikt! reset: Återställ reset_password: Återställ lösenord resubscribe: Starta en ny prenumeration @@ -285,7 +285,7 @@ sv: update_ip_block_html: "%{name} ändrade regel för IP %{target}" update_status_html: "%{name} uppdaterade inlägget av %{target}" update_user_role_html: "%{name} ändrade rollen %{target}" - deleted_account: raderat konto deleted account + deleted_account: raderat konto empty: Inga loggar hittades. filter_by_action: Filtrera efter åtgärd filter_by_user: Filtrera efter användare @@ -1168,7 +1168,7 @@ sv: all_matching_items_selected_html: one: "%{count} objekt som matchar din sökning är valt." other: "%{count} objekt som matchar din sökning är valda." - changes_saved_msg: Ändringar sparades framgångsrikt! + changes_saved_msg: Ändringar sparade! copy: Kopiera delete: Radera deselect: Avmarkera alla @@ -1194,7 +1194,7 @@ sv: overwrite: Skriv över overwrite_long: Ersätt de nuvarande uppgifterna med de nya preface: Du kan importera data som du exporterat från en annan instans, till exempel en lista över personer du följer eller blockerar. - success: Dina uppgifter har laddats upp och kommer nu att behandlas snarast + success: Dina uppgifter har laddats upp och kommer att behandlas snarast types: blocking: Lista av blockerade bookmarks: Bokmärken diff --git a/config/locales/th.yml b/config/locales/th.yml index 0abb690497..9ef2b4f301 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -113,6 +113,8 @@ th: redownloaded_msg: รีเฟรชโปรไฟล์ของ %{username} จากจุดเริ่มต้นสำเร็จ reject: ปฏิเสธ rejected_msg: ปฏิเสธใบสมัครลงทะเบียนของ %{username} สำเร็จ + remote_suspension_irreversible: ลบข้อมูลของบัญชีนี้อย่างถาวรแล้ว + remote_suspension_reversible_hint_html: ระงับบัญชีในเซิร์ฟเวอร์ของเขาแล้ว และจะเอาข้อมูลออกอย่างสมบูรณ์ใน %{date} จนกว่าจะถึงตอนนั้น เซิร์ฟเวอร์ระยะไกลสามารถกู้คืนบัญชีนี้ได้โดยไม่มีผลร้ายใด ๆ หากคุณต้องการเอาข้อมูลของบัญชีทั้งหมดออกในทันที คุณสามารถทำได้ด้านล่าง remove_avatar: เอาภาพประจำตัวออก remove_header: เอาส่วนหัวออก removed_avatar_msg: เอาภาพประจำตัวของ %{username} ออกสำเร็จ @@ -955,6 +957,9 @@ th: email_below_hint_html: หากที่อยู่อีเมลด้านล่างไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลที่นี่และรับอีเมลยืนยันใหม่ email_settings_hint_html: ส่งอีเมลยืนยันไปยัง %{email} แล้ว หากที่อยู่อีเมลนั้นไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลได้ในการตั้งค่าบัญชี title: การตั้งค่า + sign_in: + preamble_html: ลงชื่อเข้าด้วยข้อมูลประจำตัว %{domain} ของคุณ หากบัญชีของคุณได้รับการโฮสต์ในเซิร์ฟเวอร์อื่น คุณจะไม่สามารถเข้าสู่ระบบได้ที่นี่ + title: ลงชื่อเข้า %{domain} sign_up: preamble: เมื่อมีบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์ title: มาตั้งค่าของคุณใน %{domain} กันเลย diff --git a/config/locales/tr.yml b/config/locales/tr.yml index aae1188588..cd377ff543 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -397,6 +397,8 @@ tr: silence: Sınırla suspend: Uzaklaştır title: Yeni domain bloğu + no_domain_block_selected: Seçim yapılmadığından hiç bir alan adı engeli değiştirilmedi + not_permitted: Bu işlemi gerçekleştirme izniniz yok obfuscate: Alan adını gizle obfuscate_hint: Alan adı kısıtlamaları listelerinin duyurulması etkinleştirilmişse alan adını listede kısmen gizle private_comment: Özel yorum @@ -429,9 +431,14 @@ tr: resolved_through_html: "%{domain} aracılığıyla çözümlendi" title: E-posta kara listesi export_domain_allows: + new: + title: Alan adı engellerini içe aktar no_file: Dosya seçilmedi export_domain_blocks: import: + description_html: Bir alan adı engeli listesini içe aktarmak üzeresiniz. Bu listeyi iyice gözden geçirin, özellikle listeyi siz hazırlamadıysanız. + existing_relationships_warning: Mevcut takip ilişkileri + private_comment_description_html: 'İçe aktarılan engellerin nereden geldiğini izlemenize olanak sağlamak için, içe aktarılan engeller şu özel yorum ile oluşturulacak: %{comment}' private_comment_template: "%{source} kaynağından %{date} tarihinde içe aktarıldı" title: Domain bloklarını içe aktar new: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index a86774443a..69ac1d68a5 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -13,7 +13,7 @@ uk: many: Підписників one: Підписник other: Підписники - following: Підписані + following: Підписок instance_actor_flash: Цей обліковий запис є віртуальним персонажем, який використовується для показу самого сервера, а не будь-якого окремого користувача. Він використовується з метою федералізації і не повинен бути зупинений. last_active: остання активність link_verified_on: Права власності на це посилання були перевірені %{date} @@ -1345,8 +1345,8 @@ uk: subject: Ваш допис сподобався %{name} title: Нове вподобання follow: - body: "%{name} тепер підписаний на вас!" - subject: "%{name} тепер підписаний на вас" + body: "%{name} тепер стежить за вами!" + subject: "%{name} тепер стежить за вами" title: Новий підписник follow_request: action: Керувати запитами на підписку @@ -1700,7 +1700,7 @@ uk: edit_profile_step: Ви можете налаштувати свій профіль, завантаживши зображення профілю, змінивши відображуване ім'я та інше. Ви можете включити для перегляду нових підписників до того, як вони матимуть змогу підписатися на вас. explanation: Ось кілька порад для початку final_action: Почати писати - final_step: 'Почніть дописувати! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.' + final_step: 'Почніть дописувати! Навіть не підписавшись на вас, інші зможуть побачити ваші дописи, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.' full_handle: Ваше звернення full_handle_hint: Те, що ви хочете сказати друзям, щоб вони могли написати вам або підписатися з інших сайтів. subject: Ласкаво просимо до Mastodon diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 8f2ec606f3..bc1a7994a8 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -113,6 +113,8 @@ zh-CN: redownloaded_msg: 成功从来源处刷新 %{username} 的用户资料 reject: 拒绝 rejected_msg: 已拒绝 %{username} 的注册申请 + remote_suspension_irreversible: 此账户的数据已被不可逆转地删除。 + remote_suspension_reversible_hint_html: 账号已在他们的服务器上封禁,数据将在 %{date} 完全删除。 在此之前,远程服务器仍可恢复此账号,并且没有任何不良影响。 如果你想立即移除该账号的所有数据,可以在下面进行。 remove_avatar: 删除头像 remove_header: 删除横幅图片 removed_avatar_msg: 成功删除 %{username} 的头像 @@ -955,6 +957,9 @@ zh-CN: email_below_hint_html: 如果下面的电子邮箱地址是错误的,你可以在这里修改并重新发送新的确认邮件。 email_settings_hint_html: 确认邮件已经发送到%{email}。如果该邮箱地址不对,你可以在账号设置里面修改。 title: 初始设置 + sign_in: + preamble_html: 使用您在 %{domain} 的账户和密码登录。如果您的账户托管在其他的服务器上,您将无法在此登录。 + title: 登录到 %{domain} sign_up: preamble: 使用此 Mastodon 服务器上的帐号,您将能够关注网络上的任何其他人,无论他们的帐号托管在哪里的主机。 title: 让我们在 %{domain} 上开始。 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index e4981ec0c5..f26a8df089 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -957,6 +957,9 @@ zh-HK: email_below_hint_html: 如果下面的電郵地址不正確,你可在此修改,然後接收電郵進行確認。 email_settings_hint_html: 確認電郵已發送至 %{email}。電郵地址不正確的話,你可以在帳戶設置中進行更改。 title: 設定 + sign_in: + preamble_html: 請使用 %{domain} 的資料登入。如果您的帳戶託管在其他的伺服器,您將無法在此登入。 + title: 登入 %{domain} sign_up: preamble: 有了這個 Mastodon 伺服器的帳號,無論將帳號託管在何處,你都可以追蹤網絡上任何人。 title: 讓我為你在 %{domain} 上設定好。 From 7facf831e12909e6827641af098250f2b04eea76 Mon Sep 17 00:00:00 2001 From: fef Date: Thu, 24 Nov 2022 11:50:32 +0000 Subject: [PATCH 0018/1220] add backend support for status emoji reactions turns out we can just reuse the code for announcement reactions. --- .../api/v1/statuses/reactions_controller.rb | 29 +++++++++++++++++++ app/models/status.rb | 16 ++++++++++ app/models/status_reaction.rb | 29 +++++++++++++++++++ app/serializers/rest/status_serializer.rb | 5 ++++ app/validators/status_reaction_validator.rb | 28 ++++++++++++++++++ config/routes.rb | 1 + .../20221124114030_create_status_reactions.rb | 14 +++++++++ .../fabricators/status_reaction_fabricator.rb | 6 ++++ spec/models/status_reaction_spec.rb | 5 ++++ 9 files changed, 133 insertions(+) create mode 100644 app/controllers/api/v1/statuses/reactions_controller.rb create mode 100644 app/models/status_reaction.rb create mode 100644 app/validators/status_reaction_validator.rb create mode 100644 db/migrate/20221124114030_create_status_reactions.rb create mode 100644 spec/fabricators/status_reaction_fabricator.rb create mode 100644 spec/models/status_reaction_spec.rb diff --git a/app/controllers/api/v1/statuses/reactions_controller.rb b/app/controllers/api/v1/statuses/reactions_controller.rb new file mode 100644 index 0000000000..9a1bf57079 --- /dev/null +++ b/app/controllers/api/v1/statuses/reactions_controller.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class Api::V1::Statuses::ReactionsController < Api::BaseController + before_action -> { doorkeeper_authorize! :write, :'write:favourites' } + before_action :require_user! + + before_action :set_status + before_action :set_reaction, except: :update + + def update + @status.status_reactions.create!(account: current_account, name: params[:id]) + render_empty + end + + def destroy + @reaction.destroy! + render_empty + end + + private + + def set_reaction + @reaction = @status.status_reactions.where(account: current_account).find_by!(name: params[:id]) + end + + def set_status + @status = Status.find(params[:status_id]) + end +end diff --git a/app/models/status.rb b/app/models/status.rb index 6cfe19d238..64f95f3d05 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -71,6 +71,7 @@ class Status < ApplicationRecord has_many :mentioned_accounts, through: :mentions, source: :account, class_name: 'Account' has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status has_many :media_attachments, dependent: :nullify + has_many :status_reactions, dependent: :destroy has_and_belongs_to_many :tags has_and_belongs_to_many :preview_cards @@ -263,6 +264,21 @@ class Status < ApplicationRecord @emojis = CustomEmoji.from_text(fields.join(' '), account.domain) end + def reactions(account = nil) + records = begin + scope = status_reactions.group(:status_id, :name, :custom_emoji_id).order(Arel.sql('MIN(created_at) ASC')) + + if account.nil? + scope.select('name, custom_emoji_id, count(*) as count, false as me') + else + scope.select("name, custom_emoji_id, count(*) as count, exists(select 1 from status_reactions r where r.account_id = #{account.id} and r.status_id = status_reactions.status_id and r.name = status_reactions.name) as me") + end + end + + ActiveRecord::Associations::Preloader.new.preload(records, :custom_emoji) + records + end + def ordered_media_attachments if ordered_media_attachment_ids.nil? media_attachments diff --git a/app/models/status_reaction.rb b/app/models/status_reaction.rb new file mode 100644 index 0000000000..32cb9edd4a --- /dev/null +++ b/app/models/status_reaction.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true +# == Schema Information +# +# Table name: status_reactions +# +# id :bigint(8) not null, primary key +# account_id :bigint(8) not null +# status_id :bigint(8) not null +# name :string default(""), not null +# custom_emoji_id :bigint(8) +# created_at :datetime not null +# updated_at :datetime not null +# +class StatusReaction < ApplicationRecord + belongs_to :account + belongs_to :status, inverse_of: :status_reactions + belongs_to :custom_emoji, optional: true + + validates :name, presence: true + validates_with StatusReactionValidator + + before_validation :set_custom_emoji + + private + + def set_custom_emoji + self.custom_emoji = CustomEmoji.local.find_by(disabled: false, shortcode: name) if name.present? + end +end diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index 659c45b835..43c1e86aff 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -28,6 +28,7 @@ class REST::StatusSerializer < ActiveModel::Serializer has_many :ordered_mentions, key: :mentions has_many :tags has_many :emojis, serializer: REST::CustomEmojiSerializer + has_many :reactions, serializer: REST::ReactionSerializer has_one :preview_card, key: :card, serializer: REST::PreviewCardSerializer has_one :preloadable_poll, key: :poll, serializer: REST::PollSerializer @@ -146,6 +147,10 @@ class REST::StatusSerializer < ActiveModel::Serializer object.active_mentions.to_a.sort_by(&:id) end + def reactions + object.reactions(current_user&.account) + end + class ApplicationSerializer < ActiveModel::Serializer attributes :name, :website diff --git a/app/validators/status_reaction_validator.rb b/app/validators/status_reaction_validator.rb new file mode 100644 index 0000000000..7c1c6983bb --- /dev/null +++ b/app/validators/status_reaction_validator.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class StatusReactionValidator < ActiveModel::Validator + SUPPORTED_EMOJIS = Oj.load_file(Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json').to_s).keys.freeze + + LIMIT = 8 + + def validate(reaction) + return if reaction.name.blank? + + reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) if reaction.custom_emoji_id.blank? && !unicode_emoji?(reaction.name) + reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if new_reaction?(reaction) && limit_reached?(reaction) + end + + private + + def unicode_emoji?(name) + SUPPORTED_EMOJIS.include?(name) + end + + def new_reaction?(reaction) + !reaction.status.status_reactions.where(name: reaction.name).exists? + end + + def limit_reached?(reaction) + reaction.status.status_reactions.where.not(name: reaction.name).count('distinct name') >= LIMIT + end +end diff --git a/config/routes.rb b/config/routes.rb index 8639f0ef53..da4ddfa200 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -453,6 +453,7 @@ Rails.application.routes.draw do resource :history, only: :show resource :source, only: :show + resources :reactions, only: [:update, :destroy] post :translate, to: 'translations#create' end diff --git a/db/migrate/20221124114030_create_status_reactions.rb b/db/migrate/20221124114030_create_status_reactions.rb new file mode 100644 index 0000000000..bbf1f3376a --- /dev/null +++ b/db/migrate/20221124114030_create_status_reactions.rb @@ -0,0 +1,14 @@ +class CreateStatusReactions < ActiveRecord::Migration[6.1] + def change + create_table :status_reactions do |t| + t.references :account, null: false, foreign_key: true + t.references :status, null: false, foreign_key: true + t.string :name, null: false, default: '' + t.references :custom_emoji, null: true, foreign_key: true + + t.timestamps + end + + add_index :status_reactions, [:account_id, :status_id, :name], unique: true, name: :index_status_reactions_on_account_id_and_status_id + end +end diff --git a/spec/fabricators/status_reaction_fabricator.rb b/spec/fabricators/status_reaction_fabricator.rb new file mode 100644 index 0000000000..3d4b93efe0 --- /dev/null +++ b/spec/fabricators/status_reaction_fabricator.rb @@ -0,0 +1,6 @@ +Fabricator(:status_reaction) do + account nil + status nil + name "MyString" + custom_emoji nil +end \ No newline at end of file diff --git a/spec/models/status_reaction_spec.rb b/spec/models/status_reaction_spec.rb new file mode 100644 index 0000000000..18860318cc --- /dev/null +++ b/spec/models/status_reaction_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe StatusReaction, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end From dcea57a80833bf5ae6308879aeddf52f8bb9276c Mon Sep 17 00:00:00 2001 From: fef Date: Thu, 24 Nov 2022 17:30:52 +0000 Subject: [PATCH 0019/1220] add frontend for emoji reactions this is still pretty bare bones but hey, it works. --- .../flavours/glitch/actions/interactions.js | 85 +++++++++ .../flavours/glitch/components/status.js | 12 ++ .../glitch/components/status_reactions_bar.js | 177 ++++++++++++++++++ .../glitch/containers/status_container.js | 16 +- .../flavours/glitch/reducers/statuses.js | 44 +++++ 5 files changed, 333 insertions(+), 1 deletion(-) create mode 100644 app/javascript/flavours/glitch/components/status_reactions_bar.js diff --git a/app/javascript/flavours/glitch/actions/interactions.js b/app/javascript/flavours/glitch/actions/interactions.js index 225ee7eb2a..ab275621c2 100644 --- a/app/javascript/flavours/glitch/actions/interactions.js +++ b/app/javascript/flavours/glitch/actions/interactions.js @@ -41,6 +41,16 @@ export const UNBOOKMARK_REQUEST = 'UNBOOKMARKED_REQUEST'; export const UNBOOKMARK_SUCCESS = 'UNBOOKMARKED_SUCCESS'; export const UNBOOKMARK_FAIL = 'UNBOOKMARKED_FAIL'; +export const STATUS_REACTION_UPDATE = 'STATUS_REACTION_UPDATE'; + +export const STATUS_REACTION_ADD_REQUEST = 'STATUS_REACTION_ADD_REQUEST'; +export const STATUS_REACTION_ADD_SUCCESS = 'STATUS_REACTION_ADD_SUCCESS'; +export const STATUS_REACTION_ADD_FAIL = 'STATUS_REACTION_ADD_FAIL'; + +export const STATUS_REACTION_REMOVE_REQUEST = 'STATUS_REACTION_REMOVE_REQUEST'; +export const STATUS_REACTION_REMOVE_SUCCESS = 'STATUS_REACTION_REMOVE_SUCCESS'; +export const STATUS_REACTION_REMOVE_FAIL = 'STATUS_REACTION_REMOVE_FAIL'; + export function reblog(status, visibility) { return function (dispatch, getState) { dispatch(reblogRequest(status)); @@ -392,3 +402,78 @@ export function unpinFail(status, error) { error, }; }; + +export const statusAddReaction = (statusId, name) => (dispatch, getState) => { + const status = getState().get('statuses').get(statusId); + let alreadyAdded = false; + if (status) { + const reaction = status.get('reactions').find(x => x.get('name') === name); + if (reaction && reaction.get('me')) { + alreadyAdded = true; + } + } + if (!alreadyAdded) { + dispatch(statusAddReactionRequest(statusId, name, alreadyAdded)); + } + + api(getState).put(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => { + dispatch(statusAddReactionSuccess(statusId, name, alreadyAdded)); + }).catch(err => { + if (!alreadyAdded) { + dispatch(statusAddReactionFail(statusId, name, err)); + } + }); +}; + +export const statusAddReactionRequest = (statusId, name) => ({ + type: STATUS_REACTION_ADD_REQUEST, + id: statusId, + name, + skipLoading: true, +}); + +export const statusAddReactionSuccess = (statusId, name) => ({ + type: STATUS_REACTION_ADD_SUCCESS, + id: statusId, + name, + skipLoading: true, +}); + +export const statusAddReactionFail = (statusId, name, error) => ({ + type: STATUS_REACTION_ADD_FAIL, + id: statusId, + name, + error, + skipLoading: true, +}); + +export const statusRemoveReaction = (statusId, name) => (dispatch, getState) => { + dispatch(statusRemoveReactionRequest(statusId, name)); + + api(getState).delete(`/api/v1/statuses/${statusId}/reactions/${name}`).then(() => { + dispatch(statusRemoveReactionSuccess(statusId, name)); + }).catch(err => { + dispatch(statusRemoveReactionFail(statusId, name, err)); + }); +}; + +export const statusRemoveReactionRequest = (statusId, name) => ({ + type: STATUS_REACTION_REMOVE_REQUEST, + id: statusId, + name, + skipLoading: true, +}); + +export const statusRemoveReactionSuccess = (statusId, name) => ({ + type: STATUS_REACTION_REMOVE_SUCCESS, + id: statusId, + name, + skipLoading: true, +}); + +export const statusRemoveReactionFail = (statusId, name) => ({ + type: STATUS_REACTION_REMOVE_FAIL, + id: statusId, + name, + skipLoading: true, +}); diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 4041b48194..31b234ef30 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -6,6 +6,7 @@ import StatusHeader from './status_header'; import StatusIcons from './status_icons'; import StatusContent from './status_content'; import StatusActionBar from './status_action_bar'; +import StatusReactionsBar from './status_reactions_bar'; import AttachmentList from './attachment_list'; import Card from '../features/status/components/card'; import { injectIntl, FormattedMessage } from 'react-intl'; @@ -75,6 +76,8 @@ class Status extends ImmutablePureComponent { onDelete: PropTypes.func, onDirect: PropTypes.func, onMention: PropTypes.func, + onReactionAdd: PropTypes.func, + onReactionRemove: PropTypes.func, onPin: PropTypes.func, onOpenMedia: PropTypes.func, onOpenVideo: PropTypes.func, @@ -102,6 +105,7 @@ class Status extends ImmutablePureComponent { scrollKey: PropTypes.string, deployPictureInPicture: PropTypes.func, settings: ImmutablePropTypes.map.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, pictureInPicture: PropTypes.shape({ inUse: PropTypes.bool, available: PropTypes.bool, @@ -800,6 +804,14 @@ class Status extends ImmutablePureComponent { rewriteMentions={settings.get('rewrite_mentions')} /> + + {!isCollapsed || !(muted || !settings.getIn(['collapsed', 'show_action_bar'])) ? ( { + const { addReaction, statusId } = this.props; + addReaction(statusId, data.native.replace(/:/g, '')); + } + + willEnter() { + return { scale: reduceMotion ? 1 : 0 }; + } + + willLeave() { + return { scale: reduceMotion ? 0 : spring(0, { stiffness: 170, damping: 26 }) }; + } + + render() { + const { reactions } = this.props; + const visibleReactions = reactions.filter(x => x.get('count') > 0); + + const styles = visibleReactions.map(reaction => ({ + key: reaction.get('name'), + data: reaction, + style: { scale: reduceMotion ? 1 : spring(1, { stiffness: 150, damping: 13 }) }, + })).toArray(); + + return ( + + {items => ( +
+ {items.map(({ key, data, style }) => ( + + ))} + + {visibleReactions.size < 8 && } />} +
+ )} +
+ ); + } + +} + +class Reaction extends ImmutablePureComponent { + + static propTypes = { + statusId: PropTypes.string, + reaction: ImmutablePropTypes.map.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + style: PropTypes.object, + }; + + state = { + hovered: false, + }; + + handleClick = () => { + const { reaction, statusId, addReaction, removeReaction } = this.props; + + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); + } + } + + handleMouseEnter = () => this.setState({ hovered: true }) + + handleMouseLeave = () => this.setState({ hovered: false }) + + render() { + const { reaction } = this.props; + + let shortCode = reaction.get('name'); + + if (unicodeMapping[shortCode]) { + shortCode = unicodeMapping[shortCode].shortCode; + } + + return ( + + ); + } + +} + +class Emoji extends React.PureComponent { + + static propTypes = { + emoji: PropTypes.string.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + hovered: PropTypes.bool.isRequired, + }; + + render() { + const { emoji, emojiMap, hovered } = this.props; + + if (unicodeMapping[emoji]) { + const { filename, shortCode } = unicodeMapping[this.props.emoji]; + const title = shortCode ? `:${shortCode}:` : ''; + + return ( + {emoji} + ); + } else if (emojiMap.get(emoji)) { + const filename = (autoPlayGif || hovered) + ? emojiMap.getIn([emoji, 'url']) + : emojiMap.getIn([emoji, 'static_url']); + const shortCode = `:${emoji}:`; + + return ( + {shortCode} + ); + } else { + return null; + } + } + +} diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 947573fc7d..40a5744379 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -1,6 +1,5 @@ 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 { replyCompose, @@ -16,6 +15,8 @@ import { unbookmark, pin, unpin, + statusAddReaction, + statusRemoveReaction, } from 'flavours/glitch/actions/interactions'; import { muteStatus, @@ -44,6 +45,10 @@ import { showAlertForError } from '../actions/alerts'; import AccountContainer from 'flavours/glitch/containers/account_container'; import Spoilers from '../components/spoilers'; import Icon from 'flavours/glitch/components/icon'; +import { createSelector } from 'reselect'; +import { Map as ImmutableMap } from 'immutable'; + +const customEmojiMap = createSelector([state => state.get('custom_emojis')], items => items.reduce((map, emoji) => map.set(emoji.get('shortcode'), emoji), ImmutableMap())); const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -83,6 +88,7 @@ const makeMapStateToProps = () => { account: account || props.account, settings: state.get('local_settings'), prepend: prepend || props.prepend, + emojiMap: customEmojiMap(state), pictureInPicture: { inUse: state.getIn(['meta', 'layout']) !== 'mobile' && state.get('picture_in_picture').statusId === props.id, @@ -166,6 +172,14 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ } }, + onReactionAdd (statusId, name) { + dispatch(statusAddReaction(statusId, name)); + }, + + onReactionRemove (statusId, name) { + dispatch(statusRemoveReaction(statusId, name)); + }, + onEmbed (status) { dispatch(openModal('EMBED', { url: status.get('url'), diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js index f0c4c804b7..605238bc29 100644 --- a/app/javascript/flavours/glitch/reducers/statuses.js +++ b/app/javascript/flavours/glitch/reducers/statuses.js @@ -6,6 +6,11 @@ import { UNFAVOURITE_SUCCESS, BOOKMARK_REQUEST, BOOKMARK_FAIL, + STATUS_REACTION_UPDATE, + STATUS_REACTION_ADD_FAIL, + STATUS_REACTION_REMOVE_FAIL, + STATUS_REACTION_ADD_REQUEST, + STATUS_REACTION_REMOVE_REQUEST, } from 'flavours/glitch/actions/interactions'; import { STATUS_MUTE_SUCCESS, @@ -37,6 +42,37 @@ const deleteStatus = (state, id, references) => { return state.delete(id); }; +const updateReaction = (state, id, name, updater) => state.update( + id, + status => status.update( + 'reactions', + reactions => { + const index = reactions.findIndex(reaction => reaction.get('name') === name); + if (index > -1) { + return reactions.update(index, reaction => updater(reaction)); + } else { + return reactions.push(updater(fromJS({ name, count: 0 }))); + } + }, + ), +); + +const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count)); + +const addReaction = (state, id, name) => updateReaction( + state, + id, + name, + x => x.set('me', true).update('count', n => n + 1), +); + +const removeReaction = (state, id, name) => updateReaction( + state, + id, + name, + x => x.set('me', false).update('count', n => n - 1), +); + const initialState = ImmutableMap(); export default function statuses(state = initialState, action) { @@ -63,6 +99,14 @@ export default function statuses(state = initialState, action) { return state.setIn([action.status.get('id'), 'reblogged'], true); case REBLOG_FAIL: return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], false); + case STATUS_REACTION_UPDATE: + return updateReactionCount(state, action.reaction); + case STATUS_REACTION_ADD_REQUEST: + case STATUS_REACTION_REMOVE_FAIL: + return addReaction(state, action.id, action.name); + case STATUS_REACTION_REMOVE_REQUEST: + case STATUS_REACTION_ADD_FAIL: + return removeReaction(state, action.id, action.name); case STATUS_MUTE_SUCCESS: return state.setIn([action.id, 'muted'], true); case STATUS_UNMUTE_SUCCESS: From ff379c7fd06bbe18c93148d380a0281c1c08bb09 Mon Sep 17 00:00:00 2001 From: fef Date: Fri, 25 Nov 2022 23:02:40 +0000 Subject: [PATCH 0020/1220] show reactions in detailed status view --- .../glitch/containers/status_container.js | 7 ++--- .../status/components/detailed_status.js | 12 +++++++ .../flavours/glitch/features/status/index.js | 31 +++++++++++++++++++ .../flavours/glitch/utils/emoji_map.js | 11 +++++++ 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 app/javascript/flavours/glitch/utils/emoji_map.js diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 40a5744379..381276d9dc 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -45,10 +45,7 @@ import { showAlertForError } from '../actions/alerts'; import AccountContainer from 'flavours/glitch/containers/account_container'; import Spoilers from '../components/spoilers'; import Icon from 'flavours/glitch/components/icon'; -import { createSelector } from 'reselect'; -import { Map as ImmutableMap } from 'immutable'; - -const customEmojiMap = createSelector([state => state.get('custom_emojis')], items => items.reduce((map, emoji) => map.set(emoji.get('shortcode'), emoji), ImmutableMap())); +import buildCustomEmojiMap from '../utils/emoji_map'; const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -88,7 +85,7 @@ const makeMapStateToProps = () => { account: account || props.account, settings: state.get('local_settings'), prepend: prepend || props.prepend, - emojiMap: customEmojiMap(state), + emojiMap: buildCustomEmojiMap(state), pictureInPicture: { inUse: state.getIn(['meta', 'layout']) !== 'mobile' && state.get('picture_in_picture').statusId === props.id, 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..b2f38ff1ff 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js @@ -20,6 +20,7 @@ import Icon from 'flavours/glitch/components/icon'; import AnimatedNumber from 'flavours/glitch/components/animated_number'; import PictureInPicturePlaceholder from 'flavours/glitch/components/picture_in_picture_placeholder'; import EditedTimestamp from 'flavours/glitch/components/edited_timestamp'; +import StatusReactionsBar from '../../../components/status_reactions_bar'; export default @injectIntl class DetailedStatus extends ImmutablePureComponent { @@ -43,6 +44,9 @@ class DetailedStatus extends ImmutablePureComponent { showMedia: PropTypes.bool, usingPiP: PropTypes.bool, onToggleMediaVisibility: PropTypes.func, + onReactionAdd: PropTypes.func.isRequired, + onReactionRemove: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, intl: PropTypes.object.isRequired, }; @@ -319,6 +323,14 @@ class DetailedStatus extends ImmutablePureComponent { disabled /> + +
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index c716e4f0f5..e94a47f0ee 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -20,6 +20,8 @@ import { unreblog, pin, unpin, + statusAddReaction, + statusRemoveReaction, } from 'flavours/glitch/actions/interactions'; import { replyCompose, @@ -56,6 +58,7 @@ import { autoUnfoldCW } from 'flavours/glitch/utils/content_warning'; import { textForScreenReader, defaultMediaVisibility } from 'flavours/glitch/components/status'; import Icon from 'flavours/glitch/components/icon'; import { Helmet } from 'react-helmet'; +import buildCustomEmojiMap from '../../utils/emoji_map'; const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -146,6 +149,7 @@ const makeMapStateToProps = () => { 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, + emojiMap: buildCustomEmojiMap(state), }; }; @@ -291,6 +295,30 @@ class Status extends ImmutablePureComponent { } } + handleReactionAdd = (statusId, name) => { + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + dispatch(statusAddReaction(statusId, name)); + } else { + dispatch(openModal('INTERACTION', { + type: 'reaction_add', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); + } + } + + handleReactionRemove = (statusId, name) => { + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + dispatch(statusRemoveReaction(statusId, name)); + } + } + handlePin = (status) => { if (status.get('pinned')) { this.props.dispatch(unpin(status)); @@ -676,6 +704,8 @@ class Status extends ImmutablePureComponent { settings={settings} onOpenVideo={this.handleOpenVideo} onOpenMedia={this.handleOpenMedia} + onReactionAdd={this.handleReactionAdd} + onReactionRemove={this.handleReactionRemove} expanded={isExpanded} onToggleHidden={this.handleToggleHidden} onTranslate={this.handleTranslate} @@ -683,6 +713,7 @@ class Status extends ImmutablePureComponent { showMedia={this.state.showMedia} onToggleMediaVisibility={this.handleToggleMediaVisibility} usingPiP={usingPiP} + emojiMap={this.props.emojiMap} /> state.get('custom_emojis')], + items => items.reduce( + (map, emoji) => map.set(emoji.get('shortcode'), emoji), + ImmutableMap(), + ), +); +export default buildCustomEmojiMap; From cc71e734c48274b2b341d850d8856b3b316812ae Mon Sep 17 00:00:00 2001 From: fef Date: Mon, 28 Nov 2022 22:23:13 +0000 Subject: [PATCH 0021/1220] federate emoji reactions this is kind of experimental, but it should work in theory. at least i tested it with a remove akkoma instance and it didn't crash. --- .../api/v1/statuses/reactions_controller.rb | 4 +-- app/lib/activitypub/activity.rb | 2 ++ app/lib/activitypub/activity/emoji_react.rb | 14 ++++++++ app/models/concerns/account_interactions.rb | 4 +++ app/models/status.rb | 2 +- .../activitypub/emoji_reaction_serializer.rb | 36 +++++++++++++++++++ .../undo_emoji_reaction_serializer.rb | 19 ++++++++++ .../undo_emoji_reaction_serializer.rb | 0 app/services/status_reaction_service.rb | 27 ++++++++++++++ app/services/status_unreaction_service.rb | 21 +++++++++++ 10 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 app/lib/activitypub/activity/emoji_react.rb create mode 100644 app/serializers/activitypub/emoji_reaction_serializer.rb create mode 100644 app/serializers/activitypub/undo_emoji_reaction_serializer.rb create mode 100644 app/serializers/undo_emoji_reaction_serializer.rb create mode 100644 app/services/status_reaction_service.rb create mode 100644 app/services/status_unreaction_service.rb diff --git a/app/controllers/api/v1/statuses/reactions_controller.rb b/app/controllers/api/v1/statuses/reactions_controller.rb index 9a1bf57079..f7dc2f99ce 100644 --- a/app/controllers/api/v1/statuses/reactions_controller.rb +++ b/app/controllers/api/v1/statuses/reactions_controller.rb @@ -8,12 +8,12 @@ class Api::V1::Statuses::ReactionsController < Api::BaseController before_action :set_reaction, except: :update def update - @status.status_reactions.create!(account: current_account, name: params[:id]) + StatusReactionService.new.call(current_account, @status, params[:id]) render_empty end def destroy - @reaction.destroy! + StatusUnreactionService.new.call(current_account, @status) render_empty end diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index f4c67cccd7..a6b91f62da 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -39,6 +39,8 @@ class ActivityPub::Activity ActivityPub::Activity::Follow when 'Like' ActivityPub::Activity::Like + when 'EmojiReact' + ActivityPub::Activity::EmojiReact when 'Block' ActivityPub::Activity::Block when 'Update' diff --git a/app/lib/activitypub/activity/emoji_react.rb b/app/lib/activitypub/activity/emoji_react.rb new file mode 100644 index 0000000000..82c098f56e --- /dev/null +++ b/app/lib/activitypub/activity/emoji_react.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class ActivityPub::Activity::EmojiReact < ActivityPub::Activity + def perform + original_status = status_from_uri(object_uri) + name = @json['content'] + return if original_status.nil? || + !original_status.account.local? || + delete_arrived_first?(@json['id']) || + @account.reacted?(original_status, name) + + original_status.status_reactions.create!(account: @account, name: name) + end +end diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index de8bf338f2..6143bc8263 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -239,6 +239,10 @@ module AccountInteractions status.proper.favourites.where(account: self).exists? end + def reacted?(status, name, custom_emoji = nil) + status.proper.status_reactions.where(account: self, name: name, custom_emoji: custom_emoji).exists? + end + def bookmarked?(status) status.proper.bookmarks.where(account: self).exists? end diff --git a/app/models/status.rb b/app/models/status.rb index 64f95f3d05..5a48db2932 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -71,7 +71,7 @@ class Status < ApplicationRecord has_many :mentioned_accounts, through: :mentions, source: :account, class_name: 'Account' has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status has_many :media_attachments, dependent: :nullify - has_many :status_reactions, dependent: :destroy + has_many :status_reactions, inverse_of: :status, dependent: :destroy has_and_belongs_to_many :tags has_and_belongs_to_many :preview_cards diff --git a/app/serializers/activitypub/emoji_reaction_serializer.rb b/app/serializers/activitypub/emoji_reaction_serializer.rb new file mode 100644 index 0000000000..b4111150a4 --- /dev/null +++ b/app/serializers/activitypub/emoji_reaction_serializer.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class ActivityPub::EmojiReactionSerializer < ActivityPub::Serializer + attributes :id, :type, :actor, :content + attribute :virtual_object, key: :object + + has_one :custom_emoji, key: :tag, serializer: ActivityPub::EmojiSerializer, unless: -> { object.custom_emoji.nil? } + + def id + [ActivityPub::TagManager.instance.uri_for(object.account), '#emoji_reactions/', object.id].join + end + + def type + 'EmojiReact' + end + + def actor + ActivityPub::TagManager.instance.uri_for(object.account) + end + + def virtual_object + ActivityPub::TagManager.instance.uri_for(object.status) + end + + def content + if object.custom_emoji.nil? + object.name + else + ":#{object.name}:" + end + end + + def reaction + content + end +end diff --git a/app/serializers/activitypub/undo_emoji_reaction_serializer.rb b/app/serializers/activitypub/undo_emoji_reaction_serializer.rb new file mode 100644 index 0000000000..49f0c1c8fd --- /dev/null +++ b/app/serializers/activitypub/undo_emoji_reaction_serializer.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class ActivityPub::UndoEmojiReactionSerializer < ActivityPub::Serializer + attributes :id, :type, :actor + + has_one :object, serializer: ActivityPub::EmojiReactionSerializer + + def id + [ActivityPub::TagManager.instance.uri_for(object.account), '#emoji_reactions/', object.id, '/undo'].join + end + + def type + 'Undo' + end + + def actor + ActivityPub::TagManager.instance.uri_for(object.account) + end +end diff --git a/app/serializers/undo_emoji_reaction_serializer.rb b/app/serializers/undo_emoji_reaction_serializer.rb new file mode 100644 index 0000000000..e69de29bb2 diff --git a/app/services/status_reaction_service.rb b/app/services/status_reaction_service.rb new file mode 100644 index 0000000000..17acfe7488 --- /dev/null +++ b/app/services/status_reaction_service.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class StatusReactionService < BaseService + include Authorization + include Payloadable + + def call(account, status, emoji) + reaction = StatusReaction.find_by(account: account, status: status) + return reaction unless reaction.nil? + + name, domain = emoji.split("@") + + custom_emoji = CustomEmoji.find_by(shortcode: name, domain: domain) + reaction = StatusReaction.create!(account: account, status: status, name: name, custom_emoji: custom_emoji) + + json = Oj.dump(serialize_payload(reaction, ActivityPub::EmojiReactionSerializer)) + if status.account.local? + ActivityPub::RawDistributionWorker.perform_async(json, status.account.id) + else + ActivityPub::DeliveryWorker.perform_async(json, reaction.account_id, status.account.inbox_url) + end + + ActivityTracker.increment('activity:interactions') + + reaction + end +end diff --git a/app/services/status_unreaction_service.rb b/app/services/status_unreaction_service.rb new file mode 100644 index 0000000000..13c3c428db --- /dev/null +++ b/app/services/status_unreaction_service.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class StatusUnreactionService < BaseService + include Payloadable + + def call(account, status) + reaction = StatusReaction.find_by(account: account, status: status) + return if reaction.nil? + + reaction.destroy! + + json = Oj.dump(serialize_payload(reaction, ActivityPub::UndoEmojiReactionSerializer)) + if status.account.local? + ActivityPub::RawDistributionWorker.perform_async(json, status.account.id) + else + ActivityPub::DeliveryWorker.perform_async(json, reaction.account_id, status.account.inbox_url) + end + + reaction + end +end From 83f0b5f2880f726fb0002ba249fafbed8f22412b Mon Sep 17 00:00:00 2001 From: fef Date: Mon, 28 Nov 2022 22:25:12 +0000 Subject: [PATCH 0022/1220] remove accidentally created file --- app/serializers/undo_emoji_reaction_serializer.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app/serializers/undo_emoji_reaction_serializer.rb diff --git a/app/serializers/undo_emoji_reaction_serializer.rb b/app/serializers/undo_emoji_reaction_serializer.rb deleted file mode 100644 index e69de29bb2..0000000000 From 200dd90a9fe716d5a1da322f21eb89e64eb44180 Mon Sep 17 00:00:00 2001 From: fef Date: Mon, 28 Nov 2022 23:16:56 +0000 Subject: [PATCH 0023/1220] make status reaction count limit configurable --- .env.production.sample | 3 +++ app/validators/status_reaction_validator.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.env.production.sample b/.env.production.sample index 7bcce0f7e5..a2f5bdd123 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -269,6 +269,9 @@ MAX_POLL_OPTIONS=5 # Maximum allowed poll option characters MAX_POLL_OPTION_CHARS=100 +# Maximum number of emoji reactions per toot and user (minimum 1) +MAX_STATUS_REACTIONS=8 + # Maximum image and video/audio upload sizes # Units are in bytes # 1048576 bytes equals 1 megabyte diff --git a/app/validators/status_reaction_validator.rb b/app/validators/status_reaction_validator.rb index 7c1c6983bb..113e9342ba 100644 --- a/app/validators/status_reaction_validator.rb +++ b/app/validators/status_reaction_validator.rb @@ -3,7 +3,7 @@ class StatusReactionValidator < ActiveModel::Validator SUPPORTED_EMOJIS = Oj.load_file(Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json').to_s).keys.freeze - LIMIT = 8 + LIMIT = [1, (ENV['MAX_STATUS_REACTIONS'] || 1).to_i].max def validate(reaction) return if reaction.name.blank? From 738433e46a228c83a0748b44ba58a5309a6ff247 Mon Sep 17 00:00:00 2001 From: fef Date: Tue, 29 Nov 2022 00:39:40 +0000 Subject: [PATCH 0024/1220] make frontend fetch reaction limit the maximum number of reactions was previously hardcoded to 8. this commit also fixes an incorrect query in StatusReactionValidator where it didn't count per-user reactions but the total amount of different ones. --- .env.production.sample | 2 +- .../flavours/glitch/components/status_reactions_bar.js | 5 +++-- app/javascript/flavours/glitch/initial_state.js | 3 +++ app/serializers/initial_state_serializer.rb | 6 +++++- app/services/status_reaction_service.rb | 7 +++---- app/validators/status_reaction_validator.rb | 6 +++--- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.env.production.sample b/.env.production.sample index a2f5bdd123..326c2cc409 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -270,7 +270,7 @@ MAX_POLL_OPTIONS=5 MAX_POLL_OPTION_CHARS=100 # Maximum number of emoji reactions per toot and user (minimum 1) -MAX_STATUS_REACTIONS=8 +MAX_REACTIONS=8 # Maximum image and video/audio upload sizes # Units are in bytes diff --git a/app/javascript/flavours/glitch/components/status_reactions_bar.js b/app/javascript/flavours/glitch/components/status_reactions_bar.js index db1905be4f..ac57341bcc 100644 --- a/app/javascript/flavours/glitch/components/status_reactions_bar.js +++ b/app/javascript/flavours/glitch/components/status_reactions_bar.js @@ -11,13 +11,14 @@ import React from 'react'; import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light'; import AnimatedNumber from './animated_number'; import { assetHost } from '../utils/config'; -import { autoPlayGif } from '../initial_state'; +import { autoPlayGif, maxReactions } from '../initial_state'; export default class StatusReactionsBar extends ImmutablePureComponent { static propTypes = { statusId: PropTypes.string.isRequired, reactions: ImmutablePropTypes.list.isRequired, + reactionLimit: PropTypes.number.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, emojiMap: ImmutablePropTypes.map.isRequired, @@ -62,7 +63,7 @@ export default class StatusReactionsBar extends ImmutablePureComponent { /> ))} - {visibleReactions.size < 8 && } />} + {visibleReactions.size < maxReactions && } />}
)} diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index bbf25c8a85..4391b0c75d 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -148,4 +148,7 @@ export const pollLimits = (initialState && initialState.poll_limits); export const defaultContentType = getMeta('default_content_type'); export const useSystemEmojiFont = getMeta('system_emoji_font'); +// nyastodon-specific settings +export const maxReactions = (initialState && initialState.max_reactions) || 8; + export default initialState; diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index d753fa51a9..76b2ff2a24 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -6,7 +6,7 @@ class InitialStateSerializer < ActiveModel::Serializer attributes :meta, :compose, :accounts, :media_attachments, :settings, :max_toot_chars, :poll_limits, - :languages + :languages, :max_reactions has_one :push_subscription, serializer: REST::WebPushSubscriptionSerializer has_one :role, serializer: REST::RoleSerializer @@ -15,6 +15,10 @@ class InitialStateSerializer < ActiveModel::Serializer StatusLengthValidator::MAX_CHARS end + def max_reactions + StatusReactionValidator::LIMIT + end + def poll_limits { max_options: PollValidator::MAX_OPTIONS, diff --git a/app/services/status_reaction_service.rb b/app/services/status_reaction_service.rb index 17acfe7488..e823f6bd88 100644 --- a/app/services/status_reaction_service.rb +++ b/app/services/status_reaction_service.rb @@ -5,12 +5,11 @@ class StatusReactionService < BaseService include Payloadable def call(account, status, emoji) - reaction = StatusReaction.find_by(account: account, status: status) + name, domain = emoji.split('@') + custom_emoji = CustomEmoji.find_by(shortcode: name, domain: domain) + reaction = StatusReaction.find_by(account: account, status: status, name: name, custom_emoji: custom_emoji) return reaction unless reaction.nil? - name, domain = emoji.split("@") - - custom_emoji = CustomEmoji.find_by(shortcode: name, domain: domain) reaction = StatusReaction.create!(account: account, status: status, name: name, custom_emoji: custom_emoji) json = Oj.dump(serialize_payload(reaction, ActivityPub::EmojiReactionSerializer)) diff --git a/app/validators/status_reaction_validator.rb b/app/validators/status_reaction_validator.rb index 113e9342ba..fa6fb2e765 100644 --- a/app/validators/status_reaction_validator.rb +++ b/app/validators/status_reaction_validator.rb @@ -3,13 +3,13 @@ class StatusReactionValidator < ActiveModel::Validator SUPPORTED_EMOJIS = Oj.load_file(Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json').to_s).keys.freeze - LIMIT = [1, (ENV['MAX_STATUS_REACTIONS'] || 1).to_i].max + LIMIT = [1, (ENV['MAX_REACTIONS'] || 8).to_i].max def validate(reaction) return if reaction.name.blank? reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) if reaction.custom_emoji_id.blank? && !unicode_emoji?(reaction.name) - reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if new_reaction?(reaction) && limit_reached?(reaction) + reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if limit_reached?(reaction) end private @@ -23,6 +23,6 @@ class StatusReactionValidator < ActiveModel::Validator end def limit_reached?(reaction) - reaction.status.status_reactions.where.not(name: reaction.name).count('distinct name') >= LIMIT + reaction.status.status_reactions.where(status: reaction.status, account: reaction.account).count >= LIMIT end end From 19491d2032322a9e4435179d22065c5d99ea0a2f Mon Sep 17 00:00:00 2001 From: fef Date: Tue, 29 Nov 2022 04:31:22 +0100 Subject: [PATCH 0025/1220] cherry-pick emoji reaction changes --- .../flavours/glitch/actions/notifications.js | 1 + .../flavours/glitch/components/status.js | 1 + .../glitch/components/status_prepend.js | 11 ++++++ .../glitch/components/status_reactions_bar.js | 1 - .../components/column_settings.js | 11 ++++++ .../notifications/components/filter_bar.js | 8 ++++ .../notifications/components/notification.js | 22 +++++++++++ app/javascript/flavours/glitch/locales/de.js | 5 ++- app/javascript/flavours/glitch/locales/en.js | 4 ++ app/javascript/flavours/glitch/locales/fr.js | 5 ++- .../flavours/glitch/reducers/settings.js | 3 ++ app/models/notification.rb | 38 ++++++++++++------- .../rest/notification_serializer.rb | 2 +- app/services/status_reaction_service.rb | 1 + config/locales/de.yml | 4 ++ config/locales/en.yml | 4 ++ config/locales/en_GB.yml | 4 ++ config/locales/fr.yml | 4 ++ 18 files changed, 111 insertions(+), 18 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/notifications.js b/app/javascript/flavours/glitch/actions/notifications.js index 158a5b7e43..fa556269c8 100644 --- a/app/javascript/flavours/glitch/actions/notifications.js +++ b/app/javascript/flavours/glitch/actions/notifications.js @@ -139,6 +139,7 @@ const excludeTypesFromFilter = filter => { 'follow', 'follow_request', 'favourite', + 'reaction', 'reblog', 'mention', 'poll', diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 31b234ef30..05fecdb968 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -726,6 +726,7 @@ class Status extends ImmutablePureComponent { if (this.props.prepend && account) { const notifKind = { favourite: 'favourited', + reaction: 'reacted', reblog: 'boosted', reblogged_by: 'boosted', status: 'posted', diff --git a/app/javascript/flavours/glitch/components/status_prepend.js b/app/javascript/flavours/glitch/components/status_prepend.js index f825330621..6c96f2ee2f 100644 --- a/app/javascript/flavours/glitch/components/status_prepend.js +++ b/app/javascript/flavours/glitch/components/status_prepend.js @@ -56,6 +56,14 @@ export default class StatusPrepend extends React.PureComponent { values={{ name : link }} /> ); + case 'reaction': + return ( + + ); case 'reblog': return (
+
+ + +
+ + {showPushSettings && } + + +
+
+
diff --git a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.js b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.js index c1de0f90ea..6027a55d85 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.js +++ b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.js @@ -6,6 +6,7 @@ import Icon from 'flavours/glitch/components/icon'; const tooltips = defineMessages({ mentions: { id: 'notifications.filter.mentions', defaultMessage: 'Mentions' }, favourites: { id: 'notifications.filter.favourites', defaultMessage: 'Favourites' }, + reactions: { id: 'notifications.filter.reactions', defaultMessage: 'Reactions' }, boosts: { id: 'notifications.filter.boosts', defaultMessage: 'Boosts' }, polls: { id: 'notifications.filter.polls', defaultMessage: 'Poll results' }, follows: { id: 'notifications.filter.follows', defaultMessage: 'Follows' }, @@ -74,6 +75,13 @@ class FilterBar extends React.PureComponent { > +
); - } else if (placeholder) { + } else if (placeholder || number) { return (
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 40c86afdf0..b37b003182 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -9,6 +9,8 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import { me } from '../initial_state'; import classNames from 'classnames'; import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions'; +import EmojiPickerDropdown from '../features/compose/containers/emoji_picker_dropdown_container'; +import { maxReactions } from '../../flavours/glitch/initial_state'; const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, @@ -27,6 +29,7 @@ const messages = defineMessages({ cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' }, cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, + react: { id: 'status.react', defaultMessage: 'React' }, bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' }, removeBookmark: { id: 'status.remove_bookmark', defaultMessage: 'Remove bookmark' }, open: { id: 'status.open', defaultMessage: 'Expand this status' }, @@ -66,6 +69,7 @@ class StatusActionBar extends ImmutablePureComponent { relationship: ImmutablePropTypes.map, onReply: PropTypes.func, onFavourite: PropTypes.func, + onReactionAdd: PropTypes.func, onReblog: PropTypes.func, onDelete: PropTypes.func, onDirect: PropTypes.func, @@ -127,6 +131,16 @@ class StatusActionBar extends ImmutablePureComponent { } } + handleEmojiPick = data => { + const { signedIn } = this.context.identity; + + if (signedIn) { + this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, '')); + } else { + this.props.onInteractionModal('favourite', this.props.status); + } + } + handleReblogClick = e => { const { signedIn } = this.context.identity; @@ -230,6 +244,8 @@ class StatusActionBar extends ImmutablePureComponent { this.props.onFilter(); } + nop = () => {} + render () { const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props; const { signedIn } = this.context.identity; @@ -350,11 +366,23 @@ class StatusActionBar extends ImmutablePureComponent { ); + const canReact = status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; + const reactButton = ( + + ); + return (
+ {shareButton} diff --git a/app/javascript/mastodon/components/status_reactions.js b/app/javascript/mastodon/components/status_reactions.js new file mode 100644 index 0000000000..39956270a4 --- /dev/null +++ b/app/javascript/mastodon/components/status_reactions.js @@ -0,0 +1,179 @@ +import ImmutablePureComponent from 'react-immutable-pure-component'; +import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { reduceMotion } from '../initial_state'; +import spring from 'react-motion/lib/spring'; +import TransitionMotion from 'react-motion/lib/TransitionMotion'; +import classNames from 'classnames'; +import React from 'react'; +import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light'; +import AnimatedNumber from './animated_number'; +import { assetHost } from '../utils/config'; +import { autoPlayGif } from '../initial_state'; + +export default class StatusReactions extends ImmutablePureComponent { + + static propTypes = { + statusId: PropTypes.string.isRequired, + reactions: ImmutablePropTypes.list.isRequired, + numVisible: PropTypes.number, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + }; + + willEnter() { + return { scale: reduceMotion ? 1 : 0 }; + } + + willLeave() { + return { scale: reduceMotion ? 0 : spring(0, { stiffness: 170, damping: 26 }) }; + } + + render() { + const { reactions, numVisible } = this.props; + let visibleReactions = reactions + .filter(x => x.get('count') > 0) + .sort((a, b) => b.get('count') - a.get('count')); + + // numVisible might be NaN because it's pulled from local settings + // which doesn't do a whole lot of input validation, but that's okay + // because NaN >= 0 evaluates false. + // Still, this should be improved at some point. + if (numVisible >= 0) { + visibleReactions = visibleReactions.filter((_, i) => i < numVisible); + } + + const styles = visibleReactions.map(reaction => ({ + key: reaction.get('name'), + data: reaction, + style: { scale: reduceMotion ? 1 : spring(1, { stiffness: 150, damping: 13 }) }, + })).toArray(); + + return ( + + {items => ( +
+ {items.map(({ key, data, style }) => ( + + ))} +
+ )} +
+ ); + } + +} + +class Reaction extends ImmutablePureComponent { + + static propTypes = { + statusId: PropTypes.string, + reaction: ImmutablePropTypes.map.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + style: PropTypes.object, + }; + + state = { + hovered: false, + }; + + handleClick = () => { + const { reaction, statusId, addReaction, removeReaction } = this.props; + + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); + } + } + + handleMouseEnter = () => this.setState({ hovered: true }) + + handleMouseLeave = () => this.setState({ hovered: false }) + + render() { + const { reaction } = this.props; + + let shortCode = reaction.get('name'); + + if (unicodeMapping[shortCode]) { + shortCode = unicodeMapping[shortCode].shortCode; + } + + return ( + + ); + } + +} + +class Emoji extends React.PureComponent { + + static propTypes = { + emoji: PropTypes.string.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + hovered: PropTypes.bool.isRequired, + }; + + render() { + const { emoji, emojiMap, hovered } = this.props; + + if (unicodeMapping[emoji]) { + const { filename, shortCode } = unicodeMapping[this.props.emoji]; + const title = shortCode ? `:${shortCode}:` : ''; + + return ( + {emoji} + ); + } else if (emojiMap.get(emoji)) { + const filename = (autoPlayGif || hovered) + ? emojiMap.getIn([emoji, 'url']) + : emojiMap.getIn([emoji, 'static_url']); + const shortCode = `:${emoji}:`; + + return ( + {shortCode} + ); + } else { + return null; + } + } + +} diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index 294105f259..556910f089 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; import Status from '../components/status'; -import { makeGetStatus, makeGetPictureInPicture } from '../selectors'; +import { makeGetStatus, makeGetPictureInPicture, makeCustomEmojiMap } from '../selectors'; import { replyCompose, mentionCompose, @@ -16,6 +16,8 @@ import { unbookmark, pin, unpin, + addReaction, + removeReaction, } from '../actions/interactions'; import { muteStatus, @@ -66,6 +68,7 @@ const makeMapStateToProps = () => { const mapStateToProps = (state, props) => ({ status: getStatus(state, props), pictureInPicture: getPictureInPicture(state, props), + emojiMap: makeCustomEmojiMap(state), }); return mapStateToProps; @@ -129,6 +132,14 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ } }, + onReactionAdd (statusId, name) { + dispatch(addReaction(statusId, name)); + }, + + onReactionRemove (statusId, name) { + dispatch(removeReaction(statusId, name)); + }, + onEmbed (status) { dispatch(openModal('EMBED', { url: status.get('url'), 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..efdbf9c908 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -319,6 +319,7 @@ class EmojiPickerDropdown extends React.PureComponent { onSkinTone: PropTypes.func.isRequired, skinTone: PropTypes.number.isRequired, button: PropTypes.node, + disabled: PropTypes.bool, }; state = { @@ -356,7 +357,7 @@ class EmojiPickerDropdown extends React.PureComponent { } onToggle = (e) => { - if (!this.state.loading && (!e.key || e.key === 'Enter')) { + if (!this.state.disabled && !this.state.loading && (!e.key || e.key === 'Enter')) { if (this.state.active) { this.onHideDropdown(); } else { diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js index a38f8d3c2d..3e91ebc369 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.js +++ b/app/javascript/mastodon/features/notifications/components/column_settings.js @@ -6,6 +6,7 @@ import ClearColumnButton from './clear_column_button'; import GrantPermissionButton from './grant_permission_button'; import SettingToggle from './setting_toggle'; import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'mastodon/permissions'; +import PillBarButton from '../../../../flavours/glitch/features/notifications/components/pill_bar_button'; export default class ColumnSettings extends React.PureComponent { @@ -115,6 +116,17 @@ export default class ColumnSettings extends React.PureComponent {
+
+ + +
+ + {showPushSettings && } + + +
+
+
diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.js b/app/javascript/mastodon/features/notifications/components/filter_bar.js index 368eb0b7e6..2b5f48f0b4 100644 --- a/app/javascript/mastodon/features/notifications/components/filter_bar.js +++ b/app/javascript/mastodon/features/notifications/components/filter_bar.js @@ -6,6 +6,7 @@ import Icon from 'mastodon/components/icon'; const tooltips = defineMessages({ mentions: { id: 'notifications.filter.mentions', defaultMessage: 'Mentions' }, favourites: { id: 'notifications.filter.favourites', defaultMessage: 'Favourites' }, + reactions: { id: 'notifications.filter.reactions', defaultMessage: 'Reactions' }, boosts: { id: 'notifications.filter.boosts', defaultMessage: 'Boosts' }, polls: { id: 'notifications.filter.polls', defaultMessage: 'Poll results' }, follows: { id: 'notifications.filter.follows', defaultMessage: 'Follows' }, @@ -74,6 +75,13 @@ class FilterBar extends React.PureComponent { > +
); - } else if (placeholder || number) { + } else if (placeholder) { return (
@@ -75,7 +73,6 @@ class Reaction extends ImmutablePureComponent { reaction: ImmutablePropTypes.map.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, style: PropTypes.object, }; @@ -86,10 +83,12 @@ class Reaction extends ImmutablePureComponent { handleClick = () => { const { reaction, statusId, addReaction, removeReaction } = this.props; - if (reaction.get('me')) { - removeReaction(statusId, reaction.get('name')); - } else { - addReaction(statusId, reaction.get('name')); + if (!reaction.get('extern')) { + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); + } } } @@ -109,7 +108,12 @@ class Reaction extends ImmutablePureComponent { style={this.props.style} > - + @@ -124,12 +128,13 @@ class Emoji extends React.PureComponent { static propTypes = { emoji: PropTypes.string.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, hovered: PropTypes.bool.isRequired, + url: PropTypes.string, + staticUrl: PropTypes.string, }; render() { - const { emoji, emojiMap, hovered } = this.props; + const { emoji, hovered, url, staticUrl } = this.props; if (unicodeMapping[emoji]) { const { filename, shortCode } = unicodeMapping[this.props.emoji]; @@ -144,10 +149,8 @@ class Emoji extends React.PureComponent { src={`${assetHost}/emoji/${filename}.svg`} /> ); - } else if (emojiMap.get(emoji)) { - const filename = (autoPlayGif || hovered) - ? emojiMap.getIn([emoji, 'url']) - : emojiMap.getIn([emoji, 'static_url']); + } else { + const filename = (autoPlayGif || hovered) ? url : staticUrl; const shortCode = `:${emoji}:`; return ( @@ -159,8 +162,6 @@ class Emoji extends React.PureComponent { src={filename} /> ); - } else { - return null; } } diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index c2fd15b17c..d68e059af4 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -45,7 +45,6 @@ import { showAlertForError } from '../actions/alerts'; import AccountContainer from 'flavours/glitch/containers/account_container'; import Spoilers from '../components/spoilers'; import Icon from 'flavours/glitch/components/icon'; -import { makeCustomEmojiMap } from '../selectors'; const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -85,7 +84,6 @@ const makeMapStateToProps = () => { account: account || props.account, settings: state.get('local_settings'), prepend: prepend || props.prepend, - emojiMap: makeCustomEmojiMap(state), pictureInPicture: { inUse: state.getIn(['meta', 'layout']) !== 'mobile' && state.get('picture_in_picture').statusId === props.id, diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js index 619c57685a..1ed89ea059 100644 --- a/app/javascript/flavours/glitch/features/status/components/action_bar.js +++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js @@ -203,7 +203,7 @@ class ActionBar extends React.PureComponent { } } - const canReact = status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; + const canReact = signedIn && status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; const reactButton = (
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index 1bbfe2b421..a33939445f 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -43,7 +43,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 { makeCustomEmojiMap, makeGetStatus } from 'flavours/glitch/selectors'; +import { makeGetStatus } 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'; @@ -148,7 +148,6 @@ const makeMapStateToProps = () => { 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, - emojiMap: makeCustomEmojiMap(state), }; }; @@ -707,7 +706,6 @@ class Status extends ImmutablePureComponent { showMedia={this.state.showMedia} onToggleMediaVisibility={this.handleToggleMediaVisibility} usingPiP={usingPiP} - emojiMap={this.props.emojiMap} /> { return hidden && !(isSelf || followingOrRequested); }); - -export const makeCustomEmojiMap = createSelector( - [state => state.get('custom_emojis')], - items => items.reduce( - (map, emoji) => map.set(emoji.get('shortcode'), emoji), - ImmutableMap(), - ), -); diff --git a/app/serializers/rest/reaction_serializer.rb b/app/serializers/rest/reaction_serializer.rb index 1a5dca0183..007d3b5015 100644 --- a/app/serializers/rest/reaction_serializer.rb +++ b/app/serializers/rest/reaction_serializer.rb @@ -3,7 +3,7 @@ class REST::ReactionSerializer < ActiveModel::Serializer include RoutingHelper - attributes :name, :count + attributes :name, :count, :extern attribute :me, if: :current_user? attribute :url, if: :custom_emoji? @@ -21,6 +21,14 @@ class REST::ReactionSerializer < ActiveModel::Serializer object.custom_emoji.present? end + def extern + if custom_emoji? + object.custom_emoji.domain.present? + else + false + end + end + def url full_asset_url(object.custom_emoji.image.url) end From e4949a252e2a50428299ca71cc555414aa54c9fc Mon Sep 17 00:00:00 2001 From: fef Date: Sat, 3 Dec 2022 14:23:55 +0000 Subject: [PATCH 0052/1220] run i18n-tasks normalize --- config/locales/de.yml | 8 ++++---- config/locales/en.yml | 8 ++++---- config/locales/en_GB.yml | 8 ++++---- config/locales/fr.yml | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 1899b131d1..e8b7261f4b 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1285,10 +1285,6 @@ de: body: 'Dein Beitrag wurde von %{name} favorisiert:' subject: "%{name} hat deinen Beitrag favorisiert" title: Neue Favorisierung - reaction: - body: '%{name} hat auf deinen Beitrag reagiert:' - subject: '%{name} hat auf deinen Beitrag reagiert' - title: Neue Reaktion follow: body: "%{name} folgt dir jetzt!" subject: "%{name} folgt dir jetzt" @@ -1305,6 +1301,10 @@ de: title: Neue Erwähnung poll: subject: Eine Umfrage von %{name} ist beendet + reaction: + body: "%{name} hat auf deinen Beitrag reagiert:" + subject: "%{name} hat auf deinen Beitrag reagiert" + title: Neue Reaktion reblog: body: 'Deinen Beitrag hat %{name} geteilt:' subject: "%{name} hat deinen Beitrag geteilt" diff --git a/config/locales/en.yml b/config/locales/en.yml index bf43d0c752..f3bf0b6463 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1292,10 +1292,6 @@ en: body: 'Your post was favourited by %{name}:' subject: "%{name} favourited your post" title: New favourite - reaction: - body: '%{name} reacted to your post:' - subject: '%{name} reacted to your post' - title: New reaction follow: body: "%{name} is now following you!" subject: "%{name} is now following you" @@ -1312,6 +1308,10 @@ en: title: New mention poll: subject: A poll by %{name} has ended + reaction: + body: "%{name} reacted to your post:" + subject: "%{name} reacted to your post" + title: New reaction reblog: body: 'Your post was boosted by %{name}:' subject: "%{name} boosted your post" diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 80084d9a6f..506d462409 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -707,10 +707,6 @@ en_GB: body: 'Your status was favourited by %{name}:' subject: "%{name} favourited your status" title: New favourite - reaction: - body: '%{name} reacted on your post with %{reaction}:' - subject: '%{name} reacted on your post' - title: New reaction follow: body: "%{name} is now following you!" subject: "%{name} is now following you" @@ -725,6 +721,10 @@ en_GB: body: 'You were mentioned by %{name} in:' subject: You were mentioned by %{name} title: New mention + reaction: + body: "%{name} reacted on your post with %{reaction}:" + subject: "%{name} reacted on your post" + title: New reaction reblog: body: 'Your status was boosted by %{name}:' subject: "%{name} boosted your status" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 9f3cf843a1..e1deaab221 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1285,10 +1285,6 @@ fr: body: "%{name} a ajouté votre message à ses favoris :" subject: "%{name} a ajouté votre message à ses favoris" title: Nouveau favori - reaction: - body: '%{name} a réagi·e à votre message:' - subject: '%{name} a réagi·e à votre message' - title: Nouvelle réaction follow: body: "%{name} vous suit !" subject: "%{name} vous suit" @@ -1305,6 +1301,10 @@ fr: title: Nouvelle mention poll: subject: Un sondage de %{name} est terminé + reaction: + body: "%{name} a réagi·e à votre message:" + subject: "%{name} a réagi·e à votre message" + title: Nouvelle réaction reblog: body: 'Votre message été partagé par %{name} :' subject: "%{name} a partagé votre message" From 47ac7a2e502f70fbe3481b9c4e82f3eec8b66b45 Mon Sep 17 00:00:00 2001 From: fef Date: Sat, 3 Dec 2022 16:20:29 +0000 Subject: [PATCH 0053/1220] fix image for new custom emoji reactions --- .../flavours/glitch/actions/interactions.js | 7 ++++--- .../flavours/glitch/components/status_action_bar.js | 2 +- .../flavours/glitch/containers/status_container.js | 4 ++-- .../glitch/features/status/components/action_bar.js | 2 +- .../flavours/glitch/features/status/index.js | 4 ++-- app/javascript/flavours/glitch/reducers/statuses.js | 12 +++++++++--- app/javascript/mastodon/actions/interactions.js | 7 ++++--- .../mastodon/containers/status_container.js | 4 ++-- app/javascript/mastodon/features/status/index.js | 4 ++-- app/javascript/mastodon/reducers/statuses.js | 12 +++++++++--- 10 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/interactions.js b/app/javascript/flavours/glitch/actions/interactions.js index 0df6db4277..2d483de818 100644 --- a/app/javascript/flavours/glitch/actions/interactions.js +++ b/app/javascript/flavours/glitch/actions/interactions.js @@ -403,7 +403,7 @@ export function unpinFail(status, error) { }; }; -export const addReaction = (statusId, name) => (dispatch, getState) => { +export const addReaction = (statusId, name, url) => (dispatch, getState) => { const status = getState().get('statuses').get(statusId); let alreadyAdded = false; if (status) { @@ -413,7 +413,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => { } } if (!alreadyAdded) { - dispatch(addReactionRequest(statusId, name)); + dispatch(addReactionRequest(statusId, name, url)); } api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => { @@ -425,10 +425,11 @@ export const addReaction = (statusId, name) => (dispatch, getState) => { }); }; -export const addReactionRequest = (statusId, name) => ({ +export const addReactionRequest = (statusId, name, url) => ({ type: REACTION_ADD_REQUEST, id: statusId, name, + url, }); export const addReactionSuccess = (statusId, name) => ({ diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js index 33dbe3ab89..72912acedd 100644 --- a/app/javascript/flavours/glitch/components/status_action_bar.js +++ b/app/javascript/flavours/glitch/components/status_action_bar.js @@ -118,7 +118,7 @@ class StatusActionBar extends ImmutablePureComponent { } handleEmojiPick = data => { - this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, '')); + this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''), data.imageUrl); } handleReblogClick = e => { diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index d68e059af4..3edcf9c7a8 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -167,8 +167,8 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ } }, - onReactionAdd (statusId, name) { - dispatch(addReaction(statusId, name)); + onReactionAdd (statusId, name, url) { + dispatch(addReaction(statusId, name, url)); }, onReactionRemove (statusId, name) { diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js index 1ed89ea059..6f86e2aa2c 100644 --- a/app/javascript/flavours/glitch/features/status/components/action_bar.js +++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js @@ -81,7 +81,7 @@ class ActionBar extends React.PureComponent { } handleEmojiPick = data => { - this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, '')); + this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''), data.imageUrl); } handleBookmarkClick = (e) => { diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index a33939445f..f77f4a20fb 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -293,12 +293,12 @@ class Status extends ImmutablePureComponent { } } - handleReactionAdd = (statusId, name) => { + handleReactionAdd = (statusId, name, url) => { const { dispatch } = this.props; const { signedIn } = this.context.identity; if (signedIn) { - dispatch(addReaction(statusId, name)); + dispatch(addReaction(statusId, name, url)); } else { dispatch(openModal('INTERACTION', { type: 'reaction_add', diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js index 22fdeb2841..446c991cac 100644 --- a/app/javascript/flavours/glitch/reducers/statuses.js +++ b/app/javascript/flavours/glitch/reducers/statuses.js @@ -59,11 +59,17 @@ const updateReaction = (state, id, name, updater) => state.update( const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count)); -const addReaction = (state, id, name) => updateReaction( +// The url parameter is only used when adding a new custom emoji reaction +// (one that wasn't in the reactions list before) because we don't have its +// URL yet. In all other cases, it's undefined. +const addReaction = (state, id, name, url) => updateReaction( state, id, name, - x => x.set('me', true).update('count', n => n + 1), + x => x.set('me', true) + .update('count', n => n + 1) + .update('url', old => old ? old : url) + .update('static_url', old => old ? old : url), ); const removeReaction = (state, id, name) => updateReaction( @@ -103,7 +109,7 @@ export default function statuses(state = initialState, action) { return updateReactionCount(state, action.reaction); case REACTION_ADD_REQUEST: case REACTION_REMOVE_FAIL: - return addReaction(state, action.id, action.name); + return addReaction(state, action.id, action.name, action.url); case REACTION_REMOVE_REQUEST: case REACTION_ADD_FAIL: return removeReaction(state, action.id, action.name); diff --git a/app/javascript/mastodon/actions/interactions.js b/app/javascript/mastodon/actions/interactions.js index dd1395cbd3..54592ec535 100644 --- a/app/javascript/mastodon/actions/interactions.js +++ b/app/javascript/mastodon/actions/interactions.js @@ -423,7 +423,7 @@ export function unpinFail(status, error) { }; }; -export const addReaction = (statusId, name) => (dispatch, getState) => { +export const addReaction = (statusId, name, url) => (dispatch, getState) => { const status = getState().get('statuses').get(statusId); let alreadyAdded = false; if (status) { @@ -433,7 +433,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => { } } if (!alreadyAdded) { - dispatch(addReactionRequest(statusId, name)); + dispatch(addReactionRequest(statusId, name, url)); } api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => { @@ -445,10 +445,11 @@ export const addReaction = (statusId, name) => (dispatch, getState) => { }); }; -export const addReactionRequest = (statusId, name) => ({ +export const addReactionRequest = (statusId, name, url) => ({ type: REACTION_ADD_REQUEST, id: statusId, name, + url, }); export const addReactionSuccess = (statusId, name) => ({ diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index 556910f089..70adc04934 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -132,8 +132,8 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ } }, - onReactionAdd (statusId, name) { - dispatch(addReaction(statusId, name)); + onReactionAdd (statusId, name, url) { + dispatch(addReaction(statusId, name, url)); }, onReactionRemove (statusId, name) { diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index e262cd94fb..d22009d0ed 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -257,12 +257,12 @@ class Status extends ImmutablePureComponent { } } - handleReactionAdd = (statusId, name) => { + handleReactionAdd = (statusId, name, url) => { const { dispatch } = this.props; const { signedIn } = this.context.identity; if (signedIn) { - dispatch(addReaction(statusId, name)); + dispatch(addReaction(statusId, name, url)); } else { dispatch(openModal('INTERACTION', { type: 'reaction_add', diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index 2228906674..cb9759119a 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -57,11 +57,17 @@ const updateReaction = (state, id, name, updater) => state.update( const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count)); -const addReaction = (state, id, name) => updateReaction( +// The url parameter is only used when adding a new custom emoji reaction +// (one that wasn't in the reactions list before) because we don't have its +// URL yet. In all other cases, it's undefined. +const addReaction = (state, id, name, url) => updateReaction( state, id, name, - x => x.set('me', true).update('count', n => n + 1), + x => x.set('me', true) + .update('count', n => n + 1) + .update('url', old => old ? old : url) + .update('static_url', old => old ? old : url), ); const removeReaction = (state, id, name) => updateReaction( @@ -101,7 +107,7 @@ export default function statuses(state = initialState, action) { return updateReactionCount(state, action.reaction); case REACTION_ADD_REQUEST: case REACTION_REMOVE_FAIL: - return addReaction(state, action.id, action.name); + return addReaction(state, action.id, action.name, action.url); case REACTION_REMOVE_REQUEST: case REACTION_ADD_FAIL: return removeReaction(state, action.id, action.name); From e05874cffd20e57fda6bc56b0c714786701674cd Mon Sep 17 00:00:00 2001 From: fef Date: Sat, 3 Dec 2022 16:55:37 +0000 Subject: [PATCH 0054/1220] disable reaction button when not signed in --- .../flavours/glitch/containers/status_container.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 3edcf9c7a8..93a92c1377 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -168,7 +168,11 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ }, onReactionAdd (statusId, name, url) { - dispatch(addReaction(statusId, name, url)); + const { signedIn } = this.context.identity; + + if (signedIn) { + dispatch(addReaction(statusId, name, url)); + } }, onReactionRemove (statusId, name) { From a556d81cde6c1e9971ff7413a947b2f6e97b08c9 Mon Sep 17 00:00:00 2001 From: fef Date: Sun, 4 Dec 2022 08:47:24 +0000 Subject: [PATCH 0055/1220] also disable reaction buttons in vanilla flavour --- .../mastodon/components/status_action_bar.js | 2 +- .../mastodon/components/status_reactions.js | 11 +++++++---- .../mastodon/features/status/components/action_bar.js | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 01d64062da..6695003cb2 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -365,7 +365,7 @@ class StatusActionBar extends ImmutablePureComponent { ); - const canReact = status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; + const canReact = signedIn && status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; const reactButton = ( { const { reaction, statusId, addReaction, removeReaction } = this.props; + const { signedIn } = this.context.identity; - if (reaction.get('me')) { - removeReaction(statusId, reaction.get('name')); - } else { - addReaction(statusId, reaction.get('name')); + if (signedIn) { + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); + } } } diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index 095bccfa8a..9ab228bdec 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -259,7 +259,7 @@ class ActionBar extends React.PureComponent { } } - const canReact = status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; + const canReact = signedIn && status.get('reactions').filter(r => r.get('count') > 0 && r.get('me')).size < maxReactions; const reactButton = ( Date: Sun, 4 Dec 2022 10:52:02 +0000 Subject: [PATCH 0056/1220] serialize custom emoji reactions properly for AP Akkoma and possibly others expect the `tag` field in an EmojiReact activity to be an array, not just a single object, so it's being wrapped into one now. I'm not entirely sure whether this is the idiomatic way of doing it tbh, but it works fine. --- app/serializers/activitypub/emoji_reaction_serializer.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/serializers/activitypub/emoji_reaction_serializer.rb b/app/serializers/activitypub/emoji_reaction_serializer.rb index 50f3efa3cb..f8887f15b7 100644 --- a/app/serializers/activitypub/emoji_reaction_serializer.rb +++ b/app/serializers/activitypub/emoji_reaction_serializer.rb @@ -3,8 +3,7 @@ class ActivityPub::EmojiReactionSerializer < ActivityPub::Serializer attributes :id, :type, :actor, :content attribute :virtual_object, key: :object - - has_one :custom_emoji, key: :tag, serializer: ActivityPub::EmojiSerializer, unless: -> { object.custom_emoji.nil? } + attribute :custom_emoji, key: :tag, unless: -> { object.custom_emoji.nil? } def id [ActivityPub::TagManager.instance.uri_for(object.account), '#emoji_reactions/', object.id].join @@ -31,4 +30,10 @@ class ActivityPub::EmojiReactionSerializer < ActivityPub::Serializer end alias reaction content + + # Akkoma (and possibly others) expect `tag` to be an array, so we can't just + # use the has_one shorthand because we need to wrap it into an array manually + def custom_emoji + [ActivityPub::EmojiSerializer.new(object.custom_emoji).serializable_hash] + end end From 18e408c6af3d2f18ad5ec3ea3f4242933b76f6fa Mon Sep 17 00:00:00 2001 From: fef Date: Sun, 4 Dec 2022 12:33:47 +0000 Subject: [PATCH 0057/1220] properly disable reactions when not logged in --- .../flavours/glitch/components/status.js | 2 + .../glitch/components/status_action_bar.js | 6 ++- .../glitch/components/status_reactions.js | 14 ++++--- .../glitch/containers/status_container.js | 6 +-- .../features/status/components/action_bar.js | 8 +++- .../status/components/detailed_status.js | 2 + .../flavours/glitch/features/status/index.js | 6 --- app/javascript/mastodon/components/status.js | 3 +- .../mastodon/components/status_action_bar.js | 8 +--- .../mastodon/components/status_reactions.js | 38 +++++++++---------- .../features/status/components/action_bar.js | 8 +++- .../status/components/detailed_status.js | 4 +- .../mastodon/features/status/index.js | 6 --- 13 files changed, 56 insertions(+), 55 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 08cfbdada0..99ed644aa7 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -62,6 +62,7 @@ class Status extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -810,6 +811,7 @@ class Status extends ImmutablePureComponent { numVisible={visibleReactions} addReaction={this.props.onReactionAdd} removeReaction={this.props.onReactionRemove} + canReact={this.context.identity.signedIn} /> {!isCollapsed || !(muted || !settings.getIn(['collapsed', 'show_action_bar'])) ? ( diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js index 72912acedd..bb350ea5a2 100644 --- a/app/javascript/flavours/glitch/components/status_action_bar.js +++ b/app/javascript/flavours/glitch/components/status_action_bar.js @@ -331,7 +331,11 @@ class StatusActionBar extends ImmutablePureComponent { /> - + { + signedIn + ? + : reactButton + } {shareButton} diff --git a/app/javascript/flavours/glitch/components/status_reactions.js b/app/javascript/flavours/glitch/components/status_reactions.js index e263a64809..ff025e8d28 100644 --- a/app/javascript/flavours/glitch/components/status_reactions.js +++ b/app/javascript/flavours/glitch/components/status_reactions.js @@ -17,6 +17,7 @@ export default class StatusReactions extends ImmutablePureComponent { reactions: ImmutablePropTypes.list.isRequired, numVisible: PropTypes.number, addReaction: PropTypes.func.isRequired, + canReact: PropTypes.bool.isRequired, removeReaction: PropTypes.func.isRequired, }; @@ -56,6 +57,7 @@ export default class StatusReactions extends ImmutablePureComponent { style={{ transform: `scale(${style.scale})`, position: style.scale < 0.5 ? 'absolute' : 'static' }} addReaction={this.props.addReaction} removeReaction={this.props.removeReaction} + canReact={this.props.canReact} /> ))}
@@ -73,6 +75,7 @@ class Reaction extends ImmutablePureComponent { reaction: ImmutablePropTypes.map.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, + canReact: PropTypes.bool.isRequired, style: PropTypes.object, }; @@ -83,12 +86,10 @@ class Reaction extends ImmutablePureComponent { handleClick = () => { const { reaction, statusId, addReaction, removeReaction } = this.props; - if (!reaction.get('extern')) { - if (reaction.get('me')) { - removeReaction(statusId, reaction.get('name')); - } else { - addReaction(statusId, reaction.get('name')); - } + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); } } @@ -105,6 +106,7 @@ class Reaction extends ImmutablePureComponent { onClick={this.handleClick} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} + disabled={!this.props.canReact} style={this.props.style} > diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 93a92c1377..3edcf9c7a8 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -168,11 +168,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ }, onReactionAdd (statusId, name, url) { - const { signedIn } = this.context.identity; - - if (signedIn) { - dispatch(addReaction(statusId, name, url)); - } + dispatch(addReaction(statusId, name, url)); }, onReactionRemove (statusId, name) { diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js index 6f86e2aa2c..39d32178ae 100644 --- a/app/javascript/flavours/glitch/features/status/components/action_bar.js +++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js @@ -236,7 +236,13 @@ class ActionBar extends React.PureComponent {
-
+
+ { + signedIn + ? + : reactButton + } +
{shareButton}
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 a3d6150b7b..87eb463d3b 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js @@ -27,6 +27,7 @@ class DetailedStatus extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -327,6 +328,7 @@ class DetailedStatus extends ImmutablePureComponent { reactions={status.get('reactions')} addReaction={this.props.onReactionAdd} removeReaction={this.props.onReactionRemove} + canReact={this.context.identity.signedIn} />
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index f77f4a20fb..50f6274403 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -299,12 +299,6 @@ class Status extends ImmutablePureComponent { if (signedIn) { dispatch(addReaction(statusId, name, url)); - } else { - dispatch(openModal('INTERACTION', { - type: 'reaction_add', - accountId: status.getIn(['account', 'id']), - url: status.get('url'), - })); } } diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 284c5dbd78..367131efe5 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -65,6 +65,7 @@ class Status extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -547,7 +548,7 @@ class Status extends ImmutablePureComponent { numVisible={visibleReactions} addReaction={this.props.onReactionAdd} removeReaction={this.props.onReactionRemove} - emojiMap={this.props.emojiMap} + canReact={this.context.identity.signedIn} /> diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 6695003cb2..b2ad54cb58 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -131,13 +131,7 @@ class StatusActionBar extends ImmutablePureComponent { } handleEmojiPick = data => { - const { signedIn } = this.context.identity; - - if (signedIn) { - this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, '')); - } else { - this.props.onInteractionModal('favourite', this.props.status); - } + this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''), data.imageUrl); } handleReblogClick = e => { diff --git a/app/javascript/mastodon/components/status_reactions.js b/app/javascript/mastodon/components/status_reactions.js index c16b7e8260..ff025e8d28 100644 --- a/app/javascript/mastodon/components/status_reactions.js +++ b/app/javascript/mastodon/components/status_reactions.js @@ -17,8 +17,8 @@ export default class StatusReactions extends ImmutablePureComponent { reactions: ImmutablePropTypes.list.isRequired, numVisible: PropTypes.number, addReaction: PropTypes.func.isRequired, + canReact: PropTypes.bool.isRequired, removeReaction: PropTypes.func.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, }; willEnter() { @@ -57,7 +57,7 @@ export default class StatusReactions extends ImmutablePureComponent { style={{ transform: `scale(${style.scale})`, position: style.scale < 0.5 ? 'absolute' : 'static' }} addReaction={this.props.addReaction} removeReaction={this.props.removeReaction} - emojiMap={this.props.emojiMap} + canReact={this.props.canReact} /> ))}
@@ -75,7 +75,7 @@ class Reaction extends ImmutablePureComponent { reaction: ImmutablePropTypes.map.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, + canReact: PropTypes.bool.isRequired, style: PropTypes.object, }; @@ -85,14 +85,11 @@ class Reaction extends ImmutablePureComponent { handleClick = () => { const { reaction, statusId, addReaction, removeReaction } = this.props; - const { signedIn } = this.context.identity; - if (signedIn) { - if (reaction.get('me')) { - removeReaction(statusId, reaction.get('name')); - } else { - addReaction(statusId, reaction.get('name')); - } + if (reaction.get('me')) { + removeReaction(statusId, reaction.get('name')); + } else { + addReaction(statusId, reaction.get('name')); } } @@ -109,10 +106,16 @@ class Reaction extends ImmutablePureComponent { onClick={this.handleClick} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} + disabled={!this.props.canReact} style={this.props.style} > - + @@ -127,12 +130,13 @@ class Emoji extends React.PureComponent { static propTypes = { emoji: PropTypes.string.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, hovered: PropTypes.bool.isRequired, + url: PropTypes.string, + staticUrl: PropTypes.string, }; render() { - const { emoji, emojiMap, hovered } = this.props; + const { emoji, hovered, url, staticUrl } = this.props; if (unicodeMapping[emoji]) { const { filename, shortCode } = unicodeMapping[this.props.emoji]; @@ -147,10 +151,8 @@ class Emoji extends React.PureComponent { src={`${assetHost}/emoji/${filename}.svg`} /> ); - } else if (emojiMap.get(emoji)) { - const filename = (autoPlayGif || hovered) - ? emojiMap.getIn([emoji, 'url']) - : emojiMap.getIn([emoji, 'static_url']); + } else { + const filename = (autoPlayGif || hovered) ? url : staticUrl; const shortCode = `:${emoji}:`; return ( @@ -162,8 +164,6 @@ class Emoji extends React.PureComponent { src={filename} /> ); - } else { - return null; } } diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index 9ab228bdec..91a8a7793e 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -299,7 +299,13 @@ class ActionBar extends React.PureComponent {
-
+
+ { + canReact + ? + : reactButton + } +
{shareButton} diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index f34b66110f..acb9fff572 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -31,6 +31,7 @@ class DetailedStatus extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -51,7 +52,6 @@ class DetailedStatus extends ImmutablePureComponent { onToggleMediaVisibility: PropTypes.func, onReactionAdd: PropTypes.func.isRequired, onReactionRemove: PropTypes.func.isRequired, - emojiMap: ImmutablePropTypes.map.isRequired, }; state = { @@ -284,7 +284,7 @@ class DetailedStatus extends ImmutablePureComponent { reactions={status.get('reactions')} addReaction={this.props.onReactionAdd} removeReaction={this.props.onReactionRemove} - emojiMap={this.props.emojiMap} + canReact={this.context.identity.signedIn} />
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index d22009d0ed..a3a0f0af77 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -263,12 +263,6 @@ class Status extends ImmutablePureComponent { if (signedIn) { dispatch(addReaction(statusId, name, url)); - } else { - dispatch(openModal('INTERACTION', { - type: 'reaction_add', - accountId: status.getIn(['account', 'id']), - url: status.get('url'), - })); } } From e0637a3c1dcd28979d2c0e0911efe09a01d1cfec Mon Sep 17 00:00:00 2001 From: fef Date: Wed, 7 Dec 2022 12:19:36 +0000 Subject: [PATCH 0058/1220] support reacting with foreign custom emojis --- app/models/status_reaction.rb | 7 +------ app/serializers/rest/reaction_serializer.rb | 16 +++++++++++----- app/validators/status_reaction_validator.rb | 4 ---- config/routes.rb | 6 ++++-- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/models/status_reaction.rb b/app/models/status_reaction.rb index 4793ff9aa3..0833a7eafd 100644 --- a/app/models/status_reaction.rb +++ b/app/models/status_reaction.rb @@ -24,11 +24,6 @@ class StatusReaction < ApplicationRecord private def set_custom_emoji - return if name.blank? - self.custom_emoji = if account.local? - CustomEmoji.local.find_by(disabled: false, shortcode: name) - else - CustomEmoji.find_by(shortcode: name, domain: account.domain) - end + self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank? end end diff --git a/app/serializers/rest/reaction_serializer.rb b/app/serializers/rest/reaction_serializer.rb index 007d3b5015..b0f0732bf7 100644 --- a/app/serializers/rest/reaction_serializer.rb +++ b/app/serializers/rest/reaction_serializer.rb @@ -3,7 +3,7 @@ class REST::ReactionSerializer < ActiveModel::Serializer include RoutingHelper - attributes :name, :count, :extern + attributes :name, :count attribute :me, if: :current_user? attribute :url, if: :custom_emoji? @@ -21,11 +21,11 @@ class REST::ReactionSerializer < ActiveModel::Serializer object.custom_emoji.present? end - def extern - if custom_emoji? - object.custom_emoji.domain.present? + def name + if extern? + [object.name, '@', object.custom_emoji.domain].join else - false + object.name end end @@ -36,4 +36,10 @@ class REST::ReactionSerializer < ActiveModel::Serializer def static_url full_asset_url(object.custom_emoji.image.url(:static)) end + + private + + def extern? + custom_emoji? && object.custom_emoji.domain.present? + end end diff --git a/app/validators/status_reaction_validator.rb b/app/validators/status_reaction_validator.rb index a60271dd84..d85d48e4c7 100644 --- a/app/validators/status_reaction_validator.rb +++ b/app/validators/status_reaction_validator.rb @@ -18,10 +18,6 @@ class StatusReactionValidator < ActiveModel::Validator SUPPORTED_EMOJIS.include?(name) end - def new_reaction?(reaction) - !reaction.status.status_reactions.where(name: reaction.name).exists? - end - def limit_reached?(reaction) reaction.status.status_reactions.where(status: reaction.status, account: reaction.account).count >= LIMIT end diff --git a/config/routes.rb b/config/routes.rb index 2eeff8fcbb..87634a7f54 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -442,8 +442,10 @@ Rails.application.routes.draw do resource :favourite, only: :create post :unfavourite, to: 'favourites#destroy' - post '/react/:id', to: 'reactions#create' - post '/unreact/:id', to: 'reactions#destroy' + # foreign custom emojis are encoded as shortcode@domain.tld + # the constraint prevents rails from interpreting the ".tld" as a filename extension + post '/react/:id', to: 'reactions#create', constraints: { id: /[^\/]+/ } + post '/unreact/:id', to: 'reactions#destroy', constraints: { id: /[^\/]+/ } resource :bookmark, only: :create post :unbookmark, to: 'bookmarks#destroy' From 4b6e75512f444695c33302de01759491f1150861 Mon Sep 17 00:00:00 2001 From: fef Date: Wed, 7 Dec 2022 12:47:03 +0000 Subject: [PATCH 0059/1220] delete reaction notifications when deleting status --- app/models/status_reaction.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/status_reaction.rb b/app/models/status_reaction.rb index 0833a7eafd..00be17e231 100644 --- a/app/models/status_reaction.rb +++ b/app/models/status_reaction.rb @@ -16,6 +16,8 @@ class StatusReaction < ApplicationRecord belongs_to :status, inverse_of: :status_reactions belongs_to :custom_emoji, optional: true + has_one :notification, as: :activity, dependent: :destroy + validates :name, presence: true validates_with StatusReactionValidator From fd2a11607160b54d60c82553efb39f89da96d936 Mon Sep 17 00:00:00 2001 From: fef Date: Wed, 7 Dec 2022 21:52:53 +0100 Subject: [PATCH 0060/1220] fix schema after rebase --- db/schema.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/db/schema.rb b/db/schema.rb index 7462bf2c7d..bb685a9dbd 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -897,6 +897,19 @@ ActiveRecord::Schema.define(version: 2022_12_06_114142) do t.index ["status_id"], name: "index_status_pins_on_status_id" end + create_table "status_reactions", force: :cascade do |t| + t.bigint "account_id", null: false + t.bigint "status_id", null: false + t.string "name", default: "", null: false + t.bigint "custom_emoji_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["account_id", "status_id", "name"], name: "index_status_reactions_on_account_id_and_status_id", unique: true + t.index ["account_id"], name: "index_status_reactions_on_account_id" + t.index ["custom_emoji_id"], name: "index_status_reactions_on_custom_emoji_id" + t.index ["status_id"], name: "index_status_reactions_on_status_id" + end + create_table "status_stats", force: :cascade do |t| t.bigint "status_id", null: false t.bigint "replies_count", default: 0, null: false @@ -1211,6 +1224,9 @@ ActiveRecord::Schema.define(version: 2022_12_06_114142) do add_foreign_key "status_edits", "statuses", on_delete: :cascade add_foreign_key "status_pins", "accounts", name: "fk_d4cb435b62", on_delete: :cascade add_foreign_key "status_pins", "statuses", on_delete: :cascade + add_foreign_key "status_reactions", "accounts", on_delete: :cascade + add_foreign_key "status_reactions", "custom_emojis", on_delete: :cascade + add_foreign_key "status_reactions", "statuses", on_delete: :cascade add_foreign_key "status_stats", "statuses", on_delete: :cascade add_foreign_key "status_trends", "accounts", on_delete: :cascade add_foreign_key "status_trends", "statuses", on_delete: :cascade From c739d89b0c903e906dd7a4d06b46b5a1d575db86 Mon Sep 17 00:00:00 2001 From: fef Date: Thu, 8 Dec 2022 09:48:55 +0000 Subject: [PATCH 0061/1220] fix status action bar after upstream changes --- app/javascript/mastodon/components/status_action_bar.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index b2ad54cb58..45300ddea8 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -375,7 +375,11 @@ class StatusActionBar extends ImmutablePureComponent { - + { + signedIn + ? + : reactButton + } {shareButton} From 6cad7718ebd3bfded3500f09659308ab048b9c0f Mon Sep 17 00:00:00 2001 From: fef Date: Sun, 11 Dec 2022 13:26:23 +0000 Subject: [PATCH 0062/1220] fix 404 when reacting with Keycap Number Sign The Unicode sequence for this emoji starts with an ASCII # character, which the browser's URI parser truncates before sending the request to the backend. --- app/javascript/flavours/glitch/actions/interactions.js | 6 ++++-- app/javascript/mastodon/actions/interactions.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/interactions.js b/app/javascript/flavours/glitch/actions/interactions.js index 2d483de818..a7eb7a78dd 100644 --- a/app/javascript/flavours/glitch/actions/interactions.js +++ b/app/javascript/flavours/glitch/actions/interactions.js @@ -416,7 +416,9 @@ export const addReaction = (statusId, name, url) => (dispatch, getState) => { dispatch(addReactionRequest(statusId, name, url)); } - api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => { + // encodeURIComponent is required for the Keycap Number Sign emoji, see: + // + api(getState).post(`/api/v1/statuses/${statusId}/react/${encodeURIComponent(name)}`).then(() => { dispatch(addReactionSuccess(statusId, name)); }).catch(err => { if (!alreadyAdded) { @@ -448,7 +450,7 @@ export const addReactionFail = (statusId, name, error) => ({ export const removeReaction = (statusId, name) => (dispatch, getState) => { dispatch(removeReactionRequest(statusId, name)); - api(getState).post(`/api/v1/statuses/${statusId}/unreact/${name}`).then(() => { + api(getState).post(`/api/v1/statuses/${statusId}/unreact/${encodeURIComponent(name)}`).then(() => { dispatch(removeReactionSuccess(statusId, name)); }).catch(err => { dispatch(removeReactionFail(statusId, name, err)); diff --git a/app/javascript/mastodon/actions/interactions.js b/app/javascript/mastodon/actions/interactions.js index 54592ec535..7433870250 100644 --- a/app/javascript/mastodon/actions/interactions.js +++ b/app/javascript/mastodon/actions/interactions.js @@ -436,7 +436,9 @@ export const addReaction = (statusId, name, url) => (dispatch, getState) => { dispatch(addReactionRequest(statusId, name, url)); } - api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => { + // encodeURIComponent is required for the Keycap Number Sign emoji, see: + // + api(getState).post(`/api/v1/statuses/${statusId}/react/${encodeURIComponent(name)}`).then(() => { dispatch(addReactionSuccess(statusId, name)); }).catch(err => { if (!alreadyAdded) { @@ -468,7 +470,7 @@ export const addReactionFail = (statusId, name, error) => ({ export const removeReaction = (statusId, name) => (dispatch, getState) => { dispatch(removeReactionRequest(statusId, name)); - api(getState).post(`/api/v1/statuses/${statusId}/unreact/${name}`).then(() => { + api(getState).post(`/api/v1/statuses/${statusId}/unreact/${encodeURIComponent(name)}`).then(() => { dispatch(removeReactionSuccess(statusId, name)); }).catch(err => { dispatch(removeReactionFail(statusId, name, err)); From c27dcb40e15cf662e13285a3ffb7a4ea686760dd Mon Sep 17 00:00:00 2001 From: fef Date: Thu, 15 Dec 2022 15:27:54 +0000 Subject: [PATCH 0063/1220] bypass reaction limit for foreign accounts --- app/validators/status_reaction_validator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/validators/status_reaction_validator.rb b/app/validators/status_reaction_validator.rb index d85d48e4c7..8c623c823d 100644 --- a/app/validators/status_reaction_validator.rb +++ b/app/validators/status_reaction_validator.rb @@ -9,7 +9,7 @@ class StatusReactionValidator < ActiveModel::Validator return if reaction.name.blank? reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) if reaction.custom_emoji_id.blank? && !unicode_emoji?(reaction.name) - reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if limit_reached?(reaction) + reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if reaction.account.local? && limit_reached?(reaction) end private From bf139fefa1d6fe33971c7d49e3f662ee55f544df Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Sun, 18 Dec 2022 04:23:42 +0100 Subject: [PATCH 0064/1220] Fix status reactions preventing an on_cascade delete --- db/migrate/20221124114030_create_status_reactions.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/db/migrate/20221124114030_create_status_reactions.rb b/db/migrate/20221124114030_create_status_reactions.rb index bbf1f3376a..5f010c4a0b 100644 --- a/db/migrate/20221124114030_create_status_reactions.rb +++ b/db/migrate/20221124114030_create_status_reactions.rb @@ -1,10 +1,10 @@ class CreateStatusReactions < ActiveRecord::Migration[6.1] def change create_table :status_reactions do |t| - t.references :account, null: false, foreign_key: true - t.references :status, null: false, foreign_key: true + t.references :account, null: false, foreign_key: { on_delete: :cascade } + t.references :status, null: false, foreign_key: { on_delete: :cascade } t.string :name, null: false, default: '' - t.references :custom_emoji, null: true, foreign_key: true + t.references :custom_emoji, null: true, foreign_key: { on_delete: :cascade } t.timestamps end From 598f3b9b31877c917655cbe2d06c81057952ab81 Mon Sep 17 00:00:00 2001 From: fef Date: Tue, 20 Dec 2022 17:19:56 +0000 Subject: [PATCH 0065/1220] move emoji reaction strings to locales-glitch --- config/locales-glitch/de.yml | 7 +++++++ config/locales-glitch/en.yml | 5 +++++ config/locales-glitch/fr.yml | 6 ++++++ config/locales-glitch/simple_form.de.yml | 6 ++++++ config/locales-glitch/simple_form.en.yml | 1 + config/locales-glitch/simple_form.fr.yml | 6 ++++++ config/locales/de.yml | 4 ---- config/locales/en.yml | 4 ---- config/locales/fr.yml | 4 ---- config/locales/simple_form.de.yml | 1 - config/locales/simple_form.en.yml | 1 - config/locales/simple_form.fr.yml | 1 - 12 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 config/locales-glitch/de.yml create mode 100644 config/locales-glitch/fr.yml create mode 100644 config/locales-glitch/simple_form.de.yml create mode 100644 config/locales-glitch/simple_form.fr.yml diff --git a/config/locales-glitch/de.yml b/config/locales-glitch/de.yml new file mode 100644 index 0000000000..77ac5037f5 --- /dev/null +++ b/config/locales-glitch/de.yml @@ -0,0 +1,7 @@ +--- +de: + notification_mailer: + reaction: + body: "%{name} hat auf deinen Beitrag reagiert:" + subject: "%{name} hat auf deinen Beitrag reagiert" + title: Neue Reaktion diff --git a/config/locales-glitch/en.yml b/config/locales-glitch/en.yml index 23c566153e..6f2d5f18ec 100644 --- a/config/locales-glitch/en.yml +++ b/config/locales-glitch/en.yml @@ -39,3 +39,8 @@ en: use_this: Use this settings: flavours: Flavours + notification_mailer: + reaction: + body: "%{name} reacted to your post:" + subject: "%{name} reacted to your post" + title: New reaction diff --git a/config/locales-glitch/fr.yml b/config/locales-glitch/fr.yml new file mode 100644 index 0000000000..51c50d7dbd --- /dev/null +++ b/config/locales-glitch/fr.yml @@ -0,0 +1,6 @@ +fr: + notification_mailer: + reaction: + body: "%{name} a réagi·e à votre message:" + subject: "%{name} a réagi·e à votre message" + title: Nouvelle réaction diff --git a/config/locales-glitch/simple_form.de.yml b/config/locales-glitch/simple_form.de.yml new file mode 100644 index 0000000000..68061f5a58 --- /dev/null +++ b/config/locales-glitch/simple_form.de.yml @@ -0,0 +1,6 @@ +--- +de: + simple_form: + labels: + default: + setting_visible_reactions: Anzahl der sichtbaren Emoji-Reaktionen diff --git a/config/locales-glitch/simple_form.en.yml b/config/locales-glitch/simple_form.en.yml index c6e7d54ca0..e7c0d38c4a 100644 --- a/config/locales-glitch/simple_form.en.yml +++ b/config/locales-glitch/simple_form.en.yml @@ -21,6 +21,7 @@ en: setting_hide_followers_count: Hide your followers count setting_skin: Skin setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + setting_visible_reactions: Number of visible emoji reactions notification_emails: trending_tag: New trending tag requires review trending_link: New trending link requires review diff --git a/config/locales-glitch/simple_form.fr.yml b/config/locales-glitch/simple_form.fr.yml new file mode 100644 index 0000000000..c69548ca12 --- /dev/null +++ b/config/locales-glitch/simple_form.fr.yml @@ -0,0 +1,6 @@ +--- +fr: + simple_form: + labels: + default: + setting_visible_reactions: Nombre de réactions emoji visibles diff --git a/config/locales/de.yml b/config/locales/de.yml index e8b7261f4b..8a12a30470 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1301,10 +1301,6 @@ de: title: Neue Erwähnung poll: subject: Eine Umfrage von %{name} ist beendet - reaction: - body: "%{name} hat auf deinen Beitrag reagiert:" - subject: "%{name} hat auf deinen Beitrag reagiert" - title: Neue Reaktion reblog: body: 'Deinen Beitrag hat %{name} geteilt:' subject: "%{name} hat deinen Beitrag geteilt" diff --git a/config/locales/en.yml b/config/locales/en.yml index f3bf0b6463..075ce2136f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1308,10 +1308,6 @@ en: title: New mention poll: subject: A poll by %{name} has ended - reaction: - body: "%{name} reacted to your post:" - subject: "%{name} reacted to your post" - title: New reaction reblog: body: 'Your post was boosted by %{name}:' subject: "%{name} boosted your post" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index e1deaab221..b24603db98 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1301,10 +1301,6 @@ fr: title: Nouvelle mention poll: subject: Un sondage de %{name} est terminé - reaction: - body: "%{name} a réagi·e à votre message:" - subject: "%{name} a réagi·e à votre message" - title: Nouvelle réaction reblog: body: 'Votre message été partagé par %{name} :' subject: "%{name} a partagé votre message" diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index e9356c6eae..f12211c94f 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -213,7 +213,6 @@ de: setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemandem entfolgt wird setting_use_blurhash: Farbverlauf für verborgene Medien anzeigen setting_use_pending_items: Langsamer Modus - setting_visible_reactions: Anzahl der sichtbaren Emoji-Reaktionen severity: Schweregrad sign_in_token_attempt: Sicherheitscode title: Titel diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 880d9190cd..6edf7b4e9e 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -213,7 +213,6 @@ en: setting_unfollow_modal: Show confirmation dialog before unfollowing someone setting_use_blurhash: Show colorful gradients for hidden media setting_use_pending_items: Slow mode - setting_visible_reactions: Number of visible emoji reactions severity: Severity sign_in_token_attempt: Security code title: Title diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index b3f56d60b0..73fb4f3347 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -213,7 +213,6 @@ fr: setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte setting_use_blurhash: Afficher des dégradés colorés pour les médias cachés setting_use_pending_items: Mode lent - setting_visible_reactions: Nombre de réactions emoji visibles severity: Sévérité sign_in_token_attempt: Code de sécurité title: Nom From dac312a11a481cab1d61a2159b39ca403d6708e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:22:22 +0900 Subject: [PATCH 0066/1220] 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> --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 00e8dcfd92..eb262fd96e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.1.0) + fog-core (2.3.0) builder - excon (~> 0.58) - formatador (~> 0.2) + excon (~> 0.71) + formatador (>= 0.2, < 2.0) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.10) - fog-core (>= 1.45, <= 2.1.0) + fog-openstack (0.3.2) + fog-core (~> 2.1) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (0.3.0) + formatador (1.1.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) From a0af356df65f659e36b5b833e16011ff49cdc6f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:58:01 +0900 Subject: [PATCH 0067/1220] 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> --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eb262fd96e..00e8dcfd92 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.3.0) + fog-core (2.1.0) builder - excon (~> 0.71) - formatador (>= 0.2, < 2.0) + excon (~> 0.58) + formatador (~> 0.2) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.2) - fog-core (~> 2.1) + fog-openstack (0.3.10) + fog-core (>= 1.45, <= 2.1.0) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (1.1.0) + formatador (0.3.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) From fbe2c95ff1a7b36fa0b73b8ff75a02590006eab1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 12:06:44 +0900 Subject: [PATCH 0068/1220] 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> --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 00e8dcfd92..eb262fd96e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.1.0) + fog-core (2.3.0) builder - excon (~> 0.58) - formatador (~> 0.2) + excon (~> 0.71) + formatador (>= 0.2, < 2.0) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.10) - fog-core (>= 1.45, <= 2.1.0) + fog-openstack (0.3.2) + fog-core (~> 2.1) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (0.3.0) + formatador (1.1.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) From c4a429ed47e85a6bbf0d470a41cc2f64cf120c19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Dec 2022 12:40:50 +0900 Subject: [PATCH 0069/1220] 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> --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eb262fd96e..00e8dcfd92 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,19 +259,19 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - fog-core (2.3.0) + fog-core (2.1.0) builder - excon (~> 0.71) - formatador (>= 0.2, < 2.0) + excon (~> 0.58) + formatador (~> 0.2) mime-types fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.2) - fog-core (~> 2.1) + fog-openstack (0.3.10) + fog-core (>= 1.45, <= 2.1.0) fog-json (>= 1.0) ipaddress (>= 0.8) - formatador (1.1.0) + formatador (0.3.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) From 18bcabf26a744703660ae403014209fa78dd6c56 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 21 Dec 2022 22:13:04 +0100 Subject: [PATCH 0070/1220] Change i18n-tasks config to consider glitch-soc translation files (#2027) * Change i18n-tasks config to consider glitch-soc translation files * Normalize locales-glitch YML files * Consider upstream Rails translations as external * Add simple_form.glitch_only to ignore_unused * Remove unused keybase-related strings --- config/i18n-tasks.yml | 12 ++++++++---- config/locales-glitch/cs.yml | 9 +++------ config/locales-glitch/en.yml | 9 +++------ config/locales-glitch/es.yml | 9 +++------ config/locales-glitch/ja.yml | 9 +++------ config/locales-glitch/simple_form.cs.yml | 2 +- config/locales-glitch/simple_form.en.yml | 2 +- config/locales-glitch/simple_form.ko.yml | 2 +- config/locales-glitch/simple_form.zh-CN.yml | 2 +- config/locales-glitch/zh-CN.yml | 9 +++------ 10 files changed, 27 insertions(+), 38 deletions(-) diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 8bed346383..3f3f6f2486 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -4,12 +4,16 @@ base_locale: en data: read: - - config/locales/%{locale}.yml - - config/locales/**/*.%{locale}.yml + - config/locales-glitch/%{locale}.yml + - config/locales-glitch/*.%{locale}.yml write: - - ['{devise, simple_form, doorkeeper}.*', 'config/locales/\1.%{locale}.yml'] + - ['{devise, simple_form, doorkeeper}.*', 'config/locales-glitch/\1.%{locale}.yml'] + - config/locales-glitch/%{locale}.yml + + external: - config/locales/%{locale}.yml + - config/locales/**/*.%{locale}.yml yaml: write: @@ -50,7 +54,7 @@ ignore_unused: - 'activerecord.errors.*' - '{devise,pagination,doorkeeper}.*' - '{date,datetime,time,number}.*' - - 'simple_form.{yes,no,recommended,not_recommended}' + - 'simple_form.{yes,no,recommended,not_recommended,glitch_only}' - 'simple_form.{placeholders,hints,labels}.*' - 'simple_form.{error_notification,required}.:' - 'errors.messages.*' diff --git a/config/locales-glitch/cs.yml b/config/locales-glitch/cs.yml index 08c56ef3e6..940df937b5 100644 --- a/config/locales-glitch/cs.yml +++ b/config/locales-glitch/cs.yml @@ -8,20 +8,17 @@ cs: captcha_enabled: desc_html: Tato funkce používá externí skripty služby hCaptcha, což může být problém z hlediska bezpečí a ochrany dat. Také to může některým (hlavně postiženým) lidem registrační proces výrazně zkomplikovat. Z tohoto důvodu prosím raději zvažte jiné možnosti, jako je schvalování registrací nebo registrace pouze pro zvané.
Uživatelům pozvaným skrze omezenou pozvánku se CAPTCHA nezobrazí. title: Vyžadovat po nových uživatelích opsání textu z obrázku (CAPTCHA) - enable_keybase: - desc_html: Uživatelé budou moci potvrdit svou identitu pomocí Keybase - title: Zapnout potvrzování pomocí Keybase flavour_and_skin: title: Rozhraní a styl + hide_followers_count: + desc_html: Nezobrazovat na uživatelských profilech počet sledujících + title: Schovat počet sledujících other: preamble: Různá nastavení glitch-soc, která se nevešla do jiných kategorií. title: Jiné outgoing_spoilers: desc_html: Při federování příspěvků se přidá toto varování o obsahu příspěvkům, které žádné nemají. To může být užitečné, pokud je váš server zaměřen na specifický obsah, pro který by jiné servery mohly varování o obsahu vyžadovat. Připojená média budou označena jako citlivá. title: Varování o obsahu pro odesílané příspěvky - hide_followers_count: - desc_html: Nezobrazovat na uživatelských profilech počet sledujících - title: Schovat počet sledujících show_reblogs_in_public_timelines: desc_html: Veřejné boosty veřejných příspěvků se zobrazí na místní a federované časové ose. title: Zobrazovat ve veřejných časových osách boosty diff --git a/config/locales-glitch/en.yml b/config/locales-glitch/en.yml index 23c566153e..490069f208 100644 --- a/config/locales-glitch/en.yml +++ b/config/locales-glitch/en.yml @@ -8,20 +8,17 @@ en: captcha_enabled: desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA title: Require new users to solve a CAPTCHA to confirm their account - enable_keybase: - desc_html: Allow your users to prove their identity via keybase - title: Enable keybase integration flavour_and_skin: title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count other: preamble: Various glitch-soc settings not fitting in other categories. title: Other outgoing_spoilers: desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. title: Content warning for outgoing toots - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count show_reblogs_in_public_timelines: desc_html: Show public boosts of public toots in local and public timelines. title: Show boosts in public timelines diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index ad942a0c08..d842deb673 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -2,15 +2,12 @@ es: admin: settings: - enable_keybase: - desc_html: Permite a tus usuarixs comprobar su identidad por medio de keybase - title: Habilitar la integración con keybase - outgoing_spoilers: - desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. - title: Advertencia de contenido para los toots salientes hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs + outgoing_spoilers: + desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. + title: Advertencia de contenido para los toots salientes show_reblogs_in_public_timelines: desc_html: Mostrar retoots públicos en las línea de tiempo local y pública. title: Mostrar retoots en líneas de tiempo públicas diff --git a/config/locales-glitch/ja.yml b/config/locales-glitch/ja.yml index 3ecb46ccdc..54ebfaeca6 100644 --- a/config/locales-glitch/ja.yml +++ b/config/locales-glitch/ja.yml @@ -2,15 +2,12 @@ ja: admin: settings: - enable_keybase: - desc_html: Keybaseにより身元の証明が可能となります - title: Keybase統合を有効にする - outgoing_spoilers: - desc_html: トゥートが連合される際、閲覧注意としてマークされていないトゥートにこの警告が追加されます。これはあなたのインスタンスが他のインスタンスに警告をして欲しいとされる投稿に特化している場合に便利です。 メディアは閲覧注意にマークされます。 - title: 発信するトゥートへの警告 hide_followers_count: desc_html: プロフィールページのフォロワー数を見られないようにします title: フォロワー数を隠す + outgoing_spoilers: + desc_html: トゥートが連合される際、閲覧注意としてマークされていないトゥートにこの警告が追加されます。これはあなたのインスタンスが他のインスタンスに警告をして欲しいとされる投稿に特化している場合に便利です。 メディアは閲覧注意にマークされます。 + title: 発信するトゥートへの警告 show_reblogs_in_public_timelines: desc_html: ローカルタイムラインと連合タイムラインに公開投稿のブーストを表示します title: 公開タイムラインにブーストを表示 diff --git a/config/locales-glitch/simple_form.cs.yml b/config/locales-glitch/simple_form.cs.yml index f655fed9f5..8797c03eb9 100644 --- a/config/locales-glitch/simple_form.cs.yml +++ b/config/locales-glitch/simple_form.cs.yml @@ -22,6 +22,6 @@ cs: setting_skin: Styl setting_system_emoji_font: Použít výchozí emoji systému (pouze pro rozhraní Glitch) notification_emails: - trending_tag: Nový populární hashtag vyžaduje schválení trending_link: Nový populární odkaz vyžaduje schválení trending_status: Nový populární příspěvek vyžaduje schválení + trending_tag: Nový populární hashtag vyžaduje schválení diff --git a/config/locales-glitch/simple_form.en.yml b/config/locales-glitch/simple_form.en.yml index c6e7d54ca0..6930c09a63 100644 --- a/config/locales-glitch/simple_form.en.yml +++ b/config/locales-glitch/simple_form.en.yml @@ -22,6 +22,6 @@ en: setting_skin: Skin setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) notification_emails: - trending_tag: New trending tag requires review trending_link: New trending link requires review trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ko.yml b/config/locales-glitch/simple_form.ko.yml index f5575ed4c5..193c85513a 100644 --- a/config/locales-glitch/simple_form.ko.yml +++ b/config/locales-glitch/simple_form.ko.yml @@ -19,6 +19,6 @@ ko: setting_skin: 스킨 setting_system_emoji_font: 에모지에 시스템 기본 폰트 적용하기 (글리치 풍미에만 적용됨) notification_emails: - trending_tag: 새로 유행중인 해시태그에 대한 리뷰가 필요할 때 trending_link: 새로 유행중인 링크에 대한 리뷰가 필요할 때 trending_status: 새로 유행중인 게시물에 대한 리뷰가 필요할 때 + trending_tag: 새로 유행중인 해시태그에 대한 리뷰가 필요할 때 diff --git a/config/locales-glitch/simple_form.zh-CN.yml b/config/locales-glitch/simple_form.zh-CN.yml index a82617fdbf..1c72ba784e 100644 --- a/config/locales-glitch/simple_form.zh-CN.yml +++ b/config/locales-glitch/simple_form.zh-CN.yml @@ -17,4 +17,4 @@ zh-CN: setting_favourite_modal: 在喜欢嘟文前询问我 (仅限于 Glitch 风味) setting_hide_followers_count: 隐藏你的关注者人数 setting_skin: 皮肤 - setting_system_emoji_font: 表情符号使用系统默认字体 (仅限于 Glitch 风味) \ No newline at end of file + setting_system_emoji_font: 表情符号使用系统默认字体 (仅限于 Glitch 风味) diff --git a/config/locales-glitch/zh-CN.yml b/config/locales-glitch/zh-CN.yml index 37a8307e8e..40a09c1c9d 100644 --- a/config/locales-glitch/zh-CN.yml +++ b/config/locales-glitch/zh-CN.yml @@ -2,15 +2,12 @@ zh-CN: admin: settings: - enable_keybase: - desc_html: 允许你的用户使用 Keybase 证明身份 - title: 启用 Keybase 集成 - outgoing_spoilers: - desc_html: 在联邦化嘟文的时候,将这个内容警告添加到没有内容警告的嘟文中。如果你的服务器专用于其他服务器可能希望有内容警告的内容,它会很有用。媒体也将被标记为敏感。 - title: 对外嘟文的内容警告 hide_followers_count: desc_html: 不要在用户资料中显示关注者人数 title: 隐藏关注者人数 + outgoing_spoilers: + desc_html: 在联邦化嘟文的时候,将这个内容警告添加到没有内容警告的嘟文中。如果你的服务器专用于其他服务器可能希望有内容警告的内容,它会很有用。媒体也将被标记为敏感。 + title: 对外嘟文的内容警告 show_reblogs_in_public_timelines: desc_html: 在本地和跨站时间线中显示公开嘟文的公开转嘟。 title: 在公共时间线中显示转嘟 From a5e446a4a0bf567e2c293cb68f84ca141f527a21 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 21 Dec 2022 22:13:14 +0100 Subject: [PATCH 0071/1220] Change locales file generation to use JSON sources (#2028) * Change locales file generation to use JSON sources Instead of inheriting in JS files, set locale inheritance in the theme's YML file, and inherit in the generated locale file, rather than the source file. * Convert glitch-soc JS translation files to JSON Obtained running the following: ```sh sed -i -z "s/import inherited from '.*';\s*\nconst messages = //" *.js sed -i "s/\s*\/\/.*//" *.js sed -i -z "s/;\s*export default .*/\n/" *.js for i in *.js; do json5 $i | json_pp > ${i}on; done ``` * Change `yarn manage:translations` to exclude any translation already defined upstream * Run yarn manage:translations --- app/javascript/flavours/glitch/locales/af.js | 7 - .../flavours/glitch/locales/af.json | 201 ++++ app/javascript/flavours/glitch/locales/ar.js | 7 - .../flavours/glitch/locales/ar.json | 201 ++++ app/javascript/flavours/glitch/locales/ast.js | 7 - .../flavours/glitch/locales/ast.json | 201 ++++ app/javascript/flavours/glitch/locales/bg.js | 7 - .../flavours/glitch/locales/bg.json | 201 ++++ app/javascript/flavours/glitch/locales/bn.js | 7 - .../flavours/glitch/locales/bn.json | 201 ++++ app/javascript/flavours/glitch/locales/br.js | 7 - .../flavours/glitch/locales/br.json | 201 ++++ app/javascript/flavours/glitch/locales/ca.js | 7 - .../flavours/glitch/locales/ca.json | 201 ++++ app/javascript/flavours/glitch/locales/ckb.js | 7 - .../flavours/glitch/locales/ckb.json | 201 ++++ app/javascript/flavours/glitch/locales/co.js | 7 - .../flavours/glitch/locales/co.json | 201 ++++ app/javascript/flavours/glitch/locales/cs.js | 180 --- .../flavours/glitch/locales/cs.json | 201 ++++ app/javascript/flavours/glitch/locales/cy.js | 7 - .../flavours/glitch/locales/cy.json | 201 ++++ app/javascript/flavours/glitch/locales/da.js | 7 - .../flavours/glitch/locales/da.json | 201 ++++ app/javascript/flavours/glitch/locales/de.js | 7 - .../flavours/glitch/locales/de.json | 201 ++++ .../glitch/locales/defaultMessages.json | 1068 +++++++++++++++++ app/javascript/flavours/glitch/locales/el.js | 7 - .../flavours/glitch/locales/el.json | 201 ++++ app/javascript/flavours/glitch/locales/en.js | 192 --- .../flavours/glitch/locales/en.json | 201 ++++ app/javascript/flavours/glitch/locales/eo.js | 7 - .../flavours/glitch/locales/eo.json | 201 ++++ .../flavours/glitch/locales/es-AR.js | 7 - .../flavours/glitch/locales/es-AR.json | 201 ++++ .../flavours/glitch/locales/es-MX.js | 7 - .../flavours/glitch/locales/es-MX.json | 201 ++++ app/javascript/flavours/glitch/locales/es.js | 119 -- .../flavours/glitch/locales/es.json | 201 ++++ app/javascript/flavours/glitch/locales/et.js | 7 - .../flavours/glitch/locales/et.json | 201 ++++ app/javascript/flavours/glitch/locales/eu.js | 7 - .../flavours/glitch/locales/eu.json | 201 ++++ app/javascript/flavours/glitch/locales/fa.js | 7 - .../flavours/glitch/locales/fa.json | 201 ++++ app/javascript/flavours/glitch/locales/fi.js | 7 - .../flavours/glitch/locales/fi.json | 201 ++++ app/javascript/flavours/glitch/locales/fr.js | 7 - .../flavours/glitch/locales/fr.json | 201 ++++ app/javascript/flavours/glitch/locales/ga.js | 7 - .../flavours/glitch/locales/ga.json | 201 ++++ app/javascript/flavours/glitch/locales/gd.js | 7 - .../flavours/glitch/locales/gd.json | 201 ++++ app/javascript/flavours/glitch/locales/gl.js | 7 - .../flavours/glitch/locales/gl.json | 201 ++++ app/javascript/flavours/glitch/locales/he.js | 7 - .../flavours/glitch/locales/he.json | 201 ++++ app/javascript/flavours/glitch/locales/hi.js | 7 - .../flavours/glitch/locales/hi.json | 201 ++++ app/javascript/flavours/glitch/locales/hr.js | 7 - .../flavours/glitch/locales/hr.json | 201 ++++ app/javascript/flavours/glitch/locales/hu.js | 7 - .../flavours/glitch/locales/hu.json | 201 ++++ app/javascript/flavours/glitch/locales/hy.js | 7 - .../flavours/glitch/locales/hy.json | 201 ++++ app/javascript/flavours/glitch/locales/id.js | 7 - .../flavours/glitch/locales/id.json | 201 ++++ app/javascript/flavours/glitch/locales/io.js | 7 - .../flavours/glitch/locales/io.json | 201 ++++ app/javascript/flavours/glitch/locales/is.js | 7 - .../flavours/glitch/locales/is.json | 201 ++++ app/javascript/flavours/glitch/locales/it.js | 7 - .../flavours/glitch/locales/it.json | 201 ++++ app/javascript/flavours/glitch/locales/ja.js | 158 --- .../flavours/glitch/locales/ja.json | 201 ++++ app/javascript/flavours/glitch/locales/ka.js | 7 - .../flavours/glitch/locales/ka.json | 201 ++++ app/javascript/flavours/glitch/locales/kab.js | 7 - .../flavours/glitch/locales/kab.json | 201 ++++ app/javascript/flavours/glitch/locales/kk.js | 7 - .../flavours/glitch/locales/kk.json | 201 ++++ app/javascript/flavours/glitch/locales/kn.js | 7 - .../flavours/glitch/locales/kn.json | 201 ++++ app/javascript/flavours/glitch/locales/ko.js | 208 ---- .../flavours/glitch/locales/ko.json | 201 ++++ app/javascript/flavours/glitch/locales/ku.js | 7 - .../flavours/glitch/locales/ku.json | 201 ++++ app/javascript/flavours/glitch/locales/kw.js | 7 - .../flavours/glitch/locales/kw.json | 201 ++++ app/javascript/flavours/glitch/locales/lt.js | 7 - .../flavours/glitch/locales/lt.json | 201 ++++ app/javascript/flavours/glitch/locales/lv.js | 7 - .../flavours/glitch/locales/lv.json | 201 ++++ app/javascript/flavours/glitch/locales/mk.js | 7 - .../flavours/glitch/locales/mk.json | 201 ++++ app/javascript/flavours/glitch/locales/ml.js | 7 - .../flavours/glitch/locales/ml.json | 201 ++++ app/javascript/flavours/glitch/locales/mr.js | 7 - .../flavours/glitch/locales/mr.json | 201 ++++ app/javascript/flavours/glitch/locales/ms.js | 7 - .../flavours/glitch/locales/ms.json | 201 ++++ app/javascript/flavours/glitch/locales/nl.js | 7 - .../flavours/glitch/locales/nl.json | 201 ++++ app/javascript/flavours/glitch/locales/nn.js | 7 - .../flavours/glitch/locales/nn.json | 201 ++++ app/javascript/flavours/glitch/locales/no.js | 7 - .../flavours/glitch/locales/no.json | 201 ++++ app/javascript/flavours/glitch/locales/oc.js | 7 - .../flavours/glitch/locales/oc.json | 201 ++++ app/javascript/flavours/glitch/locales/pa.js | 7 - .../flavours/glitch/locales/pa.json | 201 ++++ app/javascript/flavours/glitch/locales/pl.js | 79 -- .../flavours/glitch/locales/pl.json | 201 ++++ .../flavours/glitch/locales/pt-BR.js | 7 - .../flavours/glitch/locales/pt-BR.json | 201 ++++ .../flavours/glitch/locales/pt-PT.js | 7 - .../flavours/glitch/locales/pt-PT.json | 201 ++++ app/javascript/flavours/glitch/locales/ro.js | 7 - .../flavours/glitch/locales/ro.json | 201 ++++ app/javascript/flavours/glitch/locales/ru.js | 7 - .../flavours/glitch/locales/ru.json | 201 ++++ app/javascript/flavours/glitch/locales/sa.js | 7 - .../flavours/glitch/locales/sa.json | 201 ++++ app/javascript/flavours/glitch/locales/sc.js | 7 - .../flavours/glitch/locales/sc.json | 201 ++++ app/javascript/flavours/glitch/locales/si.js | 7 - .../flavours/glitch/locales/si.json | 201 ++++ app/javascript/flavours/glitch/locales/sk.js | 7 - .../flavours/glitch/locales/sk.json | 201 ++++ app/javascript/flavours/glitch/locales/sl.js | 7 - .../flavours/glitch/locales/sl.json | 201 ++++ app/javascript/flavours/glitch/locales/sq.js | 7 - .../flavours/glitch/locales/sq.json | 201 ++++ .../flavours/glitch/locales/sr-Latn.js | 7 - .../flavours/glitch/locales/sr-Latn.json | 201 ++++ app/javascript/flavours/glitch/locales/sr.js | 7 - .../flavours/glitch/locales/sr.json | 201 ++++ app/javascript/flavours/glitch/locales/sv.js | 7 - .../flavours/glitch/locales/sv.json | 201 ++++ app/javascript/flavours/glitch/locales/szl.js | 7 - .../flavours/glitch/locales/szl.json | 201 ++++ app/javascript/flavours/glitch/locales/ta.js | 7 - .../flavours/glitch/locales/ta.json | 201 ++++ app/javascript/flavours/glitch/locales/tai.js | 7 - .../flavours/glitch/locales/tai.json | 201 ++++ app/javascript/flavours/glitch/locales/te.js | 7 - .../flavours/glitch/locales/te.json | 201 ++++ app/javascript/flavours/glitch/locales/th.js | 7 - .../flavours/glitch/locales/th.json | 201 ++++ app/javascript/flavours/glitch/locales/tr.js | 7 - .../flavours/glitch/locales/tr.json | 201 ++++ app/javascript/flavours/glitch/locales/tt.js | 7 - .../flavours/glitch/locales/tt.json | 201 ++++ app/javascript/flavours/glitch/locales/ug.js | 7 - .../flavours/glitch/locales/ug.json | 201 ++++ app/javascript/flavours/glitch/locales/uk.js | 72 -- .../flavours/glitch/locales/uk.json | 201 ++++ app/javascript/flavours/glitch/locales/ur.js | 7 - .../flavours/glitch/locales/ur.json | 201 ++++ app/javascript/flavours/glitch/locales/vi.js | 7 - .../flavours/glitch/locales/vi.json | 201 ++++ .../flavours/glitch/locales/whitelist_af.json | 2 + .../flavours/glitch/locales/whitelist_ar.json | 2 + .../glitch/locales/whitelist_ast.json | 2 + .../flavours/glitch/locales/whitelist_bg.json | 2 + .../flavours/glitch/locales/whitelist_bn.json | 2 + .../flavours/glitch/locales/whitelist_br.json | 2 + .../flavours/glitch/locales/whitelist_ca.json | 2 + .../glitch/locales/whitelist_ckb.json | 2 + .../flavours/glitch/locales/whitelist_co.json | 2 + .../flavours/glitch/locales/whitelist_cs.json | 2 + .../flavours/glitch/locales/whitelist_cy.json | 2 + .../flavours/glitch/locales/whitelist_da.json | 2 + .../flavours/glitch/locales/whitelist_de.json | 2 + .../flavours/glitch/locales/whitelist_el.json | 2 + .../flavours/glitch/locales/whitelist_en.json | 2 + .../flavours/glitch/locales/whitelist_eo.json | 2 + .../glitch/locales/whitelist_es-AR.json | 2 + .../glitch/locales/whitelist_es-MX.json | 2 + .../flavours/glitch/locales/whitelist_es.json | 2 + .../flavours/glitch/locales/whitelist_et.json | 2 + .../flavours/glitch/locales/whitelist_eu.json | 2 + .../flavours/glitch/locales/whitelist_fa.json | 2 + .../flavours/glitch/locales/whitelist_fi.json | 2 + .../flavours/glitch/locales/whitelist_fr.json | 2 + .../flavours/glitch/locales/whitelist_ga.json | 2 + .../flavours/glitch/locales/whitelist_gd.json | 2 + .../flavours/glitch/locales/whitelist_gl.json | 2 + .../flavours/glitch/locales/whitelist_he.json | 2 + .../flavours/glitch/locales/whitelist_hi.json | 2 + .../flavours/glitch/locales/whitelist_hr.json | 2 + .../flavours/glitch/locales/whitelist_hu.json | 2 + .../flavours/glitch/locales/whitelist_hy.json | 2 + .../flavours/glitch/locales/whitelist_id.json | 2 + .../flavours/glitch/locales/whitelist_io.json | 2 + .../flavours/glitch/locales/whitelist_is.json | 2 + .../flavours/glitch/locales/whitelist_it.json | 2 + .../flavours/glitch/locales/whitelist_ja.json | 2 + .../flavours/glitch/locales/whitelist_ka.json | 2 + .../glitch/locales/whitelist_kab.json | 2 + .../flavours/glitch/locales/whitelist_kk.json | 2 + .../flavours/glitch/locales/whitelist_kn.json | 2 + .../flavours/glitch/locales/whitelist_ko.json | 2 + .../flavours/glitch/locales/whitelist_ku.json | 2 + .../flavours/glitch/locales/whitelist_kw.json | 2 + .../flavours/glitch/locales/whitelist_lt.json | 2 + .../flavours/glitch/locales/whitelist_lv.json | 2 + .../flavours/glitch/locales/whitelist_mk.json | 2 + .../flavours/glitch/locales/whitelist_ml.json | 2 + .../flavours/glitch/locales/whitelist_mr.json | 2 + .../flavours/glitch/locales/whitelist_ms.json | 2 + .../flavours/glitch/locales/whitelist_nl.json | 2 + .../flavours/glitch/locales/whitelist_nn.json | 2 + .../flavours/glitch/locales/whitelist_no.json | 2 + .../flavours/glitch/locales/whitelist_oc.json | 2 + .../flavours/glitch/locales/whitelist_pa.json | 2 + .../flavours/glitch/locales/whitelist_pl.json | 2 + .../glitch/locales/whitelist_pt-BR.json | 2 + .../glitch/locales/whitelist_pt-PT.json | 2 + .../flavours/glitch/locales/whitelist_ro.json | 2 + .../flavours/glitch/locales/whitelist_ru.json | 2 + .../flavours/glitch/locales/whitelist_sa.json | 2 + .../flavours/glitch/locales/whitelist_sc.json | 2 + .../flavours/glitch/locales/whitelist_si.json | 2 + .../flavours/glitch/locales/whitelist_sk.json | 2 + .../flavours/glitch/locales/whitelist_sl.json | 2 + .../flavours/glitch/locales/whitelist_sq.json | 2 + .../glitch/locales/whitelist_sr-Latn.json | 2 + .../flavours/glitch/locales/whitelist_sr.json | 2 + .../flavours/glitch/locales/whitelist_sv.json | 2 + .../glitch/locales/whitelist_szl.json | 2 + .../flavours/glitch/locales/whitelist_ta.json | 2 + .../glitch/locales/whitelist_tai.json | 2 + .../flavours/glitch/locales/whitelist_te.json | 2 + .../flavours/glitch/locales/whitelist_th.json | 2 + .../flavours/glitch/locales/whitelist_tr.json | 2 + .../flavours/glitch/locales/whitelist_tt.json | 2 + .../flavours/glitch/locales/whitelist_ug.json | 2 + .../flavours/glitch/locales/whitelist_uk.json | 2 + .../flavours/glitch/locales/whitelist_ur.json | 2 + .../flavours/glitch/locales/whitelist_vi.json | 2 + .../glitch/locales/whitelist_zgh.json | 2 + .../glitch/locales/whitelist_zh-CN.json | 2 + .../glitch/locales/whitelist_zh-HK.json | 2 + .../glitch/locales/whitelist_zh-TW.json | 2 + app/javascript/flavours/glitch/locales/zgh.js | 7 - .../flavours/glitch/locales/zgh.json | 201 ++++ .../flavours/glitch/locales/zh-CN.js | 201 ---- .../flavours/glitch/locales/zh-CN.json | 201 ++++ .../flavours/glitch/locales/zh-HK.js | 7 - .../flavours/glitch/locales/zh-HK.json | 201 ++++ .../flavours/glitch/locales/zh-TW.js | 7 - .../flavours/glitch/locales/zh-TW.json | 201 ++++ app/javascript/flavours/glitch/theme.yml | 5 +- config/webpack/generateLocalePacks.js | 28 +- config/webpack/translationRunner.js | 27 +- 256 files changed, 18167 insertions(+), 1754 deletions(-) delete mode 100644 app/javascript/flavours/glitch/locales/af.js create mode 100644 app/javascript/flavours/glitch/locales/af.json delete mode 100644 app/javascript/flavours/glitch/locales/ar.js create mode 100644 app/javascript/flavours/glitch/locales/ar.json delete mode 100644 app/javascript/flavours/glitch/locales/ast.js create mode 100644 app/javascript/flavours/glitch/locales/ast.json delete mode 100644 app/javascript/flavours/glitch/locales/bg.js create mode 100644 app/javascript/flavours/glitch/locales/bg.json delete mode 100644 app/javascript/flavours/glitch/locales/bn.js create mode 100644 app/javascript/flavours/glitch/locales/bn.json delete mode 100644 app/javascript/flavours/glitch/locales/br.js create mode 100644 app/javascript/flavours/glitch/locales/br.json delete mode 100644 app/javascript/flavours/glitch/locales/ca.js create mode 100644 app/javascript/flavours/glitch/locales/ca.json delete mode 100644 app/javascript/flavours/glitch/locales/ckb.js create mode 100644 app/javascript/flavours/glitch/locales/ckb.json delete mode 100644 app/javascript/flavours/glitch/locales/co.js create mode 100644 app/javascript/flavours/glitch/locales/co.json delete mode 100644 app/javascript/flavours/glitch/locales/cs.js create mode 100644 app/javascript/flavours/glitch/locales/cs.json delete mode 100644 app/javascript/flavours/glitch/locales/cy.js create mode 100644 app/javascript/flavours/glitch/locales/cy.json delete mode 100644 app/javascript/flavours/glitch/locales/da.js create mode 100644 app/javascript/flavours/glitch/locales/da.json delete mode 100644 app/javascript/flavours/glitch/locales/de.js create mode 100644 app/javascript/flavours/glitch/locales/de.json create mode 100644 app/javascript/flavours/glitch/locales/defaultMessages.json delete mode 100644 app/javascript/flavours/glitch/locales/el.js create mode 100644 app/javascript/flavours/glitch/locales/el.json delete mode 100644 app/javascript/flavours/glitch/locales/en.js create mode 100644 app/javascript/flavours/glitch/locales/en.json delete mode 100644 app/javascript/flavours/glitch/locales/eo.js create mode 100644 app/javascript/flavours/glitch/locales/eo.json delete mode 100644 app/javascript/flavours/glitch/locales/es-AR.js create mode 100644 app/javascript/flavours/glitch/locales/es-AR.json delete mode 100644 app/javascript/flavours/glitch/locales/es-MX.js create mode 100644 app/javascript/flavours/glitch/locales/es-MX.json delete mode 100644 app/javascript/flavours/glitch/locales/es.js create mode 100644 app/javascript/flavours/glitch/locales/es.json delete mode 100644 app/javascript/flavours/glitch/locales/et.js create mode 100644 app/javascript/flavours/glitch/locales/et.json delete mode 100644 app/javascript/flavours/glitch/locales/eu.js create mode 100644 app/javascript/flavours/glitch/locales/eu.json delete mode 100644 app/javascript/flavours/glitch/locales/fa.js create mode 100644 app/javascript/flavours/glitch/locales/fa.json delete mode 100644 app/javascript/flavours/glitch/locales/fi.js create mode 100644 app/javascript/flavours/glitch/locales/fi.json delete mode 100644 app/javascript/flavours/glitch/locales/fr.js create mode 100644 app/javascript/flavours/glitch/locales/fr.json delete mode 100644 app/javascript/flavours/glitch/locales/ga.js create mode 100644 app/javascript/flavours/glitch/locales/ga.json delete mode 100644 app/javascript/flavours/glitch/locales/gd.js create mode 100644 app/javascript/flavours/glitch/locales/gd.json delete mode 100644 app/javascript/flavours/glitch/locales/gl.js create mode 100644 app/javascript/flavours/glitch/locales/gl.json delete mode 100644 app/javascript/flavours/glitch/locales/he.js create mode 100644 app/javascript/flavours/glitch/locales/he.json delete mode 100644 app/javascript/flavours/glitch/locales/hi.js create mode 100644 app/javascript/flavours/glitch/locales/hi.json delete mode 100644 app/javascript/flavours/glitch/locales/hr.js create mode 100644 app/javascript/flavours/glitch/locales/hr.json delete mode 100644 app/javascript/flavours/glitch/locales/hu.js create mode 100644 app/javascript/flavours/glitch/locales/hu.json delete mode 100644 app/javascript/flavours/glitch/locales/hy.js create mode 100644 app/javascript/flavours/glitch/locales/hy.json delete mode 100644 app/javascript/flavours/glitch/locales/id.js create mode 100644 app/javascript/flavours/glitch/locales/id.json delete mode 100644 app/javascript/flavours/glitch/locales/io.js create mode 100644 app/javascript/flavours/glitch/locales/io.json delete mode 100644 app/javascript/flavours/glitch/locales/is.js create mode 100644 app/javascript/flavours/glitch/locales/is.json delete mode 100644 app/javascript/flavours/glitch/locales/it.js create mode 100644 app/javascript/flavours/glitch/locales/it.json delete mode 100644 app/javascript/flavours/glitch/locales/ja.js create mode 100644 app/javascript/flavours/glitch/locales/ja.json delete mode 100644 app/javascript/flavours/glitch/locales/ka.js create mode 100644 app/javascript/flavours/glitch/locales/ka.json delete mode 100644 app/javascript/flavours/glitch/locales/kab.js create mode 100644 app/javascript/flavours/glitch/locales/kab.json delete mode 100644 app/javascript/flavours/glitch/locales/kk.js create mode 100644 app/javascript/flavours/glitch/locales/kk.json delete mode 100644 app/javascript/flavours/glitch/locales/kn.js create mode 100644 app/javascript/flavours/glitch/locales/kn.json delete mode 100644 app/javascript/flavours/glitch/locales/ko.js create mode 100644 app/javascript/flavours/glitch/locales/ko.json delete mode 100644 app/javascript/flavours/glitch/locales/ku.js create mode 100644 app/javascript/flavours/glitch/locales/ku.json delete mode 100644 app/javascript/flavours/glitch/locales/kw.js create mode 100644 app/javascript/flavours/glitch/locales/kw.json delete mode 100644 app/javascript/flavours/glitch/locales/lt.js create mode 100644 app/javascript/flavours/glitch/locales/lt.json delete mode 100644 app/javascript/flavours/glitch/locales/lv.js create mode 100644 app/javascript/flavours/glitch/locales/lv.json delete mode 100644 app/javascript/flavours/glitch/locales/mk.js create mode 100644 app/javascript/flavours/glitch/locales/mk.json delete mode 100644 app/javascript/flavours/glitch/locales/ml.js create mode 100644 app/javascript/flavours/glitch/locales/ml.json delete mode 100644 app/javascript/flavours/glitch/locales/mr.js create mode 100644 app/javascript/flavours/glitch/locales/mr.json delete mode 100644 app/javascript/flavours/glitch/locales/ms.js create mode 100644 app/javascript/flavours/glitch/locales/ms.json delete mode 100644 app/javascript/flavours/glitch/locales/nl.js create mode 100644 app/javascript/flavours/glitch/locales/nl.json delete mode 100644 app/javascript/flavours/glitch/locales/nn.js create mode 100644 app/javascript/flavours/glitch/locales/nn.json delete mode 100644 app/javascript/flavours/glitch/locales/no.js create mode 100644 app/javascript/flavours/glitch/locales/no.json delete mode 100644 app/javascript/flavours/glitch/locales/oc.js create mode 100644 app/javascript/flavours/glitch/locales/oc.json delete mode 100644 app/javascript/flavours/glitch/locales/pa.js create mode 100644 app/javascript/flavours/glitch/locales/pa.json delete mode 100644 app/javascript/flavours/glitch/locales/pl.js create mode 100644 app/javascript/flavours/glitch/locales/pl.json delete mode 100644 app/javascript/flavours/glitch/locales/pt-BR.js create mode 100644 app/javascript/flavours/glitch/locales/pt-BR.json delete mode 100644 app/javascript/flavours/glitch/locales/pt-PT.js create mode 100644 app/javascript/flavours/glitch/locales/pt-PT.json delete mode 100644 app/javascript/flavours/glitch/locales/ro.js create mode 100644 app/javascript/flavours/glitch/locales/ro.json delete mode 100644 app/javascript/flavours/glitch/locales/ru.js create mode 100644 app/javascript/flavours/glitch/locales/ru.json delete mode 100644 app/javascript/flavours/glitch/locales/sa.js create mode 100644 app/javascript/flavours/glitch/locales/sa.json delete mode 100644 app/javascript/flavours/glitch/locales/sc.js create mode 100644 app/javascript/flavours/glitch/locales/sc.json delete mode 100644 app/javascript/flavours/glitch/locales/si.js create mode 100644 app/javascript/flavours/glitch/locales/si.json delete mode 100644 app/javascript/flavours/glitch/locales/sk.js create mode 100644 app/javascript/flavours/glitch/locales/sk.json delete mode 100644 app/javascript/flavours/glitch/locales/sl.js create mode 100644 app/javascript/flavours/glitch/locales/sl.json delete mode 100644 app/javascript/flavours/glitch/locales/sq.js create mode 100644 app/javascript/flavours/glitch/locales/sq.json delete mode 100644 app/javascript/flavours/glitch/locales/sr-Latn.js create mode 100644 app/javascript/flavours/glitch/locales/sr-Latn.json delete mode 100644 app/javascript/flavours/glitch/locales/sr.js create mode 100644 app/javascript/flavours/glitch/locales/sr.json delete mode 100644 app/javascript/flavours/glitch/locales/sv.js create mode 100644 app/javascript/flavours/glitch/locales/sv.json delete mode 100644 app/javascript/flavours/glitch/locales/szl.js create mode 100644 app/javascript/flavours/glitch/locales/szl.json delete mode 100644 app/javascript/flavours/glitch/locales/ta.js create mode 100644 app/javascript/flavours/glitch/locales/ta.json delete mode 100644 app/javascript/flavours/glitch/locales/tai.js create mode 100644 app/javascript/flavours/glitch/locales/tai.json delete mode 100644 app/javascript/flavours/glitch/locales/te.js create mode 100644 app/javascript/flavours/glitch/locales/te.json delete mode 100644 app/javascript/flavours/glitch/locales/th.js create mode 100644 app/javascript/flavours/glitch/locales/th.json delete mode 100644 app/javascript/flavours/glitch/locales/tr.js create mode 100644 app/javascript/flavours/glitch/locales/tr.json delete mode 100644 app/javascript/flavours/glitch/locales/tt.js create mode 100644 app/javascript/flavours/glitch/locales/tt.json delete mode 100644 app/javascript/flavours/glitch/locales/ug.js create mode 100644 app/javascript/flavours/glitch/locales/ug.json delete mode 100644 app/javascript/flavours/glitch/locales/uk.js create mode 100644 app/javascript/flavours/glitch/locales/uk.json delete mode 100644 app/javascript/flavours/glitch/locales/ur.js create mode 100644 app/javascript/flavours/glitch/locales/ur.json delete mode 100644 app/javascript/flavours/glitch/locales/vi.js create mode 100644 app/javascript/flavours/glitch/locales/vi.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_af.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ar.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ast.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_bg.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_bn.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_br.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ca.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ckb.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_co.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_cs.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_cy.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_da.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_de.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_el.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_en.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_eo.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_es-AR.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_es-MX.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_es.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_et.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_eu.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_fa.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_fi.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_fr.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ga.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_gd.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_gl.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_he.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_hi.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_hr.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_hu.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_hy.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_id.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_io.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_is.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_it.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ja.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ka.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_kab.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_kk.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_kn.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ko.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ku.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_kw.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_lt.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_lv.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_mk.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ml.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_mr.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ms.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_nl.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_nn.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_no.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_oc.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_pa.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_pl.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_pt-BR.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_pt-PT.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ro.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ru.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sa.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sc.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_si.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sk.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sl.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sq.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sr.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_sv.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_szl.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ta.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_tai.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_te.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_th.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_tr.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_tt.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ug.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_uk.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_ur.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_vi.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_zgh.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_zh-CN.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_zh-HK.json create mode 100644 app/javascript/flavours/glitch/locales/whitelist_zh-TW.json delete mode 100644 app/javascript/flavours/glitch/locales/zgh.js create mode 100644 app/javascript/flavours/glitch/locales/zgh.json delete mode 100644 app/javascript/flavours/glitch/locales/zh-CN.js create mode 100644 app/javascript/flavours/glitch/locales/zh-CN.json delete mode 100644 app/javascript/flavours/glitch/locales/zh-HK.js create mode 100644 app/javascript/flavours/glitch/locales/zh-HK.json delete mode 100644 app/javascript/flavours/glitch/locales/zh-TW.js create mode 100644 app/javascript/flavours/glitch/locales/zh-TW.json diff --git a/app/javascript/flavours/glitch/locales/af.js b/app/javascript/flavours/glitch/locales/af.js deleted file mode 100644 index 4c97b644ab..0000000000 --- a/app/javascript/flavours/glitch/locales/af.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/af.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/af.json b/app/javascript/flavours/glitch/locales/af.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/af.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ar.js b/app/javascript/flavours/glitch/locales/ar.js deleted file mode 100644 index 1081147d5a..0000000000 --- a/app/javascript/flavours/glitch/locales/ar.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ar.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ar.json b/app/javascript/flavours/glitch/locales/ar.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ar.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ast.js b/app/javascript/flavours/glitch/locales/ast.js deleted file mode 100644 index 41355c24c5..0000000000 --- a/app/javascript/flavours/glitch/locales/ast.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ast.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ast.json b/app/javascript/flavours/glitch/locales/ast.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ast.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/bg.js b/app/javascript/flavours/glitch/locales/bg.js deleted file mode 100644 index 979039376f..0000000000 --- a/app/javascript/flavours/glitch/locales/bg.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/bg.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/bg.json b/app/javascript/flavours/glitch/locales/bg.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/bg.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/bn.js b/app/javascript/flavours/glitch/locales/bn.js deleted file mode 100644 index a453498b3f..0000000000 --- a/app/javascript/flavours/glitch/locales/bn.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/bn.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/bn.json b/app/javascript/flavours/glitch/locales/bn.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/bn.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/br.js b/app/javascript/flavours/glitch/locales/br.js deleted file mode 100644 index 966bd1b2ff..0000000000 --- a/app/javascript/flavours/glitch/locales/br.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/br.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/br.json b/app/javascript/flavours/glitch/locales/br.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/br.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ca.js b/app/javascript/flavours/glitch/locales/ca.js deleted file mode 100644 index baf76bd6f7..0000000000 --- a/app/javascript/flavours/glitch/locales/ca.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ca.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ca.json b/app/javascript/flavours/glitch/locales/ca.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ca.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ckb.js b/app/javascript/flavours/glitch/locales/ckb.js deleted file mode 100644 index c2e177d5f2..0000000000 --- a/app/javascript/flavours/glitch/locales/ckb.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ckb.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ckb.json b/app/javascript/flavours/glitch/locales/ckb.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ckb.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/co.js b/app/javascript/flavours/glitch/locales/co.js deleted file mode 100644 index 6e9e46797b..0000000000 --- a/app/javascript/flavours/glitch/locales/co.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/co.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/co.json b/app/javascript/flavours/glitch/locales/co.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/co.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/cs.js b/app/javascript/flavours/glitch/locales/cs.js deleted file mode 100644 index e789facb0b..0000000000 --- a/app/javascript/flavours/glitch/locales/cs.js +++ /dev/null @@ -1,180 +0,0 @@ -import inherited from 'mastodon/locales/cs.json'; - -const messages = { - 'about.fork_disclaimer': 'Glitch-soc je svobodný software s otevřeným zdrojovým kódem založený na Mastodonu.', - 'settings.layout_opts': 'Možnosti rozvržení', - 'settings.layout': 'Rozložení:', - 'layout.current_is': 'Nastavené rozložení je:', - 'layout.auto': 'Automatické', - 'layout.desktop': 'Desktop', - 'layout.mobile': 'Mobil', - 'layout.hint.auto': 'Vybrat rozložení automaticky v závislosti na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.', - 'layout.hint.desktop': 'Použít vícesloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.', - 'layout.hint.single': 'Použít jednosloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.', - 'navigation_bar.app_settings': 'Nastavení aplikace', - 'navigation_bar.featured_users': 'Vybraní uživatelé', - 'endorsed_accounts_editor.endorsed_accounts': 'Vybrané účty', - 'navigation_bar.info': 'Rozšířené informace', - 'navigation_bar.misc': 'Různé', - 'navigation_bar.keyboard_shortcuts': 'Klávesové zkratky', - 'getting_started.onboarding': 'Ukaž mi to tu', - 'onboarding.skip': 'Přeskočit', - 'onboarding.next': 'Další', - 'onboarding.done': 'Hotovo', - 'onboarding.page_one.federation': '{domain} je \'instance\' Mastodonu. Mastodon je síť nezávislých serverů, které jsou spolu propojené do jedné velké sociální sítě. Těmto serverům říkáme instance.', - 'onboarding.page_one.handle': 'Jste na instanci {domain}, takže celá adresa vašeho profilu je {handle}', - 'onboarding.page_one.welcome': 'Vítá vás {domain}!', - 'onboarding.page_two.compose': 'Příspěvky se píší v levém sloupci. Pomocí ikon pod příspěvkem k němu můžete připojit obrázky, změnit úroveň soukromí nebo přidat varování o obsahu.', - 'onboarding.page_three.search': 'Pomocí vyhledávací lišty můžete hledat lidi nebo hashtagy. Pokud hledáte někoho z jiné instance, musíte použít celou adresu jeho profilu.', - 'onboarding.page_three.profile': 'Upravte si svůj profil a nastavte si profilový obrázek, jméno, a krátký text o sobě. Naleznete tam i další možnosti nastavení.', - 'onboarding.page_four.home': 'Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.', - 'onboarding.page_four.notifications': 'Notifikace se zobrazí, když s vámi někdo interaguje.', - 'onboarding.page_five.public_timelines': 'Místní časová osa zobrazuje veřejné příspěvky všech uživatelů instance {domain}. Federovaná časová osa zobrazí příspěvky od všech, koho uživatelé instance {domain} sledují. Tyto veřejné časové osy jsou skvělý způsob, jak objevit nové lidi.', - 'onboarding.page_six.almost_done': 'Skoro hotovo...', - 'onboarding.page_six.github': 'Na serveru {domain} běží Glitchsoc. Glitchsoc je přátelský {fork} programu {Mastodon}, a je kompatibilní s jakoukoliv jinou mastodoní instancí nebo aplikací. Glitchsoc je zcela svobodný a má otevřený zdrojový kód. Na stránce {github} můžete hlásit chyby, žádat o nové funkce, nebo ke kódu vlastnoručně přispět.', - 'onboarding.page_six.apps_available': 'Jsou dostupné {apps} pro iOS, Android i jiné platformy.', - 'onboarding.page_six.various_app': 'mobilní aplikace', - 'onboarding.page_six.appetoot': 'Veselé mastodonění!', - 'settings.auto_collapse': 'Automaticky sbalit', - 'settings.auto_collapse_all': 'Všechno', - 'settings.auto_collapse_lengthy': 'Dlouhé příspěvky', - 'settings.auto_collapse_media': 'Příspěvky s přílohami', - 'settings.auto_collapse_notifications': 'Oznámení', - 'settings.auto_collapse_reblogs': 'Boosty', - 'settings.auto_collapse_replies': 'Odpovědi', - 'settings.show_action_bar': 'Zobrazit ve sbalených příspěvcích tlačítka s akcemi', - 'settings.close': 'Zavřít', - 'settings.collapsed_statuses': 'Sbalené příspěvky', - 'settings.confirm_boost_missing_media_description': 'Zobrazit potvrzovací dialog před boostnutím příspěvku s chybějícími popisky obrázků', - 'boost_modal.missing_description': 'Příspěvek obsahuje obrázky bez popisků', - 'settings.enable_collapsed': 'Povolit sbalené příspěvky', - 'settings.enable_collapsed_hint': 'U sbalených příspěvků je část jejich obsahu skrytá, aby zabraly méně místa na obrazovce. (Tohle není stejná funkce jako varování o obsahu.)', - 'settings.general': 'Obecné', - 'settings.hicolor_privacy_icons': 'Barevné ikony soukromí', - 'settings.hicolor_privacy_icons.hint': 'Zobrazit ikony úrovně soukromí příspěvků v jasných, snadno rozlišitelných barvách', - 'settings.image_backgrounds': 'Obrázkové pozadí', - 'settings.image_backgrounds_media': 'Náhled médií ve sbalených příspěvcích', - 'settings.image_backgrounds_media_hint': 'Pokud jsou k příspěvku přiložena média, použije se první z nich jako pozadí', - 'settings.image_backgrounds_users': 'Nastavit sbaleným příspěvkům obrázkové pozadí', - 'settings.inline_preview_cards': 'Zobrazit v časové ose náhledy externích odkazů', - 'settings.media': 'Média', - 'settings.media_letterbox': 'Neořezávat obrázky', - 'settings.media_letterbox_hint': 'Místo výřezu obrázku zobrazit obrázek celý, doplněný podle potřeby o prázdné okraje', - 'settings.media_fullwidth': 'Zobrazit náhledy v plné šířce', - 'settings.notifications_opts': 'Možnosti oznámení', - 'settings.notifications.tab_badge': 'Zobrazit počet nepřečtených oznámení', - 'settings.notifications.tab_badge.hint': 'Počet nepřečtených oznámení se viditelně zobrazí na hlavní stránce (pokud není seznam oznámení viditelný)', - 'settings.notifications.favicon_badge': 'Zobrazit počet na ikoně serveru', - 'settings.notifications.favicon_badge.hint': 'Zobrazí počet nepřečtených oznámení na ikoně serveru', - 'settings.preferences': 'Předvolby', - 'settings.rewrite_mentions': 'Přepsat zmínky v zobrazených příspěvcích', - 'settings.rewrite_mentions_no': 'Nepřepisovat zmínky', - 'settings.rewrite_mentions_acct': 'Přepsat uživatelským jménem a doménou (pokud je účet na jiném serveru)', - 'settings.rewrite_mentions_username': 'Přepsat uživatelským jménem', - 'settings.show_reply_counter': 'Zobrazit odhad počtu odpovědí', - 'settings.status_icons': 'Ikony u příspěvků', - 'settings.status_icons_language': 'Indikace jazyk', - 'settings.status_icons_reply': 'Indikace odpovědi', - 'settings.status_icons_local_only': 'Indikace lokálního příspěvku', - 'settings.status_icons_media': 'Indikace obrázků a anket', - 'settings.status_icons_visibility': 'Indikace úrovně soukromí', - 'settings.tag_misleading_links': 'Označit zavádějící odkazy', - 'settings.tag_misleading_links.hint': 'Zobrazit skutečný cíl u každého odkazu, který ho explicitně nezmiňuje', - 'settings.wide_view': 'Široké sloupce (pouze v režimu Desktop)', - 'settings.wide_view_hint': 'Sloupce se roztáhnout, aby lépe vyplnily dostupný prostor.', - 'settings.navbar_under': 'Navigační lišta vespod (pouze v režimu Mobil)', - 'settings.compose_box_opts': 'Editační pole', - 'settings.always_show_spoilers_field': 'Vždy zobrazit pole pro varování o obsahu', - 'settings.prepend_cw_re': 'Při odpovídání přidat před varování o obsahu “re: ”', - 'settings.preselect_on_reply': 'Při odpovědi označit uživatelská jména', - 'settings.preselect_on_reply_hint': 'Při odpovídání na konverzaci s více účastníky se jména všech kromě prvního označí, aby šla jednoduše smazat', - 'settings.confirm_missing_media_description': 'Zobrazit potvrzovací dialog při odesílání příspěvku, ve kterém chybí popisky obrázků', - 'settings.confirm_before_clearing_draft': 'Zobrazit potvrzovací dialog před přepsáním právě vytvářené zprávy', - 'settings.show_content_type_choice': 'Zobrazit volbu formátu příspěvku', - 'settings.side_arm': 'Vedlejší odesílací tlačítko:', - 'settings.side_arm.none': 'Žádné', - 'settings.side_arm_reply_mode': 'Při odpovídání na příspěvek by vedlejší odesílací tlačítko mělo:', - 'settings.side_arm_reply_mode.keep': 'Použít svou nastavenou úroveň soukromí', - 'settings.side_arm_reply_mode.copy': 'Použít úroveň soukromí příspěvku, na který odpovídáte', - 'settings.side_arm_reply_mode.restrict': 'Zvýšit úroveň soukromí nejméně na úroveň příspěvku, na který odpovídáte', - 'settings.content_warnings': 'Varování o obsahu', - 'settings.content_warnings_shared_state': 'Zobrazit/schovat všechny kopie naráz', - 'settings.content_warnings_shared_state_hint': 'Tlačítko varování o obsahu bude mít efekt na všechny kopie příspěvku naráz, stejně jako na běžném Mastodonu. Nebude pak možné automaticky sbalit jakoukoliv kopii příspěvku, která má rozbalené varování o obsahu', - 'settings.content_warnings_media_outside': 'Zobrazit obrázky a videa mimo varování o obsahu', - 'settings.content_warnings_media_outside_hint': 'Obrázky a videa z příspěvku s varováním o obsahu se zobrazí se separátním přepínačem zobrazení, stejně jako na běžném Mastodonu.', - 'settings.content_warnings_unfold_opts': 'Možnosti automatického rozbalení', - 'settings.enable_content_warnings_auto_unfold': 'Vždy rozbalit příspěvky označené varováním o obsahu', - 'settings.deprecated_setting': 'Tato možnost se nyní nastavuje v {settings_page_link}', - 'settings.shared_settings_link': 'předvolbách Mastodonu', - 'settings.content_warnings_filter': 'Tato varování o obsahu automaticky nerozbalovat:', - 'settings.content_warnings.regexp': 'Regulární výraz', - 'settings.media_reveal_behind_cw': 'Automaticky zobrazit média označená varováním o obsahu', - 'settings.pop_in_player': 'Povolit plovoucí okno přehrávače', - 'settings.pop_in_position': 'Pozice plovoucího okna:', - 'settings.pop_in_left': 'Vlevo', - 'settings.pop_in_right': 'Vpravo', - - - 'status.collapse': 'Sbalit', - 'status.uncollapse': 'Rozbalit', - 'status.in_reply_to': 'Tento příspěvek je odpověď', - 'status.has_preview_card': 'Obsahuje náhled odkazu', - 'status.has_pictures': 'Obsahuje obrázky', - 'status.is_poll': 'Tento příspěvek je anketa', - 'status.has_video': 'Obsahuje video', - 'status.has_audio': 'Obsahuje audio', - 'status.local_only': 'Viditelné pouze z vaší instance', - - 'media_gallery.sensitive': 'Citlivý obsah', - - 'favourite_modal.combo': 'Příště můžete pro přeskočení stisknout {combo}', - - 'home.column_settings.show_direct': 'Zobrazit přímé zprávy', - - 'notification_purge.start': 'Čistící režim', - 'notifications.mark_as_read': 'Označit všechna oznámení jako přečtená', - - 'notification.markForDeletion': 'Označit pro smazání', - 'notifications.clear': 'Vymazat všechna oznámení', - 'notifications.marked_clear_confirmation': 'Určitě chcete trvale smazat všechna vybraná oznámení?', - 'notifications.marked_clear': 'Smazat vybraná oznámení', - - 'notification_purge.btn_all': 'Vybrat\nvše', - 'notification_purge.btn_none': 'Nevybrat\nnic', - 'notification_purge.btn_invert': 'Obrátit\nvýběr', - 'notification_purge.btn_apply': 'Smazat\nvybrané', - - 'compose.attach.upload': 'Nahrát soubor', - 'compose.attach.doodle': 'Něco namalovat', - 'compose.attach': 'Připojit...', - - 'advanced_options.local-only.short': 'Lokální příspěvek', - 'advanced_options.local-only.long': 'Neposílat na jiné servery', - 'advanced_options.local-only.tooltip': 'Tento příspěvek je pouze lokální', - 'advanced_options.icon_title': 'Pokročilá nastavení', - 'advanced_options.threaded_mode.short': 'Režim vlákna', - 'advanced_options.threaded_mode.long': 'Po odeslání automaticky otevře pole pro odpověď', - 'advanced_options.threaded_mode.tooltip': 'Režim vlákna je zapnutý', - - 'home.column_settings.advanced': 'Pokročilé', - 'home.column_settings.filter_regex': 'Filtrovat podle regulárních výrazů', - - 'compose_form.poll.single_choice': 'Povolit jednu odpověď', - 'compose_form.poll.multiple_choices': 'Povolit více odpovědí', - - 'compose.content-type.plain': 'Prostý text', - 'content-type.change': 'Formát příspěvku', - 'compose_form.spoiler': 'Přidat varování o obsahu', - - 'direct.group_by_conversations': 'Seskupit do konverzací', - 'column.toot': 'Příspěvky a odpovědi', - 'confirmation_modal.do_not_ask_again': 'Příště se už neptat', - - 'keyboard_shortcuts.bookmark': 'Přidat do záložek', - 'keyboard_shortcuts.toggle_collapse': 'Sbalit/rozbalit příspěvek', - 'keyboard_shortcuts.secondary_toot': 'Odeslat příspěvek s druhotným nastavením soukromí', - - 'column.subheading': 'Různé', -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/cs.json b/app/javascript/flavours/glitch/locales/cs.json new file mode 100644 index 0000000000..1283f4bdd9 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/cs.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc je svobodný software s otevřeným zdrojovým kódem založený na Mastodonu.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Pokročilá nastavení", + "advanced_options.local-only.long": "Neposílat na jiné servery", + "advanced_options.local-only.short": "Lokální příspěvek", + "advanced_options.local-only.tooltip": "Tento příspěvek je pouze lokální", + "advanced_options.threaded_mode.long": "Po odeslání automaticky otevře pole pro odpověď", + "advanced_options.threaded_mode.short": "Režim vlákna", + "advanced_options.threaded_mode.tooltip": "Režim vlákna je zapnutý", + "boost_modal.missing_description": "Příspěvek obsahuje obrázky bez popisků", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Různé", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Připojit...", + "compose.attach.doodle": "Něco namalovat", + "compose.attach.upload": "Nahrát soubor", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Prostý text", + "compose_form.poll.multiple_choices": "Povolit více odpovědí", + "compose_form.poll.single_choice": "Povolit jednu odpověď", + "compose_form.spoiler": "Přidat varování o obsahu", + "confirmation_modal.do_not_ask_again": "Příště se už neptat", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Formát příspěvku", + "direct.group_by_conversations": "Seskupit do konverzací", + "endorsed_accounts_editor.endorsed_accounts": "Vybrané účty", + "favourite_modal.combo": "Příště můžete pro přeskočení stisknout {combo}", + "getting_started.onboarding": "Ukaž mi to tu", + "home.column_settings.advanced": "Pokročilé", + "home.column_settings.filter_regex": "Filtrovat podle regulárních výrazů", + "home.column_settings.show_direct": "Zobrazit přímé zprávy", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "Přidat do záložek", + "keyboard_shortcuts.secondary_toot": "Odeslat příspěvek s druhotným nastavením soukromí", + "keyboard_shortcuts.toggle_collapse": "Sbalit/rozbalit příspěvek", + "layout.auto": "Automatické", + "layout.desktop": "Desktop", + "layout.hint.auto": "Vybrat rozložení automaticky v závislosti na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", + "layout.hint.desktop": "Použít vícesloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", + "layout.hint.single": "Použít jednosloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Citlivý obsah", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "Nastavení aplikace", + "navigation_bar.featured_users": "Vybraní uživatelé", + "navigation_bar.info": "Rozšířené informace", + "navigation_bar.keyboard_shortcuts": "Klávesové zkratky", + "navigation_bar.misc": "Různé", + "notification.markForDeletion": "Označit pro smazání", + "notification_purge.btn_all": "Vybrat\nvše", + "notification_purge.btn_apply": "Smazat\nvybrané", + "notification_purge.btn_invert": "Obrátit\nvýběr", + "notification_purge.btn_none": "Nevybrat\nnic", + "notification_purge.start": "Čistící režim", + "notifications.marked_clear": "Smazat vybraná oznámení", + "notifications.marked_clear_confirmation": "Určitě chcete trvale smazat všechna vybraná oznámení?", + "onboarding.done": "Hotovo", + "onboarding.next": "Další", + "onboarding.page_five.public_timelines": "Místní časová osa zobrazuje veřejné příspěvky všech uživatelů instance {domain}. Federovaná časová osa zobrazí příspěvky od všech, koho uživatelé instance {domain} sledují. Tyto veřejné časové osy jsou skvělý způsob, jak objevit nové lidi.", + "onboarding.page_four.home": "Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.", + "onboarding.page_four.notifications": "Notifikace se zobrazí, když s vámi někdo interaguje.", + "onboarding.page_one.federation": "{domain} je 'instance' Mastodonu. Mastodon je síť nezávislých serverů, které jsou spolu propojené do jedné velké sociální sítě. Těmto serverům říkáme instance.", + "onboarding.page_one.handle": "Jste na instanci {domain}, takže celá adresa vašeho profilu je {handle}", + "onboarding.page_one.welcome": "Vítá vás {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Skoro hotovo...", + "onboarding.page_six.appetoot": "Veselé mastodonění!", + "onboarding.page_six.apps_available": "Jsou dostupné {apps} pro iOS, Android i jiné platformy.", + "onboarding.page_six.github": "Na serveru {domain} běží Glitchsoc. Glitchsoc je přátelský {fork} programu {Mastodon}, a je kompatibilní s jakoukoliv jinou mastodoní instancí nebo aplikací. Glitchsoc je zcela svobodný a má otevřený zdrojový kód. Na stránce {github} můžete hlásit chyby, žádat o nové funkce, nebo ke kódu vlastnoručně přispět.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobilní aplikace", + "onboarding.page_three.profile": "Upravte si svůj profil a nastavte si profilový obrázek, jméno, a krátký text o sobě. Naleznete tam i další možnosti nastavení.", + "onboarding.page_three.search": "Pomocí vyhledávací lišty můžete hledat lidi nebo hashtagy. Pokud hledáte někoho z jiné instance, musíte použít celou adresu jeho profilu.", + "onboarding.page_two.compose": "Příspěvky se píší v levém sloupci. Pomocí ikon pod příspěvkem k němu můžete připojit obrázky, změnit úroveň soukromí nebo přidat varování o obsahu.", + "onboarding.skip": "Přeskočit", + "settings.always_show_spoilers_field": "Vždy zobrazit pole pro varování o obsahu", + "settings.auto_collapse": "Automaticky sbalit", + "settings.auto_collapse_all": "Všechno", + "settings.auto_collapse_lengthy": "Dlouhé příspěvky", + "settings.auto_collapse_media": "Příspěvky s přílohami", + "settings.auto_collapse_notifications": "Oznámení", + "settings.auto_collapse_reblogs": "Boosty", + "settings.auto_collapse_replies": "Odpovědi", + "settings.close": "Zavřít", + "settings.collapsed_statuses": "Sbalené příspěvky", + "settings.compose_box_opts": "Editační pole", + "settings.confirm_before_clearing_draft": "Zobrazit potvrzovací dialog před přepsáním právě vytvářené zprávy", + "settings.confirm_boost_missing_media_description": "Zobrazit potvrzovací dialog před boostnutím příspěvku s chybějícími popisky obrázků", + "settings.confirm_missing_media_description": "Zobrazit potvrzovací dialog při odesílání příspěvku, ve kterém chybí popisky obrázků", + "settings.content_warnings": "Varování o obsahu", + "settings.content_warnings.regexp": "Regulární výraz", + "settings.content_warnings_filter": "Tato varování o obsahu automaticky nerozbalovat:", + "settings.content_warnings_media_outside": "Zobrazit obrázky a videa mimo varování o obsahu", + "settings.content_warnings_media_outside_hint": "Obrázky a videa z příspěvku s varováním o obsahu se zobrazí se separátním přepínačem zobrazení, stejně jako na běžném Mastodonu.", + "settings.content_warnings_shared_state": "Zobrazit/schovat všechny kopie naráz", + "settings.content_warnings_shared_state_hint": "Tlačítko varování o obsahu bude mít efekt na všechny kopie příspěvku naráz, stejně jako na běžném Mastodonu. Nebude pak možné automaticky sbalit jakoukoliv kopii příspěvku, která má rozbalené varování o obsahu", + "settings.content_warnings_unfold_opts": "Možnosti automatického rozbalení", + "settings.deprecated_setting": "Tato možnost se nyní nastavuje v {settings_page_link}", + "settings.enable_collapsed": "Povolit sbalené příspěvky", + "settings.enable_collapsed_hint": "U sbalených příspěvků je část jejich obsahu skrytá, aby zabraly méně místa na obrazovce. (Tohle není stejná funkce jako varování o obsahu.)", + "settings.enable_content_warnings_auto_unfold": "Vždy rozbalit příspěvky označené varováním o obsahu", + "settings.filters": "Filters", + "settings.general": "Obecné", + "settings.hicolor_privacy_icons": "Barevné ikony soukromí", + "settings.hicolor_privacy_icons.hint": "Zobrazit ikony úrovně soukromí příspěvků v jasných, snadno rozlišitelných barvách", + "settings.image_backgrounds": "Obrázkové pozadí", + "settings.image_backgrounds_media": "Náhled médií ve sbalených příspěvcích", + "settings.image_backgrounds_media_hint": "Pokud jsou k příspěvku přiložena média, použije se první z nich jako pozadí", + "settings.image_backgrounds_users": "Nastavit sbaleným příspěvkům obrázkové pozadí", + "settings.inline_preview_cards": "Zobrazit v časové ose náhledy externích odkazů", + "settings.layout": "Rozložení:", + "settings.layout_opts": "Možnosti rozvržení", + "settings.media": "Média", + "settings.media_fullwidth": "Zobrazit náhledy v plné šířce", + "settings.media_letterbox": "Neořezávat obrázky", + "settings.media_letterbox_hint": "Místo výřezu obrázku zobrazit obrázek celý, doplněný podle potřeby o prázdné okraje", + "settings.media_reveal_behind_cw": "Automaticky zobrazit média označená varováním o obsahu", + "settings.notifications.favicon_badge": "Zobrazit počet na ikoně serveru", + "settings.notifications.favicon_badge.hint": "Zobrazí počet nepřečtených oznámení na ikoně serveru", + "settings.notifications.tab_badge": "Zobrazit počet nepřečtených oznámení", + "settings.notifications.tab_badge.hint": "Počet nepřečtených oznámení se viditelně zobrazí na hlavní stránce (pokud není seznam oznámení viditelný)", + "settings.notifications_opts": "Možnosti oznámení", + "settings.pop_in_left": "Vlevo", + "settings.pop_in_player": "Povolit plovoucí okno přehrávače", + "settings.pop_in_position": "Pozice plovoucího okna:", + "settings.pop_in_right": "Vpravo", + "settings.preferences": "Předvolby", + "settings.prepend_cw_re": "Při odpovídání přidat před varování o obsahu “re: ”", + "settings.preselect_on_reply": "Při odpovědi označit uživatelská jména", + "settings.preselect_on_reply_hint": "Při odpovídání na konverzaci s více účastníky se jména všech kromě prvního označí, aby šla jednoduše smazat", + "settings.rewrite_mentions": "Přepsat zmínky v zobrazených příspěvcích", + "settings.rewrite_mentions_acct": "Přepsat uživatelským jménem a doménou (pokud je účet na jiném serveru)", + "settings.rewrite_mentions_no": "Nepřepisovat zmínky", + "settings.rewrite_mentions_username": "Přepsat uživatelským jménem", + "settings.shared_settings_link": "předvolbách Mastodonu", + "settings.show_action_bar": "Zobrazit ve sbalených příspěvcích tlačítka s akcemi", + "settings.show_content_type_choice": "Zobrazit volbu formátu příspěvku", + "settings.show_reply_counter": "Zobrazit odhad počtu odpovědí", + "settings.side_arm": "Vedlejší odesílací tlačítko:", + "settings.side_arm.none": "Žádné", + "settings.side_arm_reply_mode": "Při odpovídání na příspěvek by vedlejší odesílací tlačítko mělo:", + "settings.side_arm_reply_mode.copy": "Použít úroveň soukromí příspěvku, na který odpovídáte", + "settings.side_arm_reply_mode.keep": "Použít svou nastavenou úroveň soukromí", + "settings.side_arm_reply_mode.restrict": "Zvýšit úroveň soukromí nejméně na úroveň příspěvku, na který odpovídáte", + "settings.status_icons": "Ikony u příspěvků", + "settings.status_icons_language": "Indikace jazyk", + "settings.status_icons_local_only": "Indikace lokálního příspěvku", + "settings.status_icons_media": "Indikace obrázků a anket", + "settings.status_icons_reply": "Indikace odpovědi", + "settings.status_icons_visibility": "Indikace úrovně soukromí", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Označit zavádějící odkazy", + "settings.tag_misleading_links.hint": "Zobrazit skutečný cíl u každého odkazu, který ho explicitně nezmiňuje", + "settings.wide_view": "Široké sloupce (pouze v režimu Desktop)", + "settings.wide_view_hint": "Sloupce se roztáhnout, aby lépe vyplnily dostupný prostor.", + "status.collapse": "Sbalit", + "status.has_audio": "Obsahuje audio", + "status.has_pictures": "Obsahuje obrázky", + "status.has_preview_card": "Obsahuje náhled odkazu", + "status.has_video": "Obsahuje video", + "status.in_reply_to": "Tento příspěvek je odpověď", + "status.is_poll": "Tento příspěvek je anketa", + "status.local_only": "Viditelné pouze z vaší instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Rozbalit", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/cy.js b/app/javascript/flavours/glitch/locales/cy.js deleted file mode 100644 index 09412bd721..0000000000 --- a/app/javascript/flavours/glitch/locales/cy.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/cy.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/cy.json b/app/javascript/flavours/glitch/locales/cy.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/cy.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/da.js b/app/javascript/flavours/glitch/locales/da.js deleted file mode 100644 index 2b08806be3..0000000000 --- a/app/javascript/flavours/glitch/locales/da.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/da.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/da.json b/app/javascript/flavours/glitch/locales/da.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/da.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/de.js b/app/javascript/flavours/glitch/locales/de.js deleted file mode 100644 index ce64536235..0000000000 --- a/app/javascript/flavours/glitch/locales/de.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/de.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/de.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/defaultMessages.json b/app/javascript/flavours/glitch/locales/defaultMessages.json new file mode 100644 index 0000000000..97a33bcc52 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/defaultMessages.json @@ -0,0 +1,1068 @@ +[ + { + "descriptors": [ + { + "defaultMessage": "We're sorry, but something went wrong with the Mastodon app.", + "id": "web_app_crash.title" + }, + { + "defaultMessage": "You could try any of the following:", + "id": "web_app_crash.content" + }, + { + "defaultMessage": "Disable browser add-ons or built-in translation tools", + "id": "web_app_crash.disable_addons" + }, + { + "defaultMessage": "Report a bug in the {issuetracker}", + "id": "web_app_crash.report_issue" + }, + { + "defaultMessage": "issue tracker", + "id": "web_app_crash.issue_tracker" + }, + { + "defaultMessage": "Debug information", + "id": "web_app_crash.debug_info" + }, + { + "defaultMessage": "{reload} the current page", + "id": "web_app_crash.reload_page" + }, + { + "defaultMessage": "Reload", + "id": "web_app_crash.reload" + }, + { + "defaultMessage": "Change your {settings}", + "id": "web_app_crash.change_your_settings" + }, + { + "defaultMessage": "settings", + "id": "web_app_crash.settings" + } + ], + "path": "app/javascript/flavours/glitch/components/error_boundary.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Sensitive", + "id": "media_gallery.sensitive" + }, + { + "defaultMessage": "Click to view", + "id": "status.sensitive_toggle" + } + ], + "path": "app/javascript/flavours/glitch/components/media_gallery.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Select\nall", + "id": "notification_purge.btn_all" + }, + { + "defaultMessage": "Select\nnone", + "id": "notification_purge.btn_none" + }, + { + "defaultMessage": "Invert\nselection", + "id": "notification_purge.btn_invert" + }, + { + "defaultMessage": "Clear\nselected", + "id": "notification_purge.btn_apply" + } + ], + "path": "app/javascript/flavours/glitch/components/notification_purge_buttons.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Collapse", + "id": "status.collapse" + }, + { + "defaultMessage": "Uncollapse", + "id": "status.uncollapse" + }, + { + "defaultMessage": "This toot is a reply", + "id": "status.in_reply_to" + }, + { + "defaultMessage": "Features an attached preview card", + "id": "status.has_preview_card" + }, + { + "defaultMessage": "Features attached pictures", + "id": "status.has_pictures" + }, + { + "defaultMessage": "This toot is a poll", + "id": "status.is_poll" + }, + { + "defaultMessage": "Features attached videos", + "id": "status.has_video" + }, + { + "defaultMessage": "Features attached audio files", + "id": "status.has_audio" + }, + { + "defaultMessage": "Only visible from your instance", + "id": "status.local_only" + } + ], + "path": "app/javascript/flavours/glitch/components/status_icons.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Are you sure you want to permanently clear all selected notifications?", + "id": "notifications.marked_clear_confirmation" + }, + { + "defaultMessage": "Clear selected notifications", + "id": "notifications.marked_clear" + } + ], + "path": "app/javascript/flavours/glitch/containers/notification_purge_buttons_container.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Show", + "id": "confirmations.unfilter.confirm" + }, + { + "defaultMessage": "Author", + "id": "confirmations.unfilter.author" + }, + { + "defaultMessage": "Matching {count, plural, one {filter} other {filters}}", + "id": "confirmations.unfilter.filters" + }, + { + "defaultMessage": "Edit filter", + "id": "confirmations.unfilter.edit_filter" + } + ], + "path": "app/javascript/flavours/glitch/containers/status_container.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Glitch-soc is free open source software forked from Mastodon.", + "id": "about.fork_disclaimer" + } + ], + "path": "app/javascript/flavours/glitch/features/about/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "No comment provided", + "id": "account_note.glitch_placeholder" + }, + { + "defaultMessage": "Cancel", + "id": "account_note.cancel" + }, + { + "defaultMessage": "Save", + "id": "account_note.save" + }, + { + "defaultMessage": "Edit", + "id": "account_note.edit" + } + ], + "path": "app/javascript/flavours/glitch/features/account/components/account_note.json" + }, + { + "descriptors": [ + { + "defaultMessage": "This user has been suspended by a moderator.", + "id": "account.suspended_disclaimer_full" + }, + { + "defaultMessage": "Information below may reflect the user's profile incompletely.", + "id": "account.disclaimer_full" + }, + { + "defaultMessage": "View full profile", + "id": "account.view_full_profile" + }, + { + "defaultMessage": "Follows", + "id": "account.follows" + } + ], + "path": "app/javascript/flavours/glitch/features/account/components/action_bar.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Add note for @{name}", + "id": "account.add_account_note" + }, + { + "defaultMessage": "Joined {date}", + "id": "account.joined" + } + ], + "path": "app/javascript/flavours/glitch/features/account/components/header.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Profile", + "id": "column_header.profile" + } + ], + "path": "app/javascript/flavours/glitch/features/account/components/profile_column_header.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Filter out by regular expressions", + "id": "home.column_settings.filter_regex" + }, + { + "defaultMessage": "Column settings", + "id": "home.settings" + }, + { + "defaultMessage": "Advanced", + "id": "home.column_settings.advanced" + } + ], + "path": "app/javascript/flavours/glitch/features/community_timeline/components/column_settings.json" + }, + { + "descriptors": [ + { + "defaultMessage": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "id": "confirmations.missing_media_description.message" + }, + { + "defaultMessage": "Send anyway", + "id": "confirmations.missing_media_description.confirm" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/components/compose_form.json" + }, + { + "descriptors": [ + { + "defaultMessage": "App settings", + "id": "navigation_bar.app_settings" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/components/header.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Advanced options", + "id": "advanced_options.icon_title" + }, + { + "defaultMessage": "Attach...", + "id": "compose.attach" + }, + { + "defaultMessage": "Content type", + "id": "content-type.change" + }, + { + "defaultMessage": "Draw something", + "id": "compose.attach.doodle" + }, + { + "defaultMessage": "HTML", + "id": "compose.content-type.html" + }, + { + "defaultMessage": "Do not post to other instances", + "id": "advanced_options.local-only.long" + }, + { + "defaultMessage": "Local-only", + "id": "advanced_options.local-only.short" + }, + { + "defaultMessage": "Markdown", + "id": "compose.content-type.markdown" + }, + { + "defaultMessage": "Plain text", + "id": "compose.content-type.plain" + }, + { + "defaultMessage": "Hide text behind warning", + "id": "compose_form.spoiler" + }, + { + "defaultMessage": "Automatically opens a reply on posting", + "id": "advanced_options.threaded_mode.long" + }, + { + "defaultMessage": "Threaded mode", + "id": "advanced_options.threaded_mode.short" + }, + { + "defaultMessage": "Upload a file", + "id": "compose.attach.upload" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/components/options.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Allow one choice", + "id": "compose_form.poll.single_choice" + }, + { + "defaultMessage": "Allow multiple choices", + "id": "compose_form.poll.multiple_choices" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/components/poll_form.json" + }, + { + "descriptors": [ + { + "defaultMessage": "This post is local-only", + "id": "advanced_options.local-only.tooltip" + }, + { + "defaultMessage": "Threaded mode enabled", + "id": "advanced_options.threaded_mode.tooltip" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/components/textarea_icons.json" + }, + { + "descriptors": [ + { + "defaultMessage": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "id": "confirmations.missing_media_description.message" + }, + { + "defaultMessage": "Send anyway", + "id": "confirmations.missing_media_description.confirm" + }, + { + "defaultMessage": "Edit media", + "id": "confirmations.missing_media_description.edit" + } + ], + "path": "app/javascript/flavours/glitch/features/compose/containers/compose_form_container.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Filter out by regular expressions", + "id": "home.column_settings.filter_regex" + }, + { + "defaultMessage": "Column settings", + "id": "home.settings" + }, + { + "defaultMessage": "Group by conversation", + "id": "direct.group_by_conversations" + }, + { + "defaultMessage": "Advanced", + "id": "home.column_settings.advanced" + } + ], + "path": "app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Favourited by", + "id": "column.favourited_by" + } + ], + "path": "app/javascript/flavours/glitch/features/favourites/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Misc", + "id": "column.heading" + }, + { + "defaultMessage": "Miscellaneous options", + "id": "column.subheading" + }, + { + "defaultMessage": "Extended information", + "id": "navigation_bar.info" + }, + { + "defaultMessage": "Show me around", + "id": "getting_started.onboarding" + }, + { + "defaultMessage": "Keyboard shortcuts", + "id": "navigation_bar.keyboard_shortcuts" + }, + { + "defaultMessage": "Featured users", + "id": "navigation_bar.featured_users" + } + ], + "path": "app/javascript/flavours/glitch/features/getting_started_misc/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Navigation", + "id": "column_subheading.navigation" + }, + { + "defaultMessage": "App settings", + "id": "navigation_bar.app_settings" + }, + { + "defaultMessage": "Keyboard shortcuts", + "id": "navigation_bar.keyboard_shortcuts" + }, + { + "defaultMessage": "Lists", + "id": "column_subheading.lists" + }, + { + "defaultMessage": "Misc", + "id": "navigation_bar.misc" + } + ], + "path": "app/javascript/flavours/glitch/features/getting_started/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Filter out by regular expressions", + "id": "home.column_settings.filter_regex" + }, + { + "defaultMessage": "Column settings", + "id": "home.settings" + }, + { + "defaultMessage": "Show DMs", + "id": "home.column_settings.show_direct" + }, + { + "defaultMessage": "Advanced", + "id": "home.column_settings.advanced" + } + ], + "path": "app/javascript/flavours/glitch/features/home_timeline/components/column_settings.json" + }, + { + "descriptors": [ + { + "defaultMessage": "to bookmark", + "id": "keyboard_shortcuts.bookmark" + }, + { + "defaultMessage": "to collapse/uncollapse toots", + "id": "keyboard_shortcuts.toggle_collapse" + }, + { + "defaultMessage": "to send toot using secondary privacy setting", + "id": "keyboard_shortcuts.secondary_toot" + } + ], + "path": "app/javascript/flavours/glitch/features/keyboard_shortcuts/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "General", + "id": "settings.general" + }, + { + "defaultMessage": "Compose box", + "id": "settings.compose_box_opts" + }, + { + "defaultMessage": "Content Warnings", + "id": "settings.content_warnings" + }, + { + "defaultMessage": "Filters", + "id": "settings.filters" + }, + { + "defaultMessage": "Collapsed toots", + "id": "settings.collapsed_statuses" + }, + { + "defaultMessage": "Media", + "id": "settings.media" + }, + { + "defaultMessage": "Preferences", + "id": "settings.preferences" + }, + { + "defaultMessage": "Close", + "id": "settings.close" + } + ], + "path": "app/javascript/flavours/glitch/features/local_settings/navigation/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Auto", + "id": "layout.auto" + }, + { + "defaultMessage": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "id": "layout.hint.auto" + }, + { + "defaultMessage": "Desktop", + "id": "layout.desktop" + }, + { + "defaultMessage": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "id": "layout.hint.desktop" + }, + { + "defaultMessage": "Mobile", + "id": "layout.single" + }, + { + "defaultMessage": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "id": "layout.hint.single" + }, + { + "defaultMessage": "None", + "id": "settings.side_arm.none" + }, + { + "defaultMessage": "Keep its set privacy", + "id": "settings.side_arm_reply_mode.keep" + }, + { + "defaultMessage": "Copy privacy setting of the toot being replied to", + "id": "settings.side_arm_reply_mode.copy" + }, + { + "defaultMessage": "Restrict privacy setting to that of the toot being replied to", + "id": "settings.side_arm_reply_mode.restrict" + }, + { + "defaultMessage": "Regular expression", + "id": "settings.content_warnings.regexp" + }, + { + "defaultMessage": "Do not rewrite mentions", + "id": "settings.rewrite_mentions_no" + }, + { + "defaultMessage": "Rewrite with username and domain (when the account is remote)", + "id": "settings.rewrite_mentions_acct" + }, + { + "defaultMessage": "Rewrite with username", + "id": "settings.rewrite_mentions_username" + }, + { + "defaultMessage": "Left", + "id": "settings.pop_in_left" + }, + { + "defaultMessage": "Right", + "id": "settings.pop_in_right" + }, + { + "defaultMessage": "General", + "id": "settings.general" + }, + { + "defaultMessage": "Display an estimate of the reply count", + "id": "settings.show_reply_counter" + }, + { + "defaultMessage": "High color privacy icons", + "id": "settings.hicolor_privacy_icons" + }, + { + "defaultMessage": "Display privacy icons in bright and easily distinguishable colors", + "id": "settings.hicolor_privacy_icons.hint" + }, + { + "defaultMessage": "Show confirmation dialog before boosting toots lacking media descriptions", + "id": "settings.confirm_boost_missing_media_description" + }, + { + "defaultMessage": "Tag misleading links", + "id": "settings.tag_misleading_links" + }, + { + "defaultMessage": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "id": "settings.tag_misleading_links.hint" + }, + { + "defaultMessage": "Rewrite mentions in displayed statuses", + "id": "settings.rewrite_mentions" + }, + { + "defaultMessage": "Notifications options", + "id": "settings.notifications_opts" + }, + { + "defaultMessage": "Unread notifications badge", + "id": "settings.notifications.tab_badge" + }, + { + "defaultMessage": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "id": "settings.notifications.tab_badge.hint" + }, + { + "defaultMessage": "Unread notifications favicon badge", + "id": "settings.notifications.favicon_badge" + }, + { + "defaultMessage": "Add a badge for unread notifications to the favicon", + "id": "settings.notifications.favicon_badge.hint" + }, + { + "defaultMessage": "Toot icons", + "id": "settings.status_icons" + }, + { + "defaultMessage": "Language indicator", + "id": "settings.status_icons_language" + }, + { + "defaultMessage": "Reply indicator", + "id": "settings.status_icons_reply" + }, + { + "defaultMessage": "Local-only indicator", + "id": "settings.status_icons_local_only" + }, + { + "defaultMessage": "Media and poll indicators", + "id": "settings.status_icons_media" + }, + { + "defaultMessage": "Toot privacy indicator", + "id": "settings.status_icons_visibility" + }, + { + "defaultMessage": "Layout options", + "id": "settings.layout_opts" + }, + { + "defaultMessage": "Layout:", + "id": "settings.layout" + }, + { + "defaultMessage": "Wide view (Desktop mode only)", + "id": "settings.wide_view" + }, + { + "defaultMessage": "Stretches columns to better fill the available space.", + "id": "settings.wide_view_hint" + }, + { + "defaultMessage": "Compose box", + "id": "settings.compose_box_opts" + }, + { + "defaultMessage": "Always enable the Content Warning field", + "id": "settings.always_show_spoilers_field" + }, + { + "defaultMessage": "Prepend “re: ” to content warnings when replying", + "id": "settings.prepend_cw_re" + }, + { + "defaultMessage": "Pre-select usernames on reply", + "id": "settings.preselect_on_reply" + }, + { + "defaultMessage": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "id": "settings.preselect_on_reply_hint" + }, + { + "defaultMessage": "Show confirmation dialog before sending toots lacking media descriptions", + "id": "settings.confirm_missing_media_description" + }, + { + "defaultMessage": "Show confirmation dialog before overwriting the message being composed", + "id": "settings.confirm_before_clearing_draft" + }, + { + "defaultMessage": "Show content-type choice when authoring toots", + "id": "settings.show_content_type_choice" + }, + { + "defaultMessage": "Secondary toot button:", + "id": "settings.side_arm" + }, + { + "defaultMessage": "When replying to a toot, the secondary toot button should:", + "id": "settings.side_arm_reply_mode" + }, + { + "defaultMessage": "Content warnings", + "id": "settings.content_warnings" + }, + { + "defaultMessage": "Show/hide content of all copies at once", + "id": "settings.content_warnings_shared_state" + }, + { + "defaultMessage": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "id": "settings.content_warnings_shared_state_hint" + }, + { + "defaultMessage": "Display media attachments outside content warnings", + "id": "settings.content_warnings_media_outside" + }, + { + "defaultMessage": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "id": "settings.content_warnings_media_outside_hint" + }, + { + "defaultMessage": "Auto-unfolding options", + "id": "settings.content_warnings_unfold_opts" + }, + { + "defaultMessage": "Automatically unfold content-warnings", + "id": "settings.enable_content_warnings_auto_unfold" + }, + { + "defaultMessage": "This setting is now controlled from Mastodon's {settings_page_link}", + "id": "settings.deprecated_setting" + }, + { + "defaultMessage": "user preferences", + "id": "settings.shared_settings_link" + }, + { + "defaultMessage": "Content warnings to not automatically unfold:", + "id": "settings.content_warnings_filter" + }, + { + "defaultMessage": "Collapsed toots", + "id": "settings.collapsed_statuses" + }, + { + "defaultMessage": "Enable collapsed toots", + "id": "settings.enable_collapsed" + }, + { + "defaultMessage": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "id": "settings.enable_collapsed_hint" + }, + { + "defaultMessage": "Show action buttons in collapsed toots", + "id": "settings.show_action_bar" + }, + { + "defaultMessage": "Automatic collapsing", + "id": "settings.auto_collapse" + }, + { + "defaultMessage": "Everything", + "id": "settings.auto_collapse_all" + }, + { + "defaultMessage": "Notifications", + "id": "settings.auto_collapse_notifications" + }, + { + "defaultMessage": "Lengthy toots", + "id": "settings.auto_collapse_lengthy" + }, + { + "defaultMessage": "Boosts", + "id": "settings.auto_collapse_reblogs" + }, + { + "defaultMessage": "Replies", + "id": "settings.auto_collapse_replies" + }, + { + "defaultMessage": "Toots with media", + "id": "settings.auto_collapse_media" + }, + { + "defaultMessage": "Image backgrounds", + "id": "settings.image_backgrounds" + }, + { + "defaultMessage": "Give collapsed toots an image background", + "id": "settings.image_backgrounds_users" + }, + { + "defaultMessage": "Preview collapsed toot media", + "id": "settings.image_backgrounds_media" + }, + { + "defaultMessage": "If the post has any media attachment, use the first one as a background", + "id": "settings.image_backgrounds_media_hint" + }, + { + "defaultMessage": "Media", + "id": "settings.media" + }, + { + "defaultMessage": "Letterbox media", + "id": "settings.media_letterbox" + }, + { + "defaultMessage": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "id": "settings.media_letterbox_hint" + }, + { + "defaultMessage": "Full-width media previews", + "id": "settings.media_fullwidth" + }, + { + "defaultMessage": "Inline preview cards for external links", + "id": "settings.inline_preview_cards" + }, + { + "defaultMessage": "Reveal sensitive media behind a CW by default", + "id": "settings.media_reveal_behind_cw" + }, + { + "defaultMessage": "Enable pop-in player", + "id": "settings.pop_in_player" + }, + { + "defaultMessage": "Pop-in player position:", + "id": "settings.pop_in_position" + } + ], + "path": "app/javascript/flavours/glitch/features/local_settings/page/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Mark for deletion", + "id": "notification.markForDeletion" + } + ], + "path": "app/javascript/flavours/glitch/features/notifications/components/overlay.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Enter notification cleaning mode", + "id": "notification_purge.start" + } + ], + "path": "app/javascript/flavours/glitch/features/notifications/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Featured accounts", + "id": "endorsed_accounts_editor.endorsed_accounts" + } + ], + "path": "app/javascript/flavours/glitch/features/pinned_accounts_editor/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Filter out by regular expressions", + "id": "home.column_settings.filter_regex" + }, + { + "defaultMessage": "Show local-only toots", + "id": "community.column_settings.allow_local_only" + }, + { + "defaultMessage": "Advanced", + "id": "home.column_settings.advanced" + } + ], + "path": "app/javascript/flavours/glitch/features/public_timeline/components/column_settings.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Boosted by", + "id": "column.reblogged_by" + } + ], + "path": "app/javascript/flavours/glitch/features/reblogs/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "This toot contains some media without description", + "id": "boost_modal.missing_description" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/boost_modal.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Do not ask for confirmation again", + "id": "confirmation_modal.do_not_ask_again" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/confirmation_modal.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Use Mastodon preferences", + "id": "confirmations.deprecated_settings.confirm" + }, + { + "defaultMessage": "Automatically unfold content-warnings", + "id": "settings.enable_content_warnings_auto_unfold" + }, + { + "defaultMessage": "Allow swiping to change columns (Mobile only)", + "id": "settings.swipe_to_change_columns" + }, + { + "defaultMessage": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "id": "confirmations.deprecated_settings.message" + }, + { + "defaultMessage": "App settings", + "id": "navigation_bar.app_settings" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.json" + }, + { + "descriptors": [ + { + "defaultMessage": "You can press {combo} to skip this next time", + "id": "favourite_modal.combo" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/favourite_modal.json" + }, + { + "descriptors": [ + { + "defaultMessage": "App settings", + "id": "navigation_bar.app_settings" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/navigation_panel.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Welcome to {domain}!", + "id": "onboarding.page_one.welcome" + }, + { + "defaultMessage": "{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.", + "id": "onboarding.page_one.federation" + }, + { + "defaultMessage": "You are on {domain}, so your full handle is {handle}", + "id": "onboarding.page_one.handle" + }, + { + "defaultMessage": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "id": "onboarding.page_two.compose" + }, + { + "defaultMessage": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "id": "onboarding.page_three.search" + }, + { + "defaultMessage": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "id": "onboarding.page_three.profile" + }, + { + "defaultMessage": "The home timeline shows posts from people you follow.", + "id": "onboarding.page_four.home" + }, + { + "defaultMessage": "The notifications column shows when someone interacts with you.", + "id": "onboarding.page_four.notifications" + }, + { + "defaultMessage": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "id": "onboarding.page_five.public_timelines" + }, + { + "defaultMessage": "Your instance's admin is {admin}.", + "id": "onboarding.page_six.admin" + }, + { + "defaultMessage": "Please read {domain}'s {guidelines}!", + "id": "onboarding.page_six.read_guidelines" + }, + { + "defaultMessage": "community guidelines", + "id": "onboarding.page_six.guidelines" + }, + { + "defaultMessage": "Almost done...", + "id": "onboarding.page_six.almost_done" + }, + { + "defaultMessage": "{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}.", + "id": "onboarding.page_six.github" + }, + { + "defaultMessage": "There are {apps} available for iOS, Android and other platforms.", + "id": "onboarding.page_six.apps_available" + }, + { + "defaultMessage": "mobile apps", + "id": "onboarding.page_six.various_app" + }, + { + "defaultMessage": "Bon Appetoot!", + "id": "onboarding.page_six.appetoot" + }, + { + "defaultMessage": "Next", + "id": "onboarding.next" + }, + { + "defaultMessage": "Done", + "id": "onboarding.done" + }, + { + "defaultMessage": "Skip", + "id": "onboarding.skip" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/components/onboarding_modal.json" + }, + { + "descriptors": [ + { + "defaultMessage": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "id": "moved_to_warning" + } + ], + "path": "app/javascript/flavours/glitch/features/ui/index.json" + } +] \ No newline at end of file diff --git a/app/javascript/flavours/glitch/locales/el.js b/app/javascript/flavours/glitch/locales/el.js deleted file mode 100644 index 2d9bb829f2..0000000000 --- a/app/javascript/flavours/glitch/locales/el.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/el.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/el.json b/app/javascript/flavours/glitch/locales/el.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/el.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/en.js b/app/javascript/flavours/glitch/locales/en.js deleted file mode 100644 index fd3f17683d..0000000000 --- a/app/javascript/flavours/glitch/locales/en.js +++ /dev/null @@ -1,192 +0,0 @@ -import inherited from 'mastodon/locales/en.json'; - -const messages = { - 'getting_started.open_source_notice': 'Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.', - 'layout.auto': 'Auto', - 'layout.current_is': 'Your current layout is:', - 'layout.desktop': 'Desktop', - 'layout.single': 'Mobile', - 'layout.hint.auto': 'Automatically chose layout based on “Enable advanced web interface” setting and screen size.', - 'layout.hint.desktop': 'Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.', - 'layout.hint.single': 'Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.', - 'navigation_bar.app_settings': 'App settings', - 'navigation_bar.misc': 'Misc', - 'navigation_bar.keyboard_shortcuts': 'Keyboard shortcuts', - 'navigation_bar.info': 'Extended information', - 'navigation_bar.featured_users': 'Featured users', - 'getting_started.onboarding': 'Show me around', - 'onboarding.next': 'Next', - 'onboarding.done': 'Done', - 'onboarding.skip': 'Skip', - '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.welcome': 'Welcome to {domain}!', - 'onboarding.page_one.handle': 'You are on {domain}, so your full handle is {handle}', - 'onboarding.page_two.compose': 'Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.', - 'onboarding.page_three.search': 'Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.', - 'onboarding.page_three.profile': 'Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.', - 'onboarding.page_four.home': 'The home timeline shows posts from people you follow.', - 'onboarding.page_four.notifications': 'The notifications column shows when someone interacts with you.', - 'onboarding.page_five.public_timelines': 'The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.', - 'onboarding.page_six.admin': 'Your instance\'s admin is {admin}.', - 'onboarding.page_six.read_guidelines': 'Please read {domain}\'s {guidelines}!', - 'onboarding.page_six.guidelines': 'community guidelines', - 'onboarding.page_six.almost_done': 'Almost done...', - 'onboarding.page_six.github': '{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.', - 'onboarding.page_six.apps_available': 'There are {apps} available for iOS, Android and other platforms.', - 'onboarding.page_six.various_app': 'mobile apps', - 'onboarding.page_six.appetoot': 'Bon Appetoot!', - 'settings.auto_collapse': 'Automatic collapsing', - 'settings.auto_collapse_all': 'Everything', - 'settings.auto_collapse_lengthy': 'Lengthy toots', - 'settings.auto_collapse_media': 'Toots with media', - 'settings.auto_collapse_notifications': 'Notifications', - 'settings.auto_collapse_reblogs': 'Boosts', - 'settings.auto_collapse_replies': 'Replies', - 'settings.show_action_bar': 'Show action buttons in collapsed toots', - 'settings.close': 'Close', - 'settings.collapsed_statuses': 'Collapsed toots', - 'settings.enable_collapsed': 'Enable collapsed toots', - 'settings.enable_collapsed_hint': 'Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature', - 'settings.general': 'General', - 'settings.compose_box_opts': 'Compose box', - 'settings.side_arm': 'Secondary toot button:', - 'settings.side_arm.none': 'None', - 'settings.side_arm_reply_mode': 'When replying to a toot, the secondary toot button should:', - 'settings.side_arm_reply_mode.keep': 'Keep its set privacy', - 'settings.side_arm_reply_mode.copy': 'Copy privacy setting of the toot being replied to', - 'settings.side_arm_reply_mode.restrict': 'Restrict privacy setting to that of the toot being replied to', - 'settings.always_show_spoilers_field': 'Always enable the Content Warning field', - 'settings.prepend_cw_re': 'Prepend “re: ” to content warnings when replying', - 'settings.preselect_on_reply': 'Pre-select usernames on reply', - 'settings.preselect_on_reply_hint': 'When replying to a conversation with multiple participants, pre-select usernames past the first', - 'settings.confirm_missing_media_description': 'Show confirmation dialog before sending toots lacking media descriptions', - 'settings.confirm_before_clearing_draft': 'Show confirmation dialog before overwriting the message being composed', - 'settings.show_content_type_choice': 'Show content-type choice when authoring toots', - 'settings.content_warnings': 'Content Warnings', - 'settings.content_warnings.regexp': 'Regular expression', - 'settings.content_warnings_shared_state': 'Show/hide content of all copies at once', - 'settings.content_warnings_shared_state_hint': 'Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW', - 'settings.content_warnings_media_outside': 'Display media attachments outside content warnings', - 'settings.content_warnings_media_outside_hint': 'Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments', - 'settings.content_warnings_unfold_opts': 'Auto-unfolding options', - 'settings.enable_content_warnings_auto_unfold': 'Automatically unfold content-warnings', - 'settings.deprecated_setting': 'This setting is now controlled from Mastodon\'s {settings_page_link}', - 'settings.shared_settings_link': 'user preferences', - 'settings.content_warnings_filter': 'Content warnings to not automatically unfold:', - 'settings.layout_opts': 'Layout options', - 'settings.rewrite_mentions_no': 'Do not rewrite mentions', - 'settings.rewrite_mentions_acct': 'Rewrite with username and domain (when the account is remote)', - 'settings.rewrite_mentions_username': 'Rewrite with username', - 'settings.show_reply_counter': 'Display an estimate of the reply count', - 'settings.hicolor_privacy_icons': 'High color privacy icons', - 'settings.hicolor_privacy_icons.hint': 'Display privacy icons in bright and easily distinguishable colors', - 'settings.confirm_boost_missing_media_description': 'Show confirmation dialog before boosting toots lacking media descriptions', - 'settings.tag_misleading_links': 'Tag misleading links', - 'settings.tag_misleading_links.hint': 'Add a visual indication with the link target host to every link not mentioning it explicitly', - 'settings.rewrite_mentions': 'Rewrite mentions in displayed statuses', - 'settings.notifications_opts': 'Notifications options', - 'settings.notifications.tab_badge': 'Unread notifications badge', - 'settings.notifications.tab_badge.hint': 'Display a badge for unread notifications in the column icons when the notifications column isn\'t open', - 'settings.notifications.favicon_badge': 'Unread notifications favicon badge', - 'settings.notifications.favicon_badge.hint': 'Add a badge for unread notifications to the favicon', - 'settings.status_icons': 'Toot icons', - 'settings.status_icons_language': 'Language indicator', - 'settings.status_icons_reply': 'Reply indicator', - 'settings.status_icons_local_only': 'Local-only indicator', - 'settings.status_icons_media': 'Media and poll indicators', - 'settings.status_icons_visibility': 'Toot privacy indicator', - 'settings.layout': 'Layout:', - 'settings.image_backgrounds': 'Image backgrounds', - 'settings.image_backgrounds_media': 'Preview collapsed toot media', - 'settings.image_backgrounds_media_hint': 'If the post has any media attachment, use the first one as a background', - 'settings.image_backgrounds_users': 'Give collapsed toots an image background', - 'settings.media': 'Media', - 'settings.media_letterbox': 'Letterbox media', - 'settings.media_letterbox_hint': 'Scale down and letterbox media to fill the image containers instead of stretching and cropping them', - 'settings.media_fullwidth': 'Full-width media previews', - 'settings.inline_preview_cards': 'Inline preview cards for external links', - 'settings.media_reveal_behind_cw': 'Reveal sensitive media behind a CW by default', - 'settings.pop_in_player': 'Enable pop-in player', - 'settings.pop_in_position': 'Pop-in player position:', - 'settings.pop_in_left': 'Left', - 'settings.pop_in_right': 'Right', - 'settings.preferences': 'User preferences', - 'settings.wide_view': 'Wide view (Desktop mode only)', - 'settings.wide_view_hint': 'Stretches columns to better fill the available space.', - 'settings.navbar_under': 'Navbar at the bottom (Mobile only)', - 'status.collapse': 'Collapse', - 'status.uncollapse': 'Uncollapse', - 'status.in_reply_to': 'This toot is a reply', - 'status.has_preview_card': 'Features an attached preview card', - 'status.has_pictures': 'Features attached pictures', - 'status.is_poll': 'This toot is a poll', - 'status.has_video': 'Features attached videos', - 'status.has_audio': 'Features attached audio files', - 'status.local_only': 'Only visible from your instance', - - 'content_type.change': 'Content type', - 'compose.content-type.html': 'HTML', - 'compose.content-type.markdown': 'Markdown', - 'compose.content-type.plain': 'Plain text', - - 'compose_form.poll.single_choice': 'Allow one choice', - 'compose_form.poll.multiple_choices': 'Allow multiple choices', - 'compose_form.spoiler': 'Hide text behind warning', - - 'column.toot': 'Toots and replies', - 'column_header.profile': 'Profile', - 'column.heading': 'Misc', - 'column.subheading': 'Miscellaneous options', - 'column_subheading.navigation': 'Navigation', - 'column_subheading.lists': 'Lists', - - 'media_gallery.sensitive': 'Sensitive', - - 'favourite_modal.combo': 'You can press {combo} to skip this next time', - - 'home.column_settings.show_direct': 'Show DMs', - - 'notification.markForDeletion': 'Mark for deletion', - 'notifications.clear': 'Clear all my notifications', - 'notifications.marked_clear_confirmation': 'Are you sure you want to permanently clear all selected notifications?', - 'notifications.marked_clear': 'Clear selected notifications', - - 'notification_purge.start': 'Enter notification cleaning mode', - 'notification_purge.btn_all': 'Select\nall', - 'notification_purge.btn_none': 'Select\nnone', - 'notification_purge.btn_invert': 'Invert\nselection', - 'notification_purge.btn_apply': 'Clear\nselected', - - 'compose.attach.upload': 'Upload a file', - 'compose.attach.doodle': 'Draw something', - 'compose.attach': 'Attach...', - - 'advanced_options.local-only.short': 'Local-only', - 'advanced_options.local-only.long': 'Do not post to other instances', - 'advanced_options.local-only.tooltip': 'This post is local-only', - 'advanced_options.icon_title': 'Advanced options', - 'advanced_options.threaded_mode.short': 'Threaded mode', - 'advanced_options.threaded_mode.long': 'Automatically opens a reply on posting', - 'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled', - - 'endorsed_accounts_editor.endorsed_accounts': 'Featured accounts', - - 'account.add_account_note': 'Add note for @{name}', - 'account_note.cancel': 'Cancel', - 'account_note.save': 'Save', - 'account_note.edit': 'Edit', - 'account_note.glitch_placeholder': 'No comment provided', - 'account.joined': 'Joined {date}', - 'account.follows': 'Follows', - - 'home.column_settings.advanced': 'Advanced', - 'home.column_settings.filter_regex': 'Filter out by regular expressions', - 'direct.group_by_conversations': 'Group by conversation', - 'community.column_settings.allow_local_only': 'Show local-only toots', - - 'keyboard_shortcuts.bookmark': 'to bookmark', - 'keyboard_shortcuts.toggle_collapse': 'to collapse/uncollapse toots', - 'keyboard_shortcuts.secondary_toot': 'to send toot using secondary privacy setting', -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/en.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/eo.js b/app/javascript/flavours/glitch/locales/eo.js deleted file mode 100644 index 04192f5064..0000000000 --- a/app/javascript/flavours/glitch/locales/eo.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/eo.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/eo.json b/app/javascript/flavours/glitch/locales/eo.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/eo.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/es-AR.js b/app/javascript/flavours/glitch/locales/es-AR.js deleted file mode 100644 index 0dffabcd4e..0000000000 --- a/app/javascript/flavours/glitch/locales/es-AR.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/es-AR.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/es-AR.json b/app/javascript/flavours/glitch/locales/es-AR.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/es-AR.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/es-MX.js b/app/javascript/flavours/glitch/locales/es-MX.js deleted file mode 100644 index eaefa20efa..0000000000 --- a/app/javascript/flavours/glitch/locales/es-MX.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/es-MX.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/es-MX.json b/app/javascript/flavours/glitch/locales/es-MX.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/es-MX.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/es.js b/app/javascript/flavours/glitch/locales/es.js deleted file mode 100644 index f22062977c..0000000000 --- a/app/javascript/flavours/glitch/locales/es.js +++ /dev/null @@ -1,119 +0,0 @@ -import inherited from 'mastodon/locales/es.json'; - -const messages = { - 'advanced_options.icon_title': 'Opciones avanzadas', - 'advanced_options.local-only.long': 'No publicar a otras instancias', - 'advanced_options.local-only.short': 'Local', - 'advanced_options.local-only.tooltip': 'Este toot es local', - 'advanced_options.threaded_mode.long': 'Al publicar abre automáticamente una respuesta', - 'advanced_options.threaded_mode.short': 'Modo hilo', - 'advanced_options.threaded_mode.tooltip': 'Modo hilo habilitado', - 'compose.attach.doodle': 'Dibujar algo', - 'compose.attach.upload': 'Subir un archivo', - 'compose.attach': 'Adjuntar...', - 'favourite_modal.combo': 'Puedes presionar {combo} para omitir esto la próxima vez', - 'getting_started.onboarding': 'Paseo inicial', - 'getting_started.open_source_notice': 'Glitchsoc es software libre y gratuito bifurcado de {Mastodon}. Puedes contribuir o reportar errores en GitHub en {github}.', - 'home.column_settings.show_direct': 'Mostrar mensajes directos', - 'layout.auto': 'Automático', - 'layout.current_is': 'Tu diseño actual es:', - 'layout.desktop': 'Escritorio', - 'layout.hint.auto': 'Seleccionar un diseño automáticamente basado en "Habilitar interface web avanzada" y tamaño de pantalla', - 'layout.hint.desktop': 'Utiliza el diseño multi-columna sin importar "Habilitar interface web avanzada" o tamaño de pantalla', - 'layout.hint.single': 'Utiliza el diseño de una columna sin importar "Habilitar interface web avanzada" o tamaño de pantalla', - 'layout.mobile': 'Móvil', - 'media_gallery.sensitive': 'Sensible', - 'navigation_bar.app_settings': 'Ajustes de aplicación', - 'notification_purge.btn_all': 'Seleccionar\ntodo', - 'notification_purge.btn_apply': 'Borrar\nselección', - 'notification_purge.btn_invert': 'Invertir\nselección', - 'notification_purge.btn_none': 'Seleccionar\nnada', - 'notification.markForDeletion': 'Marcar para borrar', - 'notifications.clear': 'Limpiar notificaciones', - 'notifications.marked_clear_confirmation': '¿Deseas borrar permanentemente todas las notificaciones seleccionadas?', - 'notifications.marked_clear': 'Limpiar notificaciones seleccionadas', - 'onboarding.page_one.federation': '{domain} es una "instancia" de Mastodon. Mastodon es una red de servidores independientes que se unen para crear una red social más grande. A estos servidores los llamamos instancias.', - 'onboarding.page_one.welcome': '¡Bienvenidx a {domain}!', - 'onboarding.page_six.github': '{domain} usa Glitchsoc. Glitchsoc es una bifurcación {fork} amigable de {Mastodon}, y es compatible con cualquier instancia o aplicación de Mastodon. Glitchsoc es completamente gratuito y de código abierto. Puedes reportar errores, solicitar funciones o contribuir al código en {github}.', - 'settings.always_show_spoilers_field': 'Siempre mostrar el campo de advertencia de contenido', - 'settings.auto_collapse_all': 'Todo', - 'settings.auto_collapse_lengthy': 'Toots largos', - 'settings.auto_collapse_media': 'Toots con medios', - 'settings.auto_collapse_notifications': 'Notificaciones', - 'settings.auto_collapse_reblogs': 'Retoots', - 'settings.auto_collapse_replies': 'Respuestas', - 'settings.auto_collapse': 'Colapsar automáticamente', - 'settings.close': 'Cerrar', - 'settings.collapsed_statuses': 'Toots colapsados', - 'settings.compose_box_opts': 'Cuadro de redacción', - 'settings.confirm_before_clearing_draft': 'Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo', - 'settings.confirm_boost_missing_media_description': 'Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción', - 'settings.confirm_missing_media_description': 'Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción', - 'settings.content_warnings_filter': 'No descolapsar estas advertencias de contenido:', - 'settings.content_warnings.regexp': 'Regexp (expresión regular)', - 'settings.content_warnings': 'Advertencias de contenido', - 'settings.enable_collapsed': 'Habilitar toots colapsados', - 'settings.enable_content_warnings_auto_unfold': 'Descolapsar automáticamente advertencias de contenido', - 'settings.filtering_behavior.cw': 'Mostrar el toot y agregar las palabras filtradas a la advertencia de contenido', - 'settings.filtering_behavior.drop': 'Ocultar toots filtrados por completo', - 'settings.filtering_behavior.hide': 'Mostrar "Filtrado" y agregar un botón para saber por qué', - 'settings.filtering_behavior.upstream': 'Mostrar "Filtrado"', - 'settings.filtering_behavior': 'Configuración de filtros', - 'settings.filters': 'Filtros', - 'settings.general': 'General', - 'settings.hicolor_privacy_icons': 'Íconos de privacidad más visibles', - 'settings.image_backgrounds_media': 'Vista previa de medios de toots colapsados', - 'settings.image_backgrounds_users': 'Darle fondo de imagen a toots colapsados', - 'settings.image_backgrounds': 'Fondos de imágenes', - 'settings.inline_preview_cards': 'Vista previa para enlaces externos', - 'settings.layout_opts': 'Opciones de diseño', - 'settings.layout': 'Diseño', - 'settings.media_fullwidth': 'Ancho completo al mostrar medios ', - 'settings.media_letterbox_hint': 'Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos', - 'settings.media_letterbox': 'Mantener proporciones al mostrar medios', - 'settings.media_reveal_behind_cw': 'Siempre mostrar medios sensibles dentro de las advertencias de contenido', - 'settings.media': 'Medios', - 'settings.navbar_under': 'Barra de navegación en la parte inferior (solo móvil)', - 'settings.notifications_opts': 'Opciones de notificaciones', - 'settings.notifications.favicon_badge.hint': 'Muestra un marcador de notificaciones sin leer en el favicon', - 'settings.notifications.favicon_badge': 'Marcador de notificaciones en el favicon', - 'settings.notifications.tab_badge.hint': 'Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta', - 'settings.notifications.tab_badge': 'Marcador de notificaciones no leídas', - 'settings.preferences': 'Preferencias de usuarix', - 'settings.prepend_cw_re': 'Anteponer "re: " a las advertencias de contenido al responder', - 'settings.preselect_on_reply_hint': 'Al responder a conversaciones con múltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx', - 'settings.preselect_on_reply': 'Preseleccionar nombres de usuarix al responder', - 'settings.rewrite_mentions_acct': 'Reescribir con nombre de usuarix y dominio (para cuentas remotas)', - 'settings.rewrite_mentions_no': 'No reescribir menciones', - 'settings.rewrite_mentions_username': 'Reescribir con nombre de usuarix', - 'settings.rewrite_mentions': 'Reescribir menciones in publicaciones mostradas', - 'settings.show_action_bar': 'Mostrar botones de acción en toots colapsados', - 'settings.show_content_type_choice': 'Mostrar selección de tipo de contenido al crear toots', - 'settings.show_reply_counter': 'Mostrar un conteo estimado de respuestas', - 'settings.side_arm_reply_mode.copy': 'Copiar opción de privacidad del toot al que estás respondiendo', - 'settings.side_arm_reply_mode.keep': 'Conservar opción de privacidad', - 'settings.side_arm_reply_mode.restrict': 'Restringir la opción de privacidad a la misma del toot al que estás respondiendo', - 'settings.side_arm_reply_mode': 'Al responder a un toot, el botón de toot secundario debe:', - 'settings.side_arm.none': 'Ninguno', - 'settings.side_arm': 'Botón secundario:', - 'settings.swipe_to_change_columns': 'Permitir deslizar para cambiar columnas (Sólo en móvil)', - 'settings.tag_misleading_links.hint': 'Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente', - 'settings.tag_misleading_links': 'Marcar enlaces engañosos', - 'settings.wide_view': 'Vista amplia (solo modo de escritorio)', - 'status.collapse': 'Colapsar', - 'status.uncollapse': 'Descolapsar', - 'confirmations.unfilter': 'Información del toot filtrado', - 'confirmations.unfilter.author': 'Publicado por', - 'confirmations.unfilter.filters': 'Coincidencia con {count, plural, one {filtro} other {filtros}}', - 'confirmations.unfilter.edit_filter': 'Editar filtro', - 'confirmations.unfilter.confirm': 'Mostrar', - 'confirmations.delete.confirm': 'Borrar', - 'confirmations.delete.message': 'Por favor confirma borrado', - 'confirmations.redraft.confirm': 'Borrar y volver a borrador', - 'confirmations.redraft.message': '¿Borrar y volver a borrador? Perderás todas las respuestas, retoots y favoritos asociados, y las respuestas a la publicación original quedarán huérfanos.', - 'confirmations.reply.confirm': 'Responder', - 'confirmations.reply.message': 'Responder no sobreescribirá el mensaje que estás escibiendo actualmente. ¿Deseas continuar?', - 'status.show_filter_reason': '(mostrar por qué)', -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json new file mode 100644 index 0000000000..d032c8d537 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/es.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Opciones avanzadas", + "advanced_options.local-only.long": "No publicar a otras instancias", + "advanced_options.local-only.short": "Local", + "advanced_options.local-only.tooltip": "Este toot es local", + "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", + "advanced_options.threaded_mode.short": "Modo hilo", + "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Adjuntar...", + "compose.attach.doodle": "Dibujar algo", + "compose.attach.upload": "Subir un archivo", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Publicado por", + "confirmations.unfilter.confirm": "Mostrar", + "confirmations.unfilter.edit_filter": "Editar filtro", + "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", + "getting_started.onboarding": "Paseo inicial", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Mostrar mensajes directos", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Automático", + "layout.desktop": "Escritorio", + "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", + "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", + "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensible", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "Ajustes de aplicación", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Marcar para borrar", + "notification_purge.btn_all": "Seleccionar\ntodo", + "notification_purge.btn_apply": "Borrar\nselección", + "notification_purge.btn_invert": "Invertir\nselección", + "notification_purge.btn_none": "Seleccionar\nnada", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Limpiar notificaciones seleccionadas", + "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "onboarding.page_one.federation": "{domain} es una \"instancia\" de Mastodon. Mastodon es una red de servidores independientes que se unen para crear una red social más grande. A estos servidores los llamamos instancias.", + "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} usa Glitchsoc. Glitchsoc es una bifurcación {fork} amigable de {Mastodon}, y es compatible con cualquier instancia o aplicación de Mastodon. Glitchsoc es completamente gratuito y de código abierto. Puedes reportar errores, solicitar funciones o contribuir al código en {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", + "settings.auto_collapse": "Colapsar automáticamente", + "settings.auto_collapse_all": "Todo", + "settings.auto_collapse_lengthy": "Toots largos", + "settings.auto_collapse_media": "Toots con medios", + "settings.auto_collapse_notifications": "Notificaciones", + "settings.auto_collapse_reblogs": "Retoots", + "settings.auto_collapse_replies": "Respuestas", + "settings.close": "Cerrar", + "settings.collapsed_statuses": "Toots colapsados", + "settings.compose_box_opts": "Cuadro de redacción", + "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo", + "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción", + "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción", + "settings.content_warnings": "Advertencias de contenido", + "settings.content_warnings.regexp": "Regexp (expresión regular)", + "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Habilitar toots colapsados", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", + "settings.filters": "Filtros", + "settings.general": "General", + "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Fondos de imágenes", + "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", + "settings.inline_preview_cards": "Vista previa para enlaces externos", + "settings.layout": "Diseño", + "settings.layout_opts": "Opciones de diseño", + "settings.media": "Medios", + "settings.media_fullwidth": "Ancho completo al mostrar medios ", + "settings.media_letterbox": "Mantener proporciones al mostrar medios", + "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos", + "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido", + "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon", + "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon", + "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", + "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", + "settings.notifications_opts": "Opciones de notificaciones", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferencias de usuarix", + "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", + "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", + "settings.preselect_on_reply_hint": "Al responder a conversaciones con múltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx", + "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas", + "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", + "settings.rewrite_mentions_no": "No reescribir menciones", + "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", + "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", + "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", + "settings.side_arm": "Botón secundario:", + "settings.side_arm.none": "Ninguno", + "settings.side_arm_reply_mode": "Al responder a un toot, el botón de toot secundario debe:", + "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", + "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", + "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", + "settings.tag_misleading_links": "Marcar enlaces engañosos", + "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", + "settings.wide_view": "Vista amplia (solo modo de escritorio)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Colapsar", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Descolapsar", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/et.js b/app/javascript/flavours/glitch/locales/et.js deleted file mode 100644 index e3ea6b2a9b..0000000000 --- a/app/javascript/flavours/glitch/locales/et.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/et.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/et.json b/app/javascript/flavours/glitch/locales/et.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/et.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/eu.js b/app/javascript/flavours/glitch/locales/eu.js deleted file mode 100644 index 946410b679..0000000000 --- a/app/javascript/flavours/glitch/locales/eu.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/eu.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/eu.json b/app/javascript/flavours/glitch/locales/eu.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/eu.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/fa.js b/app/javascript/flavours/glitch/locales/fa.js deleted file mode 100644 index d82461a1a2..0000000000 --- a/app/javascript/flavours/glitch/locales/fa.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/fa.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/fa.json b/app/javascript/flavours/glitch/locales/fa.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fa.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/fi.js b/app/javascript/flavours/glitch/locales/fi.js deleted file mode 100644 index 11c3cd082f..0000000000 --- a/app/javascript/flavours/glitch/locales/fi.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/fi.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/fi.json b/app/javascript/flavours/glitch/locales/fi.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fi.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/fr.js b/app/javascript/flavours/glitch/locales/fr.js deleted file mode 100644 index 8562f55944..0000000000 --- a/app/javascript/flavours/glitch/locales/fr.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/fr.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fr.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ga.js b/app/javascript/flavours/glitch/locales/ga.js deleted file mode 100644 index af2846ff82..0000000000 --- a/app/javascript/flavours/glitch/locales/ga.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ga.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ga.json b/app/javascript/flavours/glitch/locales/ga.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ga.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/gd.js b/app/javascript/flavours/glitch/locales/gd.js deleted file mode 100644 index 604ee86dcc..0000000000 --- a/app/javascript/flavours/glitch/locales/gd.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/gd.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/gd.json b/app/javascript/flavours/glitch/locales/gd.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/gd.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/gl.js b/app/javascript/flavours/glitch/locales/gl.js deleted file mode 100644 index 6a9140b1ae..0000000000 --- a/app/javascript/flavours/glitch/locales/gl.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/gl.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/gl.json b/app/javascript/flavours/glitch/locales/gl.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/gl.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/he.js b/app/javascript/flavours/glitch/locales/he.js deleted file mode 100644 index 99516ee0cf..0000000000 --- a/app/javascript/flavours/glitch/locales/he.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/he.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/he.json b/app/javascript/flavours/glitch/locales/he.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/he.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/hi.js b/app/javascript/flavours/glitch/locales/hi.js deleted file mode 100644 index 1a569495f7..0000000000 --- a/app/javascript/flavours/glitch/locales/hi.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/hi.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/hi.json b/app/javascript/flavours/glitch/locales/hi.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/hi.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/hr.js b/app/javascript/flavours/glitch/locales/hr.js deleted file mode 100644 index dbf9b4b9fb..0000000000 --- a/app/javascript/flavours/glitch/locales/hr.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/hr.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/hr.json b/app/javascript/flavours/glitch/locales/hr.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/hr.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/hu.js b/app/javascript/flavours/glitch/locales/hu.js deleted file mode 100644 index 1f0849af3c..0000000000 --- a/app/javascript/flavours/glitch/locales/hu.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/hu.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/hu.json b/app/javascript/flavours/glitch/locales/hu.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/hu.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/hy.js b/app/javascript/flavours/glitch/locales/hy.js deleted file mode 100644 index 96f6a4d199..0000000000 --- a/app/javascript/flavours/glitch/locales/hy.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/hy.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/hy.json b/app/javascript/flavours/glitch/locales/hy.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/hy.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/id.js b/app/javascript/flavours/glitch/locales/id.js deleted file mode 100644 index 07e5f7e56a..0000000000 --- a/app/javascript/flavours/glitch/locales/id.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/id.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/id.json b/app/javascript/flavours/glitch/locales/id.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/id.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/io.js b/app/javascript/flavours/glitch/locales/io.js deleted file mode 100644 index 74ea6fae6c..0000000000 --- a/app/javascript/flavours/glitch/locales/io.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/io.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/io.json b/app/javascript/flavours/glitch/locales/io.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/io.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/is.js b/app/javascript/flavours/glitch/locales/is.js deleted file mode 100644 index b05a08ad0b..0000000000 --- a/app/javascript/flavours/glitch/locales/is.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/is.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/is.json b/app/javascript/flavours/glitch/locales/is.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/is.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/it.js b/app/javascript/flavours/glitch/locales/it.js deleted file mode 100644 index 90f5430932..0000000000 --- a/app/javascript/flavours/glitch/locales/it.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/it.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/it.json b/app/javascript/flavours/glitch/locales/it.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/it.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ja.js b/app/javascript/flavours/glitch/locales/ja.js deleted file mode 100644 index 52aeed3d69..0000000000 --- a/app/javascript/flavours/glitch/locales/ja.js +++ /dev/null @@ -1,158 +0,0 @@ -import inherited from 'mastodon/locales/ja.json'; - -const messages = { - 'getting_started.open_source_notice': 'Glitchsocは{Mastodon}によるフリーなオープンソースソフトウェアです。誰でもGitHub({github})から開発に參加したり、問題を報告したりできます。', - 'layout.auto': '自動', - 'layout.current_is': 'あなたの現在のレイアウト:', - 'layout.desktop': 'デスクトップ', - 'layout.single': 'モバイル', - 'navigation_bar.app_settings': 'アプリ設定', - 'navigation_bar.featured_users': '紹介しているアカウント', - 'navigation_bar.misc': 'その他', - 'getting_started.onboarding': '解説を表示', - 'onboarding.page_one.federation': '{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。', - 'onboarding.page_one.welcome': '{domain}へようこそ!', - 'onboarding.page_six.github': '{domain}はGlitchsocを使用しています。Glitchsocは{Mastodon}のフレンドリーな{fork}で、どんなMastodonアプリやインスタンスとも互換性があります。Glitchsocは完全に無料で、オープンソースです。{github}でバグ報告や機能要望あるいは貢獻をすることが可能です。', - 'settings.always_show_spoilers_field': '常にコンテンツワーニング設定を表示する(指定がない場合は通常投稿)', - 'settings.auto_collapse': '自動折りたたみ', - 'settings.auto_collapse_all': 'すべて', - 'settings.auto_collapse_lengthy': '長いトゥート', - 'settings.auto_collapse_media': 'メディア付きトゥート', - 'settings.auto_collapse_notifications': '通知', - 'settings.auto_collapse_reblogs': 'ブースト', - 'settings.auto_collapse_replies': '返信', - 'settings.close': '閉じる', - 'settings.collapsed_statuses': 'トゥート折りたたみ', - 'settings.confirm_missing_media_description': '画像に対する補助記載がないときに投稿前の警告を表示する', - 'settings.content_warnings': 'コンテンツワーニング', - 'settings.content_warnings_filter': '説明に指定した文字が含まれているものを自動で展開しないようにする', - 'settings.content_warnings.regexp': '正規表現', - 'settings.enable_collapsed': 'トゥート折りたたみを有効にする', - 'settings.enable_content_warnings_auto_unfold': 'コンテンツワーニング指定されている投稿を常に表示する', - 'settings.general': '一般', - 'settings.image_backgrounds': '画像背景', - 'settings.image_backgrounds_media': '折りたまれたメディア付きトゥートをプレビュー', - 'settings.image_backgrounds_users': '折りたまれたトゥートの背景を変更する', - 'settings.media': 'メディア', - 'settings.media_letterbox': 'メディアをレターボックス式で表示', - 'settings.media_fullwidth': '全幅メディアプレビュー', - 'settings.navbar_under': 'ナビを画面下部に移動させる(モバイル レイアウトのみ)', - 'settings.notifications.favicon_badge': '通知アイコンに未読件数を表示する', - 'settings.notifications_opts': '通知の設定', - 'settings.notifications.tab_badge': '未読の通知があるとき、通知アイコンにマークを表示する', - 'settings.preferences': 'ユーザー設定', - 'settings.wide_view': 'ワイドビュー(デスクトップ レイアウトのみ)', - 'settings.compose_box_opts': 'コンポーズボックス設定', - 'settings.show_reply_counter': '投稿に対するリプライの数を表示する', - 'settings.side_arm': 'セカンダリートゥートボタン', - 'settings.side_arm.none': '表示しない', - 'settings.side_arm_reply_mode': '返信時の投稿範囲', - 'settings.side_arm_reply_mode.copy': '返信先の投稿範囲を利用する', - 'settings.side_arm_reply_mode.keep': 'セカンダリートゥートボタンの設定を維持する', - 'settings.side_arm_reply_mode.restrict': '返信先の投稿範囲に制限する', - 'settings.layout': 'レイアウト', - 'settings.layout_opts': 'レイアウトの設定', - 'status.collapse': '折りたたむ', - 'status.uncollapse': '折りたたみを解除', - - 'confirmations.missing_media_description.message': '少なくとも1つの画像に視覚障害者のための画像説明が付与されていません。すべての画像に対して説明を付与することを望みます。', - 'confirmations.missing_media_description.confirm': 'このまま投稿', - 'confirmations.missing_media_description.edit': 'メディアを編集', - - 'favourite_modal.combo': '次からは {combo} を押せば、これをスキップできます。', - - 'home.column_settings.show_direct': 'DMを表示', - 'home.column_settings.advanced': '高度', - 'home.column_settings.filter_regex': '正規表現でフィルター', - - 'notification.markForDeletion': '選択', - 'notifications.clear': '通知を全てクリアする', - 'notifications.marked_clear_confirmation': '削除した全ての通知を完全に削除してもよろしいですか?', - 'notifications.marked_clear': '選択した通知を削除する', - - 'notification_purge.btn_all': 'すべて\n選択', - 'notification_purge.btn_none': '選択\n解除', - 'notification_purge.btn_invert': '選択を\n反転', - 'notification_purge.btn_apply': '選択したものを\n削除', - - 'compose.attach.upload': 'ファイルをアップロード', - 'compose.attach.doodle': 'お絵描きをする', - 'compose.attach': '添付...', - - 'advanced_options.local-only.short': 'ローカル限定', - 'advanced_options.local-only.long': '他のインスタンスには投稿されません', - 'advanced_options.local-only.tooltip': 'この投稿はローカル限定投稿です', - 'advanced_options.icon_title': '高度な設定', - 'advanced_options.threaded_mode.short': 'スレッドモード', - 'advanced_options.threaded_mode.long': '投稿時に自動的に返信するように設定します', - 'advanced_options.threaded_mode.tooltip': 'スレッドモードを有効にする', - - 'navigation_bar.direct': 'ダイレクトメッセージ', - 'navigation_bar.bookmarks': 'ブックマーク', - 'column.bookmarks': 'ブックマーク', - - 'account.add_account_note': '@{name}のメモを追加', - 'account.disclaimer_full': 'このユーザー情報は不正確な可能性があります。', - 'account.follows': 'フォロー', - 'account.suspended_disclaimer_full': 'このユーザーはモデレータにより停止されました。', - 'account.view_full_profile': '正確な情報を見る', - 'account_note.cancel': 'キャンセル', - 'account_note.edit': '編集', - 'account_note.glitch_placeholder': 'メモがありません', - 'account_note.save': '保存', - 'boost_modal.missing_description': 'このトゥートには少なくとも1つの画像に説明が付与されていません', - 'community.column_settings.allow_local_only': 'ローカル限定投稿を表示する', - 'compose.content-type.html': 'HTML', - 'compose.content-type.markdown': 'マークダウン', - 'compose.content-type.plain': 'プレーンテキスト', - 'compose_form.poll.multiple_choices': '複数回答を許可', - 'compose_form.poll.single_choice': '単一回答を許可', - 'compose_form.spoiler': '本文は警告の後ろに隠す', - 'confirmation_modal.do_not_ask_again': 'もう1度尋ねない', - 'confirmations.discard_edit_media.confirm': '破棄', - 'confirmations.discard_edit_media.message': 'メディアの説明・プレビューに保存していない変更があります。破棄してもよろしいですか?', - 'confirmations.unfilter': 'このフィルターされたトゥートについての情報', - 'confirmations.unfilter.author': '筆者', - 'confirmations.unfilter.confirm': '見る', - 'confirmations.unfilter.edit_filter': 'フィルターを編集', - 'confirmations.unfilter.filters': '適用されたフィルター', - 'content-type.change': 'コンテンツ形式を変更', - 'direct.conversations_mode': '会話', - 'direct.timeline_mode': 'タイムライン', - 'endorsed_accounts_editor.endorsed_accounts': '紹介しているユーザー', - 'keyboard_shortcuts.bookmark': 'ブックマーク', - 'keyboard_shortcuts.secondary_toot': 'セカンダリートゥートの公開範囲でトゥートする', - 'keyboard_shortcuts.toggle_collapse': '折りたたむ/折りたたみを解除', - 'moved_to_warning': 'このアカウント{moved_to_link}に引っ越したため、新しいフォロワーを受け入れていません。', - 'settings.show_action_bar': 'アクションバーを表示', - 'settings.filtering_behavior': 'フィルターの振る舞い', - 'settings.filtering_behavior.cw': '警告文にフィルターされた単語を付加して表示します', - 'settings.filtering_behavior.drop': 'フィルターされたトゥートを完全に隠します', - 'settings.filtering_behavior.hide': '\'フィルターされました\'とその理由を確認するボタンを表示する', - 'settings.filtering_behavior.upstream': '\'フィルターされました\'とバニラMastodonと同じように表示する', - 'settings.filters': 'フィルター', - 'settings.hicolor_privacy_icons': 'ハイカラーの公開範囲アイコン', - 'settings.hicolor_privacy_icons.hint': '公開範囲アイコンを明るく表示し見分けやすい色にします', - 'settings.confirm_boost_missing_media_description': 'メディアの説明が欠けているトゥートをブーストする前に確認ダイアログを表示する', - 'settings.tag_misleading_links': '誤解を招くリンクにタグをつける', - 'settings.tag_misleading_links.hint': '明示的に言及していないすべてのリンクに、リンクターゲットホストを含む視覚的な表示を追加します', - 'settings.rewrite_mentions': '表示されたトゥートの返信先表示を書き換える', - 'settings.rewrite_mentions_acct': 'ユーザー名とドメイン名(アカウントがリモートの場合)を表示するように書き換える', - 'settings.rewrite_mentions_no': '書き換えない', - 'settings.rewrite_mentions_username': 'ユーザー名を表示するように書き換える', - 'settings.swipe_to_change_columns': 'スワイプでカラムを切り替え可能にする(モバイルのみ)', - 'settings.prepend_cw_re': '返信するとき警告に "re: "を付加する', - 'settings.preselect_on_reply': '返信するときユーザー名を事前選択する', - 'settings.confirm_before_clearing_draft': '作成しているメッセージが上書きされる前に確認ダイアログを表示する', - 'settings.show_content_type_choice': 'トゥートを書くときコンテンツ形式の選択ボタンを表示する', - 'settings.inline_preview_cards': '外部リンクに埋め込みプレビューを有効にする', - 'settings.media_reveal_behind_cw': '既定で警告指定されているトゥートの閲覧注意メディアを表示する', - 'settings.pop_in_left': '左', - 'settings.pop_in_player': 'ポップインプレイヤーを有効化する', - 'settings.pop_in_position': 'ポップインプレーヤーの位置:', - 'settings.pop_in_right': '右', - 'status.show_filter_reason': '(理由を見る)', - -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ja.json b/app/javascript/flavours/glitch/locales/ja.json new file mode 100644 index 0000000000..e942e3646b --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ja.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "@{name}のメモを追加", + "account.disclaimer_full": "このユーザー情報は不正確な可能性があります。", + "account.follows": "フォロー", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "このユーザーはモデレータにより停止されました。", + "account.view_full_profile": "正確な情報を見る", + "account_note.cancel": "キャンセル", + "account_note.edit": "編集", + "account_note.glitch_placeholder": "メモがありません", + "account_note.save": "保存", + "advanced_options.icon_title": "高度な設定", + "advanced_options.local-only.long": "他のインスタンスには投稿されません", + "advanced_options.local-only.short": "ローカル限定", + "advanced_options.local-only.tooltip": "この投稿はローカル限定投稿です", + "advanced_options.threaded_mode.long": "投稿時に自動的に返信するように設定します", + "advanced_options.threaded_mode.short": "スレッドモード", + "advanced_options.threaded_mode.tooltip": "スレッドモードを有効にする", + "boost_modal.missing_description": "このトゥートには少なくとも1つの画像に説明が付与されていません", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "ローカル限定投稿を表示する", + "compose.attach": "添付...", + "compose.attach.doodle": "お絵描きをする", + "compose.attach.upload": "ファイルをアップロード", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "マークダウン", + "compose.content-type.plain": "プレーンテキスト", + "compose_form.poll.multiple_choices": "複数回答を許可", + "compose_form.poll.single_choice": "単一回答を許可", + "compose_form.spoiler": "本文は警告の後ろに隠す", + "confirmation_modal.do_not_ask_again": "もう1度尋ねない", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "このまま投稿", + "confirmations.missing_media_description.edit": "メディアを編集", + "confirmations.missing_media_description.message": "少なくとも1つの画像に視覚障害者のための画像説明が付与されていません。すべての画像に対して説明を付与することを望みます。", + "confirmations.unfilter.author": "筆者", + "confirmations.unfilter.confirm": "見る", + "confirmations.unfilter.edit_filter": "フィルターを編集", + "confirmations.unfilter.filters": "適用されたフィルター", + "content-type.change": "コンテンツ形式を変更", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "紹介しているユーザー", + "favourite_modal.combo": "次からは {combo} を押せば、これをスキップできます。", + "getting_started.onboarding": "解説を表示", + "home.column_settings.advanced": "高度", + "home.column_settings.filter_regex": "正規表現でフィルター", + "home.column_settings.show_direct": "DMを表示", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "ブックマーク", + "keyboard_shortcuts.secondary_toot": "セカンダリートゥートの公開範囲でトゥートする", + "keyboard_shortcuts.toggle_collapse": "折りたたむ/折りたたみを解除", + "layout.auto": "自動", + "layout.desktop": "デスクトップ", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "モバイル", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "このアカウント{moved_to_link}に引っ越したため、新しいフォロワーを受け入れていません。", + "navigation_bar.app_settings": "アプリ設定", + "navigation_bar.featured_users": "紹介しているアカウント", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "その他", + "notification.markForDeletion": "選択", + "notification_purge.btn_all": "すべて\n選択", + "notification_purge.btn_apply": "選択したものを\n削除", + "notification_purge.btn_invert": "選択を\n反転", + "notification_purge.btn_none": "選択\n解除", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "選択した通知を削除する", + "notifications.marked_clear_confirmation": "削除した全ての通知を完全に削除してもよろしいですか?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "onboarding.page_one.federation": "{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。", + "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "{domain}へようこそ!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain}はGlitchsocを使用しています。Glitchsocは{Mastodon}のフレンドリーな{fork}で、どんなMastodonアプリやインスタンスとも互換性があります。Glitchsocは完全に無料で、オープンソースです。{github}でバグ報告や機能要望あるいは貢獻をすることが可能です。", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "常にコンテンツワーニング設定を表示する(指定がない場合は通常投稿)", + "settings.auto_collapse": "自動折りたたみ", + "settings.auto_collapse_all": "すべて", + "settings.auto_collapse_lengthy": "長いトゥート", + "settings.auto_collapse_media": "メディア付きトゥート", + "settings.auto_collapse_notifications": "通知", + "settings.auto_collapse_reblogs": "ブースト", + "settings.auto_collapse_replies": "返信", + "settings.close": "閉じる", + "settings.collapsed_statuses": "トゥート折りたたみ", + "settings.compose_box_opts": "コンポーズボックス設定", + "settings.confirm_before_clearing_draft": "作成しているメッセージが上書きされる前に確認ダイアログを表示する", + "settings.confirm_boost_missing_media_description": "メディアの説明が欠けているトゥートをブーストする前に確認ダイアログを表示する", + "settings.confirm_missing_media_description": "画像に対する補助記載がないときに投稿前の警告を表示する", + "settings.content_warnings": "コンテンツワーニング", + "settings.content_warnings.regexp": "正規表現", + "settings.content_warnings_filter": "説明に指定した文字が含まれているものを自動で展開しないようにする", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "トゥート折りたたみを有効にする", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "コンテンツワーニング指定されている投稿を常に表示する", + "settings.filters": "フィルター", + "settings.general": "一般", + "settings.hicolor_privacy_icons": "ハイカラーの公開範囲アイコン", + "settings.hicolor_privacy_icons.hint": "公開範囲アイコンを明るく表示し見分けやすい色にします", + "settings.image_backgrounds": "画像背景", + "settings.image_backgrounds_media": "折りたまれたメディア付きトゥートをプレビュー", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "折りたまれたトゥートの背景を変更する", + "settings.inline_preview_cards": "外部リンクに埋め込みプレビューを有効にする", + "settings.layout": "レイアウト", + "settings.layout_opts": "レイアウトの設定", + "settings.media": "メディア", + "settings.media_fullwidth": "全幅メディアプレビュー", + "settings.media_letterbox": "メディアをレターボックス式で表示", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "既定で警告指定されているトゥートの閲覧注意メディアを表示する", + "settings.notifications.favicon_badge": "通知アイコンに未読件数を表示する", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "未読の通知があるとき、通知アイコンにマークを表示する", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "通知の設定", + "settings.pop_in_left": "左", + "settings.pop_in_player": "ポップインプレイヤーを有効化する", + "settings.pop_in_position": "ポップインプレーヤーの位置:", + "settings.pop_in_right": "右", + "settings.preferences": "ユーザー設定", + "settings.prepend_cw_re": "返信するとき警告に \"re: \"を付加する", + "settings.preselect_on_reply": "返信するときユーザー名を事前選択する", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "表示されたトゥートの返信先表示を書き換える", + "settings.rewrite_mentions_acct": "ユーザー名とドメイン名(アカウントがリモートの場合)を表示するように書き換える", + "settings.rewrite_mentions_no": "書き換えない", + "settings.rewrite_mentions_username": "ユーザー名を表示するように書き換える", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "アクションバーを表示", + "settings.show_content_type_choice": "トゥートを書くときコンテンツ形式の選択ボタンを表示する", + "settings.show_reply_counter": "投稿に対するリプライの数を表示する", + "settings.side_arm": "セカンダリートゥートボタン", + "settings.side_arm.none": "表示しない", + "settings.side_arm_reply_mode": "返信時の投稿範囲", + "settings.side_arm_reply_mode.copy": "返信先の投稿範囲を利用する", + "settings.side_arm_reply_mode.keep": "セカンダリートゥートボタンの設定を維持する", + "settings.side_arm_reply_mode.restrict": "返信先の投稿範囲に制限する", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "スワイプでカラムを切り替え可能にする(モバイルのみ)", + "settings.tag_misleading_links": "誤解を招くリンクにタグをつける", + "settings.tag_misleading_links.hint": "明示的に言及していないすべてのリンクに、リンクターゲットホストを含む視覚的な表示を追加します", + "settings.wide_view": "ワイドビュー(デスクトップ レイアウトのみ)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "折りたたむ", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "折りたたみを解除", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ka.js b/app/javascript/flavours/glitch/locales/ka.js deleted file mode 100644 index 3e06f42827..0000000000 --- a/app/javascript/flavours/glitch/locales/ka.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ka.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ka.json b/app/javascript/flavours/glitch/locales/ka.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ka.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/kab.js b/app/javascript/flavours/glitch/locales/kab.js deleted file mode 100644 index 5ed1156ef1..0000000000 --- a/app/javascript/flavours/glitch/locales/kab.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/kab.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/kab.json b/app/javascript/flavours/glitch/locales/kab.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/kab.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/kk.js b/app/javascript/flavours/glitch/locales/kk.js deleted file mode 100644 index 8d00fb0352..0000000000 --- a/app/javascript/flavours/glitch/locales/kk.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/kk.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/kk.json b/app/javascript/flavours/glitch/locales/kk.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/kk.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/kn.js b/app/javascript/flavours/glitch/locales/kn.js deleted file mode 100644 index 1c50e36281..0000000000 --- a/app/javascript/flavours/glitch/locales/kn.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/kn.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/kn.json b/app/javascript/flavours/glitch/locales/kn.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/kn.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ko.js b/app/javascript/flavours/glitch/locales/ko.js deleted file mode 100644 index a817044c1b..0000000000 --- a/app/javascript/flavours/glitch/locales/ko.js +++ /dev/null @@ -1,208 +0,0 @@ -import inherited from 'mastodon/locales/ko.json'; - -const messages = { - 'account.add_account_note': '@{name} 님에 대한 메모 추가', - 'account.disclaimer_full': '아래에 있는 정보들은 사용자의 프로필을 완벽하게 나타내지 못하고 있을 수도 있습니다.', - 'account.follows': '팔로우', - 'account.suspended_disclaimer_full': '이 사용자는 중재자에 의해 정지되었습니다.', - 'account.view_full_profile': '전체 프로필 보기', - 'account_note.cancel': '취소', - 'account_note.edit': '편집', - 'account_note.glitch_placeholder': '코멘트가 없습니다', - 'account_note.save': '저장', - 'advanced_options.icon_title': '고급 옵션', - 'advanced_options.local-only.long': '다른 서버에 게시하지 않기', - 'advanced_options.local-only.short': '로컬 전용', - 'advanced_options.local-only.tooltip': '이 게시물은 로컬 전용입니다', - 'advanced_options.threaded_mode.long': '글을 작성하고 자동으로 답글 열기', - 'advanced_options.threaded_mode.short': '글타래 모드', - 'advanced_options.threaded_mode.tooltip': '글타래 모드 활성화됨', - 'boost_modal.missing_description': '이 게시물은 설명이 없는 미디어를 포함하고 있습니다', - 'column.favourited_by': '즐겨찾기 한 사람', - 'column.heading': '기타', - 'column.reblogged_by': '부스트 한 사람', - 'column.subheading': '다양한 옵션', - 'column.toot': '게시물과 답글', - 'column_header.profile': '프로필', - 'column_subheading.lists': '리스트', - 'column_subheading.navigation': '탐색', - 'community.column_settings.allow_local_only': '로컬 전용 글 보기', - 'compose.attach': '첨부…', - 'compose.attach.doodle': '뭔가 그려보세요', - 'compose.attach.upload': '파일 업로드', - 'compose.content-type.html': 'HTML', - 'compose.content-type.markdown': '마크다운', - 'compose.content-type.plain': '일반 텍스트', - 'compose_form.poll.multiple_choices': '여러 개 선택 가능', - 'compose_form.poll.single_choice': '하나만 선택 가능', - 'compose_form.spoiler': '경고 메시지로 숨기기', - 'confirmation_modal.do_not_ask_again': '다음부터 확인창을 띄우지 않기', - 'confirmations.discard_edit_media.message': '저장하지 않은 미디어 설명이나 미리보기가 있습니다, 그냥 닫을까요?', - 'confirmations.missing_media_description.confirm': '그냥 보내기', - 'confirmations.missing_media_description.edit': '미디어 편집', - 'confirmations.missing_media_description.message': '하나 이상의 미디어에 대해 설명을 작성하지 않았습니다. 시각장애인을 위해 모든 미디어에 설명을 추가하는 것을 고려해주세요.', - 'confirmations.unfilter': '이 필터링 된 글에 대한 정보', - 'confirmations.unfilter.author': '작성자', - 'confirmations.unfilter.confirm': '보기', - 'confirmations.unfilter.edit_filter': '필터 편집', - 'confirmations.unfilter.filters': '적용된 {count, plural, one {필터} other {필터들}}', - 'content-type.change': '콘텐트 타입', - 'direct.conversations_mode': '대화', - 'direct.timeline_mode': '타임라인', - 'endorsed_accounts_editor.endorsed_accounts': '추천하는 계정들', - 'favourite_modal.combo': '다음엔 {combo}를 눌러 건너뛸 수 있습니다', - 'getting_started.onboarding': '둘러보기', - 'getting_started.open_source_notice': '글리치는 {Mastodon}의 자유 오픈소스 포크버전입니다. {github}에서 문제를 리포팅 하거나 기여를 할 수 있습니다.', - 'home.column_settings.advanced': '고급', - 'home.column_settings.filter_regex': '정규표현식으로 필터', - 'home.column_settings.show_direct': 'DM 보여주기', - 'home.settings': '컬럼 설정', - 'keyboard_shortcuts.bookmark': '북마크', - 'keyboard_shortcuts.secondary_toot': '보조 프라이버시 설정으로 글 보내기', - 'keyboard_shortcuts.toggle_collapse': '글 접거나 펼치기', - 'layout.auto': '자동', - 'layout.current_is': '현재 레이아웃:', - 'layout.desktop': '데스크탑', - 'layout.hint.auto': '“고급 웹 인터페이스 활성화” 설정과 화면 크기에 따라 자동으로 레이아웃을 고릅니다.', - 'layout.hint.desktop': '“고급 웹 인터페이스 활성화” 설정이나 화면 크기에 관계 없이 멀티 컬럼 레이아웃을 사용합니다.', - 'layout.hint.single': '“고급 웹 인터페이스 활성화” 설정이나 화면 크기에 관계 없이 싱글 컬럼 레이아웃을 사용합니다.', - 'layout.single': '모바일', - 'media_gallery.sensitive': '민감함', - 'moved_to_warning': '이 계정은 {moved_to_link}로 이동한 것으로 표시되었고, 새 팔로우를 받지 않는 것 같습니다.', - 'navigation_bar.app_settings': '앱 설정', - 'navigation_bar.featured_users': '추천된 계정들', - 'navigation_bar.misc': '다양한 옵션들', - 'notification.markForDeletion': '삭제하기 위해 표시', - 'notification_purge.btn_all': '전체선택', - 'notification_purge.btn_apply': '선택된 알림 삭제', - 'notification_purge.btn_invert': '선택반전', - 'notification_purge.btn_none': '전체선택해제', - 'notification_purge.start': '알림 삭제모드로 들어가기', - 'notifications.clear': '내 알림 모두 지우기', - 'notifications.marked_clear': '선택된 알림 모두 삭제', - 'notifications.marked_clear_confirmation': '정말로 선택된 알림들을 영구적으로 삭제할까요?', - 'onboarding.done': '완료', - 'onboarding.next': '다음', - 'onboarding.page_five.public_timelines': '로컬 타임라인은 {domain}에 있는 모든 사람의 공개글을 보여줍니다. 연합 타임라인은 {domain}에 있는 사람들이 팔로우 하는 모든 사람의 공개글을 보여줍니다. 이것들은 공개 타임라인이라고 불리며, 새로운 사람들을 발견할 수 있는 좋은 방법입니다.', - 'onboarding.page_four.home': '홈 타임라인은 당신이 팔로우 한 사람들의 글을 보여줍니다.', - 'onboarding.page_four.notifications': '알림 컬럼은 누군가가 당신과 상호작용한 것들을 보여줍니다.', - 'onboarding.page_one.federation': '{domain}은 마스토돈의 \'인스턴스\'입니다. 마스토돈은 하나의 거대한 소셜 네트워크를 만들기 위해 참여한 서버들의 네트워크입니다. 우린 이 서버들을 인스턴스라고 부릅니다.', - 'onboarding.page_one.handle': '당신은 {domain}에 속해 있으며, 전체 핸들은 {handle} 입니다.', - 'onboarding.page_one.welcome': '{domain}에 오신 것을 환영합니다!', - 'onboarding.page_six.admin': '우리 서버의 관리자는 {admin} 님입니다.', - 'onboarding.page_six.almost_done': '거의 다 되었습니다…', - 'onboarding.page_six.appetoot': '본 아페툿!', - 'onboarding.page_six.apps_available': 'iOS, 안드로이드, 그리고 다른 플랫폼들을 위한 {apps}이 존재합니다.', - 'onboarding.page_six.github': '{domain}은 글리치를 통해 구동 됩니다. 글리치는 {Mastodon}의 {fork}입니다, 그리고 어떤 마스토돈 인스턴스나 앱과도 호환 됩니다. 글리치는 완전한 자유 오픈소스입니다. {github}에서 버그를 리포팅 하거나, 기능을 제안하거나, 코드를 기여할 수 있습니다.', - 'onboarding.page_six.guidelines': '커뮤니티 가이드라인', - 'onboarding.page_six.read_guidelines': '{domain}의 {guidelines}을 읽어주세요!', - 'onboarding.page_six.various_app': '모바일 앱', - 'onboarding.page_three.profile': '프로필을 수정해 아바타, 바이오, 표시되는 이름을 설정하세요. 거기에서 다른 설정들도 찾을 수 있습니다.', - 'onboarding.page_three.search': '검색창을 사용해 사람들과 해시태그를 찾아보세요. 예를 들면 {illustration}이라든지 {introcustions} 같은 것으로요. 이 인스턴스에 있지 않은 사람을 찾으려면, 전체 핸들을 사용하세요.', - 'onboarding.page_two.compose': '작성 컬럼에서 게시물을 작성하세요. 그림을 업로드 할 수 있고, 공개설정을 바꿀 수도 있으며, 아래 아이콘을 통해 열람주의 텍스트를 설정할 수 있습니다.', - 'onboarding.skip': '건너뛰기', - 'settings.always_show_spoilers_field': '열람주의 항목을 언제나 활성화', - 'settings.auto_collapse': '자동으로 접기', - 'settings.auto_collapse_all': '모두', - 'settings.auto_collapse_lengthy': '긴 글', - 'settings.auto_collapse_media': '미디어 포함 글', - 'settings.auto_collapse_notifications': '알림', - 'settings.auto_collapse_reblogs': '부스트', - 'settings.auto_collapse_replies': '답글', - 'settings.close': '닫기', - 'settings.collapsed_statuses': '접힌 글', - 'settings.compose_box_opts': '작성 상자', - 'settings.confirm_before_clearing_draft': '작성 중인 메시지를 덮어씌우기 전에 확인창을 보여주기', - 'settings.confirm_boost_missing_media_description': '미디어 설명이 없는 글을 부스트하려 할 때 확인창을 보여주기', - 'settings.confirm_missing_media_description': '미디어 설명이 없는 글을 작성하려 할 때 확인창을 보여주기', - 'settings.content_warnings': '열람주의', - 'settings.content_warnings.regexp': '정규표현식', - 'settings.content_warnings_filter': '자동으로 펼치지 않을 열람주의 문구:', - 'settings.deprecated_setting': '이 설정은 마스토돈의 {settings_page_link}에서 관리됩니다', - 'settings.enable_collapsed': '접힌 글 활성화', - 'settings.enable_content_warnings_auto_unfold': '자동으로 열람주의 펼치기', - 'settings.filtering_behavior': '필터링 동작', - 'settings.filtering_behavior.cw': '게시물을 보여주되, 필터된 단어를 열람주의에 추가합니다', - 'settings.filtering_behavior.drop': '완전히 숨깁니다', - 'settings.filtering_behavior.hide': '\'필터됨\'이라고 표시하고 이유를 표시하는 버튼을 추가합니다', - 'settings.filtering_behavior.upstream': '\'필터됨\'이라고 일반 마스토돈처럼 표시합니다', - 'settings.filters': '필터', - 'settings.general': '일반', - 'settings.hicolor_privacy_icons': '높은 채도의 공개설정 아이콘', - 'settings.hicolor_privacy_icons.hint': '공개설정 아이콘들을 밝고 구분하기 쉬운 색으로 표시합니다', - 'settings.image_backgrounds': '이미지 배경', - 'settings.image_backgrounds_media': '접힌 글의 미디어 미리보기', - 'settings.image_backgrounds_users': '접힌 글에 이미지 배경 주기', - 'settings.inline_preview_cards': '외부 링크에 대한 미리보기 카드를 같이 표시', - 'settings.layout': '레이아웃:', - 'settings.layout_opts': '레이아웃 옵션', - 'settings.media': '미디어', - 'settings.media_fullwidth': '최대폭 미디어 미리보기', - 'settings.media_letterbox': '레터박스 미디어', - 'settings.media_letterbox_hint': '확대하고 자르는 대신 축소하고 레터박스에 넣어 이미지를 보여줍니다', - 'settings.media_reveal_behind_cw': '열람주의로 가려진 미디어를 기본으로 펼쳐 둡니다', - 'settings.navbar_under': '내비바를 하단에 (모바일 전용)', - 'settings.notifications.favicon_badge': '읽지 않은 알림 파비콘 배지', - 'settings.notifications.favicon_badge.hint': '읽지 않은 알림 배지를 파비콘에 추가합니다', - 'settings.notifications.tab_badge': '읽지 않은 알림 배지', - 'settings.notifications.tab_badge.hint': '알림 컬럼이 열려 있지 않을 때 알림 컬럼에 알림이 있다는 배지를 표시합니다', - 'settings.notifications_opts': '알림 옵션', - 'settings.pop_in_left': '왼쪽', - 'settings.pop_in_player': '떠있는 재생기 활성화', - 'settings.pop_in_position': '떠있는 재생기 위치:', - 'settings.pop_in_right': '오른쪽', - 'settings.preferences': '사용자 설정', - 'settings.prepend_cw_re': '열람주의가 달린 글에 답장을 할 때 열람주의 문구 앞에 “re: ”를 추가합니다', - 'settings.preselect_on_reply': '답글 달 때 사용자명 미리 선택', - 'settings.preselect_on_reply_hint': '답글을 달 때 이미 멘션 된 사람의 사용자명을 미리 블럭으로 설정해 놓습니다', - 'settings.rewrite_mentions': '표시되는 게시물의 멘션 표시 바꾸기', - 'settings.rewrite_mentions_acct': '사용자명과 도메인으로 바꾸기(계정이 원격일 때)', - 'settings.rewrite_mentions_no': '멘션을 그대로 두기', - 'settings.rewrite_mentions_username': '사용자명으로 바꾸기', - 'settings.shared_settings_link': '사용자 설정', - 'settings.show_action_bar': '접힌 글에 액션 버튼들 보이기', - 'settings.show_content_type_choice': '글을 작성할 때 콘텐트 타입을 고를 수 있도록 합니다', - 'settings.show_reply_counter': '대략적인 답글 개수를 표시합니다', - 'settings.side_arm': '보조 작성 버튼:', - 'settings.side_arm.none': '없음', - 'settings.side_arm_reply_mode': '답글을 작성할 때:', - 'settings.side_arm_reply_mode.copy': '답글을 달려는 글의 공개설정을 복사합니다', - 'settings.side_arm_reply_mode.keep': '보조 작성 버튼의 공개설정을 유지합니다', - 'settings.side_arm_reply_mode.restrict': '답글을 달려는 글의 공개설정에 맞게 제한합니다', - 'settings.status_icons': '게시물 아이콘', - 'settings.status_icons_language': '언어 표시', - 'settings.status_icons_local_only': '로컬 전용 표시', - 'settings.status_icons_media': '미디어와 투표 표시', - 'settings.status_icons_reply': '답글 표시', - 'settings.status_icons_visibility': '툿 공개설정 표시', - 'settings.swipe_to_change_columns': '스와이프하여 컬럼간 전환을 허용합니다 (모바일 전용)', - 'settings.tag_misleading_links': '오해의 소지가 있는 링크를 표시합니다', - 'settings.tag_misleading_links.hint': '링크에 명시적으로 주소가 없는 경우엔 대상 호스트를 보이도록 표시합니다', - 'settings.wide_view': '넓은 뷰 (데스크탑 모드 전용)', - 'settings.wide_view_hint': '컬럼들을 늘려서 활용 가능한 공간을 사용합니다.', - 'status.collapse': '접기', - 'status.has_audio': '소리 파일이 첨부되어 있습니다', - 'status.has_pictures': '그림 파일이 첨부되어 있습니다', - 'status.has_preview_card': '미리보기 카드가 첨부되어 있습니다', - 'status.has_video': '영상이 첨부되어 있습니다', - 'status.hide': '글 가리기', - 'status.in_reply_to': '이 글은 답글입니다', - 'status.is_poll': '이 글은 설문입니다', - 'status.local_only': '당신의 서버에서만 보입니다', - 'status.sensitive_toggle': '클릭해서 보기', - 'status.show_filter_reason': '(이유 보기)', - 'status.uncollapse': '펼치기', - 'upload_modal.applying': '적용중…', - 'web_app_crash.change_your_settings': '{settings}을 바꾸세요', - 'web_app_crash.content': '이것들을 시도해 볼 수 있습니다:', - 'web_app_crash.debug_info': '디버그 정보', - 'web_app_crash.disable_addons': '브라우저 애드온이나 기본 번역 도구를 비활성화 합니다', - 'web_app_crash.issue_tracker': '이슈 트래커', - 'web_app_crash.reload': '새로고침', - 'web_app_crash.reload_page': '이 페이지를 {reload}', - 'web_app_crash.report_issue': '{issuetracker}에 버그 제보', - 'web_app_crash.settings': '설정', - 'web_app_crash.title': '죄송합니다, 하지만 마스토돈 앱이 뭔가 잘못되었습니다.', -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json new file mode 100644 index 0000000000..ef560c1e1b --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "@{name} 님에 대한 메모 추가", + "account.disclaimer_full": "아래에 있는 정보들은 사용자의 프로필을 완벽하게 나타내지 못하고 있을 수도 있습니다.", + "account.follows": "팔로우", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "이 사용자는 중재자에 의해 정지되었습니다.", + "account.view_full_profile": "전체 프로필 보기", + "account_note.cancel": "취소", + "account_note.edit": "편집", + "account_note.glitch_placeholder": "코멘트가 없습니다", + "account_note.save": "저장", + "advanced_options.icon_title": "고급 옵션", + "advanced_options.local-only.long": "다른 서버에 게시하지 않기", + "advanced_options.local-only.short": "로컬 전용", + "advanced_options.local-only.tooltip": "이 게시물은 로컬 전용입니다", + "advanced_options.threaded_mode.long": "글을 작성하고 자동으로 답글 열기", + "advanced_options.threaded_mode.short": "글타래 모드", + "advanced_options.threaded_mode.tooltip": "글타래 모드 활성화됨", + "boost_modal.missing_description": "이 게시물은 설명이 없는 미디어를 포함하고 있습니다", + "column.favourited_by": "즐겨찾기 한 사람", + "column.heading": "기타", + "column.reblogged_by": "부스트 한 사람", + "column.subheading": "다양한 옵션", + "column_header.profile": "프로필", + "column_subheading.lists": "리스트", + "column_subheading.navigation": "탐색", + "community.column_settings.allow_local_only": "로컬 전용 글 보기", + "compose.attach": "첨부…", + "compose.attach.doodle": "뭔가 그려보세요", + "compose.attach.upload": "파일 업로드", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "마크다운", + "compose.content-type.plain": "일반 텍스트", + "compose_form.poll.multiple_choices": "여러 개 선택 가능", + "compose_form.poll.single_choice": "하나만 선택 가능", + "compose_form.spoiler": "경고 메시지로 숨기기", + "confirmation_modal.do_not_ask_again": "다음부터 확인창을 띄우지 않기", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "그냥 보내기", + "confirmations.missing_media_description.edit": "미디어 편집", + "confirmations.missing_media_description.message": "하나 이상의 미디어에 대해 설명을 작성하지 않았습니다. 시각장애인을 위해 모든 미디어에 설명을 추가하는 것을 고려해주세요.", + "confirmations.unfilter.author": "작성자", + "confirmations.unfilter.confirm": "보기", + "confirmations.unfilter.edit_filter": "필터 편집", + "confirmations.unfilter.filters": "적용된 {count, plural, one {필터} other {필터들}}", + "content-type.change": "콘텐트 타입", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "추천하는 계정들", + "favourite_modal.combo": "다음엔 {combo}를 눌러 건너뛸 수 있습니다", + "getting_started.onboarding": "둘러보기", + "home.column_settings.advanced": "고급", + "home.column_settings.filter_regex": "정규표현식으로 필터", + "home.column_settings.show_direct": "DM 보여주기", + "home.settings": "컬럼 설정", + "keyboard_shortcuts.bookmark": "북마크", + "keyboard_shortcuts.secondary_toot": "보조 프라이버시 설정으로 글 보내기", + "keyboard_shortcuts.toggle_collapse": "글 접거나 펼치기", + "layout.auto": "자동", + "layout.desktop": "데스크탑", + "layout.hint.auto": "“고급 웹 인터페이스 활성화” 설정과 화면 크기에 따라 자동으로 레이아웃을 고릅니다.", + "layout.hint.desktop": "“고급 웹 인터페이스 활성화” 설정이나 화면 크기에 관계 없이 멀티 컬럼 레이아웃을 사용합니다.", + "layout.hint.single": "“고급 웹 인터페이스 활성화” 설정이나 화면 크기에 관계 없이 싱글 컬럼 레이아웃을 사용합니다.", + "layout.single": "모바일", + "media_gallery.sensitive": "민감함", + "moved_to_warning": "이 계정은 {moved_to_link}로 이동한 것으로 표시되었고, 새 팔로우를 받지 않는 것 같습니다.", + "navigation_bar.app_settings": "앱 설정", + "navigation_bar.featured_users": "추천된 계정들", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "다양한 옵션들", + "notification.markForDeletion": "삭제하기 위해 표시", + "notification_purge.btn_all": "전체선택", + "notification_purge.btn_apply": "선택된 알림 삭제", + "notification_purge.btn_invert": "선택반전", + "notification_purge.btn_none": "전체선택해제", + "notification_purge.start": "알림 삭제모드로 들어가기", + "notifications.marked_clear": "선택된 알림 모두 삭제", + "notifications.marked_clear_confirmation": "정말로 선택된 알림들을 영구적으로 삭제할까요?", + "onboarding.done": "완료", + "onboarding.next": "다음", + "onboarding.page_five.public_timelines": "로컬 타임라인은 {domain}에 있는 모든 사람의 공개글을 보여줍니다. 연합 타임라인은 {domain}에 있는 사람들이 팔로우 하는 모든 사람의 공개글을 보여줍니다. 이것들은 공개 타임라인이라고 불리며, 새로운 사람들을 발견할 수 있는 좋은 방법입니다.", + "onboarding.page_four.home": "홈 타임라인은 당신이 팔로우 한 사람들의 글을 보여줍니다.", + "onboarding.page_four.notifications": "알림 컬럼은 누군가가 당신과 상호작용한 것들을 보여줍니다.", + "onboarding.page_one.federation": "{domain}은 마스토돈의 '인스턴스'입니다. 마스토돈은 하나의 거대한 소셜 네트워크를 만들기 위해 참여한 서버들의 네트워크입니다. 우린 이 서버들을 인스턴스라고 부릅니다.", + "onboarding.page_one.handle": "당신은 {domain}에 속해 있으며, 전체 핸들은 {handle} 입니다.", + "onboarding.page_one.welcome": "{domain}에 오신 것을 환영합니다!", + "onboarding.page_six.admin": "우리 서버의 관리자는 {admin} 님입니다.", + "onboarding.page_six.almost_done": "거의 다 되었습니다…", + "onboarding.page_six.appetoot": "본 아페툿!", + "onboarding.page_six.apps_available": "iOS, 안드로이드, 그리고 다른 플랫폼들을 위한 {apps}이 존재합니다.", + "onboarding.page_six.github": "{domain}은 글리치를 통해 구동 됩니다. 글리치는 {Mastodon}의 {fork}입니다, 그리고 어떤 마스토돈 인스턴스나 앱과도 호환 됩니다. 글리치는 완전한 자유 오픈소스입니다. {github}에서 버그를 리포팅 하거나, 기능을 제안하거나, 코드를 기여할 수 있습니다.", + "onboarding.page_six.guidelines": "커뮤니티 가이드라인", + "onboarding.page_six.read_guidelines": "{domain}의 {guidelines}을 읽어주세요!", + "onboarding.page_six.various_app": "모바일 앱", + "onboarding.page_three.profile": "프로필을 수정해 아바타, 바이오, 표시되는 이름을 설정하세요. 거기에서 다른 설정들도 찾을 수 있습니다.", + "onboarding.page_three.search": "검색창을 사용해 사람들과 해시태그를 찾아보세요. 예를 들면 {illustration}이라든지 {introcustions} 같은 것으로요. 이 인스턴스에 있지 않은 사람을 찾으려면, 전체 핸들을 사용하세요.", + "onboarding.page_two.compose": "작성 컬럼에서 게시물을 작성하세요. 그림을 업로드 할 수 있고, 공개설정을 바꿀 수도 있으며, 아래 아이콘을 통해 열람주의 텍스트를 설정할 수 있습니다.", + "onboarding.skip": "건너뛰기", + "settings.always_show_spoilers_field": "열람주의 항목을 언제나 활성화", + "settings.auto_collapse": "자동으로 접기", + "settings.auto_collapse_all": "모두", + "settings.auto_collapse_lengthy": "긴 글", + "settings.auto_collapse_media": "미디어 포함 글", + "settings.auto_collapse_notifications": "알림", + "settings.auto_collapse_reblogs": "부스트", + "settings.auto_collapse_replies": "답글", + "settings.close": "닫기", + "settings.collapsed_statuses": "접힌 글", + "settings.compose_box_opts": "작성 상자", + "settings.confirm_before_clearing_draft": "작성 중인 메시지를 덮어씌우기 전에 확인창을 보여주기", + "settings.confirm_boost_missing_media_description": "미디어 설명이 없는 글을 부스트하려 할 때 확인창을 보여주기", + "settings.confirm_missing_media_description": "미디어 설명이 없는 글을 작성하려 할 때 확인창을 보여주기", + "settings.content_warnings": "열람주의", + "settings.content_warnings.regexp": "정규표현식", + "settings.content_warnings_filter": "자동으로 펼치지 않을 열람주의 문구:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "이 설정은 마스토돈의 {settings_page_link}에서 관리됩니다", + "settings.enable_collapsed": "접힌 글 활성화", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "자동으로 열람주의 펼치기", + "settings.filters": "필터", + "settings.general": "일반", + "settings.hicolor_privacy_icons": "높은 채도의 공개설정 아이콘", + "settings.hicolor_privacy_icons.hint": "공개설정 아이콘들을 밝고 구분하기 쉬운 색으로 표시합니다", + "settings.image_backgrounds": "이미지 배경", + "settings.image_backgrounds_media": "접힌 글의 미디어 미리보기", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "접힌 글에 이미지 배경 주기", + "settings.inline_preview_cards": "외부 링크에 대한 미리보기 카드를 같이 표시", + "settings.layout": "레이아웃:", + "settings.layout_opts": "레이아웃 옵션", + "settings.media": "미디어", + "settings.media_fullwidth": "최대폭 미디어 미리보기", + "settings.media_letterbox": "레터박스 미디어", + "settings.media_letterbox_hint": "확대하고 자르는 대신 축소하고 레터박스에 넣어 이미지를 보여줍니다", + "settings.media_reveal_behind_cw": "열람주의로 가려진 미디어를 기본으로 펼쳐 둡니다", + "settings.notifications.favicon_badge": "읽지 않은 알림 파비콘 배지", + "settings.notifications.favicon_badge.hint": "읽지 않은 알림 배지를 파비콘에 추가합니다", + "settings.notifications.tab_badge": "읽지 않은 알림 배지", + "settings.notifications.tab_badge.hint": "알림 컬럼이 열려 있지 않을 때 알림 컬럼에 알림이 있다는 배지를 표시합니다", + "settings.notifications_opts": "알림 옵션", + "settings.pop_in_left": "왼쪽", + "settings.pop_in_player": "떠있는 재생기 활성화", + "settings.pop_in_position": "떠있는 재생기 위치:", + "settings.pop_in_right": "오른쪽", + "settings.preferences": "사용자 설정", + "settings.prepend_cw_re": "열람주의가 달린 글에 답장을 할 때 열람주의 문구 앞에 “re: ”를 추가합니다", + "settings.preselect_on_reply": "답글 달 때 사용자명 미리 선택", + "settings.preselect_on_reply_hint": "답글을 달 때 이미 멘션 된 사람의 사용자명을 미리 블럭으로 설정해 놓습니다", + "settings.rewrite_mentions": "표시되는 게시물의 멘션 표시 바꾸기", + "settings.rewrite_mentions_acct": "사용자명과 도메인으로 바꾸기(계정이 원격일 때)", + "settings.rewrite_mentions_no": "멘션을 그대로 두기", + "settings.rewrite_mentions_username": "사용자명으로 바꾸기", + "settings.shared_settings_link": "사용자 설정", + "settings.show_action_bar": "접힌 글에 액션 버튼들 보이기", + "settings.show_content_type_choice": "글을 작성할 때 콘텐트 타입을 고를 수 있도록 합니다", + "settings.show_reply_counter": "대략적인 답글 개수를 표시합니다", + "settings.side_arm": "보조 작성 버튼:", + "settings.side_arm.none": "없음", + "settings.side_arm_reply_mode": "답글을 작성할 때:", + "settings.side_arm_reply_mode.copy": "답글을 달려는 글의 공개설정을 복사합니다", + "settings.side_arm_reply_mode.keep": "보조 작성 버튼의 공개설정을 유지합니다", + "settings.side_arm_reply_mode.restrict": "답글을 달려는 글의 공개설정에 맞게 제한합니다", + "settings.status_icons": "게시물 아이콘", + "settings.status_icons_language": "언어 표시", + "settings.status_icons_local_only": "로컬 전용 표시", + "settings.status_icons_media": "미디어와 투표 표시", + "settings.status_icons_reply": "답글 표시", + "settings.status_icons_visibility": "툿 공개설정 표시", + "settings.swipe_to_change_columns": "스와이프하여 컬럼간 전환을 허용합니다 (모바일 전용)", + "settings.tag_misleading_links": "오해의 소지가 있는 링크를 표시합니다", + "settings.tag_misleading_links.hint": "링크에 명시적으로 주소가 없는 경우엔 대상 호스트를 보이도록 표시합니다", + "settings.wide_view": "넓은 뷰 (데스크탑 모드 전용)", + "settings.wide_view_hint": "컬럼들을 늘려서 활용 가능한 공간을 사용합니다.", + "status.collapse": "접기", + "status.has_audio": "소리 파일이 첨부되어 있습니다", + "status.has_pictures": "그림 파일이 첨부되어 있습니다", + "status.has_preview_card": "미리보기 카드가 첨부되어 있습니다", + "status.has_video": "영상이 첨부되어 있습니다", + "status.in_reply_to": "이 글은 답글입니다", + "status.is_poll": "이 글은 설문입니다", + "status.local_only": "당신의 서버에서만 보입니다", + "status.sensitive_toggle": "클릭해서 보기", + "status.uncollapse": "펼치기", + "web_app_crash.change_your_settings": "{settings}을 바꾸세요", + "web_app_crash.content": "이것들을 시도해 볼 수 있습니다:", + "web_app_crash.debug_info": "디버그 정보", + "web_app_crash.disable_addons": "브라우저 애드온이나 기본 번역 도구를 비활성화 합니다", + "web_app_crash.issue_tracker": "이슈 트래커", + "web_app_crash.reload": "새로고침", + "web_app_crash.reload_page": "이 페이지를 {reload}", + "web_app_crash.report_issue": "{issuetracker}에 버그 제보", + "web_app_crash.settings": "설정", + "web_app_crash.title": "죄송합니다, 하지만 마스토돈 앱이 뭔가 잘못되었습니다." +} diff --git a/app/javascript/flavours/glitch/locales/ku.js b/app/javascript/flavours/glitch/locales/ku.js deleted file mode 100644 index 19e0e95aa1..0000000000 --- a/app/javascript/flavours/glitch/locales/ku.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ku.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ku.json b/app/javascript/flavours/glitch/locales/ku.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ku.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/kw.js b/app/javascript/flavours/glitch/locales/kw.js deleted file mode 100644 index 1325ca8253..0000000000 --- a/app/javascript/flavours/glitch/locales/kw.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/kw.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/kw.json b/app/javascript/flavours/glitch/locales/kw.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/kw.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/lt.js b/app/javascript/flavours/glitch/locales/lt.js deleted file mode 100644 index 47453aeeb3..0000000000 --- a/app/javascript/flavours/glitch/locales/lt.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/lt.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/lt.json b/app/javascript/flavours/glitch/locales/lt.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/lt.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/lv.js b/app/javascript/flavours/glitch/locales/lv.js deleted file mode 100644 index cdbcdf7999..0000000000 --- a/app/javascript/flavours/glitch/locales/lv.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/lv.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/lv.json b/app/javascript/flavours/glitch/locales/lv.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/lv.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/mk.js b/app/javascript/flavours/glitch/locales/mk.js deleted file mode 100644 index 55e510b59a..0000000000 --- a/app/javascript/flavours/glitch/locales/mk.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/mk.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/mk.json b/app/javascript/flavours/glitch/locales/mk.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/mk.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ml.js b/app/javascript/flavours/glitch/locales/ml.js deleted file mode 100644 index d00331a1a7..0000000000 --- a/app/javascript/flavours/glitch/locales/ml.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ml.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ml.json b/app/javascript/flavours/glitch/locales/ml.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ml.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/mr.js b/app/javascript/flavours/glitch/locales/mr.js deleted file mode 100644 index fb3cde92a5..0000000000 --- a/app/javascript/flavours/glitch/locales/mr.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/mr.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/mr.json b/app/javascript/flavours/glitch/locales/mr.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/mr.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ms.js b/app/javascript/flavours/glitch/locales/ms.js deleted file mode 100644 index 61033c521e..0000000000 --- a/app/javascript/flavours/glitch/locales/ms.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ms.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ms.json b/app/javascript/flavours/glitch/locales/ms.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ms.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/nl.js b/app/javascript/flavours/glitch/locales/nl.js deleted file mode 100644 index 17c371c58f..0000000000 --- a/app/javascript/flavours/glitch/locales/nl.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/nl.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/nl.json b/app/javascript/flavours/glitch/locales/nl.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/nl.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/nn.js b/app/javascript/flavours/glitch/locales/nn.js deleted file mode 100644 index 4c42368cb9..0000000000 --- a/app/javascript/flavours/glitch/locales/nn.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/nn.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/nn.json b/app/javascript/flavours/glitch/locales/nn.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/nn.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/no.js b/app/javascript/flavours/glitch/locales/no.js deleted file mode 100644 index 794b1da25a..0000000000 --- a/app/javascript/flavours/glitch/locales/no.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/no.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/no.json b/app/javascript/flavours/glitch/locales/no.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/no.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/oc.js b/app/javascript/flavours/glitch/locales/oc.js deleted file mode 100644 index 8f161fd8c1..0000000000 --- a/app/javascript/flavours/glitch/locales/oc.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/oc.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/oc.json b/app/javascript/flavours/glitch/locales/oc.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/oc.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/pa.js b/app/javascript/flavours/glitch/locales/pa.js deleted file mode 100644 index c3e0e2b841..0000000000 --- a/app/javascript/flavours/glitch/locales/pa.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/pa.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/pa.json b/app/javascript/flavours/glitch/locales/pa.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/pa.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/pl.js b/app/javascript/flavours/glitch/locales/pl.js deleted file mode 100644 index f430bf5770..0000000000 --- a/app/javascript/flavours/glitch/locales/pl.js +++ /dev/null @@ -1,79 +0,0 @@ -import inherited from 'mastodon/locales/pl.json'; - -const messages = { - 'getting_started.open_source_notice': 'Glitchsoc jest wolnym i otwartoźródłowym forkiem oprogramowania {Mastodon}. Możesz współtworzyć projekt lub zgłaszać błędy na GitHubie pod adresem {github}.', - 'layout.auto': 'Automatyczny', - 'layout.current_is': 'Twój obecny układ to:', - 'layout.desktop': 'Desktopowy', - 'layout.mobile': 'Mobilny', - 'navigation_bar.app_settings': 'Ustawienia aplikacji', - 'navigation_bar.bookmarks': 'Zakładki', - 'getting_started.onboarding': 'Rozejrzyj się', - 'onboarding.page_one.federation': '{domain} jest \'instancją\' Mastodona. Mastodon to sieć działających niezależnie serwerów tworzących jedną sieć społecznościową. Te serwery nazywane są instancjami.', - 'onboarding.page_one.welcome': 'Witamy na {domain}!', - 'onboarding.page_six.github': '{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z każdym klientem i aplikacją Mastodona. Glitchsoc jest całkowicie wolnym i otwartoźródłowym oprogramowaniem. Możesz zgłaszać błędy i sugestie funkcji oraz współtworzyć projekt na {github}.', - 'settings.auto_collapse': 'Automatyczne zwijanie', - 'settings.auto_collapse_all': 'Wszystko', - 'settings.auto_collapse_lengthy': 'Długie wpisy', - 'settings.auto_collapse_media': 'Wpisy z zawartością multimedialną', - 'settings.auto_collapse_notifications': 'Powiadomienia', - 'settings.auto_collapse_reblogs': 'Podbicia', - 'settings.auto_collapse_replies': 'Odpowiedzi', - 'settings.close': 'Zamknij', - 'settings.collapsed_statuses': 'Zwijanie wpisów', - 'settings.enable_collapsed': 'Włącz zwijanie wpisów', - 'settings.general': 'Ogólne', - 'settings.image_backgrounds': 'Obrazy w tle', - 'settings.image_backgrounds_media': 'Wyświetlaj zawartość multimedialną zwiniętych wpisów', - 'settings.image_backgrounds_users': 'Nadaj tło zwiniętym wpisom', - 'settings.layout': 'Układ', - 'settings.media': 'Zawartość multimedialna', - 'settings.media_letterbox': 'Letterbox media', - 'settings.media_fullwidth': 'Podgląd zawartości multimedialnej o pełnej szerokości', - 'settings.navbar_under': 'Pasek nawigacji na dole (tylko w trybie mobilnym)', - 'settings.preferences': 'Preferencje użytkownika', - 'settings.side_arm': 'Drugi przycisk wysyłania', - 'settings.side_arm.none': 'Żaden', - 'settings.wide_view': 'Szeroki widok (tylko w trybie desktopowym)', - 'status.bookmark': 'Dodaj do zakładek', - 'status.collapse': 'Zwiń', - 'status.uncollapse': 'Rozwiń', - - 'media_gallery.sensitive': 'Zawartość wrażliwa', - - 'favourite_modal.combo': 'Możesz nacisnąć {combo}, aby pominąć to następnym razem', - - 'home.column_settings.show_direct': 'Pokaż wiadomości bezpośrednie', - - 'notification.markForDeletion': 'Oznacz do usunięcia', - 'notifications.clear': 'Wyczyść wszystkie powiadomienia', - 'notifications.marked_clear_confirmation': 'Czy na pewno chcesz bezpowrtonie usunąć wszystkie powiadomienia?', - 'notifications.marked_clear': 'Usuń zaznaczone powiadomienia', - - 'notification_purge.btn_all': 'Zaznacz\nwszystkie', - 'notification_purge.btn_none': 'Odznacz\nwszystkie', - 'notification_purge.btn_invert': 'Odwróć\nzaznaczenie', - 'notification_purge.btn_apply': 'Usuń\nzaznaczone', - 'notification_purge.start': 'Przejdź do trybu usuwania powiadomień', - - 'compose.attach.upload': 'Wyślij plik', - 'compose.attach.doodle': 'Narysuj coś', - 'compose.attach': 'Załącz coś', - - 'advanced_options.local-only.short': 'Tylko lokalnie', - 'advanced_options.local-only.long': 'Nie wysyłaj na inne instancje', - 'advanced_options.local-only.tooltip': 'Ten wpis jest widoczny tylko lokalnie', - 'advanced_options.icon_title': 'Ustawienia zaawansowane', - 'advanced_options.threaded_mode.short': 'Tryb wątków', - 'advanced_options.threaded_mode.long': 'Przechodzi do tworzenia odpowiedzi po publikacji wpisu', - 'advanced_options.threaded_mode.tooltip': 'Włączono tryb wątków', - - 'column.bookmarks': 'Zakładki', - 'compose_form.sensitive': 'Oznacz zawartość multimedialną jako wrażliwą', - 'compose_form.spoiler': 'Ukryj tekst za ostrzeżeniem', - 'favourite_modal.combo': 'Możesz nacisnąć {combo}, aby pominąć to następnym razem', - 'tabs_bar.compose': 'Napisz', - -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/pl.json b/app/javascript/flavours/glitch/locales/pl.json new file mode 100644 index 0000000000..1851555c01 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/pl.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Ustawienia zaawansowane", + "advanced_options.local-only.long": "Nie wysyłaj na inne instancje", + "advanced_options.local-only.short": "Tylko lokalnie", + "advanced_options.local-only.tooltip": "Ten wpis jest widoczny tylko lokalnie", + "advanced_options.threaded_mode.long": "Przechodzi do tworzenia odpowiedzi po publikacji wpisu", + "advanced_options.threaded_mode.short": "Tryb wątków", + "advanced_options.threaded_mode.tooltip": "Włączono tryb wątków", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Załącz coś", + "compose.attach.doodle": "Narysuj coś", + "compose.attach.upload": "Wyślij plik", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Ukryj tekst za ostrzeżeniem", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "Możesz nacisnąć {combo}, aby pominąć to następnym razem", + "getting_started.onboarding": "Rozejrzyj się", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Pokaż wiadomości bezpośrednie", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Automatyczny", + "layout.desktop": "Desktopowy", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Zawartość wrażliwa", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "Ustawienia aplikacji", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Oznacz do usunięcia", + "notification_purge.btn_all": "Zaznacz\nwszystkie", + "notification_purge.btn_apply": "Usuń\nzaznaczone", + "notification_purge.btn_invert": "Odwróć\nzaznaczenie", + "notification_purge.btn_none": "Odznacz\nwszystkie", + "notification_purge.start": "Przejdź do trybu usuwania powiadomień", + "notifications.marked_clear": "Usuń zaznaczone powiadomienia", + "notifications.marked_clear_confirmation": "Czy na pewno chcesz bezpowrtonie usunąć wszystkie powiadomienia?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "onboarding.page_one.federation": "{domain} jest 'instancją' Mastodona. Mastodon to sieć działających niezależnie serwerów tworzących jedną sieć społecznościową. Te serwery nazywane są instancjami.", + "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Witamy na {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z każdym klientem i aplikacją Mastodona. Glitchsoc jest całkowicie wolnym i otwartoźródłowym oprogramowaniem. Możesz zgłaszać błędy i sugestie funkcji oraz współtworzyć projekt na {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatyczne zwijanie", + "settings.auto_collapse_all": "Wszystko", + "settings.auto_collapse_lengthy": "Długie wpisy", + "settings.auto_collapse_media": "Wpisy z zawartością multimedialną", + "settings.auto_collapse_notifications": "Powiadomienia", + "settings.auto_collapse_reblogs": "Podbicia", + "settings.auto_collapse_replies": "Odpowiedzi", + "settings.close": "Zamknij", + "settings.collapsed_statuses": "Zwijanie wpisów", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Włącz zwijanie wpisów", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "Ogólne", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Obrazy w tle", + "settings.image_backgrounds_media": "Wyświetlaj zawartość multimedialną zwiniętych wpisów", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Nadaj tło zwiniętym wpisom", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Układ", + "settings.layout_opts": "Layout options", + "settings.media": "Zawartość multimedialna", + "settings.media_fullwidth": "Podgląd zawartości multimedialnej o pełnej szerokości", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferencje użytkownika", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Drugi przycisk wysyłania", + "settings.side_arm.none": "Żaden", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Szeroki widok (tylko w trybie desktopowym)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Zwiń", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Rozwiń", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/pt-BR.js b/app/javascript/flavours/glitch/locales/pt-BR.js deleted file mode 100644 index 6fed635f8f..0000000000 --- a/app/javascript/flavours/glitch/locales/pt-BR.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/pt-BR.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/pt-BR.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/pt-PT.js b/app/javascript/flavours/glitch/locales/pt-PT.js deleted file mode 100644 index cf7afd17ac..0000000000 --- a/app/javascript/flavours/glitch/locales/pt-PT.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/pt-PT.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/pt-PT.json b/app/javascript/flavours/glitch/locales/pt-PT.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/pt-PT.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ro.js b/app/javascript/flavours/glitch/locales/ro.js deleted file mode 100644 index a16446c6a4..0000000000 --- a/app/javascript/flavours/glitch/locales/ro.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ro.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ro.json b/app/javascript/flavours/glitch/locales/ro.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ro.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ru.js b/app/javascript/flavours/glitch/locales/ru.js deleted file mode 100644 index 0e9f1de717..0000000000 --- a/app/javascript/flavours/glitch/locales/ru.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ru.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ru.json b/app/javascript/flavours/glitch/locales/ru.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ru.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sa.js b/app/javascript/flavours/glitch/locales/sa.js deleted file mode 100644 index 4cade0a076..0000000000 --- a/app/javascript/flavours/glitch/locales/sa.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sa.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sa.json b/app/javascript/flavours/glitch/locales/sa.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sa.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sc.js b/app/javascript/flavours/glitch/locales/sc.js deleted file mode 100644 index 88a83aa538..0000000000 --- a/app/javascript/flavours/glitch/locales/sc.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sc.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sc.json b/app/javascript/flavours/glitch/locales/sc.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sc.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/si.js b/app/javascript/flavours/glitch/locales/si.js deleted file mode 100644 index d43266254d..0000000000 --- a/app/javascript/flavours/glitch/locales/si.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/si.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/si.json b/app/javascript/flavours/glitch/locales/si.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/si.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sk.js b/app/javascript/flavours/glitch/locales/sk.js deleted file mode 100644 index 5fba6ab972..0000000000 --- a/app/javascript/flavours/glitch/locales/sk.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sk.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sk.json b/app/javascript/flavours/glitch/locales/sk.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sk.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sl.js b/app/javascript/flavours/glitch/locales/sl.js deleted file mode 100644 index c53c1bae80..0000000000 --- a/app/javascript/flavours/glitch/locales/sl.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sl.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sl.json b/app/javascript/flavours/glitch/locales/sl.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sl.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sq.js b/app/javascript/flavours/glitch/locales/sq.js deleted file mode 100644 index 2fb7a29732..0000000000 --- a/app/javascript/flavours/glitch/locales/sq.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sq.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sq.json b/app/javascript/flavours/glitch/locales/sq.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sq.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sr-Latn.js b/app/javascript/flavours/glitch/locales/sr-Latn.js deleted file mode 100644 index b42d5eaaf6..0000000000 --- a/app/javascript/flavours/glitch/locales/sr-Latn.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sr-Latn.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sr-Latn.json b/app/javascript/flavours/glitch/locales/sr-Latn.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sr-Latn.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sr.js b/app/javascript/flavours/glitch/locales/sr.js deleted file mode 100644 index 8793d8d1e8..0000000000 --- a/app/javascript/flavours/glitch/locales/sr.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sr.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sr.json b/app/javascript/flavours/glitch/locales/sr.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sr.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sv.js b/app/javascript/flavours/glitch/locales/sv.js deleted file mode 100644 index b62c353fe4..0000000000 --- a/app/javascript/flavours/glitch/locales/sv.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/sv.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/sv.json b/app/javascript/flavours/glitch/locales/sv.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sv.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/szl.js b/app/javascript/flavours/glitch/locales/szl.js deleted file mode 100644 index 0b50afe45e..0000000000 --- a/app/javascript/flavours/glitch/locales/szl.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/szl.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/szl.json b/app/javascript/flavours/glitch/locales/szl.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/szl.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ta.js b/app/javascript/flavours/glitch/locales/ta.js deleted file mode 100644 index d6ecdcb1be..0000000000 --- a/app/javascript/flavours/glitch/locales/ta.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ta.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ta.json b/app/javascript/flavours/glitch/locales/ta.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ta.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/tai.js b/app/javascript/flavours/glitch/locales/tai.js deleted file mode 100644 index f26cec5bdc..0000000000 --- a/app/javascript/flavours/glitch/locales/tai.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/tai.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/tai.json b/app/javascript/flavours/glitch/locales/tai.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/tai.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/te.js b/app/javascript/flavours/glitch/locales/te.js deleted file mode 100644 index afd6e4f7bd..0000000000 --- a/app/javascript/flavours/glitch/locales/te.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/te.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/te.json b/app/javascript/flavours/glitch/locales/te.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/te.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/th.js b/app/javascript/flavours/glitch/locales/th.js deleted file mode 100644 index e939f86312..0000000000 --- a/app/javascript/flavours/glitch/locales/th.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/th.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/th.json b/app/javascript/flavours/glitch/locales/th.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/th.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/tr.js b/app/javascript/flavours/glitch/locales/tr.js deleted file mode 100644 index c2b740617a..0000000000 --- a/app/javascript/flavours/glitch/locales/tr.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/tr.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/tr.json b/app/javascript/flavours/glitch/locales/tr.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/tr.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/tt.js b/app/javascript/flavours/glitch/locales/tt.js deleted file mode 100644 index ff74f6c298..0000000000 --- a/app/javascript/flavours/glitch/locales/tt.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/tt.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/tt.json b/app/javascript/flavours/glitch/locales/tt.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/tt.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ug.js b/app/javascript/flavours/glitch/locales/ug.js deleted file mode 100644 index ab7ee07612..0000000000 --- a/app/javascript/flavours/glitch/locales/ug.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ug.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ug.json b/app/javascript/flavours/glitch/locales/ug.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ug.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/uk.js b/app/javascript/flavours/glitch/locales/uk.js deleted file mode 100644 index fe05342aa0..0000000000 --- a/app/javascript/flavours/glitch/locales/uk.js +++ /dev/null @@ -1,72 +0,0 @@ -import inherited from 'mastodon/locales/uk.json'; - - - -const messages = { - 'getting_started.open_source_notice': 'Glitchsoc — вільна та відкрита модифікація {Mastodon}. Ви можете зробити свій внесок у проєкт або повідомити про вади на нашому {github}.', - 'layout.auto': 'Автоматичний', - 'layout.current_is': 'Ваш тип інтерфейсу зараз:', - 'layout.desktop': 'Настільний', - 'layout.mobile': 'Мобільний', - 'navigation_bar.app_settings': 'Налаштування програми', - 'getting_started.onboarding': 'Шо тут', - - 'onboarding.page_one.federation': '{domain} є сервером of Mastodon. Mastodon — мережа незалежних серверів, які працюють разом великою соціяльною мережою. Сервери Mastodon також називають „інстансами“.', - 'onboarding.page_one.welcome': 'Ласкаво просимо до {domain}!', - 'onboarding.page_six.github': '{domain} використовує Glitchsoc. Glitchsoc — дружній {fork} {Mastodon}, сумісний з будь-яким сервером Mastodon або програмою для нього. Glitchsoc повністю вільний та відкритий. Повідомляти про баги, просити фічі, або працювати з кодом можна на {github}.', - 'settings.auto_collapse': 'Автоматичне згортання', - 'settings.auto_collapse_all': 'Все', - 'settings.auto_collapse_lengthy': 'Довгі дмухи', - 'settings.auto_collapse_media': 'Дмухи з медіафайлами', - 'settings.auto_collapse_notifications': 'Сповіщення', - 'settings.auto_collapse_reblogs': 'Передмухи', - 'settings.auto_collapse_replies': 'Відповіді', - 'settings.show_action_bar': 'Показувати кнопки у згорнутих дмухах', - 'settings.close': 'Закрити', - 'settings.collapsed_statuses': 'Згорнуті дмухи', - 'settings.enable_collapsed': 'Увімкути згорнутання дмухів', - 'settings.general': 'Основне', - 'settings.image_backgrounds': 'Картинки на тлі', - 'settings.image_backgrounds_media': 'Підглядати медіа зі схованих дмухів', - 'settings.image_backgrounds_users': 'Давати схованим дмухам тло-картинку', - 'settings.media': 'Медіа', - 'settings.media_letterbox': 'Обрізати медіа', - 'settings.media_fullwidth': 'Показувати медіа повною шириною', - 'settings.preferences': 'Користувацькі налаштування', - 'settings.wide_view': "Широкий вид (тільки в режимі для комп'ютерів)", - 'settings.navbar_under': 'Панель навігації знизу (тільки в режимі для мобілок)', - 'status.collapse': 'Згорнути', - 'status.uncollapse': 'Розгорнути', - - 'media_gallery.sensitive': 'Чутливі', - - 'favourite_modal.combo': 'Ви можете натиснути {combo}, щоб пропустити це наступного разу', - - 'home.column_settings.show_direct': 'Показати прямі повідомлення', - - 'notification.markForDeletion': 'Позначити для видалення', - 'notifications.clear': 'Очистити всі мої сповіщення', - 'notifications.marked_clear_confirmation': 'Ви впевнені, що хочете незворотньо очистити всі вибрані сповіщення?', - 'notifications.marked_clear': 'Очистити вибрані сповіщення', - - 'notification_purge.btn_all': 'Вибрати\nвсе', - 'notification_purge.btn_none': 'Вибрати\nнічого', - 'notification_purge.btn_invert': 'Інвертувати\nвибір', - 'notification_purge.btn_apply': 'Очистити\nвибір', - - 'compose.attach.upload': 'Завантажити сюди файл', - 'compose.attach.doodle': 'Помалювати', - 'compose.attach': 'Вкласти...', - - 'advanced_options.local-only.short': 'Лише локальне', - 'advanced_options.local-only.long': 'Не дмухати це на інші сервери', - 'advanced_options.local-only.tooltip': 'Цей дмух лише локальний', - - // TODO: я не знаю що це значить - //'advanced_options.icon_title': 'Advanced options', - //'advanced_options.threaded_mode.short': 'Threaded mode', - //'advanced_options.threaded_mode.long': 'Automatically opens a reply on posting', - //'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled', -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/uk.json b/app/javascript/flavours/glitch/locales/uk.json new file mode 100644 index 0000000000..faf9a17ac2 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/uk.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Не дмухати це на інші сервери", + "advanced_options.local-only.short": "Лише локальне", + "advanced_options.local-only.tooltip": "Цей дмух лише локальний", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Вкласти...", + "compose.attach.doodle": "Помалювати", + "compose.attach.upload": "Завантажити сюди файл", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", + "getting_started.onboarding": "Шо тут", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Показати прямі повідомлення", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Автоматичний", + "layout.desktop": "Настільний", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Чутливі", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "Налаштування програми", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Позначити для видалення", + "notification_purge.btn_all": "Вибрати\nвсе", + "notification_purge.btn_apply": "Очистити\nвибір", + "notification_purge.btn_invert": "Інвертувати\nвибір", + "notification_purge.btn_none": "Вибрати\nнічого", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Очистити вибрані сповіщення", + "notifications.marked_clear_confirmation": "Ви впевнені, що хочете незворотньо очистити всі вибрані сповіщення?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "onboarding.page_one.federation": "{domain} є сервером of Mastodon. Mastodon — мережа незалежних серверів, які працюють разом великою соціяльною мережою. Сервери Mastodon також називають „інстансами“.", + "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Ласкаво просимо до {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} використовує Glitchsoc. Glitchsoc — дружній {fork} {Mastodon}, сумісний з будь-яким сервером Mastodon або програмою для нього. Glitchsoc повністю вільний та відкритий. Повідомляти про баги, просити фічі, або працювати з кодом можна на {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Автоматичне згортання", + "settings.auto_collapse_all": "Все", + "settings.auto_collapse_lengthy": "Довгі дмухи", + "settings.auto_collapse_media": "Дмухи з медіафайлами", + "settings.auto_collapse_notifications": "Сповіщення", + "settings.auto_collapse_reblogs": "Передмухи", + "settings.auto_collapse_replies": "Відповіді", + "settings.close": "Закрити", + "settings.collapsed_statuses": "Згорнуті дмухи", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Увімкути згорнутання дмухів", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "Основне", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Картинки на тлі", + "settings.image_backgrounds_media": "Підглядати медіа зі схованих дмухів", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Давати схованим дмухам тло-картинку", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Медіа", + "settings.media_fullwidth": "Показувати медіа повною шириною", + "settings.media_letterbox": "Обрізати медіа", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Користувацькі налаштування", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Показувати кнопки у згорнутих дмухах", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Широкий вид (тільки в режимі для комп'ютерів)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Згорнути", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Розгорнути", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ur.js b/app/javascript/flavours/glitch/locales/ur.js deleted file mode 100644 index 97ba291b02..0000000000 --- a/app/javascript/flavours/glitch/locales/ur.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/ur.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/ur.json b/app/javascript/flavours/glitch/locales/ur.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ur.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/vi.js b/app/javascript/flavours/glitch/locales/vi.js deleted file mode 100644 index 499a967274..0000000000 --- a/app/javascript/flavours/glitch/locales/vi.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/vi.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/vi.json b/app/javascript/flavours/glitch/locales/vi.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/vi.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/whitelist_af.json b/app/javascript/flavours/glitch/locales/whitelist_af.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_af.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ar.json b/app/javascript/flavours/glitch/locales/whitelist_ar.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ar.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ast.json b/app/javascript/flavours/glitch/locales/whitelist_ast.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ast.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_bg.json b/app/javascript/flavours/glitch/locales/whitelist_bg.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_bg.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_bn.json b/app/javascript/flavours/glitch/locales/whitelist_bn.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_bn.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_br.json b/app/javascript/flavours/glitch/locales/whitelist_br.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_br.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ca.json b/app/javascript/flavours/glitch/locales/whitelist_ca.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ca.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ckb.json b/app/javascript/flavours/glitch/locales/whitelist_ckb.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ckb.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_co.json b/app/javascript/flavours/glitch/locales/whitelist_co.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_co.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_cs.json b/app/javascript/flavours/glitch/locales/whitelist_cs.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_cs.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_cy.json b/app/javascript/flavours/glitch/locales/whitelist_cy.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_cy.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_da.json b/app/javascript/flavours/glitch/locales/whitelist_da.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_da.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_de.json b/app/javascript/flavours/glitch/locales/whitelist_de.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_de.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_el.json b/app/javascript/flavours/glitch/locales/whitelist_el.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_el.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_en.json b/app/javascript/flavours/glitch/locales/whitelist_en.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_en.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_eo.json b/app/javascript/flavours/glitch/locales/whitelist_eo.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_eo.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_es-AR.json b/app/javascript/flavours/glitch/locales/whitelist_es-AR.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_es-AR.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_es-MX.json b/app/javascript/flavours/glitch/locales/whitelist_es-MX.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_es-MX.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_es.json b/app/javascript/flavours/glitch/locales/whitelist_es.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_es.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_et.json b/app/javascript/flavours/glitch/locales/whitelist_et.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_et.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_eu.json b/app/javascript/flavours/glitch/locales/whitelist_eu.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_eu.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_fa.json b/app/javascript/flavours/glitch/locales/whitelist_fa.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_fa.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_fi.json b/app/javascript/flavours/glitch/locales/whitelist_fi.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_fi.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_fr.json b/app/javascript/flavours/glitch/locales/whitelist_fr.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_fr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ga.json b/app/javascript/flavours/glitch/locales/whitelist_ga.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ga.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_gd.json b/app/javascript/flavours/glitch/locales/whitelist_gd.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_gd.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_gl.json b/app/javascript/flavours/glitch/locales/whitelist_gl.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_gl.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_he.json b/app/javascript/flavours/glitch/locales/whitelist_he.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_he.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_hi.json b/app/javascript/flavours/glitch/locales/whitelist_hi.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_hi.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_hr.json b/app/javascript/flavours/glitch/locales/whitelist_hr.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_hr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_hu.json b/app/javascript/flavours/glitch/locales/whitelist_hu.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_hu.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_hy.json b/app/javascript/flavours/glitch/locales/whitelist_hy.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_hy.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_id.json b/app/javascript/flavours/glitch/locales/whitelist_id.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_id.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_io.json b/app/javascript/flavours/glitch/locales/whitelist_io.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_io.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_is.json b/app/javascript/flavours/glitch/locales/whitelist_is.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_is.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_it.json b/app/javascript/flavours/glitch/locales/whitelist_it.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_it.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ja.json b/app/javascript/flavours/glitch/locales/whitelist_ja.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ja.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ka.json b/app/javascript/flavours/glitch/locales/whitelist_ka.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ka.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_kab.json b/app/javascript/flavours/glitch/locales/whitelist_kab.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_kab.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_kk.json b/app/javascript/flavours/glitch/locales/whitelist_kk.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_kk.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_kn.json b/app/javascript/flavours/glitch/locales/whitelist_kn.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_kn.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ko.json b/app/javascript/flavours/glitch/locales/whitelist_ko.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ko.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ku.json b/app/javascript/flavours/glitch/locales/whitelist_ku.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ku.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_kw.json b/app/javascript/flavours/glitch/locales/whitelist_kw.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_kw.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_lt.json b/app/javascript/flavours/glitch/locales/whitelist_lt.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_lt.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_lv.json b/app/javascript/flavours/glitch/locales/whitelist_lv.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_lv.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_mk.json b/app/javascript/flavours/glitch/locales/whitelist_mk.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_mk.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ml.json b/app/javascript/flavours/glitch/locales/whitelist_ml.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ml.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_mr.json b/app/javascript/flavours/glitch/locales/whitelist_mr.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_mr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ms.json b/app/javascript/flavours/glitch/locales/whitelist_ms.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ms.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_nl.json b/app/javascript/flavours/glitch/locales/whitelist_nl.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_nl.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_nn.json b/app/javascript/flavours/glitch/locales/whitelist_nn.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_nn.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_no.json b/app/javascript/flavours/glitch/locales/whitelist_no.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_no.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_oc.json b/app/javascript/flavours/glitch/locales/whitelist_oc.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_oc.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_pa.json b/app/javascript/flavours/glitch/locales/whitelist_pa.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_pa.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_pl.json b/app/javascript/flavours/glitch/locales/whitelist_pl.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_pl.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json b/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json b/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ro.json b/app/javascript/flavours/glitch/locales/whitelist_ro.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ro.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ru.json b/app/javascript/flavours/glitch/locales/whitelist_ru.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ru.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sa.json b/app/javascript/flavours/glitch/locales/whitelist_sa.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sa.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sc.json b/app/javascript/flavours/glitch/locales/whitelist_sc.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sc.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_si.json b/app/javascript/flavours/glitch/locales/whitelist_si.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_si.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sk.json b/app/javascript/flavours/glitch/locales/whitelist_sk.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sk.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sl.json b/app/javascript/flavours/glitch/locales/whitelist_sl.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sl.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sq.json b/app/javascript/flavours/glitch/locales/whitelist_sq.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sq.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json b/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sr.json b/app/javascript/flavours/glitch/locales/whitelist_sr.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_sv.json b/app/javascript/flavours/glitch/locales/whitelist_sv.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_sv.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_szl.json b/app/javascript/flavours/glitch/locales/whitelist_szl.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_szl.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ta.json b/app/javascript/flavours/glitch/locales/whitelist_ta.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ta.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_tai.json b/app/javascript/flavours/glitch/locales/whitelist_tai.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_tai.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_te.json b/app/javascript/flavours/glitch/locales/whitelist_te.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_te.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_th.json b/app/javascript/flavours/glitch/locales/whitelist_th.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_th.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_tr.json b/app/javascript/flavours/glitch/locales/whitelist_tr.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_tr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_tt.json b/app/javascript/flavours/glitch/locales/whitelist_tt.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_tt.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ug.json b/app/javascript/flavours/glitch/locales/whitelist_ug.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ug.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_uk.json b/app/javascript/flavours/glitch/locales/whitelist_uk.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_uk.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_ur.json b/app/javascript/flavours/glitch/locales/whitelist_ur.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_ur.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_vi.json b/app/javascript/flavours/glitch/locales/whitelist_vi.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_vi.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_zgh.json b/app/javascript/flavours/glitch/locales/whitelist_zgh.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_zgh.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json b/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json b/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json b/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/flavours/glitch/locales/zgh.js b/app/javascript/flavours/glitch/locales/zgh.js deleted file mode 100644 index f2f15b1a48..0000000000 --- a/app/javascript/flavours/glitch/locales/zgh.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/zgh.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/zgh.json b/app/javascript/flavours/glitch/locales/zgh.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/zgh.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/zh-CN.js b/app/javascript/flavours/glitch/locales/zh-CN.js deleted file mode 100644 index 21a68fc01b..0000000000 --- a/app/javascript/flavours/glitch/locales/zh-CN.js +++ /dev/null @@ -1,201 +0,0 @@ -import inherited from 'mastodon/locales/zh-CN.json'; - -const messages = { - 'account.add_account_note': '为 @{name} 添加备注', - 'account.disclaimer_full': '以下信息可能无法完整代表你的个人资料。', - 'account.follows': '正在关注', - 'account.suspended_disclaimer_full': '该用户已被封禁。', - 'account.view_full_profile': '查看完整资料', - 'account_note.cancel': '取消', - 'account_note.edit': '编辑', - 'account_note.glitch_placeholder': '暂无备注', - 'account_note.save': '保存', - 'advanced_options.icon_title': '高级选项', - 'advanced_options.local-only.long': '不要发布嘟文到其他实例', - 'advanced_options.local-only.short': '本地模式', - 'advanced_options.local-only.tooltip': '这条嘟文仅限于本实例', - 'advanced_options.threaded_mode.long': '发嘟时自动打开回复', - 'advanced_options.threaded_mode.short': '线程模式', - 'advanced_options.threaded_mode.tooltip': '线程模式已启用', - 'boost_modal.missing_description': '这条嘟文未包含媒体描述', - 'column.favourited_by': '喜欢', - 'column.heading': '标题', - 'column.reblogged_by': '转嘟', - 'column.subheading': '其他选项', - 'column.toot': '嘟文和回复', - 'column_header.profile': '个人资料', - 'column_subheading.lists': '列表', - 'column_subheading.navigation': '导航', - 'community.column_settings.allow_local_only': '只显示本地模式嘟文', - 'compose.attach': '附上...', - 'compose.attach.doodle': '画点什么', - 'compose.attach.upload': '上传文件', - 'compose.content-type.html': 'HTML', - 'compose.content-type.markdown': 'Markdown', - 'compose.content-type.plain': '纯文本', - 'compose_form.poll.multiple_choices': '允许多选', - 'compose_form.poll.single_choice': '允许单选', - 'compose_form.spoiler': '隐藏为内容警告', - 'confirmation_modal.do_not_ask_again': '下次不显示确认窗口', - 'confirmations.discard_edit_media.confirm': '确认', - 'confirmations.discard_edit_media.message': '有未保存的媒体描述或预览,确认要关闭?', - 'confirmations.missing_media_description.confirm': '确认', - 'confirmations.missing_media_description.edit': '编辑', - 'confirmations.missing_media_description.message': '你没有为一种或多种媒体撰写描述。请考虑为视障人士添加描述。', - 'confirmations.unfilter': '关于此过滤后嘟文的信息', - 'confirmations.unfilter.author': '作者', - 'confirmations.unfilter.confirm': '查看', - 'confirmations.unfilter.edit_filter': '编辑过滤器', - 'confirmations.unfilter.filters': '应用 {count, plural, one {过滤器} other {过滤器}}', - 'content-type.change': '内容类型 ', - 'direct.conversations_mode': '对话模式', - 'direct.timeline_mode': '时间线模式', - 'endorsed_accounts_editor.endorsed_accounts': '推荐用户', - 'favourite_modal.combo': '下次你可以按 {combo} 跳过这个', - 'getting_started.onboarding': '参观一下', - 'getting_started.open_source_notice': 'Glitchsoc 是由 {Mastodon} 分叉出来的免费开源软件。你可以在 GitHub 上贡献或报告问题,地址是 {github}。', - 'home.column_settings.advanced': '高级', - 'home.column_settings.filter_regex': '按正则表达式过滤', - 'home.column_settings.show_direct': '显示私信', - 'home.settings': '列表设置', - 'keyboard_shortcuts.bookmark': '书签', - 'keyboard_shortcuts.secondary_toot': '使用二级隐私设置发送嘟文', - 'keyboard_shortcuts.toggle_collapse': '折叠或展开嘟文', - 'layout.auto': '自动模式', - 'layout.current_is': '你目前的布局是:', - 'layout.desktop': '桌面模式', - 'layout.hint.auto': '根据“启用高级 Web 界面”设置和屏幕大小自动选择布局。', - 'layout.hint.desktop': '“使用多列布局,无论“启用高级 Web 界面”设置和屏幕大小如何。', - 'layout.hint.single': '使用单列布局,无论“启用高级 Web 界面”设置和屏幕大小如何。', - 'layout.single': '移动模式', - 'media_gallery.sensitive': '敏感内容', - 'moved_to_warning': '此帐户已被标记为移至 {moved_to_link},并且似乎没有收到新关注者。', - 'navigation_bar.app_settings': '应用选项', - 'navigation_bar.featured_users': '推荐用户', - 'navigation_bar.misc': '杂项', - 'notification.markForDeletion': '标记以删除', - 'notification_purge.btn_all': '全选', - 'notification_purge.btn_apply': '清除已选', - 'notification_purge.btn_invert': '反向选择', - 'notification_purge.btn_none': '取消全选', - 'notification_purge.start': '进入通知清除模式', - 'notifications.clear': '清除所有通知', - 'notifications.marked_clear': '清除选择的通知', - 'notifications.marked_clear_confirmation': '你确定要永久清除所有选择的通知吗?', - 'onboarding.done': '完成', - 'onboarding.next': '下一个', - 'onboarding.page_five.public_timelines': '本地时间线显示来自 {domain} 中所有人的公开嘟文。跨站时间线显示了 {domain} 用户关注的每个人的公开嘟文。这些被称为公共时间线,是发现新朋友的好方法。', - 'onboarding.page_four.home': '你的主页时间线会显示你关注的人的嘟文。', - 'onboarding.page_four.notifications': '通知栏显示某人与你互动的内容。', - 'onboarding.page_one.federation': '{domain} 是 Mastodon 的一个“实例”。Mastodon 是一个由独立服务器组成的,通过不断联合形成的社交网络。我们称这些服务器为实例。', - 'onboarding.page_one.handle': '你位于 {domain},因此你的完整用户名是 {handle} 。', - 'onboarding.page_one.welcome': '欢迎来到 {domain}!', - 'onboarding.page_six.admin': '实例的管理员是 {admin}。', - 'onboarding.page_six.almost_done': '就快完成了...', - 'onboarding.page_six.appetoot': '尽情享用吧!', - 'onboarding.page_six.apps_available': '有适用于 iOS、Android 和其他平台的应用程序。', - 'onboarding.page_six.github': '{domain} 在 Glitchsoc 上运行。Glitchsoc 是 {Mastodon} 的一个友好 {fork},与任何 Mastodon 实例或应用兼容。Glitchsoc 是完全免费和开源的。你可以在 {github} 上报告错误、请求功能或贡献代码。', - 'onboarding.page_six.guidelines': '社区准则', - 'onboarding.page_six.read_guidelines': '请阅读 {domain} 的 {guidelines}!', - 'onboarding.page_six.various_app': '应用程序', - 'onboarding.page_three.profile': '编辑你的个人资料,更改你的头像、个人简介和昵称。在那里,你还会发现其他设置。', - 'onboarding.page_three.search': '使用搜索栏查找用户并查看标签,例如 #illustration 和 #introductions。要查找不在此实例中的用户,请使用他们的完整用户名。', - 'onboarding.page_two.compose': '在撰写框中撰写嘟文。你可以使用下方图标上传图像、更改隐私设置和添加内容警告。', - 'onboarding.skip': '跳过', - 'settings.always_show_spoilers_field': '始终显示内容警告框', - 'settings.auto_collapse': '自动折叠', - 'settings.auto_collapse_all': '所有', - 'settings.auto_collapse_lengthy': '长嘟文', - 'settings.auto_collapse_media': '带媒体文件的嘟文', - 'settings.auto_collapse_notifications': '通知', - 'settings.auto_collapse_reblogs': '转嘟', - 'settings.auto_collapse_replies': '回复', - 'settings.close': '关闭', - 'settings.collapsed_statuses': '折叠嘟文', - 'settings.compose_box_opts': '撰写框', - 'settings.confirm_before_clearing_draft': '在覆盖正在写入的嘟文之前显示确认对话框', - 'settings.confirm_boost_missing_media_description': '在转嘟缺少媒体描述的嘟文之前显示确认对话框', - 'settings.confirm_missing_media_description': '在发送缺少媒体描述的嘟文之前显示确认对话框', - 'settings.content_warnings': '内容警告', - 'settings.content_warnings.regexp': '正则表达式', - 'settings.content_warnings_filter': '不会自动展开的内容警告:', - 'settings.enable_collapsed': '启用折叠嘟文', - 'settings.enable_content_warnings_auto_unfold': '自动展开内容警告', - 'settings.filtering_behavior': '过滤器行为', - 'settings.filtering_behavior.cw': '仍然显示嘟文,并在内容警告中添加过滤词', - 'settings.filtering_behavior.drop': '完全隐藏过滤的嘟文', - 'settings.filtering_behavior.hide': '显示“已过滤”并添加一个按钮来显示原因', - 'settings.filtering_behavior.upstream': '像原版 Mastodon 一样显示“已过滤”', - 'settings.filters': '过滤器', - 'settings.general': '一般', - 'settings.hicolor_privacy_icons': '彩色隐私图标 ', - 'settings.hicolor_privacy_icons.hint': '以明亮且易于区分的颜色显示隐私图标', - 'settings.image_backgrounds': '图片背景', - 'settings.image_backgrounds_media': '预览折叠嘟文的媒体文件', - 'settings.image_backgrounds_users': '为折叠嘟文附加图片背景', - 'settings.inline_preview_cards': '外部链接的内嵌预览卡片', - 'settings.layout': '布局:', - 'settings.layout_opts': '布局选项', - 'settings.media': '媒体', - 'settings.media_fullwidth': '全宽媒体预览', - 'settings.media_letterbox': '信箱媒体', - 'settings.media_letterbox_hint': '缩小媒体以填充图像容器而不是拉伸和裁剪它们', - 'settings.media_reveal_behind_cw': '默认显示内容警告后的敏感媒体', - 'settings.navbar_under': '底部导航栏(仅限于移动模式)', - 'settings.notifications.favicon_badge': '未读通知网站图标', - 'settings.notifications.favicon_badge.hint': '将未读通知添加到网站图标', - 'settings.notifications.tab_badge': '未读通知图标', - 'settings.notifications.tab_badge.hint': '当通知栏未打开时,显示未读通知图标', - 'settings.notifications_opts': '通知选项', - 'settings.pop_in_left': '左边', - 'settings.pop_in_player': '启用悬浮播放器', - 'settings.pop_in_position': '悬浮播放器位置:', - 'settings.pop_in_right': '右边', - 'settings.preferences': '用户选项', - 'settings.prepend_cw_re': '回复时在内容警告前加上“re:”', - 'settings.preselect_on_reply': '回复时预先选择用户名', - 'settings.preselect_on_reply_hint': '回复与多个参与者的对话时,预先选择第一个用户名', - 'settings.rewrite_mentions': '重写嘟文中的提及', - 'settings.rewrite_mentions_acct': '重写为用户名和域名(当帐户为远程时)', - 'settings.rewrite_mentions_no': '不要重写', - 'settings.rewrite_mentions_username': '重写为用户名', - 'settings.show_action_bar': '在折叠的嘟文中显示操作按钮', - 'settings.show_content_type_choice': '允许你在撰写嘟文时选择格式类型', - 'settings.show_reply_counter': '显示回复的大致数量', - 'settings.side_arm': '辅助发嘟按钮:', - 'settings.side_arm.none': '无', - 'settings.side_arm_reply_mode': '当回复嘟文时:', - 'settings.side_arm_reply_mode.copy': '复制被回复嘟文的隐私设置', - 'settings.side_arm_reply_mode.keep': '保留辅助发嘟按钮以设置隐私', - 'settings.side_arm_reply_mode.restrict': '将隐私设置限制为正在回复的那条嘟文', - 'settings.swipe_to_change_columns': '允许滑动以在列之间切换(仅限移动模式)', - 'settings.tag_misleading_links': '标记误导性链接', - 'settings.tag_misleading_links.hint': '将带有目标网页链接的视觉指示添加到每个未明确的链接', - 'settings.wide_view': '宽视图(仅限于桌面模式)', - 'settings.wide_view_hint': '拉伸列宽以更好地填充可用空间。', - 'status.collapse': '折叠', - 'status.has_audio': '附带音频文件', - 'status.has_pictures': '附带图片文件', - 'status.has_preview_card': '附带预览卡片', - 'status.has_video': '附带视频文件', - 'status.hide': '隐藏内容', - 'status.in_reply_to': '此嘟文是回复', - 'status.is_poll': '此嘟文是投票', - 'status.local_only': '此嘟文仅本实例可见', - 'status.sensitive_toggle': '点击查看', - 'status.show_filter_reason': '(显示原因)', - 'status.uncollapse': '不折叠', - 'upload_modal.applying': '正在应用...', - 'web_app_crash.change_your_settings': '更改 {settings}', - 'web_app_crash.content': '你可以尝试这些:', - 'web_app_crash.debug_info': '调试信息', - 'web_app_crash.disable_addons': '禁用浏览器插件或本地翻译工具', - 'web_app_crash.issue_tracker': '问题追踪器', - 'web_app_crash.reload': '刷新', - 'web_app_crash.reload_page': '{reload} 此页面', - 'web_app_crash.report_issue': '将错误报告给 {issuetracker}', - 'web_app_crash.settings': '设置', - 'web_app_crash.title': '抱歉,Mastodon 出了点问题。', -}; - -export default Object.assign({}, inherited, messages); \ No newline at end of file diff --git a/app/javascript/flavours/glitch/locales/zh-CN.json b/app/javascript/flavours/glitch/locales/zh-CN.json new file mode 100644 index 0000000000..fe03213ae0 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/zh-CN.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "为 @{name} 添加备注", + "account.disclaimer_full": "以下信息可能无法完整代表你的个人资料。", + "account.follows": "正在关注", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "该用户已被封禁。", + "account.view_full_profile": "查看完整资料", + "account_note.cancel": "取消", + "account_note.edit": "编辑", + "account_note.glitch_placeholder": "暂无备注", + "account_note.save": "保存", + "advanced_options.icon_title": "高级选项", + "advanced_options.local-only.long": "不要发布嘟文到其他实例", + "advanced_options.local-only.short": "本地模式", + "advanced_options.local-only.tooltip": "这条嘟文仅限于本实例", + "advanced_options.threaded_mode.long": "发嘟时自动打开回复", + "advanced_options.threaded_mode.short": "线程模式", + "advanced_options.threaded_mode.tooltip": "线程模式已启用", + "boost_modal.missing_description": "这条嘟文未包含媒体描述", + "column.favourited_by": "喜欢", + "column.heading": "标题", + "column.reblogged_by": "转嘟", + "column.subheading": "其他选项", + "column_header.profile": "个人资料", + "column_subheading.lists": "列表", + "column_subheading.navigation": "导航", + "community.column_settings.allow_local_only": "只显示本地模式嘟文", + "compose.attach": "附上...", + "compose.attach.doodle": "画点什么", + "compose.attach.upload": "上传文件", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "纯文本", + "compose_form.poll.multiple_choices": "允许多选", + "compose_form.poll.single_choice": "允许单选", + "compose_form.spoiler": "隐藏为内容警告", + "confirmation_modal.do_not_ask_again": "下次不显示确认窗口", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "确认", + "confirmations.missing_media_description.edit": "编辑", + "confirmations.missing_media_description.message": "你没有为一种或多种媒体撰写描述。请考虑为视障人士添加描述。", + "confirmations.unfilter.author": "作者", + "confirmations.unfilter.confirm": "查看", + "confirmations.unfilter.edit_filter": "编辑过滤器", + "confirmations.unfilter.filters": "应用 {count, plural, one {过滤器} other {过滤器}}", + "content-type.change": "内容类型 ", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "推荐用户", + "favourite_modal.combo": "下次你可以按 {combo} 跳过这个", + "getting_started.onboarding": "参观一下", + "home.column_settings.advanced": "高级", + "home.column_settings.filter_regex": "按正则表达式过滤", + "home.column_settings.show_direct": "显示私信", + "home.settings": "列表设置", + "keyboard_shortcuts.bookmark": "书签", + "keyboard_shortcuts.secondary_toot": "使用二级隐私设置发送嘟文", + "keyboard_shortcuts.toggle_collapse": "折叠或展开嘟文", + "layout.auto": "自动模式", + "layout.desktop": "桌面模式", + "layout.hint.auto": "根据“启用高级 Web 界面”设置和屏幕大小自动选择布局。", + "layout.hint.desktop": "“使用多列布局,无论“启用高级 Web 界面”设置和屏幕大小如何。", + "layout.hint.single": "使用单列布局,无论“启用高级 Web 界面”设置和屏幕大小如何。", + "layout.single": "移动模式", + "media_gallery.sensitive": "敏感内容", + "moved_to_warning": "此帐户已被标记为移至 {moved_to_link},并且似乎没有收到新关注者。", + "navigation_bar.app_settings": "应用选项", + "navigation_bar.featured_users": "推荐用户", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "杂项", + "notification.markForDeletion": "标记以删除", + "notification_purge.btn_all": "全选", + "notification_purge.btn_apply": "清除已选", + "notification_purge.btn_invert": "反向选择", + "notification_purge.btn_none": "取消全选", + "notification_purge.start": "进入通知清除模式", + "notifications.marked_clear": "清除选择的通知", + "notifications.marked_clear_confirmation": "你确定要永久清除所有选择的通知吗?", + "onboarding.done": "完成", + "onboarding.next": "下一个", + "onboarding.page_five.public_timelines": "本地时间线显示来自 {domain} 中所有人的公开嘟文。跨站时间线显示了 {domain} 用户关注的每个人的公开嘟文。这些被称为公共时间线,是发现新朋友的好方法。", + "onboarding.page_four.home": "你的主页时间线会显示你关注的人的嘟文。", + "onboarding.page_four.notifications": "通知栏显示某人与你互动的内容。", + "onboarding.page_one.federation": "{domain} 是 Mastodon 的一个“实例”。Mastodon 是一个由独立服务器组成的,通过不断联合形成的社交网络。我们称这些服务器为实例。", + "onboarding.page_one.handle": "你位于 {domain},因此你的完整用户名是 {handle} 。", + "onboarding.page_one.welcome": "欢迎来到 {domain}!", + "onboarding.page_six.admin": "实例的管理员是 {admin}。", + "onboarding.page_six.almost_done": "就快完成了...", + "onboarding.page_six.appetoot": "尽情享用吧!", + "onboarding.page_six.apps_available": "有适用于 iOS、Android 和其他平台的应用程序。", + "onboarding.page_six.github": "{domain} 在 Glitchsoc 上运行。Glitchsoc 是 {Mastodon} 的一个友好 {fork},与任何 Mastodon 实例或应用兼容。Glitchsoc 是完全免费和开源的。你可以在 {github} 上报告错误、请求功能或贡献代码。", + "onboarding.page_six.guidelines": "社区准则", + "onboarding.page_six.read_guidelines": "请阅读 {domain} 的 {guidelines}!", + "onboarding.page_six.various_app": "应用程序", + "onboarding.page_three.profile": "编辑你的个人资料,更改你的头像、个人简介和昵称。在那里,你还会发现其他设置。", + "onboarding.page_three.search": "使用搜索栏查找用户并查看标签,例如 #illustration 和 #introductions。要查找不在此实例中的用户,请使用他们的完整用户名。", + "onboarding.page_two.compose": "在撰写框中撰写嘟文。你可以使用下方图标上传图像、更改隐私设置和添加内容警告。", + "onboarding.skip": "跳过", + "settings.always_show_spoilers_field": "始终显示内容警告框", + "settings.auto_collapse": "自动折叠", + "settings.auto_collapse_all": "所有", + "settings.auto_collapse_lengthy": "长嘟文", + "settings.auto_collapse_media": "带媒体文件的嘟文", + "settings.auto_collapse_notifications": "通知", + "settings.auto_collapse_reblogs": "转嘟", + "settings.auto_collapse_replies": "回复", + "settings.close": "关闭", + "settings.collapsed_statuses": "折叠嘟文", + "settings.compose_box_opts": "撰写框", + "settings.confirm_before_clearing_draft": "在覆盖正在写入的嘟文之前显示确认对话框", + "settings.confirm_boost_missing_media_description": "在转嘟缺少媒体描述的嘟文之前显示确认对话框", + "settings.confirm_missing_media_description": "在发送缺少媒体描述的嘟文之前显示确认对话框", + "settings.content_warnings": "内容警告", + "settings.content_warnings.regexp": "正则表达式", + "settings.content_warnings_filter": "不会自动展开的内容警告:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "启用折叠嘟文", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "自动展开内容警告", + "settings.filters": "过滤器", + "settings.general": "一般", + "settings.hicolor_privacy_icons": "彩色隐私图标 ", + "settings.hicolor_privacy_icons.hint": "以明亮且易于区分的颜色显示隐私图标", + "settings.image_backgrounds": "图片背景", + "settings.image_backgrounds_media": "预览折叠嘟文的媒体文件", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "为折叠嘟文附加图片背景", + "settings.inline_preview_cards": "外部链接的内嵌预览卡片", + "settings.layout": "布局:", + "settings.layout_opts": "布局选项", + "settings.media": "媒体", + "settings.media_fullwidth": "全宽媒体预览", + "settings.media_letterbox": "信箱媒体", + "settings.media_letterbox_hint": "缩小媒体以填充图像容器而不是拉伸和裁剪它们", + "settings.media_reveal_behind_cw": "默认显示内容警告后的敏感媒体", + "settings.notifications.favicon_badge": "未读通知网站图标", + "settings.notifications.favicon_badge.hint": "将未读通知添加到网站图标", + "settings.notifications.tab_badge": "未读通知图标", + "settings.notifications.tab_badge.hint": "当通知栏未打开时,显示未读通知图标", + "settings.notifications_opts": "通知选项", + "settings.pop_in_left": "左边", + "settings.pop_in_player": "启用悬浮播放器", + "settings.pop_in_position": "悬浮播放器位置:", + "settings.pop_in_right": "右边", + "settings.preferences": "用户选项", + "settings.prepend_cw_re": "回复时在内容警告前加上“re:”", + "settings.preselect_on_reply": "回复时预先选择用户名", + "settings.preselect_on_reply_hint": "回复与多个参与者的对话时,预先选择第一个用户名", + "settings.rewrite_mentions": "重写嘟文中的提及", + "settings.rewrite_mentions_acct": "重写为用户名和域名(当帐户为远程时)", + "settings.rewrite_mentions_no": "不要重写", + "settings.rewrite_mentions_username": "重写为用户名", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "在折叠的嘟文中显示操作按钮", + "settings.show_content_type_choice": "允许你在撰写嘟文时选择格式类型", + "settings.show_reply_counter": "显示回复的大致数量", + "settings.side_arm": "辅助发嘟按钮:", + "settings.side_arm.none": "无", + "settings.side_arm_reply_mode": "当回复嘟文时:", + "settings.side_arm_reply_mode.copy": "复制被回复嘟文的隐私设置", + "settings.side_arm_reply_mode.keep": "保留辅助发嘟按钮以设置隐私", + "settings.side_arm_reply_mode.restrict": "将隐私设置限制为正在回复的那条嘟文", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "允许滑动以在列之间切换(仅限移动模式)", + "settings.tag_misleading_links": "标记误导性链接", + "settings.tag_misleading_links.hint": "将带有目标网页链接的视觉指示添加到每个未明确的链接", + "settings.wide_view": "宽视图(仅限于桌面模式)", + "settings.wide_view_hint": "拉伸列宽以更好地填充可用空间。", + "status.collapse": "折叠", + "status.has_audio": "附带音频文件", + "status.has_pictures": "附带图片文件", + "status.has_preview_card": "附带预览卡片", + "status.has_video": "附带视频文件", + "status.in_reply_to": "此嘟文是回复", + "status.is_poll": "此嘟文是投票", + "status.local_only": "此嘟文仅本实例可见", + "status.sensitive_toggle": "点击查看", + "status.uncollapse": "不折叠", + "web_app_crash.change_your_settings": "更改 {settings}", + "web_app_crash.content": "你可以尝试这些:", + "web_app_crash.debug_info": "调试信息", + "web_app_crash.disable_addons": "禁用浏览器插件或本地翻译工具", + "web_app_crash.issue_tracker": "问题追踪器", + "web_app_crash.reload": "刷新", + "web_app_crash.reload_page": "{reload} 此页面", + "web_app_crash.report_issue": "将错误报告给 {issuetracker}", + "web_app_crash.settings": "设置", + "web_app_crash.title": "抱歉,Mastodon 出了点问题。" +} diff --git a/app/javascript/flavours/glitch/locales/zh-HK.js b/app/javascript/flavours/glitch/locales/zh-HK.js deleted file mode 100644 index b71c81f2b3..0000000000 --- a/app/javascript/flavours/glitch/locales/zh-HK.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/zh-HK.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/zh-HK.json b/app/javascript/flavours/glitch/locales/zh-HK.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/zh-HK.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/zh-TW.js b/app/javascript/flavours/glitch/locales/zh-TW.js deleted file mode 100644 index de2b7769c9..0000000000 --- a/app/javascript/flavours/glitch/locales/zh-TW.js +++ /dev/null @@ -1,7 +0,0 @@ -import inherited from 'mastodon/locales/zh-TW.json'; - -const messages = { - // No translations available. -}; - -export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/zh-TW.json b/app/javascript/flavours/glitch/locales/zh-TW.json new file mode 100644 index 0000000000..807ed82077 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/zh-TW.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/theme.yml b/app/javascript/flavours/glitch/theme.yml index e85dd74e16..1811287462 100644 --- a/app/javascript/flavours/glitch/theme.yml +++ b/app/javascript/flavours/glitch/theme.yml @@ -24,10 +24,13 @@ pack: # (OPTIONAL) The directory which contains localization files for # the flavour, relative to this directory. The contents of this -# directory must be `.js` or `.json` files whose names correspond to +# directory must be `.json` files whose names correspond to # language tags and whose default exports are a messages object. locales: locales +# (OPTIONAL) Which flavour to inherit locales from +inherit_locales: vanilla + # (OPTIONAL) A file to use as the preview screenshot for the flavour, # or an array thereof. These are the full path from `app/javascript/`. screenshot: flavours/glitch/images/glitch-preview.jpg diff --git a/config/webpack/generateLocalePacks.js b/config/webpack/generateLocalePacks.js index 09fba4a18c..b1b8181591 100644 --- a/config/webpack/generateLocalePacks.js +++ b/config/webpack/generateLocalePacks.js @@ -20,18 +20,25 @@ module.exports = Object.keys(flavours).reduce(function (map, entry) { if (!flavour.locales) { return map; } - const locales = readdirSync(flavour.locales).filter( - filename => /\.js(?:on)?$/.test(filename) && !/defaultMessages|whitelist|index/.test(filename) - ); + const locales = readdirSync(flavour.locales).filter(filename => { + return /\.json$/.test(filename) && + !/defaultMessages/.test(filename) && + !/whitelist/.test(filename); + }).map(filename => filename.replace(/\.json$/, '')); + + let inherited_locales_path = null; + if (flavour.inherit_locales && flavours[flavour.inherit_locales]?.locales) { + inherited_locales_path = flavours[flavour.inherit_locales]?.locales; + } + const outPath = resolve('tmp', 'locales', entry); rimraf.sync(outPath); mkdirp.sync(outPath); locales.forEach(function (locale) { - const localeName = locale.replace(/\.js(?:on)?$/, ''); - const localePath = join(outPath, `${localeName}.js`); - const baseLocale = localeName.split('-')[0]; // e.g. 'zh-TW' -> 'zh' + const localePath = join(outPath, `${locale}.js`); + const baseLocale = locale.split('-')[0]; // e.g. 'zh-TW' -> 'zh' const localeDataPath = [ // first try react-intl `node_modules/react-intl/locale-data/${baseLocale}.js`, @@ -45,21 +52,22 @@ module.exports = Object.keys(flavours).reduce(function (map, entry) { filename => filename.replace(/(?:node_modules|app\/javascript)\//, '') )[0]; const localeContent = `// -// locales/${entry}/${localeName}.js +// locales/${entry}/${locale}.js // automatically generated by generateLocalePacks.js // -import messages from '../../../${flavour.locales}/${locale.replace(/\.js$/, '')}'; +${inherited_locales_path ? `import inherited from '../../../${inherited_locales_path}/${locale}.json';` : ''} +import messages from '../../../${flavour.locales}/${locale}.json'; import localeData from '${localeDataPath}'; import { setLocale } from 'locales'; setLocale({ localeData, - messages, + ${inherited_locales_path ? 'messages: Object.assign({}, inherited, messages)' : 'messages'}, }); `; writeFileSync(localePath, localeContent, 'utf8'); - map[`locales/${entry}/${localeName}`] = localePath; + map[`locales/${entry}/${locale}`] = localePath; }); return map; diff --git a/config/webpack/translationRunner.js b/config/webpack/translationRunner.js index 38050baf8d..c7f84cc7ea 100644 --- a/config/webpack/translationRunner.js +++ b/config/webpack/translationRunner.js @@ -1,11 +1,12 @@ const fs = require('fs'); const path = require('path'); -const { default: manageTranslations } = require('react-intl-translations-manager'); +const { default: manageTranslations, readMessageFiles } = require('react-intl-translations-manager'); const RFC5646_REGEXP = /^[a-z]{2,3}(?:-(?:x|[A-Za-z]{2,4}))*$/; const rootDirectory = path.resolve(__dirname, '..', '..'); -const translationsDirectory = path.resolve(rootDirectory, 'app', 'javascript', 'mastodon', 'locales'); +const externalDefaultMessages = path.resolve(rootDirectory, 'app', 'javascript', 'mastodon', 'locales', 'defaultMessages.json'); +const translationsDirectory = path.resolve(rootDirectory, 'app', 'javascript', 'flavours', 'glitch', 'locales'); const messagesDirectory = path.resolve(rootDirectory, 'build', 'messages'); const availableLanguages = fs.readdirSync(translationsDirectory).reduce((languages, filename) => { const basename = path.basename(filename, '.json'); @@ -86,6 +87,25 @@ validateLanguages(languages, [ !argv.force && testAvailability, ].filter(Boolean)); +// Override `provideExtractedMessages` to ignore translation strings provided upstream already +const provideExtractedMessages = () => { + const extractedMessages = readMessageFiles(messagesDirectory); + const originalExtractedMessages = JSON.parse(fs.readFileSync(externalDefaultMessages, 'utf8')); + const originalKeys = new Set(); + + originalExtractedMessages.forEach(file => { + file.descriptors.forEach(descriptor => { + originalKeys.add(descriptor.id) + }); + }); + + extractedMessages.forEach(file => { + file.descriptors = file.descriptors.filter((descriptor) => !originalKeys.has(descriptor.id)); + }); + + return extractedMessages.filter((file) => file.descriptors.length > 0); +}; + // manage translations manageTranslations({ messagesDirectory, @@ -96,4 +116,7 @@ manageTranslations({ jsonOptions: { trailingNewline: true, }, + overrideCoreMethods: { + provideExtractedMessages, + }, }); From e79981936f0ddf7945194741fcb92f80b5da0708 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 21 Dec 2022 22:13:22 +0100 Subject: [PATCH 0072/1220] Add crowdin configuration file (#2030) --- crowdin-glitch.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 crowdin-glitch.yml diff --git a/crowdin-glitch.yml b/crowdin-glitch.yml new file mode 100644 index 0000000000..14b559c8f0 --- /dev/null +++ b/crowdin-glitch.yml @@ -0,0 +1,8 @@ +commit_message: '[ci skip]' +files: + - source: /app/javascript/flavours/glitch/locales/en.json + translation: /app/javascript/flavours/glitch/locales/%two_letters_code%.json + - source: /config/locales-glitch/en.yml + translation: /config/locales-glitch/%two_letters_code%.yml + - source: /config/locales-glitch/simple_form.en.yml + translation: /config/locales-glitch/simple_form.%two_letters_code%.yml From 0b71a4770f7c7e161cc62bb6fadff4613584473a Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 21 Dec 2022 23:19:14 +0100 Subject: [PATCH 0073/1220] New Crowdin updates (#2032) * New translations en.json (French) [ci skip] * New translations en.json (Belarusian) [ci skip] * New translations en.json (Frisian) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations en.json (English, United Kingdom) [ci skip] * New translations en.json (Burmese) [ci skip] * New translations en.json (Faroese) [ci skip] * New translations en.json (Latin) [ci skip] * New translations en.json (Bosnian) [ci skip] * New translations en.json (French, Quebec) [ci skip] * New translations en.json (Aragonese) [ci skip] * New translations en.json (Scots) [ci skip] * New translations en.json (Igbo) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Afrikaans) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Belarusian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Frisian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Irish) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Macedonian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Punjabi) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Marathi) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.yml (English, United Kingdom) [ci skip] * New translations en.yml (Burmese) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Faroese) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Uyghur) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Tatar) [ci skip] * New translations en.yml (Malayalam) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.yml (Latin) [ci skip] * New translations en.yml (Bosnian) [ci skip] * New translations en.yml (French, Quebec) [ci skip] * New translations en.yml (Sinhala) [ci skip] * New translations en.yml (Cornish) [ci skip] * New translations en.yml (Kannada) [ci skip] * New translations en.yml (Scottish Gaelic) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Aragonese) [ci skip] * New translations en.yml (Occitan) [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 en.yml (Scots) [ci skip] * New translations en.yml (Igbo) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations en.yml (Sanskrit) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Afrikaans) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations simple_form.en.yml (Belarusian) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Frisian) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Irish) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Lithuanian) [ci skip] * New translations simple_form.en.yml (Macedonian) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Punjabi) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Urdu (Pakistan)) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Marathi) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Kazakh) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Hindi) [ci skip] * New translations simple_form.en.yml (Malay) [ci skip] * New translations simple_form.en.yml (Telugu) [ci skip] * New translations simple_form.en.yml (English, United Kingdom) [ci skip] * New translations simple_form.en.yml (Burmese) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Faroese) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Uyghur) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Tatar) [ci skip] * New translations simple_form.en.yml (Malayalam) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Latin) [ci skip] * New translations simple_form.en.yml (Bosnian) [ci skip] * New translations simple_form.en.yml (French, Quebec) [ci skip] * New translations simple_form.en.yml (Sinhala) [ci skip] * New translations simple_form.en.yml (Cornish) [ci skip] * New translations simple_form.en.yml (Kannada) [ci skip] * New translations simple_form.en.yml (Scottish Gaelic) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Aragonese) [ci skip] * New translations simple_form.en.yml (Occitan) [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 simple_form.en.yml (Scots) [ci skip] * New translations simple_form.en.yml (Igbo) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations simple_form.en.yml (Sanskrit) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (Ido) [ci skip] --- .../flavours/glitch/locales/an.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/be.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/bs.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/en-GB.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/es-AR.json | 180 ++++++++-------- .../flavours/glitch/locales/es-MX.json | 180 ++++++++-------- .../flavours/glitch/locales/fo.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/fr-QC.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/fr.json | 2 +- .../flavours/glitch/locales/fy.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/ig.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/la.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/my.json | 201 ++++++++++++++++++ .../flavours/glitch/locales/sco.json | 201 ++++++++++++++++++ config/locales-glitch/af.yml | 38 ++++ config/locales-glitch/an.yml | 38 ++++ config/locales-glitch/ar.yml | 38 ++++ config/locales-glitch/ast.yml | 38 ++++ config/locales-glitch/be.yml | 38 ++++ config/locales-glitch/bg.yml | 38 ++++ config/locales-glitch/bn.yml | 38 ++++ config/locales-glitch/br.yml | 38 ++++ config/locales-glitch/bs.yml | 38 ++++ config/locales-glitch/ca.yml | 38 ++++ config/locales-glitch/ckb.yml | 38 ++++ config/locales-glitch/co.yml | 38 ++++ config/locales-glitch/cy.yml | 38 ++++ config/locales-glitch/da.yml | 38 ++++ config/locales-glitch/de.yml | 38 ++++ config/locales-glitch/el.yml | 38 ++++ config/locales-glitch/en-GB.yml | 38 ++++ config/locales-glitch/eo.yml | 38 ++++ config/locales-glitch/es-AR.yml | 38 ++++ config/locales-glitch/es-MX.yml | 38 ++++ config/locales-glitch/es.yml | 18 ++ config/locales-glitch/et.yml | 38 ++++ config/locales-glitch/eu.yml | 38 ++++ config/locales-glitch/fa.yml | 38 ++++ config/locales-glitch/fi.yml | 38 ++++ config/locales-glitch/fo.yml | 38 ++++ config/locales-glitch/fr-QC.yml | 38 ++++ config/locales-glitch/fr.yml | 38 ++++ config/locales-glitch/fy.yml | 38 ++++ config/locales-glitch/ga.yml | 38 ++++ config/locales-glitch/gd.yml | 38 ++++ config/locales-glitch/gl.yml | 38 ++++ config/locales-glitch/he.yml | 38 ++++ config/locales-glitch/hi.yml | 38 ++++ config/locales-glitch/hr.yml | 38 ++++ config/locales-glitch/hu.yml | 38 ++++ config/locales-glitch/hy.yml | 38 ++++ config/locales-glitch/id.yml | 38 ++++ config/locales-glitch/ig.yml | 38 ++++ config/locales-glitch/io.yml | 38 ++++ config/locales-glitch/is.yml | 38 ++++ config/locales-glitch/it.yml | 38 ++++ config/locales-glitch/ja.yml | 18 ++ config/locales-glitch/ka.yml | 38 ++++ config/locales-glitch/kab.yml | 38 ++++ config/locales-glitch/kk.yml | 38 ++++ config/locales-glitch/kn.yml | 38 ++++ config/locales-glitch/ko.yml | 8 + config/locales-glitch/ku.yml | 38 ++++ config/locales-glitch/kw.yml | 38 ++++ config/locales-glitch/la.yml | 38 ++++ config/locales-glitch/lt.yml | 38 ++++ config/locales-glitch/lv.yml | 38 ++++ config/locales-glitch/mk.yml | 38 ++++ config/locales-glitch/ml.yml | 38 ++++ config/locales-glitch/mr.yml | 38 ++++ config/locales-glitch/ms.yml | 38 ++++ config/locales-glitch/my.yml | 38 ++++ config/locales-glitch/nl.yml | 38 ++++ config/locales-glitch/nn.yml | 38 ++++ config/locales-glitch/no.yml | 38 ++++ config/locales-glitch/oc.yml | 38 ++++ config/locales-glitch/pa.yml | 38 ++++ config/locales-glitch/pl.yml | 32 +++ config/locales-glitch/pt-BR.yml | 38 ++++ config/locales-glitch/pt-PT.yml | 38 ++++ config/locales-glitch/ro.yml | 38 ++++ config/locales-glitch/ru.yml | 38 ++++ config/locales-glitch/sa.yml | 38 ++++ config/locales-glitch/sc.yml | 38 ++++ config/locales-glitch/sco.yml | 38 ++++ config/locales-glitch/si.yml | 38 ++++ config/locales-glitch/simple_form.af.yml | 27 +++ config/locales-glitch/simple_form.an.yml | 27 +++ config/locales-glitch/simple_form.ar.yml | 27 +++ config/locales-glitch/simple_form.ast.yml | 27 +++ config/locales-glitch/simple_form.be.yml | 27 +++ config/locales-glitch/simple_form.bg.yml | 27 +++ config/locales-glitch/simple_form.bn.yml | 27 +++ config/locales-glitch/simple_form.br.yml | 27 +++ config/locales-glitch/simple_form.bs.yml | 27 +++ config/locales-glitch/simple_form.ca.yml | 27 +++ config/locales-glitch/simple_form.ckb.yml | 27 +++ config/locales-glitch/simple_form.co.yml | 27 +++ config/locales-glitch/simple_form.cy.yml | 27 +++ config/locales-glitch/simple_form.da.yml | 27 +++ config/locales-glitch/simple_form.de.yml | 27 +++ config/locales-glitch/simple_form.el.yml | 27 +++ config/locales-glitch/simple_form.en-GB.yml | 27 +++ config/locales-glitch/simple_form.eo.yml | 27 +++ config/locales-glitch/simple_form.es-AR.yml | 27 +++ config/locales-glitch/simple_form.es-MX.yml | 27 +++ config/locales-glitch/simple_form.es.yml | 7 + config/locales-glitch/simple_form.et.yml | 27 +++ config/locales-glitch/simple_form.eu.yml | 27 +++ config/locales-glitch/simple_form.fa.yml | 27 +++ config/locales-glitch/simple_form.fi.yml | 27 +++ config/locales-glitch/simple_form.fo.yml | 27 +++ config/locales-glitch/simple_form.fr-QC.yml | 27 +++ config/locales-glitch/simple_form.fr.yml | 27 +++ config/locales-glitch/simple_form.fy.yml | 27 +++ config/locales-glitch/simple_form.ga.yml | 27 +++ config/locales-glitch/simple_form.gd.yml | 27 +++ config/locales-glitch/simple_form.gl.yml | 27 +++ config/locales-glitch/simple_form.he.yml | 27 +++ config/locales-glitch/simple_form.hi.yml | 27 +++ config/locales-glitch/simple_form.hr.yml | 27 +++ config/locales-glitch/simple_form.hu.yml | 27 +++ config/locales-glitch/simple_form.hy.yml | 27 +++ config/locales-glitch/simple_form.id.yml | 27 +++ config/locales-glitch/simple_form.ig.yml | 27 +++ config/locales-glitch/simple_form.io.yml | 27 +++ config/locales-glitch/simple_form.is.yml | 27 +++ config/locales-glitch/simple_form.it.yml | 27 +++ config/locales-glitch/simple_form.ja.yml | 7 + config/locales-glitch/simple_form.ka.yml | 27 +++ config/locales-glitch/simple_form.kab.yml | 27 +++ config/locales-glitch/simple_form.kk.yml | 27 +++ config/locales-glitch/simple_form.kn.yml | 27 +++ config/locales-glitch/simple_form.ko.yml | 3 + config/locales-glitch/simple_form.ku.yml | 27 +++ config/locales-glitch/simple_form.kw.yml | 27 +++ config/locales-glitch/simple_form.la.yml | 27 +++ config/locales-glitch/simple_form.lt.yml | 27 +++ config/locales-glitch/simple_form.lv.yml | 27 +++ config/locales-glitch/simple_form.mk.yml | 27 +++ config/locales-glitch/simple_form.ml.yml | 27 +++ config/locales-glitch/simple_form.mr.yml | 27 +++ config/locales-glitch/simple_form.ms.yml | 27 +++ config/locales-glitch/simple_form.my.yml | 27 +++ config/locales-glitch/simple_form.nl.yml | 27 +++ config/locales-glitch/simple_form.nn.yml | 27 +++ config/locales-glitch/simple_form.no.yml | 27 +++ config/locales-glitch/simple_form.oc.yml | 27 +++ config/locales-glitch/simple_form.pa.yml | 27 +++ config/locales-glitch/simple_form.pl.yml | 17 ++ config/locales-glitch/simple_form.pt-BR.yml | 27 +++ config/locales-glitch/simple_form.pt-PT.yml | 27 +++ config/locales-glitch/simple_form.ro.yml | 27 +++ config/locales-glitch/simple_form.ru.yml | 27 +++ config/locales-glitch/simple_form.sa.yml | 27 +++ config/locales-glitch/simple_form.sc.yml | 27 +++ config/locales-glitch/simple_form.sco.yml | 27 +++ config/locales-glitch/simple_form.si.yml | 27 +++ config/locales-glitch/simple_form.sk.yml | 27 +++ config/locales-glitch/simple_form.sl.yml | 27 +++ config/locales-glitch/simple_form.sq.yml | 27 +++ config/locales-glitch/simple_form.sr-Latn.yml | 27 +++ config/locales-glitch/simple_form.sr.yml | 27 +++ config/locales-glitch/simple_form.sv.yml | 27 +++ config/locales-glitch/simple_form.ta.yml | 27 +++ config/locales-glitch/simple_form.te.yml | 27 +++ config/locales-glitch/simple_form.th.yml | 27 +++ config/locales-glitch/simple_form.tr.yml | 27 +++ config/locales-glitch/simple_form.tt.yml | 27 +++ config/locales-glitch/simple_form.ug.yml | 27 +++ config/locales-glitch/simple_form.uk.yml | 27 +++ config/locales-glitch/simple_form.ur.yml | 27 +++ config/locales-glitch/simple_form.vi.yml | 27 +++ config/locales-glitch/simple_form.zh-CN.yml | 7 + config/locales-glitch/simple_form.zh-HK.yml | 27 +++ config/locales-glitch/simple_form.zh-TW.yml | 27 +++ config/locales-glitch/sk.yml | 38 ++++ config/locales-glitch/sl.yml | 38 ++++ config/locales-glitch/sq.yml | 38 ++++ config/locales-glitch/sr-Latn.yml | 38 ++++ config/locales-glitch/sr.yml | 38 ++++ config/locales-glitch/sv.yml | 38 ++++ config/locales-glitch/ta.yml | 38 ++++ config/locales-glitch/te.yml | 38 ++++ config/locales-glitch/th.yml | 38 ++++ config/locales-glitch/tr.yml | 38 ++++ config/locales-glitch/tt.yml | 38 ++++ config/locales-glitch/ug.yml | 38 ++++ config/locales-glitch/uk.yml | 38 ++++ config/locales-glitch/ur.yml | 38 ++++ config/locales-glitch/vi.yml | 38 ++++ config/locales-glitch/zh-CN.yml | 18 ++ config/locales-glitch/zh-HK.yml | 38 ++++ config/locales-glitch/zh-TW.yml | 38 ++++ 194 files changed, 8052 insertions(+), 181 deletions(-) create mode 100644 app/javascript/flavours/glitch/locales/an.json create mode 100644 app/javascript/flavours/glitch/locales/be.json create mode 100644 app/javascript/flavours/glitch/locales/bs.json create mode 100644 app/javascript/flavours/glitch/locales/en-GB.json create mode 100644 app/javascript/flavours/glitch/locales/fo.json create mode 100644 app/javascript/flavours/glitch/locales/fr-QC.json create mode 100644 app/javascript/flavours/glitch/locales/fy.json create mode 100644 app/javascript/flavours/glitch/locales/ig.json create mode 100644 app/javascript/flavours/glitch/locales/la.json create mode 100644 app/javascript/flavours/glitch/locales/my.json create mode 100644 app/javascript/flavours/glitch/locales/sco.json create mode 100644 config/locales-glitch/af.yml create mode 100644 config/locales-glitch/an.yml create mode 100644 config/locales-glitch/ar.yml create mode 100644 config/locales-glitch/ast.yml create mode 100644 config/locales-glitch/be.yml create mode 100644 config/locales-glitch/bg.yml create mode 100644 config/locales-glitch/bn.yml create mode 100644 config/locales-glitch/br.yml create mode 100644 config/locales-glitch/bs.yml create mode 100644 config/locales-glitch/ca.yml create mode 100644 config/locales-glitch/ckb.yml create mode 100644 config/locales-glitch/co.yml create mode 100644 config/locales-glitch/cy.yml create mode 100644 config/locales-glitch/da.yml create mode 100644 config/locales-glitch/de.yml create mode 100644 config/locales-glitch/el.yml create mode 100644 config/locales-glitch/en-GB.yml create mode 100644 config/locales-glitch/eo.yml create mode 100644 config/locales-glitch/es-AR.yml create mode 100644 config/locales-glitch/es-MX.yml create mode 100644 config/locales-glitch/et.yml create mode 100644 config/locales-glitch/eu.yml create mode 100644 config/locales-glitch/fa.yml create mode 100644 config/locales-glitch/fi.yml create mode 100644 config/locales-glitch/fo.yml create mode 100644 config/locales-glitch/fr-QC.yml create mode 100644 config/locales-glitch/fr.yml create mode 100644 config/locales-glitch/fy.yml create mode 100644 config/locales-glitch/ga.yml create mode 100644 config/locales-glitch/gd.yml create mode 100644 config/locales-glitch/gl.yml create mode 100644 config/locales-glitch/he.yml create mode 100644 config/locales-glitch/hi.yml create mode 100644 config/locales-glitch/hr.yml create mode 100644 config/locales-glitch/hu.yml create mode 100644 config/locales-glitch/hy.yml create mode 100644 config/locales-glitch/id.yml create mode 100644 config/locales-glitch/ig.yml create mode 100644 config/locales-glitch/io.yml create mode 100644 config/locales-glitch/is.yml create mode 100644 config/locales-glitch/it.yml create mode 100644 config/locales-glitch/ka.yml create mode 100644 config/locales-glitch/kab.yml create mode 100644 config/locales-glitch/kk.yml create mode 100644 config/locales-glitch/kn.yml create mode 100644 config/locales-glitch/ku.yml create mode 100644 config/locales-glitch/kw.yml create mode 100644 config/locales-glitch/la.yml create mode 100644 config/locales-glitch/lt.yml create mode 100644 config/locales-glitch/lv.yml create mode 100644 config/locales-glitch/mk.yml create mode 100644 config/locales-glitch/ml.yml create mode 100644 config/locales-glitch/mr.yml create mode 100644 config/locales-glitch/ms.yml create mode 100644 config/locales-glitch/my.yml create mode 100644 config/locales-glitch/nl.yml create mode 100644 config/locales-glitch/nn.yml create mode 100644 config/locales-glitch/no.yml create mode 100644 config/locales-glitch/oc.yml create mode 100644 config/locales-glitch/pa.yml create mode 100644 config/locales-glitch/pt-BR.yml create mode 100644 config/locales-glitch/pt-PT.yml create mode 100644 config/locales-glitch/ro.yml create mode 100644 config/locales-glitch/ru.yml create mode 100644 config/locales-glitch/sa.yml create mode 100644 config/locales-glitch/sc.yml create mode 100644 config/locales-glitch/sco.yml create mode 100644 config/locales-glitch/si.yml create mode 100644 config/locales-glitch/simple_form.af.yml create mode 100644 config/locales-glitch/simple_form.an.yml create mode 100644 config/locales-glitch/simple_form.ar.yml create mode 100644 config/locales-glitch/simple_form.ast.yml create mode 100644 config/locales-glitch/simple_form.be.yml create mode 100644 config/locales-glitch/simple_form.bg.yml create mode 100644 config/locales-glitch/simple_form.bn.yml create mode 100644 config/locales-glitch/simple_form.br.yml create mode 100644 config/locales-glitch/simple_form.bs.yml create mode 100644 config/locales-glitch/simple_form.ca.yml create mode 100644 config/locales-glitch/simple_form.ckb.yml create mode 100644 config/locales-glitch/simple_form.co.yml create mode 100644 config/locales-glitch/simple_form.cy.yml create mode 100644 config/locales-glitch/simple_form.da.yml create mode 100644 config/locales-glitch/simple_form.de.yml create mode 100644 config/locales-glitch/simple_form.el.yml create mode 100644 config/locales-glitch/simple_form.en-GB.yml create mode 100644 config/locales-glitch/simple_form.eo.yml create mode 100644 config/locales-glitch/simple_form.es-AR.yml create mode 100644 config/locales-glitch/simple_form.es-MX.yml create mode 100644 config/locales-glitch/simple_form.et.yml create mode 100644 config/locales-glitch/simple_form.eu.yml create mode 100644 config/locales-glitch/simple_form.fa.yml create mode 100644 config/locales-glitch/simple_form.fi.yml create mode 100644 config/locales-glitch/simple_form.fo.yml create mode 100644 config/locales-glitch/simple_form.fr-QC.yml create mode 100644 config/locales-glitch/simple_form.fr.yml create mode 100644 config/locales-glitch/simple_form.fy.yml create mode 100644 config/locales-glitch/simple_form.ga.yml create mode 100644 config/locales-glitch/simple_form.gd.yml create mode 100644 config/locales-glitch/simple_form.gl.yml create mode 100644 config/locales-glitch/simple_form.he.yml create mode 100644 config/locales-glitch/simple_form.hi.yml create mode 100644 config/locales-glitch/simple_form.hr.yml create mode 100644 config/locales-glitch/simple_form.hu.yml create mode 100644 config/locales-glitch/simple_form.hy.yml create mode 100644 config/locales-glitch/simple_form.id.yml create mode 100644 config/locales-glitch/simple_form.ig.yml create mode 100644 config/locales-glitch/simple_form.io.yml create mode 100644 config/locales-glitch/simple_form.is.yml create mode 100644 config/locales-glitch/simple_form.it.yml create mode 100644 config/locales-glitch/simple_form.ka.yml create mode 100644 config/locales-glitch/simple_form.kab.yml create mode 100644 config/locales-glitch/simple_form.kk.yml create mode 100644 config/locales-glitch/simple_form.kn.yml create mode 100644 config/locales-glitch/simple_form.ku.yml create mode 100644 config/locales-glitch/simple_form.kw.yml create mode 100644 config/locales-glitch/simple_form.la.yml create mode 100644 config/locales-glitch/simple_form.lt.yml create mode 100644 config/locales-glitch/simple_form.lv.yml create mode 100644 config/locales-glitch/simple_form.mk.yml create mode 100644 config/locales-glitch/simple_form.ml.yml create mode 100644 config/locales-glitch/simple_form.mr.yml create mode 100644 config/locales-glitch/simple_form.ms.yml create mode 100644 config/locales-glitch/simple_form.my.yml create mode 100644 config/locales-glitch/simple_form.nl.yml create mode 100644 config/locales-glitch/simple_form.nn.yml create mode 100644 config/locales-glitch/simple_form.no.yml create mode 100644 config/locales-glitch/simple_form.oc.yml create mode 100644 config/locales-glitch/simple_form.pa.yml create mode 100644 config/locales-glitch/simple_form.pt-BR.yml create mode 100644 config/locales-glitch/simple_form.pt-PT.yml create mode 100644 config/locales-glitch/simple_form.ro.yml create mode 100644 config/locales-glitch/simple_form.ru.yml create mode 100644 config/locales-glitch/simple_form.sa.yml create mode 100644 config/locales-glitch/simple_form.sc.yml create mode 100644 config/locales-glitch/simple_form.sco.yml create mode 100644 config/locales-glitch/simple_form.si.yml create mode 100644 config/locales-glitch/simple_form.sk.yml create mode 100644 config/locales-glitch/simple_form.sl.yml create mode 100644 config/locales-glitch/simple_form.sq.yml create mode 100644 config/locales-glitch/simple_form.sr-Latn.yml create mode 100644 config/locales-glitch/simple_form.sr.yml create mode 100644 config/locales-glitch/simple_form.sv.yml create mode 100644 config/locales-glitch/simple_form.ta.yml create mode 100644 config/locales-glitch/simple_form.te.yml create mode 100644 config/locales-glitch/simple_form.th.yml create mode 100644 config/locales-glitch/simple_form.tr.yml create mode 100644 config/locales-glitch/simple_form.tt.yml create mode 100644 config/locales-glitch/simple_form.ug.yml create mode 100644 config/locales-glitch/simple_form.uk.yml create mode 100644 config/locales-glitch/simple_form.ur.yml create mode 100644 config/locales-glitch/simple_form.vi.yml create mode 100644 config/locales-glitch/simple_form.zh-HK.yml create mode 100644 config/locales-glitch/simple_form.zh-TW.yml create mode 100644 config/locales-glitch/sk.yml create mode 100644 config/locales-glitch/sl.yml create mode 100644 config/locales-glitch/sq.yml create mode 100644 config/locales-glitch/sr-Latn.yml create mode 100644 config/locales-glitch/sr.yml create mode 100644 config/locales-glitch/sv.yml create mode 100644 config/locales-glitch/ta.yml create mode 100644 config/locales-glitch/te.yml create mode 100644 config/locales-glitch/th.yml create mode 100644 config/locales-glitch/tr.yml create mode 100644 config/locales-glitch/tt.yml create mode 100644 config/locales-glitch/ug.yml create mode 100644 config/locales-glitch/uk.yml create mode 100644 config/locales-glitch/ur.yml create mode 100644 config/locales-glitch/vi.yml create mode 100644 config/locales-glitch/zh-HK.yml create mode 100644 config/locales-glitch/zh-TW.yml diff --git a/app/javascript/flavours/glitch/locales/an.json b/app/javascript/flavours/glitch/locales/an.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/an.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/be.json b/app/javascript/flavours/glitch/locales/be.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/be.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/bs.json b/app/javascript/flavours/glitch/locales/bs.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/bs.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/en-GB.json b/app/javascript/flavours/glitch/locales/en-GB.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/en-GB.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/es-AR.json b/app/javascript/flavours/glitch/locales/es-AR.json index 807ed82077..2c6794fbf0 100644 --- a/app/javascript/flavours/glitch/locales/es-AR.json +++ b/app/javascript/flavours/glitch/locales/es-AR.json @@ -10,13 +10,13 @@ "account_note.edit": "Edit", "account_note.glitch_placeholder": "No comment provided", "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "advanced_options.icon_title": "Opciones avanzadas", + "advanced_options.local-only.long": "No publicar a otras instancias", + "advanced_options.local-only.short": "Local", + "advanced_options.local-only.tooltip": "Este toot es local", + "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", + "advanced_options.threaded_mode.short": "Modo hilo", + "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", "boost_modal.missing_description": "This toot contains some media without description", "column.favourited_by": "Favourited by", "column.heading": "Misc", @@ -26,9 +26,9 @@ "column_subheading.lists": "Lists", "column_subheading.navigation": "Navigation", "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", + "compose.attach": "Adjuntar...", + "compose.attach.doodle": "Dibujar algo", + "compose.attach.upload": "Subir un archivo", "compose.content-type.html": "HTML", "compose.content-type.markdown": "Markdown", "compose.content-type.plain": "Plain text", @@ -41,43 +41,43 @@ "confirmations.missing_media_description.confirm": "Send anyway", "confirmations.missing_media_description.edit": "Edit media", "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "confirmations.unfilter.author": "Publicado por", + "confirmations.unfilter.confirm": "Mostrar", + "confirmations.unfilter.edit_filter": "Editar filtro", + "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", "content-type.change": "Content type", "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", + "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", + "getting_started.onboarding": "Paseo inicial", "home.column_settings.advanced": "Advanced", "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", + "home.column_settings.show_direct": "Mostrar mensajes directos", "home.settings": "Column settings", "keyboard_shortcuts.bookmark": "to bookmark", "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.auto": "Automático", + "layout.desktop": "Escritorio", + "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", + "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", + "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", + "media_gallery.sensitive": "Sensible", "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", + "navigation_bar.app_settings": "Ajustes de aplicación", "navigation_bar.featured_users": "Featured users", "navigation_bar.info": "Extended information", "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", + "notification.markForDeletion": "Marcar para borrar", + "notification_purge.btn_all": "Seleccionar\ntodo", + "notification_purge.btn_apply": "Borrar\nselección", + "notification_purge.btn_invert": "Invertir\nselección", + "notification_purge.btn_none": "Seleccionar\nnada", "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "notifications.marked_clear": "Limpiar notificaciones seleccionadas", + "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", "onboarding.done": "Done", "onboarding.next": "Next", "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", @@ -85,7 +85,7 @@ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", "onboarding.page_six.appetoot": "Bon Appetoot!", @@ -98,87 +98,87 @@ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", + "settings.auto_collapse": "Colapsar automáticamente", + "settings.auto_collapse_all": "Todo", + "settings.auto_collapse_lengthy": "Toots largos", + "settings.auto_collapse_media": "Toots con medios", + "settings.auto_collapse_notifications": "Notificaciones", + "settings.auto_collapse_reblogs": "Retoots", + "settings.auto_collapse_replies": "Respuestas", + "settings.close": "Cerrar", + "settings.collapsed_statuses": "Toots colapsados", + "settings.compose_box_opts": "Cuadro de redacción", + "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo", + "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción", + "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings.regexp": "Regexp (expresión regular)", + "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", "settings.content_warnings_media_outside": "Display media attachments outside content warnings", "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", "settings.content_warnings_shared_state": "Show/hide content of all copies at once", "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", "settings.content_warnings_unfold_opts": "Auto-unfolding options", "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed": "Habilitar toots colapsados", "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", + "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", + "settings.filters": "Filtros", "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds": "Fondos de imágenes", + "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", + "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", + "settings.inline_preview_cards": "Vista previa para enlaces externos", + "settings.layout": "Diseño", + "settings.layout_opts": "Opciones de diseño", + "settings.media": "Medios", + "settings.media_fullwidth": "Ancho completo al mostrar medios ", + "settings.media_letterbox": "Mantener proporciones al mostrar medios", + "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos", + "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido", + "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon", + "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon", + "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", + "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", + "settings.notifications_opts": "Opciones de notificaciones", "settings.pop_in_left": "Left", "settings.pop_in_player": "Enable pop-in player", "settings.pop_in_position": "Pop-in player position:", "settings.pop_in_right": "Right", "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", + "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", + "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", + "settings.preselect_on_reply_hint": "Al responder a conversaciones con múltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx", + "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas", + "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", + "settings.rewrite_mentions_no": "No reescribir menciones", + "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", + "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", + "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", + "settings.side_arm": "Botón secundario:", + "settings.side_arm.none": "Ninguno", + "settings.side_arm_reply_mode": "Al responder a un toot, el botón de toot secundario debe:", + "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", + "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", + "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", "settings.status_icons": "Toot icons", "settings.status_icons_language": "Language indicator", "settings.status_icons_local_only": "Local-only indicator", "settings.status_icons_media": "Media and poll indicators", "settings.status_icons_reply": "Reply indicator", "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", + "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", + "settings.tag_misleading_links": "Marcar enlaces engañosos", + "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", + "settings.wide_view": "Vista amplia (solo modo de escritorio)", "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", + "status.collapse": "Colapsar", "status.has_audio": "Features attached audio files", "status.has_pictures": "Features attached pictures", "status.has_preview_card": "Features an attached preview card", @@ -187,7 +187,7 @@ "status.is_poll": "This toot is a poll", "status.local_only": "Only visible from your instance", "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", + "status.uncollapse": "Descolapsar", "web_app_crash.change_your_settings": "Change your {settings}", "web_app_crash.content": "You could try any of the following:", "web_app_crash.debug_info": "Debug information", diff --git a/app/javascript/flavours/glitch/locales/es-MX.json b/app/javascript/flavours/glitch/locales/es-MX.json index 807ed82077..2c6794fbf0 100644 --- a/app/javascript/flavours/glitch/locales/es-MX.json +++ b/app/javascript/flavours/glitch/locales/es-MX.json @@ -10,13 +10,13 @@ "account_note.edit": "Edit", "account_note.glitch_placeholder": "No comment provided", "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "advanced_options.icon_title": "Opciones avanzadas", + "advanced_options.local-only.long": "No publicar a otras instancias", + "advanced_options.local-only.short": "Local", + "advanced_options.local-only.tooltip": "Este toot es local", + "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", + "advanced_options.threaded_mode.short": "Modo hilo", + "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", "boost_modal.missing_description": "This toot contains some media without description", "column.favourited_by": "Favourited by", "column.heading": "Misc", @@ -26,9 +26,9 @@ "column_subheading.lists": "Lists", "column_subheading.navigation": "Navigation", "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", + "compose.attach": "Adjuntar...", + "compose.attach.doodle": "Dibujar algo", + "compose.attach.upload": "Subir un archivo", "compose.content-type.html": "HTML", "compose.content-type.markdown": "Markdown", "compose.content-type.plain": "Plain text", @@ -41,43 +41,43 @@ "confirmations.missing_media_description.confirm": "Send anyway", "confirmations.missing_media_description.edit": "Edit media", "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "confirmations.unfilter.author": "Publicado por", + "confirmations.unfilter.confirm": "Mostrar", + "confirmations.unfilter.edit_filter": "Editar filtro", + "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", "content-type.change": "Content type", "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", + "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", + "getting_started.onboarding": "Paseo inicial", "home.column_settings.advanced": "Advanced", "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", + "home.column_settings.show_direct": "Mostrar mensajes directos", "home.settings": "Column settings", "keyboard_shortcuts.bookmark": "to bookmark", "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.auto": "Automático", + "layout.desktop": "Escritorio", + "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", + "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", + "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", + "media_gallery.sensitive": "Sensible", "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", + "navigation_bar.app_settings": "Ajustes de aplicación", "navigation_bar.featured_users": "Featured users", "navigation_bar.info": "Extended information", "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", + "notification.markForDeletion": "Marcar para borrar", + "notification_purge.btn_all": "Seleccionar\ntodo", + "notification_purge.btn_apply": "Borrar\nselección", + "notification_purge.btn_invert": "Invertir\nselección", + "notification_purge.btn_none": "Seleccionar\nnada", "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "notifications.marked_clear": "Limpiar notificaciones seleccionadas", + "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", "onboarding.done": "Done", "onboarding.next": "Next", "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", @@ -85,7 +85,7 @@ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", "onboarding.page_six.appetoot": "Bon Appetoot!", @@ -98,87 +98,87 @@ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", + "settings.auto_collapse": "Colapsar automáticamente", + "settings.auto_collapse_all": "Todo", + "settings.auto_collapse_lengthy": "Toots largos", + "settings.auto_collapse_media": "Toots con medios", + "settings.auto_collapse_notifications": "Notificaciones", + "settings.auto_collapse_reblogs": "Retoots", + "settings.auto_collapse_replies": "Respuestas", + "settings.close": "Cerrar", + "settings.collapsed_statuses": "Toots colapsados", + "settings.compose_box_opts": "Cuadro de redacción", + "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo", + "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción", + "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings.regexp": "Regexp (expresión regular)", + "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", "settings.content_warnings_media_outside": "Display media attachments outside content warnings", "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", "settings.content_warnings_shared_state": "Show/hide content of all copies at once", "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", "settings.content_warnings_unfold_opts": "Auto-unfolding options", "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed": "Habilitar toots colapsados", "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", + "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", + "settings.filters": "Filtros", "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds": "Fondos de imágenes", + "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", + "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", + "settings.inline_preview_cards": "Vista previa para enlaces externos", + "settings.layout": "Diseño", + "settings.layout_opts": "Opciones de diseño", + "settings.media": "Medios", + "settings.media_fullwidth": "Ancho completo al mostrar medios ", + "settings.media_letterbox": "Mantener proporciones al mostrar medios", + "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos", + "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido", + "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon", + "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon", + "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", + "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", + "settings.notifications_opts": "Opciones de notificaciones", "settings.pop_in_left": "Left", "settings.pop_in_player": "Enable pop-in player", "settings.pop_in_position": "Pop-in player position:", "settings.pop_in_right": "Right", "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", + "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", + "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", + "settings.preselect_on_reply_hint": "Al responder a conversaciones con múltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx", + "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas", + "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", + "settings.rewrite_mentions_no": "No reescribir menciones", + "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", + "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", + "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", + "settings.side_arm": "Botón secundario:", + "settings.side_arm.none": "Ninguno", + "settings.side_arm_reply_mode": "Al responder a un toot, el botón de toot secundario debe:", + "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", + "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", + "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", "settings.status_icons": "Toot icons", "settings.status_icons_language": "Language indicator", "settings.status_icons_local_only": "Local-only indicator", "settings.status_icons_media": "Media and poll indicators", "settings.status_icons_reply": "Reply indicator", "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", + "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", + "settings.tag_misleading_links": "Marcar enlaces engañosos", + "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", + "settings.wide_view": "Vista amplia (solo modo de escritorio)", "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", + "status.collapse": "Colapsar", "status.has_audio": "Features attached audio files", "status.has_pictures": "Features attached pictures", "status.has_preview_card": "Features an attached preview card", @@ -187,7 +187,7 @@ "status.is_poll": "This toot is a poll", "status.local_only": "Only visible from your instance", "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", + "status.uncollapse": "Descolapsar", "web_app_crash.change_your_settings": "Change your {settings}", "web_app_crash.content": "You could try any of the following:", "web_app_crash.debug_info": "Debug information", diff --git a/app/javascript/flavours/glitch/locales/fo.json b/app/javascript/flavours/glitch/locales/fo.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fo.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/fr-QC.json b/app/javascript/flavours/glitch/locales/fr-QC.json new file mode 100644 index 0000000000..b53b36e979 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fr-QC.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Abonnements", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "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": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json index 807ed82077..b53b36e979 100644 --- a/app/javascript/flavours/glitch/locales/fr.json +++ b/app/javascript/flavours/glitch/locales/fr.json @@ -2,7 +2,7 @@ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", "account.add_account_note": "Add note for @{name}", "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", + "account.follows": "Abonnements", "account.joined": "Joined {date}", "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", "account.view_full_profile": "View full profile", diff --git a/app/javascript/flavours/glitch/locales/fy.json b/app/javascript/flavours/glitch/locales/fy.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/fy.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/ig.json b/app/javascript/flavours/glitch/locales/ig.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/ig.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/la.json b/app/javascript/flavours/glitch/locales/la.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/la.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/my.json b/app/javascript/flavours/glitch/locales/my.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/my.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/app/javascript/flavours/glitch/locales/sco.json b/app/javascript/flavours/glitch/locales/sco.json new file mode 100644 index 0000000000..eb99fc64d4 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/sco.json @@ -0,0 +1,201 @@ +{ + "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", + "account.add_account_note": "Add note for @{name}", + "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.follows": "Follows", + "account.joined": "Joined {date}", + "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", + "account.view_full_profile": "View full profile", + "account_note.cancel": "Cancel", + "account_note.edit": "Edit", + "account_note.glitch_placeholder": "No comment provided", + "account_note.save": "Save", + "advanced_options.icon_title": "Advanced options", + "advanced_options.local-only.long": "Do not post to other instances", + "advanced_options.local-only.short": "Local-only", + "advanced_options.local-only.tooltip": "This post is local-only", + "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", + "advanced_options.threaded_mode.short": "Threaded mode", + "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", + "boost_modal.missing_description": "This toot contains some media without description", + "column.favourited_by": "Favourited by", + "column.heading": "Misc", + "column.reblogged_by": "Boosted by", + "column.subheading": "Miscellaneous options", + "column_header.profile": "Profile", + "column_subheading.lists": "Lists", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Show local-only toots", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Plain text", + "compose_form.poll.multiple_choices": "Allow multiple choices", + "compose_form.poll.single_choice": "Allow one choice", + "compose_form.spoiler": "Hide text behind warning", + "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", + "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", + "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", + "confirmations.missing_media_description.confirm": "Send anyway", + "confirmations.missing_media_description.edit": "Edit media", + "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", + "confirmations.unfilter.author": "Author", + "confirmations.unfilter.confirm": "Show", + "confirmations.unfilter.edit_filter": "Edit filter", + "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", + "content-type.change": "Content type", + "direct.group_by_conversations": "Group by conversation", + "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", + "favourite_modal.combo": "You can press {combo} to skip this next time", + "getting_started.onboarding": "Show me around", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_direct": "Show DMs", + "home.settings": "Column settings", + "keyboard_shortcuts.bookmark": "to bookmark", + "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", + "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", + "layout.auto": "Auto", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", + "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", + "layout.single": "Mobile", + "media_gallery.sensitive": "Sensitive", + "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", + "navigation_bar.app_settings": "App settings", + "navigation_bar.featured_users": "Featured users", + "navigation_bar.info": "Extended information", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.misc": "Misc", + "notification.markForDeletion": "Mark for deletion", + "notification_purge.btn_all": "Select\nall", + "notification_purge.btn_apply": "Clear\nselected", + "notification_purge.btn_invert": "Invert\nselection", + "notification_purge.btn_none": "Select\nnone", + "notification_purge.start": "Enter notification cleaning mode", + "notifications.marked_clear": "Clear selected notifications", + "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", + "onboarding.done": "Done", + "onboarding.next": "Next", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "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": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.welcome": "Welcome to {domain}!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "settings.always_show_spoilers_field": "Always enable the Content Warning field", + "settings.auto_collapse": "Automatic collapsing", + "settings.auto_collapse_all": "Everything", + "settings.auto_collapse_lengthy": "Lengthy toots", + "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_notifications": "Notifications", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Replies", + "settings.close": "Close", + "settings.collapsed_statuses": "Collapsed toots", + "settings.compose_box_opts": "Compose box", + "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", + "settings.content_warnings": "Content Warnings", + "settings.content_warnings.regexp": "Regular expression", + "settings.content_warnings_filter": "Content warnings to not automatically unfold:", + "settings.content_warnings_media_outside": "Display media attachments outside content warnings", + "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", + "settings.content_warnings_shared_state": "Show/hide content of all copies at once", + "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", + "settings.content_warnings_unfold_opts": "Auto-unfolding options", + "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", + "settings.enable_collapsed": "Enable collapsed toots", + "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", + "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", + "settings.filters": "Filters", + "settings.general": "General", + "settings.hicolor_privacy_icons": "High color privacy icons", + "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", + "settings.image_backgrounds": "Image backgrounds", + "settings.image_backgrounds_media": "Preview collapsed toot media", + "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", + "settings.image_backgrounds_users": "Give collapsed toots an image background", + "settings.inline_preview_cards": "Inline preview cards for external links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout options", + "settings.media": "Media", + "settings.media_fullwidth": "Full-width media previews", + "settings.media_letterbox": "Letterbox media", + "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", + "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", + "settings.notifications.favicon_badge": "Unread notifications favicon badge", + "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", + "settings.notifications.tab_badge": "Unread notifications badge", + "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", + "settings.notifications_opts": "Notifications options", + "settings.pop_in_left": "Left", + "settings.pop_in_player": "Enable pop-in player", + "settings.pop_in_position": "Pop-in player position:", + "settings.pop_in_right": "Right", + "settings.preferences": "User preferences", + "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", + "settings.preselect_on_reply": "Pre-select usernames on reply", + "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", + "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", + "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", + "settings.rewrite_mentions_no": "Do not rewrite mentions", + "settings.rewrite_mentions_username": "Rewrite with username", + "settings.shared_settings_link": "user preferences", + "settings.show_action_bar": "Show action buttons in collapsed toots", + "settings.show_content_type_choice": "Show content-type choice when authoring toots", + "settings.show_reply_counter": "Display an estimate of the reply count", + "settings.side_arm": "Secondary toot button:", + "settings.side_arm.none": "None", + "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", + "settings.side_arm_reply_mode.keep": "Keep its set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", + "settings.status_icons": "Toot icons", + "settings.status_icons_language": "Language indicator", + "settings.status_icons_local_only": "Local-only indicator", + "settings.status_icons_media": "Media and poll indicators", + "settings.status_icons_reply": "Reply indicator", + "settings.status_icons_visibility": "Toot privacy indicator", + "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", + "settings.tag_misleading_links": "Tag misleading links", + "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", + "settings.wide_view": "Wide view (Desktop mode only)", + "settings.wide_view_hint": "Stretches columns to better fill the available space.", + "status.collapse": "Collapse", + "status.has_audio": "Features attached audio files", + "status.has_pictures": "Features attached pictures", + "status.has_preview_card": "Features an attached preview card", + "status.has_video": "Features attached videos", + "status.in_reply_to": "This toot is a reply", + "status.is_poll": "This toot is a poll", + "status.local_only": "Only visible from your instance", + "status.sensitive_toggle": "Click to view", + "status.uncollapse": "Uncollapse", + "web_app_crash.change_your_settings": "Change your {settings}", + "web_app_crash.content": "You could try any of the following:", + "web_app_crash.debug_info": "Debug information", + "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", + "web_app_crash.issue_tracker": "issue tracker", + "web_app_crash.reload": "Reload", + "web_app_crash.reload_page": "{reload} the current page", + "web_app_crash.report_issue": "Report a bug in the {issuetracker}", + "web_app_crash.settings": "settings", + "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." +} diff --git a/config/locales-glitch/af.yml b/config/locales-glitch/af.yml new file mode 100644 index 0000000000..7eb443c977 --- /dev/null +++ b/config/locales-glitch/af.yml @@ -0,0 +1,38 @@ +--- +af: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can
contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/an.yml b/config/locales-glitch/an.yml new file mode 100644 index 0000000000..7769a7b836 --- /dev/null +++ b/config/locales-glitch/an.yml @@ -0,0 +1,38 @@ +--- +an: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ar.yml b/config/locales-glitch/ar.yml new file mode 100644 index 0000000000..24e703e5a4 --- /dev/null +++ b/config/locales-glitch/ar.yml @@ -0,0 +1,38 @@ +--- +ar: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ast.yml b/config/locales-glitch/ast.yml new file mode 100644 index 0000000000..0e294ba8c1 --- /dev/null +++ b/config/locales-glitch/ast.yml @@ -0,0 +1,38 @@ +--- +ast: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/be.yml b/config/locales-glitch/be.yml new file mode 100644 index 0000000000..53ee5ab09f --- /dev/null +++ b/config/locales-glitch/be.yml @@ -0,0 +1,38 @@ +--- +be: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/bg.yml b/config/locales-glitch/bg.yml new file mode 100644 index 0000000000..de3435ef46 --- /dev/null +++ b/config/locales-glitch/bg.yml @@ -0,0 +1,38 @@ +--- +bg: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/bn.yml b/config/locales-glitch/bn.yml new file mode 100644 index 0000000000..5f464049bd --- /dev/null +++ b/config/locales-glitch/bn.yml @@ -0,0 +1,38 @@ +--- +bn: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/br.yml b/config/locales-glitch/br.yml new file mode 100644 index 0000000000..53a39fe02f --- /dev/null +++ b/config/locales-glitch/br.yml @@ -0,0 +1,38 @@ +--- +br: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/bs.yml b/config/locales-glitch/bs.yml new file mode 100644 index 0000000000..1d8af181f8 --- /dev/null +++ b/config/locales-glitch/bs.yml @@ -0,0 +1,38 @@ +--- +bs: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ca.yml b/config/locales-glitch/ca.yml new file mode 100644 index 0000000000..f3b3adb99d --- /dev/null +++ b/config/locales-glitch/ca.yml @@ -0,0 +1,38 @@ +--- +ca: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ckb.yml b/config/locales-glitch/ckb.yml new file mode 100644 index 0000000000..a9efcff270 --- /dev/null +++ b/config/locales-glitch/ckb.yml @@ -0,0 +1,38 @@ +--- +ckb-IR: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/co.yml b/config/locales-glitch/co.yml new file mode 100644 index 0000000000..880c7f133e --- /dev/null +++ b/config/locales-glitch/co.yml @@ -0,0 +1,38 @@ +--- +co: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/cy.yml b/config/locales-glitch/cy.yml new file mode 100644 index 0000000000..63e5296fca --- /dev/null +++ b/config/locales-glitch/cy.yml @@ -0,0 +1,38 @@ +--- +cy: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/da.yml b/config/locales-glitch/da.yml new file mode 100644 index 0000000000..325922fac2 --- /dev/null +++ b/config/locales-glitch/da.yml @@ -0,0 +1,38 @@ +--- +da: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/de.yml b/config/locales-glitch/de.yml new file mode 100644 index 0000000000..99de7430c0 --- /dev/null +++ b/config/locales-glitch/de.yml @@ -0,0 +1,38 @@ +--- +de: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/el.yml b/config/locales-glitch/el.yml new file mode 100644 index 0000000000..517e9c663d --- /dev/null +++ b/config/locales-glitch/el.yml @@ -0,0 +1,38 @@ +--- +el: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/en-GB.yml b/config/locales-glitch/en-GB.yml new file mode 100644 index 0000000000..cec973752b --- /dev/null +++ b/config/locales-glitch/en-GB.yml @@ -0,0 +1,38 @@ +--- +en-GB: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/eo.yml b/config/locales-glitch/eo.yml new file mode 100644 index 0000000000..a97e7b1349 --- /dev/null +++ b/config/locales-glitch/eo.yml @@ -0,0 +1,38 @@ +--- +eo: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/es-AR.yml b/config/locales-glitch/es-AR.yml new file mode 100644 index 0000000000..eea52b7a68 --- /dev/null +++ b/config/locales-glitch/es-AR.yml @@ -0,0 +1,38 @@ +--- +es-AR: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix + title: Ocultar conteo de seguidorxs + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. + title: Advertencia de contenido para los toots salientes + show_reblogs_in_public_timelines: + desc_html: Mostrar retoots públicos en las línea de tiempo local y pública. + title: Mostrar retoots en líneas de tiempo públicas + show_replies_in_public_timelines: + desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. + title: Mostrar respuestas en líneas de tiempo públicas + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Usar + settings: + flavours: Ediciones diff --git a/config/locales-glitch/es-MX.yml b/config/locales-glitch/es-MX.yml new file mode 100644 index 0000000000..6cec17c3bf --- /dev/null +++ b/config/locales-glitch/es-MX.yml @@ -0,0 +1,38 @@ +--- +es-MX: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix + title: Ocultar conteo de seguidorxs + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. + title: Advertencia de contenido para los toots salientes + show_reblogs_in_public_timelines: + desc_html: Mostrar retoots públicos en las línea de tiempo local y pública. + title: Mostrar retoots en líneas de tiempo públicas + show_replies_in_public_timelines: + desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. + title: Mostrar respuestas en líneas de tiempo públicas + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Usar + settings: + flavours: Ediciones diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index d842deb673..14af6097e9 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -1,10 +1,21 @@ --- es: admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other outgoing_spoilers: desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. title: Advertencia de contenido para los toots salientes @@ -14,6 +25,13 @@ es: show_replies_in_public_timelines: desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification generic: use_this: Usar settings: diff --git a/config/locales-glitch/et.yml b/config/locales-glitch/et.yml new file mode 100644 index 0000000000..75eb72264f --- /dev/null +++ b/config/locales-glitch/et.yml @@ -0,0 +1,38 @@ +--- +et: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/eu.yml b/config/locales-glitch/eu.yml new file mode 100644 index 0000000000..956c5c2f7e --- /dev/null +++ b/config/locales-glitch/eu.yml @@ -0,0 +1,38 @@ +--- +eu: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fa.yml b/config/locales-glitch/fa.yml new file mode 100644 index 0000000000..8067833b14 --- /dev/null +++ b/config/locales-glitch/fa.yml @@ -0,0 +1,38 @@ +--- +fa: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fi.yml b/config/locales-glitch/fi.yml new file mode 100644 index 0000000000..87b61df094 --- /dev/null +++ b/config/locales-glitch/fi.yml @@ -0,0 +1,38 @@ +--- +fi: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fo.yml b/config/locales-glitch/fo.yml new file mode 100644 index 0000000000..5b81be3693 --- /dev/null +++ b/config/locales-glitch/fo.yml @@ -0,0 +1,38 @@ +--- +fo: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fr-QC.yml b/config/locales-glitch/fr-QC.yml new file mode 100644 index 0000000000..f9a8614d8a --- /dev/null +++ b/config/locales-glitch/fr-QC.yml @@ -0,0 +1,38 @@ +--- +fr-QC: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fr.yml b/config/locales-glitch/fr.yml new file mode 100644 index 0000000000..e8e5085baf --- /dev/null +++ b/config/locales-glitch/fr.yml @@ -0,0 +1,38 @@ +--- +fr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/fy.yml b/config/locales-glitch/fy.yml new file mode 100644 index 0000000000..6b8e225bca --- /dev/null +++ b/config/locales-glitch/fy.yml @@ -0,0 +1,38 @@ +--- +fy: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ga.yml b/config/locales-glitch/ga.yml new file mode 100644 index 0000000000..aafc36d472 --- /dev/null +++ b/config/locales-glitch/ga.yml @@ -0,0 +1,38 @@ +--- +ga: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/gd.yml b/config/locales-glitch/gd.yml new file mode 100644 index 0000000000..d8873517c5 --- /dev/null +++ b/config/locales-glitch/gd.yml @@ -0,0 +1,38 @@ +--- +gd: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/gl.yml b/config/locales-glitch/gl.yml new file mode 100644 index 0000000000..9fb5b77f78 --- /dev/null +++ b/config/locales-glitch/gl.yml @@ -0,0 +1,38 @@ +--- +gl: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/he.yml b/config/locales-glitch/he.yml new file mode 100644 index 0000000000..f7915d709b --- /dev/null +++ b/config/locales-glitch/he.yml @@ -0,0 +1,38 @@ +--- +he: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/hi.yml b/config/locales-glitch/hi.yml new file mode 100644 index 0000000000..aec5cdbdaa --- /dev/null +++ b/config/locales-glitch/hi.yml @@ -0,0 +1,38 @@ +--- +hi: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/hr.yml b/config/locales-glitch/hr.yml new file mode 100644 index 0000000000..5aa51d881b --- /dev/null +++ b/config/locales-glitch/hr.yml @@ -0,0 +1,38 @@ +--- +hr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/hu.yml b/config/locales-glitch/hu.yml new file mode 100644 index 0000000000..71bd724cd0 --- /dev/null +++ b/config/locales-glitch/hu.yml @@ -0,0 +1,38 @@ +--- +hu: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/hy.yml b/config/locales-glitch/hy.yml new file mode 100644 index 0000000000..44ad8aaad7 --- /dev/null +++ b/config/locales-glitch/hy.yml @@ -0,0 +1,38 @@ +--- +hy: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/id.yml b/config/locales-glitch/id.yml new file mode 100644 index 0000000000..2b46494632 --- /dev/null +++ b/config/locales-glitch/id.yml @@ -0,0 +1,38 @@ +--- +id: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ig.yml b/config/locales-glitch/ig.yml new file mode 100644 index 0000000000..a773d30751 --- /dev/null +++ b/config/locales-glitch/ig.yml @@ -0,0 +1,38 @@ +--- +ig: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/io.yml b/config/locales-glitch/io.yml new file mode 100644 index 0000000000..781f8a80e8 --- /dev/null +++ b/config/locales-glitch/io.yml @@ -0,0 +1,38 @@ +--- +io: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/is.yml b/config/locales-glitch/is.yml new file mode 100644 index 0000000000..0cbf67e0e0 --- /dev/null +++ b/config/locales-glitch/is.yml @@ -0,0 +1,38 @@ +--- +is: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/it.yml b/config/locales-glitch/it.yml new file mode 100644 index 0000000000..4e2bf74b90 --- /dev/null +++ b/config/locales-glitch/it.yml @@ -0,0 +1,38 @@ +--- +it: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ja.yml b/config/locales-glitch/ja.yml index 54ebfaeca6..61bf4644b6 100644 --- a/config/locales-glitch/ja.yml +++ b/config/locales-glitch/ja.yml @@ -1,10 +1,21 @@ --- ja: admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin hide_followers_count: desc_html: プロフィールページのフォロワー数を見られないようにします title: フォロワー数を隠す + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other outgoing_spoilers: desc_html: トゥートが連合される際、閲覧注意としてマークされていないトゥートにこの警告が追加されます。これはあなたのインスタンスが他のインスタンスに警告をして欲しいとされる投稿に特化している場合に便利です。 メディアは閲覧注意にマークされます。 title: 発信するトゥートへの警告 @@ -14,6 +25,13 @@ ja: show_replies_in_public_timelines: desc_html: 自分への公開投稿の返信に加えて、すべての公開投稿の返信をローカルタイムラインと連合タイムラインに表示します。 title: 公開タイムラインに返信を表示 + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification generic: use_this: これを使う settings: diff --git a/config/locales-glitch/ka.yml b/config/locales-glitch/ka.yml new file mode 100644 index 0000000000..eca5173ba7 --- /dev/null +++ b/config/locales-glitch/ka.yml @@ -0,0 +1,38 @@ +--- +ka: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/kab.yml b/config/locales-glitch/kab.yml new file mode 100644 index 0000000000..5831340c5c --- /dev/null +++ b/config/locales-glitch/kab.yml @@ -0,0 +1,38 @@ +--- +kab: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/kk.yml b/config/locales-glitch/kk.yml new file mode 100644 index 0000000000..addad540d5 --- /dev/null +++ b/config/locales-glitch/kk.yml @@ -0,0 +1,38 @@ +--- +kk: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/kn.yml b/config/locales-glitch/kn.yml new file mode 100644 index 0000000000..18a70afebc --- /dev/null +++ b/config/locales-glitch/kn.yml @@ -0,0 +1,38 @@ +--- +kn: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ko.yml b/config/locales-glitch/ko.yml index bc9c4e86b7..f691934116 100644 --- a/config/locales-glitch/ko.yml +++ b/config/locales-glitch/ko.yml @@ -8,9 +8,17 @@ ko: captcha_enabled: desc_html: 이것은 hCaptcha의 외부 스크립트에 의존합니다, 이것은 개인정보 보호에 위협을 가할 수도 있습니다. 추가적으로, 이것은 몇몇 사람들(특히나 장애인들)에게 가입 절차의 접근성을 심각하게 떨어트릴 수 있습니다. 이러한 이유로, 대체제로 승인 전용이나 초대제를 통한 가입을 고려해보세요.
한정된 사용만 가능한 초대장을 통한 가입자들은 CAPTCHA를 풀지 않아도 됩니다 title: 새로운 사용자가 계정 확인을 위해서는 CAPTCHA를 풀어야 하도록 합니다 + flavour_and_skin: + title: Flavour and skin hide_followers_count: desc_html: 사용자 프로필에 팔로워 수를 표시하지 않습니다 title: 팔로워 수 숨기기 + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots show_reblogs_in_public_timelines: desc_html: 공개글의 공개적인 부스트를 로컬과 공개 타임라인에 표시합니다. title: 부스트를 공개 타임라인에 표시 diff --git a/config/locales-glitch/ku.yml b/config/locales-glitch/ku.yml new file mode 100644 index 0000000000..6b3e35be5b --- /dev/null +++ b/config/locales-glitch/ku.yml @@ -0,0 +1,38 @@ +--- +kmr-TR: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/kw.yml b/config/locales-glitch/kw.yml new file mode 100644 index 0000000000..ed35d87ba3 --- /dev/null +++ b/config/locales-glitch/kw.yml @@ -0,0 +1,38 @@ +--- +kw: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/la.yml b/config/locales-glitch/la.yml new file mode 100644 index 0000000000..937c35285f --- /dev/null +++ b/config/locales-glitch/la.yml @@ -0,0 +1,38 @@ +--- +la: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/lt.yml b/config/locales-glitch/lt.yml new file mode 100644 index 0000000000..7497b5717d --- /dev/null +++ b/config/locales-glitch/lt.yml @@ -0,0 +1,38 @@ +--- +lt: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/lv.yml b/config/locales-glitch/lv.yml new file mode 100644 index 0000000000..0804c52b7d --- /dev/null +++ b/config/locales-glitch/lv.yml @@ -0,0 +1,38 @@ +--- +lv: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/mk.yml b/config/locales-glitch/mk.yml new file mode 100644 index 0000000000..daed4eb507 --- /dev/null +++ b/config/locales-glitch/mk.yml @@ -0,0 +1,38 @@ +--- +mk: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ml.yml b/config/locales-glitch/ml.yml new file mode 100644 index 0000000000..6b5a0186c6 --- /dev/null +++ b/config/locales-glitch/ml.yml @@ -0,0 +1,38 @@ +--- +ml: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/mr.yml b/config/locales-glitch/mr.yml new file mode 100644 index 0000000000..2ec3c1b635 --- /dev/null +++ b/config/locales-glitch/mr.yml @@ -0,0 +1,38 @@ +--- +mr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ms.yml b/config/locales-glitch/ms.yml new file mode 100644 index 0000000000..200944d6df --- /dev/null +++ b/config/locales-glitch/ms.yml @@ -0,0 +1,38 @@ +--- +ms: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/my.yml b/config/locales-glitch/my.yml new file mode 100644 index 0000000000..d7f7931be3 --- /dev/null +++ b/config/locales-glitch/my.yml @@ -0,0 +1,38 @@ +--- +my: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/nl.yml b/config/locales-glitch/nl.yml new file mode 100644 index 0000000000..96e9003238 --- /dev/null +++ b/config/locales-glitch/nl.yml @@ -0,0 +1,38 @@ +--- +nl: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/nn.yml b/config/locales-glitch/nn.yml new file mode 100644 index 0000000000..f33c14c003 --- /dev/null +++ b/config/locales-glitch/nn.yml @@ -0,0 +1,38 @@ +--- +nn: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/no.yml b/config/locales-glitch/no.yml new file mode 100644 index 0000000000..1ee226ed50 --- /dev/null +++ b/config/locales-glitch/no.yml @@ -0,0 +1,38 @@ +--- +"no": + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/oc.yml b/config/locales-glitch/oc.yml new file mode 100644 index 0000000000..cbdcb29fea --- /dev/null +++ b/config/locales-glitch/oc.yml @@ -0,0 +1,38 @@ +--- +oc: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/pa.yml b/config/locales-glitch/pa.yml new file mode 100644 index 0000000000..6c8d1484d2 --- /dev/null +++ b/config/locales-glitch/pa.yml @@ -0,0 +1,38 @@ +--- +pa: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/pl.yml b/config/locales-glitch/pl.yml index 3fcdedcf35..9a714abcd2 100644 --- a/config/locales-glitch/pl.yml +++ b/config/locales-glitch/pl.yml @@ -1,5 +1,37 @@ --- pl: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification generic: use_this: Użyj tego settings: diff --git a/config/locales-glitch/pt-BR.yml b/config/locales-glitch/pt-BR.yml new file mode 100644 index 0000000000..5439dc2da0 --- /dev/null +++ b/config/locales-glitch/pt-BR.yml @@ -0,0 +1,38 @@ +--- +pt: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/pt-PT.yml b/config/locales-glitch/pt-PT.yml new file mode 100644 index 0000000000..5439dc2da0 --- /dev/null +++ b/config/locales-glitch/pt-PT.yml @@ -0,0 +1,38 @@ +--- +pt: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ro.yml b/config/locales-glitch/ro.yml new file mode 100644 index 0000000000..bd12d75b6a --- /dev/null +++ b/config/locales-glitch/ro.yml @@ -0,0 +1,38 @@ +--- +ro: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ru.yml b/config/locales-glitch/ru.yml new file mode 100644 index 0000000000..6817f80d45 --- /dev/null +++ b/config/locales-glitch/ru.yml @@ -0,0 +1,38 @@ +--- +ru: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sa.yml b/config/locales-glitch/sa.yml new file mode 100644 index 0000000000..cd6df912ca --- /dev/null +++ b/config/locales-glitch/sa.yml @@ -0,0 +1,38 @@ +--- +sa: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sc.yml b/config/locales-glitch/sc.yml new file mode 100644 index 0000000000..50f28be12d --- /dev/null +++ b/config/locales-glitch/sc.yml @@ -0,0 +1,38 @@ +--- +sc: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sco.yml b/config/locales-glitch/sco.yml new file mode 100644 index 0000000000..2a9d101656 --- /dev/null +++ b/config/locales-glitch/sco.yml @@ -0,0 +1,38 @@ +--- +sco: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/si.yml b/config/locales-glitch/si.yml new file mode 100644 index 0000000000..6376cc5b3c --- /dev/null +++ b/config/locales-glitch/si.yml @@ -0,0 +1,38 @@ +--- +si: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/simple_form.af.yml b/config/locales-glitch/simple_form.af.yml new file mode 100644 index 0000000000..c7b7ae1d91 --- /dev/null +++ b/config/locales-glitch/simple_form.af.yml @@ -0,0 +1,27 @@ +--- +af: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.an.yml b/config/locales-glitch/simple_form.an.yml new file mode 100644 index 0000000000..c7789ac699 --- /dev/null +++ b/config/locales-glitch/simple_form.an.yml @@ -0,0 +1,27 @@ +--- +an: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ar.yml b/config/locales-glitch/simple_form.ar.yml new file mode 100644 index 0000000000..07615007bc --- /dev/null +++ b/config/locales-glitch/simple_form.ar.yml @@ -0,0 +1,27 @@ +--- +ar: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ast.yml b/config/locales-glitch/simple_form.ast.yml new file mode 100644 index 0000000000..f2f431b14a --- /dev/null +++ b/config/locales-glitch/simple_form.ast.yml @@ -0,0 +1,27 @@ +--- +ast: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.be.yml b/config/locales-glitch/simple_form.be.yml new file mode 100644 index 0000000000..3d724a6c74 --- /dev/null +++ b/config/locales-glitch/simple_form.be.yml @@ -0,0 +1,27 @@ +--- +be: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bg.yml b/config/locales-glitch/simple_form.bg.yml new file mode 100644 index 0000000000..220088494f --- /dev/null +++ b/config/locales-glitch/simple_form.bg.yml @@ -0,0 +1,27 @@ +--- +bg: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bn.yml b/config/locales-glitch/simple_form.bn.yml new file mode 100644 index 0000000000..9eea9e55e3 --- /dev/null +++ b/config/locales-glitch/simple_form.bn.yml @@ -0,0 +1,27 @@ +--- +bn: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.br.yml b/config/locales-glitch/simple_form.br.yml new file mode 100644 index 0000000000..699d30d9c8 --- /dev/null +++ b/config/locales-glitch/simple_form.br.yml @@ -0,0 +1,27 @@ +--- +br: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bs.yml b/config/locales-glitch/simple_form.bs.yml new file mode 100644 index 0000000000..d7a52e6769 --- /dev/null +++ b/config/locales-glitch/simple_form.bs.yml @@ -0,0 +1,27 @@ +--- +bs: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ca.yml b/config/locales-glitch/simple_form.ca.yml new file mode 100644 index 0000000000..df44a13447 --- /dev/null +++ b/config/locales-glitch/simple_form.ca.yml @@ -0,0 +1,27 @@ +--- +ca: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ckb.yml b/config/locales-glitch/simple_form.ckb.yml new file mode 100644 index 0000000000..9a11a5b183 --- /dev/null +++ b/config/locales-glitch/simple_form.ckb.yml @@ -0,0 +1,27 @@ +--- +ckb-IR: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.co.yml b/config/locales-glitch/simple_form.co.yml new file mode 100644 index 0000000000..7a43e5eb89 --- /dev/null +++ b/config/locales-glitch/simple_form.co.yml @@ -0,0 +1,27 @@ +--- +co: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.cy.yml b/config/locales-glitch/simple_form.cy.yml new file mode 100644 index 0000000000..9473e20dbc --- /dev/null +++ b/config/locales-glitch/simple_form.cy.yml @@ -0,0 +1,27 @@ +--- +cy: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.da.yml b/config/locales-glitch/simple_form.da.yml new file mode 100644 index 0000000000..f3fc4da29d --- /dev/null +++ b/config/locales-glitch/simple_form.da.yml @@ -0,0 +1,27 @@ +--- +da: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.de.yml b/config/locales-glitch/simple_form.de.yml new file mode 100644 index 0000000000..092e935d7a --- /dev/null +++ b/config/locales-glitch/simple_form.de.yml @@ -0,0 +1,27 @@ +--- +de: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.el.yml b/config/locales-glitch/simple_form.el.yml new file mode 100644 index 0000000000..6f94800612 --- /dev/null +++ b/config/locales-glitch/simple_form.el.yml @@ -0,0 +1,27 @@ +--- +el: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.en-GB.yml b/config/locales-glitch/simple_form.en-GB.yml new file mode 100644 index 0000000000..a750149812 --- /dev/null +++ b/config/locales-glitch/simple_form.en-GB.yml @@ -0,0 +1,27 @@ +--- +en-GB: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.eo.yml b/config/locales-glitch/simple_form.eo.yml new file mode 100644 index 0000000000..435933211c --- /dev/null +++ b/config/locales-glitch/simple_form.eo.yml @@ -0,0 +1,27 @@ +--- +eo: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es-AR.yml b/config/locales-glitch/simple_form.es-AR.yml new file mode 100644 index 0000000000..1ea7968235 --- /dev/null +++ b/config/locales-glitch/simple_form.es-AR.yml @@ -0,0 +1,27 @@ +--- +es-AR: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario + setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario + setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) + setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Cambia el diseño de la edición seleccionada de Mastodon + labels: + defaults: + setting_default_content_type: Formato predeterminado de tus toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Sin formato + setting_favourite_modal: Mostrar diálogo de confirmación antes de marcar como favorito (sólo aplica a la edición Glich) + setting_hide_followers_count: Ocultar tu conteo de seguidorxs + setting_skin: Diseño + setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es-MX.yml b/config/locales-glitch/simple_form.es-MX.yml new file mode 100644 index 0000000000..8910736567 --- /dev/null +++ b/config/locales-glitch/simple_form.es-MX.yml @@ -0,0 +1,27 @@ +--- +es-MX: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario + setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario + setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) + setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Cambia el diseño de la edición seleccionada de Mastodon + labels: + defaults: + setting_default_content_type: Formato predeterminado de tus toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Sin formato + setting_favourite_modal: Mostrar diálogo de confirmación antes de marcar como favorito (sólo aplica a la edición Glich) + setting_hide_followers_count: Ocultar tu conteo de seguidorxs + setting_skin: Diseño + setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es.yml b/config/locales-glitch/simple_form.es.yml index 977775be61..96ed4c1ecb 100644 --- a/config/locales-glitch/simple_form.es.yml +++ b/config/locales-glitch/simple_form.es.yml @@ -1,12 +1,15 @@ --- es: simple_form: + glitch_only: glitch-soc hints: defaults: + fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Cambia el diseño de la edición seleccionada de Mastodon labels: defaults: @@ -18,3 +21,7 @@ es: setting_hide_followers_count: Ocultar tu conteo de seguidorxs setting_skin: Diseño setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.et.yml b/config/locales-glitch/simple_form.et.yml new file mode 100644 index 0000000000..090ab6cb55 --- /dev/null +++ b/config/locales-glitch/simple_form.et.yml @@ -0,0 +1,27 @@ +--- +et: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.eu.yml b/config/locales-glitch/simple_form.eu.yml new file mode 100644 index 0000000000..e0085473e9 --- /dev/null +++ b/config/locales-glitch/simple_form.eu.yml @@ -0,0 +1,27 @@ +--- +eu: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fa.yml b/config/locales-glitch/simple_form.fa.yml new file mode 100644 index 0000000000..dabbee1a33 --- /dev/null +++ b/config/locales-glitch/simple_form.fa.yml @@ -0,0 +1,27 @@ +--- +fa: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fi.yml b/config/locales-glitch/simple_form.fi.yml new file mode 100644 index 0000000000..dbc8ce0442 --- /dev/null +++ b/config/locales-glitch/simple_form.fi.yml @@ -0,0 +1,27 @@ +--- +fi: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fo.yml b/config/locales-glitch/simple_form.fo.yml new file mode 100644 index 0000000000..4b59c9c6c1 --- /dev/null +++ b/config/locales-glitch/simple_form.fo.yml @@ -0,0 +1,27 @@ +--- +fo: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fr-QC.yml b/config/locales-glitch/simple_form.fr-QC.yml new file mode 100644 index 0000000000..20b3f6146d --- /dev/null +++ b/config/locales-glitch/simple_form.fr-QC.yml @@ -0,0 +1,27 @@ +--- +fr-QC: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fr.yml b/config/locales-glitch/simple_form.fr.yml new file mode 100644 index 0000000000..0a0685c44f --- /dev/null +++ b/config/locales-glitch/simple_form.fr.yml @@ -0,0 +1,27 @@ +--- +fr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fy.yml b/config/locales-glitch/simple_form.fy.yml new file mode 100644 index 0000000000..61e87e9316 --- /dev/null +++ b/config/locales-glitch/simple_form.fy.yml @@ -0,0 +1,27 @@ +--- +fy: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ga.yml b/config/locales-glitch/simple_form.ga.yml new file mode 100644 index 0000000000..917abe7781 --- /dev/null +++ b/config/locales-glitch/simple_form.ga.yml @@ -0,0 +1,27 @@ +--- +ga: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.gd.yml b/config/locales-glitch/simple_form.gd.yml new file mode 100644 index 0000000000..7b569a6896 --- /dev/null +++ b/config/locales-glitch/simple_form.gd.yml @@ -0,0 +1,27 @@ +--- +gd: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.gl.yml b/config/locales-glitch/simple_form.gl.yml new file mode 100644 index 0000000000..7aa480b4c7 --- /dev/null +++ b/config/locales-glitch/simple_form.gl.yml @@ -0,0 +1,27 @@ +--- +gl: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.he.yml b/config/locales-glitch/simple_form.he.yml new file mode 100644 index 0000000000..85e0d2e024 --- /dev/null +++ b/config/locales-glitch/simple_form.he.yml @@ -0,0 +1,27 @@ +--- +he: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hi.yml b/config/locales-glitch/simple_form.hi.yml new file mode 100644 index 0000000000..fd1e19ca3a --- /dev/null +++ b/config/locales-glitch/simple_form.hi.yml @@ -0,0 +1,27 @@ +--- +hi: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hr.yml b/config/locales-glitch/simple_form.hr.yml new file mode 100644 index 0000000000..3ddc7d77bd --- /dev/null +++ b/config/locales-glitch/simple_form.hr.yml @@ -0,0 +1,27 @@ +--- +hr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hu.yml b/config/locales-glitch/simple_form.hu.yml new file mode 100644 index 0000000000..7d77afcb40 --- /dev/null +++ b/config/locales-glitch/simple_form.hu.yml @@ -0,0 +1,27 @@ +--- +hu: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hy.yml b/config/locales-glitch/simple_form.hy.yml new file mode 100644 index 0000000000..24b990d7b7 --- /dev/null +++ b/config/locales-glitch/simple_form.hy.yml @@ -0,0 +1,27 @@ +--- +hy: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.id.yml b/config/locales-glitch/simple_form.id.yml new file mode 100644 index 0000000000..686392aee7 --- /dev/null +++ b/config/locales-glitch/simple_form.id.yml @@ -0,0 +1,27 @@ +--- +id: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ig.yml b/config/locales-glitch/simple_form.ig.yml new file mode 100644 index 0000000000..f85eea7a33 --- /dev/null +++ b/config/locales-glitch/simple_form.ig.yml @@ -0,0 +1,27 @@ +--- +ig: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.io.yml b/config/locales-glitch/simple_form.io.yml new file mode 100644 index 0000000000..92f7fe4a91 --- /dev/null +++ b/config/locales-glitch/simple_form.io.yml @@ -0,0 +1,27 @@ +--- +io: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.is.yml b/config/locales-glitch/simple_form.is.yml new file mode 100644 index 0000000000..f7acc0869a --- /dev/null +++ b/config/locales-glitch/simple_form.is.yml @@ -0,0 +1,27 @@ +--- +is: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.it.yml b/config/locales-glitch/simple_form.it.yml new file mode 100644 index 0000000000..325b7d1bb3 --- /dev/null +++ b/config/locales-glitch/simple_form.it.yml @@ -0,0 +1,27 @@ +--- +it: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ja.yml b/config/locales-glitch/simple_form.ja.yml index dc9e0b5795..7bc7eb13f8 100644 --- a/config/locales-glitch/simple_form.ja.yml +++ b/config/locales-glitch/simple_form.ja.yml @@ -1,12 +1,15 @@ --- ja: simple_form: + glitch_only: glitch-soc hints: defaults: + fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: トゥートを作成するとき特に指定がない限り生のHTMLで書かれているとします setting_default_content_type_markdown: トゥートを作成するとき特に指定がない限りリッチテキスト形式のマークダウンで書かれているとします setting_default_content_type_plain: トゥートを作成するとき特に指定がない限りプレーンテキストで書かれているとします(Mastodon既定の動作) setting_default_language: あなたのトゥートの言語を自動検出しますが必ずしも正確ではありません + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 選択したMastodonフレーバーに変更します labels: defaults: @@ -18,3 +21,7 @@ ja: setting_hide_followers_count: フォロワー数を隠す setting_skin: スキン setting_system_emoji_font: 絵文字にシステム既定のフォントを使用する(Glitch Edition フレーバーのみに適用されます) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ka.yml b/config/locales-glitch/simple_form.ka.yml new file mode 100644 index 0000000000..30d2d137ce --- /dev/null +++ b/config/locales-glitch/simple_form.ka.yml @@ -0,0 +1,27 @@ +--- +ka: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kab.yml b/config/locales-glitch/simple_form.kab.yml new file mode 100644 index 0000000000..3c68f188af --- /dev/null +++ b/config/locales-glitch/simple_form.kab.yml @@ -0,0 +1,27 @@ +--- +kab: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kk.yml b/config/locales-glitch/simple_form.kk.yml new file mode 100644 index 0000000000..0ad2cbbed1 --- /dev/null +++ b/config/locales-glitch/simple_form.kk.yml @@ -0,0 +1,27 @@ +--- +kk: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kn.yml b/config/locales-glitch/simple_form.kn.yml new file mode 100644 index 0000000000..00305eccf5 --- /dev/null +++ b/config/locales-glitch/simple_form.kn.yml @@ -0,0 +1,27 @@ +--- +kn: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ko.yml b/config/locales-glitch/simple_form.ko.yml index 193c85513a..b7cbb91b06 100644 --- a/config/locales-glitch/simple_form.ko.yml +++ b/config/locales-glitch/simple_form.ko.yml @@ -1,12 +1,15 @@ --- ko: simple_form: + glitch_only: glitch-soc hints: defaults: + fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: 게시물을 작성할 때, 형식을 지정하지 않았다면, 생 HTML이라고 가정합니다 setting_default_content_type_markdown: 게시물을 작성할 때, 형식을 지정하지 않았다면, 마크다운이라고 가정합니다 setting_default_content_type_plain: 게시물을 작성할 때, 형식을 지정하지 않았다면, 일반적인 텍스트라고 가정합니다. (마스토돈의 기본 동작) setting_default_language: 작성하는 게시물의 언어는 자동으로 설정될 수 있습니다, 하지만 언제나 정확하지는 않습니다 + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 선택한 마스토돈 풍미의 스킨을 바꿉니다 labels: defaults: diff --git a/config/locales-glitch/simple_form.ku.yml b/config/locales-glitch/simple_form.ku.yml new file mode 100644 index 0000000000..19886fd16e --- /dev/null +++ b/config/locales-glitch/simple_form.ku.yml @@ -0,0 +1,27 @@ +--- +kmr-TR: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kw.yml b/config/locales-glitch/simple_form.kw.yml new file mode 100644 index 0000000000..2dc7ebe34c --- /dev/null +++ b/config/locales-glitch/simple_form.kw.yml @@ -0,0 +1,27 @@ +--- +kw: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.la.yml b/config/locales-glitch/simple_form.la.yml new file mode 100644 index 0000000000..534001565e --- /dev/null +++ b/config/locales-glitch/simple_form.la.yml @@ -0,0 +1,27 @@ +--- +la: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.lt.yml b/config/locales-glitch/simple_form.lt.yml new file mode 100644 index 0000000000..d5febc9019 --- /dev/null +++ b/config/locales-glitch/simple_form.lt.yml @@ -0,0 +1,27 @@ +--- +lt: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.lv.yml b/config/locales-glitch/simple_form.lv.yml new file mode 100644 index 0000000000..9a30494f91 --- /dev/null +++ b/config/locales-glitch/simple_form.lv.yml @@ -0,0 +1,27 @@ +--- +lv: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.mk.yml b/config/locales-glitch/simple_form.mk.yml new file mode 100644 index 0000000000..6f2d2421f7 --- /dev/null +++ b/config/locales-glitch/simple_form.mk.yml @@ -0,0 +1,27 @@ +--- +mk: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ml.yml b/config/locales-glitch/simple_form.ml.yml new file mode 100644 index 0000000000..3c0d7a70a4 --- /dev/null +++ b/config/locales-glitch/simple_form.ml.yml @@ -0,0 +1,27 @@ +--- +ml: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.mr.yml b/config/locales-glitch/simple_form.mr.yml new file mode 100644 index 0000000000..eb70897575 --- /dev/null +++ b/config/locales-glitch/simple_form.mr.yml @@ -0,0 +1,27 @@ +--- +mr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ms.yml b/config/locales-glitch/simple_form.ms.yml new file mode 100644 index 0000000000..31ddcd1f97 --- /dev/null +++ b/config/locales-glitch/simple_form.ms.yml @@ -0,0 +1,27 @@ +--- +ms: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.my.yml b/config/locales-glitch/simple_form.my.yml new file mode 100644 index 0000000000..a0a67ff665 --- /dev/null +++ b/config/locales-glitch/simple_form.my.yml @@ -0,0 +1,27 @@ +--- +my: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.nl.yml b/config/locales-glitch/simple_form.nl.yml new file mode 100644 index 0000000000..1e04b6c200 --- /dev/null +++ b/config/locales-glitch/simple_form.nl.yml @@ -0,0 +1,27 @@ +--- +nl: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.nn.yml b/config/locales-glitch/simple_form.nn.yml new file mode 100644 index 0000000000..06408dcf87 --- /dev/null +++ b/config/locales-glitch/simple_form.nn.yml @@ -0,0 +1,27 @@ +--- +nn: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.no.yml b/config/locales-glitch/simple_form.no.yml new file mode 100644 index 0000000000..649e27b9e7 --- /dev/null +++ b/config/locales-glitch/simple_form.no.yml @@ -0,0 +1,27 @@ +--- +"no": + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.oc.yml b/config/locales-glitch/simple_form.oc.yml new file mode 100644 index 0000000000..f555e6fcad --- /dev/null +++ b/config/locales-glitch/simple_form.oc.yml @@ -0,0 +1,27 @@ +--- +oc: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pa.yml b/config/locales-glitch/simple_form.pa.yml new file mode 100644 index 0000000000..9eee21ec91 --- /dev/null +++ b/config/locales-glitch/simple_form.pa.yml @@ -0,0 +1,27 @@ +--- +pa: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pl.yml b/config/locales-glitch/simple_form.pl.yml index 264494c2de..e328a34459 100644 --- a/config/locales-glitch/simple_form.pl.yml +++ b/config/locales-glitch/simple_form.pl.yml @@ -1,10 +1,27 @@ --- pl: simple_form: + glitch_only: glitch-soc hints: defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Zmienia wygląd używanej odmiany Mastodona labels: defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text setting_favourite_modal: Pytaj o potwierdzenie przed dodaniem do ulubionych + setting_hide_followers_count: Hide your followers count setting_skin: Motyw + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pt-BR.yml b/config/locales-glitch/simple_form.pt-BR.yml new file mode 100644 index 0000000000..cac0cddcec --- /dev/null +++ b/config/locales-glitch/simple_form.pt-BR.yml @@ -0,0 +1,27 @@ +--- +pt: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pt-PT.yml b/config/locales-glitch/simple_form.pt-PT.yml new file mode 100644 index 0000000000..cac0cddcec --- /dev/null +++ b/config/locales-glitch/simple_form.pt-PT.yml @@ -0,0 +1,27 @@ +--- +pt: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ro.yml b/config/locales-glitch/simple_form.ro.yml new file mode 100644 index 0000000000..41f9fc96d0 --- /dev/null +++ b/config/locales-glitch/simple_form.ro.yml @@ -0,0 +1,27 @@ +--- +ro: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ru.yml b/config/locales-glitch/simple_form.ru.yml new file mode 100644 index 0000000000..cb21b98b50 --- /dev/null +++ b/config/locales-glitch/simple_form.ru.yml @@ -0,0 +1,27 @@ +--- +ru: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sa.yml b/config/locales-glitch/simple_form.sa.yml new file mode 100644 index 0000000000..a97b0bccf1 --- /dev/null +++ b/config/locales-glitch/simple_form.sa.yml @@ -0,0 +1,27 @@ +--- +sa: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sc.yml b/config/locales-glitch/simple_form.sc.yml new file mode 100644 index 0000000000..aa1cb749e7 --- /dev/null +++ b/config/locales-glitch/simple_form.sc.yml @@ -0,0 +1,27 @@ +--- +sc: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sco.yml b/config/locales-glitch/simple_form.sco.yml new file mode 100644 index 0000000000..3aba873c4a --- /dev/null +++ b/config/locales-glitch/simple_form.sco.yml @@ -0,0 +1,27 @@ +--- +sco: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.si.yml b/config/locales-glitch/simple_form.si.yml new file mode 100644 index 0000000000..858abd71fb --- /dev/null +++ b/config/locales-glitch/simple_form.si.yml @@ -0,0 +1,27 @@ +--- +si: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sk.yml b/config/locales-glitch/simple_form.sk.yml new file mode 100644 index 0000000000..391b314f46 --- /dev/null +++ b/config/locales-glitch/simple_form.sk.yml @@ -0,0 +1,27 @@ +--- +sk: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sl.yml b/config/locales-glitch/simple_form.sl.yml new file mode 100644 index 0000000000..83ea32917e --- /dev/null +++ b/config/locales-glitch/simple_form.sl.yml @@ -0,0 +1,27 @@ +--- +sl: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sq.yml b/config/locales-glitch/simple_form.sq.yml new file mode 100644 index 0000000000..819de27a1a --- /dev/null +++ b/config/locales-glitch/simple_form.sq.yml @@ -0,0 +1,27 @@ +--- +sq: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sr-Latn.yml b/config/locales-glitch/simple_form.sr-Latn.yml new file mode 100644 index 0000000000..0cc7666c8e --- /dev/null +++ b/config/locales-glitch/simple_form.sr-Latn.yml @@ -0,0 +1,27 @@ +--- +sr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sr.yml b/config/locales-glitch/simple_form.sr.yml new file mode 100644 index 0000000000..0cc7666c8e --- /dev/null +++ b/config/locales-glitch/simple_form.sr.yml @@ -0,0 +1,27 @@ +--- +sr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sv.yml b/config/locales-glitch/simple_form.sv.yml new file mode 100644 index 0000000000..02fc1418c6 --- /dev/null +++ b/config/locales-glitch/simple_form.sv.yml @@ -0,0 +1,27 @@ +--- +sv: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ta.yml b/config/locales-glitch/simple_form.ta.yml new file mode 100644 index 0000000000..06ddc7fb82 --- /dev/null +++ b/config/locales-glitch/simple_form.ta.yml @@ -0,0 +1,27 @@ +--- +ta: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.te.yml b/config/locales-glitch/simple_form.te.yml new file mode 100644 index 0000000000..45d3a56934 --- /dev/null +++ b/config/locales-glitch/simple_form.te.yml @@ -0,0 +1,27 @@ +--- +te: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.th.yml b/config/locales-glitch/simple_form.th.yml new file mode 100644 index 0000000000..b88200c9a2 --- /dev/null +++ b/config/locales-glitch/simple_form.th.yml @@ -0,0 +1,27 @@ +--- +th: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.tr.yml b/config/locales-glitch/simple_form.tr.yml new file mode 100644 index 0000000000..9f17e4cd4e --- /dev/null +++ b/config/locales-glitch/simple_form.tr.yml @@ -0,0 +1,27 @@ +--- +tr: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.tt.yml b/config/locales-glitch/simple_form.tt.yml new file mode 100644 index 0000000000..4a3faf510b --- /dev/null +++ b/config/locales-glitch/simple_form.tt.yml @@ -0,0 +1,27 @@ +--- +tt: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ug.yml b/config/locales-glitch/simple_form.ug.yml new file mode 100644 index 0000000000..447959c10e --- /dev/null +++ b/config/locales-glitch/simple_form.ug.yml @@ -0,0 +1,27 @@ +--- +ug: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.uk.yml b/config/locales-glitch/simple_form.uk.yml new file mode 100644 index 0000000000..8553325375 --- /dev/null +++ b/config/locales-glitch/simple_form.uk.yml @@ -0,0 +1,27 @@ +--- +uk: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ur.yml b/config/locales-glitch/simple_form.ur.yml new file mode 100644 index 0000000000..d5bff2d0fb --- /dev/null +++ b/config/locales-glitch/simple_form.ur.yml @@ -0,0 +1,27 @@ +--- +ur: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.vi.yml b/config/locales-glitch/simple_form.vi.yml new file mode 100644 index 0000000000..f2a45d50b9 --- /dev/null +++ b/config/locales-glitch/simple_form.vi.yml @@ -0,0 +1,27 @@ +--- +vi: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-CN.yml b/config/locales-glitch/simple_form.zh-CN.yml index 1c72ba784e..f4c865d073 100644 --- a/config/locales-glitch/simple_form.zh-CN.yml +++ b/config/locales-glitch/simple_form.zh-CN.yml @@ -1,12 +1,15 @@ --- zh-CN: simple_form: + glitch_only: glitch-soc hints: defaults: + fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: 在撰写嘟文时,除非另有指定,假定它们使用原始 HTML 语言撰写 setting_default_content_type_markdown: 在撰写嘟文时,除非另有指定,假定它们使用 Markdown 进行富文本格式化 setting_default_content_type_plain: 在撰写嘟文时,除非另有指定,假定它们是没有特殊格式的纯文本(默认的 Mastodon 行为) setting_default_language: 你的嘟文语言可以自动检测,但不一定准确 + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 更换为所选择的 Mastodon 风味 labels: defaults: @@ -18,3 +21,7 @@ zh-CN: setting_hide_followers_count: 隐藏你的关注者人数 setting_skin: 皮肤 setting_system_emoji_font: 表情符号使用系统默认字体 (仅限于 Glitch 风味) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-HK.yml b/config/locales-glitch/simple_form.zh-HK.yml new file mode 100644 index 0000000000..b1151106c9 --- /dev/null +++ b/config/locales-glitch/simple_form.zh-HK.yml @@ -0,0 +1,27 @@ +--- +zh: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-TW.yml b/config/locales-glitch/simple_form.zh-TW.yml new file mode 100644 index 0000000000..ce84b7ee62 --- /dev/null +++ b/config/locales-glitch/simple_form.zh-TW.yml @@ -0,0 +1,27 @@ +--- +zh-TW: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: You can have up to %{count} items displayed as a table on your profile + setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) + setting_default_language: The language of your toots can be detected automatically, but it's not always accurate + setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. + setting_skin: Reskins the selected Mastodon flavour + labels: + defaults: + setting_default_content_type: Default format for toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Plain text + setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) + setting_hide_followers_count: Hide your followers count + setting_skin: Skin + setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) + notification_emails: + trending_link: New trending link requires review + trending_status: New trending post requires review + trending_tag: New trending tag requires review diff --git a/config/locales-glitch/sk.yml b/config/locales-glitch/sk.yml new file mode 100644 index 0000000000..1b51513723 --- /dev/null +++ b/config/locales-glitch/sk.yml @@ -0,0 +1,38 @@ +--- +sk: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sl.yml b/config/locales-glitch/sl.yml new file mode 100644 index 0000000000..20f43c42c2 --- /dev/null +++ b/config/locales-glitch/sl.yml @@ -0,0 +1,38 @@ +--- +sl: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sq.yml b/config/locales-glitch/sq.yml new file mode 100644 index 0000000000..a361906bcb --- /dev/null +++ b/config/locales-glitch/sq.yml @@ -0,0 +1,38 @@ +--- +sq: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sr-Latn.yml b/config/locales-glitch/sr-Latn.yml new file mode 100644 index 0000000000..edcd89a195 --- /dev/null +++ b/config/locales-glitch/sr-Latn.yml @@ -0,0 +1,38 @@ +--- +sr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sr.yml b/config/locales-glitch/sr.yml new file mode 100644 index 0000000000..edcd89a195 --- /dev/null +++ b/config/locales-glitch/sr.yml @@ -0,0 +1,38 @@ +--- +sr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/sv.yml b/config/locales-glitch/sv.yml new file mode 100644 index 0000000000..31d646dcac --- /dev/null +++ b/config/locales-glitch/sv.yml @@ -0,0 +1,38 @@ +--- +sv: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ta.yml b/config/locales-glitch/ta.yml new file mode 100644 index 0000000000..668c46ba88 --- /dev/null +++ b/config/locales-glitch/ta.yml @@ -0,0 +1,38 @@ +--- +ta: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/te.yml b/config/locales-glitch/te.yml new file mode 100644 index 0000000000..95c11971f5 --- /dev/null +++ b/config/locales-glitch/te.yml @@ -0,0 +1,38 @@ +--- +te: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/th.yml b/config/locales-glitch/th.yml new file mode 100644 index 0000000000..bbf30457de --- /dev/null +++ b/config/locales-glitch/th.yml @@ -0,0 +1,38 @@ +--- +th: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/tr.yml b/config/locales-glitch/tr.yml new file mode 100644 index 0000000000..c374d1e130 --- /dev/null +++ b/config/locales-glitch/tr.yml @@ -0,0 +1,38 @@ +--- +tr: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/tt.yml b/config/locales-glitch/tt.yml new file mode 100644 index 0000000000..119e252728 --- /dev/null +++ b/config/locales-glitch/tt.yml @@ -0,0 +1,38 @@ +--- +tt: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ug.yml b/config/locales-glitch/ug.yml new file mode 100644 index 0000000000..4157effb9b --- /dev/null +++ b/config/locales-glitch/ug.yml @@ -0,0 +1,38 @@ +--- +ug: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/uk.yml b/config/locales-glitch/uk.yml new file mode 100644 index 0000000000..e28ccbc9e9 --- /dev/null +++ b/config/locales-glitch/uk.yml @@ -0,0 +1,38 @@ +--- +uk: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/ur.yml b/config/locales-glitch/ur.yml new file mode 100644 index 0000000000..465898cdbd --- /dev/null +++ b/config/locales-glitch/ur.yml @@ -0,0 +1,38 @@ +--- +ur: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/vi.yml b/config/locales-glitch/vi.yml new file mode 100644 index 0000000000..d8c3837980 --- /dev/null +++ b/config/locales-glitch/vi.yml @@ -0,0 +1,38 @@ +--- +vi: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/zh-CN.yml b/config/locales-glitch/zh-CN.yml index 40a09c1c9d..ff16d1743e 100644 --- a/config/locales-glitch/zh-CN.yml +++ b/config/locales-glitch/zh-CN.yml @@ -1,10 +1,21 @@ --- zh-CN: admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin hide_followers_count: desc_html: 不要在用户资料中显示关注者人数 title: 隐藏关注者人数 + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other outgoing_spoilers: desc_html: 在联邦化嘟文的时候,将这个内容警告添加到没有内容警告的嘟文中。如果你的服务器专用于其他服务器可能希望有内容警告的内容,它会很有用。媒体也将被标记为敏感。 title: 对外嘟文的内容警告 @@ -14,6 +25,13 @@ zh-CN: show_replies_in_public_timelines: desc_html: 除了公开的自我回复(线程模式),在本地和跨站时间轴中显示公开回复。 title: 在公共时间轴中显示回复 + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification generic: use_this: 使用这个 settings: diff --git a/config/locales-glitch/zh-HK.yml b/config/locales-glitch/zh-HK.yml new file mode 100644 index 0000000000..237a521fc3 --- /dev/null +++ b/config/locales-glitch/zh-HK.yml @@ -0,0 +1,38 @@ +--- +zh: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours diff --git a/config/locales-glitch/zh-TW.yml b/config/locales-glitch/zh-TW.yml new file mode 100644 index 0000000000..17c1f65ecb --- /dev/null +++ b/config/locales-glitch/zh-TW.yml @@ -0,0 +1,38 @@ +--- +zh-TW: + admin: + custom_emojis: + batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' + batch_error: 'An error occurred: %{message}' + settings: + captcha_enabled: + desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA + title: Require new users to solve a CAPTCHA to confirm their account + flavour_and_skin: + title: Flavour and skin + hide_followers_count: + desc_html: Do not show followers count on user profiles + title: Hide followers count + other: + preamble: Various glitch-soc settings not fitting in other categories. + title: Other + outgoing_spoilers: + desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. + title: Content warning for outgoing toots + show_reblogs_in_public_timelines: + desc_html: Show public boosts of public toots in local and public timelines. + title: Show boosts in public timelines + show_replies_in_public_timelines: + desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. + title: Show replies in public timelines + trending_status_cw: + desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. + title: Allow posts with Content Warnings to trend + auth: + captcha_confirmation: + hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. + title: User verification + generic: + use_this: Use this + settings: + flavours: Flavours From 22d9306edc2be8e38a7264b6f3eae04006d44c09 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 21 Dec 2022 23:49:08 +0100 Subject: [PATCH 0074/1220] Add links to glitch-soc's Crowdin (#2033) * Add link to glitch-soc's crowdin in app settings * Add mention of translations to CONTRIBUTING.md --- CONTRIBUTING.md | 6 ++++++ app/views/settings/preferences/appearance/show.html.haml | 2 ++ config/locales-glitch/en.yml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 049cd4e29b..ed670f5a6a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,6 +6,12 @@ Here are some guidelines, and ways you can help. > (This document is a bit of a work-in-progress, so please bear with us. > If you don't see what you're looking for here, please don't hesitate to reach out!) +## Translations + +You can submit glitch-soc-specific translations via [Crowdin](https://crowdin.com/project/glitch-soc). They are periodically merged into the codebase. + +[![Crowdin](https://badges.crowdin.net/glitch-soc/localized.svg)](https://crowdin.com/project/glitch-soc) + ## Planning ## Right now a lot of the planning for this project takes place in our development Discord, or through GitHub Issues and Projects. diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index a252289b0d..946cb845df 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -11,6 +11,8 @@ - unless I18n.locale == :en .flash-message.translation-prompt #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener")} + = link_to t('appearance.localization.glitch_guide_link'), target: '_blank', rel: 'noopener noreferrer' do + = t('appearance.localization.glitch_guide_link_text') %h4= t 'appearance.advanced_web_interface' diff --git a/config/locales-glitch/en.yml b/config/locales-glitch/en.yml index 490069f208..e60a89e189 100644 --- a/config/locales-glitch/en.yml +++ b/config/locales-glitch/en.yml @@ -28,6 +28,10 @@ en: trending_status_cw: desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. title: Allow posts with Content Warnings to trend + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: And likewise for glitch-soc! auth: captcha_confirmation: hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. From e8448c496e5ba6c050a6786109ce93bef0f54b69 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Wed, 21 Dec 2022 23:57:39 +0100 Subject: [PATCH 0075/1220] Re-include translations after locales change --- app/javascript/flavours/glitch/locales/de.json | 4 ++++ app/javascript/flavours/glitch/locales/en.json | 4 ++++ app/javascript/flavours/glitch/locales/fr.json | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index 807ed82077..d88619ce74 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -76,6 +76,8 @@ "notification_purge.btn_invert": "Invert\nselection", "notification_purge.btn_none": "Select\nnone", "notification_purge.start": "Enter notification cleaning mode", + "notification.reaction": "{name} hat auf deinen Beitrag reagiert", + "notifications.column_settings.reaction": "Reaktionen:", "notifications.marked_clear": "Clear selected notifications", "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", "onboarding.done": "Done", @@ -186,8 +188,10 @@ "status.in_reply_to": "This toot is a reply", "status.is_poll": "This toot is a poll", "status.local_only": "Only visible from your instance", + "status.react": "Reagieren", "status.sensitive_toggle": "Click to view", "status.uncollapse": "Uncollapse", + "tooltips.reactions": "Reaktionen", "web_app_crash.change_your_settings": "Change your {settings}", "web_app_crash.content": "You could try any of the following:", "web_app_crash.debug_info": "Debug information", diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json index eb99fc64d4..76e0adac94 100644 --- a/app/javascript/flavours/glitch/locales/en.json +++ b/app/javascript/flavours/glitch/locales/en.json @@ -76,6 +76,8 @@ "notification_purge.btn_invert": "Invert\nselection", "notification_purge.btn_none": "Select\nnone", "notification_purge.start": "Enter notification cleaning mode", + "notification.reaction": "{name} reacted to your post", + "notifications.column_settings.reaction": "Reactions:", "notifications.marked_clear": "Clear selected notifications", "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", "onboarding.done": "Done", @@ -186,8 +188,10 @@ "status.in_reply_to": "This toot is a reply", "status.is_poll": "This toot is a poll", "status.local_only": "Only visible from your instance", + "status.react": "React", "status.sensitive_toggle": "Click to view", "status.uncollapse": "Uncollapse", + "tooltips.reactions": "Reactions", "web_app_crash.change_your_settings": "Change your {settings}", "web_app_crash.content": "You could try any of the following:", "web_app_crash.debug_info": "Debug information", diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json index b53b36e979..84c533f6c0 100644 --- a/app/javascript/flavours/glitch/locales/fr.json +++ b/app/javascript/flavours/glitch/locales/fr.json @@ -71,11 +71,13 @@ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "Misc", "notification.markForDeletion": "Mark for deletion", + "notification.reaction": "{name} a réagi·e à votre message", "notification_purge.btn_all": "Select\nall", "notification_purge.btn_apply": "Clear\nselected", "notification_purge.btn_invert": "Invert\nselection", "notification_purge.btn_none": "Select\nnone", "notification_purge.start": "Enter notification cleaning mode", + "notifications.column_settings.reaction": "Réactions:", "notifications.marked_clear": "Clear selected notifications", "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", "onboarding.done": "Done", @@ -186,8 +188,10 @@ "status.in_reply_to": "This toot is a reply", "status.is_poll": "This toot is a poll", "status.local_only": "Only visible from your instance", + "status.react": "Réagir", "status.sensitive_toggle": "Click to view", "status.uncollapse": "Uncollapse", + "tooltips.reactions": "Réactions", "web_app_crash.change_your_settings": "Change your {settings}", "web_app_crash.content": "You could try any of the following:", "web_app_crash.debug_info": "Debug information", From deb804c954d78c37142fc38f65e95a4cb227d7ac Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 22 Dec 2022 00:21:39 +0100 Subject: [PATCH 0076/1220] New Crowdin updates (#2034) * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Macedonian) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Punjabi) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.json (Marathi) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.json (English, United Kingdom) [ci skip] * New translations en.json (Burmese) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.json (Faroese) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Uyghur) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Tatar) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Latin) [ci skip] * New translations en.json (Bosnian) [ci skip] * New translations en.json (French, Quebec) [ci skip] * New translations en.json (Sinhala) [ci skip] * New translations en.json (Cornish) [ci skip] * New translations en.json (Kannada) [ci skip] * New translations en.json (Scottish Gaelic) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.json (Aragonese) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Kurmanji (Kurdish)) [ci skip] * New translations en.json (Sorani (Kurdish)) [ci skip] * New translations en.json (Scots) [ci skip] * New translations en.json (Igbo) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Sanskrit) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Afrikaans) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Belarusian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Frisian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Irish) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Macedonian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Punjabi) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Marathi) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.yml (English, United Kingdom) [ci skip] * New translations en.yml (Burmese) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Faroese) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Uyghur) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Tatar) [ci skip] * New translations en.yml (Malayalam) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.yml (Latin) [ci skip] * New translations en.yml (Bosnian) [ci skip] * New translations en.yml (French, Quebec) [ci skip] * New translations en.yml (Sinhala) [ci skip] * New translations en.yml (Cornish) [ci skip] * New translations en.yml (Kannada) [ci skip] * New translations en.yml (Scottish Gaelic) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Aragonese) [ci skip] * New translations en.yml (Occitan) [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 en.yml (Scots) [ci skip] * New translations en.yml (Igbo) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations en.yml (Sanskrit) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Afrikaans) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations simple_form.en.yml (Belarusian) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Frisian) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Irish) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Lithuanian) [ci skip] * New translations simple_form.en.yml (Macedonian) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Punjabi) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Urdu (Pakistan)) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Marathi) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Kazakh) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Hindi) [ci skip] * New translations simple_form.en.yml (Malay) [ci skip] * New translations simple_form.en.yml (Telugu) [ci skip] * New translations simple_form.en.yml (English, United Kingdom) [ci skip] * New translations simple_form.en.yml (Burmese) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Faroese) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Uyghur) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Tatar) [ci skip] * New translations simple_form.en.yml (Malayalam) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Latin) [ci skip] * New translations simple_form.en.yml (Bosnian) [ci skip] * New translations simple_form.en.yml (French, Quebec) [ci skip] * New translations simple_form.en.yml (Sinhala) [ci skip] * New translations simple_form.en.yml (Cornish) [ci skip] * New translations simple_form.en.yml (Kannada) [ci skip] * New translations simple_form.en.yml (Scottish Gaelic) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Aragonese) [ci skip] * New translations simple_form.en.yml (Occitan) [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 simple_form.en.yml (Scots) [ci skip] * New translations simple_form.en.yml (Igbo) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations simple_form.en.yml (Sanskrit) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (Ido) [ci skip] --- .../flavours/glitch/locales/af.json | 197 +---------------- .../flavours/glitch/locales/an.json | 202 +----------------- .../flavours/glitch/locales/ar.json | 197 +---------------- .../flavours/glitch/locales/ast.json | 197 +---------------- .../flavours/glitch/locales/be.json | 202 +----------------- .../flavours/glitch/locales/bg.json | 197 +---------------- .../flavours/glitch/locales/bn.json | 197 +---------------- .../flavours/glitch/locales/br.json | 197 +---------------- .../flavours/glitch/locales/bs.json | 202 +----------------- .../flavours/glitch/locales/ca.json | 197 +---------------- .../flavours/glitch/locales/ckb.json | 197 +---------------- .../flavours/glitch/locales/co.json | 197 +---------------- .../flavours/glitch/locales/cs.json | 50 +---- .../flavours/glitch/locales/cy.json | 197 +---------------- .../flavours/glitch/locales/da.json | 197 +---------------- .../flavours/glitch/locales/de.json | 197 +---------------- .../flavours/glitch/locales/el.json | 197 +---------------- .../flavours/glitch/locales/en-GB.json | 202 +----------------- .../flavours/glitch/locales/eo.json | 197 +---------------- .../flavours/glitch/locales/es-AR.json | 107 +--------- .../flavours/glitch/locales/es-MX.json | 107 +--------- .../flavours/glitch/locales/es.json | 107 +--------- .../flavours/glitch/locales/et.json | 197 +---------------- .../flavours/glitch/locales/eu.json | 197 +---------------- .../flavours/glitch/locales/fa.json | 197 +---------------- .../flavours/glitch/locales/fi.json | 197 +---------------- .../flavours/glitch/locales/fo.json | 202 +----------------- .../flavours/glitch/locales/fr-QC.json | 197 +---------------- .../flavours/glitch/locales/fr.json | 197 +---------------- .../flavours/glitch/locales/fy.json | 202 +----------------- .../flavours/glitch/locales/ga.json | 197 +---------------- .../flavours/glitch/locales/gd.json | 197 +---------------- .../flavours/glitch/locales/gl.json | 197 +---------------- .../flavours/glitch/locales/he.json | 197 +---------------- .../flavours/glitch/locales/hi.json | 197 +---------------- .../flavours/glitch/locales/hr.json | 197 +---------------- .../flavours/glitch/locales/hu.json | 197 +---------------- .../flavours/glitch/locales/hy.json | 197 +---------------- .../flavours/glitch/locales/id.json | 197 +---------------- .../flavours/glitch/locales/ig.json | 202 +----------------- .../flavours/glitch/locales/io.json | 197 +---------------- .../flavours/glitch/locales/is.json | 197 +---------------- .../flavours/glitch/locales/it.json | 197 +---------------- .../flavours/glitch/locales/ja.json | 78 +------ .../flavours/glitch/locales/ka.json | 197 +---------------- .../flavours/glitch/locales/kab.json | 197 +---------------- .../flavours/glitch/locales/kk.json | 197 +---------------- .../flavours/glitch/locales/kn.json | 197 +---------------- .../flavours/glitch/locales/ko.json | 15 -- .../flavours/glitch/locales/ku.json | 197 +---------------- .../flavours/glitch/locales/kw.json | 197 +---------------- .../flavours/glitch/locales/la.json | 202 +----------------- .../flavours/glitch/locales/lt.json | 197 +---------------- .../flavours/glitch/locales/lv.json | 197 +---------------- .../flavours/glitch/locales/mk.json | 197 +---------------- .../flavours/glitch/locales/ml.json | 197 +---------------- .../flavours/glitch/locales/mr.json | 197 +---------------- .../flavours/glitch/locales/ms.json | 197 +---------------- .../flavours/glitch/locales/my.json | 202 +----------------- .../flavours/glitch/locales/nl.json | 197 +---------------- .../flavours/glitch/locales/nn.json | 197 +---------------- .../flavours/glitch/locales/no.json | 197 +---------------- .../flavours/glitch/locales/oc.json | 197 +---------------- .../flavours/glitch/locales/pa.json | 197 +---------------- .../flavours/glitch/locales/pl.json | 148 +------------ .../flavours/glitch/locales/pt-BR.json | 197 +---------------- .../flavours/glitch/locales/pt-PT.json | 197 +---------------- .../flavours/glitch/locales/ro.json | 197 +---------------- .../flavours/glitch/locales/ru.json | 197 +---------------- .../flavours/glitch/locales/sa.json | 197 +---------------- .../flavours/glitch/locales/sc.json | 197 +---------------- .../flavours/glitch/locales/sco.json | 202 +----------------- .../flavours/glitch/locales/si.json | 197 +---------------- .../flavours/glitch/locales/sk.json | 197 +---------------- .../flavours/glitch/locales/sl.json | 197 +---------------- .../flavours/glitch/locales/sq.json | 197 +---------------- .../flavours/glitch/locales/sr-Latn.json | 197 +---------------- .../flavours/glitch/locales/sr.json | 197 +---------------- .../flavours/glitch/locales/sv.json | 197 +---------------- .../flavours/glitch/locales/ta.json | 197 +---------------- .../flavours/glitch/locales/te.json | 197 +---------------- .../flavours/glitch/locales/th.json | 197 +---------------- .../flavours/glitch/locales/tr.json | 197 +---------------- .../flavours/glitch/locales/tt.json | 197 +---------------- .../flavours/glitch/locales/ug.json | 197 +---------------- .../flavours/glitch/locales/uk.json | 155 +------------- .../flavours/glitch/locales/ur.json | 197 +---------------- .../flavours/glitch/locales/vi.json | 197 +---------------- .../flavours/glitch/locales/zh-CN.json | 24 --- .../flavours/glitch/locales/zh-HK.json | 197 +---------------- .../flavours/glitch/locales/zh-TW.json | 197 +---------------- config/locales-glitch/af.yml | 37 ---- config/locales-glitch/an.yml | 37 ---- config/locales-glitch/ar.yml | 37 ---- config/locales-glitch/ast.yml | 37 ---- config/locales-glitch/be.yml | 37 ---- config/locales-glitch/bg.yml | 37 ---- config/locales-glitch/bn.yml | 37 ---- config/locales-glitch/br.yml | 37 ---- config/locales-glitch/bs.yml | 37 ---- config/locales-glitch/ca.yml | 37 ---- config/locales-glitch/ckb.yml | 37 ---- config/locales-glitch/co.yml | 37 ---- config/locales-glitch/cy.yml | 37 ---- config/locales-glitch/da.yml | 37 ---- config/locales-glitch/de.yml | 37 ---- config/locales-glitch/el.yml | 37 ---- config/locales-glitch/en-GB.yml | 37 ---- config/locales-glitch/eo.yml | 37 ---- config/locales-glitch/es-AR.yml | 18 -- config/locales-glitch/es-MX.yml | 18 -- config/locales-glitch/es.yml | 18 -- config/locales-glitch/et.yml | 37 ---- config/locales-glitch/eu.yml | 37 ---- config/locales-glitch/fa.yml | 37 ---- config/locales-glitch/fi.yml | 37 ---- config/locales-glitch/fo.yml | 37 ---- config/locales-glitch/fr-QC.yml | 39 +--- config/locales-glitch/fr.yml | 39 +--- config/locales-glitch/fy.yml | 37 ---- config/locales-glitch/ga.yml | 37 ---- config/locales-glitch/gd.yml | 37 ---- config/locales-glitch/gl.yml | 37 ---- config/locales-glitch/he.yml | 37 ---- config/locales-glitch/hi.yml | 37 ---- config/locales-glitch/hr.yml | 37 ---- config/locales-glitch/hu.yml | 37 ---- config/locales-glitch/hy.yml | 37 ---- config/locales-glitch/id.yml | 37 ---- config/locales-glitch/ig.yml | 37 ---- config/locales-glitch/io.yml | 37 ---- config/locales-glitch/is.yml | 37 ---- config/locales-glitch/it.yml | 37 ---- config/locales-glitch/ja.yml | 18 -- config/locales-glitch/ka.yml | 37 ---- config/locales-glitch/kab.yml | 37 ---- config/locales-glitch/kk.yml | 37 ---- config/locales-glitch/kn.yml | 37 ---- config/locales-glitch/ko.yml | 8 - config/locales-glitch/ku.yml | 37 ---- config/locales-glitch/kw.yml | 37 ---- config/locales-glitch/la.yml | 37 ---- config/locales-glitch/lt.yml | 37 ---- config/locales-glitch/lv.yml | 37 ---- config/locales-glitch/mk.yml | 37 ---- config/locales-glitch/ml.yml | 37 ---- config/locales-glitch/mr.yml | 37 ---- config/locales-glitch/ms.yml | 37 ---- config/locales-glitch/my.yml | 37 ---- config/locales-glitch/nl.yml | 37 ---- config/locales-glitch/nn.yml | 37 ---- config/locales-glitch/no.yml | 39 +--- config/locales-glitch/oc.yml | 37 ---- config/locales-glitch/pa.yml | 37 ---- config/locales-glitch/pl.yml | 32 --- config/locales-glitch/pt-BR.yml | 37 ---- config/locales-glitch/pt-PT.yml | 37 ---- config/locales-glitch/ro.yml | 37 ---- config/locales-glitch/ru.yml | 37 ---- config/locales-glitch/sa.yml | 37 ---- config/locales-glitch/sc.yml | 37 ---- config/locales-glitch/sco.yml | 37 ---- config/locales-glitch/si.yml | 37 ---- config/locales-glitch/simple_form.af.yml | 26 --- config/locales-glitch/simple_form.an.yml | 26 --- config/locales-glitch/simple_form.ar.yml | 26 --- config/locales-glitch/simple_form.ast.yml | 26 --- config/locales-glitch/simple_form.be.yml | 26 --- config/locales-glitch/simple_form.bg.yml | 26 --- config/locales-glitch/simple_form.bn.yml | 26 --- config/locales-glitch/simple_form.br.yml | 26 --- config/locales-glitch/simple_form.bs.yml | 26 --- config/locales-glitch/simple_form.ca.yml | 26 --- config/locales-glitch/simple_form.ckb.yml | 26 --- config/locales-glitch/simple_form.co.yml | 26 --- config/locales-glitch/simple_form.cs.yml | 3 - config/locales-glitch/simple_form.cy.yml | 26 --- config/locales-glitch/simple_form.da.yml | 26 --- config/locales-glitch/simple_form.de.yml | 26 --- config/locales-glitch/simple_form.el.yml | 26 --- config/locales-glitch/simple_form.en-GB.yml | 26 --- config/locales-glitch/simple_form.eo.yml | 26 --- config/locales-glitch/simple_form.es-AR.yml | 9 - config/locales-glitch/simple_form.es-MX.yml | 9 - config/locales-glitch/simple_form.es.yml | 9 - config/locales-glitch/simple_form.et.yml | 26 --- config/locales-glitch/simple_form.eu.yml | 26 --- config/locales-glitch/simple_form.fa.yml | 26 --- config/locales-glitch/simple_form.fi.yml | 26 --- config/locales-glitch/simple_form.fo.yml | 26 --- config/locales-glitch/simple_form.fr-QC.yml | 26 --- config/locales-glitch/simple_form.fr.yml | 26 --- config/locales-glitch/simple_form.fy.yml | 26 --- config/locales-glitch/simple_form.ga.yml | 26 --- config/locales-glitch/simple_form.gd.yml | 26 --- config/locales-glitch/simple_form.gl.yml | 26 --- config/locales-glitch/simple_form.he.yml | 26 --- config/locales-glitch/simple_form.hi.yml | 26 --- config/locales-glitch/simple_form.hr.yml | 26 --- config/locales-glitch/simple_form.hu.yml | 26 --- config/locales-glitch/simple_form.hy.yml | 26 --- config/locales-glitch/simple_form.id.yml | 26 --- config/locales-glitch/simple_form.ig.yml | 26 --- config/locales-glitch/simple_form.io.yml | 26 --- config/locales-glitch/simple_form.is.yml | 26 --- config/locales-glitch/simple_form.it.yml | 26 --- config/locales-glitch/simple_form.ja.yml | 8 - config/locales-glitch/simple_form.ka.yml | 26 --- config/locales-glitch/simple_form.kab.yml | 26 --- config/locales-glitch/simple_form.kk.yml | 26 --- config/locales-glitch/simple_form.kn.yml | 26 --- config/locales-glitch/simple_form.ko.yml | 4 - config/locales-glitch/simple_form.ku.yml | 26 --- config/locales-glitch/simple_form.kw.yml | 26 --- config/locales-glitch/simple_form.la.yml | 26 --- config/locales-glitch/simple_form.lt.yml | 26 --- config/locales-glitch/simple_form.lv.yml | 26 --- config/locales-glitch/simple_form.mk.yml | 26 --- config/locales-glitch/simple_form.ml.yml | 26 --- config/locales-glitch/simple_form.mr.yml | 26 --- config/locales-glitch/simple_form.ms.yml | 26 --- config/locales-glitch/simple_form.my.yml | 26 --- config/locales-glitch/simple_form.nl.yml | 26 --- config/locales-glitch/simple_form.nn.yml | 26 --- config/locales-glitch/simple_form.no.yml | 28 +-- config/locales-glitch/simple_form.oc.yml | 26 --- config/locales-glitch/simple_form.pa.yml | 26 --- config/locales-glitch/simple_form.pl.yml | 17 -- config/locales-glitch/simple_form.pt-BR.yml | 26 --- config/locales-glitch/simple_form.pt-PT.yml | 26 --- config/locales-glitch/simple_form.ro.yml | 26 --- config/locales-glitch/simple_form.ru.yml | 26 --- config/locales-glitch/simple_form.sa.yml | 26 --- config/locales-glitch/simple_form.sc.yml | 26 --- config/locales-glitch/simple_form.sco.yml | 26 --- config/locales-glitch/simple_form.si.yml | 26 --- config/locales-glitch/simple_form.sk.yml | 26 --- config/locales-glitch/simple_form.sl.yml | 26 --- config/locales-glitch/simple_form.sq.yml | 26 --- config/locales-glitch/simple_form.sr-Latn.yml | 26 --- config/locales-glitch/simple_form.sr.yml | 26 --- config/locales-glitch/simple_form.sv.yml | 26 --- config/locales-glitch/simple_form.ta.yml | 26 --- config/locales-glitch/simple_form.te.yml | 26 --- config/locales-glitch/simple_form.th.yml | 26 --- config/locales-glitch/simple_form.tr.yml | 26 --- config/locales-glitch/simple_form.tt.yml | 26 --- config/locales-glitch/simple_form.ug.yml | 26 --- config/locales-glitch/simple_form.uk.yml | 26 --- config/locales-glitch/simple_form.ur.yml | 26 --- config/locales-glitch/simple_form.vi.yml | 26 --- config/locales-glitch/simple_form.zh-CN.yml | 9 - config/locales-glitch/simple_form.zh-HK.yml | 26 --- config/locales-glitch/simple_form.zh-TW.yml | 26 --- config/locales-glitch/sk.yml | 37 ---- config/locales-glitch/sl.yml | 37 ---- config/locales-glitch/sq.yml | 37 ---- config/locales-glitch/sr-Latn.yml | 37 ---- config/locales-glitch/sr.yml | 37 ---- config/locales-glitch/sv.yml | 37 ---- config/locales-glitch/ta.yml | 37 ---- config/locales-glitch/te.yml | 37 ---- config/locales-glitch/th.yml | 37 ---- config/locales-glitch/tr.yml | 37 ---- config/locales-glitch/tt.yml | 37 ---- config/locales-glitch/ug.yml | 37 ---- config/locales-glitch/uk.yml | 37 ---- config/locales-glitch/ur.yml | 37 ---- config/locales-glitch/vi.yml | 37 ---- config/locales-glitch/zh-CN.yml | 18 -- config/locales-glitch/zh-HK.yml | 37 ---- config/locales-glitch/zh-TW.yml | 37 ---- 272 files changed, 105 insertions(+), 22325 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/af.json b/app/javascript/flavours/glitch/locales/af.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/af.json +++ b/app/javascript/flavours/glitch/locales/af.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/an.json b/app/javascript/flavours/glitch/locales/an.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/an.json +++ b/app/javascript/flavours/glitch/locales/an.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/ar.json b/app/javascript/flavours/glitch/locales/ar.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ar.json +++ b/app/javascript/flavours/glitch/locales/ar.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ast.json b/app/javascript/flavours/glitch/locales/ast.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ast.json +++ b/app/javascript/flavours/glitch/locales/ast.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/be.json b/app/javascript/flavours/glitch/locales/be.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/be.json +++ b/app/javascript/flavours/glitch/locales/be.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/bg.json b/app/javascript/flavours/glitch/locales/bg.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/bg.json +++ b/app/javascript/flavours/glitch/locales/bg.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/bn.json b/app/javascript/flavours/glitch/locales/bn.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/bn.json +++ b/app/javascript/flavours/glitch/locales/bn.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/br.json b/app/javascript/flavours/glitch/locales/br.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/br.json +++ b/app/javascript/flavours/glitch/locales/br.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/bs.json b/app/javascript/flavours/glitch/locales/bs.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/bs.json +++ b/app/javascript/flavours/glitch/locales/bs.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/ca.json b/app/javascript/flavours/glitch/locales/ca.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ca.json +++ b/app/javascript/flavours/glitch/locales/ca.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ckb.json b/app/javascript/flavours/glitch/locales/ckb.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ckb.json +++ b/app/javascript/flavours/glitch/locales/ckb.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/co.json b/app/javascript/flavours/glitch/locales/co.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/co.json +++ b/app/javascript/flavours/glitch/locales/co.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/cs.json b/app/javascript/flavours/glitch/locales/cs.json index 1283f4bdd9..09ad531400 100644 --- a/app/javascript/flavours/glitch/locales/cs.json +++ b/app/javascript/flavours/glitch/locales/cs.json @@ -1,15 +1,5 @@ { "about.fork_disclaimer": "Glitch-soc je svobodný software s otevřeným zdrojovým kódem založený na Mastodonu.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", "advanced_options.icon_title": "Pokročilá nastavení", "advanced_options.local-only.long": "Neposílat na jiné servery", "advanced_options.local-only.short": "Lokální příspěvek", @@ -18,33 +8,15 @@ "advanced_options.threaded_mode.short": "Režim vlákna", "advanced_options.threaded_mode.tooltip": "Režim vlákna je zapnutý", "boost_modal.missing_description": "Příspěvek obsahuje obrázky bez popisků", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", "column.subheading": "Různé", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Připojit...", "compose.attach.doodle": "Něco namalovat", "compose.attach.upload": "Nahrát soubor", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", "compose.content-type.plain": "Prostý text", "compose_form.poll.multiple_choices": "Povolit více odpovědí", "compose_form.poll.single_choice": "Povolit jednu odpověď", "compose_form.spoiler": "Přidat varování o obsahu", "confirmation_modal.do_not_ask_again": "Příště se už neptat", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", "content-type.change": "Formát příspěvku", "direct.group_by_conversations": "Seskupit do konverzací", "endorsed_accounts_editor.endorsed_accounts": "Vybrané účty", @@ -53,18 +25,14 @@ "home.column_settings.advanced": "Pokročilé", "home.column_settings.filter_regex": "Filtrovat podle regulárních výrazů", "home.column_settings.show_direct": "Zobrazit přímé zprávy", - "home.settings": "Column settings", "keyboard_shortcuts.bookmark": "Přidat do záložek", "keyboard_shortcuts.secondary_toot": "Odeslat příspěvek s druhotným nastavením soukromí", "keyboard_shortcuts.toggle_collapse": "Sbalit/rozbalit příspěvek", "layout.auto": "Automatické", - "layout.desktop": "Desktop", "layout.hint.auto": "Vybrat rozložení automaticky v závislosti na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", "layout.hint.desktop": "Použít vícesloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", "layout.hint.single": "Použít jednosloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.", - "layout.single": "Mobile", "media_gallery.sensitive": "Citlivý obsah", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Nastavení aplikace", "navigation_bar.featured_users": "Vybraní uživatelé", "navigation_bar.info": "Rozšířené informace", @@ -86,13 +54,10 @@ "onboarding.page_one.federation": "{domain} je 'instance' Mastodonu. Mastodon je síť nezávislých serverů, které jsou spolu propojené do jedné velké sociální sítě. Těmto serverům říkáme instance.", "onboarding.page_one.handle": "Jste na instanci {domain}, takže celá adresa vašeho profilu je {handle}", "onboarding.page_one.welcome": "Vítá vás {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Skoro hotovo...", "onboarding.page_six.appetoot": "Veselé mastodonění!", "onboarding.page_six.apps_available": "Jsou dostupné {apps} pro iOS, Android i jiné platformy.", "onboarding.page_six.github": "Na serveru {domain} běží Glitchsoc. Glitchsoc je přátelský {fork} programu {Mastodon}, a je kompatibilní s jakoukoliv jinou mastodoní instancí nebo aplikací. Glitchsoc je zcela svobodný a má otevřený zdrojový kód. Na stránce {github} můžete hlásit chyby, žádat o nové funkce, nebo ke kódu vlastnoručně přispět.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", "onboarding.page_six.various_app": "mobilní aplikace", "onboarding.page_three.profile": "Upravte si svůj profil a nastavte si profilový obrázek, jméno, a krátký text o sobě. Naleznete tam i další možnosti nastavení.", "onboarding.page_three.search": "Pomocí vyhledávací lišty můžete hledat lidi nebo hashtagy. Pokud hledáte někoho z jiné instance, musíte použít celou adresu jeho profilu.", @@ -124,7 +89,6 @@ "settings.enable_collapsed": "Povolit sbalené příspěvky", "settings.enable_collapsed_hint": "U sbalených příspěvků je část jejich obsahu skrytá, aby zabraly méně místa na obrazovce. (Tohle není stejná funkce jako varování o obsahu.)", "settings.enable_content_warnings_auto_unfold": "Vždy rozbalit příspěvky označené varováním o obsahu", - "settings.filters": "Filters", "settings.general": "Obecné", "settings.hicolor_privacy_icons": "Barevné ikony soukromí", "settings.hicolor_privacy_icons.hint": "Zobrazit ikony úrovně soukromí příspěvků v jasných, snadno rozlišitelných barvách", @@ -173,7 +137,6 @@ "settings.status_icons_media": "Indikace obrázků a anket", "settings.status_icons_reply": "Indikace odpovědi", "settings.status_icons_visibility": "Indikace úrovně soukromí", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", "settings.tag_misleading_links": "Označit zavádějící odkazy", "settings.tag_misleading_links.hint": "Zobrazit skutečný cíl u každého odkazu, který ho explicitně nezmiňuje", "settings.wide_view": "Široké sloupce (pouze v režimu Desktop)", @@ -186,16 +149,5 @@ "status.in_reply_to": "Tento příspěvek je odpověď", "status.is_poll": "Tento příspěvek je anketa", "status.local_only": "Viditelné pouze z vaší instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Rozbalit", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Rozbalit" } diff --git a/app/javascript/flavours/glitch/locales/cy.json b/app/javascript/flavours/glitch/locales/cy.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/cy.json +++ b/app/javascript/flavours/glitch/locales/cy.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/da.json b/app/javascript/flavours/glitch/locales/da.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/da.json +++ b/app/javascript/flavours/glitch/locales/da.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/el.json b/app/javascript/flavours/glitch/locales/el.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/el.json +++ b/app/javascript/flavours/glitch/locales/el.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/en-GB.json b/app/javascript/flavours/glitch/locales/en-GB.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/en-GB.json +++ b/app/javascript/flavours/glitch/locales/en-GB.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/eo.json b/app/javascript/flavours/glitch/locales/eo.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/eo.json +++ b/app/javascript/flavours/glitch/locales/eo.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/es-AR.json b/app/javascript/flavours/glitch/locales/es-AR.json index 2c6794fbf0..652ed3ab4b 100644 --- a/app/javascript/flavours/glitch/locales/es-AR.json +++ b/app/javascript/flavours/glitch/locales/es-AR.json @@ -1,15 +1,4 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", "advanced_options.icon_title": "Opciones avanzadas", "advanced_options.local-only.long": "No publicar a otras instancias", "advanced_options.local-only.short": "Local", @@ -17,87 +6,33 @@ "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", "advanced_options.threaded_mode.short": "Modo hilo", "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Adjuntar...", "compose.attach.doodle": "Dibujar algo", "compose.attach.upload": "Subir un archivo", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", "confirmations.unfilter.author": "Publicado por", "confirmations.unfilter.confirm": "Mostrar", "confirmations.unfilter.edit_filter": "Editar filtro", "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", "getting_started.onboarding": "Paseo inicial", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", "home.column_settings.show_direct": "Mostrar mensajes directos", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", "layout.auto": "Automático", "layout.desktop": "Escritorio", "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", - "layout.single": "Mobile", "media_gallery.sensitive": "Sensible", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Ajustes de aplicación", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", "notification.markForDeletion": "Marcar para borrar", "notification_purge.btn_all": "Seleccionar\ntodo", "notification_purge.btn_apply": "Borrar\nselección", "notification_purge.btn_invert": "Invertir\nselección", "notification_purge.btn_none": "Seleccionar\nnada", - "notification_purge.start": "Enter notification cleaning mode", "notifications.marked_clear": "Limpiar notificaciones seleccionadas", "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", "settings.auto_collapse": "Colapsar automáticamente", "settings.auto_collapse_all": "Todo", @@ -115,22 +50,12 @@ "settings.content_warnings": "Content warnings", "settings.content_warnings.regexp": "Regexp (expresión regular)", "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "Habilitar toots colapsados", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", "settings.filters": "Filtros", - "settings.general": "General", "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", "settings.image_backgrounds": "Fondos de imágenes", "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", "settings.inline_preview_cards": "Vista previa para enlaces externos", "settings.layout": "Diseño", @@ -145,10 +70,6 @@ "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", "settings.notifications_opts": "Opciones de notificaciones", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", "settings.preferences": "Preferences", "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", @@ -157,7 +78,6 @@ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", "settings.rewrite_mentions_no": "No reescribir menciones", "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", @@ -167,35 +87,10 @@ "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", "settings.tag_misleading_links": "Marcar enlaces engañosos", "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", "settings.wide_view": "Vista amplia (solo modo de escritorio)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "Colapsar", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Descolapsar", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Descolapsar" } diff --git a/app/javascript/flavours/glitch/locales/es-MX.json b/app/javascript/flavours/glitch/locales/es-MX.json index 2c6794fbf0..652ed3ab4b 100644 --- a/app/javascript/flavours/glitch/locales/es-MX.json +++ b/app/javascript/flavours/glitch/locales/es-MX.json @@ -1,15 +1,4 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", "advanced_options.icon_title": "Opciones avanzadas", "advanced_options.local-only.long": "No publicar a otras instancias", "advanced_options.local-only.short": "Local", @@ -17,87 +6,33 @@ "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", "advanced_options.threaded_mode.short": "Modo hilo", "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Adjuntar...", "compose.attach.doodle": "Dibujar algo", "compose.attach.upload": "Subir un archivo", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", "confirmations.unfilter.author": "Publicado por", "confirmations.unfilter.confirm": "Mostrar", "confirmations.unfilter.edit_filter": "Editar filtro", "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", "getting_started.onboarding": "Paseo inicial", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", "home.column_settings.show_direct": "Mostrar mensajes directos", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", "layout.auto": "Automático", "layout.desktop": "Escritorio", "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", - "layout.single": "Mobile", "media_gallery.sensitive": "Sensible", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Ajustes de aplicación", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", "notification.markForDeletion": "Marcar para borrar", "notification_purge.btn_all": "Seleccionar\ntodo", "notification_purge.btn_apply": "Borrar\nselección", "notification_purge.btn_invert": "Invertir\nselección", "notification_purge.btn_none": "Seleccionar\nnada", - "notification_purge.start": "Enter notification cleaning mode", "notifications.marked_clear": "Limpiar notificaciones seleccionadas", "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", "settings.auto_collapse": "Colapsar automáticamente", "settings.auto_collapse_all": "Todo", @@ -115,22 +50,12 @@ "settings.content_warnings": "Content warnings", "settings.content_warnings.regexp": "Regexp (expresión regular)", "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "Habilitar toots colapsados", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", "settings.filters": "Filtros", - "settings.general": "General", "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", "settings.image_backgrounds": "Fondos de imágenes", "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", "settings.inline_preview_cards": "Vista previa para enlaces externos", "settings.layout": "Diseño", @@ -145,10 +70,6 @@ "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", "settings.notifications_opts": "Opciones de notificaciones", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", "settings.preferences": "Preferences", "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", @@ -157,7 +78,6 @@ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", "settings.rewrite_mentions_no": "No reescribir menciones", "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", @@ -167,35 +87,10 @@ "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", "settings.tag_misleading_links": "Marcar enlaces engañosos", "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", "settings.wide_view": "Vista amplia (solo modo de escritorio)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "Colapsar", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Descolapsar", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Descolapsar" } diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json index d032c8d537..f0191dd647 100644 --- a/app/javascript/flavours/glitch/locales/es.json +++ b/app/javascript/flavours/glitch/locales/es.json @@ -1,15 +1,4 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", "advanced_options.icon_title": "Opciones avanzadas", "advanced_options.local-only.long": "No publicar a otras instancias", "advanced_options.local-only.short": "Local", @@ -17,87 +6,33 @@ "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", "advanced_options.threaded_mode.short": "Modo hilo", "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Adjuntar...", "compose.attach.doodle": "Dibujar algo", "compose.attach.upload": "Subir un archivo", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", "confirmations.unfilter.author": "Publicado por", "confirmations.unfilter.confirm": "Mostrar", "confirmations.unfilter.edit_filter": "Editar filtro", "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez", "getting_started.onboarding": "Paseo inicial", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", "home.column_settings.show_direct": "Mostrar mensajes directos", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", "layout.auto": "Automático", "layout.desktop": "Escritorio", "layout.hint.auto": "Seleccionar un diseño automáticamente basado en \"Habilitar interface web avanzada\" y tamaño de pantalla", "layout.hint.desktop": "Utiliza el diseño multi-columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", "layout.hint.single": "Utiliza el diseño de una columna sin importar \"Habilitar interface web avanzada\" o tamaño de pantalla", - "layout.single": "Mobile", "media_gallery.sensitive": "Sensible", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Ajustes de aplicación", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", "notification.markForDeletion": "Marcar para borrar", "notification_purge.btn_all": "Seleccionar\ntodo", "notification_purge.btn_apply": "Borrar\nselección", "notification_purge.btn_invert": "Invertir\nselección", "notification_purge.btn_none": "Seleccionar\nnada", - "notification_purge.start": "Enter notification cleaning mode", "notifications.marked_clear": "Limpiar notificaciones seleccionadas", "notifications.marked_clear_confirmation": "¿Deseas borrar permanentemente todas las notificaciones seleccionadas?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "onboarding.page_one.federation": "{domain} es una \"instancia\" de Mastodon. Mastodon es una red de servidores independientes que se unen para crear una red social más grande. A estos servidores los llamamos instancias.", - "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "¡Bienvenidx a {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "onboarding.page_six.github": "{domain} usa Glitchsoc. Glitchsoc es una bifurcación {fork} amigable de {Mastodon}, y es compatible con cualquier instancia o aplicación de Mastodon. Glitchsoc es completamente gratuito y de código abierto. Puedes reportar errores, solicitar funciones o contribuir al código en {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", "settings.auto_collapse": "Colapsar automáticamente", "settings.auto_collapse_all": "Todo", @@ -115,22 +50,12 @@ "settings.content_warnings": "Advertencias de contenido", "settings.content_warnings.regexp": "Regexp (expresión regular)", "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "Habilitar toots colapsados", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", "settings.filters": "Filtros", - "settings.general": "General", "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", "settings.image_backgrounds": "Fondos de imágenes", "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", "settings.inline_preview_cards": "Vista previa para enlaces externos", "settings.layout": "Diseño", @@ -145,10 +70,6 @@ "settings.notifications.tab_badge": "Marcador de notificaciones no leídas", "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el ícono de notificaciones cuando dicha columna no está abierta", "settings.notifications_opts": "Opciones de notificaciones", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", "settings.preferences": "Preferencias de usuarix", "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder", "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder", @@ -157,7 +78,6 @@ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", "settings.rewrite_mentions_no": "No reescribir menciones", "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", @@ -167,35 +87,10 @@ "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", "settings.tag_misleading_links": "Marcar enlaces engañosos", "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", "settings.wide_view": "Vista amplia (solo modo de escritorio)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "Colapsar", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Descolapsar", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Descolapsar" } diff --git a/app/javascript/flavours/glitch/locales/et.json b/app/javascript/flavours/glitch/locales/et.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/et.json +++ b/app/javascript/flavours/glitch/locales/et.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/eu.json b/app/javascript/flavours/glitch/locales/eu.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/eu.json +++ b/app/javascript/flavours/glitch/locales/eu.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/fa.json b/app/javascript/flavours/glitch/locales/fa.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/fa.json +++ b/app/javascript/flavours/glitch/locales/fa.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/fi.json b/app/javascript/flavours/glitch/locales/fi.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/fi.json +++ b/app/javascript/flavours/glitch/locales/fi.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/fo.json b/app/javascript/flavours/glitch/locales/fo.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/fo.json +++ b/app/javascript/flavours/glitch/locales/fo.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/fr-QC.json b/app/javascript/flavours/glitch/locales/fr-QC.json index b53b36e979..e67fcfebf5 100644 --- a/app/javascript/flavours/glitch/locales/fr-QC.json +++ b/app/javascript/flavours/glitch/locales/fr-QC.json @@ -1,201 +1,8 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.add_account_note": "Ajouter une note pour @{name}", "account.follows": "Abonnements", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json index b53b36e979..e67fcfebf5 100644 --- a/app/javascript/flavours/glitch/locales/fr.json +++ b/app/javascript/flavours/glitch/locales/fr.json @@ -1,201 +1,8 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", + "account.add_account_note": "Ajouter une note pour @{name}", "account.follows": "Abonnements", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/fy.json b/app/javascript/flavours/glitch/locales/fy.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/fy.json +++ b/app/javascript/flavours/glitch/locales/fy.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/ga.json b/app/javascript/flavours/glitch/locales/ga.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ga.json +++ b/app/javascript/flavours/glitch/locales/ga.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/gd.json b/app/javascript/flavours/glitch/locales/gd.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/gd.json +++ b/app/javascript/flavours/glitch/locales/gd.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/gl.json b/app/javascript/flavours/glitch/locales/gl.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/gl.json +++ b/app/javascript/flavours/glitch/locales/gl.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/he.json b/app/javascript/flavours/glitch/locales/he.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/he.json +++ b/app/javascript/flavours/glitch/locales/he.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/hi.json b/app/javascript/flavours/glitch/locales/hi.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/hi.json +++ b/app/javascript/flavours/glitch/locales/hi.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/hr.json b/app/javascript/flavours/glitch/locales/hr.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/hr.json +++ b/app/javascript/flavours/glitch/locales/hr.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/hu.json b/app/javascript/flavours/glitch/locales/hu.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/hu.json +++ b/app/javascript/flavours/glitch/locales/hu.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/hy.json b/app/javascript/flavours/glitch/locales/hy.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/hy.json +++ b/app/javascript/flavours/glitch/locales/hy.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/id.json b/app/javascript/flavours/glitch/locales/id.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/id.json +++ b/app/javascript/flavours/glitch/locales/id.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ig.json b/app/javascript/flavours/glitch/locales/ig.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/ig.json +++ b/app/javascript/flavours/glitch/locales/ig.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/io.json b/app/javascript/flavours/glitch/locales/io.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/io.json +++ b/app/javascript/flavours/glitch/locales/io.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/is.json b/app/javascript/flavours/glitch/locales/is.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/is.json +++ b/app/javascript/flavours/glitch/locales/is.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/it.json b/app/javascript/flavours/glitch/locales/it.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/it.json +++ b/app/javascript/flavours/glitch/locales/it.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ja.json b/app/javascript/flavours/glitch/locales/ja.json index e942e3646b..3f75177e11 100644 --- a/app/javascript/flavours/glitch/locales/ja.json +++ b/app/javascript/flavours/glitch/locales/ja.json @@ -1,9 +1,7 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", "account.add_account_note": "@{name}のメモを追加", "account.disclaimer_full": "このユーザー情報は不正確な可能性があります。", "account.follows": "フォロー", - "account.joined": "Joined {date}", "account.suspended_disclaimer_full": "このユーザーはモデレータにより停止されました。", "account.view_full_profile": "正確な情報を見る", "account_note.cancel": "キャンセル", @@ -18,26 +16,16 @@ "advanced_options.threaded_mode.short": "スレッドモード", "advanced_options.threaded_mode.tooltip": "スレッドモードを有効にする", "boost_modal.missing_description": "このトゥートには少なくとも1つの画像に説明が付与されていません", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", "community.column_settings.allow_local_only": "ローカル限定投稿を表示する", "compose.attach": "添付...", "compose.attach.doodle": "お絵描きをする", "compose.attach.upload": "ファイルをアップロード", - "compose.content-type.html": "HTML", "compose.content-type.markdown": "マークダウン", "compose.content-type.plain": "プレーンテキスト", "compose_form.poll.multiple_choices": "複数回答を許可", "compose_form.poll.single_choice": "単一回答を許可", "compose_form.spoiler": "本文は警告の後ろに隠す", "confirmation_modal.do_not_ask_again": "もう1度尋ねない", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", "confirmations.missing_media_description.confirm": "このまま投稿", "confirmations.missing_media_description.edit": "メディアを編集", "confirmations.missing_media_description.message": "少なくとも1つの画像に視覚障害者のための画像説明が付与されていません。すべての画像に対して説明を付与することを望みます。", @@ -46,58 +34,32 @@ "confirmations.unfilter.edit_filter": "フィルターを編集", "confirmations.unfilter.filters": "適用されたフィルター", "content-type.change": "コンテンツ形式を変更", - "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "紹介しているユーザー", "favourite_modal.combo": "次からは {combo} を押せば、これをスキップできます。", "getting_started.onboarding": "解説を表示", "home.column_settings.advanced": "高度", "home.column_settings.filter_regex": "正規表現でフィルター", "home.column_settings.show_direct": "DMを表示", - "home.settings": "Column settings", "keyboard_shortcuts.bookmark": "ブックマーク", "keyboard_shortcuts.secondary_toot": "セカンダリートゥートの公開範囲でトゥートする", "keyboard_shortcuts.toggle_collapse": "折りたたむ/折りたたみを解除", "layout.auto": "自動", "layout.desktop": "デスクトップ", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", "layout.single": "モバイル", - "media_gallery.sensitive": "Sensitive", "moved_to_warning": "このアカウント{moved_to_link}に引っ越したため、新しいフォロワーを受け入れていません。", "navigation_bar.app_settings": "アプリ設定", "navigation_bar.featured_users": "紹介しているアカウント", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "その他", "notification.markForDeletion": "選択", "notification_purge.btn_all": "すべて\n選択", "notification_purge.btn_apply": "選択したものを\n削除", "notification_purge.btn_invert": "選択を\n反転", "notification_purge.btn_none": "選択\n解除", - "notification_purge.start": "Enter notification cleaning mode", "notifications.marked_clear": "選択した通知を削除する", "notifications.marked_clear_confirmation": "削除した全ての通知を完全に削除してもよろしいですか?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "onboarding.page_one.federation": "{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。", - "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "{domain}へようこそ!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "onboarding.page_six.github": "{domain}はGlitchsocを使用しています。Glitchsocは{Mastodon}のフレンドリーな{fork}で、どんなMastodonアプリやインスタンスとも互換性があります。Glitchsocは完全に無料で、オープンソースです。{github}でバグ報告や機能要望あるいは貢獻をすることが可能です。", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", "settings.always_show_spoilers_field": "常にコンテンツワーニング設定を表示する(指定がない場合は通常投稿)", "settings.auto_collapse": "自動折りたたみ", "settings.auto_collapse_all": "すべて", @@ -115,14 +77,7 @@ "settings.content_warnings": "コンテンツワーニング", "settings.content_warnings.regexp": "正規表現", "settings.content_warnings_filter": "説明に指定した文字が含まれているものを自動で展開しないようにする", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "トゥート折りたたみを有効にする", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "コンテンツワーニング指定されている投稿を常に表示する", "settings.filters": "フィルター", "settings.general": "一般", @@ -130,7 +85,6 @@ "settings.hicolor_privacy_icons.hint": "公開範囲アイコンを明るく表示し見分けやすい色にします", "settings.image_backgrounds": "画像背景", "settings.image_backgrounds_media": "折りたまれたメディア付きトゥートをプレビュー", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "折りたまれたトゥートの背景を変更する", "settings.inline_preview_cards": "外部リンクに埋め込みプレビューを有効にする", "settings.layout": "レイアウト", @@ -138,12 +92,9 @@ "settings.media": "メディア", "settings.media_fullwidth": "全幅メディアプレビュー", "settings.media_letterbox": "メディアをレターボックス式で表示", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", "settings.media_reveal_behind_cw": "既定で警告指定されているトゥートの閲覧注意メディアを表示する", "settings.notifications.favicon_badge": "通知アイコンに未読件数を表示する", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", "settings.notifications.tab_badge": "未読の通知があるとき、通知アイコンにマークを表示する", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", "settings.notifications_opts": "通知の設定", "settings.pop_in_left": "左", "settings.pop_in_player": "ポップインプレイヤーを有効化する", @@ -152,12 +103,10 @@ "settings.preferences": "ユーザー設定", "settings.prepend_cw_re": "返信するとき警告に \"re: \"を付加する", "settings.preselect_on_reply": "返信するときユーザー名を事前選択する", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", "settings.rewrite_mentions": "表示されたトゥートの返信先表示を書き換える", "settings.rewrite_mentions_acct": "ユーザー名とドメイン名(アカウントがリモートの場合)を表示するように書き換える", "settings.rewrite_mentions_no": "書き換えない", "settings.rewrite_mentions_username": "ユーザー名を表示するように書き換える", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "アクションバーを表示", "settings.show_content_type_choice": "トゥートを書くときコンテンツ形式の選択ボタンを表示する", "settings.show_reply_counter": "投稿に対するリプライの数を表示する", @@ -167,35 +116,10 @@ "settings.side_arm_reply_mode.copy": "返信先の投稿範囲を利用する", "settings.side_arm_reply_mode.keep": "セカンダリートゥートボタンの設定を維持する", "settings.side_arm_reply_mode.restrict": "返信先の投稿範囲に制限する", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", "settings.swipe_to_change_columns": "スワイプでカラムを切り替え可能にする(モバイルのみ)", "settings.tag_misleading_links": "誤解を招くリンクにタグをつける", "settings.tag_misleading_links.hint": "明示的に言及していないすべてのリンクに、リンクターゲットホストを含む視覚的な表示を追加します", "settings.wide_view": "ワイドビュー(デスクトップ レイアウトのみ)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "折りたたむ", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "折りたたみを解除", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "折りたたみを解除" } diff --git a/app/javascript/flavours/glitch/locales/ka.json b/app/javascript/flavours/glitch/locales/ka.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ka.json +++ b/app/javascript/flavours/glitch/locales/ka.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/kab.json b/app/javascript/flavours/glitch/locales/kab.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/kab.json +++ b/app/javascript/flavours/glitch/locales/kab.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/kk.json b/app/javascript/flavours/glitch/locales/kk.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/kk.json +++ b/app/javascript/flavours/glitch/locales/kk.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/kn.json b/app/javascript/flavours/glitch/locales/kn.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/kn.json +++ b/app/javascript/flavours/glitch/locales/kn.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json index ef560c1e1b..c22dfb072b 100644 --- a/app/javascript/flavours/glitch/locales/ko.json +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -1,9 +1,7 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", "account.add_account_note": "@{name} 님에 대한 메모 추가", "account.disclaimer_full": "아래에 있는 정보들은 사용자의 프로필을 완벽하게 나타내지 못하고 있을 수도 있습니다.", "account.follows": "팔로우", - "account.joined": "Joined {date}", "account.suspended_disclaimer_full": "이 사용자는 중재자에 의해 정지되었습니다.", "account.view_full_profile": "전체 프로필 보기", "account_note.cancel": "취소", @@ -29,15 +27,12 @@ "compose.attach": "첨부…", "compose.attach.doodle": "뭔가 그려보세요", "compose.attach.upload": "파일 업로드", - "compose.content-type.html": "HTML", "compose.content-type.markdown": "마크다운", "compose.content-type.plain": "일반 텍스트", "compose_form.poll.multiple_choices": "여러 개 선택 가능", "compose_form.poll.single_choice": "하나만 선택 가능", "compose_form.spoiler": "경고 메시지로 숨기기", "confirmation_modal.do_not_ask_again": "다음부터 확인창을 띄우지 않기", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", "confirmations.missing_media_description.confirm": "그냥 보내기", "confirmations.missing_media_description.edit": "미디어 편집", "confirmations.missing_media_description.message": "하나 이상의 미디어에 대해 설명을 작성하지 않았습니다. 시각장애인을 위해 모든 미디어에 설명을 추가하는 것을 고려해주세요.", @@ -46,7 +41,6 @@ "confirmations.unfilter.edit_filter": "필터 편집", "confirmations.unfilter.filters": "적용된 {count, plural, one {필터} other {필터들}}", "content-type.change": "콘텐트 타입", - "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "추천하는 계정들", "favourite_modal.combo": "다음엔 {combo}를 눌러 건너뛸 수 있습니다", "getting_started.onboarding": "둘러보기", @@ -67,8 +61,6 @@ "moved_to_warning": "이 계정은 {moved_to_link}로 이동한 것으로 표시되었고, 새 팔로우를 받지 않는 것 같습니다.", "navigation_bar.app_settings": "앱 설정", "navigation_bar.featured_users": "추천된 계정들", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "다양한 옵션들", "notification.markForDeletion": "삭제하기 위해 표시", "notification_purge.btn_all": "전체선택", @@ -115,14 +107,8 @@ "settings.content_warnings": "열람주의", "settings.content_warnings.regexp": "정규표현식", "settings.content_warnings_filter": "자동으로 펼치지 않을 열람주의 문구:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", "settings.deprecated_setting": "이 설정은 마스토돈의 {settings_page_link}에서 관리됩니다", "settings.enable_collapsed": "접힌 글 활성화", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "자동으로 열람주의 펼치기", "settings.filters": "필터", "settings.general": "일반", @@ -130,7 +116,6 @@ "settings.hicolor_privacy_icons.hint": "공개설정 아이콘들을 밝고 구분하기 쉬운 색으로 표시합니다", "settings.image_backgrounds": "이미지 배경", "settings.image_backgrounds_media": "접힌 글의 미디어 미리보기", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "접힌 글에 이미지 배경 주기", "settings.inline_preview_cards": "외부 링크에 대한 미리보기 카드를 같이 표시", "settings.layout": "레이아웃:", diff --git a/app/javascript/flavours/glitch/locales/ku.json b/app/javascript/flavours/glitch/locales/ku.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ku.json +++ b/app/javascript/flavours/glitch/locales/ku.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/kw.json b/app/javascript/flavours/glitch/locales/kw.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/kw.json +++ b/app/javascript/flavours/glitch/locales/kw.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/la.json b/app/javascript/flavours/glitch/locales/la.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/la.json +++ b/app/javascript/flavours/glitch/locales/la.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/lt.json b/app/javascript/flavours/glitch/locales/lt.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/lt.json +++ b/app/javascript/flavours/glitch/locales/lt.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/lv.json b/app/javascript/flavours/glitch/locales/lv.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/lv.json +++ b/app/javascript/flavours/glitch/locales/lv.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/mk.json b/app/javascript/flavours/glitch/locales/mk.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/mk.json +++ b/app/javascript/flavours/glitch/locales/mk.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ml.json b/app/javascript/flavours/glitch/locales/ml.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ml.json +++ b/app/javascript/flavours/glitch/locales/ml.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/mr.json b/app/javascript/flavours/glitch/locales/mr.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/mr.json +++ b/app/javascript/flavours/glitch/locales/mr.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ms.json b/app/javascript/flavours/glitch/locales/ms.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ms.json +++ b/app/javascript/flavours/glitch/locales/ms.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/my.json b/app/javascript/flavours/glitch/locales/my.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/my.json +++ b/app/javascript/flavours/glitch/locales/my.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/nl.json b/app/javascript/flavours/glitch/locales/nl.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/nl.json +++ b/app/javascript/flavours/glitch/locales/nl.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/nn.json b/app/javascript/flavours/glitch/locales/nn.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/nn.json +++ b/app/javascript/flavours/glitch/locales/nn.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/no.json b/app/javascript/flavours/glitch/locales/no.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/no.json +++ b/app/javascript/flavours/glitch/locales/no.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/oc.json b/app/javascript/flavours/glitch/locales/oc.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/oc.json +++ b/app/javascript/flavours/glitch/locales/oc.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/pa.json b/app/javascript/flavours/glitch/locales/pa.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/pa.json +++ b/app/javascript/flavours/glitch/locales/pa.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/pl.json b/app/javascript/flavours/glitch/locales/pl.json index 1851555c01..09acd098eb 100644 --- a/app/javascript/flavours/glitch/locales/pl.json +++ b/app/javascript/flavours/glitch/locales/pl.json @@ -1,15 +1,4 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", "advanced_options.icon_title": "Ustawienia zaawansowane", "advanced_options.local-only.long": "Nie wysyłaj na inne instancje", "advanced_options.local-only.short": "Tylko lokalnie", @@ -17,59 +6,17 @@ "advanced_options.threaded_mode.long": "Przechodzi do tworzenia odpowiedzi po publikacji wpisu", "advanced_options.threaded_mode.short": "Tryb wątków", "advanced_options.threaded_mode.tooltip": "Włączono tryb wątków", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Załącz coś", "compose.attach.doodle": "Narysuj coś", "compose.attach.upload": "Wyślij plik", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", "compose_form.spoiler": "Ukryj tekst za ostrzeżeniem", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "Możesz nacisnąć {combo}, aby pominąć to następnym razem", "getting_started.onboarding": "Rozejrzyj się", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", "home.column_settings.show_direct": "Pokaż wiadomości bezpośrednie", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", "layout.auto": "Automatyczny", "layout.desktop": "Desktopowy", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", "media_gallery.sensitive": "Zawartość wrażliwa", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Ustawienia aplikacji", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", "notification.markForDeletion": "Oznacz do usunięcia", "notification_purge.btn_all": "Zaznacz\nwszystkie", "notification_purge.btn_apply": "Usuń\nzaznaczone", @@ -78,27 +25,9 @@ "notification_purge.start": "Przejdź do trybu usuwania powiadomień", "notifications.marked_clear": "Usuń zaznaczone powiadomienia", "notifications.marked_clear_confirmation": "Czy na pewno chcesz bezpowrtonie usunąć wszystkie powiadomienia?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "onboarding.page_one.federation": "{domain} jest 'instancją' Mastodona. Mastodon to sieć działających niezależnie serwerów tworzących jedną sieć społecznościową. Te serwery nazywane są instancjami.", - "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "Witamy na {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "onboarding.page_six.github": "{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z każdym klientem i aplikacją Mastodona. Glitchsoc jest całkowicie wolnym i otwartoźródłowym oprogramowaniem. Możesz zgłaszać błędy i sugestie funkcji oraz współtworzyć projekt na {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", "settings.auto_collapse": "Automatyczne zwijanie", "settings.auto_collapse_all": "Wszystko", "settings.auto_collapse_lengthy": "Długie wpisy", @@ -108,94 +37,19 @@ "settings.auto_collapse_replies": "Odpowiedzi", "settings.close": "Zamknij", "settings.collapsed_statuses": "Zwijanie wpisów", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "Włącz zwijanie wpisów", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", "settings.general": "Ogólne", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", "settings.image_backgrounds": "Obrazy w tle", "settings.image_backgrounds_media": "Wyświetlaj zawartość multimedialną zwiniętych wpisów", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "Nadaj tło zwiniętym wpisom", - "settings.inline_preview_cards": "Inline preview cards for external links", "settings.layout": "Układ", - "settings.layout_opts": "Layout options", "settings.media": "Zawartość multimedialna", "settings.media_fullwidth": "Podgląd zawartości multimedialnej o pełnej szerokości", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", "settings.preferences": "Preferencje użytkownika", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", "settings.side_arm": "Drugi przycisk wysyłania", "settings.side_arm.none": "Żaden", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", "settings.wide_view": "Szeroki widok (tylko w trybie desktopowym)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "Zwiń", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Rozwiń", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Rozwiń" } diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/pt-BR.json +++ b/app/javascript/flavours/glitch/locales/pt-BR.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/pt-PT.json b/app/javascript/flavours/glitch/locales/pt-PT.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/pt-PT.json +++ b/app/javascript/flavours/glitch/locales/pt-PT.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ro.json b/app/javascript/flavours/glitch/locales/ro.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ro.json +++ b/app/javascript/flavours/glitch/locales/ro.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ru.json b/app/javascript/flavours/glitch/locales/ru.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ru.json +++ b/app/javascript/flavours/glitch/locales/ru.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sa.json b/app/javascript/flavours/glitch/locales/sa.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sa.json +++ b/app/javascript/flavours/glitch/locales/sa.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sc.json b/app/javascript/flavours/glitch/locales/sc.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sc.json +++ b/app/javascript/flavours/glitch/locales/sc.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sco.json b/app/javascript/flavours/glitch/locales/sco.json index eb99fc64d4..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/sco.json +++ b/app/javascript/flavours/glitch/locales/sco.json @@ -1,201 +1 @@ -{ - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", - "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", - "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", - "settings.content_warnings": "Content Warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "User preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." -} +{} diff --git a/app/javascript/flavours/glitch/locales/si.json b/app/javascript/flavours/glitch/locales/si.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/si.json +++ b/app/javascript/flavours/glitch/locales/si.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sk.json b/app/javascript/flavours/glitch/locales/sk.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sk.json +++ b/app/javascript/flavours/glitch/locales/sk.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sl.json b/app/javascript/flavours/glitch/locales/sl.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sl.json +++ b/app/javascript/flavours/glitch/locales/sl.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sq.json b/app/javascript/flavours/glitch/locales/sq.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sq.json +++ b/app/javascript/flavours/glitch/locales/sq.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sr-Latn.json b/app/javascript/flavours/glitch/locales/sr-Latn.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sr-Latn.json +++ b/app/javascript/flavours/glitch/locales/sr-Latn.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sr.json b/app/javascript/flavours/glitch/locales/sr.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sr.json +++ b/app/javascript/flavours/glitch/locales/sr.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/sv.json b/app/javascript/flavours/glitch/locales/sv.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/sv.json +++ b/app/javascript/flavours/glitch/locales/sv.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ta.json b/app/javascript/flavours/glitch/locales/ta.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ta.json +++ b/app/javascript/flavours/glitch/locales/ta.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/te.json b/app/javascript/flavours/glitch/locales/te.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/te.json +++ b/app/javascript/flavours/glitch/locales/te.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/th.json b/app/javascript/flavours/glitch/locales/th.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/th.json +++ b/app/javascript/flavours/glitch/locales/th.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/tr.json b/app/javascript/flavours/glitch/locales/tr.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/tr.json +++ b/app/javascript/flavours/glitch/locales/tr.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/tt.json b/app/javascript/flavours/glitch/locales/tt.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/tt.json +++ b/app/javascript/flavours/glitch/locales/tt.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ug.json b/app/javascript/flavours/glitch/locales/ug.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ug.json +++ b/app/javascript/flavours/glitch/locales/ug.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/uk.json b/app/javascript/flavours/glitch/locales/uk.json index faf9a17ac2..b215846591 100644 --- a/app/javascript/flavours/glitch/locales/uk.json +++ b/app/javascript/flavours/glitch/locales/uk.json @@ -1,104 +1,27 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", "advanced_options.local-only.long": "Не дмухати це на інші сервери", "advanced_options.local-only.short": "Лише локальне", "advanced_options.local-only.tooltip": "Цей дмух лише локальний", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", "compose.attach": "Вкласти...", "compose.attach.doodle": "Помалювати", "compose.attach.upload": "Завантажити сюди файл", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", "favourite_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", "getting_started.onboarding": "Шо тут", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", "home.column_settings.show_direct": "Показати прямі повідомлення", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", "layout.auto": "Автоматичний", "layout.desktop": "Настільний", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", "media_gallery.sensitive": "Чутливі", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "Налаштування програми", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", "notification.markForDeletion": "Позначити для видалення", "notification_purge.btn_all": "Вибрати\nвсе", "notification_purge.btn_apply": "Очистити\nвибір", "notification_purge.btn_invert": "Інвертувати\nвибір", "notification_purge.btn_none": "Вибрати\nнічого", - "notification_purge.start": "Enter notification cleaning mode", "notifications.marked_clear": "Очистити вибрані сповіщення", "notifications.marked_clear_confirmation": "Ви впевнені, що хочете незворотньо очистити всі вибрані сповіщення?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "onboarding.page_one.federation": "{domain} є сервером of Mastodon. Mastodon — мережа незалежних серверів, які працюють разом великою соціяльною мережою. Сервери Mastodon також називають „інстансами“.", - "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", "onboarding.page_one.welcome": "Ласкаво просимо до {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "onboarding.page_six.github": "{domain} використовує Glitchsoc. Glitchsoc — дружній {fork} {Mastodon}, сумісний з будь-яким сервером Mastodon або програмою для нього. Glitchsoc повністю вільний та відкритий. Повідомляти про баги, просити фічі, або працювати з кодом можна на {github}.", - "onboarding.page_six.guidelines": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", "settings.auto_collapse": "Автоматичне згортання", "settings.auto_collapse_all": "Все", "settings.auto_collapse_lengthy": "Довгі дмухи", @@ -108,94 +31,18 @@ "settings.auto_collapse_replies": "Відповіді", "settings.close": "Закрити", "settings.collapsed_statuses": "Згорнуті дмухи", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "Увімкути згорнутання дмухів", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", "settings.general": "Основне", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", "settings.image_backgrounds": "Картинки на тлі", "settings.image_backgrounds_media": "Підглядати медіа зі схованих дмухів", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "Давати схованим дмухам тло-картинку", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", "settings.media": "Медіа", "settings.media_fullwidth": "Показувати медіа повною шириною", "settings.media_letterbox": "Обрізати медіа", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", "settings.preferences": "Користувацькі налаштування", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "Показувати кнопки у згорнутих дмухах", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", "settings.wide_view": "Широкий вид (тільки в режимі для комп'ютерів)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", "status.collapse": "Згорнути", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Розгорнути", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "status.uncollapse": "Розгорнути" } diff --git a/app/javascript/flavours/glitch/locales/ur.json b/app/javascript/flavours/glitch/locales/ur.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/ur.json +++ b/app/javascript/flavours/glitch/locales/ur.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/vi.json b/app/javascript/flavours/glitch/locales/vi.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/vi.json +++ b/app/javascript/flavours/glitch/locales/vi.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/zh-CN.json b/app/javascript/flavours/glitch/locales/zh-CN.json index fe03213ae0..0a28f4ab49 100644 --- a/app/javascript/flavours/glitch/locales/zh-CN.json +++ b/app/javascript/flavours/glitch/locales/zh-CN.json @@ -1,9 +1,7 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", "account.add_account_note": "为 @{name} 添加备注", "account.disclaimer_full": "以下信息可能无法完整代表你的个人资料。", "account.follows": "正在关注", - "account.joined": "Joined {date}", "account.suspended_disclaimer_full": "该用户已被封禁。", "account.view_full_profile": "查看完整资料", "account_note.cancel": "取消", @@ -29,15 +27,11 @@ "compose.attach": "附上...", "compose.attach.doodle": "画点什么", "compose.attach.upload": "上传文件", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", "compose.content-type.plain": "纯文本", "compose_form.poll.multiple_choices": "允许多选", "compose_form.poll.single_choice": "允许单选", "compose_form.spoiler": "隐藏为内容警告", "confirmation_modal.do_not_ask_again": "下次不显示确认窗口", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", "confirmations.missing_media_description.confirm": "确认", "confirmations.missing_media_description.edit": "编辑", "confirmations.missing_media_description.message": "你没有为一种或多种媒体撰写描述。请考虑为视障人士添加描述。", @@ -46,7 +40,6 @@ "confirmations.unfilter.edit_filter": "编辑过滤器", "confirmations.unfilter.filters": "应用 {count, plural, one {过滤器} other {过滤器}}", "content-type.change": "内容类型 ", - "direct.group_by_conversations": "Group by conversation", "endorsed_accounts_editor.endorsed_accounts": "推荐用户", "favourite_modal.combo": "下次你可以按 {combo} 跳过这个", "getting_started.onboarding": "参观一下", @@ -67,8 +60,6 @@ "moved_to_warning": "此帐户已被标记为移至 {moved_to_link},并且似乎没有收到新关注者。", "navigation_bar.app_settings": "应用选项", "navigation_bar.featured_users": "推荐用户", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "杂项", "notification.markForDeletion": "标记以删除", "notification_purge.btn_all": "全选", @@ -115,14 +106,7 @@ "settings.content_warnings": "内容警告", "settings.content_warnings.regexp": "正则表达式", "settings.content_warnings_filter": "不会自动展开的内容警告:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", "settings.enable_collapsed": "启用折叠嘟文", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", "settings.enable_content_warnings_auto_unfold": "自动展开内容警告", "settings.filters": "过滤器", "settings.general": "一般", @@ -130,7 +114,6 @@ "settings.hicolor_privacy_icons.hint": "以明亮且易于区分的颜色显示隐私图标", "settings.image_backgrounds": "图片背景", "settings.image_backgrounds_media": "预览折叠嘟文的媒体文件", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", "settings.image_backgrounds_users": "为折叠嘟文附加图片背景", "settings.inline_preview_cards": "外部链接的内嵌预览卡片", "settings.layout": "布局:", @@ -157,7 +140,6 @@ "settings.rewrite_mentions_acct": "重写为用户名和域名(当帐户为远程时)", "settings.rewrite_mentions_no": "不要重写", "settings.rewrite_mentions_username": "重写为用户名", - "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "在折叠的嘟文中显示操作按钮", "settings.show_content_type_choice": "允许你在撰写嘟文时选择格式类型", "settings.show_reply_counter": "显示回复的大致数量", @@ -167,12 +149,6 @@ "settings.side_arm_reply_mode.copy": "复制被回复嘟文的隐私设置", "settings.side_arm_reply_mode.keep": "保留辅助发嘟按钮以设置隐私", "settings.side_arm_reply_mode.restrict": "将隐私设置限制为正在回复的那条嘟文", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", "settings.swipe_to_change_columns": "允许滑动以在列之间切换(仅限移动模式)", "settings.tag_misleading_links": "标记误导性链接", "settings.tag_misleading_links.hint": "将带有目标网页链接的视觉指示添加到每个未明确的链接", diff --git a/app/javascript/flavours/glitch/locales/zh-HK.json b/app/javascript/flavours/glitch/locales/zh-HK.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/zh-HK.json +++ b/app/javascript/flavours/glitch/locales/zh-HK.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/zh-TW.json b/app/javascript/flavours/glitch/locales/zh-TW.json index 807ed82077..4d243f94c2 100644 --- a/app/javascript/flavours/glitch/locales/zh-TW.json +++ b/app/javascript/flavours/glitch/locales/zh-TW.json @@ -1,201 +1,6 @@ { - "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.", - "account.add_account_note": "Add note for @{name}", - "account.disclaimer_full": "Information below may reflect the user's profile incompletely.", - "account.follows": "Follows", - "account.joined": "Joined {date}", - "account.suspended_disclaimer_full": "This user has been suspended by a moderator.", - "account.view_full_profile": "View full profile", - "account_note.cancel": "Cancel", - "account_note.edit": "Edit", - "account_note.glitch_placeholder": "No comment provided", - "account_note.save": "Save", - "advanced_options.icon_title": "Advanced options", - "advanced_options.local-only.long": "Do not post to other instances", - "advanced_options.local-only.short": "Local-only", - "advanced_options.local-only.tooltip": "This post is local-only", - "advanced_options.threaded_mode.long": "Automatically opens a reply on posting", - "advanced_options.threaded_mode.short": "Threaded mode", - "advanced_options.threaded_mode.tooltip": "Threaded mode enabled", - "boost_modal.missing_description": "This toot contains some media without description", - "column.favourited_by": "Favourited by", - "column.heading": "Misc", - "column.reblogged_by": "Boosted by", - "column.subheading": "Miscellaneous options", - "column_header.profile": "Profile", - "column_subheading.lists": "Lists", - "column_subheading.navigation": "Navigation", - "community.column_settings.allow_local_only": "Show local-only toots", - "compose.attach": "Attach...", - "compose.attach.doodle": "Draw something", - "compose.attach.upload": "Upload a file", - "compose.content-type.html": "HTML", - "compose.content-type.markdown": "Markdown", - "compose.content-type.plain": "Plain text", - "compose_form.poll.multiple_choices": "Allow multiple choices", - "compose_form.poll.single_choice": "Allow one choice", - "compose_form.spoiler": "Hide text behind warning", - "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again", - "confirmations.deprecated_settings.confirm": "Use Mastodon preferences", - "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:", - "confirmations.missing_media_description.confirm": "Send anyway", - "confirmations.missing_media_description.edit": "Edit media", - "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.", - "confirmations.unfilter.author": "Author", - "confirmations.unfilter.confirm": "Show", - "confirmations.unfilter.edit_filter": "Edit filter", - "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}", - "content-type.change": "Content type", - "direct.group_by_conversations": "Group by conversation", - "endorsed_accounts_editor.endorsed_accounts": "Featured accounts", - "favourite_modal.combo": "You can press {combo} to skip this next time", - "getting_started.onboarding": "Show me around", - "home.column_settings.advanced": "Advanced", - "home.column_settings.filter_regex": "Filter out by regular expressions", - "home.column_settings.show_direct": "Show DMs", - "home.settings": "Column settings", - "keyboard_shortcuts.bookmark": "to bookmark", - "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting", - "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots", - "layout.auto": "Auto", - "layout.desktop": "Desktop", - "layout.hint.auto": "Automatically chose layout based on “Enable advanced web interface” setting and screen size.", - "layout.hint.desktop": "Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.hint.single": "Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.", - "layout.single": "Mobile", - "media_gallery.sensitive": "Sensitive", - "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", - "navigation_bar.app_settings": "App settings", - "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", - "navigation_bar.misc": "Misc", - "notification.markForDeletion": "Mark for deletion", - "notification_purge.btn_all": "Select\nall", - "notification_purge.btn_apply": "Clear\nselected", - "notification_purge.btn_invert": "Invert\nselection", - "notification_purge.btn_none": "Select\nnone", - "notification_purge.start": "Enter notification cleaning mode", - "notifications.marked_clear": "Clear selected notifications", - "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", - "onboarding.done": "Done", - "onboarding.next": "Next", - "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", - "onboarding.page_four.home": "The home timeline shows posts from people you follow.", - "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "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": "You are on {domain}, so your full handle is {handle}", - "onboarding.page_one.welcome": "Welcome to {domain}!", - "onboarding.page_six.admin": "Your instance's admin is {admin}.", - "onboarding.page_six.almost_done": "Almost done...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", "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": "community guidelines", - "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", - "onboarding.page_six.various_app": "mobile apps", - "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", - "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", - "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", - "onboarding.skip": "Skip", - "settings.always_show_spoilers_field": "Always enable the Content Warning field", - "settings.auto_collapse": "Automatic collapsing", - "settings.auto_collapse_all": "Everything", - "settings.auto_collapse_lengthy": "Lengthy toots", - "settings.auto_collapse_media": "Toots with media", - "settings.auto_collapse_notifications": "Notifications", - "settings.auto_collapse_reblogs": "Boosts", - "settings.auto_collapse_replies": "Replies", - "settings.close": "Close", - "settings.collapsed_statuses": "Collapsed toots", - "settings.compose_box_opts": "Compose box", - "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed", - "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions", - "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions", "settings.content_warnings": "Content warnings", - "settings.content_warnings.regexp": "Regular expression", - "settings.content_warnings_filter": "Content warnings to not automatically unfold:", - "settings.content_warnings_media_outside": "Display media attachments outside content warnings", - "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments", - "settings.content_warnings_shared_state": "Show/hide content of all copies at once", - "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW", - "settings.content_warnings_unfold_opts": "Auto-unfolding options", - "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}", - "settings.enable_collapsed": "Enable collapsed toots", - "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature", - "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings", - "settings.filters": "Filters", - "settings.general": "General", - "settings.hicolor_privacy_icons": "High color privacy icons", - "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors", - "settings.image_backgrounds": "Image backgrounds", - "settings.image_backgrounds_media": "Preview collapsed toot media", - "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background", - "settings.image_backgrounds_users": "Give collapsed toots an image background", - "settings.inline_preview_cards": "Inline preview cards for external links", - "settings.layout": "Layout:", - "settings.layout_opts": "Layout options", - "settings.media": "Media", - "settings.media_fullwidth": "Full-width media previews", - "settings.media_letterbox": "Letterbox media", - "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them", - "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default", - "settings.notifications.favicon_badge": "Unread notifications favicon badge", - "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon", - "settings.notifications.tab_badge": "Unread notifications badge", - "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open", - "settings.notifications_opts": "Notifications options", - "settings.pop_in_left": "Left", - "settings.pop_in_player": "Enable pop-in player", - "settings.pop_in_position": "Pop-in player position:", - "settings.pop_in_right": "Right", - "settings.preferences": "Preferences", - "settings.prepend_cw_re": "Prepend “re: ” to content warnings when replying", - "settings.preselect_on_reply": "Pre-select usernames on reply", - "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first", - "settings.rewrite_mentions": "Rewrite mentions in displayed statuses", - "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)", - "settings.rewrite_mentions_no": "Do not rewrite mentions", - "settings.rewrite_mentions_username": "Rewrite with username", - "settings.shared_settings_link": "user preferences", - "settings.show_action_bar": "Show action buttons in collapsed toots", - "settings.show_content_type_choice": "Show content-type choice when authoring toots", - "settings.show_reply_counter": "Display an estimate of the reply count", - "settings.side_arm": "Secondary toot button:", - "settings.side_arm.none": "None", - "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:", - "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to", - "settings.side_arm_reply_mode.keep": "Keep its set privacy", - "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to", - "settings.status_icons": "Toot icons", - "settings.status_icons_language": "Language indicator", - "settings.status_icons_local_only": "Local-only indicator", - "settings.status_icons_media": "Media and poll indicators", - "settings.status_icons_reply": "Reply indicator", - "settings.status_icons_visibility": "Toot privacy indicator", - "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)", - "settings.tag_misleading_links": "Tag misleading links", - "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly", - "settings.wide_view": "Wide view (Desktop mode only)", - "settings.wide_view_hint": "Stretches columns to better fill the available space.", - "status.collapse": "Collapse", - "status.has_audio": "Features attached audio files", - "status.has_pictures": "Features attached pictures", - "status.has_preview_card": "Features an attached preview card", - "status.has_video": "Features attached videos", - "status.in_reply_to": "This toot is a reply", - "status.is_poll": "This toot is a poll", - "status.local_only": "Only visible from your instance", - "status.sensitive_toggle": "Click to view", - "status.uncollapse": "Uncollapse", - "web_app_crash.change_your_settings": "Change your {settings}", - "web_app_crash.content": "You could try any of the following:", - "web_app_crash.debug_info": "Debug information", - "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools", - "web_app_crash.issue_tracker": "issue tracker", - "web_app_crash.reload": "Reload", - "web_app_crash.reload_page": "{reload} the current page", - "web_app_crash.report_issue": "Report a bug in the {issuetracker}", - "web_app_crash.settings": "settings", - "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app." + "settings.preferences": "Preferences" } diff --git a/config/locales-glitch/af.yml b/config/locales-glitch/af.yml index 7eb443c977..252f9fd5a2 100644 --- a/config/locales-glitch/af.yml +++ b/config/locales-glitch/af.yml @@ -1,38 +1 @@ ---- af: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/an.yml b/config/locales-glitch/an.yml index 7769a7b836..76cc0689b6 100644 --- a/config/locales-glitch/an.yml +++ b/config/locales-glitch/an.yml @@ -1,38 +1 @@ ---- an: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ar.yml b/config/locales-glitch/ar.yml index 24e703e5a4..c257bc08a4 100644 --- a/config/locales-glitch/ar.yml +++ b/config/locales-glitch/ar.yml @@ -1,38 +1 @@ ---- ar: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ast.yml b/config/locales-glitch/ast.yml index 0e294ba8c1..d762c93994 100644 --- a/config/locales-glitch/ast.yml +++ b/config/locales-glitch/ast.yml @@ -1,38 +1 @@ ---- ast: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/be.yml b/config/locales-glitch/be.yml index 53ee5ab09f..91ccc2d7e7 100644 --- a/config/locales-glitch/be.yml +++ b/config/locales-glitch/be.yml @@ -1,38 +1 @@ ---- be: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/bg.yml b/config/locales-glitch/bg.yml index de3435ef46..d0e375da96 100644 --- a/config/locales-glitch/bg.yml +++ b/config/locales-glitch/bg.yml @@ -1,38 +1 @@ ---- bg: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/bn.yml b/config/locales-glitch/bn.yml index 5f464049bd..152c698290 100644 --- a/config/locales-glitch/bn.yml +++ b/config/locales-glitch/bn.yml @@ -1,38 +1 @@ ---- bn: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/br.yml b/config/locales-glitch/br.yml index 53a39fe02f..c7677c850c 100644 --- a/config/locales-glitch/br.yml +++ b/config/locales-glitch/br.yml @@ -1,38 +1 @@ ---- br: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/bs.yml b/config/locales-glitch/bs.yml index 1d8af181f8..e9e174462a 100644 --- a/config/locales-glitch/bs.yml +++ b/config/locales-glitch/bs.yml @@ -1,38 +1 @@ ---- bs: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ca.yml b/config/locales-glitch/ca.yml index f3b3adb99d..f0c487273d 100644 --- a/config/locales-glitch/ca.yml +++ b/config/locales-glitch/ca.yml @@ -1,38 +1 @@ ---- ca: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ckb.yml b/config/locales-glitch/ckb.yml index a9efcff270..cc251e86ae 100644 --- a/config/locales-glitch/ckb.yml +++ b/config/locales-glitch/ckb.yml @@ -1,38 +1 @@ ---- ckb-IR: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/co.yml b/config/locales-glitch/co.yml index 880c7f133e..5330938e02 100644 --- a/config/locales-glitch/co.yml +++ b/config/locales-glitch/co.yml @@ -1,38 +1 @@ ---- co: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/cy.yml b/config/locales-glitch/cy.yml index 63e5296fca..deefc9438f 100644 --- a/config/locales-glitch/cy.yml +++ b/config/locales-glitch/cy.yml @@ -1,38 +1 @@ ---- cy: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/da.yml b/config/locales-glitch/da.yml index 325922fac2..347c94d5e3 100644 --- a/config/locales-glitch/da.yml +++ b/config/locales-glitch/da.yml @@ -1,38 +1 @@ ---- da: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/de.yml b/config/locales-glitch/de.yml index 99de7430c0..346523bb60 100644 --- a/config/locales-glitch/de.yml +++ b/config/locales-glitch/de.yml @@ -1,38 +1 @@ ---- de: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/el.yml b/config/locales-glitch/el.yml index 517e9c663d..419ec705c3 100644 --- a/config/locales-glitch/el.yml +++ b/config/locales-glitch/el.yml @@ -1,38 +1 @@ ---- el: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/en-GB.yml b/config/locales-glitch/en-GB.yml index cec973752b..ef03d18104 100644 --- a/config/locales-glitch/en-GB.yml +++ b/config/locales-glitch/en-GB.yml @@ -1,38 +1 @@ ---- en-GB: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/eo.yml b/config/locales-glitch/eo.yml index a97e7b1349..7599814048 100644 --- a/config/locales-glitch/eo.yml +++ b/config/locales-glitch/eo.yml @@ -1,38 +1 @@ ---- eo: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/es-AR.yml b/config/locales-glitch/es-AR.yml index eea52b7a68..fd38e165e3 100644 --- a/config/locales-glitch/es-AR.yml +++ b/config/locales-glitch/es-AR.yml @@ -1,21 +1,10 @@ --- es-AR: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. title: Advertencia de contenido para los toots salientes @@ -25,13 +14,6 @@ es-AR: show_replies_in_public_timelines: desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: Usar settings: diff --git a/config/locales-glitch/es-MX.yml b/config/locales-glitch/es-MX.yml index 6cec17c3bf..48e24be767 100644 --- a/config/locales-glitch/es-MX.yml +++ b/config/locales-glitch/es-MX.yml @@ -1,21 +1,10 @@ --- es-MX: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. title: Advertencia de contenido para los toots salientes @@ -25,13 +14,6 @@ es-MX: show_replies_in_public_timelines: desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: Usar settings: diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index 14af6097e9..d842deb673 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -1,21 +1,10 @@ --- es: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. title: Advertencia de contenido para los toots salientes @@ -25,13 +14,6 @@ es: show_replies_in_public_timelines: desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: Usar settings: diff --git a/config/locales-glitch/et.yml b/config/locales-glitch/et.yml index 75eb72264f..e020c4ffc4 100644 --- a/config/locales-glitch/et.yml +++ b/config/locales-glitch/et.yml @@ -1,38 +1 @@ ---- et: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/eu.yml b/config/locales-glitch/eu.yml index 956c5c2f7e..566e176fc9 100644 --- a/config/locales-glitch/eu.yml +++ b/config/locales-glitch/eu.yml @@ -1,38 +1 @@ ---- eu: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/fa.yml b/config/locales-glitch/fa.yml index 8067833b14..88215f82cb 100644 --- a/config/locales-glitch/fa.yml +++ b/config/locales-glitch/fa.yml @@ -1,38 +1 @@ ---- fa: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/fi.yml b/config/locales-glitch/fi.yml index 87b61df094..23c538b193 100644 --- a/config/locales-glitch/fi.yml +++ b/config/locales-glitch/fi.yml @@ -1,38 +1 @@ ---- fi: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/fo.yml b/config/locales-glitch/fo.yml index 5b81be3693..69f792cca3 100644 --- a/config/locales-glitch/fo.yml +++ b/config/locales-glitch/fo.yml @@ -1,38 +1 @@ ---- fo: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/fr-QC.yml b/config/locales-glitch/fr-QC.yml index f9a8614d8a..a1022434e1 100644 --- a/config/locales-glitch/fr-QC.yml +++ b/config/locales-glitch/fr-QC.yml @@ -1,38 +1,11 @@ --- fr-QC: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours + desc_html: Ajouter un avertissement de contenu à tous les messages lorsqu'ils sont fédérés s'ils n'en possèdent pas déjà. Cela peut être utile si votre serveur est spécialisé dans un type de contenu sur lequel les autres serveurs pourraient vouloir un Avertissement de Contenu. Les médias seront également marqués comme sensibles. + title: Avertissement de contenu pour les messages sortants + appearance: + localization: + glitch_guide_link: https://fr.crowdin.com/project/glitch-soc + glitch_guide_link_text: Et c'est pareil avec glitch-soc ! diff --git a/config/locales-glitch/fr.yml b/config/locales-glitch/fr.yml index e8e5085baf..3c5b41b9ee 100644 --- a/config/locales-glitch/fr.yml +++ b/config/locales-glitch/fr.yml @@ -1,38 +1,11 @@ --- fr: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours + desc_html: Ajouter un avertissement de contenu à tous les messages lorsqu'ils sont fédérés s'ils n'en possèdent pas déjà. Cela peut être utile si votre serveur est spécialisé dans un type de contenu sur lequel les autres serveurs pourraient vouloir un Avertissement de Contenu. Les médias seront également marqués comme sensibles. + title: Avertissement de contenu pour les messages sortants + appearance: + localization: + glitch_guide_link: https://fr.crowdin.com/project/glitch-soc + glitch_guide_link_text: Et c'est pareil avec glitch-soc ! diff --git a/config/locales-glitch/fy.yml b/config/locales-glitch/fy.yml index 6b8e225bca..c05849f20d 100644 --- a/config/locales-glitch/fy.yml +++ b/config/locales-glitch/fy.yml @@ -1,38 +1 @@ ---- fy: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ga.yml b/config/locales-glitch/ga.yml index aafc36d472..20a9da24e9 100644 --- a/config/locales-glitch/ga.yml +++ b/config/locales-glitch/ga.yml @@ -1,38 +1 @@ ---- ga: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/gd.yml b/config/locales-glitch/gd.yml index d8873517c5..1912f6c6a6 100644 --- a/config/locales-glitch/gd.yml +++ b/config/locales-glitch/gd.yml @@ -1,38 +1 @@ ---- gd: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/gl.yml b/config/locales-glitch/gl.yml index 9fb5b77f78..8ec5fc81c1 100644 --- a/config/locales-glitch/gl.yml +++ b/config/locales-glitch/gl.yml @@ -1,38 +1 @@ ---- gl: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/he.yml b/config/locales-glitch/he.yml index f7915d709b..af6fa60a73 100644 --- a/config/locales-glitch/he.yml +++ b/config/locales-glitch/he.yml @@ -1,38 +1 @@ ---- he: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/hi.yml b/config/locales-glitch/hi.yml index aec5cdbdaa..d758a5b535 100644 --- a/config/locales-glitch/hi.yml +++ b/config/locales-glitch/hi.yml @@ -1,38 +1 @@ ---- hi: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/hr.yml b/config/locales-glitch/hr.yml index 5aa51d881b..f67f33c7e0 100644 --- a/config/locales-glitch/hr.yml +++ b/config/locales-glitch/hr.yml @@ -1,38 +1 @@ ---- hr: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/hu.yml b/config/locales-glitch/hu.yml index 71bd724cd0..52314c50c9 100644 --- a/config/locales-glitch/hu.yml +++ b/config/locales-glitch/hu.yml @@ -1,38 +1 @@ ---- hu: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/hy.yml b/config/locales-glitch/hy.yml index 44ad8aaad7..c406540162 100644 --- a/config/locales-glitch/hy.yml +++ b/config/locales-glitch/hy.yml @@ -1,38 +1 @@ ---- hy: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/id.yml b/config/locales-glitch/id.yml index 2b46494632..8446cbad90 100644 --- a/config/locales-glitch/id.yml +++ b/config/locales-glitch/id.yml @@ -1,38 +1 @@ ---- id: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ig.yml b/config/locales-glitch/ig.yml index a773d30751..7c264f0d73 100644 --- a/config/locales-glitch/ig.yml +++ b/config/locales-glitch/ig.yml @@ -1,38 +1 @@ ---- ig: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/io.yml b/config/locales-glitch/io.yml index 781f8a80e8..c63dc0e8d9 100644 --- a/config/locales-glitch/io.yml +++ b/config/locales-glitch/io.yml @@ -1,38 +1 @@ ---- io: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/is.yml b/config/locales-glitch/is.yml index 0cbf67e0e0..337c106df9 100644 --- a/config/locales-glitch/is.yml +++ b/config/locales-glitch/is.yml @@ -1,38 +1 @@ ---- is: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/it.yml b/config/locales-glitch/it.yml index 4e2bf74b90..85830635a7 100644 --- a/config/locales-glitch/it.yml +++ b/config/locales-glitch/it.yml @@ -1,38 +1 @@ ---- it: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ja.yml b/config/locales-glitch/ja.yml index 61bf4644b6..54ebfaeca6 100644 --- a/config/locales-glitch/ja.yml +++ b/config/locales-glitch/ja.yml @@ -1,21 +1,10 @@ --- ja: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: プロフィールページのフォロワー数を見られないようにします title: フォロワー数を隠す - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: desc_html: トゥートが連合される際、閲覧注意としてマークされていないトゥートにこの警告が追加されます。これはあなたのインスタンスが他のインスタンスに警告をして欲しいとされる投稿に特化している場合に便利です。 メディアは閲覧注意にマークされます。 title: 発信するトゥートへの警告 @@ -25,13 +14,6 @@ ja: show_replies_in_public_timelines: desc_html: 自分への公開投稿の返信に加えて、すべての公開投稿の返信をローカルタイムラインと連合タイムラインに表示します。 title: 公開タイムラインに返信を表示 - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: これを使う settings: diff --git a/config/locales-glitch/ka.yml b/config/locales-glitch/ka.yml index eca5173ba7..57a95cb047 100644 --- a/config/locales-glitch/ka.yml +++ b/config/locales-glitch/ka.yml @@ -1,38 +1 @@ ---- ka: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/kab.yml b/config/locales-glitch/kab.yml index 5831340c5c..2109c04b37 100644 --- a/config/locales-glitch/kab.yml +++ b/config/locales-glitch/kab.yml @@ -1,38 +1 @@ ---- kab: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/kk.yml b/config/locales-glitch/kk.yml index addad540d5..1dcc9b127c 100644 --- a/config/locales-glitch/kk.yml +++ b/config/locales-glitch/kk.yml @@ -1,38 +1 @@ ---- kk: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/kn.yml b/config/locales-glitch/kn.yml index 18a70afebc..d094088d88 100644 --- a/config/locales-glitch/kn.yml +++ b/config/locales-glitch/kn.yml @@ -1,38 +1 @@ ---- kn: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ko.yml b/config/locales-glitch/ko.yml index f691934116..bc9c4e86b7 100644 --- a/config/locales-glitch/ko.yml +++ b/config/locales-glitch/ko.yml @@ -8,17 +8,9 @@ ko: captcha_enabled: desc_html: 이것은 hCaptcha의 외부 스크립트에 의존합니다, 이것은 개인정보 보호에 위협을 가할 수도 있습니다. 추가적으로, 이것은 몇몇 사람들(특히나 장애인들)에게 가입 절차의 접근성을 심각하게 떨어트릴 수 있습니다. 이러한 이유로, 대체제로 승인 전용이나 초대제를 통한 가입을 고려해보세요.
한정된 사용만 가능한 초대장을 통한 가입자들은 CAPTCHA를 풀지 않아도 됩니다 title: 새로운 사용자가 계정 확인을 위해서는 CAPTCHA를 풀어야 하도록 합니다 - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: 사용자 프로필에 팔로워 수를 표시하지 않습니다 title: 팔로워 수 숨기기 - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots show_reblogs_in_public_timelines: desc_html: 공개글의 공개적인 부스트를 로컬과 공개 타임라인에 표시합니다. title: 부스트를 공개 타임라인에 표시 diff --git a/config/locales-glitch/ku.yml b/config/locales-glitch/ku.yml index 6b3e35be5b..aa87618e43 100644 --- a/config/locales-glitch/ku.yml +++ b/config/locales-glitch/ku.yml @@ -1,38 +1 @@ ---- kmr-TR: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/kw.yml b/config/locales-glitch/kw.yml index ed35d87ba3..b2cfc12ff1 100644 --- a/config/locales-glitch/kw.yml +++ b/config/locales-glitch/kw.yml @@ -1,38 +1 @@ ---- kw: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/la.yml b/config/locales-glitch/la.yml index 937c35285f..3a7ba0d445 100644 --- a/config/locales-glitch/la.yml +++ b/config/locales-glitch/la.yml @@ -1,38 +1 @@ ---- la: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/lt.yml b/config/locales-glitch/lt.yml index 7497b5717d..6c5cb837ac 100644 --- a/config/locales-glitch/lt.yml +++ b/config/locales-glitch/lt.yml @@ -1,38 +1 @@ ---- lt: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/lv.yml b/config/locales-glitch/lv.yml index 0804c52b7d..1be0eabc09 100644 --- a/config/locales-glitch/lv.yml +++ b/config/locales-glitch/lv.yml @@ -1,38 +1 @@ ---- lv: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/mk.yml b/config/locales-glitch/mk.yml index daed4eb507..8b9144a988 100644 --- a/config/locales-glitch/mk.yml +++ b/config/locales-glitch/mk.yml @@ -1,38 +1 @@ ---- mk: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ml.yml b/config/locales-glitch/ml.yml index 6b5a0186c6..6931a683d1 100644 --- a/config/locales-glitch/ml.yml +++ b/config/locales-glitch/ml.yml @@ -1,38 +1 @@ ---- ml: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/mr.yml b/config/locales-glitch/mr.yml index 2ec3c1b635..fe1639c6a3 100644 --- a/config/locales-glitch/mr.yml +++ b/config/locales-glitch/mr.yml @@ -1,38 +1 @@ ---- mr: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ms.yml b/config/locales-glitch/ms.yml index 200944d6df..2925688a03 100644 --- a/config/locales-glitch/ms.yml +++ b/config/locales-glitch/ms.yml @@ -1,38 +1 @@ ---- ms: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/my.yml b/config/locales-glitch/my.yml index d7f7931be3..5e1fc6bee9 100644 --- a/config/locales-glitch/my.yml +++ b/config/locales-glitch/my.yml @@ -1,38 +1 @@ ---- my: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/nl.yml b/config/locales-glitch/nl.yml index 96e9003238..f009eadee5 100644 --- a/config/locales-glitch/nl.yml +++ b/config/locales-glitch/nl.yml @@ -1,38 +1 @@ ---- nl: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/nn.yml b/config/locales-glitch/nn.yml index f33c14c003..777f4e600f 100644 --- a/config/locales-glitch/nn.yml +++ b/config/locales-glitch/nn.yml @@ -1,38 +1 @@ ---- nn: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/no.yml b/config/locales-glitch/no.yml index 1ee226ed50..d2a4697e5d 100644 --- a/config/locales-glitch/no.yml +++ b/config/locales-glitch/no.yml @@ -1,38 +1 @@ ---- -"no": - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours +no: diff --git a/config/locales-glitch/oc.yml b/config/locales-glitch/oc.yml index cbdcb29fea..325b348894 100644 --- a/config/locales-glitch/oc.yml +++ b/config/locales-glitch/oc.yml @@ -1,38 +1 @@ ---- oc: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/pa.yml b/config/locales-glitch/pa.yml index 6c8d1484d2..bb8a6c834d 100644 --- a/config/locales-glitch/pa.yml +++ b/config/locales-glitch/pa.yml @@ -1,38 +1 @@ ---- pa: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/pl.yml b/config/locales-glitch/pl.yml index 9a714abcd2..3fcdedcf35 100644 --- a/config/locales-glitch/pl.yml +++ b/config/locales-glitch/pl.yml @@ -1,37 +1,5 @@ --- pl: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: Użyj tego settings: diff --git a/config/locales-glitch/pt-BR.yml b/config/locales-glitch/pt-BR.yml index 5439dc2da0..9cbe1f0387 100644 --- a/config/locales-glitch/pt-BR.yml +++ b/config/locales-glitch/pt-BR.yml @@ -1,38 +1 @@ ---- pt: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/pt-PT.yml b/config/locales-glitch/pt-PT.yml index 5439dc2da0..9cbe1f0387 100644 --- a/config/locales-glitch/pt-PT.yml +++ b/config/locales-glitch/pt-PT.yml @@ -1,38 +1 @@ ---- pt: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ro.yml b/config/locales-glitch/ro.yml index bd12d75b6a..79dbaa871c 100644 --- a/config/locales-glitch/ro.yml +++ b/config/locales-glitch/ro.yml @@ -1,38 +1 @@ ---- ro: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ru.yml b/config/locales-glitch/ru.yml index 6817f80d45..ddc9d1e32c 100644 --- a/config/locales-glitch/ru.yml +++ b/config/locales-glitch/ru.yml @@ -1,38 +1 @@ ---- ru: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sa.yml b/config/locales-glitch/sa.yml index cd6df912ca..07ea4372a3 100644 --- a/config/locales-glitch/sa.yml +++ b/config/locales-glitch/sa.yml @@ -1,38 +1 @@ ---- sa: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sc.yml b/config/locales-glitch/sc.yml index 50f28be12d..91bd6d92f0 100644 --- a/config/locales-glitch/sc.yml +++ b/config/locales-glitch/sc.yml @@ -1,38 +1 @@ ---- sc: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sco.yml b/config/locales-glitch/sco.yml index 2a9d101656..8165e00a1b 100644 --- a/config/locales-glitch/sco.yml +++ b/config/locales-glitch/sco.yml @@ -1,38 +1 @@ ---- sco: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/si.yml b/config/locales-glitch/si.yml index 6376cc5b3c..b0b50956ed 100644 --- a/config/locales-glitch/si.yml +++ b/config/locales-glitch/si.yml @@ -1,38 +1 @@ ---- si: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/simple_form.af.yml b/config/locales-glitch/simple_form.af.yml index c7b7ae1d91..252f9fd5a2 100644 --- a/config/locales-glitch/simple_form.af.yml +++ b/config/locales-glitch/simple_form.af.yml @@ -1,27 +1 @@ ---- af: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.an.yml b/config/locales-glitch/simple_form.an.yml index c7789ac699..76cc0689b6 100644 --- a/config/locales-glitch/simple_form.an.yml +++ b/config/locales-glitch/simple_form.an.yml @@ -1,27 +1 @@ ---- an: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ar.yml b/config/locales-glitch/simple_form.ar.yml index 07615007bc..c257bc08a4 100644 --- a/config/locales-glitch/simple_form.ar.yml +++ b/config/locales-glitch/simple_form.ar.yml @@ -1,27 +1 @@ ---- ar: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ast.yml b/config/locales-glitch/simple_form.ast.yml index f2f431b14a..d762c93994 100644 --- a/config/locales-glitch/simple_form.ast.yml +++ b/config/locales-glitch/simple_form.ast.yml @@ -1,27 +1 @@ ---- ast: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.be.yml b/config/locales-glitch/simple_form.be.yml index 3d724a6c74..91ccc2d7e7 100644 --- a/config/locales-glitch/simple_form.be.yml +++ b/config/locales-glitch/simple_form.be.yml @@ -1,27 +1 @@ ---- be: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bg.yml b/config/locales-glitch/simple_form.bg.yml index 220088494f..d0e375da96 100644 --- a/config/locales-glitch/simple_form.bg.yml +++ b/config/locales-glitch/simple_form.bg.yml @@ -1,27 +1 @@ ---- bg: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bn.yml b/config/locales-glitch/simple_form.bn.yml index 9eea9e55e3..152c698290 100644 --- a/config/locales-glitch/simple_form.bn.yml +++ b/config/locales-glitch/simple_form.bn.yml @@ -1,27 +1 @@ ---- bn: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.br.yml b/config/locales-glitch/simple_form.br.yml index 699d30d9c8..c7677c850c 100644 --- a/config/locales-glitch/simple_form.br.yml +++ b/config/locales-glitch/simple_form.br.yml @@ -1,27 +1 @@ ---- br: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.bs.yml b/config/locales-glitch/simple_form.bs.yml index d7a52e6769..e9e174462a 100644 --- a/config/locales-glitch/simple_form.bs.yml +++ b/config/locales-glitch/simple_form.bs.yml @@ -1,27 +1 @@ ---- bs: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ca.yml b/config/locales-glitch/simple_form.ca.yml index df44a13447..f0c487273d 100644 --- a/config/locales-glitch/simple_form.ca.yml +++ b/config/locales-glitch/simple_form.ca.yml @@ -1,27 +1 @@ ---- ca: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ckb.yml b/config/locales-glitch/simple_form.ckb.yml index 9a11a5b183..cc251e86ae 100644 --- a/config/locales-glitch/simple_form.ckb.yml +++ b/config/locales-glitch/simple_form.ckb.yml @@ -1,27 +1 @@ ---- ckb-IR: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.co.yml b/config/locales-glitch/simple_form.co.yml index 7a43e5eb89..5330938e02 100644 --- a/config/locales-glitch/simple_form.co.yml +++ b/config/locales-glitch/simple_form.co.yml @@ -1,27 +1 @@ ---- co: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.cs.yml b/config/locales-glitch/simple_form.cs.yml index 8797c03eb9..a0823d6991 100644 --- a/config/locales-glitch/simple_form.cs.yml +++ b/config/locales-glitch/simple_form.cs.yml @@ -1,7 +1,6 @@ --- cs: simple_form: - glitch_only: glitch-soc hints: defaults: fields: Na svém profilu můžete mít zobrazeno několik položek (max. %{count}) jako tabulku @@ -14,8 +13,6 @@ cs: labels: defaults: setting_default_content_type: Výchozí formát příspěvků - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown setting_default_content_type_plain: Prostý text setting_favourite_modal: Před oblíbením příspěvku zobrazit potvrzovací dialog (pouze pro rozhraní Glitch) setting_hide_followers_count: Skrýt počet vašich sledujících diff --git a/config/locales-glitch/simple_form.cy.yml b/config/locales-glitch/simple_form.cy.yml index 9473e20dbc..deefc9438f 100644 --- a/config/locales-glitch/simple_form.cy.yml +++ b/config/locales-glitch/simple_form.cy.yml @@ -1,27 +1 @@ ---- cy: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.da.yml b/config/locales-glitch/simple_form.da.yml index f3fc4da29d..347c94d5e3 100644 --- a/config/locales-glitch/simple_form.da.yml +++ b/config/locales-glitch/simple_form.da.yml @@ -1,27 +1 @@ ---- da: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.de.yml b/config/locales-glitch/simple_form.de.yml index 092e935d7a..346523bb60 100644 --- a/config/locales-glitch/simple_form.de.yml +++ b/config/locales-glitch/simple_form.de.yml @@ -1,27 +1 @@ ---- de: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.el.yml b/config/locales-glitch/simple_form.el.yml index 6f94800612..419ec705c3 100644 --- a/config/locales-glitch/simple_form.el.yml +++ b/config/locales-glitch/simple_form.el.yml @@ -1,27 +1 @@ ---- el: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.en-GB.yml b/config/locales-glitch/simple_form.en-GB.yml index a750149812..ef03d18104 100644 --- a/config/locales-glitch/simple_form.en-GB.yml +++ b/config/locales-glitch/simple_form.en-GB.yml @@ -1,27 +1 @@ ---- en-GB: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.eo.yml b/config/locales-glitch/simple_form.eo.yml index 435933211c..7599814048 100644 --- a/config/locales-glitch/simple_form.eo.yml +++ b/config/locales-glitch/simple_form.eo.yml @@ -1,27 +1 @@ ---- eo: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es-AR.yml b/config/locales-glitch/simple_form.es-AR.yml index 1ea7968235..affb4eae31 100644 --- a/config/locales-glitch/simple_form.es-AR.yml +++ b/config/locales-glitch/simple_form.es-AR.yml @@ -1,27 +1,18 @@ --- es-AR: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Cambia el diseño de la edición seleccionada de Mastodon labels: defaults: setting_default_content_type: Formato predeterminado de tus toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown setting_default_content_type_plain: Sin formato setting_favourite_modal: Mostrar diálogo de confirmación antes de marcar como favorito (sólo aplica a la edición Glich) setting_hide_followers_count: Ocultar tu conteo de seguidorxs setting_skin: Diseño setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es-MX.yml b/config/locales-glitch/simple_form.es-MX.yml index 8910736567..561ca3b28b 100644 --- a/config/locales-glitch/simple_form.es-MX.yml +++ b/config/locales-glitch/simple_form.es-MX.yml @@ -1,27 +1,18 @@ --- es-MX: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Cambia el diseño de la edición seleccionada de Mastodon labels: defaults: setting_default_content_type: Formato predeterminado de tus toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown setting_default_content_type_plain: Sin formato setting_favourite_modal: Mostrar diálogo de confirmación antes de marcar como favorito (sólo aplica a la edición Glich) setting_hide_followers_count: Ocultar tu conteo de seguidorxs setting_skin: Diseño setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.es.yml b/config/locales-glitch/simple_form.es.yml index 96ed4c1ecb..22277d30d2 100644 --- a/config/locales-glitch/simple_form.es.yml +++ b/config/locales-glitch/simple_form.es.yml @@ -1,27 +1,18 @@ --- es: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: Al escribir toots, asume que estás escritos en HTML, a menos que se especifique lo contrario setting_default_content_type_markdown: Al escribir toots, asume que estás usando Markdown para dar formato de texto enriquecido, a menos que se especifique lo contrario setting_default_content_type_plain: Al escribir toots, asume que estás usando texto sin formato, a menos que se especifique lo contrario (predeterminado de Mastodon) setting_default_language: El idioma de tus toots se puede detectar automáticamente, pero no siempre es correcto - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Cambia el diseño de la edición seleccionada de Mastodon labels: defaults: setting_default_content_type: Formato predeterminado de tus toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown setting_default_content_type_plain: Sin formato setting_favourite_modal: Mostrar diálogo de confirmación antes de marcar como favorito (sólo aplica a la edición Glich) setting_hide_followers_count: Ocultar tu conteo de seguidorxs setting_skin: Diseño setting_system_emoji_font: Usar la fuente predeterminada del sistema para emojis (sólo aplica a la edición Glitch) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.et.yml b/config/locales-glitch/simple_form.et.yml index 090ab6cb55..e020c4ffc4 100644 --- a/config/locales-glitch/simple_form.et.yml +++ b/config/locales-glitch/simple_form.et.yml @@ -1,27 +1 @@ ---- et: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.eu.yml b/config/locales-glitch/simple_form.eu.yml index e0085473e9..566e176fc9 100644 --- a/config/locales-glitch/simple_form.eu.yml +++ b/config/locales-glitch/simple_form.eu.yml @@ -1,27 +1 @@ ---- eu: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fa.yml b/config/locales-glitch/simple_form.fa.yml index dabbee1a33..88215f82cb 100644 --- a/config/locales-glitch/simple_form.fa.yml +++ b/config/locales-glitch/simple_form.fa.yml @@ -1,27 +1 @@ ---- fa: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fi.yml b/config/locales-glitch/simple_form.fi.yml index dbc8ce0442..23c538b193 100644 --- a/config/locales-glitch/simple_form.fi.yml +++ b/config/locales-glitch/simple_form.fi.yml @@ -1,27 +1 @@ ---- fi: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fo.yml b/config/locales-glitch/simple_form.fo.yml index 4b59c9c6c1..69f792cca3 100644 --- a/config/locales-glitch/simple_form.fo.yml +++ b/config/locales-glitch/simple_form.fo.yml @@ -1,27 +1 @@ ---- fo: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fr-QC.yml b/config/locales-glitch/simple_form.fr-QC.yml index 20b3f6146d..bc7f5746e5 100644 --- a/config/locales-glitch/simple_form.fr-QC.yml +++ b/config/locales-glitch/simple_form.fr-QC.yml @@ -1,27 +1 @@ ---- fr-QC: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fr.yml b/config/locales-glitch/simple_form.fr.yml index 0a0685c44f..1831d4398f 100644 --- a/config/locales-glitch/simple_form.fr.yml +++ b/config/locales-glitch/simple_form.fr.yml @@ -1,27 +1 @@ ---- fr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.fy.yml b/config/locales-glitch/simple_form.fy.yml index 61e87e9316..c05849f20d 100644 --- a/config/locales-glitch/simple_form.fy.yml +++ b/config/locales-glitch/simple_form.fy.yml @@ -1,27 +1 @@ ---- fy: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ga.yml b/config/locales-glitch/simple_form.ga.yml index 917abe7781..20a9da24e9 100644 --- a/config/locales-glitch/simple_form.ga.yml +++ b/config/locales-glitch/simple_form.ga.yml @@ -1,27 +1 @@ ---- ga: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.gd.yml b/config/locales-glitch/simple_form.gd.yml index 7b569a6896..1912f6c6a6 100644 --- a/config/locales-glitch/simple_form.gd.yml +++ b/config/locales-glitch/simple_form.gd.yml @@ -1,27 +1 @@ ---- gd: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.gl.yml b/config/locales-glitch/simple_form.gl.yml index 7aa480b4c7..8ec5fc81c1 100644 --- a/config/locales-glitch/simple_form.gl.yml +++ b/config/locales-glitch/simple_form.gl.yml @@ -1,27 +1 @@ ---- gl: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.he.yml b/config/locales-glitch/simple_form.he.yml index 85e0d2e024..af6fa60a73 100644 --- a/config/locales-glitch/simple_form.he.yml +++ b/config/locales-glitch/simple_form.he.yml @@ -1,27 +1 @@ ---- he: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hi.yml b/config/locales-glitch/simple_form.hi.yml index fd1e19ca3a..d758a5b535 100644 --- a/config/locales-glitch/simple_form.hi.yml +++ b/config/locales-glitch/simple_form.hi.yml @@ -1,27 +1 @@ ---- hi: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hr.yml b/config/locales-glitch/simple_form.hr.yml index 3ddc7d77bd..f67f33c7e0 100644 --- a/config/locales-glitch/simple_form.hr.yml +++ b/config/locales-glitch/simple_form.hr.yml @@ -1,27 +1 @@ ---- hr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hu.yml b/config/locales-glitch/simple_form.hu.yml index 7d77afcb40..52314c50c9 100644 --- a/config/locales-glitch/simple_form.hu.yml +++ b/config/locales-glitch/simple_form.hu.yml @@ -1,27 +1 @@ ---- hu: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.hy.yml b/config/locales-glitch/simple_form.hy.yml index 24b990d7b7..c406540162 100644 --- a/config/locales-glitch/simple_form.hy.yml +++ b/config/locales-glitch/simple_form.hy.yml @@ -1,27 +1 @@ ---- hy: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.id.yml b/config/locales-glitch/simple_form.id.yml index 686392aee7..8446cbad90 100644 --- a/config/locales-glitch/simple_form.id.yml +++ b/config/locales-glitch/simple_form.id.yml @@ -1,27 +1 @@ ---- id: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ig.yml b/config/locales-glitch/simple_form.ig.yml index f85eea7a33..7c264f0d73 100644 --- a/config/locales-glitch/simple_form.ig.yml +++ b/config/locales-glitch/simple_form.ig.yml @@ -1,27 +1 @@ ---- ig: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.io.yml b/config/locales-glitch/simple_form.io.yml index 92f7fe4a91..c63dc0e8d9 100644 --- a/config/locales-glitch/simple_form.io.yml +++ b/config/locales-glitch/simple_form.io.yml @@ -1,27 +1 @@ ---- io: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.is.yml b/config/locales-glitch/simple_form.is.yml index f7acc0869a..337c106df9 100644 --- a/config/locales-glitch/simple_form.is.yml +++ b/config/locales-glitch/simple_form.is.yml @@ -1,27 +1 @@ ---- is: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.it.yml b/config/locales-glitch/simple_form.it.yml index 325b7d1bb3..85830635a7 100644 --- a/config/locales-glitch/simple_form.it.yml +++ b/config/locales-glitch/simple_form.it.yml @@ -1,27 +1 @@ ---- it: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ja.yml b/config/locales-glitch/simple_form.ja.yml index 7bc7eb13f8..558d9da9c3 100644 --- a/config/locales-glitch/simple_form.ja.yml +++ b/config/locales-glitch/simple_form.ja.yml @@ -1,27 +1,19 @@ --- ja: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: トゥートを作成するとき特に指定がない限り生のHTMLで書かれているとします setting_default_content_type_markdown: トゥートを作成するとき特に指定がない限りリッチテキスト形式のマークダウンで書かれているとします setting_default_content_type_plain: トゥートを作成するとき特に指定がない限りプレーンテキストで書かれているとします(Mastodon既定の動作) setting_default_language: あなたのトゥートの言語を自動検出しますが必ずしも正確ではありません - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 選択したMastodonフレーバーに変更します labels: defaults: setting_default_content_type: 既定のトゥート形式 - setting_default_content_type_html: HTML setting_default_content_type_markdown: マークダウン setting_default_content_type_plain: プレーンテキスト setting_favourite_modal: お気に入りをする前に確認ダイアログを表示する setting_hide_followers_count: フォロワー数を隠す setting_skin: スキン setting_system_emoji_font: 絵文字にシステム既定のフォントを使用する(Glitch Edition フレーバーのみに適用されます) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ka.yml b/config/locales-glitch/simple_form.ka.yml index 30d2d137ce..57a95cb047 100644 --- a/config/locales-glitch/simple_form.ka.yml +++ b/config/locales-glitch/simple_form.ka.yml @@ -1,27 +1 @@ ---- ka: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kab.yml b/config/locales-glitch/simple_form.kab.yml index 3c68f188af..2109c04b37 100644 --- a/config/locales-glitch/simple_form.kab.yml +++ b/config/locales-glitch/simple_form.kab.yml @@ -1,27 +1 @@ ---- kab: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kk.yml b/config/locales-glitch/simple_form.kk.yml index 0ad2cbbed1..1dcc9b127c 100644 --- a/config/locales-glitch/simple_form.kk.yml +++ b/config/locales-glitch/simple_form.kk.yml @@ -1,27 +1 @@ ---- kk: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kn.yml b/config/locales-glitch/simple_form.kn.yml index 00305eccf5..d094088d88 100644 --- a/config/locales-glitch/simple_form.kn.yml +++ b/config/locales-glitch/simple_form.kn.yml @@ -1,27 +1 @@ ---- kn: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ko.yml b/config/locales-glitch/simple_form.ko.yml index b7cbb91b06..b7d675aa5e 100644 --- a/config/locales-glitch/simple_form.ko.yml +++ b/config/locales-glitch/simple_form.ko.yml @@ -1,20 +1,16 @@ --- ko: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: 게시물을 작성할 때, 형식을 지정하지 않았다면, 생 HTML이라고 가정합니다 setting_default_content_type_markdown: 게시물을 작성할 때, 형식을 지정하지 않았다면, 마크다운이라고 가정합니다 setting_default_content_type_plain: 게시물을 작성할 때, 형식을 지정하지 않았다면, 일반적인 텍스트라고 가정합니다. (마스토돈의 기본 동작) setting_default_language: 작성하는 게시물의 언어는 자동으로 설정될 수 있습니다, 하지만 언제나 정확하지는 않습니다 - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 선택한 마스토돈 풍미의 스킨을 바꿉니다 labels: defaults: setting_default_content_type: 게시물의 기본 포맷 - setting_default_content_type_html: HTML setting_default_content_type_markdown: 마크다운 setting_default_content_type_plain: 일반 텍스트 setting_favourite_modal: 관심글을 지정할 때 확인 창을 띄웁니다(글리치 풍미에만 적용됨) diff --git a/config/locales-glitch/simple_form.ku.yml b/config/locales-glitch/simple_form.ku.yml index 19886fd16e..aa87618e43 100644 --- a/config/locales-glitch/simple_form.ku.yml +++ b/config/locales-glitch/simple_form.ku.yml @@ -1,27 +1 @@ ---- kmr-TR: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.kw.yml b/config/locales-glitch/simple_form.kw.yml index 2dc7ebe34c..b2cfc12ff1 100644 --- a/config/locales-glitch/simple_form.kw.yml +++ b/config/locales-glitch/simple_form.kw.yml @@ -1,27 +1 @@ ---- kw: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.la.yml b/config/locales-glitch/simple_form.la.yml index 534001565e..3a7ba0d445 100644 --- a/config/locales-glitch/simple_form.la.yml +++ b/config/locales-glitch/simple_form.la.yml @@ -1,27 +1 @@ ---- la: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.lt.yml b/config/locales-glitch/simple_form.lt.yml index d5febc9019..6c5cb837ac 100644 --- a/config/locales-glitch/simple_form.lt.yml +++ b/config/locales-glitch/simple_form.lt.yml @@ -1,27 +1 @@ ---- lt: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.lv.yml b/config/locales-glitch/simple_form.lv.yml index 9a30494f91..1be0eabc09 100644 --- a/config/locales-glitch/simple_form.lv.yml +++ b/config/locales-glitch/simple_form.lv.yml @@ -1,27 +1 @@ ---- lv: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.mk.yml b/config/locales-glitch/simple_form.mk.yml index 6f2d2421f7..8b9144a988 100644 --- a/config/locales-glitch/simple_form.mk.yml +++ b/config/locales-glitch/simple_form.mk.yml @@ -1,27 +1 @@ ---- mk: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ml.yml b/config/locales-glitch/simple_form.ml.yml index 3c0d7a70a4..6931a683d1 100644 --- a/config/locales-glitch/simple_form.ml.yml +++ b/config/locales-glitch/simple_form.ml.yml @@ -1,27 +1 @@ ---- ml: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.mr.yml b/config/locales-glitch/simple_form.mr.yml index eb70897575..fe1639c6a3 100644 --- a/config/locales-glitch/simple_form.mr.yml +++ b/config/locales-glitch/simple_form.mr.yml @@ -1,27 +1 @@ ---- mr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ms.yml b/config/locales-glitch/simple_form.ms.yml index 31ddcd1f97..2925688a03 100644 --- a/config/locales-glitch/simple_form.ms.yml +++ b/config/locales-glitch/simple_form.ms.yml @@ -1,27 +1 @@ ---- ms: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.my.yml b/config/locales-glitch/simple_form.my.yml index a0a67ff665..5e1fc6bee9 100644 --- a/config/locales-glitch/simple_form.my.yml +++ b/config/locales-glitch/simple_form.my.yml @@ -1,27 +1 @@ ---- my: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.nl.yml b/config/locales-glitch/simple_form.nl.yml index 1e04b6c200..f009eadee5 100644 --- a/config/locales-glitch/simple_form.nl.yml +++ b/config/locales-glitch/simple_form.nl.yml @@ -1,27 +1 @@ ---- nl: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.nn.yml b/config/locales-glitch/simple_form.nn.yml index 06408dcf87..777f4e600f 100644 --- a/config/locales-glitch/simple_form.nn.yml +++ b/config/locales-glitch/simple_form.nn.yml @@ -1,27 +1 @@ ---- nn: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.no.yml b/config/locales-glitch/simple_form.no.yml index 649e27b9e7..d2a4697e5d 100644 --- a/config/locales-glitch/simple_form.no.yml +++ b/config/locales-glitch/simple_form.no.yml @@ -1,27 +1 @@ ---- -"no": - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review +no: diff --git a/config/locales-glitch/simple_form.oc.yml b/config/locales-glitch/simple_form.oc.yml index f555e6fcad..325b348894 100644 --- a/config/locales-glitch/simple_form.oc.yml +++ b/config/locales-glitch/simple_form.oc.yml @@ -1,27 +1 @@ ---- oc: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pa.yml b/config/locales-glitch/simple_form.pa.yml index 9eee21ec91..bb8a6c834d 100644 --- a/config/locales-glitch/simple_form.pa.yml +++ b/config/locales-glitch/simple_form.pa.yml @@ -1,27 +1 @@ ---- pa: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pl.yml b/config/locales-glitch/simple_form.pl.yml index e328a34459..264494c2de 100644 --- a/config/locales-glitch/simple_form.pl.yml +++ b/config/locales-glitch/simple_form.pl.yml @@ -1,27 +1,10 @@ --- pl: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: Zmienia wygląd używanej odmiany Mastodona labels: defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text setting_favourite_modal: Pytaj o potwierdzenie przed dodaniem do ulubionych - setting_hide_followers_count: Hide your followers count setting_skin: Motyw - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pt-BR.yml b/config/locales-glitch/simple_form.pt-BR.yml index cac0cddcec..9cbe1f0387 100644 --- a/config/locales-glitch/simple_form.pt-BR.yml +++ b/config/locales-glitch/simple_form.pt-BR.yml @@ -1,27 +1 @@ ---- pt: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.pt-PT.yml b/config/locales-glitch/simple_form.pt-PT.yml index cac0cddcec..9cbe1f0387 100644 --- a/config/locales-glitch/simple_form.pt-PT.yml +++ b/config/locales-glitch/simple_form.pt-PT.yml @@ -1,27 +1 @@ ---- pt: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ro.yml b/config/locales-glitch/simple_form.ro.yml index 41f9fc96d0..79dbaa871c 100644 --- a/config/locales-glitch/simple_form.ro.yml +++ b/config/locales-glitch/simple_form.ro.yml @@ -1,27 +1 @@ ---- ro: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ru.yml b/config/locales-glitch/simple_form.ru.yml index cb21b98b50..ddc9d1e32c 100644 --- a/config/locales-glitch/simple_form.ru.yml +++ b/config/locales-glitch/simple_form.ru.yml @@ -1,27 +1 @@ ---- ru: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sa.yml b/config/locales-glitch/simple_form.sa.yml index a97b0bccf1..07ea4372a3 100644 --- a/config/locales-glitch/simple_form.sa.yml +++ b/config/locales-glitch/simple_form.sa.yml @@ -1,27 +1 @@ ---- sa: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sc.yml b/config/locales-glitch/simple_form.sc.yml index aa1cb749e7..91bd6d92f0 100644 --- a/config/locales-glitch/simple_form.sc.yml +++ b/config/locales-glitch/simple_form.sc.yml @@ -1,27 +1 @@ ---- sc: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sco.yml b/config/locales-glitch/simple_form.sco.yml index 3aba873c4a..8165e00a1b 100644 --- a/config/locales-glitch/simple_form.sco.yml +++ b/config/locales-glitch/simple_form.sco.yml @@ -1,27 +1 @@ ---- sco: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.si.yml b/config/locales-glitch/simple_form.si.yml index 858abd71fb..b0b50956ed 100644 --- a/config/locales-glitch/simple_form.si.yml +++ b/config/locales-glitch/simple_form.si.yml @@ -1,27 +1 @@ ---- si: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sk.yml b/config/locales-glitch/simple_form.sk.yml index 391b314f46..f634a02824 100644 --- a/config/locales-glitch/simple_form.sk.yml +++ b/config/locales-glitch/simple_form.sk.yml @@ -1,27 +1 @@ ---- sk: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sl.yml b/config/locales-glitch/simple_form.sl.yml index 83ea32917e..26c7ce2e31 100644 --- a/config/locales-glitch/simple_form.sl.yml +++ b/config/locales-glitch/simple_form.sl.yml @@ -1,27 +1 @@ ---- sl: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sq.yml b/config/locales-glitch/simple_form.sq.yml index 819de27a1a..44ddadc95a 100644 --- a/config/locales-glitch/simple_form.sq.yml +++ b/config/locales-glitch/simple_form.sq.yml @@ -1,27 +1 @@ ---- sq: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sr-Latn.yml b/config/locales-glitch/simple_form.sr-Latn.yml index 0cc7666c8e..9e26af8191 100644 --- a/config/locales-glitch/simple_form.sr-Latn.yml +++ b/config/locales-glitch/simple_form.sr-Latn.yml @@ -1,27 +1 @@ ---- sr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sr.yml b/config/locales-glitch/simple_form.sr.yml index 0cc7666c8e..9e26af8191 100644 --- a/config/locales-glitch/simple_form.sr.yml +++ b/config/locales-glitch/simple_form.sr.yml @@ -1,27 +1 @@ ---- sr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.sv.yml b/config/locales-glitch/simple_form.sv.yml index 02fc1418c6..7e73a972a7 100644 --- a/config/locales-glitch/simple_form.sv.yml +++ b/config/locales-glitch/simple_form.sv.yml @@ -1,27 +1 @@ ---- sv: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ta.yml b/config/locales-glitch/simple_form.ta.yml index 06ddc7fb82..4320953ce2 100644 --- a/config/locales-glitch/simple_form.ta.yml +++ b/config/locales-glitch/simple_form.ta.yml @@ -1,27 +1 @@ ---- ta: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.te.yml b/config/locales-glitch/simple_form.te.yml index 45d3a56934..34c54f18f6 100644 --- a/config/locales-glitch/simple_form.te.yml +++ b/config/locales-glitch/simple_form.te.yml @@ -1,27 +1 @@ ---- te: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.th.yml b/config/locales-glitch/simple_form.th.yml index b88200c9a2..a4431912a8 100644 --- a/config/locales-glitch/simple_form.th.yml +++ b/config/locales-glitch/simple_form.th.yml @@ -1,27 +1 @@ ---- th: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.tr.yml b/config/locales-glitch/simple_form.tr.yml index 9f17e4cd4e..077d41667a 100644 --- a/config/locales-glitch/simple_form.tr.yml +++ b/config/locales-glitch/simple_form.tr.yml @@ -1,27 +1 @@ ---- tr: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.tt.yml b/config/locales-glitch/simple_form.tt.yml index 4a3faf510b..5eab4abff9 100644 --- a/config/locales-glitch/simple_form.tt.yml +++ b/config/locales-glitch/simple_form.tt.yml @@ -1,27 +1 @@ ---- tt: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ug.yml b/config/locales-glitch/simple_form.ug.yml index 447959c10e..289acf2418 100644 --- a/config/locales-glitch/simple_form.ug.yml +++ b/config/locales-glitch/simple_form.ug.yml @@ -1,27 +1 @@ ---- ug: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.uk.yml b/config/locales-glitch/simple_form.uk.yml index 8553325375..c256c3246c 100644 --- a/config/locales-glitch/simple_form.uk.yml +++ b/config/locales-glitch/simple_form.uk.yml @@ -1,27 +1 @@ ---- uk: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.ur.yml b/config/locales-glitch/simple_form.ur.yml index d5bff2d0fb..2cace5883d 100644 --- a/config/locales-glitch/simple_form.ur.yml +++ b/config/locales-glitch/simple_form.ur.yml @@ -1,27 +1 @@ ---- ur: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.vi.yml b/config/locales-glitch/simple_form.vi.yml index f2a45d50b9..326506f0b1 100644 --- a/config/locales-glitch/simple_form.vi.yml +++ b/config/locales-glitch/simple_form.vi.yml @@ -1,27 +1 @@ ---- vi: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-CN.yml b/config/locales-glitch/simple_form.zh-CN.yml index f4c865d073..63b9e92221 100644 --- a/config/locales-glitch/simple_form.zh-CN.yml +++ b/config/locales-glitch/simple_form.zh-CN.yml @@ -1,27 +1,18 @@ --- zh-CN: simple_form: - glitch_only: glitch-soc hints: defaults: - fields: You can have up to %{count} items displayed as a table on your profile setting_default_content_type_html: 在撰写嘟文时,除非另有指定,假定它们使用原始 HTML 语言撰写 setting_default_content_type_markdown: 在撰写嘟文时,除非另有指定,假定它们使用 Markdown 进行富文本格式化 setting_default_content_type_plain: 在撰写嘟文时,除非另有指定,假定它们是没有特殊格式的纯文本(默认的 Mastodon 行为) setting_default_language: 你的嘟文语言可以自动检测,但不一定准确 - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. setting_skin: 更换为所选择的 Mastodon 风味 labels: defaults: setting_default_content_type: 嘟文的默认格式 - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown setting_default_content_type_plain: 纯文本 setting_favourite_modal: 在喜欢嘟文前询问我 (仅限于 Glitch 风味) setting_hide_followers_count: 隐藏你的关注者人数 setting_skin: 皮肤 setting_system_emoji_font: 表情符号使用系统默认字体 (仅限于 Glitch 风味) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-HK.yml b/config/locales-glitch/simple_form.zh-HK.yml index b1151106c9..35a3adbaf3 100644 --- a/config/locales-glitch/simple_form.zh-HK.yml +++ b/config/locales-glitch/simple_form.zh-HK.yml @@ -1,27 +1 @@ ---- zh: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/simple_form.zh-TW.yml b/config/locales-glitch/simple_form.zh-TW.yml index ce84b7ee62..cb82c05261 100644 --- a/config/locales-glitch/simple_form.zh-TW.yml +++ b/config/locales-glitch/simple_form.zh-TW.yml @@ -1,27 +1 @@ ---- zh-TW: - simple_form: - glitch_only: glitch-soc - hints: - defaults: - fields: You can have up to %{count} items displayed as a table on your profile - setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise - setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise - setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior) - setting_default_language: The language of your toots can be detected automatically, but it's not always accurate - setting_hide_followers_count: Hide your followers count from everybody, including you. Some applications may display a negative followers count. - setting_skin: Reskins the selected Mastodon flavour - labels: - defaults: - setting_default_content_type: Default format for toots - setting_default_content_type_html: HTML - setting_default_content_type_markdown: Markdown - setting_default_content_type_plain: Plain text - setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only) - setting_hide_followers_count: Hide your followers count - setting_skin: Skin - setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) - notification_emails: - trending_link: New trending link requires review - trending_status: New trending post requires review - trending_tag: New trending tag requires review diff --git a/config/locales-glitch/sk.yml b/config/locales-glitch/sk.yml index 1b51513723..f634a02824 100644 --- a/config/locales-glitch/sk.yml +++ b/config/locales-glitch/sk.yml @@ -1,38 +1 @@ ---- sk: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sl.yml b/config/locales-glitch/sl.yml index 20f43c42c2..26c7ce2e31 100644 --- a/config/locales-glitch/sl.yml +++ b/config/locales-glitch/sl.yml @@ -1,38 +1 @@ ---- sl: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sq.yml b/config/locales-glitch/sq.yml index a361906bcb..44ddadc95a 100644 --- a/config/locales-glitch/sq.yml +++ b/config/locales-glitch/sq.yml @@ -1,38 +1 @@ ---- sq: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sr-Latn.yml b/config/locales-glitch/sr-Latn.yml index edcd89a195..9e26af8191 100644 --- a/config/locales-glitch/sr-Latn.yml +++ b/config/locales-glitch/sr-Latn.yml @@ -1,38 +1 @@ ---- sr: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sr.yml b/config/locales-glitch/sr.yml index edcd89a195..9e26af8191 100644 --- a/config/locales-glitch/sr.yml +++ b/config/locales-glitch/sr.yml @@ -1,38 +1 @@ ---- sr: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/sv.yml b/config/locales-glitch/sv.yml index 31d646dcac..7e73a972a7 100644 --- a/config/locales-glitch/sv.yml +++ b/config/locales-glitch/sv.yml @@ -1,38 +1 @@ ---- sv: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ta.yml b/config/locales-glitch/ta.yml index 668c46ba88..4320953ce2 100644 --- a/config/locales-glitch/ta.yml +++ b/config/locales-glitch/ta.yml @@ -1,38 +1 @@ ---- ta: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/te.yml b/config/locales-glitch/te.yml index 95c11971f5..34c54f18f6 100644 --- a/config/locales-glitch/te.yml +++ b/config/locales-glitch/te.yml @@ -1,38 +1 @@ ---- te: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/th.yml b/config/locales-glitch/th.yml index bbf30457de..a4431912a8 100644 --- a/config/locales-glitch/th.yml +++ b/config/locales-glitch/th.yml @@ -1,38 +1 @@ ---- th: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/tr.yml b/config/locales-glitch/tr.yml index c374d1e130..077d41667a 100644 --- a/config/locales-glitch/tr.yml +++ b/config/locales-glitch/tr.yml @@ -1,38 +1 @@ ---- tr: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/tt.yml b/config/locales-glitch/tt.yml index 119e252728..5eab4abff9 100644 --- a/config/locales-glitch/tt.yml +++ b/config/locales-glitch/tt.yml @@ -1,38 +1 @@ ---- tt: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ug.yml b/config/locales-glitch/ug.yml index 4157effb9b..289acf2418 100644 --- a/config/locales-glitch/ug.yml +++ b/config/locales-glitch/ug.yml @@ -1,38 +1 @@ ---- ug: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/uk.yml b/config/locales-glitch/uk.yml index e28ccbc9e9..c256c3246c 100644 --- a/config/locales-glitch/uk.yml +++ b/config/locales-glitch/uk.yml @@ -1,38 +1 @@ ---- uk: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/ur.yml b/config/locales-glitch/ur.yml index 465898cdbd..2cace5883d 100644 --- a/config/locales-glitch/ur.yml +++ b/config/locales-glitch/ur.yml @@ -1,38 +1 @@ ---- ur: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/vi.yml b/config/locales-glitch/vi.yml index d8c3837980..326506f0b1 100644 --- a/config/locales-glitch/vi.yml +++ b/config/locales-glitch/vi.yml @@ -1,38 +1 @@ ---- vi: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/zh-CN.yml b/config/locales-glitch/zh-CN.yml index ff16d1743e..40a09c1c9d 100644 --- a/config/locales-glitch/zh-CN.yml +++ b/config/locales-glitch/zh-CN.yml @@ -1,21 +1,10 @@ --- zh-CN: admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin hide_followers_count: desc_html: 不要在用户资料中显示关注者人数 title: 隐藏关注者人数 - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other outgoing_spoilers: desc_html: 在联邦化嘟文的时候,将这个内容警告添加到没有内容警告的嘟文中。如果你的服务器专用于其他服务器可能希望有内容警告的内容,它会很有用。媒体也将被标记为敏感。 title: 对外嘟文的内容警告 @@ -25,13 +14,6 @@ zh-CN: show_replies_in_public_timelines: desc_html: 除了公开的自我回复(线程模式),在本地和跨站时间轴中显示公开回复。 title: 在公共时间轴中显示回复 - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification generic: use_this: 使用这个 settings: diff --git a/config/locales-glitch/zh-HK.yml b/config/locales-glitch/zh-HK.yml index 237a521fc3..35a3adbaf3 100644 --- a/config/locales-glitch/zh-HK.yml +++ b/config/locales-glitch/zh-HK.yml @@ -1,38 +1 @@ ---- zh: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours diff --git a/config/locales-glitch/zh-TW.yml b/config/locales-glitch/zh-TW.yml index 17c1f65ecb..cb82c05261 100644 --- a/config/locales-glitch/zh-TW.yml +++ b/config/locales-glitch/zh-TW.yml @@ -1,38 +1 @@ ---- zh-TW: - admin: - custom_emojis: - batch_copy_error: 'An error occurred when copying some of the selected emoji: %{message}' - batch_error: 'An error occurred: %{message}' - settings: - captcha_enabled: - desc_html: This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, this can make the registration process significantly less accessible to some (especially disabled) people. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
Users that have been invited through a limited-use invite will not need to solve a CAPTCHA - title: Require new users to solve a CAPTCHA to confirm their account - flavour_and_skin: - title: Flavour and skin - hide_followers_count: - desc_html: Do not show followers count on user profiles - title: Hide followers count - other: - preamble: Various glitch-soc settings not fitting in other categories. - title: Other - outgoing_spoilers: - desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive. - title: Content warning for outgoing toots - show_reblogs_in_public_timelines: - desc_html: Show public boosts of public toots in local and public timelines. - title: Show boosts in public timelines - show_replies_in_public_timelines: - desc_html: In addition to public self-replies (threads), show public replies in local and public timelines. - title: Show replies in public timelines - trending_status_cw: - desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive. - title: Allow posts with Content Warnings to trend - auth: - captcha_confirmation: - hint_html: Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can contact the server administrator if you have questions or need assistance with confirming your account. - title: User verification - generic: - use_this: Use this - settings: - flavours: Flavours From dbc3890489f5b0ddf7072782cb19884450f38d03 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 22 Dec 2022 07:50:34 +0100 Subject: [PATCH 0077/1220] New Crowdin updates (#2035) * New translations en.json (Russian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.json (Marathi) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.json (English, United Kingdom) [ci skip] * New translations en.json (Burmese) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.json (Faroese) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Uyghur) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Tatar) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Latin) [ci skip] * New translations en.json (Bosnian) [ci skip] * New translations en.json (French, Quebec) [ci skip] * New translations en.json (Sinhala) [ci skip] * New translations en.json (Cornish) [ci skip] * New translations en.json (Kannada) [ci skip] * New translations en.json (Scottish Gaelic) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.json (Aragonese) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Kurmanji (Kurdish)) [ci skip] * New translations en.json (Sorani (Kurdish)) [ci skip] * New translations en.json (Scots) [ci skip] * New translations en.json (Igbo) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Sanskrit) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Afrikaans) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Belarusian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Frisian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Irish) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Macedonian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Punjabi) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Marathi) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.yml (English, United Kingdom) [ci skip] * New translations en.yml (Burmese) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Faroese) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Uyghur) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Tatar) [ci skip] * New translations en.yml (Malayalam) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.yml (Latin) [ci skip] * New translations en.yml (Bosnian) [ci skip] * New translations en.yml (French, Quebec) [ci skip] * New translations en.yml (Sinhala) [ci skip] * New translations en.yml (Cornish) [ci skip] * New translations en.yml (Kannada) [ci skip] * New translations en.yml (Scottish Gaelic) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Aragonese) [ci skip] * New translations en.yml (Occitan) [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 en.yml (Scots) [ci skip] * New translations en.yml (Igbo) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations en.yml (Sanskrit) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Afrikaans) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations simple_form.en.yml (Belarusian) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Frisian) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Irish) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Lithuanian) [ci skip] * New translations simple_form.en.yml (Macedonian) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Punjabi) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Urdu (Pakistan)) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Marathi) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Kazakh) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Hindi) [ci skip] * New translations simple_form.en.yml (Malay) [ci skip] * New translations simple_form.en.yml (Telugu) [ci skip] * New translations simple_form.en.yml (English, United Kingdom) [ci skip] * New translations simple_form.en.yml (Burmese) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Faroese) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Uyghur) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Tatar) [ci skip] * New translations simple_form.en.yml (Malayalam) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Latin) [ci skip] * New translations simple_form.en.yml (Bosnian) [ci skip] * New translations simple_form.en.yml (French, Quebec) [ci skip] * New translations simple_form.en.yml (Sinhala) [ci skip] * New translations simple_form.en.yml (Cornish) [ci skip] * New translations simple_form.en.yml (Kannada) [ci skip] * New translations simple_form.en.yml (Scottish Gaelic) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Aragonese) [ci skip] * New translations simple_form.en.yml (Occitan) [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 simple_form.en.yml (Scots) [ci skip] * New translations simple_form.en.yml (Igbo) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations simple_form.en.yml (Sanskrit) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (Ido) [ci skip] * New translations en.json (Afrikaans) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] --- .../flavours/glitch/locales/af.json | 7 +- .../flavours/glitch/locales/de.json | 108 ++++++++++++++++++ .../flavours/glitch/locales/ko.json | 14 +++ config/locales-glitch/ko.yml | 12 ++ config/locales-glitch/simple_form.ko.yml | 3 + 5 files changed, 138 insertions(+), 6 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/af.json b/app/javascript/flavours/glitch/locales/af.json index 4d243f94c2..9e26dfeeb6 100644 --- a/app/javascript/flavours/glitch/locales/af.json +++ b/app/javascript/flavours/glitch/locales/af.json @@ -1,6 +1 @@ -{ - "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.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}.", - "settings.content_warnings": "Content warnings", - "settings.preferences": "Preferences" -} +{} \ No newline at end of file diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index 4d243f94c2..d4939cc201 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -1,6 +1,114 @@ { + "about.fork_disclaimer": "Glitch-soc ist freie, quelloffene Software geforkt von Mastodon.", + "account.add_account_note": "Notiz für @{name} hinzufügen", + "account.disclaimer_full": "Die folgenden Informationen könnten das Profil des Nutzers unvollständig wiedergeben.", + "account.follows": "Folgt", + "account.joined": "Beigetreten am {date}", + "account.suspended_disclaimer_full": "Dieser Nutzer wurde durch einen Moderator gesperrt.", + "account.view_full_profile": "Vollständiges Profil anzeigen", + "account_note.cancel": "Abbrechen", + "account_note.edit": "Bearbeiten", + "account_note.glitch_placeholder": "Kein Kommentar angegeben", + "account_note.save": "Speichern", + "advanced_options.icon_title": "Erweiterte Optionen", + "advanced_options.local-only.long": "Nicht auf anderen Instanzen posten", + "advanced_options.local-only.short": "Nur lokal", + "advanced_options.local-only.tooltip": "Dieser Post ist nur lokal", + "advanced_options.threaded_mode.long": "Öffnet automatisch eine Antwort beim Schreiben", + "advanced_options.threaded_mode.short": "Thread-Modus", + "advanced_options.threaded_mode.tooltip": "Thread-Modus aktiviert", + "boost_modal.missing_description": "Dieser Toot enthält Medien ohne Beschreibung", + "column.favourited_by": "Favorisiert von", + "column.heading": "Sonstiges", + "column.reblogged_by": "Geteilt von", + "column.subheading": "Sonstige Optionen", + "column_header.profile": "Profil", + "column_subheading.lists": "Listen", + "column_subheading.navigation": "Navigation", + "community.column_settings.allow_local_only": "Nur-lokale Toots anzeigen", + "compose.attach": "Anhängen...", + "compose.attach.doodle": "Etwas zeichnen", + "compose.attach.upload": "Eine Datei hochladen", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Unformatierter Text", + "compose_form.poll.multiple_choices": "Mehrfachauswahl erlauben", + "compose_form.poll.single_choice": "Eine Auswahl erlauben", + "compose_form.spoiler": "Text hinter Warnung verbergen", + "confirmation_modal.do_not_ask_again": "Nicht erneut nach Bestätigung fragen", + "confirmations.deprecated_settings.confirm": "Mastodon-Einstellungen verwenden", + "confirmations.deprecated_settings.message": "Einige der von dir verwendeten, glitch-soc-spezifischen {app_settings} wurden durch Mastodon {preferences} ersetzt und werden überschrieben:", + "confirmations.missing_media_description.confirm": "Trotzdem absenden", + "confirmations.missing_media_description.edit": "Anhänge bearbeiten", + "confirmations.missing_media_description.message": "Mindestens einem Anhang fehlt eine Beschreibung. Denke darüber nach, alle Anhänge für Sehbeeinträchtigte zu beschreiben, bevor du den Toot absendest.", + "confirmations.unfilter.author": "Urheber", + "confirmations.unfilter.confirm": "Anzeigen", + "confirmations.unfilter.edit_filter": "Filter bearbeiten", + "confirmations.unfilter.filters": "Passende{count, plural, one {r} other {}} Filter", + "content-type.change": "Inhaltstyp", + "direct.group_by_conversations": "Nach Unterhaltung gruppieren", + "endorsed_accounts_editor.endorsed_accounts": "Empfohlene Konten", + "favourite_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt", + "getting_started.onboarding": "Führe mich herum", + "home.column_settings.advanced": "Erweitert", + "home.column_settings.filter_regex": "Mit regulären Ausdrücken herausfiltern", + "home.column_settings.show_direct": "Direktnachrichten anzeigen", + "home.settings": "Spalteneinstellungen", + "keyboard_shortcuts.bookmark": "zu Lesezeichen hinzufügen", + "keyboard_shortcuts.secondary_toot": "Toot mit sekundärer Privatsphäreeinstellung absenden", + "keyboard_shortcuts.toggle_collapse": "Toots ein-/ausklappen", + "layout.auto": "Automatisch", + "layout.desktop": "Desktop", + "layout.hint.auto": "Automatisch das Layout anhand der Einstellung \"Erweitertes Webinterface verwenden\" und Bildschirmgröße auswählen.", + "layout.hint.desktop": "Das mehrspaltige Layout verwenden, unabhängig von der Einstellung \"Erweitertes Webinterface verwenden\".", + "layout.hint.single": "Das einspaltige Layout verwenden, unabhängig von der Einstellung \"Erweitertes Webinterface verwenden\".", + "layout.single": "Mobil", + "media_gallery.sensitive": "Empfindlich", + "moved_to_warning": "Dieses Konto ist als verschoben zu {moved_to_link} markiert und akzeptiert daher keine neuen Follower.", + "navigation_bar.app_settings": "App-Einstellungen", + "navigation_bar.featured_users": "Empfohlene Nutzer", + "navigation_bar.info": "Erweiterte Informationen", + "navigation_bar.keyboard_shortcuts": "Tastaturkürzel", + "navigation_bar.misc": "Sonstiges", + "notification.markForDeletion": "Zum Entfernen auswählen", + "notification_purge.btn_all": "Alle\nauswählen", + "notification_purge.btn_apply": "Ausgewählte\nlöschen", + "notification_purge.btn_invert": "Auswahl\numkehren", + "notification_purge.btn_none": "Auswahl\naufheben", + "notification_purge.start": "Benachrichtigung-Aufräumen-Modus starten", + "notifications.marked_clear": "Ausgewählte Benachrichtigungen löschen", + "notifications.marked_clear_confirmation": "Möchtest du wirklich alle auswählten Benachrichtigungen für immer entfernen?", "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.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}.", + "settings.auto_collapse_lengthy": "Lange Toots", + "settings.auto_collapse_media": "Toots mit Anhängen", + "settings.auto_collapse_notifications": "Benachrichtigungen", + "settings.auto_collapse_reblogs": "Geteilte Toots", + "settings.auto_collapse_replies": "Antworten", + "settings.close": "Schließen", + "settings.collapsed_statuses": "Eingeklappte Toots", + "settings.compose_box_opts": "Verfassen-Box", + "settings.confirm_before_clearing_draft": "Zeige einen Bestätigungsdialog, bevor der derzeitige Entwurf verworfen wird", + "settings.confirm_boost_missing_media_description": "Zeige einen Bestätigungsdialog, bevor Toots mit Anhängen ohne Beschreibung geteilt werden", + "settings.confirm_missing_media_description": "Zeige einen Bestätigungsdialog, bevor Toots mit Anhängen ohne Beschreibung abgesendet werden", "settings.content_warnings": "Content warnings", + "settings.content_warnings.regexp": "Regulärer Ausdruck", + "settings.content_warnings_filter": "Inhaltswarnungen, die nicht ausgeklappt werden sollen:", + "settings.content_warnings_media_outside": "Medienanhänge außerhalb von Inhaltswarnungen anzeigen", + "settings.content_warnings_media_outside_hint": "Das ursprüngliche Verhalten von Mastodon wiederherstellen, in welchem Inhaltswarnungen keine Auswirkungen auf Anhänge haben", + "settings.content_warnings_shared_state": "Inhalt aller Kopien auf einmal ein-/ausblenden", + "settings.content_warnings_shared_state_hint": "Das ursprüngliche Verhalten von Mastodon wiederhertstellen, in welchem der Inhaltswarnungs-Knopf alle Kopien eines Posts auf einmal ein-/ausklappt. Das wird das automatische Einklappen jedweder Kopie eines Toots mit ausgeklappter Inhaltswarnung", + "settings.content_warnings_unfold_opts": "Optionen zum automatischen Ausklappen", + "settings.deprecated_setting": "Diese Einstellung wird nun von Mastodons {settings_page_link} gesteuert", + "settings.enable_collapsed": "Eingeklappte Toots aktivieren", + "settings.enable_collapsed_hint": "Eingeklappte Posts haben einen Teil ihres Inhalts verborgen, um weniger Platz am Bildschirm einzunehmen. Das ist zusätzlich zur Inhaltswarnfunktion", + "settings.enable_content_warnings_auto_unfold": "Inhaltswarnungen automatisch ausklappen", + "settings.filters": "Filter", + "settings.general": "Allgemein", + "settings.hicolor_privacy_icons": "Eingefärbte Privatsphäre-Symbole", + "settings.hicolor_privacy_icons.hint": "Zeige Privatsphäre-Symbole in hellen und leicht zu unterscheidenden Farben", + "settings.image_backgrounds": "Bildhintergründe", + "settings.image_backgrounds_media": "Vorschau eingeklappter Toot-Anhänge", + "settings.image_backgrounds_media_hint": "Wenn der Post Anhänge hat, wird der erste als Hintergrund verwendet", "settings.preferences": "Preferences" } diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json index c22dfb072b..de54ff5a6a 100644 --- a/app/javascript/flavours/glitch/locales/ko.json +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -1,7 +1,9 @@ { + "about.fork_disclaimer": "글리치는 마스토돈에서 포크한 자유 오픈소스 소프트웨어입니다.", "account.add_account_note": "@{name} 님에 대한 메모 추가", "account.disclaimer_full": "아래에 있는 정보들은 사용자의 프로필을 완벽하게 나타내지 못하고 있을 수도 있습니다.", "account.follows": "팔로우", + "account.joined": "{date}에 가입함", "account.suspended_disclaimer_full": "이 사용자는 중재자에 의해 정지되었습니다.", "account.view_full_profile": "전체 프로필 보기", "account_note.cancel": "취소", @@ -33,6 +35,8 @@ "compose_form.poll.single_choice": "하나만 선택 가능", "compose_form.spoiler": "경고 메시지로 숨기기", "confirmation_modal.do_not_ask_again": "다음부터 확인창을 띄우지 않기", + "confirmations.deprecated_settings.confirm": "마스토돈 설정 사용", + "confirmations.deprecated_settings.message": "사용하던 몇몇 기기별 글리치 {app_settings}은 마스토돈 {preferences}으로 대체되었습니다:", "confirmations.missing_media_description.confirm": "그냥 보내기", "confirmations.missing_media_description.edit": "미디어 편집", "confirmations.missing_media_description.message": "하나 이상의 미디어에 대해 설명을 작성하지 않았습니다. 시각장애인을 위해 모든 미디어에 설명을 추가하는 것을 고려해주세요.", @@ -41,6 +45,7 @@ "confirmations.unfilter.edit_filter": "필터 편집", "confirmations.unfilter.filters": "적용된 {count, plural, one {필터} other {필터들}}", "content-type.change": "콘텐트 타입", + "direct.group_by_conversations": "대화별로 묶기", "endorsed_accounts_editor.endorsed_accounts": "추천하는 계정들", "favourite_modal.combo": "다음엔 {combo}를 눌러 건너뛸 수 있습니다", "getting_started.onboarding": "둘러보기", @@ -61,6 +66,8 @@ "moved_to_warning": "이 계정은 {moved_to_link}로 이동한 것으로 표시되었고, 새 팔로우를 받지 않는 것 같습니다.", "navigation_bar.app_settings": "앱 설정", "navigation_bar.featured_users": "추천된 계정들", + "navigation_bar.info": "추가 정보", + "navigation_bar.keyboard_shortcuts": "키보드 단축기", "navigation_bar.misc": "다양한 옵션들", "notification.markForDeletion": "삭제하기 위해 표시", "notification_purge.btn_all": "전체선택", @@ -107,8 +114,14 @@ "settings.content_warnings": "열람주의", "settings.content_warnings.regexp": "정규표현식", "settings.content_warnings_filter": "자동으로 펼치지 않을 열람주의 문구:", + "settings.content_warnings_media_outside": "미디어 첨부를 열람주의 바깥에 보이기", + "settings.content_warnings_media_outside_hint": "마스토돈 원본처럼 열람주의 토글이 미디어 첨부에는 영향을 미치지 않게 합니다", + "settings.content_warnings_shared_state": "동일한 글의 열람주의를 한번에 열고 닫기", + "settings.content_warnings_shared_state_hint": "마스토돈 원본처럼 열람주의 버튼이 동일한 모든 글에 대해 영향을 미치게 합니다. 펼쳐진 열람주의 글이 자동으로 다시 접히는 것을 방지합니다", + "settings.content_warnings_unfold_opts": "자동 펼치기 옵션", "settings.deprecated_setting": "이 설정은 마스토돈의 {settings_page_link}에서 관리됩니다", "settings.enable_collapsed": "접힌 글 활성화", + "settings.enable_collapsed_hint": "접힌 게시물을 콘텐츠의 일부분을 가려서 공간을 적게 차지합니다. 열람주의 기능과는 다릅니다", "settings.enable_content_warnings_auto_unfold": "자동으로 열람주의 펼치기", "settings.filters": "필터", "settings.general": "일반", @@ -116,6 +129,7 @@ "settings.hicolor_privacy_icons.hint": "공개설정 아이콘들을 밝고 구분하기 쉬운 색으로 표시합니다", "settings.image_backgrounds": "이미지 배경", "settings.image_backgrounds_media": "접힌 글의 미디어 미리보기", + "settings.image_backgrounds_media_hint": "게시물이 미디어 첨부를 포함한다면, 첫번째를 배경으로 사용합니다", "settings.image_backgrounds_users": "접힌 글에 이미지 배경 주기", "settings.inline_preview_cards": "외부 링크에 대한 미리보기 카드를 같이 표시", "settings.layout": "레이아웃:", diff --git a/config/locales-glitch/ko.yml b/config/locales-glitch/ko.yml index bc9c4e86b7..dd8da37923 100644 --- a/config/locales-glitch/ko.yml +++ b/config/locales-glitch/ko.yml @@ -8,9 +8,17 @@ ko: captcha_enabled: desc_html: 이것은 hCaptcha의 외부 스크립트에 의존합니다, 이것은 개인정보 보호에 위협을 가할 수도 있습니다. 추가적으로, 이것은 몇몇 사람들(특히나 장애인들)에게 가입 절차의 접근성을 심각하게 떨어트릴 수 있습니다. 이러한 이유로, 대체제로 승인 전용이나 초대제를 통한 가입을 고려해보세요.
한정된 사용만 가능한 초대장을 통한 가입자들은 CAPTCHA를 풀지 않아도 됩니다 title: 새로운 사용자가 계정 확인을 위해서는 CAPTCHA를 풀어야 하도록 합니다 + flavour_and_skin: + title: 풍미와 스킨 hide_followers_count: desc_html: 사용자 프로필에 팔로워 수를 표시하지 않습니다 title: 팔로워 수 숨기기 + other: + preamble: 다른 곳에 맞지 않는 다양한 글리치 전용 설정들. + title: 기타 + outgoing_spoilers: + desc_html: 툿을 연합할 때 열람주의가 없다면 여기 적힌 열람주의를 추가합니다. 다른 서버에서 열람주의를 설정하기를 요하는 주제에 특화된 서버라면 유용합니다. 미디어 또한 민감함으로 설정됩니다. + title: 나가는 툿에 대한 열람주의 show_reblogs_in_public_timelines: desc_html: 공개글의 공개적인 부스트를 로컬과 공개 타임라인에 표시합니다. title: 부스트를 공개 타임라인에 표시 @@ -20,6 +28,10 @@ ko: trending_status_cw: desc_html: 유행하는 게시물이 활성화 되었을 때, 열람주의가 설정된 글도 허용합니다. 이 설정의 변경은 소급 적용되지 않습니다. title: 열람주의를 가진 글이 유행에 오를 수 있도록 허용 + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: 글리치도 마찬가지입니다! auth: captcha_confirmation: hint_html: 한가지 단계가 남았습니다! 계정을 확인하기 위해서는, CAPTCHA를 풀어야 합니다. 질문이 있거나 계정 확인 과정에서 도움을 받고 싶은 경우 서버의 관리자에게 연락해서 해결할 수 있습니다. diff --git a/config/locales-glitch/simple_form.ko.yml b/config/locales-glitch/simple_form.ko.yml index b7d675aa5e..95e5b97820 100644 --- a/config/locales-glitch/simple_form.ko.yml +++ b/config/locales-glitch/simple_form.ko.yml @@ -1,12 +1,15 @@ --- ko: simple_form: + glitch_only: 글리치 hints: defaults: + fields: 최대 %{count}개의 항목을 프로필에 표 형태로 표시할 수 있습니다 setting_default_content_type_html: 게시물을 작성할 때, 형식을 지정하지 않았다면, 생 HTML이라고 가정합니다 setting_default_content_type_markdown: 게시물을 작성할 때, 형식을 지정하지 않았다면, 마크다운이라고 가정합니다 setting_default_content_type_plain: 게시물을 작성할 때, 형식을 지정하지 않았다면, 일반적인 텍스트라고 가정합니다. (마스토돈의 기본 동작) setting_default_language: 작성하는 게시물의 언어는 자동으로 설정될 수 있습니다, 하지만 언제나 정확하지는 않습니다 + setting_hide_followers_count: 나를 포함해서 모든 사람들에게서 내 팔로워 수를 숨깁니다. 몇몇 앱에서는 팔로워 수가 음수로 표시될 수 있습니다. setting_skin: 선택한 마스토돈 풍미의 스킨을 바꿉니다 labels: defaults: From 8b8ca8d71b2e4af1e30be20b78bdc504cff6ae5a Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 22 Dec 2022 07:54:50 +0100 Subject: [PATCH 0078/1220] New Crowdin updates (#2036) * New translations en.json (Afrikaans) [ci skip] * New translations en.json (Korean) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] --- app/javascript/flavours/glitch/locales/af.json | 2 +- app/javascript/flavours/glitch/locales/ko.json | 1 + config/locales-glitch/simple_form.ko.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/locales/af.json b/app/javascript/flavours/glitch/locales/af.json index 9e26dfeeb6..0967ef424b 100644 --- a/app/javascript/flavours/glitch/locales/af.json +++ b/app/javascript/flavours/glitch/locales/af.json @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json index de54ff5a6a..f523a3ea33 100644 --- a/app/javascript/flavours/glitch/locales/ko.json +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -29,6 +29,7 @@ "compose.attach": "첨부…", "compose.attach.doodle": "뭔가 그려보세요", "compose.attach.upload": "파일 업로드", + "compose.content-type.html": "HTML", "compose.content-type.markdown": "마크다운", "compose.content-type.plain": "일반 텍스트", "compose_form.poll.multiple_choices": "여러 개 선택 가능", diff --git a/config/locales-glitch/simple_form.ko.yml b/config/locales-glitch/simple_form.ko.yml index 95e5b97820..0390b7043d 100644 --- a/config/locales-glitch/simple_form.ko.yml +++ b/config/locales-glitch/simple_form.ko.yml @@ -14,6 +14,7 @@ ko: labels: defaults: setting_default_content_type: 게시물의 기본 포맷 + setting_default_content_type_html: HTML setting_default_content_type_markdown: 마크다운 setting_default_content_type_plain: 일반 텍스트 setting_favourite_modal: 관심글을 지정할 때 확인 창을 띄웁니다(글리치 풍미에만 적용됨) From f79ab85a6ab5f3026bae305f868996cd96ab7c65 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 22 Dec 2022 13:51:16 +0100 Subject: [PATCH 0079/1220] New Crowdin updates (#2037) * New translations en.json (German) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations simple_form.en.yml (French) [ci skip] --- .../flavours/glitch/locales/de.json | 8 +++-- .../flavours/glitch/locales/fr.json | 32 ++++++++++++++++++- config/locales-glitch/fr.yml | 31 ++++++++++++++++++ config/locales-glitch/simple_form.fr.yml | 10 ++++++ 4 files changed, 77 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index d4939cc201..3dd59a43ed 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -72,12 +72,14 @@ "navigation_bar.misc": "Sonstiges", "notification.markForDeletion": "Zum Entfernen auswählen", "notification_purge.btn_all": "Alle\nauswählen", - "notification_purge.btn_apply": "Ausgewählte\nlöschen", + "notification_purge.btn_apply": "Ausgewählte\nentfernen", "notification_purge.btn_invert": "Auswahl\numkehren", "notification_purge.btn_none": "Auswahl\naufheben", - "notification_purge.start": "Benachrichtigung-Aufräumen-Modus starten", - "notifications.marked_clear": "Ausgewählte Benachrichtigungen löschen", + "notification_purge.start": "Benachrichtigungen-Aufräumen-Modus starten", + "notifications.marked_clear": "Ausgewählte Benachrichtigungen entfernen", "notifications.marked_clear_confirmation": "Möchtest du wirklich alle auswählten Benachrichtigungen für immer entfernen?", + "onboarding.done": "Fertig", + "onboarding.next": "Weiter", "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.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}.", "settings.auto_collapse_lengthy": "Lange Toots", diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json index e67fcfebf5..4bda676a0b 100644 --- a/app/javascript/flavours/glitch/locales/fr.json +++ b/app/javascript/flavours/glitch/locales/fr.json @@ -1,8 +1,38 @@ { "account.add_account_note": "Ajouter une note pour @{name}", "account.follows": "Abonnements", + "column_header.profile": "Profil", + "column_subheading.lists": "Listes", + "column_subheading.navigation": "Navigation", + "compose.attach": "Joindre…", + "compose.attach.doodle": "Dessiner quelque chose", + "compose.attach.upload": "Téléverser un fichier", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Text brut", + "compose_form.poll.multiple_choices": "Choix multiples", + "compose_form.poll.single_choice": "Choix unique", + "confirmations.missing_media_description.confirm": "Envoyer quand même", "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.admin": "Votre admin d’instance est {admin}.", "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": "applications mobiles", + "settings.auto_collapse_reblogs": "Boosts", + "settings.auto_collapse_replies": "Réponses", + "settings.close": "Fermer", "settings.content_warnings": "Content warnings", - "settings.preferences": "Preferences" + "settings.content_warnings.regexp": "Expression rationnelle", + "settings.filters": "Filtres", + "settings.general": "Général", + "settings.notifications_opts": "Options des notifications", + "settings.pop_in_left": "Gauche", + "settings.pop_in_right": "Droite", + "settings.preferences": "Preferences", + "settings.side_arm.none": "Aucun", + "settings.status_icons_language": "Indicateur de langue", + "settings.status_icons_media": "Indicateur de médias et sondage", + "settings.status_icons_reply": "Indicateur de réponses", + "status.sensitive_toggle": "Cliquer pour voir", + "web_app_crash.debug_info": "Informations de débogage", + "web_app_crash.settings": "paramètres" } diff --git a/config/locales-glitch/fr.yml b/config/locales-glitch/fr.yml index 3c5b41b9ee..44e032e661 100644 --- a/config/locales-glitch/fr.yml +++ b/config/locales-glitch/fr.yml @@ -1,11 +1,42 @@ --- fr: admin: + custom_emojis: + batch_copy_error: 'Une erreur est survenue lors de la copie de certains des émojis sélectionnés : %{message}' + batch_error: 'Une erreur est survenue : %{message}' settings: + captcha_enabled: + desc_html: Ceci se base sur des scripts externes venant de hCaptcha, ce qui peut engendrer des soucis de sécurité et de confidentialité. De plus, cela peut rendre l'inscription beaucoup moins accessible pour certaines personnes (comme les personnes handicapées). Pour ces raisons, veuillez préférer des mesures alternatives telles que l'inscription sur acceptation ou invitation.
Les utilisateurs qui ont été invités via une invitation à usage limité n'auront pas à résoudre un CAPTCHA + title: Obliger les nouveaux utilisateurs à résoudre un CAPTCHA pour vérifier leur compte + flavour_and_skin: + title: Apparence et thèmes + hide_followers_count: + desc_html: Ne pas afficher le nombre d'abonné·e·s sur les profils des utilisateurs + title: Cacher le nombre d'abonné·e·s + other: + preamble: Divers autres paramètres de glitch-soc. + title: Autres outgoing_spoilers: desc_html: Ajouter un avertissement de contenu à tous les messages lorsqu'ils sont fédérés s'ils n'en possèdent pas déjà. Cela peut être utile si votre serveur est spécialisé dans un type de contenu sur lequel les autres serveurs pourraient vouloir un Avertissement de Contenu. Les médias seront également marqués comme sensibles. title: Avertissement de contenu pour les messages sortants + show_reblogs_in_public_timelines: + desc_html: Afficher les partages publics de posts publics dans le fil local et global. + title: Afficher les partages dans les fils publics + show_replies_in_public_timelines: + desc_html: En plus des réponses à soi-même (threads), afficher les réponses publiques dans le fil local et global. + title: Afficher les réponses dans les fils publics + trending_status_cw: + desc_html: Quand les posts en tendance sont activés, permettre aux posts avec des avertissements de contenu (CW) d'être éligibles. Les changements effectués sur ce paramètre ne sont pas rétroactifs. + title: Autoriser les posts avec des avertissements de contenu à être en tendances appearance: localization: glitch_guide_link: https://fr.crowdin.com/project/glitch-soc 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 Date: Thu, 22 Dec 2022 22:10:54 +0100 Subject: [PATCH 0084/1220] Revert "Add titles to RSS feeds again" It seems that most RSS/Atom feed readers simply suck and should be able to parse the entries' body instead. This reverts commit daaf3832 --- README.md | 4 ---- app/views/accounts/show.rss.ruby | 1 - app/views/tags/show.rss.ruby | 1 - 3 files changed, 6 deletions(-) diff --git a/README.md b/README.md index 5b007cdf30..4da0932879 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,7 @@ I highly suggest only ever running the `main` branch in production! - Allow higher resolution images. (4096x4096 instead of the previous limit of 1920x1080) - Allow posting polls with only one poll option (if `MIN_POLL_OPTIONS` is set to 1 on your instance). - Added oatstodon flavour (taken from [types.pl fork](https://github.com/ralsei/types.pl), by [@oat@hellsite.site](https://hellsite.site/@oat)) -- RSS feeds have titles again. - - Account RSS feeds show the CW (if applicable). - - Tag RSS feeds show the handle (username if local, username@domain if remote) and the CW (if applicable). - Emoji reactions on posts, a feature originally developed for [Nyastodon](https://git.bsd.gay/fef/nyastodon). Currently pending [merge into glitch-soc](https://github.com/glitch-soc/mastodon/pull/1980). - ## Previous differences now merged into glitch-soc - Fixed incorrect upload size limit display when adding new a new custom emoji. ([Pull request](https://github.com/glitch-soc/mastodon/pull/1763)) - Everything merged into vanilla Mastodon diff --git a/app/views/accounts/show.rss.ruby b/app/views/accounts/show.rss.ruby index 30cb42f8d0..34e29d483f 100644 --- a/app/views/accounts/show.rss.ruby +++ b/app/views/accounts/show.rss.ruby @@ -9,7 +9,6 @@ RSS::Builder.build do |doc| @statuses.each do |status| doc.item do |item| - item.title("New post#{" (CW: #{status.spoiler_text})" unless status.spoiler_text.empty?}") item.link(ActivityPub::TagManager.instance.url_for(status)) item.pub_date(status.created_at) item.description(rss_status_content_format(status)) diff --git a/app/views/tags/show.rss.ruby b/app/views/tags/show.rss.ruby index 25f76610ff..8e0c2327b5 100644 --- a/app/views/tags/show.rss.ruby +++ b/app/views/tags/show.rss.ruby @@ -7,7 +7,6 @@ RSS::Builder.build do |doc| @statuses.each do |status| doc.item do |item| - item.title("New post by #{status.account.pretty_acct}#{" (CW: #{status.spoiler_text})" unless status.spoiler_text.empty?}") item.link(ActivityPub::TagManager.instance.url_for(status)) item.pub_date(status.created_at) item.description(rss_status_content_format(status)) From 05b3907b0c066996ecda427d6f96b4ff1d9e32f9 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 23 Dec 2022 10:15:47 +0100 Subject: [PATCH 0085/1220] New Crowdin updates (#2043) * New translations en.json (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.json (German) [ci skip] * New translations en.yml (German) [ci skip] --- .../flavours/glitch/locales/de.json | 91 ++++++++++++++++++- config/locales-glitch/de.yml | 41 +++++++++ config/locales-glitch/simple_form.de.yml | 26 ++++++ 3 files changed, 155 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index 1c592e9277..76bd518fba 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -80,8 +80,27 @@ "notifications.marked_clear_confirmation": "Möchtest du wirklich alle auswählten Benachrichtigungen für immer entfernen?", "onboarding.done": "Fertig", "onboarding.next": "Weiter", - "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.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_five.public_timelines": "Die lokale Timeline zeigt öffentliche Posts von allen auf {domain}. Die föderierte Timeline zeigt öffentliche Posts von allen, denen Leute auf {domain} folgen. Das sind die öffentlichen Timelines, eine tolle Möglichkeit, neue Leute zu entdecken.", + "onboarding.page_four.home": "Die Startseite zeigt Posts von Leuten an, denen du folgst.", + "onboarding.page_four.notifications": "Die Benachrichtigungs-Spalte zeigt an, wenn jemand mit dir interagiert.", + "onboarding.page_one.federation": "{domain} ist eine \"Instanz\" von Mastodon. Mastodon ist ein Netzwerk aus unabhängigen Servern, die zusammen ein größeres soziales Netzwerk bilden. Diese Server nennen wir Instanzen.", + "onboarding.page_one.handle": "Du bist auf {domain}, also ist dein vollständiger Nutzername {handle}", + "onboarding.page_one.welcome": "Willkommen auf {domain}!", + "onboarding.page_six.admin": "Dein Instanz-Admin ist {admin}.", + "onboarding.page_six.almost_done": "Fast geschafft...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "Es gibt {apps} für iOS, Android und andere Plattformen.", + "onboarding.page_six.github": "{domain} läuft auf glitch-soc. glitch-soc ist ein freundlicher {fork} von {Mastodon}, und ist mit jeder Mastodon-App oder -Instanz kompatibel. glitch-soc ist komplett frei und quelloffen. Auf {github} kannst du Fehler melden, Features anfragen oder Code beitragen.", + "onboarding.page_six.guidelines": "Community-Richtlinien", + "onboarding.page_six.read_guidelines": "Bitte lies {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile Apps", + "onboarding.page_three.profile": "Bearbeite dein Profil, um deinen Avatar, \"Über mich\" und den Anzeigenamen zu ändern. Dort findest du auch andere Einstellungen.", + "onboarding.page_three.search": "Benutze die Suchleiste, um Leute zu finden und Hashtags anzusehen, wie etwa {illustration} und {introductions}. Um nach einer Person zu suchen, die nicht auf dieser Instanz ist, benutze deren vollständigen Nutzername.", + "onboarding.page_two.compose": "Schreibe Posts in der Verfassen-Spalte. Mit den Symbolen unten kannst du Bilder hochladen, Privatsphäre-Einstellungen ändern, und Inhaltswarnungen hinzufügen.", + "onboarding.skip": "Überspringen", + "settings.always_show_spoilers_field": "Das Inhaltswarnungs-Feld immer aktivieren", + "settings.auto_collapse": "Automatisches Einklappen", + "settings.auto_collapse_all": "Alles", "settings.auto_collapse_lengthy": "Lange Toots", "settings.auto_collapse_media": "Toots mit Anhängen", "settings.auto_collapse_notifications": "Benachrichtigungen", @@ -111,5 +130,71 @@ "settings.image_backgrounds": "Bildhintergründe", "settings.image_backgrounds_media": "Vorschau eingeklappter Toot-Anhänge", "settings.image_backgrounds_media_hint": "Wenn der Post Anhänge hat, wird der erste als Hintergrund verwendet", - "settings.preferences": "Preferences" + "settings.image_backgrounds_users": "Eingeklappten Toots einen Bild-Hintergrund geben", + "settings.inline_preview_cards": "Eingebettete Vorschaukarten für externe Links", + "settings.layout": "Layout:", + "settings.layout_opts": "Layout-Optionen", + "settings.media": "Medien", + "settings.media_fullwidth": "Medienvorschau in voller Breite", + "settings.media_letterbox": "Mediengröße anpassen", + "settings.media_letterbox_hint": "Medien runterskalieren und einpassen um die Bildbehälter zu füllen anstatt zu strecken und zuzuschneiden", + "settings.media_reveal_behind_cw": "Empfindliche Medien hinter Inhaltswarnungen standardmäßig anzeigen", + "settings.notifications.favicon_badge": "Favicon-Badge für ungelesene Benachrichtigungen", + "settings.notifications.favicon_badge.hint": "Ein Badge für ungelesene Benachrichtigungen zum Favicon hinzufügen", + "settings.notifications.tab_badge": "Badge für ungelesene Benachrichtigungen", + "settings.notifications.tab_badge.hint": "Ein Badge für ungelesene Benachrichtigungen in den Spaltensymbolen anzeigen, wenn die Benachrichtigungen nicht offen sind", + "settings.notifications_opts": "Benachrichtigungsoptionen", + "settings.pop_in_left": "Links", + "settings.pop_in_player": "Pop-In-Player aktivieren", + "settings.pop_in_position": "Position des Pop-In-Players:", + "settings.pop_in_right": "Rechts", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "\"re: \" beim Antworten an Inhaltswarnung voranstellen", + "settings.preselect_on_reply": "Nutzernamen bei Antwort vorauswählen", + "settings.preselect_on_reply_hint": "Beim Antworten auf eine Konversation alle Nutzernamen auswählen, die nach dem ersten kommen", + "settings.rewrite_mentions": "Erwähnungen in angezeigten Status umschreiben", + "settings.rewrite_mentions_acct": "Mit Nutzernamen und Domain umschreiben (wenn das Konto auf einer anderen Instanz ist)", + "settings.rewrite_mentions_no": "Erwähnungen nicht umschreiben", + "settings.rewrite_mentions_username": "Mit Nutzername umschreiben", + "settings.shared_settings_link": "Nutzereinstellungen", + "settings.show_action_bar": "Aktions-Knöpfe in eingeklappten Toots anzeigen", + "settings.show_content_type_choice": "Auswahl für die Inhaltsart beim Verfassen von Toots anzeigen", + "settings.show_reply_counter": "Schätzung der Antwortanzahl anzeigen", + "settings.side_arm": "Sekundärer Toot-Knopf:", + "settings.side_arm.none": "Nichts", + "settings.side_arm_reply_mode": "Beim Antworten auf einen Toot sollte der sekundäre Toot-Knopf:", + "settings.side_arm_reply_mode.copy": "Privatsphäre-Einstellung des zu beantwortenden Toot verwenden", + "settings.side_arm_reply_mode.keep": "Die eingestellte Privatsphäre beibehalten", + "settings.side_arm_reply_mode.restrict": "Privatsphäre-Einstellung auf die des zu beantwortenden Toot beschränken", + "settings.status_icons": "Toot-Symbole", + "settings.status_icons_language": "Sprach-Indikator", + "settings.status_icons_local_only": "\"nur Lokal\"-Indikator", + "settings.status_icons_media": "Medien- und Umfragen-Indikatoren", + "settings.status_icons_reply": "Antwort-Indikator", + "settings.status_icons_visibility": "Toot-Privatsphäre-Indikator", + "settings.swipe_to_change_columns": "Das Wechseln der Spalte durch Wischen erlauben (nur für die mobile Ansicht)", + "settings.tag_misleading_links": "Irreführende Links markieren", + "settings.tag_misleading_links.hint": "Füge eine visuelle Indikation mit dem Ziel-Host des Links zu jedem Link hinzu, bei dem dieser nicht explizit genannt wird", + "settings.wide_view": "Breite Ansicht (nur für den Desktop-Modus)", + "settings.wide_view_hint": "Verbreitert Spalten, um den verfügbaren Platz besser zu füllen.", + "status.collapse": "Einklappen", + "status.has_audio": "Hat angehängte Audiodateien", + "status.has_pictures": "Hat angehängte Bilder", + "status.has_preview_card": "Hat eine Vorschaukarte", + "status.has_video": "Hat angehängte Videos", + "status.in_reply_to": "Dieser Toot ist eine Antwort", + "status.is_poll": "Dieser Toot ist eine Umfrage", + "status.local_only": "Nur auf deiner Instanz sichtbar", + "status.sensitive_toggle": "Zum Anzeigen klicken", + "status.uncollapse": "Ausklappen", + "web_app_crash.change_your_settings": "Deine {settings} ändern", + "web_app_crash.content": "Du kannst eines der Folgenden ausprobieren:", + "web_app_crash.debug_info": "Debug-Informationen", + "web_app_crash.disable_addons": "Browser-Add-ons oder eingebaute Übersetzungswerkzeuge deaktivieren", + "web_app_crash.issue_tracker": "Issue-Tracker", + "web_app_crash.reload": "neu laden", + "web_app_crash.reload_page": "Die Seite {reload}", + "web_app_crash.report_issue": "Einen Fehler im {issuetracker} melden", + "web_app_crash.settings": "Einstellungen", + "web_app_crash.title": "Es tut uns leid, aber mit der Mastodon-App ist etwas schiefgelaufen." } diff --git a/config/locales-glitch/de.yml b/config/locales-glitch/de.yml index 346523bb60..a2ea8248c9 100644 --- a/config/locales-glitch/de.yml +++ b/config/locales-glitch/de.yml @@ -1 +1,42 @@ +--- de: + admin: + custom_emojis: + batch_copy_error: 'Fehler ist beim Kopieren einiger der ausgewählten Emoji aufgetreten: %{message}' + batch_error: 'Ein Fehler ist aufgetreten: %{message}' + settings: + captcha_enabled: + desc_html: Dies beruht auf externen Skripts von hCaptcha, was Sicherheits- und Datenschutz-Bedenken auslösen kann. Zusätzlich kann das den Registrierungsprozess für manche (besonders behinderte) Leute signifikant weniger zugänglich machen. Aus diesen Gründen, bitte ziehe alternative Maßnahmen, wie Zulassungs- oder Einladungs-basierte Registrierung, in Erwägung.
Nutzer, die durch eine Einladung mit eingeschränkter Verwendungsanzahl eingeladen wurden, werden kein CAPTCHA lösen müssen + title: Neue Benutzer sollen ein CAPTCHA lösen müssen, um ihr Konto zu bestätigen + flavour_and_skin: + title: Variante und Skin + hide_followers_count: + desc_html: Follower nicht auf Nutzerprofilen anzeigen + title: Anzahl der Follower verbergen + other: + preamble: Verschiedene glitch-soc-Einstellungen, die nicht in andere Kategorien passen. + title: Sonstiges + outgoing_spoilers: + desc_html: Füge diese Inhaltswarnung bei föderierten Toots hinzu, wenn sie noch keine haben. Nützlich, wenn dein Server auf bestimmte Inhalte spezialisiert ist, die andere Server hinter einer Inhaltswarnung haben wollen. Medien werden auch als empfindlich markiert werden. + title: Inhaltswarnung für ausgehende Toots + show_reblogs_in_public_timelines: + desc_html: Zeige öffentlich geteilte Toots in lokalen und öffentlichen Timelines. + title: Zeige geteilte Toots in öffentlichen Timelines + show_replies_in_public_timelines: + desc_html: Neben öffentlichen Selbst-Antworten (Threads), öffentliche Antworten in lokalen und öffentlichen Timelines anzeigen. + title: Antworten in öffentlichen Timelines anzeigen + trending_status_cw: + desc_html: Erlaube Posts mit Inhaltswarnungen zu trenden, wenn angesagte Beiträge aktiviert sind. Änderungen an dieser Einstellung sind nicht rückwirkend. + title: Erlaube Posts mit Inhaltswarnungen zu trenden + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: Und auch für glitch-soc! + auth: + captcha_confirmation: + hint_html: Nur noch ein weiterer Schritt! Um dein Konto zu bestätigen, erfordert dieser Server das Lösen eines CAPTCHA von dir. Bei Fragen oder Problemen mit der Bestätigung kannst du
den Server-Administrator kontaktieren. + title: Benutzer-Verifizierung + generic: + use_this: Benutze das + settings: + flavours: Varianten diff --git a/config/locales-glitch/simple_form.de.yml b/config/locales-glitch/simple_form.de.yml index 346523bb60..0d92038c58 100644 --- a/config/locales-glitch/simple_form.de.yml +++ b/config/locales-glitch/simple_form.de.yml @@ -1 +1,27 @@ +--- de: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: Du kannst bis zu %{count} Elemente auf deinem Profil anzeigen lassen, die als Tabelle dargestellt werden + setting_default_content_type_html: Beim Schreiben von Toots annehmen, dass sie in rohem HTML geschrieben sind, sofern nicht anders angegeben + setting_default_content_type_markdown: Beim Schreiben von Toots annehmen, dass sie in Markdown für Rich-Text-Formatierung geschrieben sind, sofern nicht anders angegeben + setting_default_content_type_plain: Beim Schreiben von Toots annehmen, dass sie in Klartext ohne spezielle Formatierung geschrieben sind, sofern nicht anders angegeben (standardmäßiges Mastodon-Verhalten) + setting_default_language: Die Sprache deiner Toots kann automatisch erkannt werden, aber sie ist nicht immer korrekt + setting_hide_followers_count: Verberge deine Follower-Anzahl vor allen, einschließlich dir. Manche Anwendungen könnten eine negative Follower-Anzahl anzeigen. + setting_skin: Verändert die ausgewählte Mastodon-Variante + labels: + defaults: + setting_default_content_type: Standardformat für Toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Unformatierter Text + setting_favourite_modal: Bestätigungsdialog vor dem Favorisieren anzeigen (gilt nur für Glitch-Variante) + setting_hide_followers_count: Anzahl der Follower verbergen + setting_skin: Skin + setting_system_emoji_font: Systemschriftart für Emojis verwenden (nur für Glitch-Variante) + notification_emails: + trending_link: Neuer angesagter Link muss überprüft werden + trending_status: Neuer angesagter Post muss überprüft werden + trending_tag: Neuer angesagter Tag muss überprüft werden From 4b51d1386b61030334684bd33d8a8c7231c3bf2f Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Fri, 23 Dec 2022 12:35:03 +0100 Subject: [PATCH 0086/1220] Realign timestamps (#2044) Add missing display and overflow properties. Fixes misaligned timestamps and missing overflow in search. Signed-off-by: Plastikmensch Signed-off-by: Plastikmensch --- app/javascript/flavours/glitch/styles/components/status.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss index 0f23c7d4d9..0d3e7f6655 100644 --- a/app/javascript/flavours/glitch/styles/components/status.scss +++ b/app/javascript/flavours/glitch/styles/components/status.scss @@ -593,6 +593,8 @@ .status__action-bar-timestamp { flex-grow: 1; text-align: end; + display: flex; + overflow: hidden; } .detailed-status__action-bar-dropdown { From 08837f730d406fae7848f00146d05b7bcdb03254 Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Fri, 23 Dec 2022 18:59:20 +0100 Subject: [PATCH 0087/1220] Use wrapper div as a spacer (#2046) Keeps the alignment of timestamps, while also reducing clickable size Signed-off-by: Plastikmensch Signed-off-by: Plastikmensch --- .../flavours/glitch/components/status_action_bar.js | 9 ++++----- .../flavours/glitch/styles/components/status.scss | 6 +----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js index 3a18dff21c..5d3a6eb462 100644 --- a/app/javascript/flavours/glitch/components/status_action_bar.js +++ b/app/javascript/flavours/glitch/components/status_action_bar.js @@ -328,11 +328,10 @@ class StatusActionBar extends ImmutablePureComponent { />
- + ); } diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss index 0d3e7f6655..bb5bbc0ac6 100644 --- a/app/javascript/flavours/glitch/styles/components/status.scss +++ b/app/javascript/flavours/glitch/styles/components/status.scss @@ -444,7 +444,6 @@ .status__relative-time { display: inline-block; - flex-grow: 1; color: $dark-text-color; font-size: 14px; text-align: right; @@ -590,11 +589,8 @@ width: 23.15px; } -.status__action-bar-timestamp { +.status__action-bar-spacer { flex-grow: 1; - text-align: end; - display: flex; - overflow: hidden; } .detailed-status__action-bar-dropdown { From cbfeb105a8408bebd81bb697d58a5635f3024105 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 23 Dec 2022 23:27:03 +0100 Subject: [PATCH 0088/1220] New Crowdin updates (#2045) * New translations en.json (German) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.json (Hindi) [ci skip] --- app/javascript/flavours/glitch/locales/de.json | 6 +++--- app/javascript/flavours/glitch/locales/hi.json | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index 76bd518fba..c5e3cdb35e 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -92,7 +92,7 @@ "onboarding.page_six.apps_available": "Es gibt {apps} für iOS, Android und andere Plattformen.", "onboarding.page_six.github": "{domain} läuft auf glitch-soc. glitch-soc ist ein freundlicher {fork} von {Mastodon}, und ist mit jeder Mastodon-App oder -Instanz kompatibel. glitch-soc ist komplett frei und quelloffen. Auf {github} kannst du Fehler melden, Features anfragen oder Code beitragen.", "onboarding.page_six.guidelines": "Community-Richtlinien", - "onboarding.page_six.read_guidelines": "Bitte lies {domain}'s {guidelines}!", + "onboarding.page_six.read_guidelines": "Bitte lies die {guidelines} von {domain}!", "onboarding.page_six.various_app": "mobile Apps", "onboarding.page_three.profile": "Bearbeite dein Profil, um deinen Avatar, \"Über mich\" und den Anzeigenamen zu ändern. Dort findest du auch andere Einstellungen.", "onboarding.page_three.search": "Benutze die Suchleiste, um Leute zu finden und Hashtags anzusehen, wie etwa {illustration} und {introductions}. Um nach einer Person zu suchen, die nicht auf dieser Instanz ist, benutze deren vollständigen Nutzername.", @@ -122,7 +122,7 @@ "settings.content_warnings_unfold_opts": "Optionen zum automatischen Ausklappen", "settings.deprecated_setting": "Diese Einstellung wird nun von Mastodons {settings_page_link} gesteuert", "settings.enable_collapsed": "Eingeklappte Toots aktivieren", - "settings.enable_collapsed_hint": "Eingeklappte Posts haben einen Teil ihres Inhalts verborgen, um weniger Platz am Bildschirm einzunehmen. Das ist zusätzlich zur Inhaltswarnfunktion", + "settings.enable_collapsed_hint": "Eingeklappte Posts haben einen Teil ihres Inhalts verborgen, um weniger Platz am Bildschirm einzunehmen. Das passiert unabhängig von der Inhaltswarnfunktion", "settings.enable_content_warnings_auto_unfold": "Inhaltswarnungen automatisch ausklappen", "settings.general": "Allgemein", "settings.hicolor_privacy_icons": "Eingefärbte Privatsphäre-Symbole", @@ -188,7 +188,7 @@ "status.sensitive_toggle": "Zum Anzeigen klicken", "status.uncollapse": "Ausklappen", "web_app_crash.change_your_settings": "Deine {settings} ändern", - "web_app_crash.content": "Du kannst eines der Folgenden ausprobieren:", + "web_app_crash.content": "Du kannst folgende Dinge ausprobieren:", "web_app_crash.debug_info": "Debug-Informationen", "web_app_crash.disable_addons": "Browser-Add-ons oder eingebaute Übersetzungswerkzeuge deaktivieren", "web_app_crash.issue_tracker": "Issue-Tracker", diff --git a/app/javascript/flavours/glitch/locales/hi.json b/app/javascript/flavours/glitch/locales/hi.json index 4d243f94c2..f6eb75f841 100644 --- a/app/javascript/flavours/glitch/locales/hi.json +++ b/app/javascript/flavours/glitch/locales/hi.json @@ -1,4 +1,16 @@ { + "about.fork_disclaimer": "ग्लिच-सोक एक मुफ्त और ओपन सोर्स सॉफ़्टवेर है जो मैस्टोडॉन से फोर्क किया गया है", + "account.add_account_note": "@{name} के लिए कोई नोट लिखें", + "account.follows": "फ़ॉलोज़", + "account.joined": "ज़ोईन करने की {date}", + "account.suspended_disclaimer_full": "यह यूज़र एक मॉडरेटर द्वारा सस्पेंड कर दिया गया है", + "account.view_full_profile": "पूरी प्रोफ़ाइल देखें", + "account_note.cancel": "कैन्सल", + "account_note.edit": "एडिट या सम्पादन करें", + "account_note.glitch_placeholder": "कोई कॉमेंट नहीं दिया गया है", + "account_note.save": "सेव", + "advanced_options.icon_title": "एडवांस्ड ऑप्शन्स", + "advanced_options.local-only.long": "दूसरे इंस्टेंसों में पोस्ट ना करें", "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.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}.", "settings.content_warnings": "Content warnings", 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 0089/1220] 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 0090/1220] 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 0091/1220] 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 0092/1220] 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 0093/1220] 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 0094/1220] 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 0095/1220] 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 0096/1220] 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 0097/1220] 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 0098/1220] 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 0099/1220] 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 0100/1220] 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 0101/1220] 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 0102/1220] [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 0103/1220] 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 0104/1220] =?UTF-8?q?Fix=20=E3=83=BB=20detection=20in=20ha?= =?UTF-8?q?shtag=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 0105/1220] 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 0106/1220] 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 0107/1220] 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 0108/1220] 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 0109/1220] 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 0110/1220] 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 0111/1220] 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 0112/1220] 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 0113/1220] 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 0114/1220] 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 0115/1220] 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 0116/1220] 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 0117/1220] 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 0118/1220] [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 0119/1220] 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 0120/1220] 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 0121/1220] =?UTF-8?q?Improve=20the=20contrast=20of=20the?= =?UTF-8?q?=20chart=20in=20=E2=80=9Cpoll=20has=20ended=E2=80=9D=20notifica?= =?UTF-8?q?tions=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 0122/1220] 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 0123/1220] 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 0124/1220] 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 0125/1220] 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 0154/1220] 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 0155/1220] 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 0156/1220] [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 0157/1220] [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 0158/1220] 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 0159/1220] 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 0160/1220] 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 0161/1220] 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 0162/1220] 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 0163/1220] 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 0164/1220] 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 0165/1220] 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 0166/1220] 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 0167/1220] 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 0168/1220] 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 0169/1220] 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 0170/1220] 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 0171/1220] 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 0172/1220] 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 18cbce92f854ada15b83e157a49a0738c3ce2fb7 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Wed, 11 Jan 2023 23:52:03 +0100 Subject: [PATCH 0173/1220] v4.0.2+1.1.3 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 22ad301971..6d21058629 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.1.2' + '+1.1.3' end def to_a From a36dfbb2aa53b8ce3e4c88826aeda9f25d98e49a Mon Sep 17 00:00:00 2001 From: Peter Simonsson Date: Wed, 11 Jan 2023 21:58:46 +0100 Subject: [PATCH 0174/1220] [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 0175/1220] 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 0176/1220] 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 0177/1220] [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 0178/1220] 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 0179/1220] 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 0180/1220] 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 0181/1220] 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 0182/1220] 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 0183/1220] 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 0184/1220] 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 0185/1220] 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 0186/1220] 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 0187/1220] 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 0188/1220] 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 560c06463d1954b9d7bbd6080013de092b682117 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Sun, 15 Jan 2023 21:19:41 +0100 Subject: [PATCH 0189/1220] Check for instance availability before attempting to fetch mentioned users Port of https://github.com/Snailed-It/mastodon/commit/db6b0a3b5d3d81db7a534f99d7607c7f46ae4a8c and https://github.com/Snailed-It/mastodon/commit/d59d1d472e5d915ee998f7c499f1205dcb899c91. Full credit goes to dwrss on GitHub. Does NOT fix https://github.com/mastodon/mastodon/issues/22713. --- app/lib/activitypub/activity/create.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 4dfbfc6658..c41d310db5 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -222,8 +222,13 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if tag['href'].blank? account = account_from_uri(tag['href']) - account = ActivityPub::FetchRemoteAccountService.new.call(tag['href'], request_id: @options[:request_id]) if account.nil? - + begin + return unless account || DeliveryFailureTracker.available?(tag['href']) + account = ActivityPub::FetchRemoteAccountService.new.call(tag['href'], request_id: @options[:request_id]) if account.nil? + rescue HTTP::ConnectionError => e + Rails.logger.info "Fetching account #{tag['href']} failed: #{e}" + raise + end return if account.nil? @mentions << Mention.new(account: account, silent: false) 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 0190/1220] 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 0191/1220] 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 0192/1220] 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 0193/1220] 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 0194/1220] 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 0195/1220] 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 0196/1220] 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 0197/1220] 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 0198/1220] 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 0199/1220] 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 0200/1220] 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 0201/1220] 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 0202/1220] 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 0203/1220] 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 0204/1220] 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 0205/1220] 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 0206/1220] 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 0207/1220] 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 0208/1220] 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 0209/1220] 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 0210/1220] 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 0260/1220] 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 0261/1220] 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 0262/1220] 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 0263/1220] 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 0264/1220] [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 0265/1220] [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 0267/1220] [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 0268/1220] 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 0269/1220] 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 0270/1220] [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 0271/1220] 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 0272/1220] 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 0273/1220] 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 1708167dd3bde65eb6cd3bf5ad121c72a630ba65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Jan 2023 18:12:57 +0900 Subject: [PATCH 0274/1220] Bump sanitize from 6.0.0 to 6.0.1 (#23281) Bumps [sanitize](https://github.com/rgrove/sanitize) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/rgrove/sanitize/releases) - [Changelog](https://github.com/rgrove/sanitize/blob/main/HISTORY.md) - [Commits](https://github.com/rgrove/sanitize/compare/v6.0.0...v6.0.1) --- updated-dependencies: - dependency-name: sanitize dependency-type: direct:production ... 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 afd599dab5..525dc84b96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -626,7 +626,7 @@ GEM fugit (~> 1.1, >= 1.1.6) safety_net_attestation (0.4.0) jwt (~> 2.0) - sanitize (6.0.0) + sanitize (6.0.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) scenic (1.7.0) From ec26f7c1b16ca1429991212292e35e520c617485 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 28 Jan 2023 10:20:55 +0100 Subject: [PATCH 0275/1220] 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", From d3f3810fe1f50f0793a40373240504c06dffbd73 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 29 Jan 2023 15:59:58 +0100 Subject: [PATCH 0276/1220] Fix unserialized `role` on account entities in admin API (#23290) --- app/serializers/rest/admin/account_serializer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/serializers/rest/admin/account_serializer.rb b/app/serializers/rest/admin/account_serializer.rb index ad98a53e85..959884c550 100644 --- a/app/serializers/rest/admin/account_serializer.rb +++ b/app/serializers/rest/admin/account_serializer.rb @@ -2,7 +2,7 @@ class REST::Admin::AccountSerializer < ActiveModel::Serializer attributes :id, :username, :domain, :created_at, - :email, :ip, :role, :confirmed, :suspended, + :email, :ip, :confirmed, :suspended, :silenced, :sensitized, :disabled, :approved, :locale, :invite_request @@ -11,6 +11,7 @@ class REST::Admin::AccountSerializer < ActiveModel::Serializer has_many :ips, serializer: REST::Admin::IpSerializer has_one :account, serializer: REST::AccountSerializer + has_one :role, serializer: REST::RoleSerializer def id object.id.to_s From 2a4f2216d65bd5ac90239d5b99c70f4330d76fde Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sun, 29 Jan 2023 19:00:19 +0100 Subject: [PATCH 0277/1220] Add lang attribute to image description textarea and poll option field (#23293) --- .../mastodon/features/compose/components/poll_form.js | 9 ++++++--- .../features/compose/containers/poll_form_container.js | 1 + .../mastodon/features/ui/components/focal_point_modal.js | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index c58db64670..0ee1e62256 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -25,6 +25,7 @@ class Option extends React.PureComponent { static propTypes = { title: PropTypes.string.isRequired, + lang: PropTypes.string, index: PropTypes.number.isRequired, isPollMultiple: PropTypes.bool, autoFocus: PropTypes.bool, @@ -72,7 +73,7 @@ class Option extends React.PureComponent { } render () { - const { isPollMultiple, title, index, autoFocus, intl } = this.props; + const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props; return (
  • @@ -91,6 +92,7 @@ class Option extends React.PureComponent { placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })} maxLength={50} value={title} + lang={lang} onChange={this.handleOptionTitleChange} suggestions={this.props.suggestions} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} @@ -116,6 +118,7 @@ class PollForm extends ImmutablePureComponent { static propTypes = { options: ImmutablePropTypes.list, + lang: PropTypes.string, expiresIn: PropTypes.number, isMultiple: PropTypes.bool, onChangeOption: PropTypes.func.isRequired, @@ -142,7 +145,7 @@ class PollForm extends ImmutablePureComponent { }; render () { - const { options, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl, ...other } = this.props; + const { options, lang, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl, ...other } = this.props; if (!options) { return null; @@ -153,7 +156,7 @@ class PollForm extends ImmutablePureComponent { return (
      - {options.map((title, i) =>
    diff --git a/app/javascript/mastodon/features/compose/containers/poll_form_container.js b/app/javascript/mastodon/features/compose/containers/poll_form_container.js index 1401371d0f..c47fc75006 100644 --- a/app/javascript/mastodon/features/compose/containers/poll_form_container.js +++ b/app/javascript/mastodon/features/compose/containers/poll_form_container.js @@ -10,6 +10,7 @@ import { const mapStateToProps = state => ({ suggestions: state.getIn(['compose', 'suggestions']), options: state.getIn(['compose', 'poll', 'options']), + lang: state.getIn(['compose', 'language']), expiresIn: state.getIn(['compose', 'poll', 'expires_in']), isMultiple: state.getIn(['compose', 'poll', 'multiple']), }); 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 b9dbd93900..c0d528b3cc 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -39,6 +39,7 @@ const mapStateToProps = (state, { id }) => ({ account: state.getIn(['accounts', me]), isUploadingThumbnail: state.getIn(['compose', 'isUploadingThumbnail']), description: state.getIn(['compose', 'media_modal', 'description']), + lang: state.getIn(['compose', 'language']), focusX: state.getIn(['compose', 'media_modal', 'focusX']), focusY: state.getIn(['compose', 'media_modal', 'focusY']), dirty: state.getIn(['compose', 'media_modal', 'dirty']), @@ -274,7 +275,7 @@ class FocalPointModal extends ImmutablePureComponent { } render () { - const { media, intl, account, onClose, isUploadingThumbnail, description, focusX, focusY, dirty, is_changing_upload } = this.props; + const { media, intl, account, onClose, isUploadingThumbnail, description, lang, focusX, focusY, dirty, is_changing_upload } = this.props; const { dragging, detecting, progress, ocrStatus } = this.state; const x = (focusX / 2) + .5; const y = (focusY / -2) + .5; @@ -349,6 +350,7 @@ class FocalPointModal extends ImmutablePureComponent { id='upload-modal__description' className='setting-text light' value={detecting ? '…' : description} + lang={lang} onChange={this.handleChange} onKeyDown={this.handleKeyDown} disabled={detecting || is_changing_upload} From 9cdd643564ef1f885a4c501ac0dfc437291466a7 Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Mon, 30 Jan 2023 03:02:04 +0900 Subject: [PATCH 0278/1220] chore: remove intersection-observer for old Safari support (#23284) --- app/javascript/mastodon/extra_polyfills.js | 1 - package.json | 1 - yarn.lock | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 6e8004f077..e6c69de8b5 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,3 +1,2 @@ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; -import 'intersection-observer'; import 'requestidlecallback'; diff --git a/package.json b/package.json index 72c4e5abd2..26618d748b 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,6 @@ "http-link-header": "^1.1.0", "immutable": "^4.2.2", "imports-loader": "^1.2.0", - "intersection-observer": "^0.12.2", "intl": "^1.2.5", "intl-messageformat": "^2.2.0", "intl-relativeformat": "^6.4.3", diff --git a/yarn.lock b/yarn.lock index 9c56b1d08d..798fed8a46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5812,7 +5812,7 @@ interpret@^1.4.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -intersection-observer@^0.12.0, intersection-observer@^0.12.2: +intersection-observer@^0.12.0: version "0.12.2" resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== From d9088ef3272421a9267467fb95674d4b4afb38ab Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 17:44:03 -0500 Subject: [PATCH 0279/1220] Separate ESLint CI from Superlinter (#23029) * Separate ESLint CI from Superlinter * Correct JS indenting level * Remove extra semicolons with ESLint autofix --- .github/workflows/lint-js.yml | 40 +++++++++++++++++++ .github/workflows/linter.yml | 2 - app/javascript/mastodon/actions/tags.js | 14 +++---- .../features/account/components/header.js | 6 +-- .../mastodon/features/followed_tags/index.js | 2 +- .../mastodon/reducers/followed_tags.js | 2 +- 6 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/lint-js.yml diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml new file mode 100644 index 0000000000..49d989771c --- /dev/null +++ b/.github/workflows/lint-js.yml @@ -0,0 +1,40 @@ +name: JavaScript Linting +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - 'package.json' + - 'yarn.lock' + - '.prettier*' + - '.eslint*' + - '**/*.js' + - '.github/workflows/lint-js.yml' + + pull_request: + paths: + - 'package.json' + - 'yarn.lock' + - '.prettier*' + - '.eslint*' + - '**/*.js' + - '.github/workflows/lint-js.yml' + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + + - name: Install all yarn packages + run: yarn --frozen-lockfile + + - name: ESLint + run: yarn test:lint:js diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index b6438d6659..5757328458 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -74,10 +74,8 @@ jobs: DEFAULT_BRANCH: main NO_COLOR: 1 # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.js LINTER_RULES_PATH: . RUBY_CONFIG_FILE: .rubocop.yml VALIDATE_ALL_CODEBASE: false VALIDATE_CSS: true - VALIDATE_JAVASCRIPT_ES: true VALIDATE_RUBY: true diff --git a/app/javascript/mastodon/actions/tags.js b/app/javascript/mastodon/actions/tags.js index 08a08cda31..dda8c924bb 100644 --- a/app/javascript/mastodon/actions/tags.js +++ b/app/javascript/mastodon/actions/tags.js @@ -60,7 +60,7 @@ export function fetchFollowedHashtagsRequest() { return { type: FOLLOWED_HASHTAGS_FETCH_REQUEST, }; -}; +} export function fetchFollowedHashtagsSuccess(followed_tags, next) { return { @@ -68,14 +68,14 @@ export function fetchFollowedHashtagsSuccess(followed_tags, next) { followed_tags, next, }; -}; +} export function fetchFollowedHashtagsFail(error) { return { type: FOLLOWED_HASHTAGS_FETCH_FAIL, error, }; -}; +} export function expandFollowedHashtags() { return (dispatch, getState) => { @@ -94,13 +94,13 @@ export function expandFollowedHashtags() { dispatch(expandFollowedHashtagsFail(error)); }); }; -}; +} export function expandFollowedHashtagsRequest() { return { type: FOLLOWED_HASHTAGS_EXPAND_REQUEST, }; -}; +} export function expandFollowedHashtagsSuccess(followed_tags, next) { return { @@ -108,14 +108,14 @@ export function expandFollowedHashtagsSuccess(followed_tags, next) { followed_tags, next, }; -}; +} export function expandFollowedHashtagsFail(error) { return { type: FOLLOWED_HASHTAGS_EXPAND_FAIL, error, }; -}; +} export const followHashtag = name => (dispatch, getState) => { dispatch(followHashtagRequest(name)); diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index 46fb89f2fa..d0715d20d4 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -296,9 +296,9 @@ class Header extends ImmutablePureComponent { if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${account.get('id')}` }); } - if (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION) { - menu.push({ text: intl.formatMessage(messages.admin_domain, { domain: remoteDomain }), href: `/admin/instances/${remoteDomain}` }); - } + if (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION) { + menu.push({ text: intl.formatMessage(messages.admin_domain, { domain: remoteDomain }), href: `/admin/instances/${remoteDomain}` }); + } } const content = { __html: account.get('note_emojified') }; diff --git a/app/javascript/mastodon/features/followed_tags/index.js b/app/javascript/mastodon/features/followed_tags/index.js index 0a62ca76d0..c2d0e47318 100644 --- a/app/javascript/mastodon/features/followed_tags/index.js +++ b/app/javascript/mastodon/features/followed_tags/index.js @@ -38,7 +38,7 @@ class FollowedTags extends ImmutablePureComponent { componentDidMount() { this.props.dispatch(fetchFollowedHashtags()); - }; + } handleLoadMore = debounce(() => { this.props.dispatch(expandFollowedHashtags()); diff --git a/app/javascript/mastodon/reducers/followed_tags.js b/app/javascript/mastodon/reducers/followed_tags.js index f50ee6aa33..da20b7b12e 100644 --- a/app/javascript/mastodon/reducers/followed_tags.js +++ b/app/javascript/mastodon/reducers/followed_tags.js @@ -39,4 +39,4 @@ export default function followed_tags(state = initialState, action) { default: return state; } -}; +} From 4917e38d94ad8dcd89069dc2eb5d544a73098010 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 18:23:52 -0500 Subject: [PATCH 0280/1220] Separate Stylelint from Superlinter (#23303) --- .github/workflows/lint-css.yml | 48 ++++++++++++++++++++++++++++++++++ .github/workflows/linter.yml | 13 --------- 2 files changed, 48 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/lint-css.yml diff --git a/.github/workflows/lint-css.yml b/.github/workflows/lint-css.yml new file mode 100644 index 0000000000..431b88e8de --- /dev/null +++ b/.github/workflows/lint-css.yml @@ -0,0 +1,48 @@ +name: CSS Linting +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - 'package.json' + - 'yarn.lock' + - '.prettier*' + - 'stylelint.config.js' + - '**/*.css' + - '**/*.scss' + - '.github/workflows/lint-css.yml' + - '.github/stylelint-matcher.json' + + pull_request: + paths: + - 'package.json' + - 'yarn.lock' + - '.prettier*' + - 'stylelint.config.js' + - '**/*.css' + - '**/*.scss' + - '.github/workflows/lint-css.yml' + - '.github/stylelint-matcher.json' + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + + - name: Install all yarn packages + run: yarn --frozen-lockfile + + - uses: xt0rted/stylelint-problem-matcher@v1 + + - run: echo "::add-matcher::.github/stylelint-matcher.json" + + - name: Stylelint + run: yarn test:lint:sass diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 5757328458..58e6fcb25e 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -50,19 +50,8 @@ jobs: # Full git history is needed to get a proper list of changed files within `super-linter` fetch-depth: 0 - - name: Set-up Node.js - uses: actions/setup-node@v3 - with: - node-version-file: .nvmrc - cache: yarn - - name: Install dependencies - run: yarn install --frozen-lockfile - name: Set-up RuboCop Problem Mathcher uses: r7kamura/rubocop-problem-matchers-action@v1 - - name: Set-up Stylelint Problem Matcher - uses: xt0rted/stylelint-problem-matcher@v1 - # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 - - run: echo "::add-matcher::.github/stylelint-matcher.json" ################################ # Run Linter against code base # @@ -70,12 +59,10 @@ jobs: - name: Lint Code Base uses: github/super-linter@v4 env: - CSS_FILE_NAME: stylelint.config.js DEFAULT_BRANCH: main NO_COLOR: 1 # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} LINTER_RULES_PATH: . RUBY_CONFIG_FILE: .rubocop.yml VALIDATE_ALL_CODEBASE: false - VALIDATE_CSS: true VALIDATE_RUBY: true From b58bf74e35039a29ca3794ea100a19d4d07cc810 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 18:39:31 -0500 Subject: [PATCH 0281/1220] Filter Superlinter to Ruby files only (#21976) --- .github/workflows/lint-ruby.yml | 41 ++++++++++++++++++++ .github/workflows/linter.yml | 68 --------------------------------- 2 files changed, 41 insertions(+), 68 deletions(-) create mode 100644 .github/workflows/lint-ruby.yml delete mode 100644 .github/workflows/linter.yml diff --git a/.github/workflows/lint-ruby.yml b/.github/workflows/lint-ruby.yml new file mode 100644 index 0000000000..b834e3053f --- /dev/null +++ b/.github/workflows/lint-ruby.yml @@ -0,0 +1,41 @@ +name: Ruby Linting +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - 'Gemfile*' + - '.rubocop.yml' + - '**/*.rb' + - '**/*.rake' + - '.github/workflows/lint-ruby.yml' + + pull_request: + paths: + - 'Gemfile*' + - '.rubocop.yml' + - '**/*.rb' + - '**/*.rake' + - '.github/workflows/lint-ruby.yml' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set-up RuboCop Problem Mathcher + uses: r7kamura/rubocop-problem-matchers-action@v1 + + - name: Run rubocop + uses: github/super-linter@v4 + env: + DEFAULT_BRANCH: main + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LINTER_RULES_PATH: . + RUBY_CONFIG_FILE: .rubocop.yml + VALIDATE_ALL_CODEBASE: false + VALIDATE_RUBY: true diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index 58e6fcb25e..0000000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,68 +0,0 @@ ---- -################################# -################################# -## Super Linter GitHub Actions ## -################################# -################################# -name: Lint Code Base - -# -# Documentation: -# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions -# - -############################# -# Start the job on all push # -############################# -on: - push: - branches-ignore: [main] - # Remove the line above to run when pushing to master - pull_request: - branches: [main] - -############### -# Set the Job # -############### -permissions: - checks: write - contents: read - pull-requests: write - statuses: write - -jobs: - build: - # Name the Job - name: Lint Code Base - # Set the agent to run on - runs-on: ubuntu-latest - - ################## - # Load all steps # - ################## - steps: - ########################## - # Checkout the code base # - ########################## - - name: Checkout Code - uses: actions/checkout@v3 - with: - # Full git history is needed to get a proper list of changed files within `super-linter` - fetch-depth: 0 - - - name: Set-up RuboCop Problem Mathcher - uses: r7kamura/rubocop-problem-matchers-action@v1 - - ################################ - # Run Linter against code base # - ################################ - - name: Lint Code Base - uses: github/super-linter@v4 - env: - DEFAULT_BRANCH: main - NO_COLOR: 1 # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - LINTER_RULES_PATH: . - RUBY_CONFIG_FILE: .rubocop.yml - VALIDATE_ALL_CODEBASE: false - VALIDATE_RUBY: true From c49213f0ea311daba590db1d7a14a641cbd9fe93 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 19:45:35 -0500 Subject: [PATCH 0282/1220] Upgrade ESlint to v8 (#23305) --- app/javascript/mastodon/components/account.js | 12 +- .../mastodon/components/animated_number.js | 4 +- .../mastodon/components/autosuggest_input.js | 14 +- .../components/autosuggest_textarea.js | 16 +- app/javascript/mastodon/components/avatar.js | 4 +- .../mastodon/components/avatar_overlay.js | 4 +- app/javascript/mastodon/components/button.js | 4 +- app/javascript/mastodon/components/column.js | 4 +- .../mastodon/components/column_back_button.js | 2 +- .../mastodon/components/column_header.js | 16 +- .../mastodon/components/dismissable_banner.js | 2 +- .../mastodon/components/display_name.js | 4 +- app/javascript/mastodon/components/domain.js | 2 +- .../mastodon/components/dropdown_menu.js | 34 +-- .../components/edited_timestamp/index.js | 4 +- .../mastodon/components/error_boundary.js | 2 +- app/javascript/mastodon/components/gifv.js | 4 +- .../mastodon/components/icon_button.js | 10 +- .../intersection_observer_article.js | 12 +- .../mastodon/components/load_gap.js | 2 +- .../mastodon/components/load_more.js | 4 +- .../mastodon/components/load_pending.js | 2 +- .../mastodon/components/media_attachments.js | 6 +- .../mastodon/components/media_gallery.js | 14 +- .../mastodon/components/modal_root.js | 8 +- .../picture_in_picture_placeholder.js | 4 +- app/javascript/mastodon/components/poll.js | 4 +- .../mastodon/components/scrollable_list.js | 24 +- app/javascript/mastodon/components/status.js | 50 ++-- .../mastodon/components/status_action_bar.js | 46 +-- .../mastodon/components/status_content.js | 18 +- .../mastodon/components/status_list.js | 12 +- .../mastodon/containers/media_container.js | 8 +- .../mastodon/features/about/index.js | 4 +- .../account/components/account_note.js | 6 +- .../features/account/components/header.js | 12 +- .../account_gallery/components/media_item.js | 8 +- .../features/account_gallery/index.js | 12 +- .../account_timeline/components/header.js | 32 +-- .../components/limited_account_hint.js | 2 +- .../features/account_timeline/index.js | 2 +- .../mastodon/features/audio/index.js | 44 +-- .../features/bookmarked_statuses/index.js | 10 +- .../features/community_timeline/index.js | 10 +- .../features/compose/components/action_bar.js | 2 +- .../compose/components/compose_form.js | 30 +- .../components/emoji_picker_dropdown.js | 38 +-- .../compose/components/language_dropdown.js | 30 +- .../compose/components/poll_button.js | 2 +- .../features/compose/components/poll_form.js | 8 +- .../compose/components/privacy_dropdown.js | 30 +- .../compose/components/reply_indicator.js | 4 +- .../features/compose/components/search.js | 14 +- .../features/compose/components/upload.js | 4 +- .../compose/components/upload_button.js | 6 +- .../mastodon/features/compose/index.js | 6 +- .../components/conversation.js | 20 +- .../components/conversations_list.js | 10 +- .../features/direct_timeline/index.js | 10 +- .../directory/components/account_card.js | 8 +- .../mastodon/features/directory/index.js | 14 +- .../mastodon/features/explore/index.js | 4 +- .../mastodon/features/explore/statuses.js | 2 +- .../features/favourited_statuses/index.js | 10 +- .../mastodon/features/favourites/index.js | 2 +- .../features/filters/select_filter.js | 14 +- .../components/account.js | 2 +- .../features/follow_recommendations/index.js | 2 +- .../components/announcements.js | 26 +- .../features/hashtag_timeline/index.js | 16 +- .../mastodon/features/home_timeline/index.js | 12 +- .../features/interaction_modal/index.js | 8 +- .../list_editor/components/edit_list_form.js | 6 +- .../features/list_editor/components/search.js | 6 +- .../mastodon/features/list_timeline/index.js | 16 +- .../lists/components/new_list_form.js | 6 +- .../components/column_settings.js | 2 +- .../notifications/components/notification.js | 16 +- .../notifications_permission_banner.js | 4 +- .../components/setting_toggle.js | 4 +- .../mastodon/features/notifications/index.js | 12 +- .../picture_in_picture/components/footer.js | 4 +- .../features/picture_in_picture/index.js | 2 +- .../features/pinned_statuses/index.js | 4 +- .../features/public_timeline/index.js | 10 +- .../mastodon/features/reblogs/index.js | 2 +- .../features/report/components/option.js | 4 +- .../features/status/components/action_bar.js | 38 +-- .../features/status/components/card.js | 8 +- .../status/components/detailed_status.js | 12 +- .../mastodon/features/status/index.js | 78 +++--- .../subscribed_languages_modal/index.js | 2 +- .../features/ui/components/actions_modal.js | 2 +- .../features/ui/components/block_modal.js | 8 +- .../features/ui/components/boost_modal.js | 6 +- .../mastodon/features/ui/components/bundle.js | 10 +- .../ui/components/bundle_column_error.js | 8 +- .../ui/components/bundle_modal_error.js | 4 +- .../mastodon/features/ui/components/column.js | 6 +- .../features/ui/components/column_header.js | 2 +- .../features/ui/components/columns_area.js | 12 +- .../features/ui/components/compose_panel.js | 4 +- .../ui/components/confirmation_modal.js | 8 +- .../ui/components/disabled_account_banner.js | 2 +- .../features/ui/components/embed_modal.js | 6 +- .../ui/components/focal_point_modal.js | 32 +-- .../features/ui/components/image_loader.js | 8 +- .../features/ui/components/link_footer.js | 2 +- .../features/ui/components/media_modal.js | 12 +- .../features/ui/components/modal_root.js | 10 +- .../features/ui/components/mute_modal.js | 10 +- .../features/ui/components/report_modal.js | 2 +- .../features/ui/components/upload_area.js | 2 +- .../features/ui/components/zoomable_image.js | 28 +- app/javascript/mastodon/features/ui/index.js | 66 ++--- .../features/ui/util/react_router_helpers.js | 6 +- .../features/ui/util/reduced_motion.js | 2 +- .../mastodon/features/video/index.js | 52 ++-- package.json | 2 +- yarn.lock | 262 ++++++++++-------- 120 files changed, 832 insertions(+), 810 deletions(-) diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.js index 7aebb124cb..7706c3f88a 100644 --- a/app/javascript/mastodon/components/account.js +++ b/app/javascript/mastodon/components/account.js @@ -47,27 +47,27 @@ class Account extends ImmutablePureComponent { handleFollow = () => { this.props.onFollow(this.props.account); - } + }; handleBlock = () => { this.props.onBlock(this.props.account); - } + }; handleMute = () => { this.props.onMute(this.props.account); - } + }; handleMuteNotifications = () => { this.props.onMuteNotifications(this.props.account, true); - } + }; handleUnmuteNotifications = () => { this.props.onMuteNotifications(this.props.account, false); - } + }; handleAction = () => { this.props.onActionClick(this.props.account); - } + }; render () { const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props; diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.js index b1aebc73ec..ce688f04f2 100644 --- a/app/javascript/mastodon/components/animated_number.js +++ b/app/javascript/mastodon/components/animated_number.js @@ -38,13 +38,13 @@ export default class AnimatedNumber extends React.PureComponent { const { direction } = this.state; return { y: -1 * direction }; - } + }; willLeave = () => { const { direction } = this.state; return { y: spring(1 * direction, { damping: 35, stiffness: 400 }) }; - } + }; render () { const { value, obfuscate } = this.props; diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.js index b8f8c6f45f..817a41b93b 100644 --- a/app/javascript/mastodon/components/autosuggest_input.js +++ b/app/javascript/mastodon/components/autosuggest_input.js @@ -78,7 +78,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { } this.props.onChange(e); - } + }; onKeyDown = (e) => { const { suggestions, disabled } = this.props; @@ -136,22 +136,22 @@ export default class AutosuggestInput extends ImmutablePureComponent { } this.props.onKeyDown(e); - } + }; onBlur = () => { this.setState({ suggestionsHidden: true, focused: false }); - } + }; onFocus = () => { this.setState({ focused: true }); - } + }; onSuggestionClick = (e) => { const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index')); e.preventDefault(); this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion); this.input.focus(); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) { @@ -161,7 +161,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { setInput = (c) => { this.input = c; - } + }; renderSuggestion = (suggestion, i) => { const { selectedSuggestion } = this.state; @@ -183,7 +183,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { {inner}
    ); - } + }; render () { const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props; diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.js index b6c590916e..c044912983 100644 --- a/app/javascript/mastodon/components/autosuggest_textarea.js +++ b/app/javascript/mastodon/components/autosuggest_textarea.js @@ -75,7 +75,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { } this.props.onChange(e); - } + }; onKeyDown = (e) => { const { suggestions, disabled } = this.props; @@ -133,25 +133,25 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { } this.props.onKeyDown(e); - } + }; onBlur = () => { this.setState({ suggestionsHidden: true, focused: false }); - } + }; onFocus = (e) => { this.setState({ focused: true }); if (this.props.onFocus) { this.props.onFocus(e); } - } + }; onSuggestionClick = (e) => { const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index')); e.preventDefault(); this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion); this.textarea.focus(); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) { @@ -161,14 +161,14 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { setTextarea = (c) => { this.textarea = c; - } + }; onPaste = (e) => { if (e.clipboardData && e.clipboardData.files.length === 1) { this.props.onPaste(e.clipboardData.files); e.preventDefault(); } - } + }; renderSuggestion = (suggestion, i) => { const { selectedSuggestion } = this.state; @@ -190,7 +190,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { {inner}
    ); - } + }; render () { const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, lang, children } = this.props; diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.js index e617c28890..013454ccf4 100644 --- a/app/javascript/mastodon/components/avatar.js +++ b/app/javascript/mastodon/components/avatar.js @@ -27,12 +27,12 @@ export default class Avatar extends React.PureComponent { handleMouseEnter = () => { if (this.props.animate) return; this.setState({ hovering: true }); - } + }; handleMouseLeave = () => { if (this.props.animate) return; this.setState({ hovering: false }); - } + }; render () { const { account, size, animate, inline } = this.props; diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.js index 8d5d44ea56..034e8ba56c 100644 --- a/app/javascript/mastodon/components/avatar_overlay.js +++ b/app/javascript/mastodon/components/avatar_overlay.js @@ -29,12 +29,12 @@ export default class AvatarOverlay extends React.PureComponent { handleMouseEnter = () => { if (this.props.animate) return; this.setState({ hovering: true }); - } + }; handleMouseLeave = () => { if (this.props.animate) return; this.setState({ hovering: false }); - } + }; render() { const { account, friend, animate, size, baseSize, overlaySize } = this.props; diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.js index 42ce01f384..a05a75e893 100644 --- a/app/javascript/mastodon/components/button.js +++ b/app/javascript/mastodon/components/button.js @@ -24,11 +24,11 @@ export default class Button extends React.PureComponent { if (!this.props.disabled && this.props.onClick) { this.props.onClick(e); } - } + }; setRef = (c) => { this.node = c; - } + }; focus() { this.node.focus(); diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.js index 239824a4fe..5780a1397d 100644 --- a/app/javascript/mastodon/components/column.js +++ b/app/javascript/mastodon/components/column.js @@ -27,11 +27,11 @@ export default class Column extends React.PureComponent { } this._interruptScrollAnimation(); - } + }; setRef = c => { this.node = c; - } + }; componentDidMount () { if (this.props.bindToDocument) { diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.js index d97622705e..5bbf11652b 100644 --- a/app/javascript/mastodon/components/column_back_button.js +++ b/app/javascript/mastodon/components/column_back_button.js @@ -20,7 +20,7 @@ export default class ColumnBackButton extends React.PureComponent { } else { this.context.router.history.goBack(); } - } + }; render () { const { multiColumn } = this.props; diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.js index 7850a93ece..38f6ad60ff 100644 --- a/app/javascript/mastodon/components/column_header.js +++ b/app/javascript/mastodon/components/column_header.js @@ -49,32 +49,32 @@ class ColumnHeader extends React.PureComponent { } else { this.context.router.history.goBack(); } - } + }; handleToggleClick = (e) => { e.stopPropagation(); this.setState({ collapsed: !this.state.collapsed, animating: true }); - } + }; handleTitleClick = () => { this.props.onClick?.(); - } + }; handleMoveLeft = () => { this.props.onMove(-1); - } + }; handleMoveRight = () => { this.props.onMove(1); - } + }; handleBackClick = () => { this.historyBack(); - } + }; handleTransitionEnd = () => { this.setState({ animating: false }); - } + }; handlePin = () => { if (!this.props.pinned) { @@ -82,7 +82,7 @@ class ColumnHeader extends React.PureComponent { } this.props.onPin(); - } + }; render () { const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder, appendContent, collapseIssues } = this.props; diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.js index 1ee0320564..47ca7e4bc7 100644 --- a/app/javascript/mastodon/components/dismissable_banner.js +++ b/app/javascript/mastodon/components/dismissable_banner.js @@ -24,7 +24,7 @@ class DismissableBanner extends React.PureComponent { handleDismiss = () => { const { id } = this.props; this.setState({ visible: false }, () => bannerSettings.set(id, true)); - } + }; render () { const { visible } = this.state; diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.js index e9139ab0fa..1dd9fb1d67 100644 --- a/app/javascript/mastodon/components/display_name.js +++ b/app/javascript/mastodon/components/display_name.js @@ -23,7 +23,7 @@ export default class DisplayName extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -36,7 +36,7 @@ export default class DisplayName extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; render () { const { others, localDomain } = this.props; diff --git a/app/javascript/mastodon/components/domain.js b/app/javascript/mastodon/components/domain.js index 697065d874..e09fa45910 100644 --- a/app/javascript/mastodon/components/domain.js +++ b/app/javascript/mastodon/components/domain.js @@ -19,7 +19,7 @@ class Account extends ImmutablePureComponent { handleDomainUnblock = () => { this.props.onUnblockDomain(this.props.domain); - } + }; render () { const { domain, intl } = this.props; diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js index 5897aada89..c04c513fbe 100644 --- a/app/javascript/mastodon/components/dropdown_menu.js +++ b/app/javascript/mastodon/components/dropdown_menu.js @@ -36,7 +36,7 @@ class DropdownMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -56,11 +56,11 @@ class DropdownMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; setFocusRef = c => { this.focusedItem = c; - } + }; handleKeyDown = e => { const items = Array.from(this.node.querySelectorAll('a, button')); @@ -97,18 +97,18 @@ class DropdownMenu extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleItemKeyPress = e => { if (e.key === 'Enter' || e.key === ' ') { this.handleClick(e); } - } + }; handleClick = e => { const { onItemClick } = this.props; onItemClick(e); - } + }; renderItem = (option, i) => { if (option === null) { @@ -124,7 +124,7 @@ class DropdownMenu extends React.PureComponent {
  • ); - } + }; render () { const { items, scrollable, renderHeader, loading } = this.props; @@ -194,7 +194,7 @@ export default class Dropdown extends React.PureComponent { } else { this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click'); } - } + }; handleClose = () => { if (this.activeElement) { @@ -202,13 +202,13 @@ export default class Dropdown extends React.PureComponent { this.activeElement = null; } this.props.onClose(this.state.id); - } + }; handleMouseDown = () => { if (!this.state.open) { this.activeElement = document.activeElement; } - } + }; handleButtonKeyDown = (e) => { switch(e.key) { @@ -217,7 +217,7 @@ export default class Dropdown extends React.PureComponent { this.handleMouseDown(); break; } - } + }; handleKeyPress = (e) => { switch(e.key) { @@ -228,7 +228,7 @@ export default class Dropdown extends React.PureComponent { e.preventDefault(); break; } - } + }; handleItemClick = e => { const { onItemClick } = this.props; @@ -247,25 +247,25 @@ export default class Dropdown extends React.PureComponent { e.preventDefault(); this.context.router.history.push(item.to); } - } + }; setTargetRef = c => { this.target = c; - } + }; findTarget = () => { return this.target; - } + }; componentWillUnmount = () => { if (this.state.id === this.props.openDropdownId) { this.handleClose(); } - } + }; close = () => { this.handleClose(); - } + }; render () { const { diff --git a/app/javascript/mastodon/components/edited_timestamp/index.js b/app/javascript/mastodon/components/edited_timestamp/index.js index bebf938865..b30d885723 100644 --- a/app/javascript/mastodon/components/edited_timestamp/index.js +++ b/app/javascript/mastodon/components/edited_timestamp/index.js @@ -36,7 +36,7 @@ class EditedTimestamp extends React.PureComponent { return ( ); - } + }; renderItem = (item, index, { onClick, onKeyPress }) => { const formattedDate = ; @@ -53,7 +53,7 @@ class EditedTimestamp extends React.PureComponent { ); - } + }; render () { const { timestamp, intl, statusId } = this.props; diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.js index 02d5616d69..b711f1e461 100644 --- a/app/javascript/mastodon/components/error_boundary.js +++ b/app/javascript/mastodon/components/error_boundary.js @@ -64,7 +64,7 @@ export default class ErrorBoundary extends React.PureComponent { this.setState({ copied: true }); setTimeout(() => this.setState({ copied: false }), 700); - } + }; render() { const { hasError, copied, errorMessage } = this.state; diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.js index b775e52005..1f0f99b464 100644 --- a/app/javascript/mastodon/components/gifv.js +++ b/app/javascript/mastodon/components/gifv.js @@ -17,7 +17,7 @@ export default class GIFV extends React.PureComponent { handleLoadedData = () => { this.setState({ loading: false }); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.src !== this.props.src) { @@ -32,7 +32,7 @@ export default class GIFV extends React.PureComponent { e.stopPropagation(); onClick(); } - } + }; render () { const { src, width, height, alt } = this.props; diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.js index b7daf82a47..0036923730 100644 --- a/app/javascript/mastodon/components/icon_button.js +++ b/app/javascript/mastodon/components/icon_button.js @@ -43,7 +43,7 @@ export default class IconButton extends React.PureComponent { state = { activate: false, deactivate: false, - } + }; componentWillReceiveProps (nextProps) { if (!nextProps.animate) return; @@ -61,25 +61,25 @@ export default class IconButton extends React.PureComponent { if (!this.props.disabled) { this.props.onClick(e); } - } + }; handleKeyPress = (e) => { if (this.props.onKeyPress && !this.props.disabled) { this.props.onKeyPress(e); } - } + }; handleMouseDown = (e) => { if (!this.props.disabled && this.props.onMouseDown) { this.props.onMouseDown(e); } - } + }; handleKeyDown = (e) => { if (!this.props.disabled && this.props.onKeyDown) { this.props.onKeyDown(e); } - } + }; render () { const style = { diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.js index 26f85fa400..c2feb003a8 100644 --- a/app/javascript/mastodon/components/intersection_observer_article.js +++ b/app/javascript/mastodon/components/intersection_observer_article.js @@ -21,7 +21,7 @@ export default class IntersectionObserverArticle extends React.Component { state = { isHidden: false, // set to true in requestIdleCallback to trigger un-render - } + }; shouldComponentUpdate (nextProps, nextState) { const isUnrendered = !this.state.isIntersecting && (this.state.isHidden || this.props.cachedHeight); @@ -62,7 +62,7 @@ export default class IntersectionObserverArticle extends React.Component { scheduleIdleTask(this.calculateHeight); this.setState(this.updateStateAfterIntersection); - } + }; updateStateAfterIntersection = (prevState) => { if (prevState.isIntersecting !== false && !this.entry.isIntersecting) { @@ -72,7 +72,7 @@ export default class IntersectionObserverArticle extends React.Component { isIntersecting: this.entry.isIntersecting, isHidden: false, }; - } + }; calculateHeight = () => { const { onHeightChange, saveHeightKey, id } = this.props; @@ -83,7 +83,7 @@ export default class IntersectionObserverArticle extends React.Component { if (onHeightChange && saveHeightKey) { onHeightChange(saveHeightKey, id, this.height); } - } + }; hideIfNotIntersecting = () => { if (!this.componentMounted) { @@ -95,11 +95,11 @@ export default class IntersectionObserverArticle extends React.Component { // this is to save DOM nodes and avoid using up too much memory. // See: https://github.com/mastodon/mastodon/issues/2900 this.setState((prevState) => ({ isHidden: !prevState.isIntersecting })); - } + }; handleRef = (node) => { this.node = node; - } + }; render () { const { children, id, index, listLength, cachedHeight } = this.props; diff --git a/app/javascript/mastodon/components/load_gap.js b/app/javascript/mastodon/components/load_gap.js index a44d55d093..c50b245fcd 100644 --- a/app/javascript/mastodon/components/load_gap.js +++ b/app/javascript/mastodon/components/load_gap.js @@ -19,7 +19,7 @@ class LoadGap extends React.PureComponent { handleClick = () => { this.props.onClick(this.props.maxId); - } + }; render () { const { disabled, intl } = this.props; diff --git a/app/javascript/mastodon/components/load_more.js b/app/javascript/mastodon/components/load_more.js index 00e023ca2f..150525214b 100644 --- a/app/javascript/mastodon/components/load_more.js +++ b/app/javascript/mastodon/components/load_more.js @@ -8,11 +8,11 @@ export default class LoadMore extends React.PureComponent { onClick: PropTypes.func, disabled: PropTypes.bool, visible: PropTypes.bool, - } + }; static defaultProps = { visible: true, - } + }; render() { const { disabled, visible } = this.props; diff --git a/app/javascript/mastodon/components/load_pending.js b/app/javascript/mastodon/components/load_pending.js index 7e27024036..a75259146a 100644 --- a/app/javascript/mastodon/components/load_pending.js +++ b/app/javascript/mastodon/components/load_pending.js @@ -7,7 +7,7 @@ export default class LoadPending extends React.PureComponent { static propTypes = { onClick: PropTypes.func, count: PropTypes.number, - } + }; render() { const { count } = this.props; diff --git a/app/javascript/mastodon/components/media_attachments.js b/app/javascript/mastodon/components/media_attachments.js index d27720de41..565a303301 100644 --- a/app/javascript/mastodon/components/media_attachments.js +++ b/app/javascript/mastodon/components/media_attachments.js @@ -29,7 +29,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; renderLoadingVideoPlayer = () => { const { height, width } = this.props; @@ -37,7 +37,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; renderLoadingAudioPlayer = () => { const { height, width } = this.props; @@ -45,7 +45,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; render () { const { status, width, height } = this.props; diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.js index e4a8be338e..659a833754 100644 --- a/app/javascript/mastodon/components/media_gallery.js +++ b/app/javascript/mastodon/components/media_gallery.js @@ -40,14 +40,14 @@ class Item extends React.PureComponent { if (this.hoverToPlay()) { e.target.play(); } - } + }; handleMouseLeave = (e) => { if (this.hoverToPlay()) { e.target.pause(); e.target.currentTime = 0; } - } + }; getAutoPlay() { return this.props.autoplay || autoPlayGif; @@ -71,11 +71,11 @@ class Item extends React.PureComponent { } e.stopPropagation(); - } + }; handleImageLoad = () => { this.setState({ loaded: true }); - } + }; render () { const { attachment, index, size, standalone, displayWidth, visible } = this.props; @@ -277,11 +277,11 @@ class MediaGallery extends React.PureComponent { } else { this.setState({ visible: !this.state.visible }); } - } + }; handleClick = (index) => { this.props.onOpenMedia(this.props.media, index); - } + }; handleRef = c => { this.node = c; @@ -289,7 +289,7 @@ class MediaGallery extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.node.offsetWidth; diff --git a/app/javascript/mastodon/components/modal_root.js b/app/javascript/mastodon/components/modal_root.js index b894aeaf98..c0525c2217 100644 --- a/app/javascript/mastodon/components/modal_root.js +++ b/app/javascript/mastodon/components/modal_root.js @@ -28,7 +28,7 @@ export default class ModalRoot extends React.PureComponent { && !!this.props.children) { this.props.onClose(); } - } + }; handleKeyDown = (e) => { if (e.key === 'Tab') { @@ -49,7 +49,7 @@ export default class ModalRoot extends React.PureComponent { e.preventDefault(); } } - } + }; componentDidMount () { window.addEventListener('keyup', this.handleKeyUp, false); @@ -122,11 +122,11 @@ export default class ModalRoot extends React.PureComponent { getSiblings = () => { return Array(...this.node.parentElement.childNodes).filter(node => node !== this.node); - } + }; setRef = ref => { this.node = ref; - } + }; render () { const { children, onClose } = this.props; diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.js b/app/javascript/mastodon/components/picture_in_picture_placeholder.js index 19d15c18b1..0effddef98 100644 --- a/app/javascript/mastodon/components/picture_in_picture_placeholder.js +++ b/app/javascript/mastodon/components/picture_in_picture_placeholder.js @@ -22,7 +22,7 @@ class PictureInPicturePlaceholder extends React.PureComponent { handleClick = () => { const { dispatch } = this.props; dispatch(removePictureInPicture()); - } + }; setRef = c => { this.node = c; @@ -30,7 +30,7 @@ class PictureInPicturePlaceholder extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.node.offsetWidth; diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.js index 3e643168e6..95a900c49f 100644 --- a/app/javascript/mastodon/components/poll.js +++ b/app/javascript/mastodon/components/poll.js @@ -95,7 +95,7 @@ class Poll extends ImmutablePureComponent { tmp[value] = true; this.setState({ selected: tmp }); } - } + }; handleOptionChange = ({ target: { value } }) => { this._toggleOption(value); @@ -107,7 +107,7 @@ class Poll extends ImmutablePureComponent { e.stopPropagation(); e.preventDefault(); } - } + }; handleVote = () => { if (this.props.disabled) { diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 91d04bf4d8..4a6ffb149c 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -97,7 +97,7 @@ class ScrollableList extends PureComponent { } else { return this.node; } - } + }; setScrollTop = newScrollTop => { if (this.getScrollTop() !== newScrollTop) { @@ -143,7 +143,7 @@ class ScrollableList extends PureComponent { this.mouseMovedRecently = false; this.scrollToTopOnMouseIdle = false; - } + }; componentDidMount () { this.attachScrollListener(); @@ -161,25 +161,25 @@ class ScrollableList extends PureComponent { } else { return null; } - } + }; getScrollTop = () => { return this._getScrollingElement().scrollTop; - } + }; getScrollHeight = () => { return this._getScrollingElement().scrollHeight; - } + }; getClientHeight = () => { return this._getScrollingElement().clientHeight; - } + }; updateScrollBottom = (snapshot) => { const newScrollTop = this.getScrollHeight() - snapshot; this.setScrollTop(newScrollTop); - } + }; getSnapshotBeforeUpdate (prevProps) { const someItemInserted = React.Children.count(prevProps.children) > 0 && @@ -206,7 +206,7 @@ class ScrollableList extends PureComponent { if (width && this.state.cachedMediaWidth !== width) { this.setState({ cachedMediaWidth: width }); } - } + }; componentWillUnmount () { this.clearMouseIdleTimer(); @@ -218,7 +218,7 @@ class ScrollableList extends PureComponent { onFullScreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; attachIntersectionObserver () { let nodeOptions = { @@ -269,12 +269,12 @@ class ScrollableList extends PureComponent { setRef = (c) => { this.node = c; - } + }; handleLoadMore = e => { e.preventDefault(); this.props.onLoadMore(); - } + }; handleLoadPending = e => { e.preventDefault(); @@ -286,7 +286,7 @@ class ScrollableList extends PureComponent { this.clearMouseIdleTimer(); this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY); this.mouseMovedRecently = true; - } + }; render () { const { children, scrollKey, trackScroll, showLoading, isLoading, hasMore, numPending, prepend, alwaysPrepend, append, emptyMessage, onLoadMore } = this.props; diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index a1384ba583..6b89226085 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -135,7 +135,7 @@ class Status extends ImmutablePureComponent { handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); - } + }; handleClick = e => { if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) { @@ -147,11 +147,11 @@ class Status extends ImmutablePureComponent { } this.handleHotkeyOpen(); - } + }; handlePrependAccountClick = e => { this.handleAccountClick(e, false); - } + }; handleAccountClick = (e, proper = true) => { if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) { @@ -163,19 +163,19 @@ class Status extends ImmutablePureComponent { } this._openProfile(proper); - } + }; handleExpandedToggle = () => { this.props.onToggleHidden(this._properStatus()); - } + }; handleCollapsedToggle = isCollapsed => { this.props.onToggleCollapsed(this._properStatus(), isCollapsed); - } + }; handleTranslate = () => { this.props.onTranslate(this._properStatus()); - } + }; renderLoadingMediaGallery () { return
    ; @@ -192,11 +192,11 @@ class Status extends ImmutablePureComponent { handleOpenVideo = (options) => { const status = this._properStatus(); this.props.onOpenVideo(status.get('id'), status.getIn(['media_attachments', 0]), options); - } + }; handleOpenMedia = (media, index) => { this.props.onOpenMedia(this._properStatus().get('id'), media, index); - } + }; handleHotkeyOpenMedia = e => { const { onOpenMedia, onOpenVideo } = this.props; @@ -211,32 +211,32 @@ class Status extends ImmutablePureComponent { onOpenMedia(status.get('id'), status.get('media_attachments'), 0); } } - } + }; handleDeployPictureInPicture = (type, mediaProps) => { const { deployPictureInPicture } = this.props; const status = this._properStatus(); deployPictureInPicture(status, type, mediaProps); - } + }; handleHotkeyReply = e => { e.preventDefault(); this.props.onReply(this._properStatus(), this.context.router.history); - } + }; handleHotkeyFavourite = () => { this.props.onFavourite(this._properStatus()); - } + }; handleHotkeyBoost = e => { this.props.onReblog(this._properStatus(), e); - } + }; handleHotkeyMention = e => { e.preventDefault(); this.props.onMention(this._properStatus().get('account'), this.context.router.history); - } + }; handleHotkeyOpen = () => { if (this.props.onClick) { @@ -252,11 +252,11 @@ class Status extends ImmutablePureComponent { } router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); - } + }; handleHotkeyOpenProfile = () => { this._openProfile(); - } + }; _openProfile = (proper = true) => { const { router } = this.context; @@ -267,32 +267,32 @@ class Status extends ImmutablePureComponent { } router.history.push(`/@${status.getIn(['account', 'acct'])}`); - } + }; handleHotkeyMoveUp = e => { this.props.onMoveUp(this.props.status.get('id'), e.target.getAttribute('data-featured')); - } + }; handleHotkeyMoveDown = e => { this.props.onMoveDown(this.props.status.get('id'), e.target.getAttribute('data-featured')); - } + }; handleHotkeyToggleHidden = () => { this.props.onToggleHidden(this._properStatus()); - } + }; handleHotkeyToggleSensitive = () => { this.handleToggleMediaVisibility(); - } + }; handleUnfilterClick = e => { this.setState({ forceFilter: false }); e.preventDefault(); - } + }; handleFilterClick = () => { this.setState({ forceFilter: true }); - } + }; _properStatus () { const { status } = this.props; @@ -306,7 +306,7 @@ class Status extends ImmutablePureComponent { handleRef = c => { this.node = c; - } + }; render () { let media = null; diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 00fc94358a..eeb376561c 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -97,7 +97,7 @@ class StatusActionBar extends ImmutablePureComponent { 'status', 'relationship', 'withDismiss', - ] + ]; handleReplyClick = () => { const { signedIn } = this.context.identity; @@ -107,7 +107,7 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('reply', this.props.status); } - } + }; handleShareClick = () => { navigator.share({ @@ -116,7 +116,7 @@ class StatusActionBar extends ImmutablePureComponent { }).catch((e) => { if (e.name !== 'AbortError') console.error(e); }); - } + }; handleFavouriteClick = () => { const { signedIn } = this.context.identity; @@ -126,7 +126,7 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('favourite', this.props.status); } - } + }; handleReblogClick = e => { const { signedIn } = this.context.identity; @@ -136,35 +136,35 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('reblog', this.props.status); } - } + }; handleBookmarkClick = () => { this.props.onBookmark(this.props.status); - } + }; handleDeleteClick = () => { this.props.onDelete(this.props.status, this.context.router.history); - } + }; handleRedraftClick = () => { this.props.onDelete(this.props.status, this.context.router.history, true); - } + }; handleEditClick = () => { this.props.onEdit(this.props.status, this.context.router.history); - } + }; handlePinClick = () => { this.props.onPin(this.props.status); - } + }; handleMentionClick = () => { this.props.onMention(this.props.status.get('account'), this.context.router.history); - } + }; handleDirectClick = () => { this.props.onDirect(this.props.status.get('account'), this.context.router.history); - } + }; handleMuteClick = () => { const { status, relationship, onMute, onUnmute } = this.props; @@ -175,7 +175,7 @@ class StatusActionBar extends ImmutablePureComponent { } else { onMute(account); } - } + }; handleBlockClick = () => { const { status, relationship, onBlock, onUnblock } = this.props; @@ -186,50 +186,50 @@ class StatusActionBar extends ImmutablePureComponent { } else { onBlock(status); } - } + }; handleBlockDomain = () => { const { status, onBlockDomain } = this.props; const account = status.get('account'); onBlockDomain(account.get('acct').split('@')[1]); - } + }; handleUnblockDomain = () => { const { status, onUnblockDomain } = this.props; const account = status.get('account'); onUnblockDomain(account.get('acct').split('@')[1]); - } + }; handleOpen = () => { this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}/${this.props.status.get('id')}`); - } + }; handleEmbed = () => { this.props.onEmbed(this.props.status); - } + }; handleReport = () => { this.props.onReport(this.props.status); - } + }; handleConversationMuteClick = () => { this.props.onMuteConversation(this.props.status); - } + }; handleFilterClick = () => { this.props.onAddFilter(this.props.status); - } + }; handleCopy = () => { const url = this.props.status.get('url'); navigator.clipboard.writeText(url); - } + }; handleHideClick = () => { this.props.onFilter(); - } + }; render () { const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props; diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js index 6f3093d635..ece54621f5 100644 --- a/app/javascript/mastodon/components/status_content.js +++ b/app/javascript/mastodon/components/status_content.js @@ -130,7 +130,7 @@ class StatusContent extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -143,7 +143,7 @@ class StatusContent extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; componentDidMount () { this._updateStatusLinks(); @@ -158,7 +158,7 @@ class StatusContent extends React.PureComponent { e.preventDefault(); this.context.router.history.push(`/@${mention.get('acct')}`); } - } + }; onHashtagClick = (hashtag, e) => { hashtag = hashtag.replace(/^#/, ''); @@ -167,11 +167,11 @@ class StatusContent extends React.PureComponent { e.preventDefault(); this.context.router.history.push(`/tags/${hashtag}`); } - } + }; handleMouseDown = (e) => { this.startXY = [e.clientX, e.clientY]; - } + }; handleMouseUp = (e) => { if (!this.startXY) { @@ -194,7 +194,7 @@ class StatusContent extends React.PureComponent { } this.startXY = null; - } + }; handleSpoilerClick = (e) => { e.preventDefault(); @@ -205,15 +205,15 @@ class StatusContent extends React.PureComponent { } else { this.setState({ hidden: !this.state.hidden }); } - } + }; handleTranslate = () => { this.props.onTranslate(); - } + }; setRef = (c) => { this.node = c; - } + }; render () { const { status, intl } = this.props; diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.js index 35e5749a33..3d513bbf86 100644 --- a/app/javascript/mastodon/components/status_list.js +++ b/app/javascript/mastodon/components/status_list.js @@ -34,7 +34,7 @@ export default class StatusList extends ImmutablePureComponent { getFeaturedStatusCount = () => { return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0; - } + }; getCurrentStatusIndex = (id, featured) => { if (featured) { @@ -42,21 +42,21 @@ export default class StatusList extends ImmutablePureComponent { } else { return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount(); } - } + }; handleMoveUp = (id, featured) => { const elementIndex = this.getCurrentStatusIndex(id, featured) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = (id, featured) => { const elementIndex = this.getCurrentStatusIndex(id, featured) + 1; this._selectChild(elementIndex, false); - } + }; handleLoadOlder = debounce(() => { this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined); - }, 300, { leading: true }) + }, 300, { leading: true }); _selectChild (index, align_top) { const container = this.node.node; @@ -74,7 +74,7 @@ export default class StatusList extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; render () { const { statusIds, featuredStatusIds, onLoadMore, timelineId, ...other } = this.props; diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.js index 6ee1f0bd88..25dc174444 100644 --- a/app/javascript/mastodon/containers/media_container.js +++ b/app/javascript/mastodon/containers/media_container.js @@ -39,7 +39,7 @@ export default class MediaContainer extends PureComponent { document.documentElement.style.marginRight = `${getScrollbarWidth()}px`; this.setState({ media, index }); - } + }; handleOpenVideo = (options) => { const { components } = this.props; @@ -50,7 +50,7 @@ export default class MediaContainer extends PureComponent { document.documentElement.style.marginRight = `${getScrollbarWidth()}px`; this.setState({ media: mediaList, options }); - } + }; handleCloseMedia = () => { document.body.classList.remove('with-modals--active'); @@ -63,11 +63,11 @@ export default class MediaContainer extends PureComponent { backgroundColor: null, options: null, }); - } + }; setBackgroundColor = color => { this.setState({ backgroundColor: color }); - } + }; render () { const { locale, components } = this.props; diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.js index e59f737386..dc1942c631 100644 --- a/app/javascript/mastodon/features/about/index.js +++ b/app/javascript/mastodon/features/about/index.js @@ -59,7 +59,7 @@ class Section extends React.PureComponent { const { collapsed } = this.state; this.setState({ collapsed: !collapsed }, () => onOpen && onOpen()); - } + }; render () { const { title, children } = this.props; @@ -106,7 +106,7 @@ class About extends React.PureComponent { handleDomainBlocksOpen = () => { const { dispatch } = this.props; dispatch(fetchDomainBlocks()); - } + }; render () { const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props; diff --git a/app/javascript/mastodon/features/account/components/account_note.js b/app/javascript/mastodon/features/account/components/account_note.js index 1787ce1abc..fdacc7583c 100644 --- a/app/javascript/mastodon/features/account/components/account_note.js +++ b/app/javascript/mastodon/features/account/components/account_note.js @@ -90,7 +90,7 @@ class AccountNote extends ImmutablePureComponent { setTextareaRef = c => { this.textarea = c; - } + }; handleChange = e => { this.setState({ value: e.target.value, saving: false }); @@ -114,13 +114,13 @@ class AccountNote extends ImmutablePureComponent { } }); } - } + }; handleBlur = () => { if (this._isDirty()) { this._save(); } - } + }; _save (showMessage = true) { this.setState({ saving: true }, () => this.props.onSave(this.state.value)); diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index d0715d20d4..539d725741 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -109,7 +109,7 @@ class Header extends ImmutablePureComponent { openEditProfile = () => { window.open('/settings/profile', '_blank'); - } + }; isStatusesPageActive = (match, location) => { if (!match) { @@ -117,7 +117,7 @@ class Header extends ImmutablePureComponent { } return !location.pathname.match(/\/(followers|following)\/?$/); - } + }; handleMouseEnter = ({ currentTarget }) => { if (autoPlayGif) { @@ -130,7 +130,7 @@ class Header extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -143,14 +143,14 @@ class Header extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleAvatarClick = e => { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); this.props.onOpenAvatar(); } - } + }; handleShare = () => { const { account } = this.props; @@ -161,7 +161,7 @@ class Header extends ImmutablePureComponent { }).catch((e) => { if (e.name !== 'AbortError') console.error(e); }); - } + }; render () { const { account, hidden, intl, domain } = this.props; diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.js index 13fd7fe03d..80e164af89 100644 --- a/app/javascript/mastodon/features/account_gallery/components/media_item.js +++ b/app/javascript/mastodon/features/account_gallery/components/media_item.js @@ -22,20 +22,20 @@ export default class MediaItem extends ImmutablePureComponent { handleImageLoad = () => { this.setState({ loaded: true }); - } + }; handleMouseEnter = e => { if (this.hoverToPlay()) { e.target.play(); } - } + }; handleMouseLeave = e => { if (this.hoverToPlay()) { e.target.pause(); e.target.currentTime = 0; } - } + }; hoverToPlay () { return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1; @@ -51,7 +51,7 @@ export default class MediaItem extends ImmutablePureComponent { this.setState({ visible: true }); } } - } + }; render () { const { attachment, displayWidth } = this.props; diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.js index dc7556a9a5..3942b57cb8 100644 --- a/app/javascript/mastodon/features/account_gallery/index.js +++ b/app/javascript/mastodon/features/account_gallery/index.js @@ -47,7 +47,7 @@ class LoadMoreMedia extends ImmutablePureComponent { handleLoadMore = () => { this.props.onLoadMore(this.props.maxId); - } + }; render () { return ( @@ -114,7 +114,7 @@ class AccountGallery extends ImmutablePureComponent { if (this.props.hasMore) { this.handleLoadMore(this.props.attachments.size > 0 ? this.props.attachments.last().getIn(['status', 'id']) : undefined); } - } + }; handleScroll = e => { const { scrollTop, scrollHeight, clientHeight } = e.target; @@ -123,7 +123,7 @@ class AccountGallery extends ImmutablePureComponent { if (150 > offset && !this.props.isLoading) { this.handleScrollToBottom(); } - } + }; handleLoadMore = maxId => { this.props.dispatch(expandAccountMediaTimeline(this.props.accountId, { maxId })); @@ -132,7 +132,7 @@ class AccountGallery extends ImmutablePureComponent { handleLoadOlder = e => { e.preventDefault(); this.handleScrollToBottom(); - } + }; handleOpenMedia = attachment => { const { dispatch } = this.props; @@ -148,13 +148,13 @@ class AccountGallery extends ImmutablePureComponent { dispatch(openModal('MEDIA', { media, index, statusId })); } - } + }; handleRef = c => { if (c) { this.setState({ width: c.offsetWidth }); } - } + }; render () { const { attachments, isLoading, hasMore, isAccount, multiColumn, blockedBy, suspended } = this.props; diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.js index d67e307ffc..bffa5554b3 100644 --- a/app/javascript/mastodon/features/account_timeline/components/header.js +++ b/app/javascript/mastodon/features/account_timeline/components/header.js @@ -36,35 +36,35 @@ export default class Header extends ImmutablePureComponent { handleFollow = () => { this.props.onFollow(this.props.account); - } + }; handleBlock = () => { this.props.onBlock(this.props.account); - } + }; handleMention = () => { this.props.onMention(this.props.account, this.context.router.history); - } + }; handleDirect = () => { this.props.onDirect(this.props.account, this.context.router.history); - } + }; handleReport = () => { this.props.onReport(this.props.account); - } + }; handleReblogToggle = () => { this.props.onReblogToggle(this.props.account); - } + }; handleNotifyToggle = () => { this.props.onNotifyToggle(this.props.account); - } + }; handleMute = () => { this.props.onMute(this.props.account); - } + }; handleBlockDomain = () => { const domain = this.props.account.get('acct').split('@')[1]; @@ -72,7 +72,7 @@ export default class Header extends ImmutablePureComponent { if (!domain) return; this.props.onBlockDomain(domain); - } + }; handleUnblockDomain = () => { const domain = this.props.account.get('acct').split('@')[1]; @@ -80,31 +80,31 @@ export default class Header extends ImmutablePureComponent { if (!domain) return; this.props.onUnblockDomain(domain); - } + }; handleEndorseToggle = () => { this.props.onEndorseToggle(this.props.account); - } + }; handleAddToList = () => { this.props.onAddToList(this.props.account); - } + }; handleEditAccountNote = () => { this.props.onEditAccountNote(this.props.account); - } + }; handleChangeLanguages = () => { this.props.onChangeLanguages(this.props.account); - } + }; handleInteractionModal = () => { this.props.onInteractionModal(this.props.account); - } + }; handleOpenAvatar = () => { this.props.onOpenAvatar(this.props.account); - } + }; render () { const { account, hidden, hideTabs } = this.props; diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js index 80b9676423..9ee347bb5d 100644 --- a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js +++ b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js @@ -20,7 +20,7 @@ class LimitedAccountHint extends React.PureComponent { static propTypes = { accountId: PropTypes.string.isRequired, reveal: PropTypes.func, - } + }; render () { const { reveal } = this.props; diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js index bdb430a332..337977fded 100644 --- a/app/javascript/mastodon/features/account_timeline/index.js +++ b/app/javascript/mastodon/features/account_timeline/index.js @@ -145,7 +145,7 @@ class AccountTimeline extends ImmutablePureComponent { handleLoadMore = maxId => { this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); - } + }; render () { const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.js index 21a453d2cf..a556583608 100644 --- a/app/javascript/mastodon/features/audio/index.js +++ b/app/javascript/mastodon/features/audio/index.js @@ -75,7 +75,7 @@ class Audio extends React.PureComponent { if (this.player) { this._setDimensions(); } - } + }; _pack() { return { @@ -105,11 +105,11 @@ class Audio extends React.PureComponent { setSeekRef = c => { this.seek = c; - } + }; setVolumeRef = c => { this.volume = c; - } + }; setAudioRef = c => { this.audio = c; @@ -118,13 +118,13 @@ class Audio extends React.PureComponent { this.audio.volume = 1; this.audio.muted = false; } - } + }; setCanvasRef = c => { this.canvas = c; this.visualizer.setCanvas(c); - } + }; componentDidMount () { window.addEventListener('scroll', this.handleScroll); @@ -163,7 +163,7 @@ class Audio extends React.PureComponent { } else { this.setState({ paused: true }, () => this.audio.pause()); } - } + }; handleResize = debounce(() => { if (this.player) { @@ -181,7 +181,7 @@ class Audio extends React.PureComponent { } this._renderCanvas(); - } + }; handlePause = () => { this.setState({ paused: true }); @@ -189,7 +189,7 @@ class Audio extends React.PureComponent { if (this.audioContext) { this.audioContext.suspend(); } - } + }; handleProgress = () => { const lastTimeRange = this.audio.buffered.length - 1; @@ -197,7 +197,7 @@ class Audio extends React.PureComponent { if (lastTimeRange > -1) { this.setState({ buffer: Math.ceil(this.audio.buffered.end(lastTimeRange) / this.audio.duration * 100) }); } - } + }; toggleMute = () => { const muted = !this.state.muted; @@ -207,7 +207,7 @@ class Audio extends React.PureComponent { this.gainNode.gain.value = muted ? 0 : this.state.volume; } }); - } + }; toggleReveal = () => { if (this.props.onToggleVisibility) { @@ -215,7 +215,7 @@ class Audio extends React.PureComponent { } else { this.setState({ revealed: !this.state.revealed }); } - } + }; handleVolumeMouseDown = e => { document.addEventListener('mousemove', this.handleMouseVolSlide, true); @@ -227,14 +227,14 @@ class Audio extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleVolumeMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseVolSlide, true); document.removeEventListener('mouseup', this.handleVolumeMouseUp, true); document.removeEventListener('touchmove', this.handleMouseVolSlide, true); document.removeEventListener('touchend', this.handleVolumeMouseUp, true); - } + }; handleMouseDown = e => { document.addEventListener('mousemove', this.handleMouseMove, true); @@ -248,7 +248,7 @@ class Audio extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove, true); @@ -258,7 +258,7 @@ class Audio extends React.PureComponent { this.setState({ dragging: false }); this.audio.play(); - } + }; handleMouseMove = throttle(e => { const { x } = getPointerPosition(this.seek, e); @@ -276,7 +276,7 @@ class Audio extends React.PureComponent { currentTime: this.audio.currentTime, duration: this.audio.duration, }); - } + }; handleMouseVolSlide = throttle(e => { const { x } = getPointerPosition(this.volume, e); @@ -311,11 +311,11 @@ class Audio extends React.PureComponent { handleMouseEnter = () => { this.setState({ hovered: true }); - } + }; handleMouseLeave = () => { this.setState({ hovered: false }); - } + }; handleLoadedData = () => { const { autoPlay, currentTime } = this.props; @@ -327,7 +327,7 @@ class Audio extends React.PureComponent { if (autoPlay) { this.togglePlay(); } - } + }; _initAudioContext () { const AudioContext = window.AudioContext || window.webkitAudioContext; @@ -361,7 +361,7 @@ class Audio extends React.PureComponent { }).catch(err => { console.error(err); }); - } + }; _renderCanvas () { requestAnimationFrame(() => { @@ -432,7 +432,7 @@ class Audio extends React.PureComponent { e.stopPropagation(); this.togglePlay(); } - } + }; handleKeyDown = e => { switch(e.key) { @@ -457,7 +457,7 @@ class Audio extends React.PureComponent { this.seekBy(10); break; } - } + }; render () { const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.js index 097be17c96..8ef7855c19 100644 --- a/app/javascript/mastodon/features/bookmarked_statuses/index.js +++ b/app/javascript/mastodon/features/bookmarked_statuses/index.js @@ -48,24 +48,24 @@ class Bookmarks extends ImmutablePureComponent { } else { dispatch(addColumn('BOOKMARKS', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = debounce(() => { this.props.dispatch(expandBookmarkedStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.js index 7b3f8845f6..4dbd55cf2f 100644 --- a/app/javascript/mastodon/features/community_timeline/index.js +++ b/app/javascript/mastodon/features/community_timeline/index.js @@ -60,16 +60,16 @@ class CommunityTimeline extends React.PureComponent { } else { dispatch(addColumn('COMMUNITY', { other: { onlyMedia } })); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch, onlyMedia } = this.props; @@ -109,13 +109,13 @@ class CommunityTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, onlyMedia } = this.props; dispatch(expandCommunityTimeline({ maxId, onlyMedia })); - } + }; render () { const { intl, hasUnread, columnId, multiColumn, onlyMedia } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.js index 90c85321e5..ee584cb1ba 100644 --- a/app/javascript/mastodon/features/compose/components/action_bar.js +++ b/app/javascript/mastodon/features/compose/components/action_bar.js @@ -31,7 +31,7 @@ class ActionBar extends React.PureComponent { handleLogout = () => { this.props.onLogout(); - } + }; render () { const { intl } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js index 7154c5efc3..8a8da7a98b 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.js +++ b/app/javascript/mastodon/features/compose/components/compose_form.js @@ -73,17 +73,17 @@ class ComposeForm extends ImmutablePureComponent { handleChange = (e) => { this.props.onChange(e.target.value); - } + }; handleKeyDown = (e) => { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { this.handleSubmit(); } - } + }; getFulltextForCharacterCounting = () => { return [this.props.spoiler? this.props.spoilerText: '', countableText(this.props.text)].join(''); - } + }; canSubmit = () => { const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; @@ -91,7 +91,7 @@ class ComposeForm extends ImmutablePureComponent { const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0; return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia)); - } + }; handleSubmit = (e) => { if (this.props.text !== this.autosuggestTextarea.textarea.value) { @@ -109,27 +109,27 @@ class ComposeForm extends ImmutablePureComponent { if (e) { e.preventDefault(); } - } + }; onSuggestionsClearRequested = () => { this.props.onClearSuggestions(); - } + }; onSuggestionsFetchRequested = (token) => { this.props.onFetchSuggestions(token); - } + }; onSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['text']); - } + }; onSpoilerSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['spoiler_text']); - } + }; handleChangeSpoilerText = (e) => { this.props.onChangeSpoilerText(e.target.value); - } + }; handleFocus = () => { if (this.composeForm && !this.props.singleColumn) { @@ -138,7 +138,7 @@ class ComposeForm extends ImmutablePureComponent { this.composeForm.scrollIntoView(); } } - } + }; componentDidMount () { this._updateFocusAndSelection({ }); @@ -184,15 +184,15 @@ class ComposeForm extends ImmutablePureComponent { this.autosuggestTextarea.textarea.focus(); } } - } + }; setAutosuggestTextarea = (c) => { this.autosuggestTextarea = c; - } + }; setSpoilerText = (c) => { this.spoilerText = c; - } + }; setRef = c => { this.composeForm = c; @@ -204,7 +204,7 @@ class ComposeForm extends ImmutablePureComponent { const needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]); this.props.onPickEmoji(position, data, needsSpace); - } + }; render () { const { intl, onPaste, autoFocus } = this.props; 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 76c9cda81d..79378454d0 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -57,7 +57,7 @@ class ModifierPickerMenu extends React.PureComponent { handleClick = e => { this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.active) { @@ -75,7 +75,7 @@ class ModifierPickerMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; attachListeners () { document.addEventListener('click', this.handleDocumentClick, false); @@ -89,7 +89,7 @@ class ModifierPickerMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; render () { const { active } = this.props; @@ -124,12 +124,12 @@ class ModifierPicker extends React.PureComponent { } else { this.props.onOpen(); } - } + }; handleSelect = modifier => { this.props.onChange(modifier); this.props.onClose(); - } + }; render () { const { active, modifier } = this.props; @@ -174,7 +174,7 @@ class EmojiPickerMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -198,7 +198,7 @@ class EmojiPickerMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; getI18n = () => { const { intl } = this.props; @@ -219,7 +219,7 @@ class EmojiPickerMenu extends React.PureComponent { custom: intl.formatMessage(messages.custom), }, }; - } + }; handleClick = (emoji, event) => { if (!emoji.native) { @@ -229,19 +229,19 @@ class EmojiPickerMenu extends React.PureComponent { this.props.onClose(); } this.props.onPick(emoji); - } + }; handleModifierOpen = () => { this.setState({ modifierOpen: true }); - } + }; handleModifierClose = () => { this.setState({ modifierOpen: false }); - } + }; handleModifierChange = modifier => { this.props.onSkinTone(modifier); - } + }; render () { const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props; @@ -325,7 +325,7 @@ class EmojiPickerDropdown extends React.PureComponent { setRef = (c) => { this.dropdown = c; - } + }; onShowDropdown = () => { this.setState({ active: true }); @@ -342,11 +342,11 @@ class EmojiPickerDropdown extends React.PureComponent { this.setState({ loading: false, active: false }); }); } - } + }; onHideDropdown = () => { this.setState({ active: false }); - } + }; onToggle = (e) => { if (!this.state.loading && (!e.key || e.key === 'Enter')) { @@ -356,21 +356,21 @@ class EmojiPickerDropdown extends React.PureComponent { this.onShowDropdown(e); } } - } + }; handleKeyDown = e => { if (e.key === 'Escape') { this.onHideDropdown(); } - } + }; setTargetRef = c => { this.target = c; - } + }; findTarget = () => { return this.target; - } + }; render () { const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.js index 2dd406b4b9..d96d39f23d 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.js @@ -40,7 +40,7 @@ class LanguageDropdownMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -63,15 +63,15 @@ class LanguageDropdownMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; setListRef = c => { this.listNode = c; - } + }; handleSearchChange = ({ target }) => { this.setState({ searchValue: target.value }); - } + }; search () { const { languages, value, frequentlyUsedLanguages } = this.props; @@ -122,7 +122,7 @@ class LanguageDropdownMenu extends React.PureComponent { this.props.onClose(); this.props.onChange(value); - } + }; handleKeyDown = e => { const { onClose } = this.props; @@ -163,7 +163,7 @@ class LanguageDropdownMenu extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleSearchKeyDown = e => { const { onChange, onClose } = this.props; @@ -199,11 +199,11 @@ class LanguageDropdownMenu extends React.PureComponent { break; } - } + }; handleClear = () => { this.setState({ searchValue: '' }); - } + }; renderItem = lang => { const { value } = this.props; @@ -213,7 +213,7 @@ class LanguageDropdownMenu extends React.PureComponent { {lang[2]} ({lang[1]})
    ); - } + }; render () { const { intl } = this.props; @@ -259,7 +259,7 @@ class LanguageDropdown extends React.PureComponent { } this.setState({ open: !this.state.open }); - } + }; handleClose = () => { const { value, onClose } = this.props; @@ -270,24 +270,24 @@ class LanguageDropdown extends React.PureComponent { this.setState({ open: false }); onClose(value); - } + }; handleChange = value => { const { onChange } = this.props; 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; diff --git a/app/javascript/mastodon/features/compose/components/poll_button.js b/app/javascript/mastodon/features/compose/components/poll_button.js index 76f96bfa41..ff7a104aa0 100644 --- a/app/javascript/mastodon/features/compose/components/poll_button.js +++ b/app/javascript/mastodon/features/compose/components/poll_button.js @@ -27,7 +27,7 @@ class PollButton extends React.PureComponent { handleClick = () => { this.props.onClick(); - } + }; render () { const { intl, active, unavailable, disabled } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index 0ee1e62256..bab31cb4cc 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -58,19 +58,19 @@ class Option extends React.PureComponent { if (e.key === 'Enter' || e.key === ' ') { this.handleToggleMultiple(e); } - } + }; onSuggestionsClearRequested = () => { this.props.onClearSuggestions(); - } + }; onSuggestionsFetchRequested = (token) => { this.props.onFetchSuggestions(token); - } + }; onSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['poll', 'options', this.props.index]); - } + }; render () { const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js index 545b67edac..ffd1094cd3 100644 --- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js @@ -35,7 +35,7 @@ class PrivacyDropdownMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; handleKeyDown = e => { const { items } = this.props; @@ -79,7 +79,7 @@ class PrivacyDropdownMenu extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleClick = e => { const value = e.currentTarget.getAttribute('data-index'); @@ -88,7 +88,7 @@ class PrivacyDropdownMenu extends React.PureComponent { this.props.onClose(); this.props.onChange(value); - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -103,11 +103,11 @@ class PrivacyDropdownMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; setFocusRef = c => { this.focusedItem = c; - } + }; render () { const { style, items, value } = this.props; @@ -168,7 +168,7 @@ class PrivacyDropdown extends React.PureComponent { } this.setState({ open: !this.state.open }); } - } + }; handleModalActionClick = (e) => { e.preventDefault(); @@ -177,7 +177,7 @@ class PrivacyDropdown extends React.PureComponent { this.props.onModalClose(); this.props.onChange(value); - } + }; handleKeyDown = e => { switch(e.key) { @@ -185,13 +185,13 @@ class PrivacyDropdown extends React.PureComponent { this.handleClose(); break; } - } + }; handleMouseDown = () => { if (!this.state.open) { this.activeElement = document.activeElement; } - } + }; handleButtonKeyDown = (e) => { switch(e.key) { @@ -200,18 +200,18 @@ class PrivacyDropdown extends React.PureComponent { this.handleMouseDown(); break; } - } + }; handleClose = () => { if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } this.setState({ open: false }); - } + }; handleChange = value => { this.props.onChange(value); - } + }; componentWillMount () { const { intl: { formatMessage } } = this.props; @@ -231,15 +231,15 @@ 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; diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.js b/app/javascript/mastodon/features/compose/components/reply_indicator.js index fc236882ad..98b142ab86 100644 --- a/app/javascript/mastodon/features/compose/components/reply_indicator.js +++ b/app/javascript/mastodon/features/compose/components/reply_indicator.js @@ -27,14 +27,14 @@ class ReplyIndicator extends ImmutablePureComponent { handleClick = () => { this.props.onCancel(); - } + }; handleAccountClick = (e) => { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); } - } + }; render () { const { status, intl } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.js index 5820f8ca2e..0539c6b808 100644 --- a/app/javascript/mastodon/features/compose/components/search.js +++ b/app/javascript/mastodon/features/compose/components/search.js @@ -58,11 +58,11 @@ class Search extends React.PureComponent { setRef = c => { this.searchForm = c; - } + }; handleChange = (e) => { this.props.onChange(e.target.value); - } + }; handleClear = (e) => { e.preventDefault(); @@ -70,7 +70,7 @@ class Search extends React.PureComponent { if (this.props.value.length > 0 || this.props.submitted) { this.props.onClear(); } - } + }; handleKeyUp = (e) => { if (e.key === 'Enter') { @@ -84,7 +84,7 @@ class Search extends React.PureComponent { } else if (e.key === 'Escape') { document.querySelector('.ui').parentElement.focus(); } - } + }; handleFocus = () => { this.setState({ expanded: true }); @@ -96,15 +96,15 @@ class Search extends React.PureComponent { this.searchForm.scrollIntoView(); } } - } + }; handleBlur = () => { this.setState({ expanded: false }); - } + }; findTarget = () => { return this.searchForm; - } + }; render () { const { intl, value, submitted } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.js index af06ce1bf5..20f58ee754 100644 --- a/app/javascript/mastodon/features/compose/components/upload.js +++ b/app/javascript/mastodon/features/compose/components/upload.js @@ -22,12 +22,12 @@ export default class Upload extends ImmutablePureComponent { handleUndoClick = e => { e.stopPropagation(); this.props.onUndo(this.props.media.get('id')); - } + }; handleFocalPointClick = e => { e.stopPropagation(); this.props.onOpenFocalPoint(this.props.media.get('id')); - } + }; render () { const { media } = this.props; diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.js index 9cb36167a8..964340d827 100644 --- a/app/javascript/mastodon/features/compose/components/upload_button.js +++ b/app/javascript/mastodon/features/compose/components/upload_button.js @@ -41,15 +41,15 @@ class UploadButton extends ImmutablePureComponent { if (e.target.files.length > 0) { this.props.onSelectFile(e.target.files); } - } + }; handleClick = () => { this.fileElement.click(); - } + }; setRef = (c) => { this.fileElement = c; - } + }; render () { const { intl, resetFileKey, unavailable, disabled, acceptContentTypes } = this.props; diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.js index aead7776ac..4b30d09aea 100644 --- a/app/javascript/mastodon/features/compose/index.js +++ b/app/javascript/mastodon/features/compose/index.js @@ -74,15 +74,15 @@ class Compose extends React.PureComponent { })); return false; - } + }; onFocus = () => { this.props.dispatch(changeComposing(true)); - } + }; onBlur = () => { this.props.dispatch(changeComposing(false)); - } + }; render () { const { multiColumn, showSearch, intl } = this.props; diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.js b/app/javascript/mastodon/features/direct_timeline/components/conversation.js index 4a770970d0..fbdff1bdd0 100644 --- a/app/javascript/mastodon/features/direct_timeline/components/conversation.js +++ b/app/javascript/mastodon/features/direct_timeline/components/conversation.js @@ -55,7 +55,7 @@ class Conversation extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -68,7 +68,7 @@ class Conversation extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleClick = () => { if (!this.context.router) { @@ -82,35 +82,35 @@ class Conversation extends ImmutablePureComponent { } this.context.router.history.push(`/@${lastStatus.getIn(['account', 'acct'])}/${lastStatus.get('id')}`); - } + }; handleMarkAsRead = () => { this.props.markRead(); - } + }; handleReply = () => { this.props.reply(this.props.lastStatus, this.context.router.history); - } + }; handleDelete = () => { this.props.delete(); - } + }; handleHotkeyMoveUp = () => { this.props.onMoveUp(this.props.conversationId); - } + }; handleHotkeyMoveDown = () => { this.props.onMoveDown(this.props.conversationId); - } + }; handleConversationMute = () => { this.props.onMute(this.props.lastStatus); - } + }; handleShowMore = () => { this.props.onToggleHidden(this.props.lastStatus); - } + }; render () { const { accounts, lastStatus, unread, scrollKey, intl } = this.props; diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js index fd1df72568..27e9a593f0 100644 --- a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js +++ b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js @@ -16,17 +16,17 @@ export default class ConversationsList extends ImmutablePureComponent { onLoadMore: PropTypes.func, }; - getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id) + getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id); handleMoveUp = id => { const elementIndex = this.getCurrentIndex(id) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = id => { const elementIndex = this.getCurrentIndex(id) + 1; this._selectChild(elementIndex, false); - } + }; _selectChild (index, align_top) { const container = this.node.node; @@ -44,7 +44,7 @@ export default class ConversationsList extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; handleLoadOlder = debounce(() => { const last = this.props.conversations.last(); @@ -52,7 +52,7 @@ export default class ConversationsList extends ImmutablePureComponent { if (last && last.get('last_status')) { this.props.onLoadMore(last.get('last_status')); } - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { conversations, onLoadMore, ...other } = this.props; diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.js index 8dcc43e286..a45965bb20 100644 --- a/app/javascript/mastodon/features/direct_timeline/index.js +++ b/app/javascript/mastodon/features/direct_timeline/index.js @@ -34,16 +34,16 @@ class DirectTimeline extends React.PureComponent { } else { dispatch(addColumn('DIRECT', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch } = this.props; @@ -64,11 +64,11 @@ class DirectTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { this.props.dispatch(expandConversations({ maxId })); - } + }; render () { const { intl, hasUnread, columnId, multiColumn } = this.props; diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.js index 977f0c32c9..15c8ad3039 100644 --- a/app/javascript/mastodon/features/directory/components/account_card.js +++ b/app/javascript/mastodon/features/directory/components/account_card.js @@ -115,7 +115,7 @@ class AccountCard extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -128,7 +128,7 @@ class AccountCard extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleFollow = () => { this.props.onFollow(this.props.account); @@ -140,11 +140,11 @@ class AccountCard extends ImmutablePureComponent { handleMute = () => { this.props.onMute(this.props.account); - } + }; handleEditProfile = () => { window.open('/settings/profile', '_blank'); - } + }; render() { const { account, intl } = this.props; diff --git a/app/javascript/mastodon/features/directory/index.js b/app/javascript/mastodon/features/directory/index.js index b45faa049b..bb5e021cc9 100644 --- a/app/javascript/mastodon/features/directory/index.js +++ b/app/javascript/mastodon/features/directory/index.js @@ -64,7 +64,7 @@ class Directory extends React.PureComponent { } else { dispatch(addColumn('DIRECTORY', this.getParams(this.props, this.state))); } - } + }; getParams = (props, state) => ({ order: state.order === null ? (props.params.order || 'active') : state.order, @@ -74,11 +74,11 @@ class Directory extends React.PureComponent { handleMove = dir => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch } = this.props; @@ -97,7 +97,7 @@ class Directory extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleChangeOrder = e => { const { dispatch, columnId } = this.props; @@ -107,7 +107,7 @@ class Directory extends React.PureComponent { } else { this.setState({ order: e.target.value }); } - } + }; handleChangeLocal = e => { const { dispatch, columnId } = this.props; @@ -117,12 +117,12 @@ class Directory extends React.PureComponent { } else { this.setState({ local: e.target.value === '1' }); } - } + }; handleLoadMore = () => { const { dispatch } = this.props; dispatch(expandDirectory(this.getParams(this.props, this.state))); - } + }; render () { const { isLoading, accountIds, intl, columnId, multiColumn, domain } = this.props; diff --git a/app/javascript/mastodon/features/explore/index.js b/app/javascript/mastodon/features/explore/index.js index 1ae249f458..d91755ff64 100644 --- a/app/javascript/mastodon/features/explore/index.js +++ b/app/javascript/mastodon/features/explore/index.js @@ -41,11 +41,11 @@ class Explore extends React.PureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; render() { const { intl, multiColumn, isSearching } = this.props; diff --git a/app/javascript/mastodon/features/explore/statuses.js b/app/javascript/mastodon/features/explore/statuses.js index 791f11b9fa..b027487d58 100644 --- a/app/javascript/mastodon/features/explore/statuses.js +++ b/app/javascript/mastodon/features/explore/statuses.js @@ -33,7 +33,7 @@ class Statuses extends React.PureComponent { handleLoadMore = debounce(() => { const { dispatch } = this.props; dispatch(expandTrendingStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { isLoading, hasMore, statusIds, multiColumn } = this.props; diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.js index 3741f68f6b..89093f682b 100644 --- a/app/javascript/mastodon/features/favourited_statuses/index.js +++ b/app/javascript/mastodon/features/favourited_statuses/index.js @@ -48,24 +48,24 @@ class Favourites extends ImmutablePureComponent { } else { dispatch(addColumn('FAVOURITES', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = debounce(() => { this.props.dispatch(expandFavouritedStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.js index 66ec6a31b4..7179e64700 100644 --- a/app/javascript/mastodon/features/favourites/index.js +++ b/app/javascript/mastodon/features/favourites/index.js @@ -47,7 +47,7 @@ class Favourites extends ImmutablePureComponent { handleRefresh = () => { this.props.dispatch(fetchFavourites(this.props.params.statusId)); - } + }; render () { const { intl, accountIds, multiColumn } = this.props; diff --git a/app/javascript/mastodon/features/filters/select_filter.js b/app/javascript/mastodon/features/filters/select_filter.js index b68a5de6cc..8a21905d71 100644 --- a/app/javascript/mastodon/features/filters/select_filter.js +++ b/app/javascript/mastodon/features/filters/select_filter.js @@ -71,7 +71,7 @@ class SelectFilter extends React.PureComponent { {filter[1]} {warning}
    ); - } + }; renderCreateNew (name) { return ( @@ -83,11 +83,11 @@ class SelectFilter extends React.PureComponent { handleSearchChange = ({ target }) => { this.setState({ searchValue: target.value }); - } + }; setListRef = c => { this.listNode = c; - } + }; handleKeyDown = e => { const index = Array.from(this.listNode.childNodes).findIndex(node => node === e.currentTarget); @@ -125,7 +125,7 @@ class SelectFilter extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleSearchKeyDown = e => { let element = null; @@ -143,11 +143,11 @@ class SelectFilter extends React.PureComponent { break; } - } + }; handleClear = () => { this.setState({ searchValue: '' }); - } + }; handleItemClick = e => { const value = e.currentTarget.getAttribute('data-index'); @@ -155,7 +155,7 @@ class SelectFilter extends React.PureComponent { e.preventDefault(); this.props.onSelectFilter(value); - } + }; handleNewFilterClick = e => { e.preventDefault(); diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.js index 14f4e7e1b3..daaa2f99ee 100644 --- a/app/javascript/mastodon/features/follow_recommendations/components/account.js +++ b/app/javascript/mastodon/features/follow_recommendations/components/account.js @@ -50,7 +50,7 @@ class Account extends ImmutablePureComponent { } else { dispatch(followAccount(account.get('id'))); } - } + }; render () { const { account, intl } = this.props; diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.js index 5f7baa64ca..436cc582b3 100644 --- a/app/javascript/mastodon/features/follow_recommendations/index.js +++ b/app/javascript/mastodon/features/follow_recommendations/index.js @@ -69,7 +69,7 @@ class FollowRecommendations extends ImmutablePureComponent { })); router.history.push('/home'); - } + }; render () { const { suggestions, isLoading } = this.props; diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index 24db8cedec..d4afbabe36 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -35,7 +35,7 @@ class Content extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; componentDidMount () { this._updateLinks(); @@ -89,7 +89,7 @@ class Content extends ImmutablePureComponent { e.preventDefault(); this.context.router.history.push(`/@${mention.get('acct')}`); } - } + }; onHashtagClick = (hashtag, e) => { hashtag = hashtag.replace(/^#/, ''); @@ -98,14 +98,14 @@ class Content extends ImmutablePureComponent { e.preventDefault(); this.context.router.history.push(`/tags/${hashtag}`); } - } + }; onStatusClick = (status, e) => { if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); } - } + }; handleMouseEnter = ({ currentTarget }) => { if (autoPlayGif) { @@ -118,7 +118,7 @@ class Content extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -131,7 +131,7 @@ class Content extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; render () { const { announcement } = this.props; @@ -216,11 +216,11 @@ class Reaction extends ImmutablePureComponent { } else { addReaction(announcementId, reaction.get('name')); } - } + }; - handleMouseEnter = () => this.setState({ hovered: true }) + handleMouseEnter = () => this.setState({ hovered: true }); - handleMouseLeave = () => this.setState({ hovered: false }) + handleMouseLeave = () => this.setState({ hovered: false }); render () { const { reaction } = this.props; @@ -254,7 +254,7 @@ class ReactionsBar extends ImmutablePureComponent { handleEmojiPick = data => { const { addReaction, announcementId } = this.props; addReaction(announcementId, data.native.replace(/:/g, '')); - } + }; willEnter () { return { scale: reduceMotion ? 1 : 0 }; @@ -397,15 +397,15 @@ class Announcements extends ImmutablePureComponent { handleChangeIndex = index => { this.setState({ index: index % this.props.announcements.size }); - } + }; handleNextClick = () => { this.setState({ index: (this.state.index + 1) % this.props.announcements.size }); - } + }; handlePrevClick = () => { this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size }); - } + }; render () { const { announcements, intl } = this.props; diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.js index 733f54ff3a..e5262d70d1 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.js +++ b/app/javascript/mastodon/features/hashtag_timeline/index.js @@ -54,7 +54,7 @@ class HashtagTimeline extends React.PureComponent { } else { dispatch(addColumn('HASHTAG', { id: this.props.params.id })); } - } + }; title = () => { const { id } = this.props.params; @@ -73,7 +73,7 @@ class HashtagTimeline extends React.PureComponent { } return title; - } + }; additionalFor = (mode) => { const { tags } = this.props.params; @@ -83,16 +83,16 @@ class HashtagTimeline extends React.PureComponent { } else { return ''; } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; _subscribe (dispatch, id, tags = {}, local) { const { signedIn } = this.context.identity; @@ -157,14 +157,14 @@ class HashtagTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, params } = this.props; const { id, tags, local } = params; dispatch(expandHashtagTimeline(id, { maxId, tags, local })); - } + }; handleFollow = () => { const { dispatch, params, tag } = this.props; @@ -180,7 +180,7 @@ class HashtagTimeline extends React.PureComponent { } else { dispatch(followHashtag(id)); } - } + }; render () { const { hasUnread, columnId, multiColumn, tag, intl } = this.props; diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index ae11ccbe47..001de15d1b 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -58,24 +58,24 @@ class HomeTimeline extends React.PureComponent { } else { dispatch(addColumn('HOME', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { this.props.dispatch(expandHomeTimeline({ maxId })); - } + }; componentDidMount () { setTimeout(() => this.props.dispatch(fetchAnnouncements()), 700); @@ -114,7 +114,7 @@ class HomeTimeline extends React.PureComponent { handleToggleAnnouncementsClick = (e) => { e.stopPropagation(); this.props.dispatch(toggleShowAnnouncements()); - } + }; render () { const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.js index d4535378f0..c1d346fed4 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.js +++ b/app/javascript/mastodon/features/interaction_modal/index.js @@ -30,14 +30,14 @@ class Copypaste extends React.PureComponent { setRef = c => { this.input = c; - } + }; handleInputClick = () => { this.setState({ copied: false }); this.input.focus(); this.input.select(); this.input.setSelectionRange(0, this.input.value.length); - } + }; handleButtonClick = () => { const { value } = this.props; @@ -45,7 +45,7 @@ class Copypaste extends React.PureComponent { this.input.blur(); this.setState({ copied: true }); this.timeout = setTimeout(() => this.setState({ copied: false }), 700); - } + }; componentWillUnmount () { if (this.timeout) clearTimeout(this.timeout); @@ -86,7 +86,7 @@ class InteractionModal extends React.PureComponent { handleSignupClick = () => { this.props.onSignupClick(); - } + }; render () { const { url, type, displayNameHtml } = this.props; diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js b/app/javascript/mastodon/features/list_editor/components/edit_list_form.js index 3ccab12a80..4d7e49ec09 100644 --- a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js +++ b/app/javascript/mastodon/features/list_editor/components/edit_list_form.js @@ -33,16 +33,16 @@ class ListForm extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleSubmit = e => { e.preventDefault(); this.props.onSubmit(); - } + }; handleClick = () => { this.props.onSubmit(); - } + }; render () { const { value, disabled, intl } = this.props; diff --git a/app/javascript/mastodon/features/list_editor/components/search.js b/app/javascript/mastodon/features/list_editor/components/search.js index e3f069bb80..3ee26c8eb4 100644 --- a/app/javascript/mastodon/features/list_editor/components/search.js +++ b/app/javascript/mastodon/features/list_editor/components/search.js @@ -34,17 +34,17 @@ class Search extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleKeyUp = e => { if (e.keyCode === 13) { this.props.onSubmit(this.props.value); } - } + }; handleClear = () => { this.props.onClear(); - } + }; render () { const { value, intl } = this.props; diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.js index c2e72e2e9a..25dbe311a7 100644 --- a/app/javascript/mastodon/features/list_timeline/index.js +++ b/app/javascript/mastodon/features/list_timeline/index.js @@ -58,16 +58,16 @@ class ListTimeline extends React.PureComponent { dispatch(addColumn('LIST', { id: this.props.params.id })); this.context.router.history.push('/'); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch } = this.props; @@ -105,16 +105,16 @@ class ListTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { id } = this.props.params; this.props.dispatch(expandListTimeline(id, { maxId })); - } + }; handleEditClick = () => { this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id })); - } + }; handleDeleteClick = () => { const { dispatch, columnId, intl } = this.props; @@ -133,13 +133,13 @@ class ListTimeline extends React.PureComponent { } }, })); - } + }; handleRepliesPolicyChange = ({ target }) => { const { dispatch } = this.props; const { id } = this.props.params; dispatch(updateList(id, undefined, false, target.value)); - } + }; render () { const { hasUnread, columnId, multiColumn, list, intl } = this.props; diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.js index f790ccbe60..4e00e52009 100644 --- a/app/javascript/mastodon/features/lists/components/new_list_form.js +++ b/app/javascript/mastodon/features/lists/components/new_list_form.js @@ -34,16 +34,16 @@ class NewListForm extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleSubmit = e => { e.preventDefault(); this.props.onSubmit(); - } + }; handleClick = () => { this.props.onSubmit(); - } + }; render () { const { value, disabled, intl } = this.props; diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js index a38f8d3c2d..9251847bad 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.js +++ b/app/javascript/mastodon/features/notifications/components/column_settings.js @@ -26,7 +26,7 @@ export default class ColumnSettings extends React.PureComponent { onPushChange = (path, checked) => { this.props.onChange(['push', ...path], checked); - } + }; render () { const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props; diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.js index 746d085c6e..9e2517f084 100644 --- a/app/javascript/mastodon/features/notifications/components/notification.js +++ b/app/javascript/mastodon/features/notifications/components/notification.js @@ -61,12 +61,12 @@ class Notification extends ImmutablePureComponent { handleMoveUp = () => { const { notification, onMoveUp } = this.props; onMoveUp(notification.get('id')); - } + }; handleMoveDown = () => { const { notification, onMoveDown } = this.props; onMoveDown(notification.get('id')); - } + }; handleOpen = () => { const { notification } = this.props; @@ -76,34 +76,34 @@ class Notification extends ImmutablePureComponent { } else { this.handleOpenProfile(); } - } + }; handleOpenProfile = () => { const { notification } = this.props; this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); - } + }; handleMention = e => { e.preventDefault(); const { notification, onMention } = this.props; onMention(notification.get('account'), this.context.router.history); - } + }; handleHotkeyFavourite = () => { const { status } = this.props; if (status) this.props.onFavourite(status); - } + }; handleHotkeyBoost = e => { const { status } = this.props; if (status) this.props.onReblog(status, e); - } + }; handleHotkeyToggleHidden = () => { const { status } = this.props; if (status) this.props.onToggleHidden(status); - } + }; getHandlers () { return { diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js index df9b7fb1b8..3a7556c1d9 100644 --- a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js +++ b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js @@ -23,11 +23,11 @@ class NotificationsPermissionBanner extends React.PureComponent { handleClick = () => { this.props.dispatch(requestBrowserPermission()); - } + }; handleClose = () => { this.props.dispatch(changeSetting(['notifications', 'dismissPermissionBanner'], true)); - } + }; render () { const { intl } = this.props; diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.js index c4c8bffbe3..c979e4383b 100644 --- a/app/javascript/mastodon/features/notifications/components/setting_toggle.js +++ b/app/javascript/mastodon/features/notifications/components/setting_toggle.js @@ -13,11 +13,11 @@ export default class SettingToggle extends React.PureComponent { onChange: PropTypes.func.isRequired, defaultValue: PropTypes.bool, disabled: PropTypes.bool, - } + }; onChange = ({ target }) => { this.props.onChange(this.props.settingPath, target.checked); - } + }; render () { const { prefix, settings, settingPath, label, defaultValue, disabled } = this.props; diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.js index 826a7e9ad3..fee016a025 100644 --- a/app/javascript/mastodon/features/notifications/index.js +++ b/app/javascript/mastodon/features/notifications/index.js @@ -136,30 +136,30 @@ class Notifications extends React.PureComponent { } else { dispatch(addColumn('NOTIFICATIONS', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setColumnRef = c => { this.column = c; - } + }; handleMoveUp = id => { const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = id => { const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) + 1; this._selectChild(elementIndex, false); - } + }; _selectChild (index, align_top) { const container = this.column.node; diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.js index 0dff834c3d..3f59b891b8 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.js +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.js @@ -112,7 +112,7 @@ class Footer extends ImmutablePureComponent { _performReblog = (status, privacy) => { const { dispatch } = this.props; dispatch(reblog(status, privacy)); - } + }; handleReblogClick = e => { const { dispatch, status } = this.props; @@ -149,7 +149,7 @@ class Footer extends ImmutablePureComponent { } router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); - } + }; render () { const { status, intl, withOpenButton } = this.props; diff --git a/app/javascript/mastodon/features/picture_in_picture/index.js b/app/javascript/mastodon/features/picture_in_picture/index.js index 1e59fbcd33..01a7d43f22 100644 --- a/app/javascript/mastodon/features/picture_in_picture/index.js +++ b/app/javascript/mastodon/features/picture_in_picture/index.js @@ -32,7 +32,7 @@ class PictureInPicture extends React.Component { handleClose = () => { const { dispatch } = this.props; dispatch(removePictureInPicture()); - } + }; render () { const { type, src, currentTime, accountId, statusId } = this.props; diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.js index c6790ea063..504fda4158 100644 --- a/app/javascript/mastodon/features/pinned_statuses/index.js +++ b/app/javascript/mastodon/features/pinned_statuses/index.js @@ -37,11 +37,11 @@ class PinnedStatuses extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; render () { const { intl, statusIds, hasMore, multiColumn } = this.props; diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.js index a41be07e15..aaef45c865 100644 --- a/app/javascript/mastodon/features/public_timeline/index.js +++ b/app/javascript/mastodon/features/public_timeline/index.js @@ -62,16 +62,16 @@ class PublicTimeline extends React.PureComponent { } else { dispatch(addColumn(onlyRemote ? 'REMOTE' : 'PUBLIC', { other: { onlyMedia, onlyRemote } })); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch, onlyMedia, onlyRemote } = this.props; @@ -111,13 +111,13 @@ class PublicTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, onlyMedia, onlyRemote } = this.props; dispatch(expandPublicTimeline({ maxId, onlyMedia, onlyRemote })); - } + }; render () { const { intl, columnId, hasUnread, multiColumn, onlyMedia, onlyRemote } = this.props; diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.js index 36ca11d1a7..31e5dc1d43 100644 --- a/app/javascript/mastodon/features/reblogs/index.js +++ b/app/javascript/mastodon/features/reblogs/index.js @@ -47,7 +47,7 @@ class Reblogs extends ImmutablePureComponent { handleRefresh = () => { this.props.dispatch(fetchReblogs(this.props.params.statusId)); - } + }; render () { const { intl, accountIds, multiColumn } = this.props; diff --git a/app/javascript/mastodon/features/report/components/option.js b/app/javascript/mastodon/features/report/components/option.js index 744d852680..42c04b018a 100644 --- a/app/javascript/mastodon/features/report/components/option.js +++ b/app/javascript/mastodon/features/report/components/option.js @@ -24,12 +24,12 @@ export default class Option extends React.PureComponent { e.preventDefault(); onToggle(value, !checked); } - } + }; handleChange = e => { const { value, onToggle } = this.props; onToggle(value, e.target.checked); - } + }; render () { const { name, value, checked, label, labelComponent, description, multiple } = this.props; diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index 46ee9f6c1d..0d4767331a 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -82,39 +82,39 @@ class ActionBar extends React.PureComponent { handleReplyClick = () => { this.props.onReply(this.props.status); - } + }; handleReblogClick = (e) => { this.props.onReblog(this.props.status, e); - } + }; handleFavouriteClick = () => { this.props.onFavourite(this.props.status); - } + }; handleBookmarkClick = (e) => { this.props.onBookmark(this.props.status, e); - } + }; handleDeleteClick = () => { this.props.onDelete(this.props.status, this.context.router.history); - } + }; handleRedraftClick = () => { this.props.onDelete(this.props.status, this.context.router.history, true); - } + }; handleEditClick = () => { this.props.onEdit(this.props.status, this.context.router.history); - } + }; handleDirectClick = () => { this.props.onDirect(this.props.status.get('account'), this.context.router.history); - } + }; handleMentionClick = () => { this.props.onMention(this.props.status.get('account'), this.context.router.history); - } + }; handleMuteClick = () => { const { status, relationship, onMute, onUnmute } = this.props; @@ -125,7 +125,7 @@ class ActionBar extends React.PureComponent { } else { onMute(account); } - } + }; handleBlockClick = () => { const { status, relationship, onBlock, onUnblock } = this.props; @@ -136,49 +136,49 @@ class ActionBar extends React.PureComponent { } else { onBlock(status); } - } + }; handleBlockDomain = () => { const { status, onBlockDomain } = this.props; const account = status.get('account'); onBlockDomain(account.get('acct').split('@')[1]); - } + }; handleUnblockDomain = () => { const { status, onUnblockDomain } = this.props; const account = status.get('account'); onUnblockDomain(account.get('acct').split('@')[1]); - } + }; handleConversationMuteClick = () => { this.props.onMuteConversation(this.props.status); - } + }; handleReport = () => { this.props.onReport(this.props.status); - } + }; handlePinClick = () => { this.props.onPin(this.props.status); - } + }; handleShare = () => { navigator.share({ text: this.props.status.get('search_index'), url: this.props.status.get('url'), }); - } + }; handleEmbed = () => { this.props.onEmbed(this.props.status); - } + }; handleCopy = () => { const url = this.props.status.get('url'); navigator.clipboard.writeText(url); - } + }; render () { const { status, relationship, intl } = this.props; diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.js index 82537dd5d9..34fac10105 100644 --- a/app/javascript/mastodon/features/status/components/card.js +++ b/app/javascript/mastodon/features/status/components/card.js @@ -146,7 +146,7 @@ export default class Card extends React.PureComponent { } else { this.setState({ embedded: true }); } - } + }; setRef = c => { this.node = c; @@ -154,17 +154,17 @@ export default class Card extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; handleImageLoad = () => { this.setState({ previewLoaded: true }); - } + }; handleReveal = e => { e.preventDefault(); e.stopPropagation(); this.setState({ revealed: true }); - } + }; renderVideo () { const { card } = this.props; diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index c62910e0ee..116d9f6b27 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -61,15 +61,15 @@ class DetailedStatus extends ImmutablePureComponent { } e.stopPropagation(); - } + }; handleOpenVideo = (options) => { this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options); - } + }; handleExpandedToggle = () => { this.props.onToggleHidden(this.props.status); - } + }; _measureHeight (heightJustChanged) { if (this.props.measureHeight && this.node) { @@ -84,7 +84,7 @@ class DetailedStatus extends ImmutablePureComponent { setRef = c => { this.node = c; this._measureHeight(); - } + }; componentDidUpdate (prevProps, prevState) { this._measureHeight(prevState.height !== this.state.height); @@ -102,12 +102,12 @@ class DetailedStatus extends ImmutablePureComponent { } window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); - } + }; handleTranslate = () => { const { onTranslate, status } = this.props; onTranslate(status); - } + }; render () { const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status; diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 8a63cced20..38bbc6895b 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -233,7 +233,7 @@ class Status extends ImmutablePureComponent { handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); - } + }; handleFavouriteClick = (status) => { const { dispatch } = this.props; @@ -252,7 +252,7 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handlePin = (status) => { if (status.get('pinned')) { @@ -260,7 +260,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(pin(status)); } - } + }; handleReplyClick = (status) => { const { askReplyConfirmation, dispatch, intl } = this.props; @@ -283,11 +283,11 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handleModalReblog = (status, privacy) => { this.props.dispatch(reblog(status, privacy)); - } + }; handleReblogClick = (status, e) => { const { dispatch } = this.props; @@ -310,7 +310,7 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handleBookmarkClick = (status) => { if (status.get('bookmarked')) { @@ -318,7 +318,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(bookmark(status)); } - } + }; handleDeleteClick = (status, history, withRedraft = false) => { const { dispatch, intl } = this.props; @@ -332,27 +332,27 @@ class Status extends ImmutablePureComponent { onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)), })); } - } + }; handleEditClick = (status, history) => { this.props.dispatch(editStatus(status.get('id'), history)); - } + }; handleDirectClick = (account, router) => { this.props.dispatch(directCompose(account, router)); - } + }; handleMentionClick = (account, router) => { this.props.dispatch(mentionCompose(account, router)); - } + }; handleOpenMedia = (media, index) => { this.props.dispatch(openModal('MEDIA', { statusId: this.props.status.get('id'), media, index })); - } + }; handleOpenVideo = (media, options) => { this.props.dispatch(openModal('VIDEO', { statusId: this.props.status.get('id'), media, options })); - } + }; handleHotkeyOpenMedia = e => { const { status } = this.props; @@ -366,11 +366,11 @@ class Status extends ImmutablePureComponent { this.handleOpenMedia(status.get('media_attachments'), 0); } } - } + }; handleMuteClick = (account) => { this.props.dispatch(initMuteModal(account)); - } + }; handleConversationMuteClick = (status) => { if (status.get('muted')) { @@ -378,7 +378,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(muteStatus(status.get('id'))); } - } + }; handleToggleHidden = (status) => { if (status.get('hidden')) { @@ -386,7 +386,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(hideStatus(status.get('id'))); } - } + }; handleToggleAll = () => { const { status, ancestorsIds, descendantsIds } = this.props; @@ -397,7 +397,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(hideStatus(statusIds)); } - } + }; handleTranslate = status => { const { dispatch } = this.props; @@ -407,29 +407,29 @@ class Status extends ImmutablePureComponent { } else { dispatch(translateStatus(status.get('id'))); } - } + }; handleBlockClick = (status) => { const { dispatch } = this.props; const account = status.get('account'); dispatch(initBlockModal(account)); - } + }; handleReport = (status) => { this.props.dispatch(initReport(status.get('account'), status)); - } + }; handleEmbed = (status) => { this.props.dispatch(openModal('EMBED', { url: status.get('url') })); - } + }; handleUnmuteClick = account => { this.props.dispatch(unmuteAccount(account.get('id'))); - } + }; handleUnblockClick = account => { this.props.dispatch(unblockAccount(account.get('id'))); - } + }; handleBlockDomainClick = domain => { this.props.dispatch(openModal('CONFIRM', { @@ -437,50 +437,50 @@ class Status extends ImmutablePureComponent { confirm: this.props.intl.formatMessage(messages.blockDomainConfirm), onConfirm: () => this.props.dispatch(blockDomain(domain)), })); - } + }; handleUnblockDomainClick = domain => { this.props.dispatch(unblockDomain(domain)); - } + }; handleHotkeyMoveUp = () => { this.handleMoveUp(this.props.status.get('id')); - } + }; handleHotkeyMoveDown = () => { this.handleMoveDown(this.props.status.get('id')); - } + }; handleHotkeyReply = e => { e.preventDefault(); this.handleReplyClick(this.props.status); - } + }; handleHotkeyFavourite = () => { this.handleFavouriteClick(this.props.status); - } + }; handleHotkeyBoost = () => { this.handleReblogClick(this.props.status); - } + }; handleHotkeyMention = e => { e.preventDefault(); this.handleMentionClick(this.props.status.get('account')); - } + }; handleHotkeyOpenProfile = () => { this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); - } + }; handleHotkeyToggleHidden = () => { this.handleToggleHidden(this.props.status); - } + }; handleHotkeyToggleSensitive = () => { this.handleToggleMediaVisibility(); - } + }; handleMoveUp = id => { const { status, ancestorsIds, descendantsIds } = this.props; @@ -497,7 +497,7 @@ class Status extends ImmutablePureComponent { this._selectChild(index - 1, true); } } - } + }; handleMoveDown = id => { const { status, ancestorsIds, descendantsIds } = this.props; @@ -514,7 +514,7 @@ class Status extends ImmutablePureComponent { this._selectChild(index + 1, false); } } - } + }; _selectChild (index, align_top) { const container = this.node; @@ -544,7 +544,7 @@ class Status extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; componentDidUpdate () { if (this._scrolledIntoView) { @@ -569,7 +569,7 @@ class Status extends ImmutablePureComponent { onFullScreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; render () { let ancestors, descendants; diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.js index a519ceabc5..f1360613e0 100644 --- a/app/javascript/mastodon/features/subscribed_languages_modal/index.js +++ b/app/javascript/mastodon/features/subscribed_languages_modal/index.js @@ -72,7 +72,7 @@ class SubscribedLanguagesModal extends ImmutablePureComponent { handleSubmit = () => { this.props.onSubmit(this.state.selectedLanguages.toArray()); this.props.onClose(); - } + }; renderItem (value) { const language = this.props.languages.find(language => language[0] === value); diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.js index 67be69d436..fd59c1e206 100644 --- a/app/javascript/mastodon/features/ui/components/actions_modal.js +++ b/app/javascript/mastodon/features/ui/components/actions_modal.js @@ -31,7 +31,7 @@ export default class ActionsModal extends ImmutablePureComponent { ); - } + }; render () { return ( diff --git a/app/javascript/mastodon/features/ui/components/block_modal.js b/app/javascript/mastodon/features/ui/components/block_modal.js index a07baeaa64..6c9d2043ca 100644 --- a/app/javascript/mastodon/features/ui/components/block_modal.js +++ b/app/javascript/mastodon/features/ui/components/block_modal.js @@ -55,20 +55,20 @@ class BlockModal extends React.PureComponent { handleClick = () => { this.props.onClose(); this.props.onConfirm(this.props.account); - } + }; handleSecondary = () => { this.props.onClose(); this.props.onBlockAndReport(this.props.account); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; render () { const { account } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.js index 077ce7b35c..087eadba2e 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.js +++ b/app/javascript/mastodon/features/ui/components/boost_modal.js @@ -62,7 +62,7 @@ class BoostModal extends ImmutablePureComponent { handleReblog = () => { this.props.onReblog(this.props.status, this.props.privacy); this.props.onClose(); - } + }; handleAccountClick = (e) => { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { @@ -70,7 +70,7 @@ class BoostModal extends ImmutablePureComponent { this.props.onClose(); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); } - } + }; _findContainer = () => { return document.getElementsByClassName('modal-root__container')[0]; @@ -78,7 +78,7 @@ class BoostModal extends ImmutablePureComponent { setRef = (c) => { this.button = c; - } + }; render () { const { status, privacy, intl } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/bundle.js b/app/javascript/mastodon/features/ui/components/bundle.js index a60ace35ba..1b10a218b6 100644 --- a/app/javascript/mastodon/features/ui/components/bundle.js +++ b/app/javascript/mastodon/features/ui/components/bundle.js @@ -15,7 +15,7 @@ class Bundle extends React.PureComponent { onFetch: PropTypes.func, onFetchSuccess: PropTypes.func, onFetchFail: PropTypes.func, - } + }; static defaultProps = { loading: emptyComponent, @@ -24,14 +24,14 @@ class Bundle extends React.PureComponent { onFetch: noop, onFetchSuccess: noop, onFetchFail: noop, - } + }; - static cache = new Map + static cache = new Map; state = { mod: undefined, forceRender: false, - } + }; componentWillMount() { this.load(this.props); @@ -83,7 +83,7 @@ class Bundle extends React.PureComponent { this.setState({ mod: null }); onFetchFail(error); }); - } + }; render() { const { loading: Loading, error: Error, children, renderDelay } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.js index dfe970ad0b..9955173ebf 100644 --- a/app/javascript/mastodon/features/ui/components/bundle_column_error.js +++ b/app/javascript/mastodon/features/ui/components/bundle_column_error.js @@ -31,7 +31,7 @@ class GIF extends React.PureComponent { if (!animate) { this.setState({ hovering: true }); } - } + }; handleMouseLeave = () => { const { animate } = this.props; @@ -39,7 +39,7 @@ class GIF extends React.PureComponent { if (!animate) { this.setState({ hovering: false }); } - } + }; render () { const { src, staticSrc, className, animate } = this.props; @@ -75,7 +75,7 @@ class CopyButton extends React.PureComponent { navigator.clipboard.writeText(value); this.setState({ copied: true }); this.timeout = setTimeout(() => this.setState({ copied: false }), 700); - } + }; componentWillUnmount () { if (this.timeout) clearTimeout(this.timeout); @@ -113,7 +113,7 @@ class BundleColumnError extends React.PureComponent { if (onRetry) { onRetry(); } - } + }; render () { const { errorType, multiColumn, stacktrace } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js b/app/javascript/mastodon/features/ui/components/bundle_modal_error.js index f9365b95bc..d79d0ca4a0 100644 --- a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js +++ b/app/javascript/mastodon/features/ui/components/bundle_modal_error.js @@ -16,11 +16,11 @@ class BundleModalError extends React.PureComponent { onRetry: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, - } + }; handleRetry = () => { this.props.onRetry(); - } + }; render () { const { onClose, intl: { formatMessage } } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/column.js b/app/javascript/mastodon/features/ui/components/column.js index 15538ea387..7bc2f7e00a 100644 --- a/app/javascript/mastodon/features/ui/components/column.js +++ b/app/javascript/mastodon/features/ui/components/column.js @@ -23,7 +23,7 @@ export default class Column extends React.PureComponent { } this._interruptScrollAnimation = scrollTop(scrollable); - } + }; scrollTop () { const scrollable = this.node.querySelector('.scrollable'); @@ -40,11 +40,11 @@ export default class Column extends React.PureComponent { if (typeof this._interruptScrollAnimation !== 'undefined') { this._interruptScrollAnimation(); } - }, 200) + }, 200); setRef = (c) => { this.node = c; - } + }; render () { const { heading, icon, children, active, hideHeadingOnMobile } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.js index b1a36e173d..4ceef59570 100644 --- a/app/javascript/mastodon/features/ui/components/column_header.js +++ b/app/javascript/mastodon/features/ui/components/column_header.js @@ -15,7 +15,7 @@ export default class ColumnHeader extends React.PureComponent { handleClick = () => { this.props.onClick(); - } + }; render () { const { icon, type, active, columnHeaderId } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.js index e7def800e8..1dd6e34e88 100644 --- a/app/javascript/mastodon/features/ui/components/columns_area.js +++ b/app/javascript/mastodon/features/ui/components/columns_area.js @@ -57,7 +57,7 @@ export default class ColumnsArea extends ImmutablePureComponent { state = { renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches), - } + }; componentDidMount() { if (!this.props.singleColumn) { @@ -111,7 +111,7 @@ export default class ColumnsArea extends ImmutablePureComponent { handleLayoutChange = (e) => { this.setState({ renderComposePanel: !e.matches }); - } + }; handleWheel = () => { if (typeof this._interruptScrollAnimation !== 'function') { @@ -119,19 +119,19 @@ export default class ColumnsArea extends ImmutablePureComponent { } this._interruptScrollAnimation(); - } + }; setRef = (node) => { this.node = node; - } + }; renderLoading = columnId => () => { return columnId === 'COMPOSE' ? : ; - } + }; renderError = (props) => { return ; - } + }; render () { const { columns, children, singleColumn, isModalOpen } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.js index 92d16b5b34..6cb3523224 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.js +++ b/app/javascript/mastodon/features/ui/components/compose_panel.js @@ -22,12 +22,12 @@ class ComposePanel extends React.PureComponent { onFocus = () => { const { dispatch } = this.props; dispatch(changeComposing(true)); - } + }; onBlur = () => { const { dispatch } = this.props; dispatch(changeComposing(false)); - } + }; componentDidMount () { const { dispatch } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.js index 65d97ca161..b023b00b25 100644 --- a/app/javascript/mastodon/features/ui/components/confirmation_modal.js +++ b/app/javascript/mastodon/features/ui/components/confirmation_modal.js @@ -30,20 +30,20 @@ class ConfirmationModal extends React.PureComponent { this.props.onClose(); } this.props.onConfirm(); - } + }; handleSecondary = () => { this.props.onClose(); this.props.onSecondary(); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; render () { const { message, confirm, secondary } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js index 038cc35535..35520478b3 100644 --- a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js +++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js @@ -46,7 +46,7 @@ class DisabledAccountBanner extends React.PureComponent { this.props.onLogout(); return false; - } + }; render () { const { disabledAcct, movedToAcct } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.js index 4679c9650f..a054dd3cf3 100644 --- a/app/javascript/mastodon/features/ui/components/embed_modal.js +++ b/app/javascript/mastodon/features/ui/components/embed_modal.js @@ -17,7 +17,7 @@ class EmbedModal extends ImmutablePureComponent { onClose: PropTypes.func.isRequired, onError: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, - } + }; state = { loading: false, @@ -48,11 +48,11 @@ class EmbedModal extends ImmutablePureComponent { setIframeRef = c => { this.iframe = c; - } + }; handleTextareaClick = (e) => { e.target.select(); - } + }; render () { const { intl, onClose } = this.props; 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 c0d528b3cc..6e8d017eee 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -135,7 +135,7 @@ class FocalPointModal extends ImmutablePureComponent { this.updatePosition(e); this.setState({ dragging: true }); - } + }; handleTouchStart = e => { document.addEventListener('touchmove', this.handleMouseMove); @@ -143,25 +143,25 @@ class FocalPointModal extends ImmutablePureComponent { this.updatePosition(e); this.setState({ dragging: true }); - } + }; handleMouseMove = e => { this.updatePosition(e); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove); document.removeEventListener('mouseup', this.handleMouseUp); this.setState({ dragging: false }); - } + }; handleTouchEnd = () => { document.removeEventListener('touchmove', this.handleMouseMove); document.removeEventListener('touchend', this.handleTouchEnd); this.setState({ dragging: false }); - } + }; updatePosition = e => { const { x, y } = getPointerPosition(this.node, e); @@ -169,24 +169,24 @@ class FocalPointModal extends ImmutablePureComponent { const focusY = (y - .5) * -2; this.props.onChangeFocus(focusX, focusY); - } + }; handleChange = e => { this.props.onChangeDescription(e.target.value); - } + }; handleKeyDown = (e) => { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { this.props.onChangeDescription(e.target.value); this.handleSubmit(e); } - } + }; handleSubmit = (e) => { e.preventDefault(); e.stopPropagation(); this.props.onSave(this.props.description, this.props.focusX, this.props.focusY); - } + }; getCloseConfirmationMessage = () => { const { intl, dirty } = this.props; @@ -199,15 +199,15 @@ class FocalPointModal extends ImmutablePureComponent { } else { return null; } - } + }; setRef = c => { this.node = c; - } + }; handleTextDetection = () => { this._detectText(); - } + }; _detectText = (refreshCache = false) => { const { media } = this.props; @@ -258,21 +258,21 @@ class FocalPointModal extends ImmutablePureComponent { console.error(e); this.setState({ detecting: false }); }); - } + }; handleThumbnailChange = e => { if (e.target.files.length > 0) { this.props.onSelectThumbnail(e.target.files); } - } + }; setFileInputRef = c => { this.fileInput = c; - } + }; handleFileInputClick = () => { this.fileInput.click(); - } + }; render () { const { media, intl, account, onClose, isUploadingThumbnail, description, lang, focusX, focusY, dirty, is_changing_upload } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.js index dfa0efe49b..92aeef5c4f 100644 --- a/app/javascript/mastodon/features/ui/components/image_loader.js +++ b/app/javascript/mastodon/features/ui/components/image_loader.js @@ -14,7 +14,7 @@ export default class ImageLoader extends PureComponent { height: PropTypes.number, onClick: PropTypes.func, zoomButtonHidden: PropTypes.bool, - } + }; static defaultProps = { alt: '', @@ -26,7 +26,7 @@ export default class ImageLoader extends PureComponent { loading: true, error: false, width: null, - } + }; removers = []; canvas = null; @@ -86,7 +86,7 @@ export default class ImageLoader extends PureComponent { image.addEventListener('load', handleLoad); image.src = previewSrc; this.removers.push(removeEventListeners); - }) + }); clearPreviewCanvas () { const { width, height } = this.canvas; @@ -126,7 +126,7 @@ export default class ImageLoader extends PureComponent { setCanvasRef = c => { this.canvas = c; if (c) this.setState({ width: c.offsetWidth }); - } + }; render () { const { alt, src, width, height, onClick } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.js index 3664a05bf8..db5945d6ac 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.js +++ b/app/javascript/mastodon/features/ui/components/link_footer.js @@ -44,7 +44,7 @@ class LinkFooter extends React.PureComponent { this.props.onLogout(); return false; - } + }; render () { const { signedIn, permissions } = this.context.identity; diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js index ae937d1cdf..1cda8de044 100644 --- a/app/javascript/mastodon/features/ui/components/media_modal.js +++ b/app/javascript/mastodon/features/ui/components/media_modal.js @@ -43,27 +43,27 @@ class MediaModal extends ImmutablePureComponent { handleSwipe = (index) => { this.setState({ index: index % this.props.media.size }); - } + }; handleTransitionEnd = () => { this.setState({ zoomButtonHidden: false, }); - } + }; handleNextClick = () => { this.setState({ index: (this.getIndex() + 1) % this.props.media.size, zoomButtonHidden: true, }); - } + }; handlePrevClick = () => { this.setState({ index: (this.props.media.size + this.getIndex() - 1) % this.props.media.size, zoomButtonHidden: true, }); - } + }; handleChangeIndex = (e) => { const index = Number(e.currentTarget.getAttribute('data-index')); @@ -72,7 +72,7 @@ class MediaModal extends ImmutablePureComponent { index: index % this.props.media.size, zoomButtonHidden: true, }); - } + }; handleKeyDown = (e) => { switch(e.key) { @@ -87,7 +87,7 @@ class MediaModal extends ImmutablePureComponent { e.stopPropagation(); break; } - } + }; componentDidMount () { window.addEventListener('keydown', this.handleKeyDown, false); diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.js index 6c4aabae5c..5a17349771 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.js +++ b/app/javascript/mastodon/features/ui/components/modal_root.js @@ -79,17 +79,17 @@ export default class ModalRoot extends React.PureComponent { setBackgroundColor = color => { this.setState({ backgroundColor: color }); - } + }; renderLoading = modalId => () => { return ['MEDIA', 'VIDEO', 'BOOST', 'CONFIRM', 'ACTIONS'].indexOf(modalId) === -1 ? : null; - } + }; renderError = (props) => { const { onClose } = this.props; return ; - } + }; handleClose = (ignoreFocus = false) => { const { onClose } = this.props; @@ -102,11 +102,11 @@ export default class ModalRoot extends React.PureComponent { // This would be much smoother with react-intl 3+ and `forwardRef`. } onClose(message, ignoreFocus); - } + }; setModalRef = (c) => { this._modal = c; - } + }; render () { const { type, props, ignoreFocus } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.js b/app/javascript/mastodon/features/ui/components/mute_modal.js index d8d8e68c38..b3e0ef56be 100644 --- a/app/javascript/mastodon/features/ui/components/mute_modal.js +++ b/app/javascript/mastodon/features/ui/components/mute_modal.js @@ -65,23 +65,23 @@ class MuteModal extends React.PureComponent { handleClick = () => { this.props.onClose(); this.props.onConfirm(this.props.account, this.props.notifications, this.props.muteDuration); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; toggleNotifications = () => { this.props.onToggleNotifications(); - } + }; changeMuteDuration = (e) => { this.props.onChangeMuteDuration(e); - } + }; render () { const { account, notifications, muteDuration, intl } = this.props; diff --git a/app/javascript/mastodon/features/ui/components/report_modal.js b/app/javascript/mastodon/features/ui/components/report_modal.js index 264da07ce0..22c31eb52d 100644 --- a/app/javascript/mastodon/features/ui/components/report_modal.js +++ b/app/javascript/mastodon/features/ui/components/report_modal.js @@ -95,7 +95,7 @@ class ReportModal extends ImmutablePureComponent { } else { this.setState({ selectedRuleIds: selectedRuleIds.remove(ruleId) }); } - } + }; handleChangeCategory = category => { this.setState({ category }); diff --git a/app/javascript/mastodon/features/ui/components/upload_area.js b/app/javascript/mastodon/features/ui/components/upload_area.js index 6c423b2c1d..035fe7a26f 100644 --- a/app/javascript/mastodon/features/ui/components/upload_area.js +++ b/app/javascript/mastodon/features/ui/components/upload_area.js @@ -22,7 +22,7 @@ export default class UploadArea extends React.PureComponent { break; } } - } + }; componentDidMount () { window.addEventListener('keyup', this.handleKeyUp, false); diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.js b/app/javascript/mastodon/features/ui/components/zoomable_image.js index 1cf263cb90..3b2bb02861 100644 --- a/app/javascript/mastodon/features/ui/components/zoomable_image.js +++ b/app/javascript/mastodon/features/ui/components/zoomable_image.js @@ -102,7 +102,7 @@ class ZoomableImage extends React.PureComponent { onClick: PropTypes.func, zoomButtonHidden: PropTypes.bool, intl: PropTypes.object.isRequired, - } + }; static defaultProps = { alt: '', @@ -132,7 +132,7 @@ class ZoomableImage extends React.PureComponent { dragged: false, lockScroll: { x: 0, y: 0 }, lockTranslate: { x: 0, y: 0 }, - } + }; removers = []; container = null; @@ -212,7 +212,7 @@ class ZoomableImage extends React.PureComponent { // lock horizontal scroll this.container.scrollLeft = Math.max(this.container.scrollLeft + event.pixelX, this.state.lockScroll.x); - } + }; mouseDownHandler = e => { this.container.style.cursor = 'grabbing'; @@ -228,7 +228,7 @@ class ZoomableImage extends React.PureComponent { this.image.addEventListener('mousemove', this.mouseMoveHandler); this.image.addEventListener('mouseup', this.mouseUpHandler); - } + }; mouseMoveHandler = e => { const dx = e.clientX - this.state.dragPosition.x; @@ -238,7 +238,7 @@ class ZoomableImage extends React.PureComponent { this.container.scrollTop = Math.max(this.state.dragPosition.top - dy, this.state.lockScroll.y); this.setState({ dragged: true }); - } + }; mouseUpHandler = () => { this.container.style.cursor = 'grab'; @@ -246,13 +246,13 @@ class ZoomableImage extends React.PureComponent { this.image.removeEventListener('mousemove', this.mouseMoveHandler); this.image.removeEventListener('mouseup', this.mouseUpHandler); - } + }; handleTouchStart = e => { if (e.touches.length !== 2) return; this.lastDistance = getDistance(...e.touches); - } + }; handleTouchMove = e => { const { scrollTop, scrollHeight, clientHeight } = this.container; @@ -275,7 +275,7 @@ class ZoomableImage extends React.PureComponent { this.lastMidpoint = midpoint; this.lastDistance = distance; - } + }; zoom(nextScale, midpoint) { const { scale, zoomMatrix } = this.state; @@ -314,11 +314,11 @@ class ZoomableImage extends React.PureComponent { const handler = this.props.onClick; if (handler) handler(); this.setState({ navigationHidden: !this.state.navigationHidden }); - } + }; handleMouseDown = e => { e.preventDefault(); - } + }; initZoomMatrix = () => { const { width, height } = this.props; @@ -350,7 +350,7 @@ class ZoomableImage extends React.PureComponent { translateY: translateY, }, }); - } + }; handleZoomClick = e => { e.preventDefault(); @@ -392,15 +392,15 @@ class ZoomableImage extends React.PureComponent { this.container.style.cursor = 'grab'; this.container.style.removeProperty('user-select'); - } + }; setContainerRef = c => { this.container = c; - } + }; setImageRef = c => { this.image = c; - } + }; render () { const { alt, src, width, height, intl } = this.props; diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 78dc9ea40b..4f0ea04504 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -148,7 +148,7 @@ class SwitchingColumnsArea extends React.PureComponent { if (c) { this.node = c; } - } + }; render () { const { children, mobile } = this.props; @@ -270,16 +270,16 @@ class UI extends React.PureComponent { // but we set user-friendly message for other browsers, e.g. Edge. e.returnValue = intl.formatMessage(messages.beforeUnload); } - } + }; handleWindowFocus = () => { this.props.dispatch(focusApp()); this.props.dispatch(submitMarkers({ immediate: true })); - } + }; handleWindowBlur = () => { this.props.dispatch(unfocusApp()); - } + }; handleDragEnter = (e) => { e.preventDefault(); @@ -295,7 +295,7 @@ class UI extends React.PureComponent { if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) { this.setState({ draggingOver: true }); } - } + }; handleDragOver = (e) => { if (this.dataTransferIsText(e.dataTransfer)) return false; @@ -310,7 +310,7 @@ class UI extends React.PureComponent { } return false; - } + }; handleDrop = (e) => { if (this.dataTransferIsText(e.dataTransfer)) return; @@ -323,7 +323,7 @@ class UI extends React.PureComponent { if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) { this.props.dispatch(uploadCompose(e.dataTransfer.files)); } - } + }; handleDragLeave = (e) => { e.preventDefault(); @@ -336,15 +336,15 @@ class UI extends React.PureComponent { } this.setState({ draggingOver: false }); - } + }; dataTransferIsText = (dataTransfer) => { return (dataTransfer && Array.from(dataTransfer.types).filter((type) => type === 'text/plain').length === 1); - } + }; closeUploadModal = () => { this.setState({ draggingOver: false }); - } + }; handleServiceWorkerPostMessage = ({ data }) => { if (data.type === 'navigate') { @@ -352,7 +352,7 @@ class UI extends React.PureComponent { } else { console.warn('Unknown message type:', data.type); } - } + }; handleLayoutChange = debounce(() => { this.props.dispatch(clearHeight()); // The cached heights are no longer accurate, invalidate @@ -369,7 +369,7 @@ class UI extends React.PureComponent { } else { this.handleLayoutChange(); } - } + }; componentDidMount () { const { signedIn } = this.context.identity; @@ -423,7 +423,7 @@ class UI extends React.PureComponent { setRef = c => { this.node = c; - } + }; handleHotkeyNew = e => { e.preventDefault(); @@ -433,7 +433,7 @@ class UI extends React.PureComponent { if (element) { element.focus(); } - } + }; handleHotkeySearch = e => { e.preventDefault(); @@ -443,17 +443,17 @@ class UI extends React.PureComponent { if (element) { element.focus(); } - } + }; handleHotkeyForceNew = e => { this.handleHotkeyNew(e); this.props.dispatch(resetCompose()); - } + }; handleHotkeyToggleComposeSpoilers = e => { e.preventDefault(); this.props.dispatch(changeComposeSpoilerness()); - } + }; handleHotkeyFocusColumn = e => { const index = (e.key * 1) + 1; // First child is drawer, skip that @@ -471,7 +471,7 @@ class UI extends React.PureComponent { status.focus(); } } - } + }; handleHotkeyBack = () => { if (window.history && window.history.length === 1) { @@ -479,11 +479,11 @@ class UI extends React.PureComponent { } else { this.context.router.history.goBack(); } - } + }; setHotkeysRef = c => { this.hotkeys = c; - } + }; handleHotkeyToggleHelp = () => { if (this.props.location.pathname === '/keyboard-shortcuts') { @@ -491,55 +491,55 @@ class UI extends React.PureComponent { } else { this.context.router.history.push('/keyboard-shortcuts'); } - } + }; handleHotkeyGoToHome = () => { this.context.router.history.push('/home'); - } + }; handleHotkeyGoToNotifications = () => { this.context.router.history.push('/notifications'); - } + }; handleHotkeyGoToLocal = () => { this.context.router.history.push('/public/local'); - } + }; handleHotkeyGoToFederated = () => { this.context.router.history.push('/public'); - } + }; handleHotkeyGoToDirect = () => { this.context.router.history.push('/conversations'); - } + }; handleHotkeyGoToStart = () => { this.context.router.history.push('/getting-started'); - } + }; handleHotkeyGoToFavourites = () => { this.context.router.history.push('/favourites'); - } + }; handleHotkeyGoToPinned = () => { this.context.router.history.push('/pinned'); - } + }; handleHotkeyGoToProfile = () => { this.context.router.history.push(`/@${this.props.username}`); - } + }; handleHotkeyGoToBlocked = () => { this.context.router.history.push('/blocks'); - } + }; handleHotkeyGoToMuted = () => { this.context.router.history.push('/mutes'); - } + }; handleHotkeyGoToRequests = () => { this.context.router.history.push('/follow_requests'); - } + }; render () { const { draggingOver } = this.state; diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.js index 205dd6f107..21b3528785 100644 --- a/app/javascript/mastodon/features/ui/util/react_router_helpers.js +++ b/app/javascript/mastodon/features/ui/util/react_router_helpers.js @@ -80,17 +80,17 @@ export class WrappedRoute extends React.Component { {Component => {content}} ); - } + }; renderLoading = () => { const { multiColumn } = this.props; return ; - } + }; renderError = (props) => { return ; - } + }; render () { const { component: Component, content, ...rest } = this.props; diff --git a/app/javascript/mastodon/features/ui/util/reduced_motion.js b/app/javascript/mastodon/features/ui/util/reduced_motion.js index 95519042b4..1123b80ed9 100644 --- a/app/javascript/mastodon/features/ui/util/reduced_motion.js +++ b/app/javascript/mastodon/features/ui/util/reduced_motion.js @@ -17,7 +17,7 @@ class ReducedMotion extends React.Component { defaultStyle: PropTypes.object, style: PropTypes.object, children: PropTypes.func, - } + }; render() { diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.js index 1c35ca9d1f..8d63394aaf 100644 --- a/app/javascript/mastodon/features/video/index.js +++ b/app/javascript/mastodon/features/video/index.js @@ -148,7 +148,7 @@ class Video extends React.PureComponent { if (this.player) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.player.offsetWidth; @@ -168,26 +168,26 @@ class Video extends React.PureComponent { if (this.video) { this.setState({ volume: this.video.volume, muted: this.video.muted }); } - } + }; setSeekRef = c => { this.seek = c; - } + }; setVolumeRef = c => { this.volume = c; - } + }; handleClickRoot = e => e.stopPropagation(); handlePlay = () => { this.setState({ paused: false }); this._updateTime(); - } + }; handlePause = () => { this.setState({ paused: true }); - } + }; _updateTime () { requestAnimationFrame(() => { @@ -206,7 +206,7 @@ class Video extends React.PureComponent { currentTime: this.video.currentTime, duration:this.video.duration, }); - } + }; handleVolumeMouseDown = e => { document.addEventListener('mousemove', this.handleMouseVolSlide, true); @@ -218,14 +218,14 @@ class Video extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleVolumeMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseVolSlide, true); document.removeEventListener('mouseup', this.handleVolumeMouseUp, true); document.removeEventListener('touchmove', this.handleMouseVolSlide, true); document.removeEventListener('touchend', this.handleVolumeMouseUp, true); - } + }; handleMouseVolSlide = throttle(e => { const { x } = getPointerPosition(this.volume, e); @@ -249,7 +249,7 @@ class Video extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove, true); @@ -259,7 +259,7 @@ class Video extends React.PureComponent { this.setState({ dragging: false }); this.video.play(); - } + }; handleMouseMove = throttle(e => { const { x } = getPointerPosition(this.seek, e); @@ -291,7 +291,7 @@ class Video extends React.PureComponent { e.stopPropagation(); this.togglePlay(); } - } + }; handleKeyDown = e => { const frameTime = 1 / this.getFrameRate(); @@ -345,7 +345,7 @@ class Video extends React.PureComponent { exitFullscreen(); } } - } + }; togglePlay = () => { if (this.state.paused) { @@ -353,7 +353,7 @@ class Video extends React.PureComponent { } else { this.setState({ paused: true }, () => this.video.pause()); } - } + }; toggleFullscreen = () => { if (isFullscreen()) { @@ -361,7 +361,7 @@ class Video extends React.PureComponent { } else { requestFullscreen(this.player); } - } + }; componentDidMount () { document.addEventListener('fullscreenchange', this.handleFullscreenChange, true); @@ -434,19 +434,19 @@ class Video extends React.PureComponent { this.setState({ paused: true }); } - }, 150, { trailing: true }) + }, 150, { trailing: true }); handleFullscreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; handleMouseEnter = () => { this.setState({ hovered: true }); - } + }; handleMouseLeave = () => { this.setState({ hovered: false }); - } + }; toggleMute = () => { const muted = !this.video.muted; @@ -454,7 +454,7 @@ class Video extends React.PureComponent { this.setState({ muted }, () => { this.video.muted = muted; }); - } + }; toggleReveal = () => { if (this.props.onToggleVisibility) { @@ -462,7 +462,7 @@ class Video extends React.PureComponent { } else { this.setState({ revealed: !this.state.revealed }); } - } + }; handleLoadedData = () => { const { currentTime, volume, muted, autoPlay } = this.props; @@ -482,7 +482,7 @@ class Video extends React.PureComponent { if (autoPlay) { this.video.play(); } - } + }; handleProgress = () => { const lastTimeRange = this.video.buffered.length - 1; @@ -490,11 +490,11 @@ class Video extends React.PureComponent { if (lastTimeRange > -1) { this.setState({ buffer: Math.ceil(this.video.buffered.end(lastTimeRange) / this.video.duration * 100) }); } - } + }; handleVolumeChange = () => { this.setState({ volume: this.video.volume, muted: this.video.muted }); - } + }; handleOpenVideo = () => { this.video.pause(); @@ -505,12 +505,12 @@ class Video extends React.PureComponent { defaultVolume: this.state.volume, componentIndex: this.props.componentIndex, }); - } + }; handleCloseVideo = () => { this.video.pause(); this.props.onCloseVideo(); - } + }; getFrameRate () { if (this.props.frameRate && isNaN(this.props.frameRate)) { diff --git a/package.json b/package.json index 26618d748b..e55588c068 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", "babel-jest": "^29.3.1", - "eslint": "^7.32.0", + "eslint": "^8.33.0", "eslint-plugin-import": "~2.26.0", "eslint-plugin-jsx-a11y": "~6.6.1", "eslint-plugin-promise": "~6.1.1", diff --git a/yarn.lock b/yarn.lock index 798fed8a46..6b855b19db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,13 +23,6 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -305,7 +298,7 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": +"@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -1171,19 +1164,19 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" "@floating-ui/core@^1.0.1": @@ -1220,19 +1213,24 @@ resolved "https://registry.yarnpkg.com/@github/webauthn-json/-/webauthn-json-0.5.7.tgz#143bc67f6e0f75f8d188e565741507bb08c31214" integrity sha512-SUYsttDxFSvWvvJssJpwzjmRCqYfdfqC9VCmAHQYfdKCVelyJteCHo9/lK1CB72mx/jrl6cFNY08aua4J2jIyg== -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -1550,7 +1548,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -2167,10 +2165,10 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0, acorn-walk@^8.0.2: version "8.2.0" @@ -2182,16 +2180,16 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.1: version "8.8.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2247,11 +2245,6 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^4.2.1: version "4.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -3866,7 +3859,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4284,13 +4277,6 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - entities@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" @@ -4511,7 +4497,7 @@ eslint-plugin-react@~7.32.1: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -4527,77 +4513,84 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.33.0: + version "8.33.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" + integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" + regexpp "^3.2.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" - table "^6.0.9" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -4979,6 +4972,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -5128,11 +5129,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -5231,6 +5227,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -5295,10 +5298,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -5335,6 +5338,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -5666,11 +5674,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^4.0.6: - version "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, ignore@^5.2.1: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -6133,6 +6136,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -6704,6 +6712,11 @@ jest@^29.3.1: import-local "^3.0.2" jest-cli "^29.3.1" +js-sdsl@^4.1.4: + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + "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" @@ -7000,6 +7013,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lockfile@^1.0: version "1.0.4" resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" @@ -7338,7 +7358,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7904,6 +7924,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -8657,11 +8684,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -9288,10 +9310,10 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.1.0: version "5.1.0" @@ -9648,7 +9670,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -10449,7 +10471,7 @@ 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.1: +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== @@ -11053,7 +11075,7 @@ uuid@^8.3.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: +v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== From e6192eab9b7d06697ffcf8e19af3bab8187698cf Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 20:11:50 -0500 Subject: [PATCH 0283/1220] Remove unused ESLint disable directives (#22427) --- app/javascript/packs/public-path.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/packs/public-path.js b/app/javascript/packs/public-path.js index f96109f4fc..f4d166a771 100644 --- a/app/javascript/packs/public-path.js +++ b/app/javascript/packs/public-path.js @@ -17,5 +17,5 @@ function formatPublicPath(host = '', path = '') { const cdnHost = document.querySelector('meta[name=cdn-host]'); -// eslint-disable-next-line camelcase, no-undef, no-unused-vars +// eslint-disable-next-line no-undef __webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH); diff --git a/package.json b/package.json index e55588c068..a698034378 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "start": "node ./streaming/index.js", "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", - "test:lint:js": "eslint --ext=js . --cache", + "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives", "test:lint:sass": "stylelint \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write \"**/*.{json,yml}\"", From 8ce2a4220c7de0f40ad6fa090a90dd04824d2221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 10:56:09 +0900 Subject: [PATCH 0284/1220] Bump eslint-plugin-import from 2.26.0 to 2.27.5 (#23120) Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.26.0 to 2.27.5. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.5) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 118 +++++++++++++++++---------------------------------- 2 files changed, 41 insertions(+), 79 deletions(-) diff --git a/package.json b/package.json index a698034378..12bedacbb0 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "@testing-library/react": "^12.1.5", "babel-jest": "^29.3.1", "eslint": "^8.33.0", - "eslint-plugin-import": "~2.26.0", + "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.6.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.1", diff --git a/yarn.lock b/yarn.lock index 6b855b19db..74a8a39763 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2371,7 +2371,7 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -2404,14 +2404,15 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: version "1.3.1" @@ -3852,7 +3853,7 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -4417,39 +4418,41 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== +eslint-module-utils@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" -eslint-plugin-import@~2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== +eslint-plugin-import@~2.27.5: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-jsx-a11y@~6.6.1: @@ -4950,13 +4953,6 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -5965,14 +5961,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -6990,14 +6979,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -7784,7 +7765,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.0, object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -7882,13 +7863,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -7903,13 +7877,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -7950,11 +7917,6 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -9441,12 +9403,12 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" From ea1507ee851ecdaf8723435971573b460df0fd5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 10:57:59 +0900 Subject: [PATCH 0285/1220] Bump aws-sdk-s3 from 1.117.2 to 1.118.0 (#23202) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.117.2 to 1.118.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 9c1c9586a7..40fd2312ae 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'makara', '~> 0.5' gem 'pghero' gem 'dotenv-rails', '~> 2.8' -gem 'aws-sdk-s3', '~> 1.117', require: false +gem 'aws-sdk-s3', '~> 1.118', require: false gem 'fog-core', '<= 2.4.0' gem 'fog-openstack', '~> 0.3', require: false gem 'kt-paperclip', '~> 7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 525dc84b96..646254d3ee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,16 +90,16 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.670.0) - aws-sdk-core (3.168.2) + aws-partitions (1.697.0) + aws-sdk-core (3.169.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.60.0) + aws-sdk-kms (1.62.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.117.2) + aws-sdk-s3 (1.118.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) @@ -762,7 +762,7 @@ DEPENDENCIES active_record_query_trace (~> 1.8) addressable (~> 2.8) annotate (~> 3.2) - aws-sdk-s3 (~> 1.117) + aws-sdk-s3 (~> 1.118) better_errors (~> 2.9) binding_of_caller (~> 1.0) blurhash (~> 0.1) From 56d1af753d7929817ec25308e0e01c2ab6ed58dc Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 21:07:19 -0500 Subject: [PATCH 0286/1220] Only build latest commit on branch for image (#23306) --- .github/workflows/build-image.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index c58229c4d4..97cc0c5ce9 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -16,6 +16,11 @@ permissions: jobs: build-image: runs-on: ubuntu-latest + + concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + steps: - uses: actions/checkout@v3 - uses: hadolint/hadolint-action@v3.1.0 From 131e6403ccd59693e8498d175acba4fdd28268b9 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 21:07:51 -0500 Subject: [PATCH 0287/1220] Update hasOwnProperty calls for ESLint (#23307) --- .eslintrc.js | 1 - app/javascript/mastodon/features/emoji/emoji_utils.js | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 03af2975b8..e728a7f14b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -81,7 +81,6 @@ module.exports = { ], 'no-empty': 'off', 'no-nested-ternary': 'warn', - 'no-prototype-builtins': 'off', 'no-restricted-properties': [ 'error', { property: 'substring', message: 'Use .slice instead of .substring.' }, diff --git a/app/javascript/mastodon/features/emoji/emoji_utils.js b/app/javascript/mastodon/features/emoji/emoji_utils.js index dbf725c1f5..571907a509 100644 --- a/app/javascript/mastodon/features/emoji/emoji_utils.js +++ b/app/javascript/mastodon/features/emoji/emoji_utils.js @@ -135,19 +135,19 @@ function getData(emoji, skin, set) { } } - if (data.short_names.hasOwnProperty(emoji)) { + if (Object.prototype.hasOwnProperty.call(data.short_names, emoji)) { emoji = data.short_names[emoji]; } - if (data.emojis.hasOwnProperty(emoji)) { + if (Object.prototype.hasOwnProperty.call(data.emojis, emoji)) { emojiData = data.emojis[emoji]; } } else if (emoji.id) { - if (data.short_names.hasOwnProperty(emoji.id)) { + if (Object.prototype.hasOwnProperty.call(data.short_names, emoji.id)) { emoji.id = data.short_names[emoji.id]; } - if (data.emojis.hasOwnProperty(emoji.id)) { + if (Object.prototype.hasOwnProperty.call(data.emojis, emoji.id)) { emojiData = data.emojis[emoji.id]; skin = skin || emoji.skin; } @@ -216,7 +216,7 @@ function deepMerge(a, b) { let originalValue = a[key], value = originalValue; - if (b.hasOwnProperty(key)) { + if (Object.prototype.hasOwnProperty.call(b, key)) { value = b[key]; } From cbf5ea39d0cabc534a2e75ac2ceff9ad77564962 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 21:08:37 -0500 Subject: [PATCH 0288/1220] Enable ESLint react/recommended ruleset (#22460) --- .eslintrc.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index e728a7f14b..e0a92a0f45 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,6 +3,7 @@ module.exports = { extends: [ 'eslint:recommended', + 'plugin:react/recommended', ], env: { @@ -112,19 +113,16 @@ module.exports = { 'react/jsx-boolean-value': 'error', 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], 'react/jsx-curly-spacing': 'error', + 'react/display-name': 'off', 'react/jsx-equals-spacing': 'error', 'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'], 'react/jsx-indent': ['error', 2], 'react/jsx-no-bind': 'error', - 'react/jsx-no-duplicate-props': 'error', - 'react/jsx-no-undef': 'error', + 'react/jsx-no-target-blank': 'off', 'react/jsx-tag-spacing': 'error', - 'react/jsx-uses-react': 'error', - 'react/jsx-uses-vars': 'error', 'react/jsx-wrap-multilines': 'error', - 'react/no-multi-comp': 'off', - 'react/no-string-refs': 'error', - 'react/prop-types': 'error', + 'react/no-deprecated': 'off', + 'react/no-unknown-property': 'off', 'react/self-closing-comp': 'error', 'jsx-a11y/accessible-emoji': 'warn', From 84c72cb21ff787810e85913536966178f1f1e31d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 11:12:35 +0900 Subject: [PATCH 0289/1220] Bump eslint-plugin-jsx-a11y from 6.6.1 to 6.7.1 (#23121) Bumps [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) from 6.6.1 to 6.7.1. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.6.1...v6.7.1) --- updated-dependencies: - dependency-name: eslint-plugin-jsx-a11y dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yamagishi Kazutoshi --- package.json | 2 +- yarn.lock | 239 ++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 207 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 12bedacbb0..59f4bffc17 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ "babel-jest": "^29.3.1", "eslint": "^8.33.0", "eslint-plugin-import": "~2.27.5", - "eslint-plugin-jsx-a11y": "~6.6.1", + "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.1", "jest": "^29.3.1", diff --git a/yarn.lock b/yarn.lock index 74a8a39763..f13885454a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1030,7 +1030,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.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@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": +"@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.2.0", "@babel/runtime@^7.20.13", "@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.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== @@ -2341,10 +2341,12 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" -aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== +aria-query@^5.0.0, aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" arr-diff@^4.0.0: version "4.0.0" @@ -2528,10 +2530,15 @@ autoprefixer@^9.8.8: postcss "^7.0.32" postcss-value-parser "^4.1.0" -axe-core@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" - integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== axios@^1.2.3: version "1.2.3" @@ -2542,10 +2549,12 @@ axios@^1.2.3: form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" babel-jest@^29.3.1: version "29.3.1" @@ -3914,6 +3923,29 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -4339,6 +4371,21 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es- string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -4455,23 +4502,26 @@ eslint-plugin-import@~2.27.5: semver "^6.3.0" tsconfig-paths "^3.14.1" -eslint-plugin-jsx-a11y@~6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" - integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== +eslint-plugin-jsx-a11y@~6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: - "@babel/runtime" "^7.18.9" - aria-query "^4.2.2" - array-includes "^3.1.5" + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" ast-types-flow "^0.0.7" - axe-core "^4.4.3" - axobject-query "^2.2.0" + axe-core "^4.6.2" + axobject-query "^3.1.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" has "^1.0.3" - jsx-ast-utils "^3.3.2" - language-tags "^1.0.5" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" semver "^6.3.0" eslint-plugin-promise@~6.1.1: @@ -5017,6 +5067,13 @@ font-awesome@^4.7.0: resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -5329,6 +5386,13 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" @@ -5806,6 +5870,15 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +internal-slot@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" + interpret@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -5908,6 +5981,23 @@ is-arguments@^1.0.4: resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -5944,7 +6034,7 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.2" -is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== @@ -5987,6 +6077,13 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -6061,6 +6158,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -6170,6 +6272,11 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -6201,11 +6308,27 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-url@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -6213,6 +6336,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -6233,6 +6364,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6880,13 +7016,13 @@ jsonpointer@^5.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072" integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg== -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd" - integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q== +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: array-includes "^3.1.5" - object.assign "^4.1.2" + object.assign "^4.1.3" keycode@^2.1.7: version "2.2.0" @@ -6923,10 +7059,10 @@ language-subtag-registry@~0.3.2: resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz#a00a37121894f224f763268e431c55556b0c0755" integrity sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg== -language-tags@^1.0.5: +language-tags@=1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: language-subtag-registry "~0.3.2" @@ -7702,6 +7838,14 @@ object-is@^1.0.1: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -7714,7 +7858,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.2, object.assign@^4.1.4: +object.assign@^4.1.3, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -10084,6 +10228,13 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -11359,11 +11510,33 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From f8bdfa2f197cbf4398fc5aad36ffe84989f0e2d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 11:15:44 +0900 Subject: [PATCH 0290/1220] Bump punycode from 2.2.0 to 2.3.0 (#23230) Bumps [punycode](https://github.com/mathiasbynens/punycode.js) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/mathiasbynens/punycode.js/releases) - [Commits](https://github.com/mathiasbynens/punycode.js/commits) --- updated-dependencies: - dependency-name: punycode dependency-type: direct:production update-type: version-update:semver-minor ... 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 59f4bffc17..7201d6719f 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "postcss-loader": "^3.0.0", "promise.prototype.finally": "^3.1.4", "prop-types": "^15.8.1", - "punycode": "^2.2.0", + "punycode": "^2.3.0", "react": "^16.14.0", "react-dom": "^16.14.0", "react-helmet": "^6.1.0", diff --git a/yarn.lock b/yarn.lock index f13885454a..92fe2fde1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8891,10 +8891,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, punycode@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" - integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== q@^1.1.2: version "1.5.1" From 1032d456445a2c1479a1ed3f69c9f724e31ff71b Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 30 Jan 2023 00:17:46 -0500 Subject: [PATCH 0291/1220] Ignore ESLint nested ternary (#23310) --- .eslintrc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index e0a92a0f45..66057fb735 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -81,7 +81,6 @@ module.exports = { }, ], 'no-empty': 'off', - 'no-nested-ternary': 'warn', 'no-restricted-properties': [ 'error', { property: 'substring', message: 'Use .slice instead of .substring.' }, From 96d26a941782f071e436f34c75e91c36462579d6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 30 Jan 2023 00:18:12 -0500 Subject: [PATCH 0292/1220] Enable ESLint jsx-a11y/recommended ruleset (#23309) --- .eslintrc.js | 73 +++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 66057fb735..ca7fc83eb9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,6 +4,7 @@ module.exports = { extends: [ 'eslint:recommended', 'plugin:react/recommended', + 'plugin:jsx-a11y/recommended', ], env: { @@ -124,40 +125,30 @@ module.exports = { 'react/no-unknown-property': 'off', 'react/self-closing-comp': 'error', + // recommended values found in https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/src/index.js 'jsx-a11y/accessible-emoji': 'warn', - 'jsx-a11y/alt-text': 'warn', - 'jsx-a11y/anchor-has-content': 'warn', - 'jsx-a11y/anchor-is-valid': [ - 'warn', - { - components: [ - 'Link', - 'NavLink', - ], - specialLink: [ - 'to', - ], - aspect: [ - 'noHref', - 'invalidHref', - 'preferButton', - ], - }, - ], - 'jsx-a11y/aria-activedescendant-has-tabindex': 'warn', - 'jsx-a11y/aria-props': 'warn', - 'jsx-a11y/aria-proptypes': 'warn', - 'jsx-a11y/aria-role': 'warn', - 'jsx-a11y/aria-unsupported-elements': 'warn', - 'jsx-a11y/heading-has-content': 'warn', - 'jsx-a11y/html-has-lang': 'warn', - 'jsx-a11y/iframe-has-title': 'warn', - 'jsx-a11y/img-redundant-alt': 'warn', - 'jsx-a11y/interactive-supports-focus': 'warn', - 'jsx-a11y/label-has-for': 'off', - 'jsx-a11y/mouse-events-have-key-events': 'warn', - 'jsx-a11y/no-access-key': 'warn', - 'jsx-a11y/no-distracting-elements': 'warn', + 'jsx-a11y/click-events-have-key-events': 'off', + 'jsx-a11y/label-has-associated-control': 'off', + 'jsx-a11y/media-has-caption': 'off', + 'jsx-a11y/no-autofocus': 'off', + // recommended rule is: + // 'jsx-a11y/no-interactive-element-to-noninteractive-role': [ + // 'error', + // { + // tr: ['none', 'presentation'], + // canvas: ['img'], + // }, + // ], + 'jsx-a11y/no-interactive-element-to-noninteractive-role': 'off', + // recommended rule is: + // 'jsx-a11y/no-noninteractive-element-interactions': [ + // 'error', + // { + // body: ['onError', 'onLoad'], + // iframe: ['onError', 'onLoad'], + // img: ['onError', 'onLoad'], + // }, + // ], 'jsx-a11y/no-noninteractive-element-interactions': [ 'warn', { @@ -166,8 +157,18 @@ module.exports = { ], }, ], + // recommended rule is: + // 'jsx-a11y/no-noninteractive-tabindex': [ + // 'error', + // { + // tags: [], + // roles: ['tabpanel'], + // allowExpressionValues: true, + // }, + // ], + 'jsx-a11y/no-noninteractive-tabindex': 'off', 'jsx-a11y/no-onchange': 'warn', - 'jsx-a11y/no-redundant-roles': 'warn', + // recommended is full 'error' 'jsx-a11y/no-static-element-interactions': [ 'warn', { @@ -176,10 +177,6 @@ module.exports = { ], }, ], - 'jsx-a11y/role-has-required-aria-props': 'warn', - 'jsx-a11y/role-supports-aria-props': 'off', - 'jsx-a11y/scope': 'warn', - 'jsx-a11y/tabindex-no-positive': 'warn', 'import/extensions': [ 'error', From e73b55184b37e7f29e5bcb16c980dc8dbdb9a7d1 Mon Sep 17 00:00:00 2001 From: Akira Ouchi Date: Mon, 30 Jan 2023 22:49:10 +0900 Subject: [PATCH 0293/1220] autofocus the compose form again on /share (#23094) --- app/javascript/mastodon/features/standalone/compose/index.js | 2 +- app/javascript/mastodon/reducers/compose.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.js index 0d764575fd..fbadef6f4e 100644 --- a/app/javascript/mastodon/features/standalone/compose/index.js +++ b/app/javascript/mastodon/features/standalone/compose/index.js @@ -9,7 +9,7 @@ export default class Compose extends React.PureComponent { render () { return (
    - + diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 1760c7c891..77faa96a40 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -222,8 +222,8 @@ const privacyPreference = (a, b) => { const hydrate = (state, hydratedState) => { state = clearAll(state.merge(hydratedState)); - if (hydratedState.has('text')) { - state = state.set('text', hydratedState.get('text')); + if (hydratedState.get('text')) { + state = state.set('text', hydratedState.get('text')).set('focusDate', new Date()); } return state; From 1ca3127a1da8903e72d14ead8bcff21ab6b8950c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 00:46:27 +0900 Subject: [PATCH 0294/1220] Bump gitlab-omniauth-openid-connect from 0.10.0 to 0.10.1 (#23241) Bumps [gitlab-omniauth-openid-connect](https://gitlab.com/gitlab-org/gitlab-omniauth-openid-connect) from 0.10.0 to 0.10.1. - [Release notes](https://gitlab.com/gitlab-org/gitlab-omniauth-openid-connect/tags) - [Commits](https://gitlab.com/gitlab-org/gitlab-omniauth-openid-connect/compare/v0.10.0...v0.10.1) --- updated-dependencies: - dependency-name: gitlab-omniauth-openid-connect dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 40fd2312ae..59134bfa91 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ end gem 'net-ldap', '~> 0.17' gem 'omniauth-cas', '~> 2.0' gem 'omniauth-saml', '~> 1.10' -gem 'gitlab-omniauth-openid-connect', '~>0.10.0', require: 'omniauth_openid_connect' +gem 'gitlab-omniauth-openid-connect', '~>0.10.1', require: 'omniauth_openid_connect' gem 'omniauth', '~> 1.9' gem 'omniauth-rails_csrf_protection', '~> 0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 646254d3ee..6e83b93807 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -117,7 +117,7 @@ GEM erubi (~> 1.4) parser (>= 2.4) smart_properties - bindata (2.4.10) + bindata (2.4.14) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) blurhash (0.1.6) @@ -279,7 +279,7 @@ GEM fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - gitlab-omniauth-openid-connect (0.10.0) + gitlab-omniauth-openid-connect (0.10.1) addressable (~> 2.7) omniauth (>= 1.9, < 3) openid_connect (~> 1.2) @@ -331,10 +331,11 @@ GEM jmespath (1.6.2) json (2.6.3) json-canonicalization (0.3.0) - json-jwt (1.14.0) + json-jwt (1.15.3) activesupport (>= 4.2) aes_key_wrap bindata + httpclient json-ld (3.2.3) htmlentities (~> 4.3) json-canonicalization (~> 0.3) @@ -416,7 +417,7 @@ GEM net-ldap (0.17.1) net-pop (0.1.2) net-protocol - net-protocol (0.1.3) + net-protocol (0.2.1) timeout net-scp (4.0.0.rc1) net-ssh (>= 2.6.5, < 8.0.0) @@ -446,16 +447,17 @@ GEM omniauth-saml (1.10.3) omniauth (~> 1.3, >= 1.3.2) ruby-saml (~> 1.9) - openid_connect (1.3.0) + openid_connect (1.4.2) activemodel attr_required (>= 1.0.0) - json-jwt (>= 1.5.0) - rack-oauth2 (>= 1.6.1) - swd (>= 1.0.0) + json-jwt (>= 1.15.0) + net-smtp + rack-oauth2 (~> 1.21) + swd (~> 1.3) tzinfo validate_email validate_url - webfinger (>= 1.0.1) + webfinger (~> 1.2) openssl (3.0.0) openssl-signature_algorithm (1.2.1) openssl (> 2.0, < 3.1) @@ -501,7 +503,7 @@ GEM rack (>= 1.0, < 3) rack-cors (1.1.1) rack (>= 2.0.0) - rack-oauth2 (1.19.0) + rack-oauth2 (1.21.3) activesupport attr_required httpclient @@ -689,7 +691,7 @@ GEM climate_control (>= 0.0.3, < 1.0) thor (1.2.1) tilt (2.0.11) - timeout (0.3.0) + timeout (0.3.1) tpm-key_attestation (0.11.0) bindata (~> 2.4) openssl (> 2.0, < 3.1) @@ -797,7 +799,7 @@ DEPENDENCIES fog-core (<= 2.4.0) fog-openstack (~> 0.3) fuubar (~> 2.5) - gitlab-omniauth-openid-connect (~> 0.10.0) + gitlab-omniauth-openid-connect (~> 0.10.1) hamlit-rails (~> 0.2) hiredis (~> 0.6) htmlentities (~> 4.3) From 081f14b361b08d3c5fd21bf424ab0efd9af87d9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 00:48:28 +0900 Subject: [PATCH 0295/1220] Bump mkdirp from 1.0.4 to 2.1.3 (#23228) Bumps [mkdirp](https://github.com/isaacs/node-mkdirp) from 1.0.4 to 2.1.3. - [Release notes](https://github.com/isaacs/node-mkdirp/releases) - [Changelog](https://github.com/isaacs/node-mkdirp/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-mkdirp/compare/v1.0.4...v2.1.3) --- updated-dependencies: - dependency-name: mkdirp dependency-type: direct:production update-type: version-update:semver-major ... 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 7201d6719f..05526a0a8c 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "mark-loader": "^0.1.6", "marky": "^1.2.5", "mini-css-extract-plugin": "^1.6.2", - "mkdirp": "^1.0.4", + "mkdirp": "^2.1.3", "npmlog": "^7.0.1", "object-assign": "^4.1.1", "object.values": "^1.1.6", diff --git a/yarn.lock b/yarn.lock index 92fe2fde1c..fcc20f6fa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7575,6 +7575,11 @@ mkdirp@^1.0, mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" + integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== + mousetrap@^1.5.2: version "1.6.5" resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" From 409fcd1985c3ef4615095d140a16e004e76bf238 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:58:10 +0100 Subject: [PATCH 0296/1220] Bump doorkeeper from 5.6.2 to 5.6.3 (#23324) Bumps [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) from 5.6.2 to 5.6.3. - [Release notes](https://github.com/doorkeeper-gem/doorkeeper/releases) - [Changelog](https://github.com/doorkeeper-gem/doorkeeper/blob/main/CHANGELOG.md) - [Commits](https://github.com/doorkeeper-gem/doorkeeper/compare/v5.6.2...v5.6.3) --- updated-dependencies: - dependency-name: doorkeeper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6e83b93807..26b0708ee5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,7 +207,7 @@ GEM docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.6.2) + doorkeeper (5.6.3) railties (>= 5) dotenv (2.8.1) dotenv-rails (2.8.1) @@ -535,7 +535,7 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.4) + rails-html-sanitizer (1.5.0) loofah (~> 2.19, >= 2.19.1) rails-i18n (6.0.0) i18n (>= 0.7, < 2) @@ -709,7 +709,7 @@ GEM twitter-text (3.1.0) idn-ruby unf (~> 0.1.0) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) tzinfo-data (1.2022.7) tzinfo (>= 1.0.0) From 4b6bd4bc0def78c6ac0abbb5b28dbb1272fcc19f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:58:43 +0100 Subject: [PATCH 0297/1220] Bump redux from 4.2.0 to 4.2.1 (#23325) Bumps [redux](https://github.com/reduxjs/redux) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/reduxjs/redux/releases) - [Changelog](https://github.com/reduxjs/redux/blob/master/CHANGELOG.md) - [Commits](https://github.com/reduxjs/redux/compare/v4.2.0...v4.2.1) --- updated-dependencies: - dependency-name: redux dependency-type: direct:production update-type: version-update:semver-patch ... 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 05526a0a8c..347d039e85 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "react-textarea-autosize": "^8.4.0", "react-toggle": "^4.1.3", "redis": "^4.0.6 <4.1.0", - "redux": "^4.2.0", + "redux": "^4.2.1", "redux-immutable": "^4.0.0", "redux-thunk": "^2.4.2", "regenerator-runtime": "^0.13.11", diff --git a/yarn.lock b/yarn.lock index fcc20f6fa8..c7f60910e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9368,10 +9368,10 @@ redux-thunk@^2.4.2: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@^4.0.0, redux@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" - integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== +redux@^4.0.0, redux@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" From d49879cc7b91775b9104fb52645d642f36dc92fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:06:59 +0100 Subject: [PATCH 0298/1220] Bump rails from 6.1.7.1 to 6.1.7.2 (#23326) Bumps [rails](https://github.com/rails/rails) from 6.1.7.1 to 6.1.7.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.7.1...v6.1.7.2) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 26b0708ee5..3cac398a4c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,40 +10,40 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.1) - actionpack (= 6.1.7.1) - activesupport (= 6.1.7.1) + actioncable (6.1.7.2) + actionpack (= 6.1.7.2) + activesupport (= 6.1.7.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - 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) + actionmailbox (6.1.7.2) + actionpack (= 6.1.7.2) + activejob (= 6.1.7.2) + activerecord (= 6.1.7.2) + activestorage (= 6.1.7.2) + activesupport (= 6.1.7.2) mail (>= 2.7.1) - 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) + actionmailer (6.1.7.2) + actionpack (= 6.1.7.2) + actionview (= 6.1.7.2) + activejob (= 6.1.7.2) + activesupport (= 6.1.7.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.1) - actionview (= 6.1.7.1) - activesupport (= 6.1.7.1) + actionpack (6.1.7.2) + actionview (= 6.1.7.2) + activesupport (= 6.1.7.2) 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.1) - actionpack (= 6.1.7.1) - activerecord (= 6.1.7.1) - activestorage (= 6.1.7.1) - activesupport (= 6.1.7.1) + actiontext (6.1.7.2) + actionpack (= 6.1.7.2) + activerecord (= 6.1.7.2) + activestorage (= 6.1.7.2) + activesupport (= 6.1.7.2) nokogiri (>= 1.8.5) - actionview (6.1.7.1) - activesupport (= 6.1.7.1) + actionview (6.1.7.2) + activesupport (= 6.1.7.2) 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.1) - activesupport (= 6.1.7.1) + activejob (6.1.7.2) + activesupport (= 6.1.7.2) globalid (>= 0.3.6) - 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) + activemodel (6.1.7.2) + activesupport (= 6.1.7.2) + activerecord (6.1.7.2) + activemodel (= 6.1.7.2) + activesupport (= 6.1.7.2) + activestorage (6.1.7.2) + actionpack (= 6.1.7.2) + activejob (= 6.1.7.2) + activerecord (= 6.1.7.2) + activesupport (= 6.1.7.2) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.1) + activesupport (6.1.7.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -283,7 +283,7 @@ GEM addressable (~> 2.7) omniauth (>= 1.9, < 3) openid_connect (~> 1.2) - globalid (1.0.1) + globalid (1.1.0) activesupport (>= 5.0) hamlit (2.13.0) temple (>= 0.8.2) @@ -513,20 +513,20 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - 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) + rails (6.1.7.2) + actioncable (= 6.1.7.2) + actionmailbox (= 6.1.7.2) + actionmailer (= 6.1.7.2) + actionpack (= 6.1.7.2) + actiontext (= 6.1.7.2) + actionview (= 6.1.7.2) + activejob (= 6.1.7.2) + activemodel (= 6.1.7.2) + activerecord (= 6.1.7.2) + activestorage (= 6.1.7.2) + activesupport (= 6.1.7.2) bundler (>= 1.15.0) - railties (= 6.1.7.1) + railties (= 6.1.7.2) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -542,9 +542,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (6.1.7.1) - actionpack (= 6.1.7.1) - activesupport (= 6.1.7.1) + railties (6.1.7.2) + actionpack (= 6.1.7.2) + activesupport (= 6.1.7.2) method_source rake (>= 12.2) thor (~> 1.0) From 801a209e06042a70a747e080430af73b52bc9291 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:07:16 +0100 Subject: [PATCH 0299/1220] Bump simple_form from 5.1.0 to 5.2.0 (#23328) Bumps [simple_form](https://github.com/heartcombo/simple_form) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/heartcombo/simple_form/releases) - [Changelog](https://github.com/heartcombo/simple_form/blob/main/CHANGELOG.md) - [Commits](https://github.com/heartcombo/simple_form/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: simple_form dependency-type: direct:production update-type: version-update:semver-minor ... 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 59134bfa91..2ac9dd9d88 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'sidekiq-scheduler', '~> 4.0' gem 'sidekiq-unique-jobs', '~> 7.1' gem 'sidekiq-bulk', '~> 0.2.0' gem 'simple-navigation', '~> 4.4' -gem 'simple_form', '~> 5.1' +gem 'simple_form', '~> 5.2' gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie' gem 'stoplight', '~> 3.0.1' gem 'strong_migrations', '~> 0.7' diff --git a/Gemfile.lock b/Gemfile.lock index 3cac398a4c..78ab858317 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -654,7 +654,7 @@ GEM thor (>= 0.20, < 3.0) simple-navigation (4.4.0) activesupport (>= 2.3.2) - simple_form (5.1.0) + simple_form (5.2.0) actionpack (>= 5.2) activemodel (>= 5.2) simplecov (0.22.0) @@ -871,7 +871,7 @@ DEPENDENCIES sidekiq-scheduler (~> 4.0) sidekiq-unique-jobs (~> 7.1) simple-navigation (~> 4.4) - simple_form (~> 5.1) + simple_form (~> 5.2) simplecov (~> 0.22) sprockets (~> 3.7.2) sprockets-rails (~> 3.4) From f684ff72f2b05a1ea6d142202a33e1779d581066 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:12:12 +0100 Subject: [PATCH 0300/1220] Bump utf-8-validate from 6.0.1 to 6.0.2 (#23327) Bumps [utf-8-validate](https://github.com/websockets/utf-8-validate) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/websockets/utf-8-validate/releases) - [Commits](https://github.com/websockets/utf-8-validate/compare/v6.0.1...v6.0.2) --- updated-dependencies: - dependency-name: utf-8-validate dependency-type: direct:production update-type: version-update:semver-patch ... 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 347d039e85..57363118cc 100644 --- a/package.json +++ b/package.json @@ -167,6 +167,6 @@ }, "optionalDependencies": { "bufferutil": "^4.0.7", - "utf-8-validate": "^6.0.1" + "utf-8-validate": "^6.0.2" } } diff --git a/yarn.lock b/yarn.lock index c7f60910e3..2fc9eaff88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11142,10 +11142,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@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.1.tgz#ca94aac987856c17c1b556b8b692323de98f521e" - integrity sha512-gAZEa1DMXeBiHEwxef81kLtZjBrC1hib7UWnsvMVtxY8oJGtDSXt9McWu2D6V/xgrjbfRBsS5UIGEUBg2SrAsg== +utf-8-validate@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.2.tgz#2d80529963e4cc55ac5a1ca9dafdaa990d5ea16b" + integrity sha512-yd7PQEOW+EgecUzSD7XUXTyq/vREGXk7t7fzGfOvwOAr0Z64h5rfGrmkNk8+ddVmf/FrkjPPhVyYBa7fuSPVTg== dependencies: node-gyp-build "^4.3.0" From 597daed17ae01732d48a6cb8af80b5b23bd6ed48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:14:44 +0100 Subject: [PATCH 0301/1220] Bump rimraf from 4.1.1 to 4.1.2 (#23332) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.1 to 4.1.2. - [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/v4.1.1...v4.1.2) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... 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 57363118cc..8cde7617e7 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "regenerator-runtime": "^0.13.11", "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", - "rimraf": "^4.1.1", + "rimraf": "^4.1.2", "sass": "^1.57.1", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index 2fc9eaff88..3206a2e019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9609,10 +9609,10 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.1.tgz#ec29817863e5d82d22bca82f9dc4325be2f1e72b" - integrity sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg== +rimraf@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.2.tgz#20dfbc98083bdfaa28b01183162885ef213dbf7c" + integrity sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ== ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" From 723412ac5e41572ecb804c2132a9798df89a671a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:16:13 +0100 Subject: [PATCH 0302/1220] Bump rubocop from 1.44.0 to 1.44.1 (#23337) Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.44.0 to 1.44.1. - [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.44.0...v1.44.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-patch ... 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 78ab858317..d0e81b45f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -595,7 +595,7 @@ GEM rspec-support (3.11.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.44.0) + rubocop (1.44.1) json (~> 2.3) parallel (~> 1.10) parser (>= 3.2.0.0) From fa379a993d87dbf034eb7820a55e358b86e76a9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:16:38 +0100 Subject: [PATCH 0303/1220] Bump aws-sdk-s3 from 1.118.0 to 1.119.0 (#23341) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.118.0 to 1.119.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-type: direct:production update-type: version-update:semver-minor ... 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 2ac9dd9d88..6df37b8239 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'makara', '~> 0.5' gem 'pghero' gem 'dotenv-rails', '~> 2.8' -gem 'aws-sdk-s3', '~> 1.118', require: false +gem 'aws-sdk-s3', '~> 1.119', require: false gem 'fog-core', '<= 2.4.0' gem 'fog-openstack', '~> 0.3', require: false gem 'kt-paperclip', '~> 7.1' diff --git a/Gemfile.lock b/Gemfile.lock index d0e81b45f5..8228a3ca70 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,8 +90,8 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.697.0) - aws-sdk-core (3.169.0) + aws-partitions (1.701.0) + aws-sdk-core (3.170.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -99,7 +99,7 @@ GEM aws-sdk-kms (1.62.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.118.0) + aws-sdk-s3 (1.119.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) @@ -764,7 +764,7 @@ DEPENDENCIES active_record_query_trace (~> 1.8) addressable (~> 2.8) annotate (~> 3.2) - aws-sdk-s3 (~> 1.118) + aws-sdk-s3 (~> 1.119) better_errors (~> 2.9) binding_of_caller (~> 1.0) blurhash (~> 0.1) From c38d685c41a7499f4b7d2d5d3c997867e4b4cd31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:18:31 +0100 Subject: [PATCH 0304/1220] Bump axios from 1.2.3 to 1.2.6 (#23334) Bumps [axios](https://github.com/axios/axios) from 1.2.3 to 1.2.6. - [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.3...v1.2.6) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production update-type: version-update:semver-patch ... 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 8cde7617e7..bef7a84b79 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.3", + "axios": "^1.2.6", "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 3206a2e019..0a9cbf471a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2540,10 +2540,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" - integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== +axios@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.6.tgz#eacb6d065baa11bad5959e7ffa0cb6745c65f392" + integrity sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" From 784961059c4971b6173e2d9d9f1d552dd94c43d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:18:52 +0100 Subject: [PATCH 0305/1220] Bump eslint-plugin-react from 7.32.1 to 7.32.2 (#23336) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.1 to 7.32.2. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.1...v7.32.2) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... 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 bef7a84b79..8cf1c993b7 100644 --- a/package.json +++ b/package.json @@ -149,7 +149,7 @@ "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", - "eslint-plugin-react": "~7.32.1", + "eslint-plugin-react": "~7.32.2", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "postcss-scss": "^4.0.6", diff --git a/yarn.lock b/yarn.lock index 0a9cbf471a..603262a7af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4529,10 +4529,10 @@ eslint-plugin-promise@~6.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-plugin-react@~7.32.1: - version "7.32.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" - integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== +eslint-plugin-react@~7.32.2: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" From 41baf4b2170dec95c10356a787d78bf63e1e8e6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:19:30 +0100 Subject: [PATCH 0306/1220] Bump redcarpet from 3.5.1 to 3.6.0 (#23339) Bumps [redcarpet](https://github.com/vmg/redcarpet) from 3.5.1 to 3.6.0. - [Release notes](https://github.com/vmg/redcarpet/releases) - [Changelog](https://github.com/vmg/redcarpet/blob/master/CHANGELOG.md) - [Commits](https://github.com/vmg/redcarpet/compare/v3.5.1...v3.6.0) --- updated-dependencies: - dependency-name: redcarpet dependency-type: direct:production update-type: version-update:semver-minor ... 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 6df37b8239..1136de6997 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem 'rack-attack', '~> 6.6' gem 'rack-cors', '~> 1.1', require: 'rack/cors' gem 'rails-i18n', '~> 6.0' gem 'rails-settings-cached', '~> 0.6' -gem 'redcarpet', '~> 3.5' +gem 'redcarpet', '~> 3.6' gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 8228a3ca70..c8c1cbb758 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -554,7 +554,7 @@ GEM link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.5.1) rdf (~> 3.2) - redcarpet (3.5.1) + redcarpet (3.6.0) redis (4.5.1) redis-namespace (1.10.0) redis (>= 4) @@ -851,7 +851,7 @@ DEPENDENCIES rails-i18n (~> 6.0) rails-settings-cached (~> 0.6) rdf-normalize (~> 0.5) - redcarpet (~> 3.5) + redcarpet (~> 3.6) redis (~> 4.5) redis-namespace (~> 1.10) rexml (~> 3.2) From 21780c02042590172b2ef6f3d982611929cff580 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Feb 2023 11:23:54 +0100 Subject: [PATCH 0307/1220] Change notifications per page from 15 to 40 in REST API (#23348) --- app/controllers/api/v1/notifications_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 7b1cfe2643..41f7f93af1 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -6,7 +6,7 @@ class Api::V1::NotificationsController < Api::BaseController before_action :require_user! after_action :insert_pagination_headers, only: :index - DEFAULT_NOTIFICATIONS_LIMIT = 15 + DEFAULT_NOTIFICATIONS_LIMIT = 40 def index @notifications = load_notifications From 4c919812b93e4147bd30379ededd14207af453ee Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Feb 2023 11:24:22 +0100 Subject: [PATCH 0308/1220] Change number of stored items in home feed from 400 to 800 (#23349) --- app/lib/feed_manager.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index b9c5bc2cd0..8d7540e0f7 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -7,7 +7,7 @@ class FeedManager include Redisable # Maximum number of items stored in a single feed - MAX_ITEMS = 400 + MAX_ITEMS = 800 # Number of items in the feed since last reblog of status # before the new reblog will be inserted. Must be <= MAX_ITEMS From 91ceb8af115020bedcdc2c3d32dc4743b23d5ebe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:31:50 +0100 Subject: [PATCH 0309/1220] Bump ox from 2.14.13 to 2.14.14 (#23338) Bumps [ox](https://github.com/ohler55/ox) from 2.14.13 to 2.14.14. - [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.13...v2.14.14) --- updated-dependencies: - dependency-name: ox dependency-type: direct:production update-type: version-update:semver-patch ... 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 c8c1cbb758..544ef70a78 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ GEM openssl-signature_algorithm (1.2.1) openssl (> 2.0, < 3.1) orm_adapter (0.5.0) - ox (2.14.13) + ox (2.14.14) parallel (1.22.1) parser (3.2.0.0) ast (~> 2.4.1) From 05f5e5ae6f500b27a7b177334bd7415fa664e5f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:33:07 +0100 Subject: [PATCH 0310/1220] Bump nokogiri from 1.14.0 to 1.14.1 (#23330) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.0 to 1.14.1. - [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.14.0...v1.14.1) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production update-type: version-update:semver-patch ... 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 544ef70a78..a142117110 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -425,7 +425,7 @@ GEM net-protocol net-ssh (7.0.1) nio4r (2.5.8) - nokogiri (1.14.0) + nokogiri (1.14.1) mini_portile2 (~> 2.8.0) racc (~> 1.4) nsa (0.2.8) From 842d89fda8b7c13a327c2d0965ed484af01c804f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:44:29 +0100 Subject: [PATCH 0311/1220] Bump jest from 29.3.1 to 29.4.1 (#23335) Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.3.1 to 29.4.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.4.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 669 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 427 insertions(+), 244 deletions(-) diff --git a/package.json b/package.json index 8cf1c993b7..cd2f62cfb4 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", - "jest": "^29.3.1", + "jest": "^29.4.1", "jest-environment-jsdom": "^29.3.1", "postcss-scss": "^4.0.6", "prettier": "^2.8.3", diff --git a/yarn.lock b/yarn.lock index 603262a7af..1285b10ce9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1248,49 +1248,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.1.tgz#cbc31d73f6329f693b3d34b365124de797704fff" + integrity sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" slash "^3.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== +"@jest/core@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.1.tgz#91371179b5959951e211dfaeea4277a01dcca14f" + integrity sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA== dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/reporters" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" + jest-changed-files "^29.4.0" + jest-config "^29.4.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-resolve "^29.4.1" + jest-resolve-dependencies "^29.4.1" + jest-runner "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" + jest-watcher "^29.4.1" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-ansi "^6.0.0" @@ -1304,20 +1304,30 @@ "@types/node" "*" jest-mock "^29.3.1" -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== +"@jest/environment@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" + integrity sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg== + dependencies: + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" + "@types/node" "*" + jest-mock "^29.4.1" + +"@jest/expect-utils@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.1.tgz#105b9f3e2c48101f09cae2f0a4d79a1b3a419cbb" + integrity sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.1.tgz#3338fa20f547bb6e550c4be37d6f82711cc13c38" + integrity sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + expect "^29.4.1" + jest-snapshot "^29.4.1" "@jest/fake-timers@^29.3.1": version "29.3.1" @@ -1331,26 +1341,38 @@ jest-mock "^29.3.1" jest-util "^29.3.1" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/fake-timers@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" + integrity sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/types" "^29.4.1" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/globals@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.1.tgz#3cd78c5567ab0249f09fbd81bf9f37a7328f4713" + integrity sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA== + dependencies: + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/types" "^29.4.1" + jest-mock "^29.4.1" + +"@jest/reporters@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.1.tgz#50d509c08575c75e3cd2176d72ec3786419d5e04" + integrity sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1363,9 +1385,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" + jest-worker "^29.4.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1378,6 +1400,13 @@ dependencies: "@sinclair/typebox" "^0.24.1" +"@jest/schemas@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" + integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== + dependencies: + "@sinclair/typebox" "^0.25.16" + "@jest/source-map@^29.2.0": version "29.2.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" @@ -1387,24 +1416,24 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.1.tgz#997f19695e13b34779ceb3c288a416bd26c3238d" + integrity sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/types" "^29.4.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz#f7a006ec7058b194a10cf833c88282ef86d578fd" + integrity sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.4.1" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" slash "^3.0.0" "@jest/transform@^29.3.1": @@ -1428,6 +1457,27 @@ slash "^3.0.0" write-file-atomic "^4.0.1" +"@jest/transform@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" + integrity sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.4.1" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.4.1" + jest-regex-util "^29.2.0" + jest-util "^29.4.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^5.0.0" + "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1449,12 +1499,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== +"@jest/types@^29.3.1", "@jest/types@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" + integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1627,6 +1677,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== +"@sinclair/typebox@^0.25.16": + version "0.25.21" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" + integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + "@sinonjs/commons@^1.7.0": version "1.8.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" @@ -1634,6 +1689,20 @@ dependencies: type-detect "4.0.8" +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" @@ -2569,6 +2638,19 @@ babel-jest@^29.3.1: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" + integrity sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg== + dependencies: + "@jest/transform" "^29.4.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.4.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-loader@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -2600,6 +2682,16 @@ babel-plugin-jest-hoist@^29.2.0: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" + integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -2707,6 +2799,14 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" + integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== + dependencies: + babel-plugin-jest-hoist "^29.4.0" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -4777,16 +4877,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== +expect@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.1.tgz#58cfeea9cbf479b64ed081fd1e074ac8beb5a1fe" + integrity sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A== dependencies: - "@jest/expect-utils" "^29.3.1" + "@jest/expect-utils" "^29.4.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -6438,82 +6538,82 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" + integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.1.tgz#ff1b63eb04c3b111cefea9489e8dbadd23ce49bd" + integrity sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-each "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.1.tgz#7abef96944f300feb9b76f68b1eb2d68774fe553" + integrity sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.1.tgz#e62670c6c980ec21d75941806ec4d0c0c6402728" + integrity sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.4.1" + "@jest/types" "^29.4.1" + babel-jest "^29.4.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" + jest-circus "^29.4.1" + jest-environment-node "^29.4.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-resolve "^29.4.1" + jest-runner "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -6527,15 +6627,15 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== +jest-diff@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.1.tgz#9a6dc715037e1fa7a8a44554e7d272088c4029bd" + integrity sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw== dependencies: chalk "^4.0.0" diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-docblock@^29.2.0: version "29.2.0" @@ -6544,16 +6644,16 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-each@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.1.tgz#05ce9979e7486dbd0f5d41895f49ccfdd0afce01" + integrity sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" + jest-util "^29.4.1" + pretty-format "^29.4.1" jest-environment-jsdom@^29.3.1: version "29.3.1" @@ -6569,17 +6669,17 @@ jest-environment-jsdom@^29.3.1: jest-util "^29.3.1" jsdom "^20.0.0" -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== +jest-environment-node@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.1.tgz#22550b7d0f8f0b16228639c9f88ca04bbf3c1974" + integrity sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" jest-get-type@^25.2.6: version "25.2.6" @@ -6610,23 +6710,42 @@ jest-haste-map@^29.3.1: optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-haste-map@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" + integrity sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w== + dependencies: + "@jest/types" "^29.4.1" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.2.0" + jest-util "^29.4.1" + jest-worker "^29.4.1" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz#632186c546e084da2b490b7496fee1a1c9929637" + integrity sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== +jest-matcher-utils@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz#73d834e305909c3b43285fbc76f78bf0ad7e1954" + integrity sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA== dependencies: chalk "^4.0.0" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-message-util@^29.3.1: version "29.3.1" @@ -6643,6 +6762,21 @@ jest-message-util@^29.3.1: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" + integrity sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.4.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.4.1" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" @@ -6652,6 +6786,15 @@ jest-mock@^29.3.1: "@types/node" "*" jest-util "^29.3.1" +jest-mock@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" + integrity sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ== + dependencies: + "@jest/types" "^29.4.1" + "@types/node" "*" + jest-util "^29.4.1" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -6662,88 +6805,89 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz#02420a2e055da105e5fca8218c471d8b9553c904" + integrity sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-snapshot "^29.4.1" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.1.tgz#4c6bf71a07b8f0b79c5fdf4f2a2cf47317694c5e" + integrity sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== +jest-runner@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.1.tgz#57460d9ebb0eea2e27eeddca1816cf8537469661" + integrity sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg== dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/environment" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-environment-node "^29.4.1" + jest-haste-map "^29.4.1" + jest-leak-detector "^29.4.1" + jest-message-util "^29.4.1" + jest-resolve "^29.4.1" + jest-runtime "^29.4.1" + jest-util "^29.4.1" + jest-watcher "^29.4.1" + jest-worker "^29.4.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== +jest-runtime@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.1.tgz#9a50f9c69d3a391690897c01b0bfa8dc5dd45808" + integrity sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/globals" "^29.4.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-resolve "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.1.tgz#5692210b3690c94f19317913d4082b123bd83dd9" + integrity sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6751,23 +6895,23 @@ jest-snapshot@^29.3.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/expect-utils" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.4.1" graceful-fs "^4.2.9" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" natural-compare "^1.4.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" semver "^7.3.5" jest-util@^29.3.1: @@ -6782,30 +6926,42 @@ jest-util@^29.3.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" + integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.1.tgz#0d5174510415083ec329d4f981bf6779211f17e9" + integrity sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw== + dependencies: + "@jest/types" "^29.4.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.1.tgz#6e3e2486918bd778849d4d6e67fd77b814f3e6ed" + integrity sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.4.1" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -6827,15 +6983,25 @@ jest-worker@^29.3.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== +jest-worker@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" + integrity sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@types/node" "*" + jest-util "^29.4.1" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" + integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== + dependencies: + "@jest/core" "^29.4.1" + "@jest/types" "^29.4.1" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.4.1" js-sdsl@^4.1.4: version "4.3.0" @@ -8785,6 +8951,15 @@ pretty-format@^29.3.1: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" + integrity sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg== + dependencies: + "@jest/schemas" "^29.4.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -9547,10 +9722,10 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== +resolve.exports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" + integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" @@ -11785,6 +11960,14 @@ write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" +write-file-atomic@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" + integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" From fe4e2e0bd151d9e3a74856e37c255b3272accacf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:53:13 +0100 Subject: [PATCH 0312/1220] Bump babel-jest from 29.3.1 to 29.4.1 (#23331) Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 29.3.1 to 29.4.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.4.1/packages/babel-jest) --- updated-dependencies: - dependency-name: babel-jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 83 +--------------------------------------------------- 2 files changed, 2 insertions(+), 83 deletions(-) diff --git a/package.json b/package.json index cd2f62cfb4..615a1b24bc 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "@babel/eslint-parser": "^7.19.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", - "babel-jest": "^29.3.1", + "babel-jest": "^29.4.1", "eslint": "^8.33.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", diff --git a/yarn.lock b/yarn.lock index 1285b10ce9..b4f91d8c92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1436,27 +1436,6 @@ jest-haste-map "^29.4.1" slash "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - "@jest/transform@^29.4.1": version "29.4.1" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" @@ -2625,19 +2604,6 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== - dependencies: - "@jest/transform" "^29.3.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" @@ -2672,16 +2638,6 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.4.0: version "29.4.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" @@ -2791,14 +2747,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== - dependencies: - babel-plugin-jest-hoist "^29.2.0" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.4.0: version "29.4.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" @@ -6691,25 +6639,6 @@ jest-get-type@^29.2.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== - dependencies: - "@jest/types" "^29.3.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-haste-map@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" @@ -6973,16 +6902,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== - dependencies: - "@types/node" "*" - jest-util "^29.3.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" @@ -11952,7 +11871,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: +write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== From e79babe6a3e015605e4887a31049eee669d4ef6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 11:53:54 +0100 Subject: [PATCH 0313/1220] Bump jest-environment-jsdom from 29.3.1 to 29.4.1 (#23329) Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.3.1 to 29.4.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.4.1/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 113 +++++---------------------------------------------- 2 files changed, 11 insertions(+), 104 deletions(-) diff --git a/package.json b/package.json index 615a1b24bc..30fab3b48b 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", "jest": "^29.4.1", - "jest-environment-jsdom": "^29.3.1", + "jest-environment-jsdom": "^29.4.1", "postcss-scss": "^4.0.6", "prettier": "^2.8.3", "raf": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index b4f91d8c92..44bc57fd61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1294,16 +1294,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== - dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-mock "^29.3.1" - "@jest/environment@^29.4.1": version "29.4.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" @@ -1329,18 +1319,6 @@ expect "^29.4.1" jest-snapshot "^29.4.1" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== - dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" - "@jest/fake-timers@^29.4.1": version "29.4.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" @@ -1393,13 +1371,6 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - "@jest/schemas@^29.4.0": version "29.4.0" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" @@ -1651,23 +1622,11 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== - "@sinclair/typebox@^0.25.16": version "0.25.21" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== -"@sinonjs/commons@^1.7.0": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" - integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== - dependencies: - type-detect "4.0.8" - "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" @@ -1682,13 +1641,6 @@ dependencies: "@sinonjs/commons" "^2.0.0" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -6603,18 +6555,18 @@ jest-each@^29.4.1: jest-util "^29.4.1" pretty-format "^29.4.1" -jest-environment-jsdom@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" - integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== +jest-environment-jsdom@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.1.tgz#34d491244ddd6fe3d666da603b576bd0ae6aef78" + integrity sha512-+KfYmRTl5CBHQst9hIz77TiiriHYvuWoLjMT855gx2AMxhHxpk1vtKvag1DQfyWCPVTWV/AG7SIqVh5WI1O/uw== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" jsdom "^20.0.0" jest-environment-node@^29.4.1: @@ -6676,21 +6628,6 @@ jest-matcher-utils@^29.4.1: jest-get-type "^29.2.0" pretty-format "^29.4.1" -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" @@ -6706,15 +6643,6 @@ jest-message-util@^29.4.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - jest-util "^29.3.1" - jest-mock@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" @@ -6843,19 +6771,7 @@ jest-snapshot@^29.4.1: pretty-format "^29.4.1" semver "^7.3.5" -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== - dependencies: - "@jest/types" "^29.3.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.4.1: +jest-util@^29.3.1, jest-util@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== @@ -8861,15 +8777,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-format@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" From b8c31f8110b6e7a9e7ee09dbf58c80a651650bcf Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Feb 2023 11:59:31 +0100 Subject: [PATCH 0314/1220] New Crowdin updates (#23221) * New translations en.yml (Serbian (Cyrillic)) * New translations en.yml (Swedish) * New translations en.yml (Turkish) * New translations en.yml (Ukrainian) * New translations en.yml (Urdu (Pakistan)) * New translations en.yml (Icelandic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Indonesian) * New translations en.yml (Persian) * New translations en.yml (Tamil) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Bengali) * New translations en.yml (Marathi) * New translations en.yml (Thai) * New translations en.yml (Croatian) * New translations en.yml (Kazakh) * New translations en.yml (Latvian) * New translations en.yml (Hindi) * New translations en.yml (Malay) * New translations en.yml (Telugu) * New translations en.yml (Burmese) * New translations en.yml (Welsh) * New translations en.yml (Faroese) * New translations en.yml (Uyghur) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.yml (Tatar) * New translations en.yml (Malayalam) * New translations en.yml (Breton) * New translations en.yml (Latin) * New translations en.yml (Bosnian) * New translations en.yml (French, Quebec) * New translations en.yml (Sinhala) * New translations en.yml (Cornish) * New translations en.yml (Kannada) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Asturian) * New translations en.yml (Aragonese) * New translations en.yml (Serbian (Latin)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Scots) * New translations en.yml (Igbo) * New translations en.yml (Corsican) * New translations en.yml (Sardinian) * New translations en.yml (Sanskrit) * New translations en.yml (Kabyle) * New translations en.yml (Taigi) * New translations en.yml (Silesian) * New translations en.yml (Standard Moroccan Tamazight) * New translations en.json (Finnish) * New translations en.json (Albanian) * New translations en.yml (Catalan) * New translations en.yml (German) * New translations en.yml (Finnish) * New translations en.yml (Hebrew) * New translations en.yml (Japanese) * New translations en.yml (Estonian) * New translations en.yml (Portuguese) * New translations doorkeeper.en.yml (Icelandic) * New translations en.yml (Spanish) * New translations en.yml (Albanian) * New translations en.yml (Icelandic) * New translations simple_form.en.yml (Icelandic) * New translations en.yml (Faroese) * New translations activerecord.en.yml (Icelandic) * New translations devise.en.yml (Icelandic) * New translations en.json (Finnish) * New translations en.yml (Catalan) * New translations en.yml (German) * New translations en.yml (Finnish) * New translations en.yml (Japanese) * New translations en.yml (Ukrainian) * New translations en.yml (Spanish, Mexico) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations simple_form.en.yml (Catalan) * New translations en.yml (Slovenian) * New translations en.yml (Slovenian) * New translations en.yml (Korean) * New translations en.yml (Danish) * New translations en.yml (Korean) * New translations en.yml (Latvian) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations en.yml (Danish) * New translations simple_form.en.yml (Chinese Traditional) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Galician) * New translations en.json (Finnish) * New translations en.yml (Finnish) * New translations simple_form.en.yml (Finnish) * New translations en.yml (Galician) * New translations en.yml (German) * New translations en.yml (Faroese) * New translations en.json (Welsh) * New translations doorkeeper.en.yml (Welsh) * New translations en.yml (Welsh) * New translations simple_form.en.yml (Welsh) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Welsh) * New translations en.json (Italian) * New translations en.yml (German) * New translations en.yml (Italian) * New translations en.yml (Finnish) * New translations en.yml (Hebrew) * New translations en.yml (Chinese Simplified) * New translations en.json (Chinese Simplified) * New translations en.yml (Frisian) * New translations en.yml (Finnish) * New translations en.yml (Slovak) * New translations en.yml (Chinese Simplified) * New translations en.yml (Italian) * New translations en.yml (Finnish) * New translations en.yml (Turkish) * New translations en.yml (Estonian) * New translations en.yml (German) * New translations en.yml (Estonian) * New translations en.yml (Turkish) * New translations en.yml (Thai) * New translations en.json (Czech) * New translations en.json (Armenian) * New translations en.json (Thai) * New translations doorkeeper.en.yml (Armenian) * New translations en.yml (Basque) * New translations en.yml (Armenian) * New translations en.yml (Thai) * New translations en.yml (Basque) * New translations en.yml (Belarusian) * New translations en.yml (Hungarian) * New translations en.json (Kazakh) * New translations en.yml (Slovenian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Uzbek) * New translations en.yml (Uzbek) * New translations simple_form.en.yml (Uzbek) * New translations activerecord.en.yml (Uzbek) * New translations devise.en.yml (Uzbek) * New translations doorkeeper.en.yml (Uzbek) * New translations en.json (Kashubian) * New translations en.yml (Kashubian) * New translations simple_form.en.yml (Kashubian) * New translations activerecord.en.yml (Kashubian) * New translations devise.en.yml (Kashubian) * New translations doorkeeper.en.yml (Kashubian) * New translations en.json (Uzbek) * New translations en.json (Uzbek) * New translations en.yml (Polish) * New translations en.json (Uzbek) * New translations activerecord.en.yml (Uzbek) * New translations en.json (Catalan) * New translations en.json (Uzbek) * New translations en.yml (Uzbek) * New translations en.json (Catalan) * New translations activerecord.en.yml (Catalan) * New translations en.json (Uzbek) * New translations devise.en.yml (Uzbek) * New translations en.json (Indonesian) * New translations en.yml (Indonesian) * New translations en.yml (Hungarian) * New translations en.yml (Hungarian) * New translations en.yml (Hungarian) * New translations en.json (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations en.yml (Czech) * New translations en.yml (Slovak) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.yml (Slovenian) * New translations en.yml (Polish) * New translations en.yml (Polish) * New translations en.json (English, United Kingdom) * New translations en.json (Vietnamese) * New translations en.yml (French) * New translations en.yml (Italian) * New translations en.yml (French) * New translations en.json (Catalan) * New translations en.json (Belarusian) * New translations en.yml (Dutch) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Basque) * New translations doorkeeper.en.yml (Basque) * New translations en.yml (Basque) * New translations en.yml (Slovak) * New translations simple_form.en.yml (Slovak) * New translations en.yml (Vietnamese) * New translations en.yml (Vietnamese) * New translations en.yml (Korean) * New translations en.yml (Korean) * New translations devise.en.yml (Korean) * New translations devise.en.yml (Korean) * New translations activerecord.en.yml (Korean) * New translations en.yml (Danish) * New translations simple_form.en.yml (Danish) * New translations en.yml (Korean) * New translations en.yml (Galician) * New translations simple_form.en.yml (Japanese) * New translations en.yml (Spanish) * New translations en.yml (Basque) * New translations simple_form.en.yml (Japanese) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Basque) * New translations simple_form.en.yml (Spanish) * New translations doorkeeper.en.yml (Spanish) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Slovak) * New translations en.json (Korean) * New translations en.json (Indonesian) * New translations en.yml (Korean) * New translations en.yml (Korean) * New translations simple_form.en.yml (Korean) * New translations en.json (Korean) * New translations en.yml (Danish) * New translations en.yml (German) * New translations en.yml (Korean) * New translations en.json (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations en.json (Dutch) * New translations en.json (Dutch) * New translations en.json (Uzbek) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations devise.en.yml (Dutch) * New translations en.json (Dutch) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations doorkeeper.en.yml (Russian) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Japanese) * New translations en.yml (English, United Kingdom) * New translations en.json (Korean) * New translations simple_form.en.yml (Japanese) * New translations en.json (Bulgarian) * New translations en.json (Korean) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Japanese) * New translations en.yml (Korean) * New translations devise.en.yml (Korean) * New translations simple_form.en.yml (Korean) * New translations en.json (Bulgarian) * New translations en.yml (Korean) * New translations devise.en.yml (Korean) * New translations simple_form.en.yml (Korean) * New translations doorkeeper.en.yml (Korean) * Normalize --------- Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ar.json | 6 +- app/javascript/mastodon/locales/be.json | 8 +- app/javascript/mastodon/locales/bg.json | 4 +- app/javascript/mastodon/locales/ca.json | 48 +- app/javascript/mastodon/locales/cs.json | 6 +- app/javascript/mastodon/locales/csb.json | 658 ++++++++++++++++++ app/javascript/mastodon/locales/cy.json | 4 +- app/javascript/mastodon/locales/en-GB.json | 6 +- app/javascript/mastodon/locales/fi.json | 100 +-- app/javascript/mastodon/locales/hy.json | 134 ++-- app/javascript/mastodon/locales/id.json | 26 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/kk.json | 2 +- app/javascript/mastodon/locales/ko.json | 4 +- app/javascript/mastodon/locales/nl.json | 10 +- app/javascript/mastodon/locales/sk.json | 4 +- app/javascript/mastodon/locales/sq.json | 8 +- app/javascript/mastodon/locales/th.json | 4 +- app/javascript/mastodon/locales/uz.json | 658 ++++++++++++++++++ app/javascript/mastodon/locales/vi.json | 4 +- .../mastodon/locales/whitelist_csb.json | 2 + .../mastodon/locales/whitelist_uz.json | 2 + app/javascript/mastodon/locales/zh-CN.json | 10 +- app/javascript/mastodon/locales/zh-TW.json | 4 +- config/locales/activerecord.ca.yml | 2 +- config/locales/activerecord.csb.yml | 1 + config/locales/activerecord.uz.yml | 55 ++ config/locales/ar.yml | 28 + config/locales/be.yml | 6 + config/locales/ca.yml | 70 +- config/locales/cs.yml | 3 + config/locales/csb.yml | 12 + config/locales/cy.yml | 24 + config/locales/da.yml | 34 +- config/locales/de.yml | 30 +- config/locales/devise.csb.yml | 1 + config/locales/devise.ko.yml | 38 +- config/locales/devise.uz.yml | 13 + config/locales/devise.zh-CN.yml | 2 +- config/locales/doorkeeper.csb.yml | 1 + config/locales/doorkeeper.es.yml | 2 + config/locales/doorkeeper.eu.yml | 12 + config/locales/doorkeeper.gl.yml | 10 +- config/locales/doorkeeper.hy.yml | 1 + config/locales/doorkeeper.ko.yml | 2 +- config/locales/doorkeeper.ru.yml | 1 + config/locales/doorkeeper.uz.yml | 1 + config/locales/en-GB.yml | 70 ++ config/locales/es-AR.yml | 24 + config/locales/es-MX.yml | 24 + config/locales/es.yml | 25 + config/locales/et.yml | 24 + config/locales/eu.yml | 55 ++ config/locales/fi.yml | 131 ++-- config/locales/fo.yml | 24 + config/locales/fr-QC.yml | 8 + config/locales/fr.yml | 32 +- config/locales/fy.yml | 24 + config/locales/gl.yml | 26 +- config/locales/he.yml | 24 + config/locales/hu.yml | 48 +- config/locales/hy.yml | 22 + config/locales/id.yml | 2 + config/locales/is.yml | 24 + config/locales/it.yml | 30 +- config/locales/ja.yml | 24 + config/locales/ko.yml | 96 ++- config/locales/lv.yml | 24 + config/locales/nl.yml | 34 +- config/locales/pl.yml | 24 + config/locales/pt-BR.yml | 17 + config/locales/pt-PT.yml | 24 + config/locales/simple_form.csb.yml | 1 + config/locales/simple_form.da.yml | 2 +- config/locales/simple_form.en-GB.yml | 131 ++++ config/locales/simple_form.es.yml | 2 + config/locales/simple_form.eu.yml | 6 + config/locales/simple_form.fi.yml | 8 +- config/locales/simple_form.ja.yml | 22 +- config/locales/simple_form.ko.yml | 14 +- config/locales/simple_form.nl.yml | 6 + config/locales/simple_form.sk.yml | 2 +- config/locales/simple_form.uz.yml | 1 + config/locales/simple_form.zh-TW.yml | 4 +- config/locales/sk.yml | 17 +- config/locales/sl.yml | 24 + config/locales/sq.yml | 24 + config/locales/sv.yml | 11 + config/locales/th.yml | 42 +- config/locales/tr.yml | 20 + config/locales/uk.yml | 24 + config/locales/uz.yml | 51 ++ config/locales/vi.yml | 24 + config/locales/zh-CN.yml | 48 +- config/locales/zh-TW.yml | 36 +- 95 files changed, 3019 insertions(+), 424 deletions(-) create mode 100644 app/javascript/mastodon/locales/csb.json create mode 100644 app/javascript/mastodon/locales/uz.json create mode 100644 app/javascript/mastodon/locales/whitelist_csb.json create mode 100644 app/javascript/mastodon/locales/whitelist_uz.json create mode 100644 config/locales/activerecord.csb.yml create mode 100644 config/locales/activerecord.uz.yml create mode 100644 config/locales/csb.yml create mode 100644 config/locales/devise.csb.yml create mode 100644 config/locales/devise.uz.yml create mode 100644 config/locales/doorkeeper.csb.yml create mode 100644 config/locales/doorkeeper.uz.yml create mode 100644 config/locales/simple_form.csb.yml create mode 100644 config/locales/simple_form.uz.yml create mode 100644 config/locales/uz.yml diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 835312a368..746af3f1e6 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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "لن يُدرَج هذا المنشور تحت أي وسم بما أنَّه غير منشور للعامة. إلّا الرسائل المنشورة للعامة يُمكن البحث عنها بواسطة وسم.", "compose_form.lock_disclaimer": "حسابُك غير {locked}. يُمكن لأي شخص مُتابعتك لرؤية (منشورات المتابعين فقط).", "compose_form.lock_disclaimer.lock": "مُقفَل", "compose_form.placeholder": "فِيمَ تُفكِّر؟", @@ -221,7 +221,7 @@ "empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "empty_column.follow_recommendations": "يبدو أنه لا يمكن إنشاء أي اقتراحات لك. يمكنك البحث عن أشخاص قد تعرفهم أو استكشاف الوسوم الرائجة.", "empty_column.follow_requests": "ليس عندك أي طلب للمتابعة بعد. سوف تظهر طلباتك هنا إن قمت بتلقي البعض منها.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "لم تُتابع أي وسم بعدُ. ستظهر الوسوم هنا حينما تفعل ذلك.", "empty_column.hashtag": "ليس هناك بعدُ أي محتوى ذو علاقة بهذا الوسم.", "empty_column.home": "إنّ الخيط الزمني لصفحتك الرئيسية فارغ. قم بزيارة {public} أو استخدم حقل البحث لكي تكتشف مستخدمين آخرين.", "empty_column.home.suggestions": "شاهد بعض الاقتراحات", @@ -543,7 +543,7 @@ "server_banner.server_stats": "إحصائيات الخادم:", "sign_in_banner.create_account": "أنشئ حسابًا", "sign_in_banner.sign_in": "تسجيل الدخول", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة الرسائل إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 688113bc9d..7b422dc94e 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Ніхто яшчэ не ўпадабаў гэты допіс. Калі гэта адбудзецца, вы ўбачыце гэтых людзей тут.", "empty_column.follow_recommendations": "Здаецца, прапаноў для вас няма. Вы можаце паспрабаваць выкарыстаць пошук, каб знайсці людзей, якіх вы можаце ведаць, ці даследаваць папулярныя хэштэгі.", "empty_column.follow_requests": "У вас яшчэ няма запытаў на падпіскуі. Калі вы атрымаеце запыт, ён з'явяцца тут.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Вы пакуль не падпісаны ні на адзін хэштэг. Калі падпішацеся, яны з'явяцца тут.", "empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.", "empty_column.home": "Галоўная стужка пустая! Падпішыцеся на іншых людзей, каб запоўніць яе. {suggestions}", "empty_column.home.suggestions": "Глядзіце прапановы", @@ -264,7 +264,7 @@ "follow_request.authorize": "Аўтарызацыя", "follow_request.reject": "Адхіліць", "follow_requests.unlocked_explanation": "Ваш акаўнт не схаваны, аднак прадстаўнікі {domain} палічылі, што вы можаце захацець праглядзець запыты на падпіску з гэтых профіляў уручную.", - "followed_tags": "Followed hashtags", + "followed_tags": "Падпіскі", "footer.about": "Пра нас", "footer.directory": "Дырэкторыя профіляў", "footer.get_app": "Спампаваць праграму", @@ -381,7 +381,7 @@ "navigation_bar.favourites": "Упадабаныя", "navigation_bar.filters": "Ігнараваныя словы", "navigation_bar.follow_requests": "Запыты на падпіску", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Падпіскі", "navigation_bar.follows_and_followers": "Падпіскі і падпісчыкі", "navigation_bar.lists": "Спісы", "navigation_bar.logout": "Выйсці", @@ -543,7 +543,7 @@ "server_banner.server_stats": "Статыстыка сервера:", "sign_in_banner.create_account": "Стварыць уліковы запіс", "sign_in_banner.sign_in": "Увайсці", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Увайдзіце, каб падпісацца на людзей і тэгі, каб адказваць на допісы, дзяліцца імі і падабаць іх, альбо кантактаваць з вашага ўліковага запісу на іншым серверы.", "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}", "status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}", "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index f4d3a6ab7b..5ddeedebaf 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -264,7 +264,7 @@ "follow_request.authorize": "Упълномощаване", "follow_request.reject": "Отхвърляне", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", - "followed_tags": "Последвани хештагове", + "followed_tags": "Последвани хаштагове", "footer.about": "Относно", "footer.directory": "Директория на профилите", "footer.get_app": "Вземане на приложението", @@ -579,7 +579,7 @@ "status.reblog_private": "Подсилване с оригиналната видимост", "status.reblogged_by": "{name} подсили", "status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.", - "status.redraft": "Изтриване и преработване", + "status.redraft": "Изтриване и преначертаване", "status.remove_bookmark": "Премахване на отметката", "status.replied_to": "В отговор до {name}", "status.reply": "Отговор", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index d83f15537c..5adec87f7a 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -18,7 +18,7 @@ "account.block": "Bloca @{name}", "account.block_domain": "Bloca el domini {domain}", "account.blocked": "Blocat", - "account.browse_more_on_origin_server": "Navega més en el perfil original", + "account.browse_more_on_origin_server": "Explora'n més al perfil original", "account.cancel_follow_request": "Retira la sol·licitud de seguiment", "account.direct": "Missatge directe a @{name}", "account.disable_notifications": "Deixa de notificar-me els tuts de @{name}", @@ -26,8 +26,8 @@ "account.edit_profile": "Edita el perfil", "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 tuts", + "account.featured_tags.last_status_at": "Darrer tut el {date}", + "account.featured_tags.last_status_never": "No hi ha publicacions", "account.featured_tags.title": "etiquetes destacades de {name}", "account.follow": "Segueix", "account.followers": "Seguidors", @@ -128,7 +128,7 @@ "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 és públic. Només els tuts públics es poden cercar per etiqueta.", + "compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques 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?", @@ -149,7 +149,7 @@ "compose_form.spoiler.unmarked": "Afegeix avís de contingut", "compose_form.spoiler_placeholder": "Escriu l'avís aquí", "confirmation_modal.cancel": "Cancel·la", - "confirmations.block.block_and_report": "Bloca i informa", + "confirmations.block.block_and_report": "Bloca i denuncia", "confirmations.block.confirm": "Bloca", "confirmations.block.message": "Segur que vols blocar a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud", @@ -290,30 +290,30 @@ "home.column_settings.show_replies": "Mostra les respostes", "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.favourite": "Amb un compte a Mastodon pots afavorir aquest tut perquè l'autor sàpiga que t'ha agradat i desar-lo per a més endavant.", "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", + "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.", + "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En aquest servidor", "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.favourite": "Marca la publicació de {name}", "interaction_modal.title.follow": "Segueix {name}", - "interaction_modal.title.reblog": "Impulsa la publicació de {name}", + "interaction_modal.title.reblog": "Impulsa el tut de {name}", "interaction_modal.title.reply": "Respon a la publicació de {name}", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", "keyboard_shortcuts.back": "Vés enrere", "keyboard_shortcuts.blocked": "Obre la llista d'usuaris blocats", - "keyboard_shortcuts.boost": "Impulsa el tut", + "keyboard_shortcuts.boost": "Impulsa la publicació", "keyboard_shortcuts.column": "Centra la columna", "keyboard_shortcuts.compose": "Centra l'àrea de composició de text", "keyboard_shortcuts.description": "Descripció", "keyboard_shortcuts.direct": "Obre la columna de missatges directes", "keyboard_shortcuts.down": "Abaixa a la llista", - "keyboard_shortcuts.enter": "Obre la publicació", + "keyboard_shortcuts.enter": "Obre el tut", "keyboard_shortcuts.favourite": "Afavoreix la publicació", "keyboard_shortcuts.favourites": "Obre la llista de preferits", "keyboard_shortcuts.federated": "Obre la línia de temps federada", @@ -329,7 +329,7 @@ "keyboard_shortcuts.open_media": "Obre mèdia", "keyboard_shortcuts.pinned": "Obre la llista de tuts fixats", "keyboard_shortcuts.profile": "Obre el perfil de l'autor", - "keyboard_shortcuts.reply": "Respon al tut", + "keyboard_shortcuts.reply": "Respon a la publicació", "keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment", "keyboard_shortcuts.search": "Centra la barra de cerca", "keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW", @@ -395,7 +395,7 @@ "not_signed_in_indicator.not_signed_in": "Necessites iniciar la sessió per a accedir aquest recurs.", "notification.admin.report": "{name} ha reportat {target}", "notification.admin.sign_up": "{name} s'ha registrat", - "notification.favourite": "a {name} li ha agradat el teu tut", + "notification.favourite": "a {name} li ha agradat la teva publicació", "notification.follow": "{name} et segueix", "notification.follow_request": "{name} ha sol·licitat seguir-te", "notification.mention": "{name} t'ha mencionat", @@ -485,7 +485,7 @@ "report.category.subtitle": "Tria la millor coincidència", "report.category.title": "Explica'ns què passa amb això ({type})", "report.category.title_account": "perfil", - "report.category.title_status": "tut", + "report.category.title_status": "publicació", "report.close": "Fet", "report.comment.title": "Hi ha res més que creguis que hauríem de saber?", "report.forward": "Reenvia a {target}", @@ -505,9 +505,9 @@ "report.rules.subtitle": "Selecciona totes les aplicables", "report.rules.title": "Quines regles s'han violat?", "report.statuses.subtitle": "Selecciona totes les aplicables", - "report.statuses.title": "Hi ha cap tut que doni suport a aquest informe?", + "report.statuses.title": "Hi ha cap publicació que doni suport a aquest informe?", "report.submit": "Envia", - "report.target": "Es reporta {target}", + "report.target": "Es denuncia {target}", "report.thanks.take_action": "Aquestes són les teves opcions per a controlar el que veus a Mastodon:", "report.thanks.take_action_actionable": "Mentre ho revisem, pots prendre mesures contra @{name}:", "report.thanks.title": "No ho vols veure?", @@ -524,7 +524,7 @@ "search_popout.search_format": "Format de cerca avançada", "search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "tut", + "search_popout.tips.status": "publicació", "search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes", "search_popout.tips.user": "usuari", "search_results.accounts": "Gent", @@ -546,12 +546,12 @@ "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre publicacions. També pots interactuar des del teu compte a un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", "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.admin_status": "Obre aquest tut a la interfície de moderació", "status.block": "Bloca @{name}", "status.bookmark": "Marca", "status.cancel_reblog_private": "Desfés l'impuls", "status.cannot_reblog": "No es pot impulsar aquest tut", - "status.copy": "Copia l'enllaç al tut", + "status.copy": "Copia l'enllaç a la publicació", "status.delete": "Elimina", "status.detailed_status": "Vista detallada de la conversa", "status.direct": "Missatge directe a @{name}", @@ -560,9 +560,9 @@ "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", "status.embed": "Incrusta", "status.favourite": "Favorit", - "status.filter": "Filtra aquest tut", + "status.filter": "Filtra aquesta publicació", "status.filtered": "Filtrada", - "status.hide": "Amaga el tut", + "status.hide": "Amaga la publicació", "status.history.created": "creat per {name} {date}", "status.history.edited": "editat per {name} {date}", "status.load_more": "Carrega'n més", @@ -571,9 +571,9 @@ "status.more": "Més", "status.mute": "Silencia @{name}", "status.mute_conversation": "Silencia la conversa", - "status.open": "Amplia el tut", + "status.open": "Amplia la publicació", "status.pin": "Fixa en el perfil", - "status.pinned": "Tut fixat", + "status.pinned": "Publicació fixada", "status.read_more": "Més informació", "status.reblog": "Impulsa", "status.reblog_private": "Impulsa amb la visibilitat original", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 8588501d2c..7ff5aa2217 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Tento příspěvek si zatím nikdo neoblíbil. Až to někdo udělá, zobrazí se zde.", "empty_column.follow_recommendations": "Zdá se, že pro vás nelze vygenerovat žádné návrhy. Můžete zkusit přes vyhledávání nalézt lidi, které znáte, nebo prozkoumat populární hashtagy.", "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.", "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.", "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}", "empty_column.home.suggestions": "Prohlédněte si návrhy", @@ -264,7 +264,7 @@ "follow_request.authorize": "Autorizovat", "follow_request.reject": "Zamítnout", "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.", - "followed_tags": "Followed hashtags", + "followed_tags": "Sledované hashtagy", "footer.about": "O aplikaci", "footer.directory": "Adresář profilů", "footer.get_app": "Získat aplikaci", @@ -381,7 +381,7 @@ "navigation_bar.favourites": "Oblíbené", "navigation_bar.filters": "Skrytá slova", "navigation_bar.follow_requests": "Žádosti o sledování", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Sledované hashtagy", "navigation_bar.follows_and_followers": "Sledovaní a sledující", "navigation_bar.lists": "Seznamy", "navigation_bar.logout": "Odhlásit se", diff --git a/app/javascript/mastodon/locales/csb.json b/app/javascript/mastodon/locales/csb.json new file mode 100644 index 0000000000..fbb103d2c6 --- /dev/null +++ b/app/javascript/mastodon/locales/csb.json @@ -0,0 +1,658 @@ +{ + "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.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.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", + "account.account_note_header": "Note", + "account.add_or_remove_from_list": "Add or Remove from lists", + "account.badges.bot": "Bot", + "account.badges.group": "Group", + "account.block": "Block @{name}", + "account.block_domain": "Block domain {domain}", + "account.blocked": "Blocked", + "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Direct message @{name}", + "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.domain_blocked": "Domain blocked", + "account.edit_profile": "Edit profile", + "account.enable_notifications": "Notify me when @{name} posts", + "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "Follow", + "account.followers": "Followers", + "account.followers.empty": "No one follows this user yet.", + "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.following": "Following", + "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "Hide boosts from @{name}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", + "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.media": "Media", + "account.mention": "Mention @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", + "account.mute": "Mute @{name}", + "account.mute_notifications": "Mute notifications from @{name}", + "account.muted": "Muted", + "account.open_original_page": "Open original page", + "account.posts": "Posts", + "account.posts_with_replies": "Posts and replies", + "account.report": "Report @{name}", + "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested_follow": "{name} has requested to follow you", + "account.share": "Share @{name}'s profile", + "account.show_reblogs": "Show boosts from @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", + "account.unblock": "Unblock @{name}", + "account.unblock_domain": "Unblock domain {domain}", + "account.unblock_short": "Unblock", + "account.unendorse": "Don't feature on profile", + "account.unfollow": "Unfollow", + "account.unmute": "Unmute @{name}", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.unmute_short": "Unmute", + "account_note.placeholder": "Click to add a note", + "admin.dashboard.daily_retention": "User retention rate by day after sign-up", + "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort_size": "New users", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", + "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", + "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", + "autosuggest_hashtag.per_week": "{count} per week", + "boost_modal.combo": "You can press {combo} to skip this next time", + "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.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.retry": "Try again", + "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?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", + "column.blocks": "Blocked users", + "column.bookmarks": "Bookmarks", + "column.community": "Local timeline", + "column.direct": "Direct messages", + "column.directory": "Browse profiles", + "column.domain_blocks": "Blocked domains", + "column.favourites": "Favourites", + "column.follow_requests": "Follow requests", + "column.home": "Home", + "column.lists": "Lists", + "column.mutes": "Muted users", + "column.notifications": "Notifications", + "column.pins": "Pinned post", + "column.public": "Federated timeline", + "column_back_button.label": "Back", + "column_header.hide_settings": "Hide settings", + "column_header.moveLeft_settings": "Move column to the left", + "column_header.moveRight_settings": "Move column to the right", + "column_header.pin": "Pin", + "column_header.show_settings": "Show settings", + "column_header.unpin": "Unpin", + "column_subheading.settings": "Settings", + "community.column_settings.local_only": "Local only", + "community.column_settings.media_only": "Media only", + "community.column_settings.remote_only": "Remote only", + "compose.language.change": "Change language", + "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 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?", + "compose_form.poll.add_option": "Add a choice", + "compose_form.poll.duration": "Poll duration", + "compose_form.poll.option_placeholder": "Choice {number}", + "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", + "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.publish": "Publish", + "compose_form.publish_form": "Publish", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "Save changes", + "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.spoiler.marked": "Text is hidden behind warning", + "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler_placeholder": "Write your warning here", + "confirmation_modal.cancel": "Cancel", + "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.confirm": "Block", + "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "Delete", + "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.mute.confirm": "Mute", + "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", + "confirmations.mute.message": "Are you sure you want to mute {name}?", + "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.reply.confirm": "Reply", + "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.unfollow.confirm": "Unfollow", + "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "conversation.delete": "Delete conversation", + "conversation.mark_as_read": "Mark as read", + "conversation.open": "View conversation", + "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "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_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.", + "embed.instructions": "Embed this status on your website by copying the code below.", + "embed.preview": "Here is what it will look like:", + "emoji_button.activity": "Activity", + "emoji_button.clear": "Clear", + "emoji_button.custom": "Custom", + "emoji_button.flags": "Flags", + "emoji_button.food": "Food & Drink", + "emoji_button.label": "Insert emoji", + "emoji_button.nature": "Nature", + "emoji_button.not_found": "No matching emojis found", + "emoji_button.objects": "Objects", + "emoji_button.people": "People", + "emoji_button.recent": "Frequently used", + "emoji_button.search": "Search...", + "emoji_button.search_results": "Search results", + "emoji_button.symbols": "Symbols", + "emoji_button.travel": "Travel & Places", + "empty_column.account_suspended": "Account suspended", + "empty_column.account_timeline": "No posts found", + "empty_column.account_unavailable": "Profile unavailable", + "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.domain_blocks": "There are no blocked domains yet.", + "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", + "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.hashtag": "There is nothing in this hashtag yet.", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home.suggestions": "See some suggestions", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "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.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": "Report issue", + "explore.search_results": "Search results", + "explore.suggested_follows": "For you", + "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "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!", + "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.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.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", + "follow_recommendations.done": "Done", + "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "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!", + "follow_request.authorize": "Authorize", + "follow_request.reject": "Reject", + "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.", + "followed_tags": "Followed hashtags", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", + "generic.saved": "Saved", + "getting_started.heading": "Getting started", + "hashtag.column_header.tag_mode.all": "and {additional}", + "hashtag.column_header.tag_mode.any": "or {additional}", + "hashtag.column_header.tag_mode.none": "without {additional}", + "hashtag.column_settings.select.no_options_message": "No suggestions found", + "hashtag.column_settings.select.placeholder": "Enter hashtags…", + "hashtag.column_settings.tag_mode.all": "All of these", + "hashtag.column_settings.tag_mode.any": "Any of these", + "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", + "home.column_settings.basic": "Basic", + "home.column_settings.show_reblogs": "Show boosts", + "home.column_settings.show_replies": "Show replies", + "home.hide_announcements": "Hide announcements", + "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "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.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "to open pinned posts list", + "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toot": "to start a brand new post", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "to move up in the list", + "lightbox.close": "Close", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Next", + "lightbox.previous": "Previous", + "limited_account_hint.action": "Show profile anyway", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Add to list", + "lists.account.remove": "Remove from list", + "lists.delete": "Delete list", + "lists.edit": "Edit list", + "lists.edit.submit": "Change title", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "New list title", + "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.list": "Members of the list", + "lists.replies_policy.none": "No one", + "lists.replies_policy.title": "Show replies to:", + "lists.search": "Search among people you follow", + "lists.subheading": "Your lists", + "load_pending": "{count, plural, one {# new item} other {# new items}}", + "loading_indicator.label": "Loading...", + "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "Duration", + "mute_modal.hide_notifications": "Hide notifications from this user?", + "mute_modal.indefinite": "Indefinite", + "navigation_bar.about": "About", + "navigation_bar.blocks": "Blocked users", + "navigation_bar.bookmarks": "Bookmarks", + "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.compose": "Compose new post", + "navigation_bar.direct": "Direct messages", + "navigation_bar.discover": "Discover", + "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.edit_profile": "Edit profile", + "navigation_bar.explore": "Explore", + "navigation_bar.favourites": "Favourites", + "navigation_bar.filters": "Muted words", + "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.lists": "Lists", + "navigation_bar.logout": "Logout", + "navigation_bar.mutes": "Muted users", + "navigation_bar.personal": "Personal", + "navigation_bar.pins": "Pinned posts", + "navigation_bar.preferences": "Preferences", + "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", + "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", + "notification.admin.sign_up": "{name} signed up", + "notification.favourite": "{name} favourited your status", + "notification.follow": "{name} followed you", + "notification.follow_request": "{name} has requested to follow you", + "notification.mention": "{name} mentioned you", + "notification.own_poll": "Your poll has ended", + "notification.poll": "A poll you have voted in has ended", + "notification.reblog": "{name} boosted your status", + "notification.status": "{name} just posted", + "notification.update": "{name} edited a post", + "notifications.clear": "Clear notifications", + "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.alert": "Desktop notifications", + "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Show in column", + "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.status": "New posts:", + "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.update": "Edits:", + "notifications.filter.all": "All", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favourites", + "notifications.filter.follows": "Follows", + "notifications.filter.mentions": "Mentions", + "notifications.filter.polls": "Poll results", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Closed", + "poll.refresh": "Refresh", + "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.vote": "Vote", + "poll.voted": "You voted for this answer", + "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.short": "Direct", + "privacy.private.long": "Visible for followers only", + "privacy.private.short": "Followers-only", + "privacy.public.long": "Visible for all", + "privacy.public.short": "Public", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Refresh", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "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.minutes": "{number, plural, one {# minute} other {# minutes}} ago", + "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.hours": "{number}h", + "relative_time.just_now": "now", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "today", + "reply_indicator.cancel": "Cancel", + "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.categories.spam": "Spam", + "report.categories.violation": "Content violates one or more server rules", + "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.forward": "Forward to {target}", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "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.placeholder": "Type or paste additional comments", + "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.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "Hashtags", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Posts", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "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.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.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also 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.cancel_reblog_private": "Unboost", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Delete", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Direct message @{name}", + "status.edit": "Edit", + "status.edited": "Edited {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.embed": "Embed", + "status.favourite": "Favourite", + "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.load_more": "Load more", + "status.media_hidden": "Media hidden", + "status.mention": "Mention @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Expand this status", + "status.pin": "Pin on profile", + "status.pinned": "Pinned post", + "status.read_more": "Read more", + "status.reblog": "Boost", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Delete & re-draft", + "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", + "status.reply": "Reply", + "status.replyAll": "Reply to thread", + "status.report": "Report @{name}", + "status.sensitive_warning": "Sensitive content", + "status.share": "Share", + "status.show_filter_reason": "Show anyway", + "status.show_less": "Show less", + "status.show_less_all": "Show less for all", + "status.show_more": "Show more", + "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.uncached_media_warning": "Not available", + "status.unmute_conversation": "Unmute conversation", + "status.unpin": "Unpin from profile", + "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.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Home", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Notifications", + "time_remaining.days": "{number, plural, one {# day} other {# days}} left", + "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", + "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.resources.followers": "Followers", + "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.statuses": "Older posts", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Trending now", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people who are hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Delete", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Choose image", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Full screen", + "video.hide": "Hide video", + "video.mute": "Mute sound", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Unmute sound" +} diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 204a54241d..407f5dd926 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.", "empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl rydych yn eu hadnabod neu edrych drwy hashnodau sy'n trendio.", "empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan fyddwch yn derbyn un, byddan nhw'n ymddangos yma.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Nid ydych wedi dilyn unrhyw hashnodau eto. Pan fyddwch chi'n gwneud hynny, byddan nhw'n ymddangos yma.", "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.", "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.", "empty_column.home.suggestions": "Dyma rai awgrymiadau", @@ -264,7 +264,7 @@ "follow_request.authorize": "Awdurdodi", "follow_request.reject": "Gwrthod", "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.", - "followed_tags": "Followed hashtags", + "followed_tags": "Hashnodau rydych yn eu dilyn", "footer.about": "Ynghylch", "footer.directory": "Cyfeiriadur proffiliau", "footer.get_app": "Lawrlwytho'r ap", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 0e5b589c11..a787a747b4 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -450,7 +450,7 @@ "poll.voted": "You voted for this answer", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll_button.remove_poll": "Add a poll", "privacy.change": "Adjust status privacy", "privacy.direct.long": "Visible for mentioned users only", "privacy.direct.short": "Direct", @@ -489,7 +489,7 @@ "report.close": "Done", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "report.forward_hint": "The account is from another server. Send an anonymised copy of the report there as well?", "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", @@ -538,7 +538,7 @@ "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.administered_by": "Administered by:", - "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.introduction": "{domain} is part of the decentralised social network powered by {mastodon}.", "server_banner.learn_more": "Learn more", "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index bb8a1a68ba..daaab3857f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -24,7 +24,7 @@ "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen", "account.domain_blocked": "Verkko-osoite estetty", "account.edit_profile": "Muokkaa profiilia", - "account.enable_notifications": "Ilmoita @{name}:n julkaisuista", + "account.enable_notifications": "Ilmoita kun käyttäjä @{name} julkaisee viestin", "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin viesti {date}", "account.featured_tags.last_status_never": "Ei viestejä", @@ -38,7 +38,7 @@ "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", "account.follows_you": "Seuraa sinua", "account.go_to_profile": "Avaa profiili", - "account.hide_reblogs": "Piilota käyttäjän @{name} buustaukset", + "account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset", "account.joined_short": "Liittynyt", "account.languages": "Vaihda tilattuja kieliä", "account.link_verified_on": "Linkin omistus tarkistettiin {date}", @@ -56,8 +56,8 @@ "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla", "account.requested_follow": "{name} on pyytänyt lupaa seurata sinua", "account.share": "Jaa käyttäjän @{name} profiili", - "account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}", - "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", + "account.show_reblogs": "Näytä tehostukset käyttäjältä @{name}", + "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}", "account.unblock": "Salli @{name}", "account.unblock_domain": "Salli palvelu {domain}", "account.unblock_short": "Poista esto", @@ -155,20 +155,20 @@ "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata käyttäjää {name}?", "confirmations.delete.confirm": "Poista", - "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", + "confirmations.delete.message": "Haluatko varmasti poistaa tämän viestin?", "confirmations.delete_list.confirm": "Poista", "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?", "confirmations.discard_edit_media.confirm": "Hylkää", - "confirmations.discard_edit_media.message": "Onko sinulla tallentamattomia muutoksia kuvaukseen tai esikatseluun, hylätäänkö ne silti?", + "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?", "confirmations.domain_block.confirm": "Estä koko palvelu", "confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.", "confirmations.logout.confirm": "Kirjaudu ulos", - "confirmations.logout.message": "Oletko varma, että haluat kirjautua ulos?", + "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", - "confirmations.redraft.message": "Oletko varma että haluat poistaa tämän julkaisun ja tehdä siitä uuden luonnoksen? Suosikit ja buustaukset menetään, alkuperäisen julkaisusi vastaukset jäävät orvoiksi.", + "confirmations.redraft.message": "Oletko varma että haluat poistaa tämän julkaisun ja tehdä siitä uuden luonnoksen? Suosikit ja tehostukset menetään, alkuperäisen julkaisusi vastaukset jäävät orvoiksi.", "confirmations.reply.confirm": "Vastaa", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?", "confirmations.unfollow.confirm": "Lopeta seuraaminen", @@ -208,7 +208,7 @@ "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", - "empty_column.account_suspended": "Tilin käyttäminen keskeytetty", + "empty_column.account_suspended": "Tilin käyttäminen jäädytetty", "empty_column.account_timeline": "Ei viestejä täällä.", "empty_column.account_unavailable": "Profiilia ei löydy", "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.", @@ -240,7 +240,7 @@ "explore.suggested_follows": "Sinulle", "explore.title": "Selaa", "explore.trending_links": "Uutiset", - "explore.trending_statuses": "Julkaisut", + "explore.trending_statuses": "Viestit", "explore.trending_tags": "Aihetunnisteet", "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet käyttänyt tätä viestiä. Jos haluat, että viesti suodatetaan myös tässä yhteydessä, sinun on muokattava suodatinta.", "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!", @@ -248,7 +248,7 @@ "filter_modal.added.expired_title": "Vanhentunut suodatin!", "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin siirtymällä {settings_link}.", "filter_modal.added.review_and_configure_title": "Suodattimen asetukset", - "filter_modal.added.settings_link": "asetukset sivu", + "filter_modal.added.settings_link": "asetukset-sivulle", "filter_modal.added.short_explanation": "Tämä viesti on lisätty seuraavaan suodatinluokkaan: {title}.", "filter_modal.added.title": "Suodatin lisätty!", "filter_modal.select_filter.context_mismatch": "ei sovellu tähän asiayhteyteen", @@ -259,7 +259,7 @@ "filter_modal.select_filter.title": "Suodata tämä viesti", "filter_modal.title.status": "Suodata viesti", "follow_recommendations.done": "Valmis", - "follow_recommendations.heading": "Seuraa ihmisiä, joilta haluaisit nähdä julkaisuja! Tässä on muutamia ehdotuksia.", + "follow_recommendations.heading": "Seuraa ihmisiä, joilta haluat nähdä viestejä! Tässä on muutamia ehdotuksia.", "follow_recommendations.lead": "Seuraamiesi julkaisut näkyvät aikajärjestyksessä kotisyötteessä. Älä pelkää seurata vahingossa, voit lopettaa seuraamisen yhtä helposti!", "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", @@ -286,34 +286,34 @@ "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_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", "home.hide_announcements": "Piilota ilmoitukset", "home.show_announcements": "Näytä ilmoitukset", "interaction_modal.description.favourite": "Kun sinulla on tili Mastodonissa, voit lisätä tämän viestin suosikkeihin ja tallentaa sen myöhempää käyttöä varten.", - "interaction_modal.description.follow": "Kun sinulla on tili Mastodonissa, voit seurata {name} saadaksesi hänen viestejä sinun kotisyötteeseen.", + "interaction_modal.description.follow": "Kun sinulla on tili Mastodonissa, voit seurata käyttäjää {name} saadaksesi hänen viestit kotisyötteeseesi.", "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.", "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.", "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", "interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen hakukenttään tai Mastodon-palvelimen web-käyttöliittymään.", "interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.", - "interaction_modal.title.favourite": "Suosikin {name} viesti", + "interaction_modal.title.favourite": "Aseta käyttäjän {name} viesti suosikiksi", "interaction_modal.title.follow": "Seuraa {name}", - "interaction_modal.title.reblog": "Tehosta {name} viestiä", + "interaction_modal.title.reblog": "Tehosta käyttäjän {name} viestiä", "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin", "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}", "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}", "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}", "keyboard_shortcuts.back": "Siirry takaisin", "keyboard_shortcuts.blocked": "Avaa estettyjen käyttäjien luettelo", - "keyboard_shortcuts.boost": "Buustaa viestiä", + "keyboard_shortcuts.boost": "Tehosta viestiä", "keyboard_shortcuts.column": "Kohdista sarakkeeseen", "keyboard_shortcuts.compose": "siirry tekstinsyöttöön", "keyboard_shortcuts.description": "Kuvaus", - "keyboard_shortcuts.direct": "avaa yksityisviesti sarake", + "keyboard_shortcuts.direct": "avataksesi yksityisviestisarakkeen", "keyboard_shortcuts.down": "Siirry listassa alaspäin", - "keyboard_shortcuts.enter": "Avaa julkaisu", + "keyboard_shortcuts.enter": "Avaa viesti", "keyboard_shortcuts.favourite": "Lisää suosikkeihin", "keyboard_shortcuts.favourites": "Avaa lista suosikeista", "keyboard_shortcuts.federated": "Avaa yleinen aikajana", @@ -332,8 +332,8 @@ "keyboard_shortcuts.reply": "Vastaa viestiin", "keyboard_shortcuts.requests": "Avaa lista seurauspyynnöistä", "keyboard_shortcuts.search": "siirry hakukenttään", - "keyboard_shortcuts.spoilers": "näyttääksesi/piilottaaksesi CW kentän", - "keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake", + "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä", + "keyboard_shortcuts.start": "avaa \"Aloitus\"-sarake", "keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti", "keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media", "keyboard_shortcuts.toot": "Aloita uusi viesti", @@ -354,7 +354,7 @@ "lists.new.create": "Lisää lista", "lists.new.title_placeholder": "Uuden listan nimi", "lists.replies_policy.followed": "Jokainen seurattu käyttäjä", - "lists.replies_policy.list": "Luettelon jäsenet", + "lists.replies_policy.list": "Listan jäsenet", "lists.replies_policy.none": "Ei kukaan", "lists.replies_policy.title": "Näytä vastaukset:", "lists.search": "Etsi seuraamistasi henkilöistä", @@ -394,15 +394,15 @@ "navigation_bar.security": "Turvallisuus", "not_signed_in_indicator.not_signed_in": "Sinun täytyy kirjautua sisään päästäksesi käsiksi tähän resurssiin.", "notification.admin.report": "{name} ilmoitti {target}", - "notification.admin.sign_up": "{name} rekisteröitynyt", + "notification.admin.sign_up": "{name} rekisteröityi", "notification.favourite": "{name} tykkäsi viestistäsi", "notification.follow": "{name} seurasi sinua", "notification.follow_request": "{name} haluaa seurata sinua", "notification.mention": "{name} mainitsi sinut", "notification.own_poll": "Kyselysi on päättynyt", "notification.poll": "Kysely, johon osallistuit, on päättynyt", - "notification.reblog": "{name} buustasi julkaisusi", - "notification.status": "{name} julkaisi juuri", + "notification.reblog": "{name} tehosti viestiäsi", + "notification.status": "{name} julkaisi juuri viestin", "notification.update": "{name} muokkasi viestiä", "notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", @@ -418,15 +418,15 @@ "notifications.column_settings.mention": "Maininnat:", "notifications.column_settings.poll": "Kyselyn tulokset:", "notifications.column_settings.push": "Push-ilmoitukset", - "notifications.column_settings.reblog": "Buustit:", + "notifications.column_settings.reblog": "Tehostukset:", "notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.sound": "Äänimerkki", - "notifications.column_settings.status": "Uudet julkaisut:", + "notifications.column_settings.status": "Uudet viestit:", "notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset", "notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset", "notifications.column_settings.update": "Muokkaukset:", "notifications.filter.all": "Kaikki", - "notifications.filter.boosts": "Buustit", + "notifications.filter.boosts": "Tehostukset", "notifications.filter.favourites": "Suosikit", "notifications.filter.follows": "Seuraa", "notifications.filter.mentions": "Maininnat", @@ -451,10 +451,10 @@ "poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}", "poll_button.add_poll": "Lisää kysely", "poll_button.remove_poll": "Poista kysely", - "privacy.change": "Muuta julkaisun näkyvyyttä", - "privacy.direct.long": "Julkaise vain mainituille käyttäjille", + "privacy.change": "Muuta viestin näkyvyyttä", + "privacy.direct.long": "Näkyvissä vain mainituille käyttäjille", "privacy.direct.short": "Vain mainitut henkilöt", - "privacy.private.long": "Julkaise vain seuraajille", + "privacy.private.long": "Näkyvissä vain seuraajille", "privacy.private.short": "Vain seuraajat", "privacy.public.long": "Näkyvissä kaikille", "privacy.public.short": "Julkinen", @@ -481,9 +481,9 @@ "report.block_explanation": "Et näe heidän viestejään, eivätkä he voi nähdä viestejäsi tai seurata sinua. He näkevät, että heidät on estetty.", "report.categories.other": "Muu", "report.categories.spam": "Roskaposti", - "report.categories.violation": "Sisältö rikkoo yhden tai useamman palvelimen sääntöjä", - "report.category.subtitle": "Valitse paras osuma", - "report.category.title": "Kerro meille mitä tämän {type} kanssa tapahtuu", + "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä", + "report.category.subtitle": "Valitse paras vastaavuus", + "report.category.title": "Kerro meille miksi tämä {type} pitää raportoida", "report.category.title_account": "profiili", "report.category.title_status": "viesti", "report.close": "Valmis", @@ -512,8 +512,8 @@ "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:", "report.thanks.title": "Etkö halua nähdä tätä?", "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.", - "report.unfollow": "Lopeta seuraaminen @{name}", - "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi heidän kirjoituksiaan, lopeta niiden seuraaminen.", + "report.unfollow": "Lopeta käyttäjän @{name} seuraaminen", + "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näe tilin viestejä, lopeta tilin seuraaminen.", "report_notification.attached_statuses": "{count, plural, one {{count} viesti} other {{count} viestiä}} liitteenä", "report_notification.categories.other": "Muu", "report_notification.categories.spam": "Roskaposti", @@ -522,16 +522,16 @@ "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 aihetunnisteet.", + "search_popout.tips.full_text": "Tekstihaku listaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, tehostanut 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.status": "viesti", "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", "search_results.hashtags": "Aihetunnisteet", "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", - "search_results.statuses": "Julkaisut", + "search_results.statuses": "Viestit", "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.", "search_results.title": "Etsi {q}", "search_results.total": "{count, number} {count, plural, one {tulos} other {tulosta}}", @@ -546,12 +546,12 @@ "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, lisätäksesi suosikkeihin, jakaaksesi julkaisuja ja vastataksesi niihin. Voit myös olla vuorovaikutuksessa tililtäsi toisella palvelimella.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot", - "status.admin_status": "Avaa julkaisu moderointinäkymässä", + "status.admin_status": "Avaa viesti moderointinäkymässä", "status.block": "Estä @{name}", "status.bookmark": "Tallenna kirjanmerkki", - "status.cancel_reblog_private": "Peru buustaus", - "status.cannot_reblog": "Tätä viestiä ei voi buustata", - "status.copy": "Kopioi linkki julkaisuun", + "status.cancel_reblog_private": "Peru tehostus", + "status.cannot_reblog": "Tätä viestiä ei voi tehostaa", + "status.copy": "Kopioi linkki viestiin", "status.delete": "Poista", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä", "status.direct": "Yksityisviesti käyttäjälle @{name}", @@ -575,10 +575,10 @@ "status.pin": "Kiinnitä profiiliin", "status.pinned": "Kiinnitetty viesti", "status.read_more": "Näytä enemmän", - "status.reblog": "Buustaa", - "status.reblog_private": "Buustaa alkuperäiselle yleisölle", - "status.reblogged_by": "{name} buustasi", - "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", + "status.reblog": "Tehosta", + "status.reblog_private": "Tehosta alkuperäiselle yleisölle", + "status.reblogged_by": "{name} tehosti", + "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", "status.replied_to": "Vastasit käyttäjälle {name}", @@ -615,7 +615,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.", "timeline_hint.resources.followers": "Seuraajia", "timeline_hint.resources.follows": "Seurattuja", - "timeline_hint.resources.statuses": "Vanhemmat julkaisut", + "timeline_hint.resources.statuses": "Vanhemmat viestit", "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", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", @@ -623,7 +623,7 @@ "units.short.million": "{count} milj.", "units.short.thousand": "{count} t.", "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän", - "upload_button.label": "Lisää mediaa", + "upload_button.label": "Lisää kuvia, video tai äänitiedosto", "upload_error.limit": "Tiedostolatauksien raja ylitetty.", "upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.", "upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille", @@ -631,7 +631,7 @@ "upload_form.description_missing": "Kuvausta ei ole lisätty", "upload_form.edit": "Muokkaa", "upload_form.thumbnail": "Vaihda pikkukuva", - "upload_form.undo": "Peru", + "upload_form.undo": "Poista", "upload_form.video_description": "Kuvaile sisältöä kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille", "upload_modal.analyzing_picture": "Analysoidaan kuvaa…", "upload_modal.apply": "Käytä", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 2c1c827075..253dea6f48 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -1,16 +1,16 @@ { - "about.blocks": "Moderated servers", - "about.contact": "Contact:", - "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.blocks": "Մոդերացուող սպասարկիչներ", + "about.contact": "Կապ՝", + "about.disclaimer": "Մաստոդոնը ազատ, բաց ելակոդով ծրագրակազմ է, յայտնի 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.", - "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.silenced.title": "Սահմանափակ", "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.", - "about.domain_blocks.suspended.title": "Suspended", - "about.not_available": "This information has not been made available on this server.", - "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", + "about.domain_blocks.suspended.title": "Սպասող", + "about.not_available": "Այս տեղեկութիւնը տեսանելի չի այս սերուերում։", + "about.powered_by": "Ապակենտրոն սոց. ցանց սեղծուած {mastodon}-ի կողմից", + "about.rules": "Սերուերի կանոնները", "account.account_note_header": "Նշում", "account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից", "account.badges.bot": "Բոտ", @@ -26,8 +26,8 @@ "account.edit_profile": "Խմբագրել անձնական էջը", "account.enable_notifications": "Ծանուցել ինձ @{name} գրառումների մասին", "account.endorse": "Ցուցադրել անձնական էջում", - "account.featured_tags.last_status_at": "Last post on {date}", - "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.last_status_at": "Վերջին գրառումը եղել է՝ {date}", + "account.featured_tags.last_status_never": "Գրառումներ չկան", "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Հետեւել", "account.followers": "Հետեւողներ", @@ -37,9 +37,9 @@ "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}", "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։", "account.follows_you": "Հետեւում է քեզ", - "account.go_to_profile": "Go to profile", + "account.go_to_profile": "Գնալ անձնական հաշիւ", "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները", - "account.joined_short": "Joined", + "account.joined_short": "Միացել է", "account.languages": "Change subscribed languages", "account.link_verified_on": "Սոյն յղման տիրապետումը ստուգուած է՝ {date}֊ին", "account.locked_info": "Սոյն հաշուի գաղտնիութեան մակարդակը նշուած է որպէս՝ փակ։ Հաշուի տէրն ընտրում է, թէ ով կարող է հետեւել իրեն։", @@ -49,12 +49,12 @@ "account.mute": "Լռեցնել @{name}֊ին", "account.mute_notifications": "Անջատել ծանուցումները @{name}֊ից", "account.muted": "Լռեցուած", - "account.open_original_page": "Open original page", + "account.open_original_page": "Բացել իրական էջը", "account.posts": "Գրառումներ", "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, one {{counter} Գրառում} other {{counter} Գրառումներ}}", @@ -78,16 +78,16 @@ "alert.unexpected.title": "Վա՜յ", "announcement.announcement": "Յայտարարութիւններ", "attachments_list.unprocessed": "(unprocessed)", - "audio.hide": "Hide audio", + "audio.hide": "Թաքցնել աուդիոն", "autosuggest_hashtag.per_week": "շաբաթը՝ {count}", "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա յաջորդ անգամ բաց թողնելու համար", "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": "Օ՜, ոչ։", "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": "Ցանցի սխալ", "bundle_column_error.retry": "Կրկին փորձել", - "bundle_column_error.return": "Go back home", + "bundle_column_error.return": "Վերադառնալ տուն", "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Փակել", @@ -95,10 +95,10 @@ "bundle_modal_error.retry": "Կրկին փորձել", "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", - "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.find_another_server": "Գտնել այլ սերուերում", "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.title": "Signing up on Mastodon", - "column.about": "About", + "column.about": "Մասին", "column.blocks": "Արգելափակուած օգտատէրեր", "column.bookmarks": "Էջանիշեր", "column.community": "Տեղական հոսք", @@ -124,8 +124,8 @@ "community.column_settings.local_only": "Միայն տեղական", "community.column_settings.media_only": "Միայն մեդիա", "community.column_settings.remote_only": "Միայն հեռակայ", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Փոխել լեզուն", + "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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", @@ -138,8 +138,8 @@ "compose_form.poll.remove_option": "Հեռացնել այս տարբերակը", "compose_form.poll.switch_to_multiple": "Հարցումը դարձնել բազմակի ընտրութեամբ", "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "Հրապարակել", + "compose_form.publish_form": "Հրապարակել", "compose_form.publish_loud": "Հրապարակե՜լ", "compose_form.save_changes": "Պահպանել փոփոխութիւնները", "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց", @@ -177,8 +177,8 @@ "conversation.mark_as_read": "Նշել որպէս ընթերցուած", "conversation.open": "Դիտել խօսակցութիւնը", "conversation.with": "{names}-ի հետ", - "copypaste.copied": "Copied", - "copypaste.copy": "Copy", + "copypaste.copied": "Պատճէնուած է", + "copypaste.copy": "Պատճէնել", "directory.federated": "Յայտնի դաշնեզերքից", "directory.local": "{domain} տիրոյթից միայն", "directory.new_arrivals": "Նորեկներ", @@ -194,7 +194,7 @@ "embed.instructions": "Այս գրառումը քո կայքում ներդնելու համար կարող ես պատճէնել ներքեւի կոդը։", "embed.preview": "Ահա, թէ ինչ տեսք կունենայ այն՝", "emoji_button.activity": "Զբաղմունքներ", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Մաքրել", "emoji_button.custom": "Յատուկ", "emoji_button.flags": "Դրօշներ", "emoji_button.food": "Կերուխում", @@ -237,24 +237,24 @@ "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": "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.settings_link": "settings page", + "filter_modal.added.settings_link": "կարգաւորումների էջ", "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", "filter_modal.added.title": "Filter added!", "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.search": "Որոնել կամ ստեղծել", "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", @@ -265,11 +265,11 @@ "follow_request.reject": "Մերժել", "follow_requests.unlocked_explanation": "Այս հարցումը ուղարկուած է հաշուից, որի համար {domain}-ի անձնակազմը միացրել է ձեռքով ստուգում։", "followed_tags": "Followed hashtags", - "footer.about": "About", + "footer.about": "Մասին", "footer.directory": "Profiles directory", "footer.get_app": "Get the app", - "footer.invite": "Invite people", - "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.invite": "Հրաւիրել մարդկանց", + "footer.keyboard_shortcuts": "Ստեղնաշարի կարճատներ", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", "generic.saved": "Պահպանուած է", @@ -283,8 +283,8 @@ "hashtag.column_settings.tag_mode.any": "Ցանկացածը", "hashtag.column_settings.tag_mode.none": "Ոչ մեկը", "hashtag.column_settings.tag_toggle": "Ներառել լրացուցիչ պիտակները այս սիւնակում ", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", + "hashtag.follow": "Հետեւել պիտակին", + "hashtag.unfollow": "Չհետեւել պիտակին", "home.column_settings.basic": "Հիմնական", "home.column_settings.show_reblogs": "Ցուցադրել տարածածները", "home.column_settings.show_replies": "Ցուցադրել պատասխանները", @@ -299,9 +299,9 @@ "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.title.favourite": "Favourite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", + "interaction_modal.title.follow": "Հետեւել {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 {# րոպէ}}", @@ -368,7 +368,7 @@ "mute_modal.duration": "Տեւողութիւն", "mute_modal.hide_notifications": "Թաքցնե՞լ ծանուցումներն այս օգտատիրոջից։", "mute_modal.indefinite": "Անժամկէտ", - "navigation_bar.about": "About", + "navigation_bar.about": "Մասին", "navigation_bar.blocks": "Արգելափակուած օգտատէրեր", "navigation_bar.bookmarks": "Էջանիշեր", "navigation_bar.community_timeline": "Տեղական հոսք", @@ -390,7 +390,7 @@ "navigation_bar.pins": "Ամրացուած գրառումներ", "navigation_bar.preferences": "Նախապատուութիւններ", "navigation_bar.public_timeline": "Դաշնային հոսք", - "navigation_bar.search": "Search", + "navigation_bar.search": "Որոնել", "navigation_bar.security": "Անվտանգութիւն", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", @@ -512,15 +512,15 @@ "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", + "report.unfollow": "Չհետեւել {name}-ին", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", - "report_notification.categories.other": "Other", - "report_notification.categories.spam": "Spam", + "report_notification.categories.other": "Այլ", + "report_notification.categories.spam": "Սպամ", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", "search.placeholder": "Փնտրել", - "search.search_or_paste": "Search or paste URL", + "search.search_or_paste": "Որոնել կամ դնել URL", "search_popout.search_format": "Փնտրելու առաջադէմ ձեւ", "search_popout.tips.full_text": "Պարզ տեքստը վերադարձնում է գրառումներդ, հաւանածներդ, տարածածներդ, որտեղ ես նշուած եղել, ինչպէս նաեւ նման օգտանուններ, անուններ եւ պիտակներ։", "search_popout.tips.hashtag": "պիտակ", @@ -528,22 +528,22 @@ "search_popout.tips.text": "Հասարակ տեքստը կը վերադարձնի համընկնող անուններ, օգտանուններ ու պիտակներ", "search_popout.tips.user": "օգտատէր", "search_results.accounts": "Մարդիկ", - "search_results.all": "All", + "search_results.all": "Բոլորը", "search_results.hashtags": "Պիտակներ", "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Գրառումներ", "search_results.statuses_fts_disabled": "Այս հանգոյցում միացուած չէ ըստ բովանդակութեան գրառում փնտրելու հնարաւորութիւնը։", - "search_results.title": "Search for {q}", + "search_results.title": "Որոնել {q}-ն", "search_results.total": "{count, number} {count, plural, one {արդիւնք} other {արդիւնք}}", "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.administered_by": "Administered by:", + "server_banner.active_users": "ակտիւ մարդիկ", + "server_banner.administered_by": "Կառաւարող", "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", - "server_banner.learn_more": "Learn more", - "server_banner.server_stats": "Server stats:", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "server_banner.learn_more": "Իմանալ աւելին", + "server_banner.server_stats": "Սերուերի վիճակը", + "sign_in_banner.create_account": "Ստեղծել հաշիւ", + "sign_in_banner.sign_in": "Մուտք", + "sign_in_banner.text": "Մտէք, որ կարողանաք հետեւել հաշիւներին կամ պիտակներին, հաւանել, տարածել կամ պատասխանել գրառումներին։ Նաեւ շփուել այլ հանգոյցների հետ։", "status.admin_account": "Բացել @{name} օգտատիրոջ մոդերացիայի դիմերէսը։", "status.admin_domain": "Open moderation interface for {domain}", "status.admin_status": "Բացել այս գրառումը մոդերատորի դիմերէսի մէջ", @@ -555,16 +555,16 @@ "status.delete": "Ջնջել", "status.detailed_status": "Շղթայի ընդլայնուած դիտում", "status.direct": "Նամակ գրել {name} -ին", - "status.edit": "Edit", - "status.edited": "Edited {date}", + "status.edit": "Խմբագրել", + "status.edited": "Խմբագրուել է՝ {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Ներդնել", "status.favourite": "Հաւանել", "status.filter": "Filter this post", "status.filtered": "Զտուած", - "status.hide": "Hide post", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Թաքցնել գրառումը", + "status.history.created": "{name}-ը ստեղծել է՝ {date}", + "status.history.edited": "{name}-ը խմբագրել է՝ {date}", "status.load_more": "Բեռնել աւելին", "status.media_hidden": "մեդիաբովանդակութիւնը թաքցուած է", "status.mention": "Նշել @{name}֊ին", @@ -581,25 +581,25 @@ "status.reblogs.empty": "Այս գրառումը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ տարածեն։", "status.redraft": "Ջնջել եւ վերակազմել", "status.remove_bookmark": "Հեռացնել էջանիշերից", - "status.replied_to": "Replied to {name}", + "status.replied_to": "Պատասխանել է {name}-ին", "status.reply": "Պատասխանել", "status.replyAll": "Պատասխանել շղթային", "status.report": "Բողոքել @{name}֊ից", "status.sensitive_warning": "Կասկածելի բովանդակութիւն", "status.share": "Կիսուել", - "status.show_filter_reason": "Show anyway", + "status.show_filter_reason": "Ցոյց տալ բոլոր դէպքերում", "status.show_less": "Պակաս", "status.show_less_all": "Թաքցնել բոլոր նախազգուշացնումները", "status.show_more": "Աւելին", "status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները", - "status.show_original": "Show original", - "status.translate": "Translate", + "status.show_original": "Ցոյց տալ բնօրինակը", + "status.translate": "Թարգմանել", "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Անհասանելի", "status.unmute_conversation": "Ապալռեցնել խօսակցութիւնը", "status.unpin": "Հանել անձնական էջից", "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": "Պահպանել փոփոխութիւնները", "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Անտեսել առաջարկը", "suggestions.header": "Միգուցէ քեզ հետաքրքրի…", @@ -644,7 +644,7 @@ "upload_modal.preparing_ocr": "Գրաճանաչման նախապատրաստում…", "upload_modal.preview_label": "Նախադիտում ({ratio})", "upload_progress.label": "Վերբեռնվում է…", - "upload_progress.processing": "Processing…", + "upload_progress.processing": "Մշակուում է...", "video.close": "Փակել տեսագրութիւնը", "video.download": "Ներբեռնել նիշքը", "video.exit_fullscreen": "Անջատել լիաէկրան դիտումը", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index ac1247503d..584ce4c4cd 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,7 +1,7 @@ { "about.blocks": "Server yang dimoderasi", "about.contact": "Hubungi:", - "about.disclaimer": "Mastodon addalah perangkat lunak bebas dan sumber terbuka, dan adalah merek dagang dari Mastodon gGmbH.", + "about.disclaimer": "Mastodon adalah perangkat lunak bebas dan sumber terbuka, dan adalah merek dagang dari Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Alasan tidak tersedia", "about.domain_blocks.preamble": "Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server.", "about.domain_blocks.silenced.explanation": "Anda secara umum tidak melihat profil dan konten dari server ini, kecuali jika Anda mencarinya atau memilihnya dengan mengikuti secara eksplisit.", @@ -111,7 +111,7 @@ "column.lists": "List", "column.mutes": "Pengguna yang dibisukan", "column.notifications": "Notifikasi", - "column.pins": "Pinned toot", + "column.pins": "Kiriman tersemat", "column.public": "Linimasa gabungan", "column_back_button.label": "Kembali", "column_header.hide_settings": "Sembunyikan pengaturan", @@ -126,14 +126,14 @@ "community.column_settings.remote_only": "Hanya jarak jauh", "compose.language.change": "Ganti bahasa", "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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.direct_message_warning_learn_more": "Pelajari lebih lanjut", + "compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi secara end-to-end. Jangan bagikan informasi sensitif melalui Mastodon.", + "compose_form.hashtag_warning": "Kiriman ini tidak akan didaftarkan di bawah tagar apapun selama tidak diatur ke publik. Hanya kiriman publik yang dapat dicari dengan tagar.", "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?", "compose_form.poll.add_option": "Tambahkan pilihan", - "compose_form.poll.duration": "Durasi polling", + "compose_form.poll.duration": "Durasi japat", "compose_form.poll.option_placeholder": "Pilihan {number}", "compose_form.poll.remove_option": "Hapus opsi ini", "compose_form.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda", @@ -145,8 +145,8 @@ "compose_form.sensitive.hide": "{count, plural, other {Tandai media sebagai sensitif}}", "compose_form.sensitive.marked": "{count, plural, other {Media ini ditandai sebagai sensitif}}", "compose_form.sensitive.unmarked": "{count, plural, other {Media ini tidak ditandai sebagai sensitif}}", - "compose_form.spoiler.marked": "Teks disembunyikan dibalik peringatan", - "compose_form.spoiler.unmarked": "Teks tidak tersembunyi", + "compose_form.spoiler.marked": "Hapus peringatan tentang isi konten", + "compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten", "compose_form.spoiler_placeholder": "Peringatan konten", "confirmation_modal.cancel": "Batal", "confirmations.block.block_and_report": "Blokir & Laporkan", @@ -221,7 +221,7 @@ "empty_column.favourites": "Belum ada yang memfavoritkan toot ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", "empty_column.follow_recommendations": "Sepertinya tak ada saran yang dibuat untuk Anda. Anda dapat mencoba menggunakan pencarian untuk menemukan orang yang Anda ketahui atau menjelajahi tagar yang sedang tren.", "empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka itu akan muncul di sini.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Anda belum mengikuti tagar apapun. Saat Anda mulai melakukannya, mereka akan muncul di sini.", "empty_column.hashtag": "Tidak ada apa pun dalam hashtag ini.", "empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.", "empty_column.home.suggestions": "Lihat beberapa saran", @@ -264,7 +264,7 @@ "follow_request.authorize": "Izinkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.", - "followed_tags": "Followed hashtags", + "followed_tags": "Tagar yang diikuti", "footer.about": "Tentang", "footer.directory": "Direktori profil", "footer.get_app": "Dapatkan aplikasi", @@ -381,7 +381,7 @@ "navigation_bar.favourites": "Favorit", "navigation_bar.filters": "Kata yang dibisukan", "navigation_bar.follow_requests": "Permintaan mengikuti", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Tagar yang diikuti", "navigation_bar.follows_and_followers": "Ikuti dan pengikut", "navigation_bar.lists": "Daftar", "navigation_bar.logout": "Keluar", @@ -543,9 +543,9 @@ "server_banner.server_stats": "Statistik server:", "sign_in_banner.create_account": "Buat akun", "sign_in_banner.sign_in": "Masuk", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Masuk untuk mengikuti profil atau tagar, memfavoritkan, membagi, dan membalas kiriman. Anda juga dapat berinteraksi dari akun Anda di server yang berbeda.", "status.admin_account": "Buka antarmuka moderasi untuk @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Buka antarmuka moderasi untuk {domain}", "status.admin_status": "Buka kiriman ini dalam antar muka moderasi", "status.block": "Blokir @{name}", "status.bookmark": "Markah", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 56406da8f6..41c404c146 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -5,7 +5,7 @@ "about.domain_blocks.no_reason_available": "Motivo non disponibile", "about.domain_blocks.preamble": "Mastodon, generalmente, ti consente di visualizzare i contenuti e interagire con gli utenti da qualsiasi altro server nel fediverso. Queste sono le eccezioni che sono state fatte su questo particolare server.", "about.domain_blocks.silenced.explanation": "Generalmente non vedrai i profili e i contenuti di questo server, a meno che tu non lo cerchi esplicitamente o che tu scelga di seguirlo.", - "about.domain_blocks.silenced.title": "Silenziato", + "about.domain_blocks.silenced.title": "Limitato", "about.domain_blocks.suspended.explanation": "Nessun dato proveniente da questo server verrà elaborato, conservato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti da questo server.", "about.domain_blocks.suspended.title": "Sospeso", "about.not_available": "Queste informazioni non sono state rese disponibili su questo server.", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index ffc716dd7c..47f4f104d7 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -178,7 +178,7 @@ "conversation.open": "Пікірталасты қарау", "conversation.with": "{names} атты", "copypaste.copied": "Copied", - "copypaste.copy": "Copy", + "copypaste.copy": "Көшіру", "directory.federated": "Танымал желіден", "directory.local": "Тек {domain} доменінен", "directory.new_arrivals": "Жаңадан келгендер", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 164353b6dc..7332dca16c 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -219,7 +219,7 @@ "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!", "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", - "empty_column.follow_recommendations": "나를 위한 추천을 만들 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.", + "empty_column.follow_recommendations": "제안을 만들 수 없었습니다. 알 수 있는 사람을 찾아보거나 유행하는 해시태그를 둘러보세요.", "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.", "empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.", "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", @@ -585,7 +585,7 @@ "status.reply": "답장", "status.replyAll": "글타래에 답장", "status.report": "{name} 님을 신고하기", - "status.sensitive_warning": "민감한 미디어", + "status.sensitive_warning": "민감한 내용", "status.share": "공유", "status.show_filter_reason": "그냥 표시하기", "status.show_less": "숨기기", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 4e31b99175..5b753cf2a4 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Niemand heeft dit bericht nog als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.", "empty_column.follow_recommendations": "Het lijkt er op dat er geen aanbevelingen voor jou aangemaakt kunnen worden. Je kunt proberen te zoeken naar mensen die je wellicht kent, zoeken op hashtags, de lokale en globale tijdlijnen bekijken of de gebruikersgids doorbladeren.", "empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Je hebt nog geen hashtags gevolgd. Wanneer je dit doet, zullen ze hier verschijnen.", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", "empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen. {suggestions}", "empty_column.home.suggestions": "Enkele aanbevelingen bekijken", @@ -264,7 +264,7 @@ "follow_request.authorize": "Goedkeuren", "follow_request.reject": "Afwijzen", "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.", - "followed_tags": "Followed hashtags", + "followed_tags": "Gevolgde hashtags", "footer.about": "Over", "footer.directory": "Gebruikersgids", "footer.get_app": "App downloaden", @@ -381,8 +381,8 @@ "navigation_bar.favourites": "Favorieten", "navigation_bar.filters": "Filters", "navigation_bar.follow_requests": "Volgverzoeken", - "navigation_bar.followed_tags": "Followed hashtags", - "navigation_bar.follows_and_followers": "Volgers en gevolgden", + "navigation_bar.followed_tags": "Gevolgde hashtags", + "navigation_bar.follows_and_followers": "Volgers en gevolgde accounts", "navigation_bar.lists": "Lijsten", "navigation_bar.logout": "Uitloggen", "navigation_bar.mutes": "Genegeerde gebruikers", @@ -543,7 +543,7 @@ "server_banner.server_stats": "Serverstats:", "sign_in_banner.create_account": "Registreren", "sign_in_banner.sign_in": "Inloggen", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "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 ook interactie met mensen op deze server hebben.", "status.admin_account": "Moderatie-omgeving van @{name} openen", "status.admin_domain": "Moderatie-omgeving van {domain} openen", "status.admin_status": "Dit bericht in de moderatie-omgeving tonen", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index daa28fd4bb..a341c42914 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -505,7 +505,7 @@ "report.rules.subtitle": "Vyberte všetky, ktoré sa vzťahujú", "report.rules.title": "Ktoré pravidlá sa porušujú?", "report.statuses.subtitle": "Vyberte všetky, ktoré sa vzťahujú", - "report.statuses.title": "Are there any posts that back up this report?", + "report.statuses.title": "Sú k dispozícii príspevky podporujúce toto hlásenie?", "report.submit": "Odošli", "report.target": "Nahlás {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", @@ -557,7 +557,7 @@ "status.direct": "Priama správa pre @{name}", "status.edit": "Uprav", "status.edited": "Upravené {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edited_x_times": "Upravený {count, plural, one {{count} krát} other {{count} krát}}", "status.embed": "Vložiť", "status.favourite": "Páči sa mi", "status.filter": "Filtrovanie tohto príspevku", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index dad5fab60b..f1ac38fdf9 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Askush s’e ka parapëlqyer ende këtë mesazh. Kur e bën dikush, ai do të shfaqet këtu.", "empty_column.follow_recommendations": "Duket se s’u prodhuan dot sugjerime për ju. Mund të provoni të kërkoni për persona që mund të njihni, ose të eksploroni hashtag-ë që janë në modë.", "empty_column.follow_requests": "Ende s’keni ndonjë kërkesë ndjekjeje. Kur të merrni një të tillë, do të shfaqet këtu.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "S’keni ndjekur ende nodnjë hashtag. Kur të ndiqni të tillë, do të shfaqen këtu.", "empty_column.hashtag": "Ende s’ka gjë nën këtë hashtag.", "empty_column.home": "Rrjedha juaj kohore është e zbrazët! Vizitoni {public} ose përdorni kërkimin që t’ia filloni dhe të takoni përdorues të tjerë.", "empty_column.home.suggestions": "Shihni disa sugjerime", @@ -264,7 +264,7 @@ "follow_request.authorize": "Autorizoje", "follow_request.reject": "Hidhe tej", "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj s’është e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.", - "followed_tags": "Followed hashtags", + "followed_tags": "Hashtag-ë të ndjekur", "footer.about": "Mbi", "footer.directory": "Drejtori profilesh", "footer.get_app": "Merreni aplikacionin", @@ -381,7 +381,7 @@ "navigation_bar.favourites": "Të parapëlqyer", "navigation_bar.filters": "Fjalë të heshtuara", "navigation_bar.follow_requests": "Kërkesa për ndjekje", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Hashtag-ë të ndjekur", "navigation_bar.follows_and_followers": "Ndjekje dhe ndjekës", "navigation_bar.lists": "Lista", "navigation_bar.logout": "Dalje", @@ -543,7 +543,7 @@ "server_banner.server_stats": "Statistika shërbyesi:", "sign_in_banner.create_account": "Krijoni llogari", "sign_in_banner.sign_in": "Hyni", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Që të ndiqni profile ose hashtagë, t’u vini shenjë si të parapëlqyer, të ndani me të tjerë dhe t’i ripostoni në postime, bëni hyrjen në llogari. Mundeni edhe të ndërveproni që nga llogaria juaj në një shërbyes tjetër.", "status.admin_account": "Hap ndërfaqe moderimi për @{name}", "status.admin_domain": "Hap ndërfaqe moderimi për {domain}", "status.admin_status": "Hape këtë mesazh te ndërfaqja e moderimit", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index c2d634a487..9598c6a198 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -481,7 +481,7 @@ "report.block_explanation": "คุณจะไม่เห็นโพสต์ของเขา เขาจะไม่สามารถเห็นโพสต์ของคุณหรือติดตามคุณ เขาจะสามารถบอกได้ว่ามีการปิดกั้นเขา", "report.categories.other": "อื่น ๆ", "report.categories.spam": "สแปม", - "report.categories.violation": "เนื้อหาละเมิดหนึ่งกฎของเซิร์ฟเวอร์หรือมากกว่า", + "report.categories.violation": "เนื้อหาละเมิดกฎของเซิร์ฟเวอร์จำนวนหนึ่งหรือมากกว่า", "report.category.subtitle": "เลือกที่ตรงกันที่สุด", "report.category.title": "บอกเราถึงสิ่งที่กำลังเกิดขึ้นกับ {type} นี้", "report.category.title_account": "โปรไฟล์", @@ -509,7 +509,7 @@ "report.submit": "ส่ง", "report.target": "กำลังรายงาน {target}", "report.thanks.take_action": "นี่คือตัวเลือกของคุณสำหรับการควบคุมสิ่งที่คุณเห็นใน Mastodon:", - "report.thanks.take_action_actionable": "ขณะที่เราตรวจทานสิ่งนี้ คุณสามารถใช้การกระทำกับ @{name}:", + "report.thanks.take_action_actionable": "ขณะที่เราตรวจทานสิ่งนี้ คุณสามารถใช้การกระทำต่อ @{name}:", "report.thanks.title": "ไม่ต้องการเห็นสิ่งนี้?", "report.thanks.title_actionable": "ขอบคุณสำหรับการรายงาน เราจะตรวจสอบสิ่งนี้", "report.unfollow": "เลิกติดตาม @{name}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json new file mode 100644 index 0000000000..118d8be0c4 --- /dev/null +++ b/app/javascript/mastodon/locales/uz.json @@ -0,0 +1,658 @@ +{ + "about.blocks": "Moderatsiya qilingan serverlar", + "about.contact": "Ulanish:", + "about.disclaimer": "Mastodon bepul, ochiq kodli dastur va Mastodon gGmbH kompaniyasining savdo belgisidir.", + "about.domain_blocks.no_reason_available": "Sabab mavjud emas", + "about.domain_blocks.preamble": "Mastodon odatda fediversedagi istalgan boshqa serverdagi foydalanuvchilar tarkibini ko'rish va ular bilan muloqot qilish imkonini beradi. Bu alohida serverda qilingan istisnolar.", + "about.domain_blocks.silenced.explanation": "Bu serverdagi profillar va kontentni koʻrmaysiz, agar siz uni aniq koʻrib chiqmasangiz yoki unga amal qilish orqali kirishni xohlamasangiz.", + "about.domain_blocks.silenced.title": "Cheklangan", + "about.domain_blocks.suspended.explanation": "Ushbu serverdan hech qanday ma'lumot qayta ishlanmaydi, saqlanmaydi yoki almashtirilmaydi, bu esa ushbu serverdagi foydalanuvchilar bilan hech qanday o'zaro aloqa yoki aloqani imkonsiz qiladi.", + "about.domain_blocks.suspended.title": "To‘xtatildi", + "about.not_available": "Ushbu ma'lumot ushbu serverda mavjud emas.", + "about.powered_by": "{mastodon} tomonidan boshqariladigan markazlashtirilmagan ijtimoiy media", + "about.rules": "Server qoidalari", + "account.account_note_header": "Eslatma", + "account.add_or_remove_from_list": "Roʻyxatlarga qoʻshish yoki oʻchirish", + "account.badges.bot": "Bo't", + "account.badges.group": "Guruhlar", + "account.block": "Blok @{name}", + "account.block_domain": "{domain} domenini bloklash", + "account.blocked": "Bloklangan", + "account.browse_more_on_origin_server": "Asl profilda ko'proq ko'rish", + "account.cancel_follow_request": "Kuzatuv so‘rovini bekor qilish", + "account.direct": "To'g'ridan-to'g'ri xabar @{name}", + "account.disable_notifications": "@{name} post qo‘yganida menga xabar berishni to‘xtating", + "account.domain_blocked": "Domen bloklangan", + "account.edit_profile": "Profilni tahrirlash", + "account.enable_notifications": "@{name} post qo‘yganida menga xabar olish", + "account.endorse": "Profildagi xususiyat", + "account.featured_tags.last_status_at": "Oxirgi post: {date}", + "account.featured_tags.last_status_never": "Habarlar yo'q", + "account.featured_tags.title": "{name} ning taniqli hashtaglari", + "account.follow": "Obuna bo‘lish", + "account.followers": "Obunachilar", + "account.followers.empty": "Bu foydalanuvchini hali hech kim kuzatmaydi.", + "account.followers_counter": "{count, plural, one {{counter} Muxlis} other {{counter} Muxlislar}}", + "account.following": "Kuzatish", + "account.following_counter": "{count, plural, one {{counter} ga Muxlis} other {{counter} larga muxlis}}", + "account.follows.empty": "Bu foydalanuvchi hali hech kimni kuzatmagan.", + "account.follows_you": "Sizga obuna", + "account.go_to_profile": "Profilga o'tish", + "account.hide_reblogs": "@{name} dan boostlarni yashirish", + "account.joined_short": "Qo'shilgan", + "account.languages": "Obuna boʻlgan tillarni oʻzgartirish", + "account.link_verified_on": "Bu havolaning egaligi {date} kuni tekshirilgan", + "account.locked_info": "Bu hisobning maxfiylik holati qulflangan qilib sozlangan. Egasi ularni kim kuzatishi mumkinligini qo'lda ko'rib chiqadi.", + "account.media": "Media", + "account.mention": "@{name} ni zikr qiling", + "account.moved_to": "{name} oʻzining yangi hisobi endi ekanligini aytdi:", + "account.mute": "@{name} ovozini o‘chirish", + "account.mute_notifications": "@{name} bildirishnomalarini o‘chirish", + "account.muted": "Ovozsiz", + "account.open_original_page": "Original post sahifasi", + "account.posts": "Postlar", + "account.posts_with_replies": "Xabarlar va javoblar", + "account.report": "@{name} xabar berish", + "account.requested": "Tasdiqlash kutilmoqda. Kuzatuv soʻrovini bekor qilish uchun bosing", + "account.requested_follow": "{name} sizni kuzatishni soʻradi", + "account.share": "@{name} profilini ulashing", + "account.show_reblogs": "@{name} dan bootlarni ko'rsatish", + "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Postlar}}", + "account.unblock": "@{name} ni blokdan chiqarish", + "account.unblock_domain": "{domain} domenini blokdan chiqarish", + "account.unblock_short": "Blokdan chiqarish", + "account.unendorse": "Profilda ko'rsatilmasin", + "account.unfollow": "Kuzatishni To'xtatish", + "account.unmute": "@{name} ovozini yoqish", + "account.unmute_notifications": "@{name} bildirishnomalarining ovozini yoqish", + "account.unmute_short": "Ovozni yoqish", + "account_note.placeholder": "Eslatma qo'shish uchun bosing", + "admin.dashboard.daily_retention": "Ro'yxatdan o'tgandan keyingi kun bo'yicha foydalanuvchini ushlab turish darajasi", + "admin.dashboard.monthly_retention": "Ro'yxatdan o'tgandan keyin oy bo'yicha foydalanuvchini ushlab turish darajasi", + "admin.dashboard.retention.average": "O‘rtacha", + "admin.dashboard.retention.cohort": "Ro'yxatdan o'tish oyi", + "admin.dashboard.retention.cohort_size": "Yangi foydalanuvchilar", + "alert.rate_limited.message": "{retry_time, time, media} keyin qayta urinib koʻring.", + "alert.rate_limited.title": "Rate cheklangan", + "alert.unexpected.message": "Kutilmagan xatolik yuz berdi.", + "alert.unexpected.title": "Voy!", + "announcement.announcement": "E'lonlar", + "attachments_list.unprocessed": "(qayta ishlanmagan)", + "audio.hide": "Audioni yashirish", + "autosuggest_hashtag.per_week": "{count} haftasiga", + "boost_modal.combo": "Keyingi safar buni oʻtkazib yuborish uchun {combo} tugmasini bosishingiz mumkin", + "bundle_column_error.copy_stacktrace": "Xato hisobotini nusxalash", + "bundle_column_error.error.body": "Soʻralgan sahifani koʻrsatib boʻlmadi. Buning sababi bizning kodimizdagi xato yoki brauzer mosligi muammosi bo'lishi mumkin.", + "bundle_column_error.error.title": "Voy yo'q!", + "bundle_column_error.network.body": "Ushbu sahifani yuklashda xatolik yuz berdi. Buning sababi internet ulanishingiz yoki ushbu serverdagi vaqtinchalik muammo bo'lishi mumkin.", + "bundle_column_error.network.title": "Tarmoq xatosi", + "bundle_column_error.retry": "Qayta urinib ko'rish", + "bundle_column_error.return": "Bosh sahifaga qaytish", + "bundle_column_error.routing.body": "Soʻralgan sahifani topib boʻlmadi. Manzil satridagi URL to'g'ri ekanligiga ishonchingiz komilmi?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Yopish", + "bundle_modal_error.message": "Ushbu mahsulotni qayta belgilashda xatolik yuz berdi.", + "bundle_modal_error.retry": "Qayta urinib ko'rish", + "closed_registrations.other_server_instructions": "Mastodon markazlashtirilmaganligi sababli, siz boshqa serverda hisob yaratishingiz va u bilan o'zaro aloqada bo'lishingiz mumkin.", + "closed_registrations_modal.description": "{domain} da hisob yaratish hozircha imkonsiz, lekin Mastodondan foydalanish uchun maxsus {domain} hisob qaydnomasi kerak emasligini yodda tuting.", + "closed_registrations_modal.find_another_server": "Boshqa server topish", + "closed_registrations_modal.preamble": "Mastodon markazlashtirilmagan, shuning uchun hisob qaydnomangizni qayerda yaratmasligingizdan qat'iy nazar, siz ushbu serverdagi har kimni kuzatishingiz va ular bilan muloqot qilishingiz mumkin bo'ladi. Siz hatto uni o'zingiz ham joylashtirishingiz mumkin!", + "closed_registrations_modal.title": "Mastodonda ro'yxatdan o'tish", + "column.about": "Haqida", + "column.blocks": "Bloklangan foydalanuvchilar", + "column.bookmarks": "Xatcho‘plar", + "column.community": "Mahalliy", + "column.direct": "To'g'ridan-to'g'ri xabarlar", + "column.directory": "Profillarni ko'rish", + "column.domain_blocks": "Bloklangan domenlar", + "column.favourites": "Sevimlilar", + "column.follow_requests": "So'rovlarni kuzatib boring", + "column.home": "Bosh sahifa", + "column.lists": "Ro‘yxat", + "column.mutes": "Ovozsiz foydalanuvchilar", + "column.notifications": "Bildirishnomalar", + "column.pins": "Belgilangan post", + "column.public": "Federatsiyalangan vaqt jadvali", + "column_back_button.label": "Orqaga", + "column_header.hide_settings": "Sozlamalarni yashirish", + "column_header.moveLeft_settings": "Ustunni chapga siljiting", + "column_header.moveRight_settings": "Ustunni o'nga siljiting", + "column_header.pin": "Yopishtirish", + "column_header.show_settings": "Sozlamalarni ko'rsatish", + "column_header.unpin": "Olib qo‘yish", + "column_subheading.settings": "Sozlamalar", + "community.column_settings.local_only": "Faqat mahalliy", + "community.column_settings.media_only": "Faqat media", + "community.column_settings.remote_only": "Faqat masofaviy", + "compose.language.change": "Tilni o‘zgartirish", + "compose.language.search": "Tillarni izlash...", + "compose_form.direct_message_warning_learn_more": "Batafsil ma’lumot", + "compose_form.encryption_warning": "Mastodondagi xabarlar uchdan uchgacha shifrlanmagan. Mastodon orqali hech qanday nozik ma'lumotni baham ko'rmang.", + "compose_form.hashtag_warning": "Bu post hech qanday xeshteg ostida ko‘rsatilmaydi, chunki u ochiq emas. Faqat ochiq xabarlarni heshteg orqali qidirish mumkin.", + "compose_form.lock_disclaimer": "Hisobingiz {locked}. Faqat obunachilarga moʻljallangan postlaringizni koʻrish uchun har kim sizni kuzatishi mumkin.", + "compose_form.lock_disclaimer.lock": "yopilgan", + "compose_form.placeholder": "Xalolizda nima?", + "compose_form.poll.add_option": "Tanlov qo'shing", + "compose_form.poll.duration": "So‘rov muddati", + "compose_form.poll.option_placeholder": "Tanlov {number}", + "compose_form.poll.remove_option": "Olib tashlash", + "compose_form.poll.switch_to_multiple": "Bir nechta tanlovga ruxsat berish uchun so'rovnomani o'zgartirish", + "compose_form.poll.switch_to_single": "Yagona tanlovga ruxsat berish uchun so‘rovnomani o‘zgartirish", + "compose_form.publish": "Nashr qilish", + "compose_form.publish_form": "Nashr qilish", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "O‘zgarishlarni saqlash", + "compose_form.sensitive.hide": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}", + "compose_form.sensitive.marked": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}", + "compose_form.spoiler.marked": "Kontent ogohlantirishini olib tashlang", + "compose_form.spoiler.unmarked": "Kontent haqida ogohlantirish qo'shing", + "compose_form.spoiler_placeholder": "Sharhingizni bu erga yozing", + "confirmation_modal.cancel": "Bekor qilish", + "confirmations.block.block_and_report": "Bloklash va hisobot berish", + "confirmations.block.confirm": "Bloklash", + "confirmations.block.message": "Haqiqatan ham {name}ni bloklamoqchimisiz?", + "confirmations.cancel_follow_request.confirm": "Bekor qilish", + "confirmations.cancel_follow_request.message": "Haqiqatan ham {name}ga obuna boʻlish soʻrovingizni qaytarib olmoqchimisiz?", + "confirmations.delete.confirm": "Oʻchirish", + "confirmations.delete.message": "Haqiqatan ham bu postni oʻchirib tashlamoqchimisiz?", + "confirmations.delete_list.confirm": "Oʻchirish", + "confirmations.delete_list.message": "Haqiqatan ham bu roʻyxatni butunlay oʻchirib tashlamoqchimisiz?", + "confirmations.discard_edit_media.confirm": "Bekor qilish", + "confirmations.discard_edit_media.message": "Sizda media tavsifi yoki oldindan ko‘rishda saqlanmagan o‘zgarishlar bor, ular baribir bekor qilinsinmi?", + "confirmations.domain_block.confirm": "Butun domenni bloklash", + "confirmations.domain_block.message": "Haqiqatan ham, {domain} ni butunlay bloklamoqchimisiz? Ko'pgina hollarda bir nechta maqsadli bloklar yoki ovozni o'chirish etarli va afzaldir. Siz oʻsha domendagi kontentni hech qanday umumiy vaqt jadvallarida yoki bildirishnomalaringizda koʻrmaysiz. Bu domendagi obunachilaringiz olib tashlanadi.", + "confirmations.logout.confirm": "Chiqish", + "confirmations.logout.message": "Chiqishingizga aminmisiz?", + "confirmations.mute.confirm": "Ovozsiz", + "confirmations.mute.explanation": "Bu ulardagi postlar va ular haqida eslatib o'tilgan postlarni yashiradi, ammo bu ularga sizning postlaringizni ko'rish va sizni kuzatish imkonini beradi.", + "confirmations.mute.message": "Haqiqatan ham {name} ovozini o‘chirib qo‘ymoqchimisiz?", + "confirmations.redraft.confirm": "O'chirish va qayta loyihalash", + "confirmations.redraft.message": "Haqiqatan ham bu postni o‘chirib tashlab, uni qayta loyihalashni xohlaysizmi? Sevimlilar va yuksalishlar yo'qoladi va asl postga javoblar yetim qoladi.", + "confirmations.reply.confirm": "Javob berish", + "confirmations.reply.message": "Hozir javob bersangiz, hozir yozayotgan xabaringiz ustidan yoziladi. Davom etishni xohlaysizmi?", + "confirmations.unfollow.confirm": "Kuzatishni To'xtatish", + "confirmations.unfollow.message": "Haqiqatan ham {name} obunasini bekor qilmoqchimisiz?", + "conversation.delete": "Suhbatni o'chirish", + "conversation.mark_as_read": "O'qilgan deb belgilang", + "conversation.open": "Suhbatni ko'rish", + "conversation.with": "{names} bilan", + "copypaste.copied": "Ko‘chirildi", + "copypaste.copy": "Nusxa olish", + "directory.federated": "Faqat bilingan fediversdan", + "directory.local": "Faqat {domain}dan", + "directory.new_arrivals": "Yangi kelganlar", + "directory.recently_active": "Yaqinda faol", + "disabled_account_banner.account_settings": "Profil sozlamalari", + "disabled_account_banner.text": "{disabledAccount} hisobingiz hozirda oʻchirib qoʻyilgan.", + "dismissable_banner.community_timeline": "Bular akkauntlari {domain} tomonidan joylashtirilgan odamlarning eng soʻnggi ochiq postlari.", + "dismissable_banner.dismiss": "Bekor qilish", + "dismissable_banner.explore_links": "Ushbu yangiliklar haqida hozirda markazlashtirilmagan tarmoqning ushbu va boshqa serverlarida odamlar gaplashmoqda.", + "dismissable_banner.explore_statuses": "Markazlashtirilmagan tarmoqdagi ushbu va boshqa serverlarning ushbu xabarlari hozirda ushbu serverda qiziqish uyg'otmoqda.", + "dismissable_banner.explore_tags": "Ushbu hashtaglar hozirda markazlashtirilmagan tarmoqning ushbu va boshqa serverlarida odamlar orasida qiziqish uyg'otmoqda.", + "dismissable_banner.public_timeline": "Bular ushbu va markazlashtirilmagan tarmoqning boshqa serverlaridagi odamlarning ushbu serverga ma'lum bo'lgan eng so'nggi ommaviy xabarlari.", + "embed.instructions": "Quyidagi kodni nusxalash orqali ushbu postni veb-saytingizga joylashtiring.", + "embed.preview": "Bu qanday ko'rinishda bo'ladi:", + "emoji_button.activity": "Faoliyat", + "emoji_button.clear": "Tozalash", + "emoji_button.custom": "Boshqa", + "emoji_button.flags": "Belgilar", + "emoji_button.food": "Ovqat va Ichimlik", + "emoji_button.label": "Emoji kiritish", + "emoji_button.nature": "Tabiat", + "emoji_button.not_found": "Mos emoji topilmadi", + "emoji_button.objects": "Ob'ektlar", + "emoji_button.people": "Odamlar", + "emoji_button.recent": "Ko'p ishlatilgan", + "emoji_button.search": "Izlash...", + "emoji_button.search_results": "Qidiruv natijalari", + "emoji_button.symbols": "Belgilar", + "emoji_button.travel": "Sayohat va Joylar", + "empty_column.account_suspended": "Hisob to‘xtatildi", + "empty_column.account_timeline": "Bu yerda post yo'q!", + "empty_column.account_unavailable": "Profil mavjud emas", + "empty_column.blocks": "Siz hali hech qanday foydalanuvchini bloklamagansiz.", + "empty_column.bookmarked_statuses": "Sizda hali xatcho‘p qo‘yilgan postlar yo‘q. Biriga xatcho‘p qo‘ysangiz, u shu yerda ko‘rinadi.", + "empty_column.community": "Mahalliy vaqt jadvali boʻsh. To'pni aylantirish uchun hammaga ochiq narsa yozing!", + "empty_column.direct": "Sizda hali hech qanday to‘g‘ridan-to‘g‘ri xabar yo‘q. Siz yuborganingizda yoki qabul qilganingizda, u shu yerda ko'rinadi.", + "empty_column.domain_blocks": "Hali bloklangan domenlar mavjud emas.", + "empty_column.explore_statuses": "Hozir hech narsa trendda emas. Keyinroq tekshiring!", + "empty_column.favourited_statuses": "Sizda hali sevimli postlar yoʻq. Sizga yoqqanida, u shu yerda chiqadi.", + "empty_column.favourites": "Bu postni hali hech kim yoqtirmagan. Kimdir buni qilsa, ular shu yerda paydo bo'ladi.", + "empty_column.follow_recommendations": "Siz uchun hech qanday taklif yaratilmaganga o‘xshaydi. Siz tanish bo'lgan odamlarni qidirish yoki trendli hashtaglarni o'rganish uchun qidiruvdan foydalanib ko'rishingiz mumkin.", + "empty_column.follow_requests": "Sizda hali kuzatuv soʻrovlari yoʻq. Bittasini olganingizda, u shu yerda paydo bo'ladi.", + "empty_column.followed_tags": "Siz hali hech qanday hashtagga amal qilmagansiz. Qachonki, ular shu yerda paydo bo'ladi.", + "empty_column.hashtag": "Ushbu hashtagda hali hech narsa yo'q.", + "empty_column.home": "Bosh sahifa yilnomangiz boʻsh! Uni to'ldirish uchun ko'proq odamlarni kuzatib boring. {suggestions}", + "empty_column.home.suggestions": "Ba'zi takliflarni ko'ring", + "empty_column.list": "Bu ro'yxatda hali hech narsa yo'q. Ushbu roʻyxat aʼzolari yangi xabarlarni nashr qilganda, ular shu yerda paydo boʻladi.", + "empty_column.lists": "Sizda hali hech qanday roʻyxat yoʻq. Uni yaratganingizda, u shu yerda paydo bo'ladi.", + "empty_column.mutes": "Siz hali hech bir foydalanuvchining ovozini o‘chirmagansiz.", + "empty_column.notifications": "Sizda hali hech qanday bildirishnoma yo‘q. Boshqa odamlar siz bilan muloqot qilganda, buni shu yerda ko'rasiz.", + "empty_column.public": "Bu erda hech narsa yo'q! Biror narsani ochiq yozing yoki uni toʻldirish uchun boshqa serverlardagi foydalanuvchilarni qoʻlda kuzatib boring", + "error.unexpected_crash.explanation": "Kodimizdagi xatolik yoki brauzer mosligi muammosi tufayli bu sahifani toʻgʻri koʻrsatib boʻlmadi.", + "error.unexpected_crash.explanation_addons": "Bu sahifani toʻgʻri koʻrsatib boʻlmadi. Bu xato brauzer qoʻshimchasi yoki avtomatik tarjima vositalaridan kelib chiqqan boʻlishi mumkin.", + "error.unexpected_crash.next_steps": "Sahifani yangilab ko‘ring. Agar bu yordam bermasa, siz boshqa brauzer yoki mahalliy ilova orqali Mastodondan foydalanishingiz mumkin.", + "error.unexpected_crash.next_steps_addons": "Ularni o'chirib ko'ring va sahifani yangilang. Agar bu yordam bermasa, siz boshqa brauzer yoki mahalliy ilova orqali Mastodondan foydalanishingiz mumkin.", + "errors.unexpected_crash.copy_stacktrace": "Stacktrace-ni vaqtinchalik xotiraga nusxalash", + "errors.unexpected_crash.report_issue": "Muammo haqida xabar berish", + "explore.search_results": "Qidiruv natijalari", + "explore.suggested_follows": "Siz uchun", + "explore.title": "Ko'rib chiqish", + "explore.trending_links": "Yangiliklar", + "explore.trending_statuses": "Postlar", + "explore.trending_tags": "Hashteglar", + "filter_modal.added.context_mismatch_explanation": "Ushbu filtr toifasi siz ushbu postga kirgan kontekstga taalluqli emas. Agar siz post ham shu kontekstda filtrlanishini istasangiz, filtrni tahrirlashingiz kerak bo'ladi.", + "filter_modal.added.context_mismatch_title": "Kontekst mos kelmadi!", + "filter_modal.added.expired_explanation": "Ushbu filtr toifasi muddati tugagan, uni qo‘llash uchun amal qilish muddatini o‘zgartirishingiz kerak bo‘ladi.", + "filter_modal.added.expired_title": "Muddati tugagan filtr!", + "filter_modal.added.review_and_configure": "Ushbu filtr toifasini koʻrib chiqish va sozlash uchun {settings_link} sahifasiga oʻting.", + "filter_modal.added.review_and_configure_title": "Filtr sozlamalari", + "filter_modal.added.settings_link": "sozlamalar sahifasi", + "filter_modal.added.short_explanation": "Bu post quyidagi filtr turkumiga qo‘shildi: {title}.", + "filter_modal.added.title": "Filter qo'shildi!", + "filter_modal.select_filter.context_mismatch": "ushbu kontekstga taalluqli emas", + "filter_modal.select_filter.expired": "muddati tugagan", + "filter_modal.select_filter.prompt_new": "Yangi turkum: {name}", + "filter_modal.select_filter.search": "Qidiring yoki yarating", + "filter_modal.select_filter.subtitle": "Mavjud toifadan foydalaning yoki yangisini yarating", + "filter_modal.select_filter.title": "Ushbu postni filtrlang", + "filter_modal.title.status": "Postni filtrlash", + "follow_recommendations.done": "Tayyor", + "follow_recommendations.heading": "Xabarlarni ko'rishni istagan odamlarni kuzatib boring! Bu erda ba'zi takliflar mavjud.", + "follow_recommendations.lead": "Siz kuzatayotgan odamlarning postlari uy tasmangizda xronologik tartibda ko‘rsatiladi. Xato qilishdan qo'rqmang, istalgan vaqtda odamlarni kuzatishdan osongina voz kechishingiz mumkin!", + "follow_request.authorize": "Ruxsat berish", + "follow_request.reject": "Rad etish", + "follow_requests.unlocked_explanation": "Hisobingiz bloklanmagan boʻlsa ham, {domain} xodimlari ushbu hisoblardan kuzatuv soʻrovlarini qoʻlda koʻrib chiqishingiz mumkin deb oʻylashdi.", + "followed_tags": "Kuzatilgan hashtaglar", + "footer.about": "Haqida", + "footer.directory": "Profillar katalogi", + "footer.get_app": "Ilovani yuklab oling", + "footer.invite": "Odamlarni taklif qilish", + "footer.keyboard_shortcuts": "Klaviatura yorliqlari", + "footer.privacy_policy": "Maxfiylik siyosati", + "footer.source_code": "Kodini ko'rish", + "generic.saved": "Saqlandi", + "getting_started.heading": "Ishni boshlash", + "hashtag.column_header.tag_mode.all": "va {additional}", + "hashtag.column_header.tag_mode.any": "yoki {additional}", + "hashtag.column_header.tag_mode.none": "{additional}siz", + "hashtag.column_settings.select.no_options_message": "Hech qanday taklif topilmadi", + "hashtag.column_settings.select.placeholder": "Hashtaglarni kiriting…", + "hashtag.column_settings.tag_mode.all": "Bularning hammasi", + "hashtag.column_settings.tag_mode.any": "Bularning har biri", + "hashtag.column_settings.tag_mode.none": "Bularning hech biri", + "hashtag.column_settings.tag_toggle": "Ushbu ustun uchun qo'shimcha teglarni qo'shing", + "hashtag.follow": "Hashtagni kuzatish", + "hashtag.unfollow": "Hashtagni kuzatishni to'xtatish", + "home.column_settings.basic": "Asos", + "home.column_settings.show_reblogs": "Boostlarni ko'rish", + "home.column_settings.show_replies": "Javoblarni ko'rish", + "home.hide_announcements": "E'lonlarni yashirish", + "home.show_announcements": "E'lonlarni ko'rsatish", + "interaction_modal.description.favourite": "Mastodonda akkaunt bilan siz muallifga buni qadrlayotganingizni bildirish uchun ushbu postni yoqtirishingiz va keyinroq saqlashingiz mumkin.", + "interaction_modal.description.follow": "Mastodon’da akkauntga ega bo‘lgan holda, siz {name} ga obuna bo‘lib, ularning postlarini bosh sahifangizga olishingiz mumkin.", + "interaction_modal.description.reblog": "Mastodon-dagi akkaunt yordamida siz ushbu postni o'z izdoshlaringiz bilan baham ko'rish uchun oshirishingiz mumkin.", + "interaction_modal.description.reply": "Mastodondagi akkaunt bilan siz ushbu xabarga javob berishingiz mumkin.", + "interaction_modal.on_another_server": "Boshqa serverda", + "interaction_modal.on_this_server": "Shu serverda", + "interaction_modal.other_server_instructions": "Ushbu URL manzilidan nusxa ko‘chiring va sevimli Mastodon ilovangizning qidirish maydoniga yoki Mastodon serveringiz veb-interfeysiga joylashtiring.", + "interaction_modal.preamble": "Mastodon markazlashtirilmaganligi sababli, boshqa Mastodon serverida joylashgan mavjud hisob qaydnomangizdan yoki bu serverda akkauntingiz bo'lmasa, unga mos platformadan foydalanishingiz mumkin.", + "interaction_modal.title.favourite": "{name} posti yoqdi", + "interaction_modal.title.follow": "{name} ga ergashing", + "interaction_modal.title.reblog": "{name}ning postini boost qilish", + "interaction_modal.title.reply": "{name} postiga javob bering", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "Orqaga qaytish", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "Postni boost qilish", + "keyboard_shortcuts.column": "Fokus ustuni", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Tavsif", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "Yozuvni ochish", + "keyboard_shortcuts.favourite": "Yozuv yoqdi", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.hotkey": "Qaynoq klavishlar", + "keyboard_shortcuts.legend": "Ushbu afsonani ko'rsatish", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "Profilingizni ochish", + "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.open_media": "Mediani ochish", + "keyboard_shortcuts.pinned": "Qattiqlangan postlar roʻyxatini oching", + "keyboard_shortcuts.profile": "Muallif profilini ochish", + "keyboard_shortcuts.reply": "Postga javob berish", + "keyboard_shortcuts.requests": "Kuzatuv soʻrovlari roʻyxatini ochish", + "keyboard_shortcuts.search": "Qidiruv paneliga fokus", + "keyboard_shortcuts.spoilers": "CW maydonini ko'rsatish/yashirish", + "keyboard_shortcuts.start": "\"Boshlash\" ustunini oching", + "keyboard_shortcuts.toggle_hidden": "CW orqasida matnni ko'rsatish/yashirish", + "keyboard_shortcuts.toggle_sensitivity": "Mediani ko'rsatish/yashirish", + "keyboard_shortcuts.toot": "Yangi post boshlang", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "Roʻyxatda yuqoriga koʻtarish", + "lightbox.close": "Yopish", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Next", + "lightbox.previous": "Previous", + "limited_account_hint.action": "Baribir profilni ko'rsatish", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Ro‘yxatga qo‘shish", + "lists.account.remove": "Roʻyxatdan o'chirish", + "lists.delete": "Roʻyxatni o'chirish", + "lists.edit": "Roʻyxatni tahrirlash", + "lists.edit.submit": "Change title", + "lists.new.create": "Ro‘yxatga qo‘shish", + "lists.new.title_placeholder": "New list title", + "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.list": "Ro'yxat a'zolari", + "lists.replies_policy.none": "Hech kim", + "lists.replies_policy.title": "Javoblarni ko'rsatish:", + "lists.search": "Siz kuzatadigan odamlar orasidan qidiring", + "lists.subheading": "Sizning ro'yxatlaringiz", + "load_pending": "{count, plural, one {# yangi element} other {# yangi elementlar}}", + "loading_indicator.label": "Yuklanmoqda...", + "media_gallery.toggle_visible": "{number, plural, one {Rasmni yashirish} other {Rasmlarni yashirish}}", + "missing_indicator.label": "Topilmadi", + "missing_indicator.sublabel": "Bu resurs topilmadi", + "moved_to_account_banner.text": "{movedToAccount} hisobiga koʻchganingiz uchun {disabledAccount} hisobingiz hozirda oʻchirib qoʻyilgan.", + "mute_modal.duration": "Davomiyligi", + "mute_modal.hide_notifications": "Bu foydalanuvchidan bildirishnomalar berkitilsinmi?", + "mute_modal.indefinite": "Cheksiz", + "navigation_bar.about": "Haqida", + "navigation_bar.blocks": "Bloklangan foydalanuvchilar", + "navigation_bar.bookmarks": "Xatcho‘plar", + "navigation_bar.community_timeline": "Mahalliy", + "navigation_bar.compose": "Yangi post yozing", + "navigation_bar.direct": "To'g'ridan-to'g'ri xabarlar", + "navigation_bar.discover": "Kashf qilish", + "navigation_bar.domain_blocks": "Bloklangan domenlar", + "navigation_bar.edit_profile": "Profilni tahrirlash", + "navigation_bar.explore": "O‘rganish", + "navigation_bar.favourites": "Sevimlilar", + "navigation_bar.filters": "E'tiborga olinmagan so'zlar", + "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.followed_tags": "Kuzatilgan hashtaglar", + "navigation_bar.follows_and_followers": "Kuzatuvchilar va izdoshlar", + "navigation_bar.lists": "Ro‘yxat", + "navigation_bar.logout": "Chiqish", + "navigation_bar.mutes": "Ovozsiz foydalanuvchilar", + "navigation_bar.personal": "Shaxsiy", + "navigation_bar.pins": "Belgilangan postlar", + "navigation_bar.preferences": "Sozlamalar", + "navigation_bar.public_timeline": "Federatsiyalangan vaqt jadvali", + "navigation_bar.search": "Izlash", + "navigation_bar.security": "Xavfsizlik", + "not_signed_in_indicator.not_signed_in": "Ushbu manbaga kirish uchun tizimga kirishingiz kerak.", + "notification.admin.report": "{name} reported {target}", + "notification.admin.sign_up": "{name} signed up", + "notification.favourite": "{name} favourited your status", + "notification.follow": "{name} followed you", + "notification.follow_request": "{name} has requested to follow you", + "notification.mention": "{name} mentioned you", + "notification.own_poll": "So‘rovingiz tugadi", + "notification.poll": "Siz ovoz bergan soʻrovnoma yakunlandi", + "notification.reblog": "{name} boosted your status", + "notification.status": "{name} just posted", + "notification.update": "{name} edited a post", + "notifications.clear": "Clear notifications", + "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.alert": "Desktop notifications", + "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Show in column", + "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.status": "New posts:", + "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.update": "Edits:", + "notifications.filter.all": "All", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favourites", + "notifications.filter.follows": "Follows", + "notifications.filter.mentions": "Mentions", + "notifications.filter.polls": "Poll results", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Closed", + "poll.refresh": "Refresh", + "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.vote": "Vote", + "poll.voted": "You voted for this answer", + "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.short": "Direct", + "privacy.private.long": "Visible for followers only", + "privacy.private.short": "Followers-only", + "privacy.public.long": "Visible for all", + "privacy.public.short": "Public", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Refresh", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "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.minutes": "{number, plural, one {# minute} other {# minutes}} ago", + "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.hours": "{number}h", + "relative_time.just_now": "now", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "today", + "reply_indicator.cancel": "Cancel", + "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.categories.spam": "Spam", + "report.categories.violation": "Content violates one or more server rules", + "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.forward": "Forward to {target}", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "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.placeholder": "Type or paste additional comments", + "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.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "Hashtags", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Posts", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "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.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.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also 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.cancel_reblog_private": "Unboost", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Delete", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Direct message @{name}", + "status.edit": "Edit", + "status.edited": "Edited {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.embed": "Embed", + "status.favourite": "Favourite", + "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.load_more": "Load more", + "status.media_hidden": "Media hidden", + "status.mention": "Mention @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Expand this status", + "status.pin": "Pin on profile", + "status.pinned": "Pinned post", + "status.read_more": "Read more", + "status.reblog": "Boost", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Delete & re-draft", + "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", + "status.reply": "Reply", + "status.replyAll": "Reply to thread", + "status.report": "Report @{name}", + "status.sensitive_warning": "Sensitive content", + "status.share": "Share", + "status.show_filter_reason": "Show anyway", + "status.show_less": "Show less", + "status.show_less_all": "Show less for all", + "status.show_more": "Show more", + "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.uncached_media_warning": "Not available", + "status.unmute_conversation": "Unmute conversation", + "status.unpin": "Unpin from profile", + "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.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Home", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Notifications", + "time_remaining.days": "{number, plural, one {# day} other {# days}} left", + "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", + "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.resources.followers": "Followers", + "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.statuses": "Older posts", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Trending now", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people who are hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Delete", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Choose image", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Full screen", + "video.hide": "Hide video", + "video.mute": "Mute sound", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Unmute sound" +} diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 6630116338..0798d7b26c 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1,7 +1,7 @@ { "about.blocks": "Giới hạn chung", "about.contact": "Liên lạc:", - "about.disclaimer": "Mastodon là phần mềm tự do mã nguồn mở, một thương hiệu của Mastodon gGmbH.", + "about.disclaimer": "Mastodon là phần mềm tự do nguồn mở của Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Lý do không được cung cấp", "about.domain_blocks.preamble": "Mastodon cho phép bạn tương tác nội dung và giao tiếp với mọi người từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng.", "about.domain_blocks.silenced.explanation": "Nói chung, bạn sẽ không thấy người và nội dung từ máy chủ này, trừ khi bạn tự tìm kiếm hoặc tự theo dõi.", @@ -222,7 +222,7 @@ "empty_column.follow_recommendations": "Bạn chưa có gợi ý theo dõi nào. Hãy thử tìm kiếm những người thú vị hoặc khám phá những hashtag nổi bật.", "empty_column.follow_requests": "Bạn chưa có yêu cầu theo dõi nào.", "empty_column.followed_tags": "Bạn chưa theo dõi hashtag nào. Khi bạn theo dõi, chúng sẽ hiện lên ở đây.", - "empty_column.hashtag": "Chưa có bài đăng nào dùng hashtag này.", + "empty_column.hashtag": "Chưa có tút nào dùng hashtag này.", "empty_column.home": "Bảng tin của bạn đang trống! Hãy theo dõi nhiều người hơn. {suggestions}", "empty_column.home.suggestions": "Gợi ý dành cho bạn", "empty_column.list": "Chưa có tút. Khi những người trong danh sách này đăng tút mới, chúng sẽ xuất hiện ở đây.", diff --git a/app/javascript/mastodon/locales/whitelist_csb.json b/app/javascript/mastodon/locales/whitelist_csb.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_csb.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_uz.json b/app/javascript/mastodon/locales/whitelist_uz.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_uz.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 40858cd71f..ea1ae3179d 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.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": "从列表中添加或移除", @@ -127,9 +127,9 @@ "compose.language.change": "更改语言", "compose.language.search": "搜索语言...", "compose_form.direct_message_warning_learn_more": "了解详情", - "compose_form.encryption_warning": "Mastodon 上的嘟文并未端到端加密。请不要在 Mastodon 上分享敏感信息。", + "compose_form.encryption_warning": "Mastodon 上的嘟文未经端到端加密。请勿在 Mastodon 上分享敏感信息。", "compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。", - "compose_form.lock_disclaimer": "你的帐户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。", + "compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。", "compose_form.lock_disclaimer.lock": "开启保护", "compose_form.placeholder": "在想些什么?", "compose_form.poll.add_option": "添加一个选项", @@ -221,7 +221,7 @@ "empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。", "empty_column.follow_recommendations": "似乎无法为你生成任何建议。你可以尝试使用搜索寻找你可能知道的人或探索热门标签。", "empty_column.follow_requests": "你没有收到新的关注请求。收到后将显示在此。", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "您还没有关注任何话题标签。 当您关注后,它们会出现在这里。", "empty_column.hashtag": "这个话题标签下暂时没有内容。", "empty_column.home": "你的主页时间线是空的!快去关注更多人吧。 {suggestions}", "empty_column.home.suggestions": "查看一些建议", @@ -264,7 +264,7 @@ "follow_request.authorize": "授权", "follow_request.reject": "拒绝", "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。", - "followed_tags": "Followed hashtags", + "followed_tags": "关注的话题标签", "footer.about": "关于", "footer.directory": "用户目录", "footer.get_app": "获取应用程序", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 3c3248008c..63ee6ec6bc 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -160,7 +160,7 @@ "confirmations.delete_list.message": "您確定要永久刪除此列表?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?", - "confirmations.domain_block.confirm": "隱藏整個域名", + "confirmations.domain_block.confirm": "封鎖整個域名", "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳號能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "您確定要登出嗎?", @@ -375,7 +375,7 @@ "navigation_bar.compose": "撰寫新嘟文", "navigation_bar.direct": "私訊", "navigation_bar.discover": "探索", - "navigation_bar.domain_blocks": "隱藏的網域", + "navigation_bar.domain_blocks": "已封鎖的網域", "navigation_bar.edit_profile": "編輯個人檔案", "navigation_bar.explore": "探索", "navigation_bar.favourites": "最愛", diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml index d7243d09af..17d0720d5a 100644 --- a/config/locales/activerecord.ca.yml +++ b/config/locales/activerecord.ca.yml @@ -36,7 +36,7 @@ ca: status: attributes: reblog: - taken: del tut que ja existeix + taken: de la publicació ja existeix user: attributes: email: diff --git a/config/locales/activerecord.csb.yml b/config/locales/activerecord.csb.yml new file mode 100644 index 0000000000..0de706e41f --- /dev/null +++ b/config/locales/activerecord.csb.yml @@ -0,0 +1 @@ +csb: diff --git a/config/locales/activerecord.uz.yml b/config/locales/activerecord.uz.yml new file mode 100644 index 0000000000..ed13813d1c --- /dev/null +++ b/config/locales/activerecord.uz.yml @@ -0,0 +1,55 @@ +--- +uz: + activerecord: + attributes: + poll: + expires_at: Tugatish muddati + options: Tanlovlar + user: + agreement: Foydalanish shartnomasi + email: E-mail + locale: Mahalliy + password: Parol + user/account: + username: Foydalanuvchi nomi + user/invite_request: + text: Sabab + errors: + models: + account: + attributes: + username: + invalid: faqat harflar, raqamlar va pastki chiziqdan iborat bo'lishi kerak + reserved: rezervlangan + admin/webhook: + attributes: + url: + invalid: haqiqiy URL emas + doorkeeper/application: + attributes: + website: + invalid: haqiqiy URL emas + import: + attributes: + data: + malformed: noto'g'ri shakllangan + status: + attributes: + reblog: + taken: post allaqachon mavjud + user: + attributes: + email: + blocked: ruxsat etilmagan elektron pochta provayderidan foydalangan + unreachable: mavjud emasga o'xshaydi + role_id: + elevated: sizning hozirgi rolingizdan yuqori bo'lishi mumkin emas + user_role: + attributes: + permissions_as_keys: + dangerous: asosiy rol uchun xavfsiz bo'lmagan ruxsatlarni o'z ichiga oladi + elevated: joriy rolingiz ega bo'lmagan ruxsatlarni o'z ichiga olmaydi + own_role: sizning hozirgi rolingizdan yuqori bo'lishi mumkin emas + position: + elevated: sizning hozirgi rolingizdan yuqori bo'lishi mumkin emas + own_role: joriy rolingiz bilan o‘zgartirib bo‘lmaydi diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 2d552ae9bd..ad2797592f 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -438,6 +438,7 @@ ar: private_comment_description_html: 'لمساعدتك على تتبع سبب حظر النطاقات المستوردة، سيتم إنشاء الحظر مع التعليق الخاص التالي: %{comment}' private_comment_template: تم الاستيراد من %{source} بتاريخ %{date} title: استيراد قامة النطاقات المحظورة + invalid_domain_block: 'تم تخطي حجب نطاق أو أكثر بسبب الأخطاء التالية: %{error}' new: title: استيراد قامة النطاقات المحظورة no_file: لم يتم تحديد أيّ ملف @@ -452,6 +453,13 @@ ar: instances: availability: failure_threshold_reached: تم الوصول إلى أقصى حد للفشل بتاريخ %{date}. + failures_recorded: + few: المحاولات الفاشلة في %{count} يومًا. + many: المحاولات الفاشلة في %{count} يوم مختلف. + one: محاولة فاشلة في يوم %{count} واحد. + other: المحاولات الفاشلة في %{count} أيام مختلفة. + two: المحاولات الفاشلة في يَومين %{count}. + zero: ليس هناك أية محاولة فاشلة في %{count} يوم. no_failures_recorded: لم يتم العثور على أي فشل. title: التوفر warning: فشلت المحاولة الأخيرة للاتصال بهذا النطاق @@ -585,6 +593,7 @@ ar: comment: none: لا شيء comment_description_html: 'لتوفير المزيد من المعلومات، كتب %{name}:' + confirm_action: تأكيد اتخاذ إجراء إشراف على @%{acct} created_at: ذكرت delete_and_resolve: احذف المنشورات forwarded: أُعيد توجيهه @@ -601,6 +610,7 @@ ar: placeholder: قم بوصف الإجراءات التي تم اتخاذها أو أي تحديثات أخرى ذات علاقة... title: الملاحظات notes_description_html: عرض الملاحظات وتركها للمشرفين الآخرين ولنفسك في المستقبل + processed_msg: 'تمت معالجة التقرير #%{id} بنجاح' quick_actions_description_html: 'قم بإجراء سريع أو التمرير للأسفل لرؤية المحتوى المبلغ عنه:' remote_user_placeholder: المستخدم البعيد من %{instance} reopen: إعادة فتح الشكوى @@ -613,9 +623,17 @@ ar: status: الحالة statuses: المحتوى المبلغ عنه statuses_description_html: سيشار إلى المحتوى المخالف في الاتصال بالحساب المبلغ عنه + summary: + actions: + delete_html: إزالة المنشورات المُخالِفة + mark_as_sensitive_html: تصنيف وسائط المنشورات المُخالفة كحساسة + close_report: 'تصنيف التقرير #%{id} كإبلاغ تمت معالجته' + send_email_html: إرسال بريد إلكتروني تحذيري إلى @%{acct} + warning_placeholder: مبررات إضافية اختيارية لإجراء الإشراف. target_origin: مصدر الحساب المبلغ عنه title: الشكاوى unassign: إلغاء تعيين + unknown_action_msg: 'إجراء غير معروف: %{action}' unresolved: غير معالجة updated_at: محدث view_profile: اعرض الصفحة التعريفية @@ -928,6 +946,8 @@ ar: auth: apply_for_account: اطلُب حسابًا change_password: الكلمة السرية + confirmations: + wrong_email_hint: إذا كان عنوان البريد الإلكتروني هذا غير صحيح، يمكنك تغييره في إعدادات الحساب. delete_account: حذف الحساب delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا. سوف يُطلَبُ منك التأكيد قبل الحذف. description: @@ -1126,6 +1146,13 @@ ar: empty: ليست لديك أية عوامل تصفية. expires_in: تنتهي مدة صلاحيتها في غضون %{distance} expires_on: تنتهي مدة صلاحيتها في %{date} + keywords: + few: "%{count} كلمة مفتاحية" + many: "%{count} كلمة مفتاحية" + one: كلمة مفتاحية %{count} واحدة + other: "%{count} كلمة مفتاحية" + two: كلمتان مفتاحيتان %{count} + zero: "%{count} كلمة مفتاحية" title: عوامل التصفية new: save: حفظ عامل التصفية الجديد @@ -1347,6 +1374,7 @@ ar: activity: نشاط الحساب confirm_follow_selected_followers: هل أنت متأكد من أنك تريد متابعة المتابِعين المحددين؟ confirm_remove_selected_followers: هل أنت متأكد من أنك تريد إزالة المتابِعين المحددين؟ + confirm_remove_selected_follows: هل أنت متيقِّن من أنك تريد إزالة الاشتراكات المحدَّدة؟ dormant: في سبات follow_selected_followers: متابَعة المتابِعين المحددين followers: المتابِعون diff --git a/config/locales/be.yml b/config/locales/be.yml index 7cae109f5e..18ec633767 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -457,6 +457,7 @@ be: private_comment_description_html: 'Каб дапамагчы вам адсочваць, адкуль паходзяць імпартаваныя блокі, імпартаваныя блокі будуць створаны з наступным прыватным каментарыем: %{comment}' private_comment_template: Імпартавана з %{source} %{date} title: Імпарт блакіровак дамену + invalid_domain_block: 'Адзін ці больш даменных блокаў былі прапушчаны праз наступную(-ыя) памылку(-і): %{error}' new: title: Імпарт блакіровак дамену no_file: Файл не выбраны @@ -629,6 +630,7 @@ be: placeholder: Апішыце, якія дзеянні былі зроблены, або любыя іншыя звязаныя абнаўленні... title: Нататкі notes_description_html: Праглядвайце і пакідайце нататкі іншым мадэратарам і сабе ў будучыні + processed_msg: 'Скарга #%{id} паспяхова апрацавана' quick_actions_description_html: 'Выканайце хуткае дзеянне або пракруціце ўніз, каб убачыць змесціва, на якое пададзена скарга:' remote_user_placeholder: аддалены карыстальнік з %{instance} reopen: Пераадкрыць скаргу @@ -641,6 +643,8 @@ be: status: Стан statuses: Змесціва, на якое паскардзіліся statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга + summary: + close_report: 'Пазначыць скаргу #%{id} як вырашаную' target_origin: Крыніца уліковага запісу на які пададзена скарга title: Скаргі unassign: Скінуць @@ -979,6 +983,8 @@ be: auth: apply_for_account: Пакінуць заяўку change_password: Пароль + confirmations: + wrong_email_hint: Калі гэты адрас электроннай пошты памылковы, вы можаце змяніць яго ў наладах уліковага запісу. delete_account: Выдаліць уліковы запіс delete_account_html: Калі вы жадаеце выдаліць ваш уліковы запіс, можаце працягнуць тут. Ад вас будзе запатрабавана пацвярджэнне. description: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index e0970485d3..616f8de17f 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -211,11 +211,11 @@ ca: reopen_report: Reobre l'informe resend_user: Torna a enviar el correu de confirmació reset_password_user: Restableix la contrasenya - resolve_report: Resolt l'informe + resolve_report: Resol l'informe sensitive_account: Marcar els mèdia en el teu compte com a sensibles silence_account: Silencia el compte suspend_account: Suspèn el compte - unassigned_report: Des-assigna l'informe + unassigned_report: Desassigna l'informe unblock_email_account: Desbloqueja l'adreça de correu unsensitive_account: Desmarcar els mèdia en el teu compte com a sensibles unsilence_account: Desfés el silenci del compte @@ -229,7 +229,7 @@ ca: actions: approve_appeal_html: "%{name} ha aprovat l'apel·lació a la decisió de moderació de %{target}" approve_user_html: "%{name} ha aprovat el registre de %{target}" - assigned_to_self_report_html: "%{name} han assignat l'informe %{target} a ells mateixos" + assigned_to_self_report_html: "%{name} s'han assignat l'informe %{target} a ells mateixos" change_email_user_html: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}" change_role_user_html: "%{name} ha canviat el rol de %{target}" confirm_user_html: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}" @@ -441,6 +441,7 @@ ca: private_comment_description_html: 'Per a ajudar-te a fer un seguiment d''on provenen els bloquejos importats, es crearan amb el següent comentari privat: %{comment}' private_comment_template: Importar des de %{source} el %{date} title: Importa dominis bloquejats + invalid_domain_block: 'Un o més dominis blocats s''han omés degut al següent error(s): %{error}' new: title: Importa dominis bloquejats no_file: No s'ha seleccionat cap fitxer @@ -573,23 +574,24 @@ ca: actions: 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à. + other_description_html: Veu més opcions controlant el comportament del compte i personalitza la comunicació al compte denunciat. + resolve_description_html: No serà presa cap acció contra el compte denunciat, no se'n registrarà res i l'informe es tancarà. silence_description_html: El compte només serà visible a qui ja el seguia o l'ha cercat manualment, limitant-ne fortament l'abast. Sempre es pot revertir. Es tancaran tots els informes contra aquest compte. suspend_description_html: Aquest compte i tots els seus continguts seran inaccessibles i finalment eliminats, i interaccionar amb ell no serà possible. Reversible en 30 dies. Tanca tots els informes contra aquest compte. - actions_description_html: Decideix quina acció a prendre per a resoldre aquest informe. Si prens un acció punitiva contra el compte reportat, se li enviarà una notificació per correu electrònic, excepte quan la categoria Spam és seleccionada. + actions_description_html: Decideix quina acció a prendre per a resoldre aquest informe. Si prens un acció punitiva contra el compte denunciat, se li enviarà una notificació per correu electrònic, excepte quan se selecciona la categoria Spam. actions_description_remote_html: Decideix quina acció prendre per a resoldre aquest informe. Això només afectarà com el teu servidor es comunica amb aquest compte remot i en gestiona el contingut. add_to_report: Afegir més al informe - are_you_sure: N'estàs segur? - assign_to_self: Assignar-me + are_you_sure: Segur? + assign_to_self: Assigna'm assigned: Moderador assignat - by_target_domain: Domini del compte reportat + by_target_domain: Domini del compte denunciat category: Categoria - category_description_html: El motiu pel qual aquest compte o contingut ha estat reportat serà citat en la comunicació amb el compte reportat + category_description_html: El motiu pel qual aquest compte o contingut ha estat denunciat se citarà en la comunicació amb el compte denunciat comment: none: Cap comment_description_html: 'Per a donar més informació, %{name} ha escrit:' - created_at: Reportat + confirm_action: Confirma l'acció de moderació contra @%{acct} + created_at: Denunciat delete_and_resolve: Elimina les publicacions forwarded: Reenviat forwarded_to: Reenviat a %{domain} @@ -598,28 +600,48 @@ ca: mark_as_unresolved: Marcar com a sense resoldre no_one_assigned: Ningú notes: - create: Afegir una nota + create: Afegeix una nota create_and_resolve: Resol amb una nota create_and_unresolve: Reobre amb una nota delete: Elimina placeholder: Descriu les accions que s'han pres o qualsevol altra actualització relacionada… title: Notes - notes_description_html: Veu i deixa notes als altres moderadors i a tu mateix - quick_actions_description_html: 'Pren una acció ràpida o desplaça''t avall per a veure el contingut reportat:' + notes_description_html: Mira i deixa notes als altres moderadors i a tu mateix + processed_msg: 'L''informe #%{id} ha estat processat amb èxit' + quick_actions_description_html: 'Pren una acció ràpida o desplaça''t avall per a veure el contingut denunciat:' remote_user_placeholder: l'usuari remot des de %{instance} reopen: Reobre l'informe report: 'Informe #%{id}' - reported_account: Compte reportat - reported_by: Reportat per + reported_account: Compte denunciat + reported_by: Denunciat per resolved: Resolt - resolved_msg: Informe resolt amb èxit! + resolved_msg: Informe resolt correctament! skip_to_actions: Salta a les accions status: Estat statuses: Contingut reportat - statuses_description_html: El contingut ofensiu serà citat en comunicació amb el compte reportat - target_origin: Origen del compte reportat + statuses_description_html: El contingut ofensiu se citarà en comunicació amb el compte denunciat + summary: + action_preambles: + delete_html: 'Estàs a punt d''esborrar alguns dels tuts de @%{acct}. Això provocarà:' + mark_as_sensitive_html: 'Estàs a punt de marcar alguns dels tuts de @%{acct} com a sensibles. Això provocarà:' + silence_html: 'Estàs a punt de limitar el compte de @%{acct}. Això provocarà:' + suspend_html: 'Estàs a punt de suspendre el compte de @%{acct}. Això provocarà:' + actions: + delete_html: Esborra els tuts ofensius + mark_as_sensitive_html: Marca el contingut multimèdia dels tuts com a sensibles + silence_html: Limita severament l'abast de @%{acct} fent el seus perfils i continguts només visibles per la gent que ja els estan seguint o que cerquin manualment els seus perfils + suspend_html: Suspèn @%{acct}, fent els seus perfils i continguts inaccessibles i impossibles d'interactuar + close_report: 'Marca l''informe #%{id} com a resolt' + close_reports_html: Marca tots els informes contra @%{acct} com a resolts + delete_data_html: Esborra el perfil de @%{acct} i els seus continguts dins de 30 dies des d'ara a no ser que es desactivi la suspensió abans + preview_preamble_html: "@%{acct} rebrà un avís amb el contingut següent:" + record_strike_html: Registra una acció contra @%{acct} per ajudar a escalar-ho en futures violacions des d'aquest compte + send_email_html: Envia un avís per correu electrònic a @%{acct} + warning_placeholder: Opcional raó adicional d'aquesta acció de moderació. + target_origin: Origen del compte denunciat title: Informes unassign: Treu l'assignació + unknown_action_msg: 'Acció desconeguda: %{action}' unresolved: No resolt updated_at: Actualitzat view_profile: Veure perfil @@ -738,10 +760,10 @@ ca: account: Autor application: Aplicació back_to_account: Torna a la pàgina del compte - back_to_report: Torna a la pàgina del informe + back_to_report: Torna a la pàgina de l'informe batch: - remove_from_report: Treu del informe - report: Informe + remove_from_report: Treu de l'informe + report: Denuncia deleted: Eliminada favourites: Favorits history: Històric de versions @@ -894,7 +916,7 @@ ca: subject: Nou compte per a revisar a %{instance} (%{username}) new_report: body: "%{reporter} ha informat de %{target}" - body_remote: Algú des de el domini %{domain} ha informat sobre %{target} + body_remote: Algú des del domini %{domain} ha informat sobre %{target} subject: Informe nou per a %{instance} (#%{id}) new_trends: body: 'Els següents elements necessiten una revisió abans de que puguin ser mostrats públicament:' @@ -943,6 +965,8 @@ ca: auth: apply_for_account: Sol·licitar un compte change_password: Contrasenya + confirmations: + wrong_email_hint: Si aquesta adreça de correu electrònic no és correcte, pots canviar-la en els ajustos del compte. delete_account: Elimina el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. description: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 54d74e7253..f96eaae15f 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -644,6 +644,7 @@ cs: target_origin: Původ nahlášeného účtu title: Hlášení unassign: Odebrat + unknown_action_msg: 'Neznámá akce: %{action}' unresolved: Nevyřešeno updated_at: Aktualizováno view_profile: Zobrazit profil @@ -979,6 +980,8 @@ cs: auth: apply_for_account: Požádat o účet change_password: Heslo + confirmations: + wrong_email_hint: Pokud není e-mail správný, můžete si ho změnit v nastavení účtu. delete_account: Odstranit účet delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádáni o potvrzení. description: diff --git a/config/locales/csb.yml b/config/locales/csb.yml new file mode 100644 index 0000000000..0d4e4b36b2 --- /dev/null +++ b/config/locales/csb.yml @@ -0,0 +1,12 @@ +--- +csb: + 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. diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 3e9b20a72b..52d1aa2029 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -473,6 +473,7 @@ cy: private_comment_description_html: 'Er mwyn eich helpu i olrhain o ble mae blociau a fewnforwyd yn dod, bydd blociau a fewnforwyd yn cael eu creu gyda''r sylw preifat canlynol: %{comment}' private_comment_template: Mewnforiwyd o %{source} ar %{date} title: Mewnforio blociau parth + invalid_domain_block: 'Cafodd un neu fwy o flociau parth eu hepgor oherwydd y gwall(au) canlynol: %{error}' new: title: Mewnforio blociau parth no_file: Heb ddewis ffeil @@ -637,6 +638,7 @@ cy: comment: none: Dim comment_description_html: 'I ddarparu rhagor o wybodaeth, ysgrifennodd %{name}:' + confirm_action: Cadarnhau gweithred cymedroli yn erbyn @%{acct} created_at: Adroddwyd delete_and_resolve: Dileu postiadau forwarded: Wedi'i anfon ymlaen @@ -653,6 +655,7 @@ cy: placeholder: Disgrifiwch pa weithredoedd sydd wedi eu cymryd, neu unrhyw ddiweddariadau perthnasol eraill... title: Nodiadau notes_description_html: Gweld a gadael nodiadau i gymedrolwyr eraill a chi eich hun yn y dyfodol + processed_msg: 'Adroddiad ar #%{id} wedi''i brosesu''n llwyddiannus' quick_actions_description_html: 'Cymerwch gamau cyflym neu sgroliwch i lawr i weld cynnwys yr adroddwyd amdano:' remote_user_placeholder: y defnyddiwr pell o %{instance} reopen: Ailagor adroddiad @@ -665,9 +668,28 @@ cy: status: Statws statuses: Cynnwys wedi'i adrodd statuses_description_html: Bydd cynnwys tramgwyddus yn cael ei ddyfynnu wrth gyfathrebu â'r cyfrif a adroddwyd + summary: + action_preambles: + delete_html: 'Rydych ar fin dileu rhai o bostiadau @%{acct}. Bydd hyn yn:' + mark_as_sensitive_html: 'Rydych ar fin marcio rhai o bostiadau @%{acct} fel rhai sensitif. Bydd hyn yn:' + silence_html: 'Rydych ar fin cyfyngu ar gyfrif @%{acct}. Bydd hyn yn:' + suspend_html: 'Rydych ar fin atal cyfrif @%{acct}. Bydd hyn yn:' + actions: + delete_html: Tynnu'r postiadau tramgwyddus + mark_as_sensitive_html: Nodi fod cyfryngau'r postiadau tramgwyddus yn sensitif + silence_html: Cyfyngu'n sylweddol ar gyrhaeddiad @%{acct} trwy wneud ei ph/broffil a'i gynnwys ond yn weladwy i bobl sydd eisoes yn ei d/ddilyn neu edrych ar ei ph/broffil â llaw + suspend_html: Atal @%{acct}, gan wneud ei ph/broffil a'i gynnwys yn anhygyrch ac yn amhosibl rhyngweithio ag ef + close_report: 'Nodi adroddiad #%{id} fel wedi''i ddatrys' + close_reports_html: Nodi bod pob adroddiad yn erbyn @%{acct} wedi'i ddatrys + delete_data_html: Dileu proffil a chynnwys @%{acct} 30 diwrnod o nawr oni bai ei b/fod heb ei h/atal yn y cyfamser + preview_preamble_html: 'Bydd @%{acct} yn derbyn rhybudd gyda''r cynnwys canlynol:' + record_strike_html: Recordio rhybudd yn erbyn @%{acct} i'ch helpu i ddwysáu ar achosion o dorri rheolau yn y dyfodol o'r cyfrif hwn + send_email_html: Anfon e-bost rhybudd at @%{acct} + warning_placeholder: Rhesymeg ychwanegol dewisol ar gyfer y cam cymedroli. target_origin: Tarddiad y cyfrif a adroddwyd title: Adroddiadau unassign: Dadneilltuo + unknown_action_msg: 'Gweithred anhysbys: %{action}' unresolved: Heb ei ddatrys updated_at: Diweddarwyd view_profile: Gweld proffil @@ -1015,6 +1037,8 @@ cy: auth: apply_for_account: Gofyn am gyfrif change_password: Cyfrinair + confirmations: + wrong_email_hint: Os nad yw'r cyfeiriad e-bost hwnnw'n gywir, gallwch ei newid yng ngosodiadau'r cyfrif. delete_account: Dileu cyfrif delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd parhau yma. Bydd gofyn i chi gadarnhau. description: diff --git a/config/locales/da.yml b/config/locales/da.yml index 15e3115f81..913f275cc6 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -4,7 +4,7 @@ da: about_mastodon_html: 'Fremtidens sociale netværk: Ingen annoncer, ingen virksomhedsovervågning, etisk design og decentralisering! Vær ejer af egne data med Mastodon!' contact_missing: Ikke angivet contact_unavailable: Utilgængelig - hosted_on: Mostodon hostet på %{domain} + hosted_on: Mastodon hostet på %{domain} title: Om accounts: follow: Følg @@ -209,7 +209,7 @@ da: reject_user: Afvis bruger remove_avatar_user: Fjern profilbillede reopen_report: Genåbn anmeldelse - resend_user: Gensend bekræftelsese-mail + resend_user: Gensend bekræftelses-e-mail reset_password_user: Nulstil adgangskode resolve_report: Løs anmeldelse sensitive_account: Gennemtving sensitiv konto @@ -441,6 +441,7 @@ da: private_comment_description_html: 'For at man lettere kan holde styr på, hvorfra importerede blokeringer kommer, oprettes disse med flg. private kommentar: %{comment}' private_comment_template: Importeret fra %{source} d. %{date} title: Import af domæneblokeringer + invalid_domain_block: 'En eller flere domæneblokke blev oversprunget grundet flg. fejl: %{error}' new: title: Import af domæneblokeringer no_file: Ingen fill udvalgt @@ -586,6 +587,7 @@ da: comment: none: Ingen comment_description_html: 'For at give mere information, skrev %{name}:' + confirm_action: Bekræft moderatorhandling for %{acct} created_at: Anmeldt delete_and_resolve: Slet indlæg forwarded: Videresendt @@ -602,6 +604,7 @@ da: placeholder: Beskriv udførte foranstaltninger eller andre relevante opdateringer... title: Notater notes_description_html: Se og skriv notater til andre moderatorer og dit fremtid selv + processed_msg: 'Anmeldelse #%{id} er blev behandlet' quick_actions_description_html: 'Træf en hurtig foranstaltning eller rul ned for at se anmeldt indhold:' remote_user_placeholder: fjernbrugeren fra %{instance} reopen: Genåbn anmeldelse @@ -614,9 +617,28 @@ da: status: Status statuses: Anmeld indhold statuses_description_html: Krænkende indhold citeres i kommunikationen med den anmeldte konto + summary: + action_preambles: + delete_html: 'Du er ved at fjerne nogle indlæg fra @%{acct}. Dette vil:' + mark_as_sensitive_html: 'Du er ved at markere nogle indlæg fra @%{acct} som sensitive. Dette vil:' + silence_html: 'Du er ved at begrænse nogle indlæg fra kontoen @%{acct}. Dette vil:' + suspend_html: 'Du er ved at suspendere kontoen @%{acct}. Dette vil:' + actions: + delete_html: Fjern de overtrædende indlæg + mark_as_sensitive_html: Markér medier i overtrædende indlæg som sensitive + silence_html: Begræns kraftigt rækkeviden for @%{acct} ved at gøre vedkommendes profil og indhold synligt alene for personer, som allerede er følgere eller manuelt slår profilen op + suspend_html: Suspendér @%{acct}, hvilket gør vedkommendes profil og indhold utilgængeligt og umuligt at interagere med + close_report: 'Markér anmeldelsen #%{id} som løst' + close_reports_html: Markér alle anmeldelser af @%{acct} som løst + delete_data_html: Slet profil og indhold for @%{acct} 30 dage fra nu medmindre suspenderingen af vedkommende i mellemtiden fjernes + preview_preamble_html: "@%{acct} vil modtage en advarsel med flg. indhold:" + record_strike_html: Registrér en advarsel for @%{acct} som hjælpe til eskalering af fremtidige overtrædelser fra samme konto + send_email_html: Send en advarselsmail til @%{acct} + warning_placeholder: Valgfri yderligere begrundelse for modereringshandlingen. target_origin: Anmeldte kontos oprindelse title: Anmeldelser unassign: Fjern tildeling + unknown_action_msg: 'Ukendt handling: %{action}' unresolved: Uløst updated_at: Opdateret view_profile: Vis profil @@ -939,6 +961,8 @@ da: auth: apply_for_account: Anmod om en konto change_password: Adgangskode + confirmations: + wrong_email_hint: Er denne e-mail-adresse ikke korrekt, kan den ændres i kontoindstillinger. delete_account: Slet konto delete_account_html: Ønsker du at slette din konto, kan du gøre dette hér. Du vil blive bedt om bekræftelse. description: @@ -972,7 +996,7 @@ da: set_new_password: Opsæt ny adgangskode setup: email_below_hint_html: Er nedenstående e-mailadresse forkert, kan du rette den hér og modtage en ny bekræftelses-e-mail. - email_settings_hint_html: Bekræftelsese-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne. + email_settings_hint_html: Bekræftelses-e-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne. title: Opsætning sign_in: preamble_html: Log ind med dine %{domain}-legitimationsoplysninger. Hostes kontoen på en anden server, vil der ikke kunne logges ind her. @@ -1040,7 +1064,7 @@ da: data_removal: Dine indlæg og andre data fjernes permanent email_change_html: Du kan skifte e-mailadresse uden at slette din konto email_contact_html: Hvis det stadig ikke ankommer, kan du sende en e-mail til %{email} for hjælp - email_reconfirmation_html: Modtager du ikke bekræftelsese-mailen, kan du anmode om en ny + email_reconfirmation_html: Modtager du ikke bekræftelses-e-mailen, kan du anmode om en ny irreversible: Du vil ikke kunne gendanne/genaktivere din konto more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken. username_available: Dit brugernavn vil blive tilgængeligt igen @@ -1639,7 +1663,7 @@ da: final_action: Begynd at poste final_step: 'Begynd at poste! Selv uden følgere vil offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Man kan introducere sig selv via hastagget #introductions.' full_handle: Dit fulde brugernavn - full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre server. + full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre servere. subject: Velkommen til Mastodon title: Velkommen ombord, %{name}! users: diff --git a/config/locales/de.yml b/config/locales/de.yml index 1bfcf3568e..ee5f3c28e5 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -441,6 +441,7 @@ de: private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}' private_comment_template: Importiert von %{source} am %{date} title: Domain-Sperren importieren + invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}' new: title: Domain-Sperren importieren no_file: Keine Datei ausgewählt @@ -589,6 +590,7 @@ de: comment: none: Kein comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:' + confirm_action: Moderationsaktion gegen @%{acct} bestätigen created_at: Gemeldet delete_and_resolve: Beiträge löschen forwarded: Weitergeleitet @@ -605,7 +607,8 @@ de: placeholder: Bitte beschreibe, welche Maßnahmen ergriffen wurden oder andere damit verbundene Aktualisierungen … title: Notizen notes_description_html: Notiz an dich und andere Moderator*innen hinterlassen - quick_actions_description_html: 'Führe eine schnelle Aktion aus oder scrolle nach unten, um gemeldete Inhalte zu sehen:' + processed_msg: 'Meldung #%{id} erfolgreich bearbeitet' + quick_actions_description_html: 'Eine schnelle Aktion ausführen oder nach unten rolle, um gemeldete Inhalte zu sehen:' remote_user_placeholder: das externe Profil von %{instance} reopen: Meldung wieder eröffnen report: 'Meldung #%{id}' @@ -617,9 +620,28 @@ de: status: Status statuses: Gemeldeter Inhalt statuses_description_html: Störende Inhalte werden in der Kommunikation mit dem gemeldeten Konto zitiert + summary: + action_preambles: + delete_html: 'Du bist dabei, einige Beiträge von @%{acct} zu entfernen. Dies wird:' + mark_as_sensitive_html: 'Du bist dabei, einige Beiträge von @%{acct} mit einer Inhaltswarnung zu versehen. Dies wird:' + silence_html: 'Du bist dabei, das Konto von @%{acct} einzuschränken. Dies wird:' + suspend_html: 'Du bist dabei, das Konto von @%{acct} zu sperren. Dies wird:' + actions: + delete_html: Die anstößigen Beiträge entfernen + mark_as_sensitive_html: Medien der anstößigen Beiträge mit einer Inhaltswarnung versehen + silence_html: Schränkt die Reichweite von @%{acct} stark ein, indem das Profil und dessen Inhalte nur für Personen sichtbar sind, die dem Profil bereits folgen oder es manuell aufrufen + suspend_html: "@%{acct} sperren, sodass das Profil und dessen Inhalte nicht mehr zugänglich sind und keine Interaktion mehr möglich ist" + close_report: 'Meldung #%{id} als erledigt markieren' + close_reports_html: "Alle Meldungen gegen @%{acct} als erledigt markieren" + delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt + preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:" + record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können + send_email_html: "@%{acct} eine Warnung per E-Mail senden" + warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. target_origin: Domain des gemeldeten Kontos title: Meldungen unassign: Zuweisung entfernen + unknown_action_msg: 'Unbekannte Aktion: %{action}' unresolved: Ungelöst updated_at: Aktualisiert view_profile: Profil anzeigen @@ -805,7 +827,7 @@ de: other: In der letzten Woche von %{count} Personen geteilt title: Angesagte Links usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal - only_allowed: Nur Erlaubte + only_allowed: Nur Genehmigte pending_review: Überprüfung ausstehend preview_card_providers: allowed: Links von diesem Herausgeber können angesagt sein @@ -823,7 +845,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} @@ -943,6 +965,8 @@ de: auth: apply_for_account: Konto beantragen change_password: Passwort + confirmations: + wrong_email_hint: Wenn diese E-Mail-Adresse nicht korrekt ist, kann sie in den Kontoeinstellungen geändert werden. delete_account: Konto löschen delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das hier vornehmen. Du musst dies zusätzlich bestätigen. description: diff --git a/config/locales/devise.csb.yml b/config/locales/devise.csb.yml new file mode 100644 index 0000000000..0de706e41f --- /dev/null +++ b/config/locales/devise.csb.yml @@ -0,0 +1 @@ +csb: diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml index 45e5e47f85..dd49b6df42 100644 --- a/config/locales/devise.ko.yml +++ b/config/locales/devise.ko.yml @@ -8,44 +8,44 @@ ko: failure: already_authenticated: 이미 로그인 된 상태입니다. inactive: 계정이 아직 활성화 되지 않았습니다. - invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다. + invalid: 알맞지 않은 %{authentication_keys} 혹은 암호입니다. last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다. locked: 계정이 잠겼습니다. - not_found_in_database: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다. - pending: 계정이 아직 심사 중입니다. + not_found_in_database: 알맞지 않은 %{authentication_keys} 혹은 암호입니다. + pending: 이 계정은 아직 검토 중입니다. timeout: 세션이 만료 되었습니다. 다시 로그인 해 주세요. unauthenticated: 계속 하려면 로그인을 해야 합니다. unconfirmed: 계속 하려면 이메일을 확인 받아야 합니다. mailer: confirmation_instructions: - action: 이메일 확인 + action: 이메일 주소 검증 action_with_app: 확인하고 %{app}으로 돌아가기 explanation: 당신은 %{host}에서 이 이메일로 가입하셨습니다. 클릭만 하시면 계정이 활성화 됩니다. 만약 당신이 가입한 게 아니라면 이 메일을 무시해 주세요. explanation_when_pending: 당신은 %{host}에 가입 요청을 하셨습니다. 이 이메일이 확인 되면 우리가 가입 요청을 리뷰하고 승인할 수 있습니다. 그 전까지는 로그인을 할 수 없습니다. 당신의 가입 요청이 거부 될 경우 당신에 대한 정보는 모두 삭제 되며 따로 요청 할 필요는 없습니다. 만약 당신이 가입 요청을 한 게 아니라면 이 메일을 무시해 주세요. extra_html: 서버의 규칙이용 약관도 확인해 주세요. subject: '마스토돈: %{instance}에 대한 확인 메일' - title: 이메일 주소 확인 + title: 이메일 주소 검증 email_changed: - explanation: '당신의 계정에 대한 이메일이 다음과 같이 바뀌려고 합니다:' - extra: 만약 당신이 메일을 바꾸지 않았다면 누군가가 당신의 계정에 대한 접근 권한을 얻은 것입니다. 즉시 패스워드를 바꾼 후, 계정이 잠겼다면 서버의 관리자에게 연락 하세요. + explanation: '귀하의 계정이 다음의 이메일 주소로 변경됩니다:' + extra: 만약 이메일을 바꾸지 않았다면 누군가 계정에 대한 접근 권한을 얻은 것입니다. 바로 암호를 바꾸셔야 하며, 만약 계정이 잠겼다면 서버의 운영자에게 연락 바랍니다. subject: '마스토돈: 이메일이 변경 되었습니다' title: 새 이메일 주소 password_change: - explanation: 당신의 계정 패스워드가 변경되었습니다. + explanation: 계정의 암호를 바꾸었습니다. extra: 만약 패스워드 변경을 하지 않았다면 누군가가 당신의 계정에 대한 접근 권한을 얻은 것입니다. 즉시 패스워드를 바꾼 후, 계정이 잠겼다면 서버의 관리자에게 연락 하세요. - subject: '마스토돈: 패스워드가 변경 되었습니다' - title: 패스워드가 변경 되었습니다 + subject: 'Mastodon: 암호 변경함' + title: 암호 변경함 reconfirmation_instructions: explanation: 이메일 주소를 바꾸려면 새 이메일 주소를 확인해야 합니다. extra: 당신이 시도한 것이 아니라면 이 메일을 무시해 주세요. 위 링크를 클릭하지 않으면 이메일 변경은 일어나지 않습니다. subject: '마스토돈: %{instance}에 대한 이메일 확인' - title: 이메일 주소 확인 + title: 이메일 주소 검증 reset_password_instructions: - action: 패스워드 변경 - explanation: 계정에 대한 패스워드 변경을 요청하였습니다. - extra: 만약 당신이 시도한 것이 아니라면 이 메일을 무시해 주세요. 위 링크를 클릭해 패스워드를 새로 설정하기 전까지는 패스워드가 바뀌지 않습니다. - subject: '마스토돈: 패스워드 재설정 방법' - title: 패스워드 재설정 + action: 암호 변경 + explanation: 계정에 새 암호를 쓰도록 요청받았습니다. + extra: 요청하지 않았다면 이 이메일을 무시하셔야 합니다. 상기 링크에 접속하지 않으면 암호는 새것으로 변경되지 않습니다. + subject: 'Mastodon: 암호 재설정 설명' + title: 암호 재설정 two_factor_disabled: explanation: 당신의 계정에 설정된 이중 인증이 비활성화 되었습니다. 이제 이메일과 암호만으로 로그인이 가능합니다. subject: '마스토돈: 이중 인증 비활성화' @@ -81,11 +81,11 @@ ko: failure: '"%{reason}" 때문에 당신을 %{kind}에서 인증할 수 없습니다.' success: "%{kind} 계정을 성공적으로 인증했습니다." passwords: - no_token: 패스워드 재설정 이메일을 거치지 않고는 여기에 올 수 없습니다. 만약 패스워드 재설정 메일에서 온 것이라면 URL이 맞는지 확인해 주세요. + no_token: 이 페이지는 암호 재설정 이메일을 거쳐야 접근할 수 있습니다. 만약 암호 재설정 이메일 거치지 않았다면 사용하려는 URL이 맞는지 확인 바랍니다. send_instructions: 당신의 이메일 주소가 우리의 DB에 있다면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. send_paranoid_instructions: 당신의 이메일 주소가 우리의 DB에 있다면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. - updated: 패스워드가 재설정 되었습니다. 로그인 되었습니다. - updated_not_active: 패스워드가 성공적으로 변경 되었습니다. + updated: 암호를 잘 바꾸었습니다. 현재 로그인 상태입니다. + updated_not_active: 암호를 잘 변경하였습니다. registrations: destroyed: 안녕히 가세요! 계정이 성공적으로 제거되었습니다. 다시 만나기를 희망합니다. signed_up: 안녕하세요! 성공적으로 가입했습니다. diff --git a/config/locales/devise.uz.yml b/config/locales/devise.uz.yml new file mode 100644 index 0000000000..fab6a0655c --- /dev/null +++ b/config/locales/devise.uz.yml @@ -0,0 +1,13 @@ +--- +uz: + devise: + confirmations: + confirmed: Sizning elektron pochta manzilingiz muvaffaqiyatli tasdiqlandi. + send_instructions: Bir necha daqiqadan so'ng elektron pochta manzilingizni qanday tasdiqlash bo'yicha ko'rsatmalar bilan elektron pochta xabarini olasiz. Agar siz ushbu xatni olmagan bo'lsangiz, spam jildini tekshiring. + send_paranoid_instructions: Agar sizning elektron pochta manzilingiz bizning ma'lumotlar bazamizda mavjud bo'lsa, sizga bir necha daqiqadan so'ng elektron pochta manzilingizni qanday tasdiqlash bo'yicha ko'rsatmalar yozilgan elektron pochta xabari keladi. Agar siz ushbu xatni olmagan bo'lsangiz, spam jildini tekshiring. + failure: + already_authenticated: Siz allaqachon tizimga kirgansiz. + mailer: + reset_password_instructions: + action: Parolni almashtirish + title: Parolni tiklash diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml index c752ceed80..4a47dddec4 100644 --- a/config/locales/devise.zh-CN.yml +++ b/config/locales/devise.zh-CN.yml @@ -74,7 +74,7 @@ zh-CN: subject: Mastodon:安全密钥认证已禁用 title: 安全密钥已禁用 webauthn_enabled: - explanation: 你的帐户已启用安全密钥身份验证。你的安全密钥现在可以用于登录。 + explanation: 你的账户已启用安全密钥身份验证。你的安全密钥现在可以用于登录。 subject: Mastodon:安全密钥认证已启用 title: 已启用安全密钥 omniauth_callbacks: diff --git a/config/locales/doorkeeper.csb.yml b/config/locales/doorkeeper.csb.yml new file mode 100644 index 0000000000..0de706e41f --- /dev/null +++ b/config/locales/doorkeeper.csb.yml @@ -0,0 +1 @@ +csb: diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index d06646e7b3..e8d9d8e93f 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -122,12 +122,14 @@ es: admin/accounts: Administración de cuentas admin/all: Todas las funciones administrativas admin/reports: Administración de informes + all: Acceso completo a tu cuenta de Mastodon blocks: Bloqueos bookmarks: Marcadores conversations: Conversaciones crypto: Cifrado de extremo a extremo favourites: Favoritos filters: Filtros + follow: Seguimientos, silenciad@s y bloqueos follows: Seguidos lists: Listas media: Adjuntos multimedia diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml index 68706d9d90..8d2a9f3b67 100644 --- a/config/locales/doorkeeper.eu.yml +++ b/config/locales/doorkeeper.eu.yml @@ -122,12 +122,14 @@ eu: admin/accounts: Kontuen administrazioa admin/all: Funtzio administratibo guztiak admin/reports: Salaketen administrazioa + all: Sarbide osoa zure Mastodon kontura blocks: Blokeoak bookmarks: Laster-markak conversations: Elkarrizketak crypto: Muturretik-muturrerako zifraketa favourites: Gogokoak filters: Iragazkiak + follow: Jarraitzeak, mututzeak eta blokeatzeak follows: Jarraipenak lists: Zerrendak media: Multimedia eranskinak @@ -147,9 +149,19 @@ eu: scopes: admin:read: zerbitzariko datu guztiak irakurri admin:read:accounts: kontu guztien informazio sentsiblea irakurri + admin:read:canonical_email_blocks: irakurri eposta kanonikoen blokeatzeari buruzko informazio sentikorra + admin:read:domain_allows: irakurri onartutako domeinu guztien informazio sentikorra + admin:read:domain_blocks: irakurri blokeatutako domeinu guztien informazio sentikorra + admin:read:email_domain_blocks: irakurri blokeatutako eposta domeinu guztien informazio sentikorra + admin:read:ip_blocks: irakurri blokeatutako IP guztien informazio sentikorra admin:read:reports: salaketa guztietako eta salatutako kontu guztietako informazio sentsiblea irakurri admin:write: zerbitzariko datu guztiak aldatu admin:write:accounts: kontuetan moderazio ekintzak burutu + admin:write:canonical_email_blocks: gauzatu moderazio ekintzak eposta kanonikoen blokeatzean + admin:write:domain_allows: gauzatu moderazio ekintzak onartutako domeinuetan + admin:write:domain_blocks: gauzatu moderazio ekintzak domeinuen blokeatzeetan + admin:write:email_domain_blocks: gauzatu moderazio ekintzak eposta domeinuen blokeatzeetan + admin:write:ip_blocks: gauzatu moderazio ekintzak IP blokeatzeetan admin:write:reports: salaketetan moderazio ekintzak burutu crypto: erabili muturretik muturrerako zifraketa follow: aldatu kontuaren erlazioak diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 959942c1be..622fcfe768 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -74,7 +74,7 @@ gl: authorized_at: Autorizada o %{date} description_html: Estas aplicacións poden acceder á túa conta usando a API. Se ves aplicacións que non recoñeces, ou hai comportamentos non consentidos dalgunha delas, podes revogar o acceso. last_used_at: Último acceso o %{date} - never_used: Nunca usada + never_used: Nunca empregada scopes: Permisos superapp: Interno title: As túas aplicacións autorizadas @@ -149,18 +149,18 @@ gl: scopes: admin:read: ler todos os datos no servidor admin:read:accounts: ler información sensible de todas as contas - admin:read:canonical_email_blocks: ler a información sensible de tódolos bloqueos de email canónicos + admin:read:canonical_email_blocks: ler a información sensíbel de tódolos bloqueos de correos electrónicos canónicos admin:read:domain_allows: ler a información sensible de tódolos dominios permitidos admin:read:domain_blocks: ler a información sensible de tódolos bloqueos de dominio - admin:read:email_domain_blocks: ler a información sensible de tódolos dominios de email + admin:read:email_domain_blocks: ler a información sensible de tódolos dominios de correo electrónico admin:read:ip_blocks: ler a información sensible de tódolos bloqueos de IP admin:read:reports: ler información sensible de todos os informes e contas denunciadas admin:write: modificar todos os datos no servidor admin:write:accounts: executar accións de moderación nas contas - admin:write:canonical_email_blocks: realizar accións de moderación en bloqueos de email canónicos + admin:write:canonical_email_blocks: realizar accións de moderación en bloqueos de correo electrónico canónicos admin:write:domain_allows: realizar accións de moderación en dominios permitidos admin:write:domain_blocks: realizar accións de moderación en bloqueos de dominio - admin:write:email_domain_blocks: realizar accións de moderación en bloqueos de dominio de email + admin:write:email_domain_blocks: realizar accións de moderación en bloqueos de dominio de correo electrónico admin:write:ip_blocks: realizar accións de moderación en bloqueos de IPs admin:write:reports: executar accións de moderación nas denuncias crypto: usar cifrado de extremo-a-extremo diff --git a/config/locales/doorkeeper.hy.yml b/config/locales/doorkeeper.hy.yml index ffb56c810c..6548d1e5e9 100644 --- a/config/locales/doorkeeper.hy.yml +++ b/config/locales/doorkeeper.hy.yml @@ -123,6 +123,7 @@ hy: mutes: Լռեցուածներ notifications: Ծանուցումներ push: Հրելու ծանուցումներ + search: Որոնել statuses: Գրառումներ layouts: admin: diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 140f838620..504fefd281 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -81,7 +81,7 @@ ko: errors: messages: access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다. - credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 패스워드 자격증명이 실패하였습니다. + credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 암호 자격증명이 실패하였습니다. invalid_client: 알 수 없는 클라이언트이기 때문에 클라이언트 인증이 실패하였습니다, 클라이언트 자격증명이 포함되지 않았거나, 지원 되지 않는 메소드입니다. invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다. invalid_redirect_uri: 리디렉션 URI가 올바르지 않습니다 diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index e650a963d9..6fb149b7ed 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -151,6 +151,7 @@ ru: admin:read:accounts: читать конфиденциальную информацию всех учётных записей admin:read:canonical_email_blocks: чтение конфиденциальной информации всех канонических блоков электронной почты admin:read:domain_allows: чтение конфиденциальной информации для всего домена позволяет + admin:read:domain_blocks: чтение конфиденциальной информации для всего домена позволяет admin:read:reports: читать конфиденциальную информацию о всех жалобах и учётных записях с жалобами admin:write: модифицировать все данные на сервере admin:write:accounts: производить модерацию учётных записей diff --git a/config/locales/doorkeeper.uz.yml b/config/locales/doorkeeper.uz.yml new file mode 100644 index 0000000000..3ed042df39 --- /dev/null +++ b/config/locales/doorkeeper.uz.yml @@ -0,0 +1 @@ +uz: diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 4b0ee8773e..3bda08dcdd 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -69,6 +69,47 @@ en-GB: enable: Unfreeze enable_sign_in_token_auth: Enable e-mail token authentication enabled: Enabled + enabled_msg: Successfully unfroze %{username}'s account + followers: Followers + follows: Follows + header: Header + inbox_url: Inbox URL + invite_request_text: Reasons for joining + invited_by: Invited by + ip: IP + joined: Joined + location: + all: All + local: Local + remote: Remote + title: Location + login_status: Login status + media_attachments: Media attachments + memorialize: Turn into memoriam + memorialized: Memorialised + memorialized_msg: Successfully turned %{username} into a memorial account + moderation: + active: Active + all: All + pending: Pending + silenced: Limited + suspended: Suspended + title: Moderation + moderation_notes: Moderation notes + most_recent_activity: Most recent activity + most_recent_ip: Most recent IP + no_account_selected: No accounts were changed as none were selected + no_limits_imposed: No limits imposed + no_role_assigned: No role assigned + not_subscribed: Not subscribed + pending: Pending review + perform_full_suspension: Suspend + previous_strikes: Previous strikes + previous_strikes_description_html: + one: This account has one strike. + other: This account has %{count} strikes. + promote: Promote + protocol: Protocol roles: categories: devops: DevOps @@ -91,3 +132,32 @@ en-GB: platforms: blackberry: BlackBerry chrome_os: ChromeOS + user_mailer: + warning: + subject: + silence: Your account %{acct} has been limited + suspend: Your account %{acct} has been suspended + title: + delete_statuses: Posts removed + disable: Account frozen + mark_statuses_as_sensitive: Posts marked as sensitive + none: Warning + sensitive: Account marked as sensitive + silence: Account limited + suspend: Account suspended + welcome: + edit_profile_action: Setup profile + edit_profile_step: You can customise your profile by uploading a profile picture, changing your display name and more. You can opt-in to review new followers before they’re allowed to follow you. + explanation: Here are some tips to get you started + final_action: Start posting + final_step: 'Start posting! Even without followers, your public posts may be seen by others, for example on the local timeline or in hashtags. You may want to introduce yourself on the #introductions hashtag.' + full_handle: Your full handle + full_handle_hint: This is what you would tell your friends so they can message or follow you from another server. + subject: Welcome to Mastodon + title: Welcome aboard, %{name}! + users: + follow_limit_reached: You cannot follow more than %{limit} people + invalid_otp_token: Invalid two-factor code + otp_lost_help_html: If you lost access to both, you may get in touch with %{email} + seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. + signed_in_as: 'Signed in as:' diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index aef9091498..9b0ab12cce 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -441,6 +441,7 @@ es-AR: private_comment_description_html: 'Para ayudarte a rastrear de dónde vienen los bloques importados, se crearán los mismos con el siguiente comentario privado: %{comment}' private_comment_template: Importado desde %{source} el %{date} title: Importar bloques de dominio + invalid_domain_block: 'Uno o más bloqueos de dominio fueron omitidos debido al/los siguiente/s error/es: %{error}' new: title: Importar bloques de dominio no_file: No hay ningún archivo seleccionado @@ -589,6 +590,7 @@ es-AR: comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar mensajes forwarded: Reenviado @@ -605,6 +607,7 @@ es-AR: placeholder: Describí qué acciones se tomaron, o cualquier otra actualización relacionada... title: Notas notes_description_html: Ver y dejar notas para otros moderadores y como referencia futura + processed_msg: 'Denuncia #%{id}, procesada exitosamente' quick_actions_description_html: 'Tomá una acción rápida o desplazate hacia abajo para ver el contenido denunciado:' remote_user_placeholder: el usuario remoto de %{instance} reopen: Reabrir denuncia @@ -617,9 +620,28 @@ es-AR: status: Estado statuses: Contenido denunciado statuses_description_html: El contenido ofensivo se citará en la comunicación con la cuenta denunciada + summary: + action_preambles: + delete_html: 'Estás a punto de eliminar algunos de los mensajes de @%{acct}. Esto hará lo siguiente:' + mark_as_sensitive_html: 'Estás a punto de marcar algunos de los mensajes de @%{acct}como sensibles. Esto hará lo siguiente:' + silence_html: 'Estás a punto de limitar la cuenta de @%{acct}. Esto hará lo siguiente:' + suspend_html: 'Estás a punto de suspender la cuenta de @%{acct}. Esto hará lo siguiente:' + actions: + delete_html: Eliminar los mensajes ofensivos + mark_as_sensitive_html: Marcar los mensajes ofensivos como sensibles + silence_html: Limitar severamente el alcance de @%{acct} haciendo que su perfil y contenido sólo sean visibles para las personas que ya lo siguen o que busquen manualmente su perfil + suspend_html: Suspender @%{acct}, haciendo su perfil y contenido inaccesibles, e imposibilitando la interacción con la cuenta + close_report: 'Marcar denuncia #%{id} como resuelta' + close_reports_html: Marcar todas las denuncias contra @%{acct} como resueltas + delete_data_html: Eliminar el perfil y contenido de @%{acct} en 30 días a partir de ahora, a menos que se revierta la suspensión en ese tiempo + preview_preamble_html: "@%{acct} recibirá una advertencia con el siguiente contenido:" + record_strike_html: Registrá una amonestación contra @%{acct} para ayudarte a escalar futuras violaciones de esta cuenta + send_email_html: Enviar a @%{acct} un correo electrónico de advertencia + warning_placeholder: Razones adicionales opcionales para la acción de moderación. target_origin: Origen de la cuenta denunciada title: Denuncias unassign: Desasignar + unknown_action_msg: 'Acción desconocida: %{action}' unresolved: No resueltas updated_at: Actualizadas view_profile: Ver perfil @@ -943,6 +965,8 @@ es-AR: auth: apply_for_account: Solicitar una cuenta change_password: Contraseña + confirmations: + wrong_email_hint: Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta. delete_account: Eliminar cuenta delete_account_html: Si querés eliminar tu cuenta, podés seguir por acá. Se te va a pedir una confirmación. description: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index c2d0ce216b..486a122b14 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -441,6 +441,7 @@ es-MX: private_comment_description_html: 'Para ayudarle a rastrear de dónde proceden los bloqueos importados, los bloqueos importados se crearán con el siguiente comentario privado: %{comment}' private_comment_template: Importado desde %{source} el %{date} title: Importar bloqueos de dominio + invalid_domain_block: 'Uno o más bloques de dominio fueron omitidos debido a el/los siguiente(s) error(es): %{error}' new: title: Importar bloqueos de dominio no_file: No hay archivo seleccionado @@ -589,6 +590,7 @@ es-MX: comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicaciones forwarded: Reenviado @@ -605,6 +607,7 @@ es-MX: placeholder: Especificar qué acciones se han tomado o cualquier otra novedad respecto a esta denuncia… title: Notas notes_description_html: Ver y dejar notas a otros moderadores y a tu yo futuro + processed_msg: 'La denuncia #%{id} ha sido procesada con éxito' quick_actions_description_html: 'Toma una acción rápida o desplázate hacia abajo para ver el contenido denunciado:' remote_user_placeholder: el usuario remoto de %{instance} reopen: Reabrir denuncia @@ -617,9 +620,28 @@ es-MX: status: Estado statuses: Contenido reportado statuses_description_html: El contenido ofensivo se citará en comunicación con la cuenta reportada + summary: + action_preambles: + delete_html: 'Estás a punto de eliminar algunas de la publicaciones de @%{acct}. Esto hará:' + mark_as_sensitive_html: 'Estás a punto de marcar algunas de las publicaciones de @%{acct}como sensibles. Esto hará:' + silence_html: 'Estás a punto de limitar la cuenta de @%{acct}. Esto hará:' + suspend_html: 'Estás a punto de suspender la cuenta de @%{acct}. Esto hará:' + actions: + delete_html: Eliminar las publicaciones ofensivas + mark_as_sensitive_html: Marcar las publicaciones ofensivas como sensibles + silence_html: Limitar severamente el alcance de @%{acct} haciendo que su perfil y contenido sólo sean visibles para las personas que ya lo siguen o que consulten manualmente su perfil + suspend_html: Suspender a @%{acct}, haciendo su perfil y contenido inaccesibles e imposible la interacción + close_report: 'Marcar denuncia #%{id} como resuelta' + close_reports_html: Marcar todas las denuncias contra @%{acct} como resueltas + delete_data_html: Eliminar el perfil y contenido de @%{acct} en 30 días a partir de ahora a menos que se revierta la suspensión en ese tiempo + preview_preamble_html: "@%{acct} recibirá una advertencia con el siguiente contenido:" + record_strike_html: Registra una amonestación contra @%{acct} para ayudarte a escalar futuras violaciones de esta cuenta + send_email_html: Enviar a @%{acct} un correo electrónico de advertencia + warning_placeholder: Razones adicionales opcionales para la acción de moderación. target_origin: Origen de la cuenta reportada title: Reportes unassign: Desasignar + unknown_action_msg: 'Acción desconocida: %{action}' unresolved: No resuelto updated_at: Actualizado view_profile: Ver perfil @@ -943,6 +965,8 @@ es-MX: auth: apply_for_account: Solicitar una cuenta change_password: Contraseña + confirmations: + wrong_email_hint: Si esa dirección de correo electrónico no es correcta, puedes cambiarla en la configuración de la cuenta. delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: diff --git a/config/locales/es.yml b/config/locales/es.yml index 77ac452f32..38cee2adbb 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -441,6 +441,7 @@ es: private_comment_description_html: 'Para ayudarle a rastrear de dónde proceden los bloqueos importados, los bloqueos importados se crearán con el siguiente comentario privado: %{comment}' private_comment_template: Importado desde %{source} el %{date} title: Importar bloqueos de dominio + invalid_domain_block: 'Uno o más bloqueos de dominio fueron omitidos debido a los siguientes errores: %{error}' new: title: Importar bloqueos de dominio no_file: Ningún archivo seleccionado @@ -589,6 +590,7 @@ es: comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicaciones forwarded: Reenviado @@ -605,6 +607,7 @@ es: placeholder: Especificar qué acciones se han tomado o cualquier otra novedad respecto a esta denuncia… title: Notas notes_description_html: Ver y dejar notas a otros moderadores y a tu yo futuro + processed_msg: 'El informe #%{id} ha sido procesado con éxito' quick_actions_description_html: 'Toma una acción rápida o desplázate hacia abajo para ver el contenido denunciado:' remote_user_placeholder: el usuario remoto de %{instance} reopen: Reabrir denuncia @@ -617,9 +620,28 @@ es: status: Estado statuses: Contenido reportado statuses_description_html: El contenido ofensivo se citará en la comunicación con la cuenta reportada + summary: + action_preambles: + delete_html: 'Estás a punto de eliminar algunos de los mensajes de @%{acct}. Esto hará:' + mark_as_sensitive_html: 'Estás a punto de marcar algunas de las publicaciones de @%{acct}como sensibles. Esto hará:' + silence_html: 'Estás a punto de limitar la cuenta de @%{acct}. Esto hará:' + suspend_html: 'Estás a punto de suspender la cuenta de @%{acct}. Esto hará:' + actions: + delete_html: Eliminar los mensajes ofensivos + mark_as_sensitive_html: Marcar los mensajes ofensivos como sensibles + silence_html: Limitar severamente el alcance de @%{acct} haciendo que su perfil y contenido sólo sean visibles para las personas que ya lo siguen o que consulten manualmente su perfil + suspend_html: Suspender @%{acct}, haciendo su perfil y contenido inaccesibles y la interacción con la cuenta imposible + close_report: 'Marcar informe #%{id} como resuelto' + close_reports_html: Marcar todos los informes contra @%{acct} como resueltos + delete_data_html: Eliminar el perfil y contenido de @%{acct} en 30 días a partir de ahora a menos que se revierta la suspensión en ese tiempo + preview_preamble_html: "@%{acct} recibirá una advertencia con el siguiente contenido:" + record_strike_html: Registra una amonestación contra @%{acct} para ayudarte a escalar futuras violaciones de esta cuenta + send_email_html: Enviar a @%{acct} un correo electrónico de advertencia + warning_placeholder: Razones adicionales opcionales para la acción de moderación. target_origin: Origen de la cuenta reportada title: Reportes unassign: Desasignar + unknown_action_msg: 'Acción desconocida: %{action}' unresolved: No resuelto updated_at: Actualizado view_profile: Ver perfil @@ -715,6 +737,7 @@ es: profile_directory: Directorio de perfiles public_timelines: Lineas de tiempo públicas publish_discovered_servers: Publicar servidores descubiertos + publish_statistics: Publicar estadísticas title: Descubrimiento trends: Tendencias domain_blocks: @@ -942,6 +965,8 @@ es: auth: apply_for_account: Solicitar una cuenta change_password: Contraseña + confirmations: + wrong_email_hint: Si esa dirección de correo electrónico no es correcta, puedes cambiarla en la configuración de la cuenta. delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: diff --git a/config/locales/et.yml b/config/locales/et.yml index 713df46dc3..12dabbbc21 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -441,6 +441,7 @@ et: private_comment_description_html: 'Pidamaks järge, kust imporditud keelud pärinevad, luuakse need järneva privaatse kommentaariga: %{comment}' private_comment_template: Imporditud allikast %{source} kuupäeval %{date} title: Domeenikeeldude import + invalid_domain_block: 'Üks või mitu domeeniblokeeringut jäeti vahele järgnevate vigade tõttu: %{error}' new: title: Domeenikeeldude import no_file: Faili pole valitud @@ -589,6 +590,7 @@ et: comment: none: Pole comment_description_html: 'Täiendava infona kirjutas %{name}:' + confirm_action: Kinnita @%{acct} modereering created_at: Teavitatud delete_and_resolve: Kustuta postitused forwarded: Edastatud @@ -605,6 +607,7 @@ et: placeholder: Kirjelda, mis on ette võetud või muid seotud uuendusi... title: Märkmed notes_description_html: Märkmete vaatamine ja jätmine teistele moderaatoritele ja tulevikuks endale + processed_msg: 'Raport #%{id} edukalt käsitletud' quick_actions_description_html: 'Võimalus teha kiire otsus või näha raporteeritud sisu allpool:' remote_user_placeholder: kaugkasutaja domeenist %{instance} reopen: Taasava teavitus @@ -617,9 +620,28 @@ et: status: Olek statuses: Raporteeritud sisu statuses_description_html: Sobimatu sisu kaasatakse suhtlusse raporteeritud kontoga + summary: + action_preambles: + delete_html: 'Oled eemaldamas mõnesid @%{acct} postitusi. Selle tulemusena:' + mark_as_sensitive_html: 'Oled märkimas mõnesid @%{acct} postitusi tundlikuks. Selle tulemusena:' + silence_html: 'Oled määramas piirangut kontole @%{acct}. Selle tulemusena:' + suspend_html: 'Oled peatamas kontot @%{acct}. Selle tulemusena:' + actions: + delete_html: Solvava postituse eemaldamine + mark_as_sensitive_html: Solvava postituse meedia märkimine tundlikuks + silence_html: "@%{acct} ulatuse tugev piiramine muutes tema profiili ja sisu nähtavaks ainult neile, kes teda juba jälgivad, või neile, kes just tema profiili üles otsivad" + suspend_html: "@%{acct} peatamine, muutes tema profiili ja sisu mitteligipääsetavaks ning mitteinterakteerutavaks" + close_report: 'Raporti #%{id} lahendatuks märkimine' + close_reports_html: Märgi kõik raportid @%{acct} vastu lahendatuks + delete_data_html: Kustuta tänasest 30 päeva pärast kasutaja @%{acct} profiil ja sisu, kui vahepeal tema kontot ei taastata + preview_preamble_html: "@%{acct} saab järgmise sisuga hoiatuse:" + record_strike_html: Salvesta @%{acct} kohta juhtum, et aidata selle konto tulevaste rikkumiste puhul reageerida + send_email_html: Saada kasutajale @%{acct} hoiatus-e-kiri + warning_placeholder: Valikuline täiendav põhjendus modereerimisele. target_origin: Raporteeritud konto päritolu title: Teavitused unassign: Eemalda määramine + unknown_action_msg: 'Tundmatu tegevus: %{action}' unresolved: Lahendamata updated_at: Uuendatud view_profile: Vaata profiili @@ -943,6 +965,8 @@ et: auth: apply_for_account: Konto taotluse esitamine change_password: Salasõna + confirmations: + wrong_email_hint: Kui see e-postiaadress pole korrektne, saad seda kontosätetes muuta. delete_account: Konto kustutamine delete_account_html: Kui soovid oma konto kustutada, siis jätka siit. Pead kustutamise eraldi kinnitama. description: diff --git a/config/locales/eu.yml b/config/locales/eu.yml index c884e35aa3..917a70e401 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -117,6 +117,7 @@ eu: reject: Ukatu rejected_msg: "%{username} erabiltzailearen izen emate eskaera behar bezala ukatu da" remote_suspension_irreversible: Kontu honetako datuak betiko ezabatuak izan dira. + remote_suspension_reversible_hint_html: Kontu hau kanporatua izan da bere zerbitzarian eta bere datuak %{date}(e)an behin betiko ezabatuko dira. Ordura arte urruneko zerbitzariak kontua kalterik gabe leheneratu dezake. Kontuaren datu guztiak oraintxe bertan ezabatu nahi badituzu, jarraian egin dezakezu. remove_avatar: Kendu abatarra remove_header: Kendu goiburua removed_avatar_msg: "%{username} erabiltzailearen avatarra behar bezala kendu da" @@ -391,10 +392,15 @@ eu: create: Sortu blokeoa hint: Domeinuaren blokeoak ez du eragotziko kontuen sarrerak sortzea datu-basean, baina automatikoki ezarriko zaizkie moderazio metodo bereziak iraganeko mezuetan ere. severity: + desc_html: |- + Mugatu aukerak, domeinu hontako kontu guztien bidalketak ikusezinak bihurtuko dira jarraitzen ez dituztenentzat. + Egotzi aukerak, domeinu hontako kontu guztien, edukiak, media eta profilen datuak ezabatuak izango dira zure zerbitzaritik. Erabili Bat ere ez aukera soilik media-fitxategiak ukatu nahi badituzu. noop: Bat ere ez silence: Isilarazi suspend: Kanporatu title: Domeinuaren blokeo berria + no_domain_block_selected: Ez da domeinu berririk blokeatu, bat ere ez delako aukeratu + not_permitted: Ekintza hau egiteko baimenik ez duzu obfuscate: Lausotu domeinu-izena obfuscate_hint: Domeinuaren izena partzialki lausotu zerrendan, domeinuen zerrenda iragartzea mugatzea gaituta badago private_comment: Iruzkin pribatua @@ -427,8 +433,19 @@ eu: resolved_through_html: "%{domain} domeinuaren bidez ebatzia" title: E-mail zerrenda beltza export_domain_allows: + new: + title: Baimendutako domeinuak inportatu no_file: Ez da fitxategirik hautatu export_domain_blocks: + import: + description_html: Blokeatutako domeinuen zerrenda bat inportatzera zoaz. Mesedez, berrikusi zerrenda kontu handiz, batez ere, zuk ez baduzu zerrenda hau egin. + existing_relationships_warning: Oraingo jarraipen-loturak + private_comment_description_html: 'Inportatutako blokeoak nondik datozen zuri jakiten laguntzeko, hauek hurrengo iruzkin pribatuarekin sortuko dira: %{comment}' + private_comment_template: "%{date} %{source}-(e)tik inportatua" + title: Domeinu-blokeoak inportatu + invalid_domain_block: 'Domeinu-blokeatze bat edo gehiago ekidin dira ondorengo errorearen edo erroreengatik: %{error}' + new: + title: Domeinu-blokeoak inportatu no_file: Ez da fitxategirik hautatu follow_recommendations: description_html: "Jarraitzeko gomendioek erabiltzaile berriei eduki interesgarria azkar aurkitzen laguntzen diete. Erabiltzaile batek jarraitzeko gomendio pertsonalizatuak jasotzeko adina interakzio izan ez duenean, kontu hauek gomendatzen zaizkio. Egunero birkalkulatzen dira hizkuntza bakoitzerako, azken aldian parte-hartze handiena izan duten eta jarraitzaile lokal gehien dituzten kontuak nahasiz." @@ -561,7 +578,10 @@ eu: mark_as_sensitive_description_html: Salatutako bidalketetako multimedia edukia hunkigarri bezala eta neurria gordeko da, etorkizunean kontu honek arau-hausterik egiten badu kontuan izan dezazun. other_description_html: Ikusi kontuaren portaera kontrolatzeko eta salatutako kontuarekin komunikazioa pertsonalizatzeko aukera gehiago. resolve_description_html: Ez da ekintzarik hartuko salatutako kontuaren aurka, ez da neurria gordeko eta salaketa itxiko da. + silence_description_html: Kontua soilik honen jarraitzaile edo espresuki bilatzen dutenentzat izango da ikusgarri, kontuaren irisgarritasuna gogorki mugatzen delarik. + suspend_description_html: Kontua bera eta honen edukiak eskuraezinak izango dira, eta azkenean, ezabatuak. Kontu honekin erlazionatzea ezinezkoa izango da. Prozesua 30 egunez itzulgarria izango da. Kontu honen aurkako txosten guztiak baztertuko lirateke. actions_description_html: Erabaki txosten hau konpontzeko ze ekintza hartu. Salatutako kontuaren aurka zigor ekintza bat hartzen baduzu, eposta jakinarazpen bat bidaliko zaie, Spam kategoria hautatzean ezik. + actions_description_remote_html: Txosten honi konponbidea aurkitzeko zein ekintza egin hautatu. Hau soilik zure zerbitzaria kontu honekin nola komunikatu eta bere edukia nola maneiatzeko da. add_to_report: Gehitu gehiago txostenera are_you_sure: Ziur zaude? assign_to_self: Esleitu niri @@ -572,6 +592,7 @@ eu: comment: none: Bat ere ez comment_description_html: 'Informazio gehiago emateko, %{name} idatzi:' + confirm_action: "@%{acct} kontuaren aurkako moderazio-ekintza baieztatu" created_at: Salatua delete_and_resolve: Ezabatu bidalketak forwarded: Birbidalia @@ -588,6 +609,7 @@ eu: placeholder: Azaldu hartutako neurriak, edo erlazioa duten bestelako berriak... title: Oharrak notes_description_html: Ikusi eta idatzi oharrak beste moderatzaileentzat eta zuretzat etorkizunerako + processed_msg: "#%{id} txostena ongi prozesatu da" quick_actions_description_html: 'Hartu ekintza azkar bat edo korritu behera salatutako edukia ikusteko:' remote_user_placeholder: "%{instance} instantziako urruneko erabiltzailea" reopen: Berrireki salaketa @@ -600,9 +622,28 @@ eu: status: Mezua statuses: Salatutako edukia statuses_description_html: Salatutako edukia salatutako kontuarekiko komunikazioan aipatuko da + summary: + action_preambles: + delete_html: "@%{acct} kontuaren bidalketa guztiak ezabatzera zoaz. Honek hau suposatuko du:" + mark_as_sensitive_html: "%{acct} kontuaren bidalketa guztiak hunkigarri gisa markatzera zoaz. Honek hau suposatuko du:" + silence_html: "@%{acct} kontua mugatzera zoaz. Honek hau suposatuko du:" + suspend_html: "@%{acct} kontua bertan behera uztera zoaz. Honek hau suposatuko du:" + actions: + delete_html: Bidalketa iraingarriak ezabatu + mark_as_sensitive_html: Bidalketa iraingarrien media hunkigarri gisa markatu + silence_html: "@%{acct} kontuaren irismena gogorki mugatu, beraren profila eta edukia soilik bere jarraitzaileentzat eta espresuki profila aurkitzen dutenentzat ikusgarri egiten direlarik" + suspend_html: "@%{acct} kontua bertan behera utzi, bere profila eta edukia iritsezin eta elkarreragin ezina izango direlarik" + close_report: "#%{id} txostena ebatzitako gisa markatu" + close_reports_html: "@%{acct} kontuaren txosten guztiak ebatzitako gisa markatu" + delete_data_html: "@%{acct} kontuaren profila eta edukia, gaurtik hasita, 30 egunez ezabatu, ez bada bitartean kontua berraktibatzen" + preview_preamble_html: "@%{acct} kontuak ondorengo edukia duen abisu bat jasoko du:" + record_strike_html: "@%{acct} kontuak eginiko eraso bat erregistratu, kontu honek etorkizunean egin ditzakeen erasoen aurrean erabakiak hartzen laguntzeko" + send_email_html: "@%{acct} kontuari abisu bat posta-elektronikoz bidali" + warning_placeholder: Moderazio-ekintzarako aukerazkoak diren arrazoiketa gehigarriak. target_origin: Salatutako kontuaren jatorria title: Salaketak unassign: Kendu esleipena + unknown_action_msg: 'Ekintza ezezaguna: %{action}' unresolved: Konpondu gabea updated_at: Eguneratua view_profile: Ikusi profila @@ -689,11 +730,16 @@ eu: content_retention: preamble: Kontrolatu erabiltzaileek sortutako edukia nola biltegiratzen den Mastodonen. title: Edukia atxikitzea + default_noindex: + desc_html: Ezarpen hau aldatu ez duten erabiltzaile guztiei eragingo die + title: Erabiltzaileei bilaketa-motorraren indexaziotik at egoteko aukera ematen die lehenetsitako aukera modura discovery: follow_recommendations: Jarraitzeko gomendioak preamble: Eduki interesgarria aurkitzea garrantzitsua da Mastodoneko erabiltzaile berrientzat, behar bada inor ez dutelako ezagutuko. Kontrolatu zure zerbitzariko aurkikuntza-ezaugarriek nola funtzionatzen duten. profile_directory: Profil-direktorioa public_timelines: Denbora-lerro publikoak + publish_discovered_servers: Deskubritutako zerbitzariak argitaratu + publish_statistics: Estatistikak argitaratu title: Aurkitzea trends: Joerak domain_blocks: @@ -919,7 +965,10 @@ eu: warning: Kontuz datu hauekin, ez partekatu inoiz inorekin! your_token: Zure sarbide token-a auth: + apply_for_account: Kontu bat eskatu change_password: Pasahitza + confirmations: + wrong_email_hint: Helbide-elektroniko hori zuzena ez bada, kontuaren ezarpenetan alda dezakezu. delete_account: Ezabatu kontua delete_account_html: Kontua ezabatu nahi baduzu, jarraitu hemen. Berrestea eskatuko zaizu. description: @@ -955,6 +1004,9 @@ eu: email_below_hint_html: Beheko e-mail helbidea okerra bada, hemen aldatu dezakezu eta baieztapen e-mail berria jaso. email_settings_hint_html: Baieztamen e-maila %{email} helbidera bidali da. E-mail helbide hori zuzena ez bada, kontuaren ezarpenetan aldatu dezakezu. title: Ezarpena + sign_in: + preamble_html: Zure %{domain}-(e)ko egiaztagiriekin saioa hasi. Zure kontua beste zerbitzari batean badago, ezin izango duzu hemen saioa hasi. + title: "%{domain}-(e)an saioa hasi" sign_up: preamble: Mastodon zerbitzari honetako kontu batekin, aukera izango duzu sareko edozein pertsona jarraitzeko, ez dio axola kontua non ostatatua dagoen. title: "%{domain} zerbitzariko kontua prestatuko dizugu." @@ -1344,6 +1396,9 @@ eu: unrecognized_emoji: ez da emoji ezaguna relationships: activity: Kontuaren aktibitatea + confirm_follow_selected_followers: Ziur al zaude hautatutako jarraitzaileak jarraitu nahi dituzula? + confirm_remove_selected_followers: Ziur al zaude hautatutako jarraitzaileak ezabatu nahi dituzula? + confirm_remove_selected_follows: Ziur al zaude hautatutako jarraipenak ezabatu nahi dituzula? dormant: Ez aktiboa follow_selected_followers: Jarraitu hautatutako jarraitzaileak followers: Jarraitzaileak diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9c1831d7fb..16a1b6650a 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -12,7 +12,7 @@ fi: one: Seuraaja other: Seuraajat following: Seuraaja - instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule keskeyttää. + instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule jäädyttää. last_active: viimeksi aktiivinen link_verified_on: Tämän linkin omistus on tarkastettu %{date} nothing_here: Täällä ei ole mitään! @@ -20,8 +20,8 @@ fi: following: Sinun täytyy seurata henkilöä jota haluat tukea posts: one: Julkaisu - other: Julkaisut - posts_tab_heading: Julkaisut + other: Viestit + posts_tab_heading: Viestit admin: account_actions: action: Suorita toimenpide @@ -121,30 +121,30 @@ fi: remove_avatar: Poista profiilikuva remove_header: Poista otsakekuva removed_avatar_msg: Käyttäjän %{username} avatar-kuva poistettu onnistuneesti - removed_header_msg: Käyttäjän %{username} otsikkokuva poistettiin onnistuneesti + removed_header_msg: Käyttäjän %{username} otsakekuva poistettiin onnistuneesti resend_confirmation: already_confirmed: Tämä käyttäjä on jo vahvistettu - send: Lähetä varmistusviesti uudelleen + send: Lähetä vahvistusviesti uudelleen success: Vahvistusviesti onnistuneesti lähetetty! reset: Palauta reset_password: Palauta salasana resubscribe: Tilaa uudelleen role: Rooli search: Hae - search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostiverkkotunnus - search_same_ip: Muut käyttäjät samalla IP-osoitteella + search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus + search_same_ip: Muut käyttäjät, joilla on sama IP-osoite security_measures: only_password: Vain salasana password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen - sensitive: Pakotus arkaluontoiseksi - sensitized: Merkitty arkaluontoiseksi + sensitive: Pakotus arkaluonteiseksi + sensitized: Merkitty arkaluonteiseksi shared_inbox_url: Jaetun saapuvan postilaatikon osoite show: created_reports: Tämän tilin luomat raportit targeted_reports: Tästä tilistä tehdyt raportit silence: Hiljennä silenced: Mykistetty - statuses: Tilat + statuses: Viestit strikes: Aiemmat varoitukset subscribe: Tilaa suspend: Jäädytä @@ -155,17 +155,17 @@ fi: unblock_email: Poista sähköpostiosoitteen esto unblocked_email_msg: Käyttäjän %{username} sähköpostiosoitteen esto kumottiin unconfirmed_email: Sähköpostia ei vahvistettu - undo_sensitized: Kumoa pakotus arkaluontoiseksi tiliksi + undo_sensitized: Kumoa pakotus arkaluonteiseksi tiliksi undo_silenced: Peru hiljennys undo_suspension: Peru jäähy - unsilenced_msg: "%{username} -tilin rajoituksen kumoaminen onnistui" + unsilenced_msg: Tilin %{username} rajoituksen kumoaminen onnistui unsubscribe: Lopeta tilaus - unsuspended_msg: "%{username} -tilin keskeytyksen kumoaminen onnistui" + unsuspended_msg: Tilin %{username} jäädytyksen kumoaminen onnistui username: Käyttäjätunnus view_domain: Näytä verkkotunnuksen yhteenveto warn: Varoita web: Verkko - whitelisted: Sallittu liittämiselle + whitelisted: Sallittu federaatioon action_logs: action_types: approve_appeal: Hyväksy valitus @@ -178,9 +178,9 @@ fi: create_announcement: Luo ilmoitus create_canonical_email_block: Luo sähköpostin esto create_custom_emoji: Luo mukautettu emoji - create_domain_allow: Salli palvelin - create_domain_block: Estä palvelin - create_email_domain_block: Estä sähköpostipalvelin + create_domain_allow: Luo verkkotunnuksen salliminen + create_domain_block: Luo verkkotunnuksen esto + create_email_domain_block: Luo sähköpostin verkkotunnuksen esto create_ip_block: Luo IP-sääntö create_unavailable_domain: Luo ei-saatavilla oleva verkkotunnus create_user_role: Luo rooli @@ -188,21 +188,21 @@ fi: destroy_announcement: Poista ilmoitus destroy_canonical_email_block: Poista sähköpostin esto destroy_custom_emoji: Poista mukautettu emoji - destroy_domain_allow: Salli verkkotunnuksen poisto + destroy_domain_allow: Poista verkkotunnuksen salliminen destroy_domain_block: Poista verkkotunnuksen esto - destroy_email_domain_block: Poista sähköpostipalvelimen esto + destroy_email_domain_block: Poista sähköpostin verkkotunnuksen esto destroy_instance: Tyhjennä verkkotunnus destroy_ip_block: Poista IP-sääntö - destroy_status: Poista julkaisu + destroy_status: Poista viesti destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus destroy_user_role: Hävitä rooli disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä - disable_custom_emoji: Estä mukautettu emoji + disable_custom_emoji: Poista mukautettu emoji käytöstä disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksen todennus - disable_user: Tili poistettu käytöstä + disable_user: Poista tili käytöstä enable_custom_emoji: Käytä mukautettuja emojeita enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksen todennus - enable_user: Tili otettu käyttöön + enable_user: Ota tili käyttöön memorialize_account: Muuta muistotiliksi promote_user: Käyttäjä ylennetty reject_appeal: Hylkää valitus @@ -231,32 +231,32 @@ fi: approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}" assigned_to_self_report_html: "%{name} otti raportin %{target} tehtäväkseen" change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen" - change_role_user_html: "%{name} muutti roolia %{target}" + change_role_user_html: "%{name} muutti käyttäjän %{target} roolia" confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" - create_account_warning_html: "%{name} lähetti varoituksen henkilölle %{target}" + create_account_warning_html: "%{name} lähetti varoituksen käyttäjälle %{target}" create_announcement_html: "%{name} loi uuden ilmoituksen %{target}" create_canonical_email_block_html: "%{name} esti sähköpostin hashilla %{target}" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" - create_domain_allow_html: "%{name} salli yhdistäminen verkkotunnuksella %{target}" + create_domain_allow_html: "%{name} salli federaation verkkotunnuksella %{target}" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" create_email_domain_block_html: "%{name} esti sähköpostin %{target}" - create_ip_block_html: "%{name} luonut IP-säännön %{target}" + create_ip_block_html: "%{name} loi IP-säännön %{target}" create_unavailable_domain_html: "%{name} pysäytti toimituksen verkkotunnukseen %{target}" - create_user_role_html: "%{name} luonut %{target} roolin" + create_user_role_html: "%{name} loi roolin %{target}" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti ilmoituksen %{target}" - destroy_canonical_email_block_html: "%{name} poisti sähköposti eston hashilla %{target}" + destroy_canonical_email_block_html: "%{name} poisti sähköpostieston hashilla %{target}" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" - destroy_domain_allow_html: "%{name} esti yhdistämisen verkkotunnuksella %{target}" + destroy_domain_allow_html: "%{name} esti federaation verkkotunnuksella %{target}" destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston" - destroy_email_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston" + destroy_email_domain_block_html: "%{name} poisti sähköpostin verkkotunnuksen %{target} eston" destroy_instance_html: "%{name} tyhjensi verkkotunnuksen %{target}" destroy_ip_block_html: "%{name} poisti IP-säännön %{target}" - destroy_status_html: "%{name} poisti viestin %{target}" + destroy_status_html: "%{name} poisti käyttäjän %{target} viestin" destroy_unavailable_domain_html: "%{name} jatkoi toimitusta verkkotunnukseen %{target}" - destroy_user_role_html: "%{name} poisti %{target} roolin" + destroy_user_role_html: "%{name} poisti roolin %{target}" disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen" - disable_custom_emoji_html: "%{name} poisti emojin %{target}" + disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}" disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksen %{target} todennuksen käytöstä" disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}" enable_custom_emoji_html: "%{name} salli emojin %{target}" @@ -271,17 +271,17 @@ fi: resend_user_html: "%{name} lähetti vahvistusviestin sähköpostitse käyttäjälle %{target}" reset_password_user_html: "%{name} palautti käyttäjän %{target} salasanan" resolve_report_html: "%{name} ratkaisi raportin %{target}" - sensitive_account_html: "%{name} merkitsi %{target} median arkaluonteiseksi" - silence_account_html: "%{name} rajoitti %{target} tilin" + sensitive_account_html: "%{name} merkitsi käyttäjän %{target} median arkaluonteiseksi" + silence_account_html: "%{name} rajoitti käyttäjän %{target} tilin" suspend_account_html: "%{name} siirsi käyttäjän %{target} jäähylle" unassigned_report_html: "%{name} peruutti raportin määrityksen %{target}" - unblock_email_account_html: "%{name} poisti %{target} sähköpostiosoitteen eston" - unsensitive_account_html: "%{name} poisti merkinnän %{target} arkaluonteinen media" + unblock_email_account_html: "%{name} poisti käyttäjän %{target} sähköpostiosoitteen eston" + unsensitive_account_html: "%{name} poisti käyttäjän %{target} median arkaluonteisen merkinnän" unsilence_account_html: "%{name} ei tehnyt rajoitusta %{target} tilille" unsuspend_account_html: "%{name} perui käyttäjän %{target} jäähyn" update_announcement_html: "%{name} päivitti ilmoituksen %{target}" update_custom_emoji_html: "%{name} päivitti emojin %{target}" - update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target}" + update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target} eston" update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}" update_status_html: "%{name} päivitti viestin %{target}" update_user_role_html: "%{name} muutti roolia %{target}" @@ -302,9 +302,9 @@ fi: publish: Julkaise published_msg: Ilmoitus julkaistu onnistuneesti! scheduled_for: Ajastettu %{time} - scheduled_msg: Ilmoitus on tarkoitus julkaista! + scheduled_msg: Ilmoitus on ajastettu julkaisua varten! title: Ilmoitukset - unpublish: Julkaisematon + unpublish: Lopeta julkaisu unpublished_msg: Ilmoituksen julkaisu lopetettu! updated_msg: Ilmoitus päivitetty onnistuneesti! custom_emojis: @@ -324,12 +324,12 @@ fi: enable: Ota käyttöön enabled: Käytössä enabled_msg: Emojin käyttöönotto onnistui - image_hint: PNG tai GIF enintään %{size} + image_hint: PNG tai GIF, enintään %{size} list: Listaa listed: Listassa new: title: Lisää uusi mukautettu emoji - no_emoji_selected: Hymiöitä ei muutettu, koska yhtään ei valittu + no_emoji_selected: Emojeita ei muutettu, koska yhtään ei valittu not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa overwrite: Kirjoita yli shortcode: Lyhennekoodi @@ -586,6 +586,7 @@ fi: comment: none: Ei mitään comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:' + confirm_action: Vahvista moderointitoiminto käyttäjää @%{acct} kohtaan created_at: Raportoitu delete_and_resolve: Poista viestejä forwarded: Välitetty @@ -602,6 +603,7 @@ fi: placeholder: Kuvaile mitä toimia on tehty tai muita päivityksiä tähän raporttiin… title: Merkinnät notes_description_html: Tarkastele ja jätä merkintöjä muille valvojille ja itsellesi tulevaisuuteen + processed_msg: 'Raportti #%{id} käsitelty' quick_actions_description_html: 'Suorita nopea toiminto tai vieritä alas nähdäksesi raportoitu sisältö:' remote_user_placeholder: etäkäyttäjä instanssista %{instance} reopen: Avaa raportti uudestaan @@ -614,9 +616,26 @@ fi: status: Tila statuses: Raportoitu sisältö statuses_description_html: Loukkaava sisältö mainitaan ilmoitetun tilin yhteydessä + summary: + action_preambles: + delete_html: 'Olet aikeissa poistaa joitain käyttäjän @%{acct} viestejä. Tästä seuraa:' + mark_as_sensitive_html: 'Olet aikeissa merkitä joitain käyttäjän @%{acct} viestejä arkaluonteisiksi. Tästä seuraa:' + silence_html: 'Olet aikeissa rajoittaa käyttäjän @%{acct} tiliä. Tästä seuraa:' + suspend_html: 'Olet aikeissa rajoittaa käyttäjän @%{acct} tiliä. Tästä seuraa:' + actions: + delete_html: Loukkaavat viestit poistetaan + mark_as_sensitive_html: Loukkaavien viestien media merkitään arkaluonteiseksi + silence_html: Vakavasti rajoittaa käyttäjän @%{acct} tavoitettavuutta tekemällä profiilista ja sen sisällöstä näkyviä vain jo häntä seuraaville tai niille, jotka etsivät profiilia manuaalisesti + suspend_html: Rajoita @%{acct}, jolloin heidän profiilinsa ja sisällönsä ei ole käytettävissä ja on mahdotonta olla vuorovaikutuksessa + close_report: 'Merkitse raportti #%{id} selvitetyksi' + close_reports_html: Merkitse kaikki käyttäjään @%{acct} kohdistuvat raportit ratkaistuiksi + preview_preamble_html: "@%{acct} saa varoituksen, jonka sisältö on seuraava:" + send_email_html: Lähetä käyttäjälle @%{acct} varoitus sähköpostitse + warning_placeholder: Valinnaiset lisäperustelut moderointitoimenpiteelle. target_origin: Raportoidun tilin alkuperä title: Raportit unassign: Määrittämätön + unknown_action_msg: 'Tuntematon toiminto: %{action}' unresolved: Ratkaisemattomat updated_at: Päivitetty view_profile: Näytä profiili @@ -763,7 +782,7 @@ fi: none: "%{name} lähetti varoituksen henkilölle %{target}" sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi" silence: "%{name} rajoitti käyttäjän %{target} tilin" - suspend: "%{name} keskeytti käyttäjän %{target} tilin" + suspend: "%{name} jäädytti käyttäjän %{target} tilin" appeal_approved: Valitti appeal_pending: Valitus vireillä system_checks: @@ -836,7 +855,7 @@ fi: not_trendable: Ei näy trendien alla not_usable: Ei voida käyttää peaked_on_and_decaying: Saavutti huipun %{date}, nyt hiipuu - title: Suositut tunnisteet + title: Suositut aihetunnisteet trendable: Voi näkyä trendien alla trending_rank: 'Nousussa #%{rank}' usable: Voidaan käyttää @@ -881,7 +900,7 @@ fi: none: varoitus sensitive: merkitä heidän tilinsä arkaluonteiseksi silence: rajoittaa heidän tilinsä - suspend: keskeyttää heidän tilinsä + suspend: jäädyttää heidän tilinsä body: "%{target} on valittanut valvojan päätöksestä %{action_taken_by} aika %{date}, joka oli %{type}. He kirjoittivat:" next_steps: Voit hyväksyä vetoomuksen ja kumota päätöksen tai jättää sen huomiotta. subject: "%{username} valittaa valvojan päätöksestä, joka koskee instanssia %{instance}" @@ -939,6 +958,8 @@ fi: auth: apply_for_account: Pyydä tiliä change_password: Salasana + confirmations: + wrong_email_hint: Jos sähköpostiosoite ei ole oikein, voit muuttaa sen tilin asetuksista. delete_account: Poista tili delete_account_html: Jos haluat poistaa tilisi, paina tästä. Poisto on vahvistettava. description: @@ -1071,7 +1092,7 @@ fi: none: Varoitus sensitive: Tilin merkitseminen arkaluonteiseksi silence: Tilin rajoittaminen - suspend: Tilin keskeyttäminen + suspend: Tilin jäädyttäminen your_appeal_approved: Valituksesi on hyväksytty your_appeal_pending: Olet lähettänyt valituksen your_appeal_rejected: Valituksesi on hylätty @@ -1308,9 +1329,9 @@ fi: poll: subject: Äänestys käyttäjältä %{name} on päättynyt reblog: - body: "%{name} buustasi tilaasi:" - subject: "%{name} boostasi tilaasi" - title: Uusi buustaus + body: "%{name} tehosti viestiäsi:" + subject: "%{name} tehosti viestiäsi" + title: Uusi tehostus status: subject: "%{name} julkaisi juuri" update: @@ -1475,7 +1496,7 @@ fi: video: one: "%{count} video" other: "%{count} videota" - boosted_from_html: Tehostettu %{acct_link} + boosted_from_html: Tehostus lähteestä %{acct_link} content_warning: 'Sisältövaroitus: %{warning}' default_language: Sama kuin käyttöliittymän kieli disallowed_hashtags: @@ -1490,7 +1511,7 @@ fi: direct: Viestejä, jotka ovat näkyvissä vain mainituille käyttäjille, ei voi kiinnittää limit: Olet jo kiinnittänyt suurimman mahdollisen määrän tuuttauksia ownership: Muiden tuuttauksia ei voi kiinnittää - reblog: Buustausta ei voi kiinnittää + reblog: Tehostusta ei voi kiinnittää poll: total_people: one: "%{count} henkilö" @@ -1550,7 +1571,7 @@ fi: min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä stream_entries: pinned: Kiinnitetty tuuttaus - reblogged: buustasi + reblogged: tehosti sensitive_content: Arkaluontoista sisältöä strikes: errors: @@ -1624,7 +1645,7 @@ fi: none: Varoitus %{acct} sensitive: Sinun viestisi %{acct} merkitään arkaluonteisiksi tästä lähtien silence: Tilisi %{acct} on rajoitettu - suspend: Tilisi %{acct} on keskeytetty + suspend: Tilisi %{acct} on jäädytetty title: delete_statuses: Viestit poistettu disable: Tili jäädytetty @@ -1632,7 +1653,7 @@ fi: none: Varoitus sensitive: Tili on merkitty arkaluonteiseksi silence: Rajoitettu tili - suspend: Tilin käyttäminen keskeytetty + suspend: Tilin käyttäminen jäädytetty welcome: edit_profile_action: Aseta profiili 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. diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 0d8234be1d..874bdc17f2 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -441,6 +441,7 @@ fo: private_comment_description_html: Fyri at hjálpa tær at fylgja við í, hvaðani innfluttir blokkar koma, verða innfluttu blokkarnir stovnaðir við hesi privatu viðmerkingini:%{comment} private_comment_template: Innflutt frá %{source} tann %{date} title: Innflyt navnaøkjablokeringar + invalid_domain_block: 'Ein ella fleiri navnaøkjablokeringar vóru umlopnar vegna hesar feil(ir): %{error}' new: title: Innflyt navnaøkjablokeringar no_file: Eingin fíla vald @@ -589,6 +590,7 @@ fo: comment: none: Eingin comment_description_html: 'Fyri at veita fleiri upplýsingar skrivaði %{name}:' + confirm_action: Vátta umsjónaratgerð móti @%{acct} created_at: Meldað delete_and_resolve: Strika postar forwarded: Víðarisent @@ -605,6 +607,7 @@ fo: placeholder: Greið frá, hvørjar atgerðir hava verið gjørdar ella aðrar viðkomandi dagføringar... title: Viðmerkingar notes_description_html: Vís ella skriva viðmerkingar til onnur umsjónarfólk ella teg sjálva/n í framtíðini + processed_msg: 'Rapportering #%{id} liðugt viðgjørd' quick_actions_description_html: 'Tak eina skjóta avgerð ella skrulla niðureftir fyri at síggja meldaða innihaldið:' remote_user_placeholder: fjarbrúkarin frá %{instance} reopen: Lat melding uppaftur @@ -617,9 +620,28 @@ fo: status: Støða statuses: Meldað innihald statuses_description_html: Tilfarið, sum brotið viðvíkur, fer at vera siterað í samskifti við meldaðu kontuni + summary: + action_preambles: + delete_html: 'Tú er í ferð við at strika nakrar av postunum hjá @%{acct}. Hetta fer at:' + mark_as_sensitive_html: 'Tú er í ferð við at merkja nakrar av postunum hjá @%{acct} sum viðkvæmar. Hetta fer at:' + silence_html: 'Tú er í ferð við at avmarka kontuna hjá @%{acct}. Hetta fer at:' + suspend_html: 'Tú er í ferð við at gera kontuna hjá @%{acct} óvirkna. Hetta fer at:' + actions: + delete_html: Strika postar, ið eru farnir útum mark + mark_as_sensitive_html: Merk postar, ið eru farnir um mark, sum viðkvæmar + silence_html: Avmarka hvussu langt @%{acct} røkkur við einans at lata vangan og innihaldið hjá teimum vera sjónligt hjá fólki, sum longu fylgja teimum ella manuelt sláa vangan upp + suspend_html: Ger kontuna @%{acct} óvirkna, soleiðis at vangin og innihaldið verður óframkomiligt og ómøguligt at samvirka við + close_report: 'Merk kæruna #%{id} sum loysta' + close_reports_html: Merk allar kærur móti @%{acct} sum loystar + delete_data_html: Strika vangan og innihaldið hjá @%{acct} um 30 dagar uttan so at kontan verður gjørd virkin aftur áðrenn tað + preview_preamble_html: "@%{acct} ger at móttaka eina ávaring við hesum innihaldi:" + record_strike_html: Skráset eitt brot á @%{acct}, soleiðis at tað kann havast í huga í samband við møgulig framtíðar mishald + send_email_html: Send @%{acct} eitt teldubræv við eini ávaring + warning_placeholder: Møguligar eyka grundgevingar fyri umsjónaratgerð. target_origin: Uppruni hjá meldaðu kontuni title: Meldingar unassign: Strika tillutan + unknown_action_msg: 'Ókend atgerð: %{action}' unresolved: Óloyst updated_at: Dagført view_profile: Vís vangamynd @@ -943,6 +965,8 @@ fo: auth: apply_for_account: Bið um eina kontu change_password: Loyniorð + confirmations: + wrong_email_hint: Um hesin teldupoststaðurin ikki er rættur, so kanst tú broyta hann í kontustillingunum. delete_account: Strika kontu delete_account_html: Ynskir tú at strika kontuna, so kanst tú halda fram her. Tú verður spurd/ur um váttan. description: diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index f63bd65e81..ed4c900f7f 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -575,7 +575,10 @@ fr-QC: mark_as_sensitive_description_html: Les médias des messages signalés seront marqués comme sensibles et une sanction sera enregistrée pour vous aider à prendre les mesures appropriées en cas d'infractions futures par le même compte. other_description_html: Voir plus d'options pour contrôler le comportement du compte et personnaliser la communication vers le compte signalé. resolve_description_html: Aucune mesure ne sera prise contre le compte signalé, aucune sanction ne sera enregistrée et le sigalement sera clôturé. + silence_description_html: Le compte ne sera visible que par ceux qui le suivent déjà ou qui le recherchent manuellement, ce qui limite fortement sa portée. Cette action peut toujours être annulée. Cloture tous les signalements concernant ce compte. + suspend_description_html: Le compte et tous ses contenus seront inaccessibles et finalement supprimés, et il sera impossible d'interagir avec lui. Réversible dans les 30 jours. Cloture tous les signalements concernant ce compte. actions_description_html: Décidez des mesures à prendre pour résoudre ce signalement. Si vous prenez des mesures punitives contre le compte signalé, une notification sera envoyée par e-mail, sauf si la catégorie Spam est sélectionnée. + actions_description_remote_html: Décidez des mesures à prendre pour résoudre ce signalement. Cela n'affectera que la manière dont votre serveur communique avec ce compte distant et traite son contenu. add_to_report: Ajouter davantage au rapport are_you_sure: Voulez-vous vraiment faire ça ? assign_to_self: Me l’assigner @@ -711,6 +714,8 @@ fr-QC: preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. profile_directory: Annuaire des profils public_timelines: Fils publics + publish_discovered_servers: Publier les serveurs découverts + publish_statistics: Publier les statistiques title: Découverte trends: Tendances domain_blocks: @@ -1365,6 +1370,9 @@ fr-QC: unrecognized_emoji: n’est pas un émoji reconnu relationships: activity: Activité du compte + confirm_follow_selected_followers: Voulez-vous vraiment suivre les abonné⋅e⋅s sélectionné⋅e⋅s ? + confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ? + confirm_remove_selected_follows: Voulez-vous vraiment suivre les abonnements sélectionnés ? dormant: Dormant follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s followers: Abonné·e diff --git a/config/locales/fr.yml b/config/locales/fr.yml index a3af8b739f..75f9756233 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -392,7 +392,7 @@ fr: create: Créer le blocage hint: Le blocage de domaine n’empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. severity: - desc_html: "Limiter rendra les messages des comptes de ce domaine invisibles à ceux qui ne les suivent pas. Suspendre supprimera tout le contenu, les médias, et données de profile pour les comptes de ce domaine de votre serveur. Utilisez Aucun si vous voulez simplement rejeter les fichiers multimédia." + desc_html: "Limiter rendra les messages des comptes de ce domaine invisibles pour tous les comptes qui ne les suivent pas. Suspendre supprimera de votre serveur tout le contenu, les médias et données de profil pour les comptes sur ce domaine. Utilisez Aucun si vous voulez simplement rejeter les fichiers multimédia." noop: Aucune silence: Limiter suspend: Suspendre @@ -438,11 +438,12 @@ fr: import: description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste. existing_relationships_warning: Relations de suivi existantes - private_comment_description_html: 'Pour vous aider à suivre d''où viennent les blocs importés, des blocs importés seront créés avec le commentaire privé suivant : %{comment}' + private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}' private_comment_template: Importé depuis %{source} le %{date} - title: Importer des blocs de domaine + title: Importer des blocages de domaine + invalid_domain_block: 'Un ou plusieurs blocages de domaine ont été ignorés en raison des erreurs suivantes : %{error}' new: - title: Importer des blocs de domaine + title: Importer des blocages de domaine no_file: Aucun fichier sélectionné follow_recommendations: description_html: "Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée." @@ -589,6 +590,7 @@ fr: comment: none: Aucun comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :' + confirm_action: Confirmer l'action de modération contre @%{acct} created_at: Signalé delete_and_resolve: Supprimer les messages forwarded: Transféré @@ -605,6 +607,7 @@ fr: placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour… title: Remarques notes_description_html: Voir et laisser des notes aux autres modérateurs et à votre futur moi-même + processed_msg: 'Le signalement #%{id} a été traité avec succès' quick_actions_description_html: 'Faites une action rapide ou faites défiler vers le bas pour voir le contenu signalé :' remote_user_placeholder: l'utilisateur·rice distant·e de %{instance} reopen: Ré-ouvrir le signalement @@ -617,9 +620,28 @@ fr: status: Statut statuses: Contenu signalé statuses_description_html: Le contenu offensant sera cité dans la communication avec le compte signalé + summary: + action_preambles: + delete_html: 'Vous êtes sur le point de supprimer certains messages de @%{acct}. Cela va :' + mark_as_sensitive_html: 'Vous êtes sur le point de marquer certains messages de @%{acct} comme sensibles. Cela va :' + silence_html: 'Vous êtes sur le point de limiter le compte de @%{acct}. Cela va :' + suspend_html: 'Vous êtes sur le point de suspendre le compte de @%{acct}. Cela va :' + actions: + delete_html: supprimer les messages incriminés + mark_as_sensitive_html: marquer le média des messages incriminés comme sensible + silence_html: limiter drastiquement la portée du compte de @%{acct} en rendant son profil, ainsi que ses contenus, visibles uniquement des personnes déjà abonnées ou qui le recherchent manuellement + suspend_html: suspendre le compte de @%{acct}, ce qui empêche toute interaction avec son profil et tout accès à ses contenus + close_report: 'marquer le signalement #%{id} comme résolu' + close_reports_html: marquer tous les signalements de @%{acct} comme résolus + delete_data_html: effacer le profil de @%{acct} et ses contenus dans 30 jours, à moins que la suspension du compte ne soit annulée entre temps + preview_preamble_html: "@%{acct} recevra un avertissement contenant les éléments suivants :" + record_strike_html: enregistrer une sanction contre @%{acct} pour vous aider à prendre des mesures supplémentaires en cas d'infractions futures de ce compte + send_email_html: envoyer un courriel d'avertissement à @%{acct} + warning_placeholder: Arguments supplémentaires pour l'action de modération (facultatif). target_origin: Origine du compte signalé title: Signalements unassign: Dés-assigner + unknown_action_msg: 'Action inconnue : %{action}' unresolved: Non résolus updated_at: Mis à jour view_profile: Voir le profil @@ -943,6 +965,8 @@ fr: auth: apply_for_account: Demander un compte change_password: Mot de passe + confirmations: + wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: diff --git a/config/locales/fy.yml b/config/locales/fy.yml index acb3e28e05..74d211e363 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -441,6 +441,7 @@ fy: 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 + invalid_domain_block: 'Ien of mear domeinblokkaden binne oerslein, fanwegen de folgjende flater(s): %{error}' new: title: Domeinblokkaden ymportearje no_file: Gjin bestân selektearre @@ -589,6 +590,7 @@ fy: comment: none: Gjin comment_description_html: 'Om mear ynformaasje te jaan, skreau %{name}:' + confirm_action: Moderaasjemaatregelen tsjin %{acct} befêstigje created_at: Rapportearre op delete_and_resolve: Berjocht fuortsmite forwarded: Trochstjoerd @@ -605,6 +607,7 @@ fy: 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 + processed_msg: 'Rapprtaazje #%{id} mei sukses ferwurke' 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 @@ -617,9 +620,28 @@ fy: status: Steat statuses: Rapportearre ynhâld statuses_description_html: De problematyske ynhâld wurdt oan it rapportearre account meidield + summary: + action_preambles: + delete_html: 'Jo stean op it punt om inkelde berjochten fan @%{acct} fuort te smiten. Dit sil:' + mark_as_sensitive_html: 'Jo stean op it punt om inkelde berjochten fan @%{acct} as gefoelich te markearjen. Dit sil:' + silence_html: 'Jo stean op it punt de account fan @%{acct} te beheinen. Dit sil:' + suspend_html: 'Jo stean op it punt de account fan @%{acct} te beskoatteljen. Dit sil:' + actions: + delete_html: De problematyske berjochten fuortsmite + mark_as_sensitive_html: De media fan de problematyske berjochten as gefoelich markearje + silence_html: "@%{acct} earnstich beheine, troch it profyl ende ynhâld allinnich sichtber te meitsjen foar de minsken dy’t harren al folgje of hantmjittich it profyl opsykje" + suspend_html: "@%{acct} blokkearje, sadat it profyl en de ynhâld net mear tagonklik is en it net mooglik is om ynteraksje dêr mei te hawwen" + close_report: 'Rapportaazje #%{id} as oplost markearje' + close_reports_html: "Alle meldingen tsjin @%{acct} as oplost markearje" + delete_data_html: It profyl en de ynhâld fan @%{acct} wurde nei 30 dagen fan no ôf fuortsmiten, útsein as de account yn de tuskentiid net mear blokkearre wurdt + preview_preamble_html: "@%{acct} sil in warskôging ûntfange mei de folgjende ynhâld:" + record_strike_html: In ban tsjin @%{acct} ynstelle, om jo te helpen by takomstige skeiningen fan dizze acount te eskalearjen + send_email_html: Stjoer @%{acct} in warskôgings-e-mailberjocht + warning_placeholder: Ekstra opsjonele reden foar de moderaasje-aksje. target_origin: Orizjineel fan rapportearre account title: Rapportaazjes unassign: Net langer tawize + unknown_action_msg: 'Unbekende aksje: %{action}' unresolved: Net oplost updated_at: Bywurke view_profile: Profyl besjen @@ -943,6 +965,8 @@ fy: auth: apply_for_account: Account oanfreegje change_password: Wachtwurd + confirmations: + wrong_email_hint: As it e-mailadres net korrekt is, kinne jo dat wizigje yn de accountynstellingen. 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: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index c2b7903881..6885000ac5 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -441,6 +441,7 @@ gl: private_comment_description_html: 'Para axudarche a lembrar de onde veñen os bloqueos importados, imos crealos engadindo o seguinte comentario privado: %{comment}' private_comment_template: Importada desde %{source} o %{date} title: Importar bloqueos de dominio + invalid_domain_block: 'Un ou varios dominios non se bloquearon debido ao seguintes erros: %{error}' new: title: Importar bloqueos de dominio no_file: Ningún ficheiro seleccionado @@ -589,6 +590,7 @@ gl: comment: none: Ningún comment_description_html: 'Como información engadida, %{name} escribiu:' + confirm_action: Confirma a acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicacións forwarded: Reenviado @@ -605,6 +607,7 @@ gl: placeholder: Describir que accións foron tomadas ou calquera outra novidade sobre esta denuncia... title: Notas notes_description_html: Ver e deixar unha nota para ti no futuro e outras moderadoras + processed_msg: 'Procesada correctamente a denuncia #%{id}' quick_actions_description_html: 'Toma unha acción rápida ou desprázate abaixo para ver o contido denunciado:' remote_user_placeholder: a usuaria remota desde %{instance} reopen: Reabrir denuncia @@ -617,9 +620,28 @@ gl: status: Estado statuses: Contido denunciado statuses_description_html: O contido ofensivo será citado na comunicación coa conta denunciada + summary: + action_preambles: + delete_html: 'Vas eliminar algunha das publicacións de @%{acct}. Serán:' + mark_as_sensitive_html: 'Vas marcar algunha das publicacións de @%{acct} como sensibles. Serán:' + silence_html: 'Vas limitar a conta @%{acct}:' + suspend_html: 'Vas suspender a conta @%{acct}:' + actions: + delete_html: Eliminar as publicacións ofensivas + mark_as_sensitive_html: Marcar as publicacións ofensivas como sensibles + silence_html: Limitar moito a visibilidade e alcance da conta @%{acct} facendo que o seu perfil e contidos sexan visibles só por persoas que a seguen ou que a busquen de xeito activo + suspend_html: Suspender a conta @%{acct}, facendo que o seu perfil e contidos non sexan accesibles e imposible interactuar con ela + close_report: 'Marcar a denuncia #%{id} como resolta' + close_reports_html: Marcar todas as denuncias contra @%{acct} como resoltas + delete_data_html: Eliminar o perfil e contidos de @%{acct} para os próximos 30 días a non ser que sexa suspendida nese período + preview_preamble_html: "@%{acct} vai recibir un aviso co seguinte contido:" + record_strike_html: Anotar un aviso contra @%{acct} para axudarche a xestionar futuros problemas con esta conta + send_email_html: Enviar un email de aviso a @%{acct} + warning_placeholder: Razóns adicionais optativas para a acción de moderación. target_origin: Orixe da conta denunciada title: Denuncias unassign: Non asignar + unknown_action_msg: 'Acción descoñecida: %{action}' unresolved: Non resolto updated_at: Actualizado view_profile: Ver perfil @@ -943,6 +965,8 @@ gl: auth: apply_for_account: Solicita unha conta change_password: Contrasinal + confirmations: + wrong_email_hint: Se o enderezo de email non é correcto, podes cambialo nos axustes da conta. delete_account: Eliminar conta delete_account_html: Se queres eliminar a túa conta, podes facelo aquí. Deberás confirmar a acción. description: @@ -1549,7 +1573,7 @@ gl: '7889238': 3 meses min_age_label: Límite temporal min_favs: Manter as publicacións favoritas máis de - min_favs_hint: Non elimina ningunha das túas publicacións que recibiron máis desta cantidade de favoritos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos + min_favs_hint: Non elimina ningunha das túas publicacións que recibiron máis desta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos min_reblogs: Manter publicacións promovidas máis de min_reblogs_hint: Non elimina ningunha das túas publicacións se foron promovidas máis deste número de veces. Deixa en branco para eliminar publicacións independentemente do seu número de promocións stream_entries: diff --git a/config/locales/he.yml b/config/locales/he.yml index 17b6ebb9f6..bad6fd6fd3 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -457,6 +457,7 @@ he: private_comment_description_html: 'כדי לסייע במעקב מאיכן הגיעו חסימות, חסימות מיובאות ילוו בהערה פרטית זו: %{comment}' private_comment_template: יובא מתוך %{source} בתאריך %{date} title: יבוא רשימת שרתים חסומים + invalid_domain_block: 'חסימה של שרת אחד או יותר דולגו בשל השגיאה הבאה: %{error}' new: title: יבוא רשימת שרתים חסומים no_file: לא נבחר קובץ @@ -613,6 +614,7 @@ he: comment: none: ללא comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:' + confirm_action: נא לאשר פעולת משמעת לגבי חשבון %{acct} created_at: מדווח delete_and_resolve: מחיקת הודעות forwarded: קודם @@ -629,6 +631,7 @@ he: placeholder: תאר/י אילו פעולות ננקטו, או עדכונים קשורים אחרים... title: הערות notes_description_html: צפייה והשארת הערות למנחים אחרים או לעצמך העתידי + processed_msg: דיווח %{id} עוּבָּד בהצלחה quick_actions_description_html: 'נקוט/י פעולה מהירה או גלול/י למטה לצפייה בתוכן המדווח:' remote_user_placeholder: המשתמש המרוחק מ-%{instance} reopen: פתיחת דו"ח מחדש @@ -641,9 +644,28 @@ he: status: מצב statuses: התוכן עליו דווח statuses_description_html: התוכן הפוגע יצוטט בתקשורת עם החשבון המדווח + summary: + action_preambles: + delete_html: 'הפעולה תמחק כמה הודעות של חשבון @%{acct}. תוצאות הפעולה יהיו:' + mark_as_sensitive_html: 'הפעולה הבאה תסמן כמה הודעות של חשבון @%{acct} כרגישות. תוצאות הפעולה יהיו:' + silence_html: 'הפעולה הבאה תגביל את החשבון @%{acct}. תוצאות הפעולה יהיו:' + suspend_html: 'הפעולה הבאה תקפיא את החשבון @%{acct}. תוצאות הפעולה יהיו:' + actions: + delete_html: הסרת ההודעות החורגות + mark_as_sensitive_html: סימון המדיה בהודעות החורגות כרגיש לצפיה + silence_html: הגבלה חמורה של תפוצת @%{acct} על ידי הפיכת החשבון ותכניו לזמינים רק למי שכבר עוקב אחריו או מי שיחפשו את עמוד הפרופיל שלו ישירות + suspend_html: הקפאת החשבון @%{acct}, הפיכת הפרופיל והתוכן לנסתרים ולא ניתנים לתקשורת + close_report: 'סימון דיווח #%{id} בתור פתור' + close_reports_html: סימון כל הדיווחים נגד @%{acct} בתור פתורים + delete_data_html: למחוק את הפרופיל והתוכן של @%{acct} בעוד 30 יום אלא אם תוסר ההגבלה עליהם לפני כן + preview_preamble_html: 'שליחת אזהרה אל @%{acct} בזו הלשון:' + record_strike_html: ציין נקודה שחורה נגד @%{acct} כדי לסייע בשיפוטו בדיווחים עתידיים על חריגות + send_email_html: שליחת דואל אזהרה אל @%{acct} + warning_placeholder: צידוקים אפשריים נוספים לפעולה המשמעתית. target_origin: מקור החשבון המדווח title: דיווחים unassign: ביטול הקצאה + unknown_action_msg: 'פעולה לא מוכרת: %{action}' unresolved: לא פתור updated_at: עודכן view_profile: צפה בפרופיל @@ -979,6 +1001,8 @@ he: auth: apply_for_account: הגשת בקשה לחשבון change_password: סיסמה + confirmations: + wrong_email_hint: אם כתובת הדואל הזו איננה נכונה, ניתן לשנות אותה בעמוד ההגדרות. delete_account: מחיקת חשבון delete_account_html: אם ברצונך למחוק את החשבון, ניתן להמשיך כאן. תתבקש/י לספק אישור נוסף. description: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index b6ccd7a262..a9315b1f24 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -104,10 +104,10 @@ hu: not_subscribed: Nincs feliratkozás pending: Engedélyezés alatt perform_full_suspension: Felfüggesztés - previous_strikes: Korábbi szankciók + previous_strikes: Korábbi felrótt vétségek previous_strikes_description_html: - one: Ezt a fiókot egyszer szankcionálták. - other: Ezt a fiókot %{count} esetben szankcionálták. + one: Ehhez a fiókhoz egyszer róttak fel vétséget. + other: Ehhez a fiókhoz %{count} esetben róttak fel vétséget. promote: Előléptetés protocol: Protokoll public: Nyilvános @@ -441,6 +441,7 @@ hu: private_comment_description_html: 'Az importált tiltások forrásának könnyebb követése érdekében, az importált tiltások a következő privát megjegyzéssel lesznek létrehozva: %{comment}' private_comment_template: 'Innen importálva: %{source}, ekkor: %{date}' title: Domain tiltások importálása + invalid_domain_block: 'Egy vagy több domain letiltást kihagytunk a következő hiba(ák) miatt: %{error}' new: title: Domain tiltások importálása no_file: Nincs fájl kiválasztva @@ -571,10 +572,10 @@ hu: action_log: Audit napló action_taken_by: 'Kezelte:' actions: - delete_description_html: A bejelentett bejegyzéseket törölni fogjuk és feljegyzünk egy szankciót, hogy segítsük az eszkalációt a fiók későbbi kihágásai esetén. - mark_as_sensitive_description_html: A bejelentett bejegyzések médaitartalmait érzékenynek jelöljük, és rögzítünk egy szankciót, hogy segítsük az eszkalációt a fiók későbbi kihágásai esetében. + delete_description_html: A bejelentett bejegyzéseket törölni fogjuk és feljegyzünk egy vétséget, hogy segítsük az eszkalációt a fiók későbbi kihágásai esetén. + mark_as_sensitive_description_html: A bejelentett bejegyzések médaitartalmait érzékenynek jelöljük, és rögzítünk egy vétséget, hogy segítsük az eszkalációt a fiók későbbi kihágásai esetén. other_description_html: További lehetőségek megjelenítése a fiók viselkedésének szabályozásához, és a jelentett fiók kommunikációjának testreszabásához. - resolve_description_html: Nem csinálunk semmit a bejelentett fiókkal, nem jegyzünk fel szankciót, és bezárjuk a bejelentést. + resolve_description_html: Nem csinálunk semmit a bejelentett fiókkal, nem jegyzünk fel vétséget, és bezárjuk a bejelentést. silence_description_html: A profil csak azok számára lesz látható, akik már követik, vagy kézzel rákeresnek, jelentősen korlátozva annak elérését. Ez a művelet bármikor visszafordítható. A fiókkal szemben indított minden bejelentést lezárunk. suspend_description_html: A fiók és minden tartalma elérhetetlenné válik és végül törlésre kerül. A fiókkal kapcsolatbalépni lehetetlen lesz. Ez a művelet 30 napig visszafordítható. A fiók ellen indított minden bejelentést lezárunk. actions_description_html: Döntsd el, mit csináljunk, hogy megoldjuk ezt a bejelentést. Ha valamilyen büntető intézkedést hozol a bejelentett fiók ellen, küldünk neki egy figyelmeztetést e-mail-ben, kivéve ha a Spam kategóriát választod. @@ -589,6 +590,7 @@ hu: comment: none: Egyik sem comment_description_html: 'Hogy további információkat adjon, %{name} ezt írta:' + confirm_action: Moderációs művelet jóváhagyása @%{acct} fiókon created_at: Jelentve delete_and_resolve: Bejegyzések törlése forwarded: Továbbítva @@ -605,6 +607,7 @@ hu: placeholder: Jegyezd le, mi tettünk az ügy érdekében, vagy bármilyen változást... title: Megjegyzések notes_description_html: Megtekintés, és megjegyzések hagyása más moderátoroknak + processed_msg: 'Bejelentés #%{id} sikeresen feldolgozva' quick_actions_description_html: 'Hozz egy gyors intézkedést, vagy görgess le a bejelentett tartalomhoz:' remote_user_placeholder: 'a távoli felhasználó innen: %{instance}' reopen: Bejelentés újranyitása @@ -617,9 +620,28 @@ hu: status: Állapot statuses: Jelentett tartalom statuses_description_html: A sértő tartalmat idézni fogjuk a bejelentett fiókkal való kommunikáció során + summary: + action_preambles: + delete_html: 'Arra készülsz, hogy eltávolítsd @%{acct} néhány bejegyzését. Ez a következőket okozza:' + mark_as_sensitive_html: 'Arra készülsz, hogy érzékenynek jelöld @%{acct} néhány tartalmát. Ez a következőket okozza:' + silence_html: 'Arra készülsz, hogy korlátozd @%{acct} fiókját. Ez a következőket okozza:' + suspend_html: 'Arra készülsz, hogy felfüggeszd @%{acct} fiókját. Ez a következőket okozza:' + actions: + delete_html: Sértő bejegyzések eltávolítása + mark_as_sensitive_html: Sértő bejegyzések médiatartalmainak érzékenyként történő megjelölése + silence_html: "@%{acct} fiók elérésének jelentős korlátozása azzal, hogy ennek profilja és tartalmai csak olyanoknak legyen látható, akik követik vagy manuálisan rákeresnek" + suspend_html: "@%{acct} felfüggesztése a profil és tartalmainak elérhetetlenné tételével, a fiókkal való interakció ellehetetlenítésével" + close_report: 'Bejelentés #%{id} megjelölése megoldottként' + close_reports_html: "Minden @%{acct} ellen tett bejelentés megjelölése megoldottként" + delete_data_html: "@%{acct} profiljának és tartalmainak törlése 30 nap múlva, hacsak addig nem oldják fel a felfüggesztést" + preview_preamble_html: "@%{acct} a következő tartalommal fog figyelmeztetést kapni:" + record_strike_html: Vétség felrovása a @%{acct} fiók ellen, hogy segítsük az eszkalációt a fiók jövőbeni kihágásai esetén + send_email_html: Figyelmeztető email küldése @%{acct} fiók részére + warning_placeholder: Opcionális kiegészítő indoklás a moderációs művelethez. target_origin: A jelentett fiók eredete title: Bejelentések unassign: Hozzárendelés törlése + unknown_action_msg: 'Ismeretlen művelet: %{action}' unresolved: Megoldatlan updated_at: Frissítve view_profile: Profil megtekintése @@ -943,6 +965,8 @@ hu: auth: apply_for_account: Fiók kérése change_password: Jelszó + confirmations: + wrong_email_hint: Ha az emailcím nem helyes, a fiókbeállításokban megváltoztathatod. delete_account: Felhasználói fiók törlése delete_account_html: Felhasználói fiókod törléséhez kattints ide. A rendszer újbóli megerősítést fog kérni. description: @@ -990,7 +1014,7 @@ hu: functional: A fiókod teljesen működőképes. pending: A jelentkezésed engedélyezésre vár. Ez eltarthat egy ideig. Kapsz egy e-mailt, ha a kérelmedet jóváhagyták. redirecting_to: A fiókod inaktív, mert jelenleg ide %{acct} van átirányítva. - view_strikes: Fiókod elleni korábbi szankciók megtekintése + view_strikes: Fiókod ellen felrótt korábbi vétségek megtekintése too_fast: Túl gyorsan küldted el az űrlapot, próbáld később. use_security_key: Biztonsági kulcs használata authorize_follow: @@ -1053,7 +1077,7 @@ hu: strikes: action_taken: Intézkedés appeal: Fellebbezés - appeal_approved: Ezt a szankciót eredményesen fellebbezték, így már nem érvényes + appeal_approved: Ezt a felrótt vétséget eredményesen fellebbezték, így már nem érvényes appeal_rejected: A fellebbezést visszautasították appeal_submitted_at: Fellebbezés beküldve appealed_msg: A fellebbezésedet beküldtük. Ha jóváhagyták, értesítünk. @@ -1464,7 +1488,7 @@ hu: profile: Profil relationships: Követések és követők statuses_cleanup: Bejegyzések automatikus törlése - strikes: Moderációs szankciók + strikes: Moderációs felrótt vétségek two_factor_authentication: Kétlépcsős hitelesítés webauthn_authentication: Biztonsági kulcsok statuses: @@ -1558,7 +1582,7 @@ hu: sensitive_content: Kényes tartalom strikes: errors: - too_late: Túl késő, hogy fellebbezd ezt a szankciót + too_late: Túl késő, hogy fellebbezd ezt a felrótt vétséget tags: does_not_match_previous_name: nem illeszkedik az előző névvel themes: @@ -1588,11 +1612,11 @@ hu: user_mailer: appeal_approved: action: Ugrás a fiókodhoz - explanation: A fiókod %{appeal_date}-i fellebbezése, mely a %{strike_date}-i szankcióval kapcsolatos, jóváhagyásra került. A fiókod megint makulátlan. + explanation: A fiókod %{appeal_date}-i fellebbezése, mely a %{strike_date}-i vétségeddel kapcsolatos, jóváhagyásra került. A fiókod megint makulátlan. subject: A %{date}-i fellebbezésedet jóváhagyták title: Fellebbezés jóváhagyva appeal_rejected: - explanation: A %{appeal_date}-i fellebbezésed, amely a fiókod %{strike_date}-i szankciójával kapcsolatos, elutasításra került. + explanation: A %{appeal_date}-i fellebbezésed, amely a fiókod %{strike_date}-i vétségével kapcsolatos, elutasításra került. subject: A %{date}-i fellebbezésedet visszautasították title: Fellebbezés visszautasítva backup_ready: diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 5cd6d53a34..df7dd3e2e0 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -5,6 +5,7 @@ hy: contact_missing: Սահմանված չէ contact_unavailable: Ոչինչ չկա hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում + title: Մասին accounts: follow: Հետևել followers: @@ -45,6 +46,7 @@ hy: confirm: Հաստատել confirmed: Հաստատված է confirming: Հաստատման սպասող + custom: Յատուկ delete: Ջնջել տվյալները deleted: Ջնջված է demote: Աստիճանազրկել @@ -248,6 +250,8 @@ hy: domain_allows: add_new: Թոյլատրել ֆեդերացիա տիրոյթի հետ created_msg: Տիրոյթը յաջողութեամբ թոյլատրուեց ֆեդերացուելու + export: Արտահանել + import: Ներմուծել undo: Չթոյլատրել ֆեդերացիան տիրոյթի հետ domain_blocks: add_new: Աւելացնել նոր տիրոյթի արգելափակում @@ -255,6 +259,8 @@ hy: destroyed_msg: Տիրոյթի արգելափակումը ետարկուեց domain: Տիրոյթ edit: Խմբագրել տիրոյթի արգելափակումը + export: Արտահանել + import: Ներմուծել new: create: Ստեղծել արգելափակում severity: @@ -281,10 +287,15 @@ hy: status: Կարգավիճակ title: Խորհուրդ ենք տալիս հետեւել instances: + availability: + title: Հասանելի back_to_all: Բոլորը back_to_limited: Սահամանփակ back_to_warning: Զգուշացում by_domain: Դոմեն + content_policies: + policies: + silence: Սահմանափակ delivery: all: Բոլորը unavailable: Անհասանելի է @@ -354,6 +365,7 @@ hy: notes: create: Ավելացնել նշում delete: Ջնջել + title: Նշում reopen: Վերաբացել բողոքը report: 'Բողոք #%{id}' reported_account: Բողոքարկուած հաշիւ @@ -365,6 +377,14 @@ hy: unresolved: Չլուծուած updated_at: Թարմացուած view_profile: Նայել անձնական էջը + roles: + categories: + invites: Հրաւէրներ + moderation: Մոդերացիա + special: Յատուկ + delete: Ջնջել + privileges: + administrator: Ադմինիստրատոր rules: add_new: Աւելացնել կանոն delete: Ջնջել @@ -372,6 +392,8 @@ hy: empty: Սերուերի կանոնները դեռեւս սահմանուած չեն։ title: Սերուերի կանոնները settings: + about: + title: Մասին domain_blocks: all: Բոլորին disabled: Ոչ մէկին diff --git a/config/locales/id.yml b/config/locales/id.yml index 7e3f6e1a83..10f7e6629b 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -114,6 +114,7 @@ id: reject: Tolak rejected_msg: Berhasil menolak permintaan pendaftaran %{username} remote_suspension_irreversible: Data akun ini telah dihapus permanen. + remote_suspension_reversible_hint_html: Akun ini telah ditangguhkan di server mereka, dan data akan dihapus total pada %{date}. Sebelum itu, server jarak jauh dapat memulihkan akun ini tanpa efek samping. Jika Anda ingin menghapus semua data akun langsung, Anda dapat mengikuti bawah ini. remove_avatar: Hapus avatar remove_header: Hapus header removed_avatar_msg: Berhasil menghapus gambar avatar %{username} @@ -432,6 +433,7 @@ id: private_comment_description_html: 'Untuk membantu Anda melacak asal blok yang diimpor, blok yang diimpor akan dibuat dengan komentar pribadi berikut: %{comment}' private_comment_template: Diimpor dari %{source} pada %{date} title: Impor blok domain + invalid_domain_block: 'Satu atau lebih blokir domain dilewati karena kesalahan berikut: %{error}' new: title: Impor blok domain no_file: Tidak ada file dipilih diff --git a/config/locales/is.yml b/config/locales/is.yml index b9a9c2a18f..e68bbb2f39 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -441,6 +441,7 @@ is: private_comment_description_html: 'Tið að aðstoða þig við að rekja hvaðan lokkanir koma, innfluttar lokanir verða búnar til með eftirfarndi athugasemd: %{comment}' private_comment_template: Flutt inn frá %{source} þann %{date} title: Flytja inn útilokanir léna + invalid_domain_block: 'Einni eða fleiri útilokunum léna var sleppt vegna eftirfarandi villu/villna: %{error}' new: title: Flytja inn útilokanir léna no_file: Engin skrá valin @@ -589,6 +590,7 @@ is: comment: none: Ekkert comment_description_html: 'Til að gefa nánari upplýsingar skrifaði %{name}:' + confirm_action: Staðfesta umsjónaraðgerðir gagnvart @%{acct} created_at: Tilkynnt delete_and_resolve: Eyða færslum forwarded: Áframsent @@ -605,6 +607,7 @@ is: placeholder: Lýstu til hvaða aðgerða hefur verið gripið eða uppfærðu inn aðrar tengdar upplýsingar... title: Minnispunktar notes_description_html: Skoðaðu og skrifaðu minnispunkta til annarra stjórnenda og sjálfs þín + processed_msg: 'Tókst að meðhöndla kæruna #%{id}' quick_actions_description_html: 'Beittu flýtiaðgerð eða skrunaðu niður til að skoða kært efni:' remote_user_placeholder: fjartengda notandann frá %{instance} reopen: Enduropna kæru @@ -617,9 +620,28 @@ is: status: Staða statuses: Kært efni statuses_description_html: Óviðeigandi efni verður tiltekið í samskiptum við kærðan notandaaðgang + summary: + action_preambles: + delete_html: 'Þú er í þann mund að fara að fjarlægja sumar af færslunum frá @%{acct}. Þetta mun:' + mark_as_sensitive_html: 'Þú er í þann mund að fara að merkja sumar af færslunum frá @%{acct} sem viðkvæmar. Þetta mun:' + silence_html: 'Þú er í þann mund að fara að takmarka aðganginn @%{acct}. Þetta mun:' + suspend_html: 'Þú er í þann mund að fara að frysta aðganginn hjá @%{acct}. Þetta mun:' + actions: + delete_html: Fjarlægja viðkomandi færslur + mark_as_sensitive_html: Merkja myndefni í viðkomandi færslum sem viðkvæmt + silence_html: Takmarka verulega umfangið hjá @%{acct} með því að gera notandasniðið og efni þess einungis sýnilegt fólki sem þegar fylgist með viðkomandi eða þeim sem fletta handvirkt upp upplýsingunum + suspend_html: Setja @%{acct} í frysti, gera notandasniðið og efni þess óaðgengilegt án mögulegrar gagnvirkni + close_report: 'Merkja kæruna #%{id} sem leysta' + close_reports_html: Merkja allar kærur gagnavart @%{acct} sem leystar + delete_data_html: Eyða notandasniði @%{acct} og efni þess eftir 30 daga nema viðkomandi verði tekinn úr frysti í millitíðinni + preview_preamble_html: "@%{acct} mun fá aðvörun með eftirfarandi texta:" + record_strike_html: Skrá refsingu gagnvart @%{acct} til að geta betur átt við brot frá þessum aðgangi í framtíðinni + send_email_html: Senda @%{acct} aðvörun í tölvupósti + warning_placeholder: Valkvæðar aðrar ástæður fyrir umsjónaraðgerðum. target_origin: Uppruni kærða notandaaðgangsins title: Kærur unassign: Aftengja úthlutun + unknown_action_msg: 'Óþekkt aðgerð: %{action}' unresolved: Óleyst updated_at: Uppfært view_profile: Skoða notandasnið @@ -943,6 +965,8 @@ is: auth: apply_for_account: Biðja um notandaaðgang change_password: Lykilorð + confirmations: + wrong_email_hint: Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins. delete_account: Eyða notandaaðgangi delete_account_html: Ef þú vilt eyða notandaaðgangnum þínum, þá geturðu farið í það hér. Þú verður beðin/n um staðfestingu. description: diff --git a/config/locales/it.yml b/config/locales/it.yml index 17e1bca24e..d0c7168afd 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -142,8 +142,8 @@ it: show: created_reports: Rapporti creati targeted_reports: Segnalato da altri - silence: Limita - silenced: Limitato + silence: Silenzia + silenced: Silenziato statuses: Toot strikes: Provvedimenti precedenti subscribe: Iscriviti @@ -156,7 +156,7 @@ it: unblocked_email_msg: Indirizzo email di %{username} sbloccato correttamente unconfirmed_email: Email non confermata undo_sensitized: Annulla sensibile - undo_silenced: Annulla limitazione + undo_silenced: Rimuovi silenzia undo_suspension: Annulla sospensione unsilenced_msg: Limitazione del profilo di %{username} annullata correttamente unsubscribe: Disiscriviti @@ -441,6 +441,7 @@ it: private_comment_description_html: 'Per aiutarti a tenere traccia della provenienza dei blocchi importati, i blocchi importati verranno creati con il seguente commento privato: %{comment}' private_comment_template: Importato da %{source} il %{date} title: Importare i blocchi di dominio + invalid_domain_block: 'Uno o più blocchi di dominio sono stati saltati a causa dei seguenti errori: %{error}' new: title: Importare i blocchi di dominio no_file: Nessun file selezionato @@ -589,6 +590,7 @@ it: comment: none: Nessuno comment_description_html: 'Per fornire ulteriori informazioni, %{name} ha scritto:' + confirm_action: Conferma l'azione di moderazione contro @%{acct} created_at: Segnalato delete_and_resolve: Cancella post forwarded: Inoltrato @@ -605,6 +607,7 @@ it: placeholder: Descrivi quali azioni sono state intraprese, o ogni altro aggiornamento rilevante... title: Note notes_description_html: Visualizza e lascia note ad altri moderatori e al tuo futuro sé + processed_msg: 'Segnalazione #%{id} elaborata correttamente' quick_actions_description_html: 'Fai un''azione rapida o scorri verso il basso per vedere il contenuto segnalato:' remote_user_placeholder: l'utente remoto da %{instance} reopen: Riapri rapporto @@ -617,9 +620,28 @@ it: status: Stato statuses: Contenuto segnalato statuses_description_html: Il contenuto offensivo sarà citato nella comunicazione con l'account segnalato + summary: + action_preambles: + delete_html: 'Stai per rimuovere alcuni post di @%{acct}. Questo conseguirà:' + mark_as_sensitive_html: 'Stai per contrassegnare alcuni post di @%{acct} come sensibili. Questo conseguirà:' + silence_html: 'Stai per limitare l''account di @%{acct}. Questo conseguirà:' + suspend_html: 'Stai per sospendere l''account di @%{acct}. Questo conseguirà:' + actions: + delete_html: Rimuovi i post offensivi + mark_as_sensitive_html: Contrassegna i file multimediali dei post offensivi come sensibili + silence_html: Limita severamente la portata di @%{acct} rendendo il suo profilo e il suo contenuto visibili solo a persone che già li seguono o che lo guardano manualmente + suspend_html: Sospendere @%{acct}, rendendo il suo profilo e i suoi contenuti inaccessibili e impossibilitandone l'interazione + close_report: 'Contrassegna la segnalazione #%{id} come risolta' + close_reports_html: Contrassegna tutte le segnalazioni contro @%{acct} come risolte + delete_data_html: Elimina il profilo e i contenuti di @%{acct} tra 30 giorni da ora, a meno che non vengano riattivati nel frattempo + preview_preamble_html: "@%{acct} riceverà un avvertimento con i seguenti contenuti:" + record_strike_html: Registra un provvedimento contro @%{acct} per aiutarti a gestire meglio future violazioni da questo account + send_email_html: Invia a @%{acct} una e-mail di avvertimento + warning_placeholder: Motivazione aggiuntiva facoltativa per l'azione di moderazione. target_origin: Origine dell'account segnalato title: Rapporti unassign: Non assegnare + unknown_action_msg: 'Azione sconosciuta: %{action}' unresolved: Non risolto updated_at: Aggiornato view_profile: Visualizza profilo @@ -945,6 +967,8 @@ it: auth: apply_for_account: Richiedi un account change_password: Password + confirmations: + wrong_email_hint: Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account. delete_account: Elimina account delete_account_html: Se desideri cancellare il tuo account, puoi farlo qui. Ti sarà chiesta conferma. description: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 684348ce93..4f2f820a76 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -433,6 +433,7 @@ ja: private_comment_description_html: 'ブロックのインポート元を判別できるようにするため、ブロックは次のプライベートコメントを追加してインポートされます: %{comment}' private_comment_template: "%{source} から %{date} にインポートしました" title: ドメインブロックをインポート + invalid_domain_block: '次のエラーのため、1つ以上のドメインブロックがスキップされました: %{error}' new: title: ドメインブロックをインポート no_file: ファイルが選択されていません @@ -577,6 +578,7 @@ ja: comment: none: なし comment_description_html: "%{name}からの詳細情報:" + confirm_action: "@%{acct} さんに対するアクション" created_at: 通報日時 delete_and_resolve: 投稿を削除 forwarded: 転送済み @@ -593,6 +595,7 @@ ja: placeholder: どのような措置が取られたか、または関連する更新を記述してください… title: メモ notes_description_html: 他のモデレーターと将来の自分にメモを残してください + processed_msg: '通報 #%{id} が正常に処理されました' quick_actions_description_html: 'クイックアクションを実行するかスクロールして報告された通報を確認してください:' remote_user_placeholder: "%{instance}からのリモートユーザー" reopen: 未解決に戻す @@ -605,9 +608,28 @@ ja: status: ステータス statuses: 通報内容 statuses_description_html: 問題の投稿は通報されたアカウントへの連絡時に引用されます + summary: + action_preambles: + delete_html: "@%{acct}さんの投稿を削除します。この操作は:" + mark_as_sensitive_html: "@%{acct}さんの投稿を閲覧注意としてマークします。この操作は:" + silence_html: "@%{acct}さんのアカウントを制限します。この操作は:" + suspend_html: "@%{acct}さんのアカウントを停止します。この操作は:" + actions: + delete_html: 当該の投稿を削除します + mark_as_sensitive_html: 当該の投稿に含まれるメディアを閲覧注意にします + silence_html: プロフィールとコンテンツを、すでにフォローしている人や、意図的にプロフィールにアクセスする人にのみ表示することで、@%{acct}さんのリーチを厳しく制限します + suspend_html: "@%{acct}さんのアカウントが凍結され、プロフィールとコンテンツへのアクセス、および投稿ができなくなります" + close_report: '通報 #%{id} を解決済みにします' + close_reports_html: "@%{acct}さんに対するすべての通報を解決済みにします" + delete_data_html: 停止が解除されないまま30日経過すると、@%{acct}さんのプロフィールとコンテンツは削除されます + preview_preamble_html: "@%{acct}さんに次の内容の警告を通知します:" + record_strike_html: 今後、@%{acct}さんが違反行為をしたときにエスカレーションできるように、このアカウントに対するストライクを記録します + send_email_html: "@%{acct}さんに警告メールを送信します" + warning_placeholder: アクションを行使する追加の理由(オプション) target_origin: 報告されたアカウントの起源 title: 通報 unassign: 担当を外す + unknown_action_msg: '不明なアクションです: %{action}' unresolved: 未解決 updated_at: 更新日時 view_profile: プロフィールを表示 @@ -925,6 +947,8 @@ ja: auth: apply_for_account: アカウントのリクエスト change_password: パスワード + confirmations: + wrong_email_hint: メールアドレスが正しくない場合は、アカウント設定で変更できます。 delete_account: アカウントの削除 delete_account_html: アカウントを削除したい場合、こちらから手続きが行えます。削除する前に、確認画面があります。 description: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index d02227dece..557e499f31 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -25,9 +25,9 @@ ko: action: 조치 취하기 title: "%{acct} 계정에 중재 취하기" account_moderation_notes: - create: 중재 기록 작성하기 - created_msg: 중재 기록이 성공적으로 작성되었습니다! - destroyed_msg: 중재 기록이 성공적으로 삭제되었습니다! + create: 참고사항 남기기 + created_msg: 중재 참고사항을 만들었습니다! + destroyed_msg: 중재 참고사항을 지웠습니다! accounts: add_email_domain_block: 이 이메일 도메인을 차단하기 approve: 허가 @@ -69,7 +69,7 @@ ko: enabled: 활성 enabled_msg: "%{username}의 계정을 성공적으로 얼리기 해제하였습니다" followers: 팔로워 - follows: 팔로잉 + follows: 팔로우 header: 헤더 inbox_url: 수신함 URL invite_request_text: 가입 하려는 이유 @@ -93,14 +93,14 @@ ko: silenced: 제한됨 suspended: 정지 중 title: 중재 - moderation_notes: 중재 기록 + moderation_notes: 중재 참고사항 most_recent_activity: 최근 활동 most_recent_ip: 최근 IP no_account_selected: 아무 것도 선택 되지 않아 어떤 계정도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 no_role_assigned: 할당된 역할 없음 not_subscribed: 구독하지 않음 - pending: 심사 대기 + pending: 계류된 검토 perform_full_suspension: 정지 previous_strikes: 이전의 처벌들 previous_strikes_description_html: @@ -139,8 +139,8 @@ ko: show: created_reports: 이 계정에서 제출된 신고 targeted_reports: 이 계정에 대한 신고 - silence: 침묵 - silenced: 침묵 됨 + silence: 제한 + silenced: 제한됨 statuses: 게시물 strikes: 이전의 처벌들 subscribe: 구독하기 @@ -153,7 +153,7 @@ ko: unblocked_email_msg: "%{username}의 이메일 주소를 성공적으로 차단 해제했습니다" unconfirmed_email: 확인되지 않은 이메일 주소 undo_sensitized: 민감함으로 설정 취소 - undo_silenced: 침묵 해제 + undo_silenced: 제한 해제 undo_suspension: 정지 해제 unsilenced_msg: 성공적으로 %{username} 계정을 제한 해제했습니다 unsubscribe: 구독 해제 @@ -210,12 +210,12 @@ ko: reset_password_user: 암호 재설정 resolve_report: 신고 처리 sensitive_account: 당신의 계정의 미디어를 민감함으로 표시 - silence_account: 계정 침묵 + silence_account: 계정 제한 suspend_account: 계정 정지 unassigned_report: 신고 맡기 취소 unblock_email_account: 이메일 주소 차단 해제 unsensitive_account: 당신의 계정의 미디어를 민감함으로 표시하지 않음 - unsilence_account: 계정 침묵 취소 + unsilence_account: 계정 제한 취소 unsuspend_account: 계정 정지 취소 update_announcement: 공지사항 업데이트 update_custom_emoji: 커스텀 에모지 업데이트 @@ -269,12 +269,12 @@ ko: reset_password_user_html: "%{name} 님이 사용자 %{target}의 암호를 초기화했습니다" resolve_report_html: "%{name} 님이 신고 %{target}를 처리됨으로 변경하였습니다" sensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감함으로 표시했습니다" - silence_account_html: "%{name} 님이 %{target}의 계정을 침묵시켰습니다" + silence_account_html: "%{name} 님이 %{target}의 계정을 제한시켰습니다" suspend_account_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}를 업데이트 했습니다" @@ -297,7 +297,7 @@ ko: create: 공지사항 생성 title: 새 공지사항 publish: 게시 - published_msg: 공지가 성공적으로 발행되었습니다! + published_msg: 공지사항을 잘 발행했습니다! scheduled_for: "%{time}에 예약됨" scheduled_msg: 공지의 발행이 예약되었습니다! title: 공지사항 @@ -435,6 +435,7 @@ ko: private_comment_description_html: '어디서 불러온 것인지 추적을 원활하게 하기 위해서, 불러온 차단들은 다음과 같은 비공개 주석과 함께 생성될 것입니다: %{comment}' private_comment_template: "%{date}에 %{source}에서 불러옴" title: 도메인 차단 불러오기 + invalid_domain_block: '한 개 이상의 도메인 차단이 생략되었습니다. 에러는 다음과 같습니다: %{error}' new: title: 도메인 차단 불러오기 no_file: 선택된 파일이 없습니다 @@ -466,7 +467,7 @@ ko: description_html: 이 도메인과 하위 도메인의 모든 계정에 적용될 콘텐츠 정책을 정의할 수 있습니다. policies: reject_media: 미디어 거부 - reject_reports: 신고 거부 + reject_reports: 신고 반려 silence: 제한 suspend: 정지 policy: 정책 @@ -557,7 +558,7 @@ ko: reports: account: notes: - other: "%{count}개의 기록" + other: "%{count}개의 참고사항" action_log: 감사 기록 action_taken_by: 신고 처리자 actions: @@ -579,7 +580,8 @@ ko: comment: none: 없음 comment_description_html: '더 많은 정보를 위해, %{name} 님이 작성했습니다:' - created_at: 리포트 시각 + confirm_action: "@%{acct}에 취할 중재 결정에 대한 확인" + created_at: 신고 시각 delete_and_resolve: 게시물 삭제 forwarded: 전달됨 forwarded_to: "%{domain}에게 전달됨" @@ -589,27 +591,47 @@ ko: no_one_assigned: 아무도 없음 notes: create: 기록 추가 - create_and_resolve: 기록을 작성하고 해결됨으로 표시 - create_and_unresolve: 기록 작성과 함께 미해결로 표시 + create_and_resolve: 종결 및 참고사항 기재 + create_and_unresolve: 재검토 및 참고사항 기재 delete: 삭제 - placeholder: 이 리포트에 대한 조치, 기타 관련 된 사항에 대해 설명합니다… - title: 기록 + placeholder: 어떤 대응을 했는지 서설 또는 그 밖의 관련된 갱신 사항들 + title: 참고사항 notes_description_html: 확인하고 다른 중재자나 미래의 자신을 위해 기록을 작성합니다 + processed_msg: '신고 #%{id}가 정상적으로 처리되었습니다' quick_actions_description_html: '빠른 조치를 취하거나 아래로 스크롤해서 신고된 콘텐츠를 확인하세요:' remote_user_placeholder: "%{instance}의 리모트 사용자" - reopen: 리포트 다시 열기 + reopen: 신고 재검토 report: '신고 #%{id}' reported_account: 신고 대상 계정 reported_by: 신고자 resolved: 해결됨 - resolved_msg: 리포트가 성공적으로 해결되었습니다! + resolved_msg: 신고를 잘 해결했습니다! skip_to_actions: 작업으로 건너뛰기 status: 상태 statuses: 신고된 콘텐츠 statuses_description_html: 문제가 되는 콘텐츠는 신고된 계정에게 인용되어 전달됩니다 + summary: + action_preambles: + delete_html: "@%{acct}의 게시물 중 일부를 지우려고 합니다. 이것은 아래의 행동이 수반됩니다:" + mark_as_sensitive_html: "@%{acct}의 게시물 중 일부를 민감함으로 표시 합니다. 이것은 아래의 행동이 수반됩니다:" + silence_html: "@%{acct}의 계정을 제한하려고 합니다. 이것은 아래의 행동이 수반됩니다:" + suspend_html: "@%{acct}의 계정을 정지하려고 합니다. 이것은 아래의 행동이 수반됩니다:" + actions: + delete_html: 문제가 되는 게시물을 지웁니다 + mark_as_sensitive_html: 문제가 되는 게시물의 미디어를 민감함으로 표시합니다 + silence_html: 이미 팔로우하고 있는 사람에게만 프로필을 보이게 하고 나머지 사람들에게는 수동으로 확인을 해야만 볼 수 있게 하여 @%{acct}의 도달 범위를 엄격하게 제한합니다. + suspend_html: "@%{acct}의 계정을 정지합니다. 프로필과 콘텐츠가 사용 불가능하게 됩니다." + close_report: '신고 #%{id}를 해결됨으로 표시합니다' + close_reports_html: "@%{acct}에 대한 모든 신고를 해결됨으로 처리합니다" + delete_data_html: "@%{acct}의 프로필과 콘텐츠를 30일의 유예기간 이후에 삭제합니다" + preview_preamble_html: "@%{acct}는 다음 내용의 경고를 받게 됩니다:" + record_strike_html: 향후 규칙위반에 대한 참고사항이 될 수 있도록 @%{acct}에 대한 처벌기록을 남깁니다 + send_email_html: "@%{acct}에게 경고 메일을 보냅니다" + warning_placeholder: 중재 결정에 대한 추가적인 이유. target_origin: 신고된 계정의 소속 title: 신고 unassign: 할당 해제 + unknown_action_msg: '알 수 없는 액션: %{action}' unresolved: 미해결 updated_at: 업데이트 시각 view_profile: 프로필 보기 @@ -772,7 +794,7 @@ ko: sidekiq_process_check: message_html: "%{value} 큐에 대한 사이드킥 프로세스가 발견되지 않았습니다. 사이드킥 설정을 검토해주세요" tags: - review: 심사 상태 + review: 검토 상태 updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다 title: 관리 trends: @@ -793,7 +815,7 @@ ko: title: 유행하는 링크 usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다 only_allowed: 허용된 것만 - pending_review: 심사 대기 + pending_review: 계류된 검토 preview_card_providers: allowed: 이 출처의 링크는 유행 목록에 실릴 수 있습니다 description_html: 당신의 서버에서 많은 링크가 공유되고 있는 도메인들입니다. 링크의 도메인이 승인되기 전까지는 링크들은 공개적으로 트렌드에 게시되지 않습니다. 당신의 승인(또는 거절)은 서브도메인까지 확장됩니다. @@ -830,7 +852,7 @@ ko: trendable: 유행 목록에 나타날 수 있습니다 trending_rank: "#%{rank}위로 유행 중" usable: 사용 가능 - usage_comparison: 오늘은 %{today}회 사용되었고, 어제는 %{yesterday}회 사용되었습니다 + usage_comparison: 오늘은 %{today}회 쓰였고, 어제는 %{yesterday}회 쓰임 used_by_over_week: other: 지난 주 동안 %{count} 명의 사람들이 사용했습니다 title: 유행 @@ -875,7 +897,7 @@ ko: subject: "%{username} 님이 %{instance}에서 발생한 중재 결정에 대해 소명을 제출했습니다" new_pending_account: body: 아래에 새 계정에 대한 상세정보가 있습니다. 이 가입을 승인하거나 거부할 수 있습니다. - subject: "%{instance}의 새 계정(%{username})에 대한 심사가 대기중입니다" + subject: "%{instance}의 새 계정(%{username}) 검토" new_report: body: "%{reporter} 님이 %{target}를 신고했습니다" body_remote: "%{domain}의 누군가가 %{target}을 신고했습니다" @@ -890,7 +912,7 @@ ko: no_approved_tags: 현재 승인된 유행 중인 해시태그가 없습니다. requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 해시태그를 앞지를 수 있으며, 이것은 현재 #%{lowest_tag_name}이고 %{lowest_tag_score}점을 기록하고 있습니다.' title: 유행하는 해시태그 - subject: 새 트렌드가 %{instance}에서 심사 대기 중입니다 + subject: "%{instance}의 새 유행물 검토" aliases: add_new: 별칭 만들기 created_msg: 새 별칭이 성공적으로 만들어졌습니다. 이제 기존 계정에서 이주를 시작할 수 있습니다. @@ -926,16 +948,18 @@ ko: your_token: 액세스 토큰 auth: apply_for_account: 가입 요청하기 - change_password: 패스워드 + change_password: 암호 + confirmations: + wrong_email_hint: 만약 이메일 주소가 올바르지 않다면, 계정 설정에서 수정할 수 있습니다. delete_account: 계정 삭제 delete_account_html: 계정을 삭제하고 싶은 경우, 여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다. description: - prefix_invited_by_user: "@%{name} 님이 당신을 이 마스토돈 서버로 초대했습니다!" + prefix_invited_by_user: "@%{name}님이 마스토돈 서버에 초대했습니다!" prefix_sign_up: 마스토돈에 가입하세요! suffix: 계정 하나로 사람들을 팔로우 하고, 게시물을 작성하며 마스토돈을 포함한 다른 어떤 서버의 사용자와도 메시지를 주고 받을 수 있습니다! didnt_get_confirmation: 확인 메일을 받지 못하셨습니까? dont_have_your_security_key: 보안 키가 없습니까? - forgot_password: 비밀번호를 잊어버리셨습니까? + forgot_password: 암호를 잊었나요? invalid_reset_password_token: 암호 리셋 토큰이 올바르지 못하거나 기간이 만료되었습니다. 다시 요청해주세요. link_to_otp: 휴대폰의 2차 코드 혹은 복구 키를 입력해 주세요 link_to_webauth: 보안 키 장치 사용 @@ -985,7 +1009,7 @@ ko: follow_request: '당신은 다음 계정에 팔로우 신청을 했습니다:' following: '성공! 당신은 다음 계정을 팔로우 하고 있습니다:' post_follow: - close: 혹은, 당신은 이 윈도우를 닫을 수 있습니다. + close: 또한, 그저 이 창을 닫을 수도 있습니다. return: 사용자 프로필 보기 web: 웹으로 가기 title: "%{acct} 를 팔로우" @@ -1023,7 +1047,7 @@ ko: proceed: 계정 삭제 success_msg: 계정이 성공적으로 삭제되었습니다 warning: - before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' + before: '진행 전, 참고사항을 주의 깊게 읽기 바랍니다:' caches: 다른 서버에 캐싱된 정보들은 남아있을 수 있습니다 data_removal: 당신의 게시물과 다른 정보들은 영구적으로 삭제 됩니다 email_change_html: 계정을 지우지 않고도 이메일 주소를 수정할 수 있습니다 @@ -1194,7 +1218,7 @@ ko: '86400': 하루 expires_in_prompt: 영원히 generate: 생성 - invited_by: '당신을 초대한 사람:' + invited_by: '초대자:' max_uses: other: "%{count}회" max_uses_prompt: 제한 없음 @@ -1246,7 +1270,7 @@ ko: set_redirect: 리디렉션 설정 warning: backreference_required: 새 계정은 이 계정으로 역참조를 하도록 설정되어 있어야 합니다 - before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' + before: '진행 전, 참고사항을 주의 깊게 읽기 바랍니다:' cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 휴식기간이 존재합니다 disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다. followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다 @@ -1258,7 +1282,7 @@ ko: move_handler: carry_blocks_over_text: 이 사용자는 당신이 차단한 %{acct}로부터 이주 했습니다. carry_mutes_over_text: 이 사용자는 당신이 뮤트한 %{acct}로부터 이주 했습니다. - copy_account_note_text: '이 사용자는 %{acct}에서 옮겨왔으며 이전의 기록은 다음과 같습니다:' + copy_account_note_text: '이 사용자는 %{acct}에서 옮겨왔으며 이전의 참고사항은 다음과 같습니다:' navigation: toggle_menu: 토글 메뉴 notification_mailer: diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 3ea81f1f90..31e1ba77fb 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -449,6 +449,7 @@ lv: private_comment_description_html: 'Lai palīdzētu tev izsekot, no kurienes nāk importētie bloki, tiks izveidoti importētie bloki ar šādu privātu komentāru: %{comment}' private_comment_template: Importēts no %{source} %{date} title: Importēt bloķētos domēnus + invalid_domain_block: 'Viens vai vairāki domēna bloķi tika izlaisti šādas kļūdas(-u) dēļ: %{error}' new: title: Importēt bloķētos domēnus no_file: Nav atlasīts neviens fails @@ -601,6 +602,7 @@ lv: comment: none: Neviens comment_description_html: 'Lai sniegtu vairāk informācijas, %{name} rakstīja:' + confirm_action: Apstipriniet regulēšanas darbību pret @%{acct} created_at: Ziņoti delete_and_resolve: Izdzēst rakstus forwarded: Pārsūtīti @@ -617,6 +619,7 @@ lv: placeholder: Apraksti veiktās darbības vai citus saistītus atjauninājumus... title: Piezīmes notes_description_html: Skati un atstāj piezīmes citiem moderatoriem un sev nākotnei + processed_msg: 'Pārskats #%{id} veiksmīgi apstrādāts' quick_actions_description_html: 'Veic ātro darbību vai ritini uz leju, lai skatītu saturu, par kuru ziņots:' remote_user_placeholder: attālais lietotājs no %{instance} reopen: Atkārtoti atvērt ziņojumu @@ -629,9 +632,28 @@ lv: status: Statuss statuses: Ziņotais saturs statuses_description_html: Pārkāpuma saturs tiks minēts saziņā ar paziņoto kontu + summary: + action_preambles: + delete_html: 'Jūs gatavojaties noņemt dažas no lietotāja @%{acct} ziņām. Tas:' + mark_as_sensitive_html: 'Jūs gatavojaties atzīmēt dažas no lietotāja @%{acct} ziņām kā sensitīvas. Tas:' + silence_html: 'Jūs gatavojaties ierobežot @%{acct} kontu. Tas:' + suspend_html: 'Jūs gatavojaties apturēt @%{acct} kontu. Tas:' + actions: + delete_html: Noņemt aizskarošās ziņas + mark_as_sensitive_html: Atzīmēt aizskarošo ziņu multivides saturu kā sensitīvu + silence_html: Ievērojami ierobežojiet @%{acct} sasniedzamību, padarot viņa profilu un saturu redzamu tikai personām, kas jau seko viņiem vai manuāli meklē profilu + suspend_html: Apturēt @%{acct}, padarot viņu profilu un saturu nepieejamu un neiespējamu mijiedarbību ar + close_report: 'Atzīmēt ziņojumu #%{id} kā atrisinātu' + close_reports_html: Atzīmējiet visus pārskatus par @%{acct} kā atrisinātus + delete_data_html: Dzēsiet lietotāja @%{acct} profilu un saturu pēc 30 dienām, ja vien to darbība pa šo laiku netiks atcelta + preview_preamble_html: "@%{acct} saņems brīdinājumu ar šādu saturu:" + record_strike_html: Ierakstiet brīdinājumu pret @%{acct}, lai palīdzētu jums izvērst turpmākus pārkāpumus no šī konta + send_email_html: Nosūtiet @%{acct} brīdinājuma e-pastu + warning_placeholder: Izvēles papildu pamatojums regulēšanas darbībai. target_origin: Ziņotā konta izcelsme title: Ziņojumi unassign: Atsaukt + unknown_action_msg: 'Nezināms konts: %{action}' unresolved: Neatrisinātie updated_at: Atjaunināts view_profile: Skatīt profilu @@ -961,6 +983,8 @@ lv: auth: apply_for_account: Pieprasīt kontu change_password: Parole + confirmations: + wrong_email_hint: Ja šī e-pasta adrese nav pareiza, varat to mainīt konta iestatījumos. delete_account: Dzēst kontu delete_account_html: Ja vēlies dzēst savu kontu, tu vari turpināt šeit. Tev tiks lūgts apstiprinājums. description: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 4bff5c851a..d293f75395 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -441,6 +441,7 @@ nl: private_comment_description_html: 'Om je te helpen bijhouden waar de geïmporteerde blokkades vandaan komen, worden de geïmporteerde blokkades met de volgende privé-opmerking aangemaakt: %{comment}' private_comment_template: Geïmporteerd van %{source} op %{date} title: Domeinblokkades importeren + invalid_domain_block: 'Een of meer domeinblokkades zijn overgeslagen vanwege de volgende fout(en): %{error}' new: title: Domeinblokkades importeren no_file: Geen bestand geselecteerd @@ -575,7 +576,10 @@ nl: mark_as_sensitive_description_html: De media in de gerapporteerde berichten worden gemarkeerd als gevoelig en er wordt een overtreding geregistreerd om toekomstige overtredingen van hetzelfde account sneller af te kunnen handelen. other_description_html: Bekijk meer opties voor het controleren van het gedrag van en de communicatie met het gerapporteerde account. resolve_description_html: Er wordt tegen het gerapporteerde account geen maatregel genomen, geen overtreding geregistreerd en de rapportage wordt gemarkeerd als opgelost. + silence_description_html: Het account is alleen zichtbaar voor degenen die het al volgen of handmatig opzoeken, waardoor het bereik ernstig wordt beperkt. Dit kan altijd ongedaan worden gemaakt. Dit sluit alle rapporten tegen dit account af. + suspend_description_html: Het account en al zijn inhoud zullen niet toegankelijk zijn en uiteindelijk verwijderd worden en er zal geen interactie met het account mogelijk zijn. Dit is omkeerbaar binnen 30 dagen. Dit sluit alle rapporten tegen dit account af. actions_description_html: Beslis welke maatregel moet worden genomen om deze rapportage op te lossen. Wanneer je een (straf)maatregel tegen het gerapporteerde account neemt, krijgt het account een e-mailmelding, behalve wanneer de spam-categorie is gekozen. + actions_description_remote_html: Beslis welke actie moet worden ondernomen om deze rapportage op te lossen. Dit is alleen van invloed op hoe jouw server met dit externe account communiceert en de inhoud ervan beheert. add_to_report: Meer aan de rapportage toevoegen are_you_sure: Weet je het zeker? assign_to_self: Aan mij toewijzen @@ -586,6 +590,7 @@ nl: comment: none: Geen comment_description_html: 'Om meer informatie te verstrekken, schreef %{name}:' + confirm_action: Bevestig moderatiemaatregel tegen @%{acct} created_at: Gerapporteerd op delete_and_resolve: Bericht verwijderen forwarded: Doorgestuurd @@ -602,6 +607,7 @@ nl: placeholder: Beschrijf welke maatregelen zijn genomen of andere gerelateerde opmerkingen... title: Opmerkingen notes_description_html: Bekijk en laat opmerkingen achter voor andere moderatoren en voor jouw toekomstige zelf + processed_msg: 'Rapportage #%{id} succesvol afgehandeld' quick_actions_description_html: 'Neem een snelle maatregel of scroll naar beneden om de gerapporteerde inhoud te bekijken:' remote_user_placeholder: de externe gebruiker van %{instance} reopen: Rapportage heropenen @@ -614,9 +620,28 @@ nl: status: Rapportages statuses: Gerapporteerde inhoud statuses_description_html: De problematische inhoud wordt aan het gerapporteerde account medegedeeld + summary: + action_preambles: + delete_html: 'Je staat op het punt om enkele berichten van @%{acct} te verwijderen. Dit zal:' + mark_as_sensitive_html: 'Je staat op het punt om enkele berichten van @%{acct} als gevoelig te markeren. Dit zal:' + silence_html: 'Je staat op het punt om het account van @%{acct} te beperken. Dit zal:' + suspend_html: 'Je staat op het punt om het account van @%{acct} op te schorten. Dit zal:' + actions: + delete_html: De aanstootgevende berichten verwijderen + mark_as_sensitive_html: De media in de aanstootgevende berichten als gevoelig markeren + silence_html: Het account van @%{acct} ernstig beperken, door diens profiel en inhoud alleen zichtbaar te maken aan mensen die dit account al volgen of aan mensen die het account handmatig opzoeken + suspend_html: Het account van @%{acct} opschorten, waarmee diens profiel en inhoud niet toegankelijk zijn en het onmogelijk is om interactie te hebben + close_report: 'Rapportage #%{id} als opgelost markeren' + close_reports_html: "Alle rapportages tegen @%{acct} als opgelost markeren" + delete_data_html: Het account en inhoud van @%{acct} over 30 dagen verwijderen, tenzij die in de tussentijd wordt gedeblokkeerd + preview_preamble_html: "@%{acct} zal een waarschuwing ontvangen met de volgende inhoud:" + record_strike_html: Registreer een overtreding van @%{acct} om je te helpen met het sneller afhandelen van toekomstige overtredingen van dit account + send_email_html: Een waarschuwingsmail naar @%{acct} sturen + warning_placeholder: Optionele aanvullende redenen voor de moderatie-actie. target_origin: Herkomst van de gerapporteerde accounts title: Rapportages unassign: Niet langer toewijzen + unknown_action_msg: 'Onbekende actie: %{action}' unresolved: Onopgelost updated_at: Bijgewerkt view_profile: Profiel bekijken @@ -711,6 +736,8 @@ nl: preamble: Het tonen van interessante inhoud is van essentieel belang voor het aan boord halen van nieuwe gebruikers, die mogelijk niemand van Mastodon kennen. Bepaal hoe verschillende functies voor het ontdekken van inhoud en gebruikers op jouw server werken. profile_directory: Gebruikersgids public_timelines: Openbare tijdlijnen + publish_discovered_servers: Ontdekte servers publiceren + publish_statistics: Statistieken publiceren title: Ontdekken trends: Trends domain_blocks: @@ -938,6 +965,8 @@ nl: auth: apply_for_account: Account aanvragen change_password: Wachtwoord + confirmations: + wrong_email_hint: Als dat e-mailadres niet correct is, kun je het wijzigen in je accountinstellingen. delete_account: Account verwijderen delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat hier doen. We vragen jou daar om een bevestiging. description: @@ -1365,6 +1394,9 @@ nl: unrecognized_emoji: is geen bestaande emoji-reactie relationships: activity: Accountactiviteit + confirm_follow_selected_followers: Weet je zeker dat je de geselecteerde volgers wilt volgen? + confirm_remove_selected_followers: Weet je zeker dat je de geselecteerde volgers wilt verwijderen? + confirm_remove_selected_follows: Weet je zeker dat je de geselecteerde gevolgde accounts wilt verwijderen? dormant: Sluimerend follow_selected_followers: Geselecteerde volgers volgen followers: Volgers @@ -1454,7 +1486,7 @@ nl: notifications: Meldingen preferences: Voorkeuren profile: Profiel - relationships: Volgers en gevolgden + relationships: Volgers en gevolgde accounts statuses_cleanup: Automatisch berichten verwijderen strikes: Vastgestelde overtredingen two_factor_authentication: Tweestapsverificatie diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 1c70a33c18..f2c1ccdae2 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -457,6 +457,7 @@ pl: private_comment_description_html: 'Żebyś wiedział(a) skąd pochodzą zaimportowane bloki, zostaną one utworzone z następującym prywatnym komentarzem: %{comment}' private_comment_template: Zaimportowano z %{source} dnia %{date} title: Importuj zablokowane domeny + invalid_domain_block: 'Jeden lub więcej blokujących domen zostało pominiętych z powodu następującego błędu(ów): %{error}' new: title: Importuj zablokowane domeny no_file: Nie wybrano pliku @@ -613,6 +614,7 @@ pl: comment: none: Brak comment_description_html: 'Aby dostarczyć więcej informacji, %{name} napisał:' + confirm_action: Potwierdzenie działań moderacyjnych wobec @%{acct} created_at: Zgłoszono delete_and_resolve: Usuń posty forwarded: Przekazano @@ -629,6 +631,7 @@ pl: placeholder: Opisz wykonane akcje i inne szczegóły dotyczące tego zgłoszenia… title: Notatki notes_description_html: Przeglądaj i zostaw notatki innym moderatorom i sobie samemu + processed_msg: 'Raport #%{id} został pomyślnie przetworzony' quick_actions_description_html: 'Wykonaj szybkie działanie lub przewiń w dół, aby zobaczyć zgłoszoną zawartość:' remote_user_placeholder: zdalny użytkownik z %{instance} reopen: Otwórz ponownie @@ -641,9 +644,28 @@ pl: status: Stan statuses: Zgłoszona treść statuses_description_html: Obraźliwe treści będą cytowane w komunikacji ze zgłoszonym kontem + summary: + action_preambles: + delete_html: 'Zamierzasz usunąć niektóre posty @%{acct}. To spowoduje:' + mark_as_sensitive_html: 'Zamierzasz oznaczyć niektóre posty @%{acct} jako wrażliwe. To spowoduje:' + silence_html: 'Zamierzasz ograniczyć konto @%{acct}. To spowoduje:' + suspend_html: 'Zamierzasz zawiesić konto @%{acct}. To spowoduje:' + actions: + delete_html: Usuń obrażające posty + mark_as_sensitive_html: Oznacz obraźliwe media postów jako wrażliwe + silence_html: Znacząco ogranicz zasięg @%{acct}, aby ich profil i zawartość były widoczne tylko dla osób, które je już obserwują lub ręcznie wyszukują jego profil + suspend_html: Zawieś @%{acct}, co sprawia, że ich profil i zawartość są niedostępne i niemożliwe do interakcji z + close_report: 'Oznacz raport #%{id} jako rozwiązany' + close_reports_html: Oznacz wszystkie zgłoszenia dotyczące @%{acct} jako rozwiązane + delete_data_html: Usuń profil i zawartość @%{acct} za 30 dni, chyba że w tym czasie zostanie zawieszony + preview_preamble_html: "@%{acct} otrzyma ostrzeżenie o następującej treści:" + record_strike_html: Zarejestruj ostrzeżenie przeciwko @%{acct}, aby ułatwić sobie eskalację w przypadku przyszłych naruszeń z tego konta + send_email_html: Wyślij do @%{acct} wiadomość e-mail z ostrzeżeniem + warning_placeholder: Opcjonalne dodatkowe uzasadnienie działania moderacyjnego. target_origin: Pochodzenie zgłaszanego konta title: Zgłoszenia unassign: Cofnij przypisanie + unknown_action_msg: 'Nieznane działanie: %{action}' unresolved: Nierozwiązane updated_at: Zaktualizowano view_profile: Wyświetl profil @@ -979,6 +1001,8 @@ pl: auth: apply_for_account: Poproś o założenie konta change_password: Hasło + confirmations: + wrong_email_hint: Jeśli ten adres e-mail nie jest poprawny, możesz go zmienić w ustawieniach konta. delete_account: Usunięcie konta delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie. description: diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 5e3e079a36..a34d77f98e 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -573,6 +573,7 @@ pt-BR: mark_as_sensitive_description_html: Os conteúdos de mídia em publicações denunciadas serão marcados como sensíveis e um aviso de violação será mantido para te informar sobre o agravamento caso essa mesma conta comenta infrações no futuro. other_description_html: Veja mais opções para controlar o comportamento da conta e personalizar a comunicação com a conta denunciada. resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma violação será guardada e a denúncia será encerrada. + silence_description_html: A conta ficará visível apenas para aqueles que já a seguem ou que a procuram manualmente, limitando severamente seu alcance. Pode ser revertido a qualquer momento. Fecha todas as denúncias desta conta. actions_description_html: Decida que medidas tomar para resolver esta denúncia. Se você decidir punir a conta denunciada, ela receberá uma notificação por e-mail, exceto quando for selecionada a categoria spam for selecionada. add_to_report: Adicionar mais à denúncia are_you_sure: Você tem certeza? @@ -612,9 +613,21 @@ pt-BR: status: Estado statuses: Conteúdo denunciado statuses_description_html: Conteúdo ofensivo será citado em comunicação com a conta denunciada + summary: + action_preambles: + delete_html: 'Você está prestes a remover algumas das publicações de @%{acct}. Isso irá:' + mark_as_sensitive_html: 'Você está prestes a marcar algumas das publicações de @%{acct} como sensíveis. Isso irá:' + silence_html: 'Você está prestes a limitar a conta de @%{acct}. Isso irá:' + suspend_html: 'Você está prestes a suspender a conta de @%{acct}. Isso irá:' + close_report: 'Marcar denúncia #%{id} como resolvida' + close_reports_html: Marcar todas as denúncias contra @%{acct} como resolvidas + delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo + preview_preamble_html: "@%{acct} receberá um aviso com o seguinte conteúdo:" + send_email_html: Enviar @%{acct} um e-mail de aviso target_origin: Origem da conta denunciada title: Denúncias unassign: Desatribuir + unknown_action_msg: 'Ação desconhecida: %{action}' unresolved: Não resolvido updated_at: Atualizado view_profile: Ver perfil @@ -703,6 +716,7 @@ pt-BR: title: Retenção de conteúdo default_noindex: desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente + title: Optar por excluir usuários da indexação de mecanismos de pesquisa por padrão 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. @@ -937,6 +951,8 @@ pt-BR: auth: apply_for_account: Solicitar uma conta change_password: Senha + confirmations: + wrong_email_hint: Se esse endereço de e-mail não estiver correto, você pode alterá-lo nas configurações da conta. delete_account: Excluir conta delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui. Uma confirmação será solicitada. description: @@ -964,6 +980,7 @@ pt-BR: resend_confirmation: Reenviar instruções de confirmação reset_password: Redefinir senha rules: + preamble: Estes são definidos e aplicados pelos moderadores de %{domain}. title: Algumas regras básicas. security: Segurança set_new_password: Definir uma nova senha diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 39659a2043..fb296988f6 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -441,6 +441,7 @@ pt-PT: private_comment_description_html: 'Para o ajudar a rastrear a origem dos bloqueios importados, estes serão criados com o seguinte comentário privado: %{comment}' private_comment_template: Importado de %{source} em %{date} title: Importar bloqueios de domínio + invalid_domain_block: 'Um ou mais blocos de domínio foram ignorados devido o(s) seguinte(s) erro(s): %{error}' new: title: Importar bloqueios de domínio no_file: Nenhum ficheiro selecionado @@ -589,6 +590,7 @@ pt-PT: comment: none: Nenhum comment_description_html: 'Para fornecer mais informações, %{name} escreveu:' + confirm_action: Confirmar a ação de moderação contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicações forwarded: Encaminhado @@ -605,6 +607,7 @@ pt-PT: 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 si próprio no futuro + processed_msg: 'Relatório #%{id} processado com sucesso' 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 @@ -617,9 +620,28 @@ pt-PT: status: Estado statuses: Conteúdo denunciado statuses_description_html: O conteúdo ofensivo será citado na comunicação com a conta denunciada + summary: + action_preambles: + delete_html: 'Você está prestes a remover algumas das publicações de @%{acct}. Isto irá:' + mark_as_sensitive_html: 'Você está prestes a marcar alguns dos posts de @%{acct}como sensível. Isto irá:' + silence_html: 'Você está prestes a limitar a conta do @%{acct}. Isto irá:' + suspend_html: 'Você está prestes a suspender a conta de @%{acct}. Isto irá:' + actions: + delete_html: Excluir as publicações ofensivas + mark_as_sensitive_html: Marcar a mídia dos posts ofensivos como sensível + silence_html: Limitar firmemente o alcance de @%{acct}, tornando seus perfis e conteúdos apenas visíveis para pessoas que já os estão seguindo ou olhando manualmente no perfil + suspend_html: Suspender @%{acct}, tornando seu perfil e conteúdo inacessíveis e impossível de interagir com + close_report: 'Marcar relatório #%{id} como resolvido' + close_reports_html: Marcar todos os relatórios contra @%{acct} como resolvidos + delete_data_html: Excluir @%{acct}perfil e conteúdo 30 dias a menos que sejam dessuspensos + preview_preamble_html: "@%{acct} receberá um aviso com o seguinte conteúdo:" + record_strike_html: Registre um ataque contra @%{acct} para ajudá-lo a escalar futuras violações desta conta + send_email_html: Enviar @%{acct} um e-mail de aviso + warning_placeholder: Argumentos adicionais opcionais para a acção de moderação. target_origin: Origem da conta denunciada title: Denúncias unassign: Não atribuir + unknown_action_msg: 'Ação desconhecida: %{action}' unresolved: Por resolver updated_at: Atualizado view_profile: Ver perfil @@ -943,6 +965,8 @@ pt-PT: auth: apply_for_account: Solicitar uma conta change_password: Palavra-passe + confirmations: + wrong_email_hint: Se esse endereço de e-mail não estiver correto, você pode alterá-lo nas configurações da conta. delete_account: Eliminar conta delete_account_html: Se deseja eliminar a sua conta, pode continuar aqui. Uma confirmação será solicitada. description: diff --git a/config/locales/simple_form.csb.yml b/config/locales/simple_form.csb.yml new file mode 100644 index 0000000000..0de706e41f --- /dev/null +++ b/config/locales/simple_form.csb.yml @@ -0,0 +1 @@ +csb: diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 072030f826..0958426b6b 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -36,7 +36,7 @@ da: current_username: For at bekræfte, angiv brugernavnet for den aktuelle konto digest: Sendes kun efter en lang inaktivitetsperiode, og kun hvis du har modtaget personlige beskeder under fraværet discoverable: Tillad kontoen at blive fundet af fremmede via anbefalinger og øvrige funktioner - email: En bekræftelsese-mail fremsendes + email: En bekræftelses-e-mail fremsendes fields: Profilen kan have op til 4 elementer vist som en tabel header: PNG, GIF eller JPG. Maks. %{size}. Auto-nedskaleres til %{dimensions}px inbox_url: Kopiér URL'en fra forsiden af den videreformidler, der skal anvendes diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index 3ad342cb4e..d66a708af0 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -115,8 +115,60 @@ en-GB: text: Describe a rule or requirement for users on this server. Try to keep it short and simple sessions: otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' + webauthn: If it's an USB key be sure to insert it and, if necessary, tap it. + tag: + name: You can only change the casing of the letters, for example, to make it more readable + user: + chosen_languages: When checked, only posts in selected languages will be displayed in public timelines + role: The role controls which permissions the user has + user_role: + color: Color to be used for the role throughout the UI, as RGB in hex format + highlighted: This makes the role publicly visible + name: Public name of the role, if role is set to be displayed as a badge + permissions_as_keys: Users with this role will have access to... + position: Higher role decides conflict resolution in certain situations. Certain actions can only be performed on roles with a lower priority + webhook: + events: Select events to send + url: Where events will be sent to labels: + account: + fields: + name: Label + value: Content + account_alias: + acct: Handle of the old account + account_migration: + acct: Handle of the new account + account_warning_preset: + text: Preset text + title: Title + admin_account_action: + include_statuses: Include reported posts in the e-mail + send_email_notification: Notify the user per e-mail + text: Custom warning + type: Action + types: + disable: Freeze + none: Send a warning + sensitive: Sensitive + silence: Limit + suspend: Suspend + warning_preset_id: Use a warning preset + announcement: + all_day: All-day event + ends_at: End of event + scheduled_at: Schedule publication + starts_at: Start of event + text: Announcement + appeal: + text: Explain why this decision should be reversed defaults: + autofollow: Invite to follow your account + avatar: Avatar + bot: This is a bot account + chosen_languages: Filter languages + confirm_new_password: Confirm new password + confirm_password: Confirm password context: Filter contexts current_password: Current password data: Data @@ -135,7 +187,85 @@ en-GB: new_password: New password note: Bio otp_attempt: Two-factor code + password: Password + phrase: Keyword or phrase + setting_advanced_layout: Enable advanced web interface + setting_aggregate_reblogs: Group boosts in timelines + setting_always_send_emails: Always send e-mail notifications + setting_auto_play_gif: Auto-play animated GIFs + setting_boost_modal: Show confirmation dialogue before boosting + setting_crop_images: Crop images in non-expanded posts to 16x9 + setting_default_language: Posting language + setting_default_privacy: Posting privacy + setting_default_sensitive: Always mark media as sensitive + setting_delete_modal: Show confirmation dialogue before deleting a post + setting_disable_swiping: Disable swiping motions + setting_display_media: Media display + setting_display_media_default: Default + setting_display_media_hide_all: Hide all + setting_display_media_show_all: Show all + setting_expand_spoilers: Always expand posts marked with content warnings + setting_hide_network: Hide your social graph + setting_noindex: Opt-out of search engine indexing + setting_reduce_motion: Reduce motion in animations + setting_show_application: Disclose application used to send posts + setting_system_font_ui: Use system's default font + setting_theme: Site theme + setting_trends: Show today's trends + setting_unfollow_modal: Show confirmation dialog before unfollowing someone + setting_use_blurhash: Show colourful gradients for hidden media + setting_use_pending_items: Slow mode + severity: Severity + sign_in_token_attempt: Security code + title: Title + type: Import type + username: Username + username_or_email: Username or Email + whole_word: Whole word + email_domain_block: + with_dns_records: Include MX records and IPs of the domain + featured_tag: + name: Hashtag + filters: + actions: + 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 + content_cache_retention_period: Content cache retention period + 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 + show_domain_blocks: Show domain blocks + show_domain_blocks_rationale: Show why domains were blocked + site_contact_email: Contact e-mail + site_contact_username: Contact username + site_extended_description: Extended description + site_short_description: Server description + site_terms: Privacy Policy + site_title: Server name + theme: Default theme + thumbnail: Server thumbnail + timeline_preview: Allow unauthenticated access to public timelines + trendable_by_default: Allow trends without prior review + trends: Enable trends + interactions: + must_be_follower: Block notifications from non-followers + must_be_following: Block notifications from people you don't follow + must_be_following_dm: Block direct messages from people you don't follow + invite: + comment: Comment + invite_request: + text: Why do you want to join? ip_block: + comment: Comment ip: IP severities: no_access: Block access @@ -164,6 +294,7 @@ en-GB: role: Role user_role: color: Badge colour + highlighted: Display role as badge on user profiles name: Name permissions_as_keys: Permissions position: Priority diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index ddecb0036e..7592979309 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -74,6 +74,7 @@ es: hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro form_admin_settings: + activity_api_enabled: Conteo de publicaciones publicadas localmente, usuarios activos y registros nuevos cada semana backups_retention_period: Mantener los archivos de usuario generados durante el número de días especificado. bootstrap_timeline_accounts: Estas cuentas aparecerán en la parte superior de las recomendaciones de los nuevos usuarios. closed_registrations_message: Mostrado cuando los registros están cerrados @@ -230,6 +231,7 @@ es: hide: Ocultar completamente warn: Ocultar con una advertencia form_admin_settings: + activity_api_enabled: Publicar estadísticas agregadas sobre la actividad del usuario con la API backups_retention_period: Período de retención del archivo de usuario bootstrap_timeline_accounts: Recomendar siempre estas cuentas a nuevos usuarios closed_registrations_message: Mensaje personalizado cuando los registros no están disponibles diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 5efc182a4c..29042deb5d 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -18,6 +18,8 @@ eu: disable: Erabiltzaileari bere kontua erabiltzea eragotzi, baina ez ezabatu edo ezkutatu bere edukiak. none: Erabili hau erabiltzaileari abisu bat bidaltzeko, beste ekintzarik abiarazi gabe. sensitive: Behartu erabiltzaile honen multimedia eranskin guztiak hunkigarri gisa markatzea. + silence: Eragotzi erabiltzaileak ikusgaitasun publikoarekin argitaratzea, ezkutatu bere bidalketa eta jakinarazpenak jarraitzen ez duten pertsonei. Kontu honen aurkako txosten guztiak ixten ditu. + suspend: Eragotzi kontu honek inolako interakziorik izatea eta ezabatu bere edukiak. Atzera bota daiteke 30 egun igaro aurretik. Kontu honen aurkako txosten guztiak ixten ditu. warning_preset_id: Aukerakoa. Zure testua gehitu dezakezu aurre-ezarpenaren ostean announcement: all_day: Markatutakoan soilik denbora barrutiko datak erakutsiko dira @@ -72,6 +74,7 @@ eu: hide: Ezkutatu erabat iragazitako edukia, existituko ez balitz bezala warn: Ezkutatu iragazitako edukia iragazkiaren izenburua duen abisu batekin form_admin_settings: + activity_api_enabled: Lokalki argitaratutako bidalketak, erabiltzaile aktiboak, eta izen-emateen kopuruak astero zenbatzen ditu backups_retention_period: Mantendu sortutako erabiltzailearen artxiboa zehazturiko egun kopuruan. bootstrap_timeline_accounts: Kontu hauek erabiltzaile berrien jarraitzeko gomendioen goiko aldean ainguratuko dira. closed_registrations_message: Izen-ematea itxia dagoenean bistaratua @@ -79,6 +82,7 @@ eu: custom_css: Estilo pertsonalizatuak aplikatu ditzakezu Mastodonen web bertsioan. mascot: Web interfaze aurreratuko ilustrazioa gainidazten du. media_cache_retention_period: Balio positibo bat ezarriz gero, egun kopuru horretara iristean beste zerbitzarietatik deskargatutako multimedia fitxategiak ezabatuko dira. Ondoren, eskatu ahala deskargatuko dira berriz. + peers_api_enabled: Zerbitzari honek fedibertsoan ikusi dituen zerbitzarien domeinu-izenen zerrenda. Ez da daturik ematen zerbitzari jakin batekin federatzearen ala ez federatzearen inguruan, zerbitzariak haien berri duela soilik. Federazioari buruzko estatistika orokorrak biltzen dituzten zerbitzuek erabiltzen dute hau. profile_directory: Profilen direktorioan ikusgai egotea aukeratu duten erabiltzaile guztiak zerrendatzen dira. require_invite_text: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko site_contact_email: Jendeak kontsulta legalak egin edo laguntza eskatzeko bidea. @@ -227,6 +231,7 @@ eu: hide: Ezkutatu guztiz warn: Ezkutatu ohar batekin form_admin_settings: + activity_api_enabled: Argitaratu erabiltzaile-jardueraren guztizko estatistikak APIan backups_retention_period: Erabiltzailearen artxiboa gordetzeko epea bootstrap_timeline_accounts: Gomendatu beti kontu hauek erabiltzaile berriei closed_registrations_message: Izen-emateak itxita daudenerako mezu pertsonalizatua @@ -234,6 +239,7 @@ eu: custom_css: CSS pertsonalizatua mascot: Maskota pertsonalizatua (zaharkitua) media_cache_retention_period: Multimediaren cachea atxikitzeko epea + peers_api_enabled: Argitaratu aurkitutako zerbitzarien zerrenda APIan profile_directory: Gaitu profil-direktorioa registrations_mode: Nork eman dezake izena require_invite_text: Eskatu arrazoi bat batzeko diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 49e3962b59..ffcf16e01a 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -188,13 +188,13 @@ fi: password: Salasana phrase: Avainsana tai lause setting_advanced_layout: Ota käyttöön edistynyt selainkäyttöliittymä - setting_aggregate_reblogs: Ryhmitä boostaukset aikajanalla + setting_aggregate_reblogs: Ryhmitä tehostukset aikajanalla setting_always_send_emails: Lähetä aina sähköposti-ilmoituksia setting_auto_play_gif: Toista GIF-animaatiot automaattisesti - setting_boost_modal: Kysy vahvistusta ennen buustausta + setting_boost_modal: Kysy vahvistus ennen tehostusta setting_crop_images: Rajaa kuvat avaamattomissa tuuttauksissa 16:9 kuvasuhteeseen setting_default_language: Julkaisujen kieli - setting_default_privacy: Julkaisun näkyvyys + setting_default_privacy: Viestin näkyvyys setting_default_sensitive: Merkitse media aina arkaluontoiseksi setting_delete_modal: Kysy vahvistusta ennen viestin poistamista setting_disable_swiping: Poista pyyhkäisyt käytöstä @@ -278,7 +278,7 @@ fi: follow_request: Lähetä sähköposti, kun joku pyytää seurata sinua mention: Lähetä sähköposti, kun sinut mainitaan pending_account: Uusi tili tarvitsee tarkastusta - reblog: Lähetä sähköposti, kun joku buustaa julkaisusi + reblog: Lähetä sähköposti, kun joku tehosti viestiäsi report: Uusi raportti on lähetetty trending_tag: Uusi trendi vaatii tarkastelua rule: diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index efb5b0a5cf..779555da3c 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -18,8 +18,8 @@ ja: disable: ユーザーが自分のアカウントを使用できないようにします。コンテンツを削除したり非表示にすることはありません。 none: これを使用すると、他の操作をせずにユーザーに警告を送信できます。 sensitive: このユーザーが添付したメディアを強制的に閲覧注意にする - silence: ユーザーが公開投稿できないようにし、フォローしていない人に投稿や通知が表示されないようにする。このアカウントに対する全ての通報をクローズします。 - suspend: このアカウントとのやりとりを止め、コンテンツを削除します。30日以内は取消可能です。このアカウントに対する全ての通報をクローズします。 + silence: ユーザーによる公開投稿を禁止し、フォローしていない人に投稿や通知が表示されないようにします。また、このアカウントに対するすべての通報をクローズします。 + suspend: このアカウントによるすべての活動を禁止し、コンテンツを削除します。この操作は30日以内であれば取り消しが可能です。また、このアカウントに対するすべての通報をクローズします。 warning_preset_id: オプションです。プリセット警告文の末尾に任意の文字列を追加することができます announcement: all_day: 有効化すると、対象期間の箇所に日付だけが表示されます @@ -71,26 +71,26 @@ ja: filters: action: 投稿がフィルタに一致したときに実行するアクションを選択 actions: - hide: フィルタリングしたコンテンツを完全に隠し、あたかも存在しないかのようにします - warn: フィルタリングされたコンテンツを、フィルタータイトルの警告の後ろに隠します。 + hide: フィルタに一致した投稿を完全に非表示にします + warn: フィルタに一致した投稿を非表示にし、フィルタのタイトルを含む警告を表示します form_admin_settings: - activity_api_enabled: 週単位でローカルで公開された投稿数、アクティブユーザー数、新規登録者数を表示する + activity_api_enabled: 週単位でローカルで公開された投稿数、アクティブユーザー数、新規登録者数を表示します backups_retention_period: 生成されたユーザーのアーカイブを指定した日数の間保持します。 - bootstrap_timeline_accounts: これらのアカウントは、新しいユーザーのフォロー推奨リストの一番上にピン留めされます。 + bootstrap_timeline_accounts: これらのアカウントは、新しいユーザー向けのおすすめユーザーの一番上にピン留めされます。 closed_registrations_message: アカウント作成を停止している時に表示されます content_cache_retention_period: 正の値に設定されている場合、他のサーバーの投稿は指定された日数の後に削除されます。元に戻せません。 custom_css: ウェブ版のMastodonでカスタムスタイルを適用できます。 - mascot: 上級者向けWebインターフェースのイラストを上書きする。 + mascot: 上級者向けWebインターフェースのイラストを上書きします。 media_cache_retention_period: 正の値に設定されている場合、ダウンロードされたメディアファイルは指定された日数の後に削除され、リクエストに応じて再ダウンロードされます。 peers_api_enabled: このサーバーが Fediverse で遭遇したドメイン名のリストです。このサーバーが知っているだけで、特定のサーバーと連合しているかのデータは含まれません。これは一般的に Fediverse に関する統計情報を収集するサービスによって使用されます。 - profile_directory: プロフィールディレクトリには、掲載するよう設定したすべてのユーザーが一覧表示されます。 - require_invite_text: アカウント登録が承認制の場合、「意気込みをお聞かせください」のテキストの入力を必須にする + profile_directory: ディレクトリには、掲載する設定をしたすべてのユーザーが一覧表示されます。 + require_invite_text: アカウント登録が承認制の場合、申請事由の入力を必須にします site_contact_email: 法律またはサポートに関する問い合わせ先 site_contact_username: マストドンでの連絡方法 site_extended_description: 訪問者やユーザーに役立つかもしれない任意の追加情報。Markdownが使えます。 - site_short_description: 誰が運営しているのか、誰に向けたものなのかなど、サーバーを特定する短い説明。 + site_short_description: 運営している人や組織、想定しているユーザーなど、サーバーの特徴を説明する短いテキスト site_terms: 独自のプライバシーポリシーを使用するか空白にしてデフォルトのプライバシーポリシーを使用します。Markdownが使えます。 - site_title: ドメイン名以外でサーバーを参照する方法です。 + site_title: ドメイン名以外でサーバーを参照する方法 theme: ログインしていない人と新規ユーザーに表示されるテーマ。 thumbnail: サーバー情報と共に表示される、アスペクト比が約 2:1 の画像。 timeline_preview: ログアウトした人でも、サーバー上で利用可能な最新の公開投稿を閲覧することができます。 diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 742b3bcf42..007fa85610 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -30,7 +30,7 @@ ko: appeal: text: 처벌에 대해 단 한 번만 이의제기를 할 수 있습니다 defaults: - autofollow: 이 초대를 통해 가입하는 사람은 당신을 자동으로 팔로우 하게 됩니다 + autofollow: 이 초대로 가입한 사람은 나를 팔로우하게 됩니다. avatar: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨 bot: 이 계정이 대부분 자동으로 작업을 수행하고 잘 확인하지 않는다는 것을 알립니다. context: 필터를 적용 할 한 개 이상의 컨텍스트 @@ -45,7 +45,7 @@ ko: irreversible: 필터링 된 게시물은 나중에 필터가 사라지더라도 돌아오지 않게 됩니다 locale: 사용자 인터페이스, 이메일, 푸시 알림 언어 locked: 팔로우 요청을 승인제로 두어 누가 당신을 팔로우 할 수 있는지를 수동으로 제어합니다. - password: 최소 8글자 + password: 여덟 글자를 넘어야 합니다. phrase: 게시물 내용이나 열람주의 내용 안에서 대소문자 구분 없이 매칭 됩니다 scopes: 애플리케이션에 허용할 API들입니다. 최상위 스코프를 선택하면 개별적인 것은 선택하지 않아도 됩니다. setting_aggregate_reblogs: 최근에 부스트 됐던 게시물은 새로 부스트 되어도 보여주지 않기 (새로 받은 부스트에만 적용됩니다) @@ -101,7 +101,7 @@ ko: imports: data: 다른 마스토돈 서버에서 추출된 CSV 파일 invite_request: - text: 이 정보는 우리가 심사를 하는 데에 참고할 수 있습니다 + text: 이 정보는 신청을 검토하는데 도움을 줄 수 있습니다. ip_block: comment: 필수 아님. 왜 이 규칙을 추가했는지 기억하세요. expires_in: IP 주소는 한정된 자원입니다, 이것들은 가끔 공유 되거나 자주 소유자가 바뀌기도 합니다. 이런 이유로 인해, IP 차단을 영구히 유지하는 것은 추천하지 않습니다. @@ -151,7 +151,7 @@ ko: disable: 비활성화 none: 아무 것도 하지 않기 sensitive: 민감함 - silence: 침묵 + silence: 제한 suspend: 정지하고 되돌릴 수 없는 데이터 삭제 warning_preset_id: 경고 틀 사용하기 announcement: @@ -279,16 +279,16 @@ ko: follow: 누군가 나를 팔로우 했을 때 follow_request: 누군가 나를 팔로우 하길 요청할 때 mention: 누군가 나를 언급했을 때 - pending_account: 새 계정이 심사가 필요할 때 + pending_account: 검토해야 할 새 계정 reblog: 누군가 내 게시물을 부스트 했을 때 report: 새 신고가 접수되었을 때 - trending_tag: 새 트렌드에 대한 리뷰가 필요할 때 + trending_tag: 검토해야 할 새 유행 rule: text: 규칙 tag: listable: 이 해시태그가 검색과 추천에 보여지도록 허용 name: 해시태그 - trendable: 이 해시태그가 유행에 보여지도록 허용 + trendable: 이 해시태그를 유행에 나타나도록 허용 usable: 이 해시태그를 게시물에 사용 가능하도록 허용 user: role: 역할 diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 4816dbacfd..ce474dab7e 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -18,6 +18,8 @@ nl: disable: Voorkom dat de gebruiker diens account gebruikt, maar verwijder of verberg de inhoud niet. none: Gebruik dit om een waarschuwing naar de gebruiker te sturen, zonder dat nog een andere maatregel wordt genomen. sensitive: Forceer dat alle mediabijlagen van deze gebruiker als gevoelig worden gemarkeerd. + silence: Voorkom dat de gebruiker berichten kan plaatsen met openbare zichtbaarheid, verberg diens berichten en meldingen van mensen die de gebruiker niet volgen. Sluit alle rapportages tegen dit account af. + suspend: Voorkom interactie van of naar dit account en verwijder de inhoud. Dit is omkeerbaar binnen 30 dagen. Dit sluit alle rapporten tegen dit account af. warning_preset_id: Optioneel. Je kunt nog steeds handmatig tekst toevoegen aan het eind van de voorinstelling announcement: all_day: Wanneer dit is aangevinkt worden alleen de datums binnen het tijdvak getoond @@ -72,6 +74,7 @@ nl: hide: Verberg de gefilterde inhoud volledig, alsof het niet bestaat warn: Verberg de gefilterde inhoud achter een waarschuwing, met de titel van het filter als waarschuwingstekst form_admin_settings: + activity_api_enabled: Aantallen lokaal gepubliceerde berichten, actieve gebruikers en nieuwe registraties per week backups_retention_period: De aangemaakte gebruikersarchieven voor het opgegeven aantal dagen behouden. bootstrap_timeline_accounts: Deze accounts worden bovenaan de aanbevelingen aan nieuwe gebruikers getoond. Meerdere gebruikersnamen met komma's scheiden. closed_registrations_message: Weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld @@ -79,6 +82,7 @@ nl: custom_css: Je kunt aangepaste CSS toepassen op de webversie van deze Mastodon-server. mascot: Overschrijft de illustratie in de geavanceerde webomgeving. media_cache_retention_period: Mediabestanden die van andere servers zijn gedownload worden na het opgegeven aantal dagen verwijderd en worden op verzoek opnieuw gedownload. + peers_api_enabled: Een lijst met domeinnamen die deze server heeft aangetroffen in de fediverse. Er zijn hier geen gegevens inbegrepen over de vraag of je verbonden bent met een bepaalde server, alleen dat je server er van weet. Dit wordt gebruikt door diensten die statistieken over de federatie in algemene zin verzamelen. profile_directory: De gebruikersgids bevat een lijst van alle gebruikers die ervoor gekozen hebben om ontdekt te kunnen worden. require_invite_text: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd site_contact_email: Hoe mensen je kunnen bereiken voor juridische vragen of support. @@ -227,6 +231,7 @@ nl: hide: Volledig verbergen warn: Met een waarschuwing verbergen form_admin_settings: + activity_api_enabled: Statistieken over gebruikersactiviteit via de API publiceren backups_retention_period: Bewaartermijn gebruikersarchief bootstrap_timeline_accounts: Accounts die altijd aan nieuwe gebruikers worden aanbevolen closed_registrations_message: Aangepast bericht wanneer registratie is uitgeschakeld @@ -234,6 +239,7 @@ nl: custom_css: Aangepaste CSS mascot: Aangepaste mascotte (legacy) media_cache_retention_period: Bewaartermijn mediacache + peers_api_enabled: Lijst van bekende servers via de API publiceren profile_directory: Gebruikersgids inschakelen registrations_mode: Wie kan zich registreren require_invite_text: Opgeven van een reden is verplicht diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index f8bcf7adfa..78c8ea7e00 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -163,7 +163,7 @@ sk: notification_emails: digest: Zasielať súhrnné emaily favourite: Zaslať email, ak si niekto obľúbi tvoj príspevok - follow: Zaslať email, ak ťa niekto začne následovať + follow: Niekto ťa začal nasledovať follow_request: Zaslať email, ak ti niekto pošle žiadosť o sledovanie mention: Zaslať email, ak ťa niekto spomenie vo svojom príspevku pending_account: Zaslať email, ak treba prehodnotiť nový účet diff --git a/config/locales/simple_form.uz.yml b/config/locales/simple_form.uz.yml new file mode 100644 index 0000000000..3ed042df39 --- /dev/null +++ b/config/locales/simple_form.uz.yml @@ -0,0 +1 @@ +uz: diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 7eebb2d469..a4036e91bd 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -84,7 +84,7 @@ zh-TW: media_cache_retention_period: 當設定成正值時,已下載的多媒體檔案會於指定天數後被刪除,並且視需要重新下載。 peers_api_enabled: 浩瀚聯邦宇宙中與此伺服器曾經擦肩而過的網域列表。不包含關於您是否與此伺服器是否有與之串連,僅僅表示您的伺服器已知此網域。這是供收集聯邦宇宙中一般性統計資料服務使用。 profile_directory: 個人檔案目錄將會列出那些有選擇被發現的使用者。 - require_invite_text: 如果已設定為手動審核註冊,請將「加入原因」設定為必填項目。 + require_invite_text: 如果已設定為手動審核註冊,請將「為什麼想要加入呢?」設定為必填項目。 site_contact_email: 其他人如何聯繫您關於法律或支援之諮詢。 site_contact_username: 其他人如何於 Mastodon 上聯繫您。 site_extended_description: 任何其他可能對訪客或使用者有用的額外資訊。可由 Markdown 語法撰寫。 @@ -263,7 +263,7 @@ zh-TW: invite: comment: 備註 invite_request: - text: 加入的原因 + text: 為什麼想要加入呢? ip_block: comment: 備註 ip: IP 位址 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 58a689b0c2..f5042f92bb 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -21,8 +21,8 @@ sk: pin_errors: following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť posts: - few: Príspevkov - many: Príspevky + few: Príspevky + many: Príspevkov one: Príspevok other: Príspevkov posts_tab_heading: Príspevky @@ -227,6 +227,7 @@ sk: destroy_ip_block_html: "%{name} vymazal/a pravidlo pre IP %{target}" destroy_status_html: "%{name} zmazal/a príspevok od %{target}" deleted_account: zmazaný účet + empty: Žiadne záznamy nenájdené. filter_by_action: Filtruj podľa úkonu filter_by_user: Trieď podľa užívateľa title: Kontrólny záznam @@ -317,6 +318,7 @@ sk: hint: Blokovanie domény stále dovolí vytvárať nové účty v databázi, ale tieto budú spätne automaticky moderované. severity: noop: Nič + silence: Obmedz suspend: Vylúč title: Nové blokovanie domény obfuscate: Zatemniť názov domény @@ -344,6 +346,8 @@ sk: resolved_through_html: Prevedená cez %{domain} title: Blokované emailové adresy export_domain_allows: + new: + title: Nahraj povolené domény no_file: Nevybraný žiaden súbor export_domain_blocks: import: @@ -476,6 +480,11 @@ sk: resolved_msg: Hlásenie úspešne vyriešené! status: Stav statuses: Nahlásený obsah + summary: + actions: + delete_html: Vymaž pohoršujúce príspevky + mark_as_sensitive_html: Označ médiá pohoršujúcich príspevkov za chúlostivé + close_report: 'Označ hlásenie #%{id} za vyriešené' title: Hlásenia unassign: Odober unresolved: Nevyriešené @@ -647,7 +656,7 @@ sk: description: prefix_invited_by_user: "@%{name} ťa pozýva na tento Mastodon server!" prefix_sign_up: Zaregistruj sa na Mastodone už dnes! - suffix: S pomocou účtu budeš môcť následovať ľudí, posielať príspevky, a vymienať si správy s užívateľmi na hociakom Mastodon serveri, ale aj na iných serveroch! + suffix: S pomocou účtu budeš môcť nasledovať ľudí, posielať príspevky, a vymieňať si správy s užívateľmi na hocijakom Mastodon serveri, ale aj na iných serveroch! didnt_get_confirmation: Neobdržal/a si kroky na potvrdenie? forgot_password: Zabudnuté heslo? invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítaj si nový. @@ -677,7 +686,7 @@ sk: already_following: Tento účet už nasleduješ error: Naneštastie nastala chyba pri hľadaní vzdialeného účtu follow: Nasleduj - follow_request: 'Poslal/a si žiadosť následovať užívateľa:' + follow_request: 'Poslal/a si žiadosť nasledovať užívateľa:' following: 'Podarilo sa! Teraz nasleduješ užívateľa:' post_follow: close: Alebo môžeš iba zatvoriť toto okno. diff --git a/config/locales/sl.yml b/config/locales/sl.yml index d008543ad4..e2f712d7f8 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -457,6 +457,7 @@ sl: private_comment_description_html: 'Kot pomoč pri sledenju izvora uvoženih blokad bodo le-te ustvarjene z naslednjim zasebnim komentarjem: %{comment}' private_comment_template: Uvoženo iz %{source} %{date} title: Uvozi blokade domen + invalid_domain_block: 'Ena ali več blokad domen je bila preskočena zaradi naslednjih napak: %{error}' new: title: Uvozi blokade domen no_file: Nobena datoteka ni izbrana @@ -613,6 +614,7 @@ sl: comment: none: Brez comment_description_html: 'V pojasnilo je %{name} zapisal/a:' + confirm_action: Potrdite dejanje moderiranja proti @%{acct} created_at: Prijavljeno delete_and_resolve: Izbriši objave forwarded: Posredovano @@ -629,6 +631,7 @@ sl: placeholder: Opišite dejanja, ki ste jih izvedli, ali katere koli druge posodobitve ... title: Zapiski notes_description_html: Pokaži in pusti opombe drugim moderatorjem in sebi v prihodnosti + processed_msg: 'Prijava #%{id} uspešno obdelana' quick_actions_description_html: 'Opravite hitro dejanje ali podrsajte navzdol, da si ogledate prijavljeno vsebino:' remote_user_placeholder: oddaljeni uporabnik iz %{instance} reopen: Ponovno odpri prijavo @@ -641,9 +644,28 @@ sl: status: Stanje statuses: Prijavljena vsebina statuses_description_html: Žaljiva vsebina bo citirana v komunikaciji z računom iz prijave + summary: + action_preambles: + delete_html: 'Nekatere od objav uporabnika/ce @%{acct} boste odstranili. S tem boste:' + mark_as_sensitive_html: 'Nekatere od objav uporabnika/ce @%{acct} boste označili kot občutljive. S tem boste:' + silence_html: 'Račun uporabnika/ce @%{acct} boste omejili. S tem boste:' + suspend_html: "Suspendirali boste račun uporabnika/ce @%{acct}. S tem boste:" + actions: + delete_html: Odstrani žaljive objave + mark_as_sensitive_html: Označi večpredstavnost žaljivih objav kot občutljivo + silence_html: Močno omejite doseg osebe @%{acct}, tako da naredite njihov profil in vsebino vidno samo osebam, ki jih že spremljajo ali ročno poiščejo profil + suspend_html: Suspendirajte @%{acct}, s čimer postaneta njihov profil in vsebina nedostopna in z njim ni mogoče komunicirati + close_report: 'Označi prijavo #%{id} kot rešeno' + close_reports_html: Označi vse prijave zoper @%{acct} kot rešene + delete_data_html: Izbriši profil in vsebine @%{acct} čez 30 dni, razen če suspenz v tem času ni preklican + preview_preamble_html: 'Oseba @%{acct} bo prejela opozorilo z naslednjo vsebino:' + record_strike_html: Izdajte opomin računu @%{acct}, da boste lažje stopnjevali svoj odziv ob prihodnjih kršitvah s tega računa + send_email_html: Pošlji @%{acct} opozorilno e-sporočilo + warning_placeholder: Neobvezna dodatna utemeljitev dejanja moderiranja. target_origin: Izvor prijavljenega računa title: Prijave unassign: Odstopljeni + unknown_action_msg: 'Neznano dejanje: %{action}' unresolved: Nerešeni updated_at: Posodobljeni view_profile: Pokaži profil @@ -979,6 +1001,8 @@ sl: auth: apply_for_account: Zaprosite za račun change_password: Geslo + confirmations: + wrong_email_hint: Če ta e-poštni naslov ni pravilen, ga lahko spremenite v nastavitvah računa. delete_account: Izbriši račun delete_account_html: Če želite izbrisati svoj račun, lahko nadaljujete tukaj. Prosili vas bomo za potrditev. description: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 8b8f663aa0..961a14d47e 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -441,6 +441,7 @@ sq: private_comment_description_html: 'Për t’ju ndihmuar të ndiqni se nga vijnë bllokimet e importuara, këto do të krijohen me komentin vijues privat: %{comment}' private_comment_template: Importuar nga %{source} më %{date} title: Importoni bllokime përkatësish + invalid_domain_block: 'U anashkalua një ose më tepër bllokime përkatësish, për shkak të gabimit(eve) vijues: %{error}' new: title: Importoni bllokime përkatësish no_file: S’u përzgjodh kartelë @@ -588,6 +589,7 @@ sq: comment: none: Asnjë comment_description_html: 'Për të dhënë më tepër informacion, %{name} shkroi:' + confirm_action: Ripohoni veprim moderimi kundër @%{acct} created_at: Raportuar më delete_and_resolve: Fshiji postimet forwarded: U përcoll @@ -604,6 +606,7 @@ sq: placeholder: Përshkruani ç’veprime janë ndërmarrë, ose çfarëdo përditësimi tjetër që lidhet me të… title: Shënime notes_description_html: Shihni dhe lini shënime për moderatorët e tjerë dhe për veten në të ardhmen + processed_msg: 'Raportimi #%{id} u përpunua me sukses' quick_actions_description_html: 'Kryeni një veprim të shpejtë, ose rrëshqitni poshtë për të parë lëndën e raportuar:' remote_user_placeholder: përdoruesi i largët prej %{instance} reopen: Rihape raportimin @@ -616,9 +619,28 @@ sq: status: Gjendje statuses: Lëndë e raportuar statuses_description_html: Lënda problematike do të citohet në komunikimin me llogarinë e raportuar + summary: + action_preambles: + delete_html: 'Ju ndan një hap nga heqja e disa postimeve të @%{acct}. Kjo do të sjellë:' + mark_as_sensitive_html: 'Ju ndan një hap nga vënia shenjë disa postimeve të @%{acct} si me spec. Kjo do të sjellë:' + silence_html: 'Ju ndan një hap nga kufizimi i llogarisë së @%{acct}. Kjo do të sjellë:' + suspend_html: 'Ju ndan një hap nga pezullimi i llogarisë së @%{acct}. Kjo do të sjellë:' + actions: + delete_html: Hiqi postimet fyese + mark_as_sensitive_html: Vëru shenjë si me spec mediave të postimeve fyese + silence_html: Kufizoje fort shtrirjen e @%{acct}, duke e bërë profilin dhe lëndën e tij të dukshme vetëm për persona që e ndjekin tashmë, ose që kërkojnë dorazi për profilin e tij + suspend_html: Pezulloje @%{acct}, duke e bërë profilin dhe lëndën e tij të pahapshme dhe të pamundur ndërveprimin me të + close_report: 'Vëri shenjë raportimit #%{id} si të zgjidhur' + close_reports_html: Vëru shenjë krejt raportimeve kundër @%{acct} si të zgjidhur + delete_data_html: Fshije profilin e @%{acct} dhe lëndën e 30 ditëve nga sot, veç në u pezulloftë ndërkohë + preview_preamble_html: "@%{acct} do të marrë një sinjalizim me lëndën vijuese:" + record_strike_html: Regjistroni një vërejtje kundër @%{acct} për t’ju ndihmuar të përshkallëzoni qëndrim në ras cenimesh të ardhshme nga kjo llogari + send_email_html: Dërgojini @%{acct} një vërejtje me email + warning_placeholder: Arsye shtesë, në daçi, për veprimin e moderimit. target_origin: Origjinë e llogarisë së raportuar title: Raportime unassign: Hiqja + unknown_action_msg: 'Veprim i panjohur: %{action}' unresolved: Të pazgjidhur updated_at: U përditësua më view_profile: Shihni profilin @@ -938,6 +960,8 @@ sq: auth: apply_for_account: Kërkoni një llogari change_password: Fjalëkalim + confirmations: + wrong_email_hint: Nëse ajo adresë email s’është e saktë, mund ta ndryshoni te rregullimet e llogarisë. delete_account: Fshije llogarinë delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund ta bëni që këtu. Do t’ju kërkohet ta ripohoni. description: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 1127165760..8558843d1c 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -441,6 +441,7 @@ sv: private_comment_description_html: 'För att hjälpa dig spåra var importerade blockeringar kommer från kommer importerade blockeringar att skapas med följande privata kommentar: %{comment}' private_comment_template: Importerad från %{source} den %{date} title: Importera domänblockeringar + invalid_domain_block: 'Ett eller flera domänblock hoppades över på grund av följande fel: %{error}' new: title: Importera domänblockeringar no_file: Ingen fil vald @@ -589,6 +590,7 @@ sv: comment: none: Ingen comment_description_html: 'För att ge mer information, skrev %{name}:' + confirm_action: Bekräfta modereringsåtgärd mot @%{acct} created_at: Anmäld delete_and_resolve: Ta bort inlägg forwarded: Vidarebefordrad @@ -605,6 +607,7 @@ sv: placeholder: Beskriv vilka åtgärder som vidtagits eller andra uppdateringar till den här anmälan. title: Anteckningar notes_description_html: Visa och lämna anteckningar till andra moderatorer och ditt framtida jag + processed_msg: 'Rapporten #%{id} har behandlats' quick_actions_description_html: 'Ta en snabb åtgärd eller bläddra ner för att se rapporterat innehåll:' remote_user_placeholder: fjärranvändaren från %{instance} reopen: Återuppta anmälan @@ -617,6 +620,14 @@ sv: status: Status statuses: Rapporterat innehåll statuses_description_html: Stötande innehåll kommer att citeras i kommunikationen med det rapporterade kontot + summary: + action_preambles: + delete_html: 'Du håller på att ta bort några av @%{acct}s inlägg. Detta kommer:' + mark_as_sensitive_html: 'Du håller på att markera några av @%{acct}s inlägg som känsliga. Detta kommer:' + silence_html: 'Du håller på att begränsa @%{acct}s konto. Detta kommer:' + suspend_html: 'Du håller på att stänga av @%{acct}s konto. Detta kommer:' + actions: + delete_html: Ta bort kränkande inlägg target_origin: Ursprung för anmält konto title: Anmälningar unassign: Otilldela diff --git a/config/locales/th.yml b/config/locales/th.yml index a1ed899e63..0135574ff2 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -433,6 +433,7 @@ th: private_comment_description_html: 'เพื่อช่วยให้คุณติดตามว่าการปิดกั้นที่นำเข้ามาจากที่ใด จะสร้างการปิดกั้นที่นำเข้าโดยมีความคิดเห็นส่วนตัวดังต่อไปนี้: %{comment}' private_comment_template: นำเข้าจาก %{source} เมื่อ %{date} title: นำเข้าการปิดกั้นโดเมน + invalid_domain_block: 'มีการข้ามการปิดกั้นโดเมนจำนวนหนึ่งหรือมากกว่าเนื่องจากข้อผิดพลาดดังต่อไปนี้: %{error}' new: title: นำเข้าการปิดกั้นโดเมน no_file: ไม่ได้เลือกไฟล์ @@ -562,10 +563,10 @@ th: delete_description_html: จะลบโพสต์ที่รายงานและจะบันทึกการดำเนินการเพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตโดยบัญชีเดียวกัน mark_as_sensitive_description_html: จะทำเครื่องหมายสื่อในโพสต์ที่รายงานว่าละเอียดอ่อนและจะบันทึกการดำเนินการเพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตโดยบัญชีเดียวกัน other_description_html: ดูตัวเลือกเพิ่มเติมสำหรับการควบคุมพฤติกรรมของบัญชีและปรับแต่งการสื่อสารไปยังบัญชีที่รายงาน - resolve_description_html: จะไม่ใช้การกระทำกับบัญชีที่รายงาน ไม่มีการบันทึกการดำเนินการ และจะปิดรายงาน + resolve_description_html: จะไม่ใช้การกระทำต่อบัญชีที่รายงาน ไม่มีการบันทึกการดำเนินการ และจะปิดรายงาน silence_description_html: บัญชีจะปรากฏแก่เฉพาะผู้ที่ติดตามโปรไฟล์อยู่แล้วหรือค้นหาโปรไฟล์ด้วยตนเองเท่านั้น จำกัดการเข้าถึงโปรไฟล์อย่างมาก สามารถแปลงกลับได้เสมอ ปิดรายงานต่อบัญชีนี้ทั้งหมด suspend_description_html: บัญชีและเนื้อหาของบัญชีทั้งหมดจะเข้าถึงไม่ได้และได้รับการลบในที่สุด และการโต้ตอบกับบัญชีจะเป็นไปไม่ได้ แปลงกลับได้ภายใน 30 วัน ปิดรายงานต่อบัญชีนี้ทั้งหมด - actions_description_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ หากคุณใช้การกระทำที่เป็นการลงโทษกับบัญชีที่รายงาน จะส่งการแจ้งเตือนอีเมลถึงเขา ยกเว้นเมื่อมีการเลือกหมวดหมู่ สแปม + actions_description_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ หากคุณใช้การกระทำที่เป็นการลงโทษต่อบัญชีที่รายงาน จะส่งการแจ้งเตือนอีเมลถึงเขา ยกเว้นเมื่อมีการเลือกหมวดหมู่ สแปม actions_description_remote_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ นี่จะมีผลต่อวิธีที่เซิร์ฟเวอร์ ของคุณ สื่อสารกับบัญชีระยะไกลนี้และจัดการเนื้อหาของบัญชีเท่านั้น add_to_report: เพิ่มข้อมูลเพิ่มเติมไปยังรายงาน are_you_sure: คุณแน่ใจหรือไม่? @@ -577,6 +578,7 @@ th: comment: none: ไม่มี comment_description_html: 'เพื่อให้ข้อมูลเพิ่มเติม %{name} ได้เขียน:' + confirm_action: ยืนยันการกระทำการควบคุมต่อ @%{acct} created_at: รายงานเมื่อ delete_and_resolve: ลบโพสต์ forwarded: ส่งต่อแล้ว @@ -593,6 +595,7 @@ th: placeholder: อธิบายว่าการกระทำใดที่ใช้ หรือการอัปเดตที่เกี่ยวข้องอื่นใด... title: หมายเหตุ notes_description_html: ดูและฝากหมายเหตุถึงผู้ควบคุมอื่น ๆ และตัวคุณเองในอนาคต + processed_msg: 'ประมวลผลรายงาน #%{id} สำเร็จ' quick_actions_description_html: 'ดำเนินการอย่างรวดเร็วหรือเลื่อนลงเพื่อดูเนื้อหาที่รายงาน:' remote_user_placeholder: ผู้ใช้ระยะไกลจาก %{instance} reopen: เปิดรายงานใหม่ @@ -605,9 +608,28 @@ th: status: สถานะ statuses: เนื้อหาที่รายงาน statuses_description_html: จะอ้างถึงเนื้อหาที่ละเมิดในการสื่อสารกับบัญชีที่ได้รับการรายงาน + summary: + action_preambles: + delete_html: 'คุณกำลังจะ เอา โพสต์บางส่วนของ @%{acct} ออก นี่จะ:' + mark_as_sensitive_html: 'คุณกำลังจะ ทำเครื่องหมาย โพสต์บางส่วนของ @%{acct} ว่า ละเอียดอ่อน นี่จะ:' + silence_html: 'คุณกำลังจะ จำกัด บัญชีของ @%{acct} นี่จะ:' + suspend_html: 'คุณกำลังจะ ระงับ บัญชีของ @%{acct} นี่จะ:' + actions: + delete_html: เอาโพสต์ที่ละเมิดออก + mark_as_sensitive_html: ทำเครื่องหมายสื่อของโพสต์ที่ละเมิดว่าละเอียดอ่อน + silence_html: จำกัดการเข้าถึงของ @%{acct} อย่างมากโดยทำให้โปรไฟล์และเนื้อหาของเขาปรากฏแก่เฉพาะผู้คนที่กำลังติดตามเขาอยู่แล้วหรือค้นหาโปรไฟล์ของบัญชีด้วยตนเองเท่านั้น + suspend_html: ระงับ @%{acct} ทำให้โปรไฟล์และเนื้อหาของเขาเข้าถึงไม่ได้และไม่สามารถโต้ตอบด้วย + close_report: 'ทำเครื่องหมายรายงาน #%{id} ว่าแก้ปัญหาแล้ว' + close_reports_html: ทำเครื่องหมายรายงาน ทั้งหมด ต่อ @%{acct} ว่าแก้ปัญหาแล้ว + delete_data_html: ลบโปรไฟล์และเนื้อหาของ @%{acct} ในอีก 30 วันนับจากนี้เว้นแต่มีการเลิกระงับเขาในระหว่างนี้ + preview_preamble_html: "@%{acct} จะได้รับคำเตือนโดยมีเนื้อหาดังต่อไปนี้:" + record_strike_html: บันทึกการดำเนินการต่อ @%{acct} เพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตจากบัญชีนี้ + send_email_html: ส่งอีเมลคำเตือนถึง @%{acct} + warning_placeholder: การให้เหตุผลเพิ่มเติมที่ไม่จำเป็นสำหรับการกระทำการควบคุม target_origin: จุดเริ่มต้นของบัญชีที่ได้รับการรายงาน title: รายงาน unassign: เลิกมอบหมาย + unknown_action_msg: 'การกระทำที่ไม่รู้จัก: %{action}' unresolved: ยังไม่ได้แก้ปัญหา updated_at: อัปเดตเมื่อ view_profile: ดูโปรไฟล์ @@ -648,7 +670,7 @@ th: manage_invites: จัดการคำเชิญ manage_invites_description: อนุญาตให้ผู้ใช้เรียกดูและปิดใช้งานลิงก์เชิญ manage_reports: จัดการรายงาน - manage_reports_description: อนุญาตให้ผู้ใช้ตรวจทานรายงานและทำการกระทำการควบคุมกับรายงาน + manage_reports_description: อนุญาตให้ผู้ใช้ตรวจทานรายงานและทำการกระทำการควบคุมต่อรายงาน manage_roles: จัดการบทบาท manage_roles_description: อนุญาตให้ผู้ใช้จัดการและกำหนดบทบาทที่ต่ำกว่าบทบาทของเขา manage_rules: จัดการกฎ @@ -660,7 +682,7 @@ th: manage_user_access: จัดการการเข้าถึงของผู้ใช้ manage_user_access_description: อนุญาตให้ผู้ใช้ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยของผู้ใช้อื่น เปลี่ยนที่อยู่อีเมลของเขา และตั้งรหัสผ่านของเขาใหม่ manage_users: จัดการผู้ใช้ - manage_users_description: อนุญาตให้ผู้ใช้ดูรายละเอียดของผู้ใช้อื่น ๆ และทำการกระทำการควบคุมกับผู้ใช้ + manage_users_description: อนุญาตให้ผู้ใช้ดูรายละเอียดของผู้ใช้อื่น ๆ และทำการกระทำการควบคุมต่อผู้ใช้ manage_webhooks: จัดการเว็บฮุค manage_webhooks_description: อนุญาตให้ผู้ใช้ตั้งค่าเว็บฮุคสำหรับเหตุการณ์การดูแล view_audit_log: ดูรายการบันทึกการตรวจสอบ @@ -925,6 +947,8 @@ th: auth: apply_for_account: ขอบัญชี change_password: รหัสผ่าน + confirmations: + wrong_email_hint: หากที่อยู่อีเมลนั้นไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลได้ในการตั้งค่าบัญชี delete_account: ลบบัญชี delete_account_html: หากคุณต้องการลบบัญชีของคุณ คุณสามารถ ดำเนินการต่อที่นี่ คุณจะได้รับการถามเพื่อการยืนยัน description: @@ -972,7 +996,7 @@ th: functional: บัญชีของคุณทำงานได้อย่างเต็มที่ pending: ใบสมัครของคุณกำลังรอดำเนินการตรวจทานโดยพนักงานของเรา นี่อาจใช้เวลาสักครู่ คุณจะได้รับอีเมลหากมีการอนุมัติใบสมัครของคุณ redirecting_to: บัญชีของคุณไม่ได้ใช้งานเนื่องจากบัญชีกำลังเปลี่ยนเส้นทางไปยัง %{acct} ในปัจจุบัน - view_strikes: ดูการดำเนินการที่ผ่านมากับบัญชีของคุณ + view_strikes: ดูการดำเนินการที่ผ่านมาต่อบัญชีของคุณ too_fast: ส่งแบบฟอร์มเร็วเกินไป ลองอีกครั้ง use_security_key: ใช้กุญแจความปลอดภัย authorize_follow: @@ -1044,7 +1068,7 @@ th: approve_appeal: อนุมัติการอุทธรณ์ associated_report: รายงานที่เกี่ยวข้อง created_at: ลงวันที่ - description_html: นี่คือการกระทำที่ใช้กับบัญชีของคุณและคำเตือนที่ส่งถึงคุณโดยพนักงานของ %{instance} + description_html: นี่คือการกระทำที่ใช้ต่อบัญชีของคุณและคำเตือนที่ส่งถึงคุณโดยพนักงานของ %{instance} recipient: ส่งถึง reject_appeal: ปฏิเสธการอุทธรณ์ status: 'โพสต์ #%{id}' @@ -1556,11 +1580,11 @@ th: user_mailer: appeal_approved: action: ไปยังบัญชีของคุณ - explanation: อนุมัติการอุทธรณ์การดำเนินการกับบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว บัญชีของคุณอยู่ในสถานะที่ดีอีกครั้งหนึ่ง + explanation: อนุมัติการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว บัญชีของคุณอยู่ในสถานะที่ดีอีกครั้งหนึ่ง subject: อนุมัติการอุทธรณ์ของคุณจาก %{date} แล้ว title: อนุมัติการอุทธรณ์แล้ว appeal_rejected: - explanation: ปฏิเสธการอุทธรณ์การดำเนินการกับบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว + explanation: ปฏิเสธการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว subject: ปฏิเสธการอุทธรณ์ของคุณจาก %{date} แล้ว title: ปฏิเสธการอุทธรณ์แล้ว backup_ready: @@ -1581,7 +1605,7 @@ th: spam: สแปม violation: เนื้อหาละเมิดหลักเกณฑ์ชุมชนดังต่อไปนี้ explanation: - delete_statuses: มีการพบว่าโพสต์บางส่วนของคุณละเมิดหนึ่งหลักเกณฑ์ชุมชนหรือมากกว่าและได้รับการเอาออกโดยผู้ควบคุมของ %{instance} ในเวลาต่อมา + delete_statuses: มีการพบว่าโพสต์บางส่วนของคุณละเมิดหลักเกณฑ์ชุมชนจำนวนหนึ่งหรือมากกว่าและได้รับการเอาออกโดยผู้ควบคุมของ %{instance} ในเวลาต่อมา disable: คุณไม่สามารถใช้บัญชีของคุณได้อีกต่อไป แต่โปรไฟล์และข้อมูลอื่น ๆ ของคุณยังคงอยู่ในสภาพเดิม คุณสามารถขอข้อมูลสำรองของข้อมูลของคุณ เปลี่ยนการตั้งค่าบัญชี หรือลบบัญชีของคุณ mark_statuses_as_sensitive: ทำเครื่องหมายโพสต์บางส่วนของคุณว่าละเอียดอ่อนโดยผู้ควบคุมของ %{instance} แล้ว นี่หมายความว่าผู้คนจะต้องแตะสื่อในโพสต์ก่อนที่จะแสดงตัวอย่าง คุณสามารถทำเครื่องหมายสื่อว่าละเอียดอ่อนด้วยตัวคุณเองเมื่อโพสต์ในอนาคต sensitive: จากนี้ไป จะทำเครื่องหมายไฟล์สื่อที่อัปโหลดทั้งหมดของคุณว่าละเอียดอ่อนและซ่อนอยู่หลังการคลิกไปยังคำเตือน diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 2baa5dd25a..c4379552c3 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -441,6 +441,7 @@ tr: private_comment_description_html: 'İçe aktarılan engellerin nereden geldiğini izlemenize olanak sağlamak için, içe aktarılan engeller şu özel yorum ile oluşturulacak: %{comment}' private_comment_template: "%{source} kaynağından %{date} tarihinde içe aktarıldı" title: Domain bloklarını içe aktar + invalid_domain_block: 'Bir veya daha fazla alan adı engeli şu hata(lar)dan dolayı atlandı: %{error}' new: title: Domain bloklarını içe aktar no_file: Dosya seçilmedi @@ -589,6 +590,7 @@ tr: comment: none: Yok comment_description_html: 'Daha fazla bilgi vermek için %{name} şunu yazdı:' + confirm_action: "%{acct} üzerindeki denetleme eylemini onayla" created_at: Şikayet edildi delete_and_resolve: Gönderileri sil forwarded: İletildi @@ -605,6 +607,7 @@ tr: placeholder: Hangi işlemlerin yapıldığını, ya da diğer ilgili güncellemeleri açıklayın... title: Notlar notes_description_html: Kendiniz ve diğer moderatörler için not bırakın veya notları görüntüleyin + processed_msg: "#%{id} Bildirimi başarıyla işlendi" quick_actions_description_html: 'Hemen bir şey yapın veya bildirilen içeriği görmek için aşağı kaydırın:' remote_user_placeholder: "%{instance}'dan uzak kullanıcı" reopen: Şikayeti tekrar aç @@ -617,9 +620,24 @@ tr: status: Durum statuses: Bildirilen içerik statuses_description_html: İncitici içerik, bildirilen hesapla iletişimde alıntılanacaktır + summary: + action_preambles: + delete_html: "@%{acct} hesabının bazı gönderilerini kaldıracaksınız, böylece:" + mark_as_sensitive_html: "@%{acct} hesabının bazı gönderilerini hassas olarak işaretleyeceksiniz, böylece:" + silence_html: "@%{acct} hesabını sınırlayacaksınız, böylece:" + suspend_html: "@%{acct} hesabını askıya alacaksınız, böylece:" + actions: + delete_html: Kuralı ihlal eden gönderileri kaldır + mark_as_sensitive_html: Kuralı ihlal eden gönderilerin medyasını hassas olarak işaretle + suspend_html: "@%{acct} hesabını askıya al, profilini ve içeriğini erişilmez ve etkileşimi imkansız yap" + close_report: "#%{id} bildirimini çözüldü olarak işaretle" + close_reports_html: "@%{acct} hesabına yönelik tüm bildirimleri çözüldü olarak işaretle" + delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa @%{acct} hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil + preview_preamble_html: "@%{acct} aşağıdaki içerikle bir uyarı alacaktır:" target_origin: Şikayet edilen hesabın kökeni title: Şikayetler unassign: Atamayı geri al + unknown_action_msg: 'Bilinmeyen eylem: %{action}' unresolved: Giderilmedi updated_at: Güncellendi view_profile: Profili görüntüle @@ -943,6 +961,8 @@ tr: auth: apply_for_account: Bir hesap talep et change_password: Parola + confirmations: + wrong_email_hint: Eğer bu e-posta adresi doğru değilse, hesap ayarlarında değiştirebilirsiniz. delete_account: Hesabı sil delete_account_html: Hesabını silmek istersen, buradan devam edebilirsin. Onay istenir. description: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 557074ed13..dd6d42daaa 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -457,6 +457,7 @@ uk: private_comment_description_html: 'Щоб допомогти вам відстежувати, звідки беруться імпортовані блокування, вони створюються за допомогою наступного приватного коментаря: %{comment}' private_comment_template: Імпортовано з %{source} %{date} title: Імпорт блокувань домену + invalid_domain_block: 'Один або кілька доменних блоків пропущено через такі помилки: %{error}' new: title: Імпорт блокувань домену no_file: Файл не вибрано @@ -613,6 +614,7 @@ uk: comment: none: Немає comment_description_html: 'Щоб надати більше відомостей, %{name} пише:' + confirm_action: Підтвердьте модераційну дію щодо @%{acct} created_at: Створено delete_and_resolve: Видалити дописи forwarded: Переслано @@ -629,6 +631,7 @@ uk: placeholder: Опишіть, які дії були виконані, або інші зміни, що стосуються справи... title: Примітки notes_description_html: Переглядайте та залишайте примітки для інших модераторів та для себе на майбутнє + processed_msg: 'Звіт #%{id} успішно оброблено' quick_actions_description_html: 'Виберіть швидку дію або гортайте вниз, щоб побачити матеріал, на який надійшла скарга:' remote_user_placeholder: віддалений користувач із %{instance} reopen: Перевідкрити скаргу @@ -641,9 +644,28 @@ uk: status: Стан statuses: Вміст, на який поскаржилися statuses_description_html: Замінений вміст буде цитований у спілкуванні з обліковим записом, на який поскаржилися + summary: + action_preambles: + delete_html: 'Ви збираєтеся вилучити деякі з дописів @%{acct}. Це буде:' + mark_as_sensitive_html: 'Ви збираєтеся позначити деякі з дописів @%{acct} делікатними. Це буде:' + silence_html: 'Ви збираєтеся обмежити обліковий запис @%{acct}. Це буде:' + suspend_html: 'Ви збираєтесь призупинити обліковий запис @%%{acct}. Це буде:' + actions: + delete_html: Вилучити образливі дописи + mark_as_sensitive_html: Позначити медіа образливих дописів делікатними + silence_html: Досягнуто жорсткого обмеження @%{acct}, зробивши їхній профіль і вміст видимим тільки людям, які вже слідують за ними або вручну шукають його профіль + suspend_html: Призупинити @%{acct}, зробити їх профіль і вміст недоступним та унеможливити взаємодію + close_report: 'Позначити звіт #%{id} розв''язаним' + close_reports_html: Позначити всі звіти проти @%{acct} розв'язаними + delete_data_html: Видаліть профіль @%{acct} і вміст за останні 30 днів, якщо вони не дія не скасується тим часом + preview_preamble_html: "@%{acct} отримає попередження з таким вмістом:" + record_strike_html: Запис попередження проти @%{acct}, що допоможе вам посилити ваші майбутні санкції проти цього облікового запису + send_email_html: Надіслати @%{acct} попереджувального електронного листа + warning_placeholder: Додаткові причини дії модерації. target_origin: Походження облікового запису, на який скаржаться title: Скарги unassign: Зняти призначення + unknown_action_msg: 'Невідома дія: %{action}' unresolved: Невирішені updated_at: Оновлені view_profile: Переглянути профіль @@ -979,6 +1001,8 @@ uk: auth: apply_for_account: Запит облікового запису change_password: Пароль + confirmations: + wrong_email_hint: Якщо ця адреса електронної пошти неправильна, можна змінити її в налаштуваннях облікового запису. delete_account: Видалити обліковий запис delete_account_html: Якщо ви хочете видалити свій обліковий запис, ви можете перейти сюди. Вас попросять підтвердити дію. description: diff --git a/config/locales/uz.yml b/config/locales/uz.yml new file mode 100644 index 0000000000..94260c6660 --- /dev/null +++ b/config/locales/uz.yml @@ -0,0 +1,51 @@ +--- +uz: + about: + title: Haqida + accounts: + follow: Obuna bo‘lish + admin: + accounts: + display_name: Ko'rsatiladigan nom + domain: Domen + email: Email + email_status: Email holati + enable: Muzlatishtan olish + enabled: Yoqilgan + followers: Obunachilar + follows: Obuna + invited_by: Tomonidan taklif qilingan + ip: IP + joined: Qo'shilgan + location: + all: Barchasi + local: Mahalliy + remote: Masofadagi + title: Qayerda + login_status: Login holati + media_attachments: Media qo'shimchalari + memorialize: Xotiraga aylantiring + memorialized: Yodga olingan + memorialized_msg: "%{username} esdalik hisobiga muvaffaqiyatli aylantirildi" + moderation: + active: Aktiv + all: Barchasi + pending: Navbatdagi + silenced: Cheklangan + suspended: To'xtatilgan + title: Moderatsiya + moderation_notes: Moderatsiya eslatmalari + most_recent_activity: Eng oxirgi faoliyat + most_recent_ip: Eng oxirgi IP + perform_full_suspension: To'xtatilgan + reject: Rad etish + 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. diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 43e0007214..3417761099 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -433,6 +433,7 @@ vi: private_comment_description_html: 'Để giúp bạn theo dõi nguồn gốc của các chặn tên miền đã nhập, các tên miền chặn đã nhập sẽ được tạo bằng nhận xét riêng tư sau: %{comment}' private_comment_template: Nhập từ %{source} vào %{date} title: Nhập máy chủ chặn + invalid_domain_block: 'Một hoặc nhiều tên miền đã bị bỏ qua do (các) lỗi sau: %{error}' new: title: Nhập máy chủ chặn no_file: Không có tập tin nào được chọn @@ -577,6 +578,7 @@ vi: comment: none: Không có mô tả comment_description_html: "%{name} cho biết thêm:" + confirm_action: Xác nhận kiểm duyệt với %{acct} created_at: Báo cáo lúc delete_and_resolve: Xóa tút forwarded: Chuyển tiếp @@ -593,6 +595,7 @@ vi: placeholder: Mô tả vi phạm của người này, hướng xử lý và những cập nhật liên quan khác... title: Lưu ý notes_description_html: Xem và để lại lưu ý cho các kiểm duyệt viên khác + processed_msg: 'Báo cáo #%{id} đã được xử lý thành công' quick_actions_description_html: 'Kiểm duyệt nhanh hoặc kéo xuống để xem nội dung bị báo cáo:' remote_user_placeholder: người ở %{instance} reopen: Mở lại báo cáo @@ -605,9 +608,28 @@ vi: status: Trạng thái statuses: Nội dung bị báo cáo statuses_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ + summary: + action_preambles: + delete_html: 'Bạn sắp xóa vài tút của @%{acct}. Việc này sẽ:' + mark_as_sensitive_html: 'Bạn sắp đánh dấu vài tút của @%{acct}nhạy cảm. Việc này sẽ:' + silence_html: 'Bạn sắp hạn chế @%{acct}. Việc này sẽ:' + suspend_html: 'Bạn sắp vô hiệu hóa @%{acct}. Việc này sẽ:' + actions: + delete_html: Xóa các tút vi phạm + mark_as_sensitive_html: Đánh dấu media trong tút vi phạm là nhạy cảm + silence_html: Hạn chế mức ảnh hưởng của @%{acct} bằng cách làm cho trang và nội dung của họ chỉ hiển thị với những người đã theo dõi họ hoặc tìm kiếm theo cách thủ công + suspend_html: Vô hiệu hóa @%{acct}, làm cho trang và nội dung của họ không thể truy cập và không thể tương tác + close_report: 'Đánh dấu báo cáo #%{id} đã xử lý xong' + close_reports_html: Đánh dấu tất cả báo cáo chống lại @%{acct} đã xử lý xong + delete_data_html: Xóa trang @%{acct} và nội dung 30 ngày kể từ bây giờ trừ khi bỏ vô hiệu hóa + preview_preamble_html: "@%{acct} sẽ nhận được cảnh báo với nội dung như sau:" + record_strike_html: Lưu lại cảnh cáo @%{acct} để giúp bạn đánh giá các vi phạm trong tương lai từ tài khoản này + send_email_html: Gửi @%{acct} một email cảnh báo + warning_placeholder: Lý do bổ sung cho hành động kiểm duyệt. target_origin: Nguồn báo cáo title: Báo cáo unassign: Bỏ qua + unknown_action_msg: 'Hành động chưa biết: %{action}' unresolved: Chờ xử lý updated_at: Cập nhật lúc view_profile: Xem trang @@ -925,6 +947,8 @@ vi: auth: apply_for_account: Xin đăng ký change_password: Mật khẩu + confirmations: + wrong_email_hint: Nếu địa chỉ email đó không chính xác, bạn có thể thay đổi nó trong cài đặt tài khoản. delete_account: Xóa tài khoản delete_account_html: Nếu bạn muốn xóa tài khoản của mình, hãy yêu cầu tại đây. Bạn sẽ được yêu cầu xác nhận. description: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 49ec79799d..78b0f5d133 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -57,7 +57,7 @@ zh-CN: destroyed_msg: "%{username} 的数据已被安排至删除队列" disable: 冻结 disable_sign_in_token_auth: 禁用电子邮件令牌认证 - disable_two_factor_authentication: 停用两步认证 + disable_two_factor_authentication: 停用双重认证 disabled: 已冻结 display_name: 昵称 domain: 域名 @@ -137,8 +137,8 @@ zh-CN: sensitized: 已标记为敏感内容 shared_inbox_url: 公用收件箱(Shared Inbox)URL show: - created_reports: 这个帐户提交的举报 - targeted_reports: 针对这个帐户的举报 + created_reports: 这个账户提交的举报 + targeted_reports: 针对这个账户的举报 silence: 隐藏 silenced: 已隐藏 statuses: 嘟文 @@ -433,6 +433,7 @@ zh-CN: private_comment_description_html: 为了帮助您追踪域名列表来源,导入的域名列表将被添加如下的私人注释:%{comment} private_comment_template: 从 %{source} 导入 %{date} title: 导入域名列表 + invalid_domain_block: 由于以下错误,一个或多个域名屏蔽被跳过: %{error} new: title: 导入域名列表 no_file: 没有选择文件 @@ -577,6 +578,7 @@ zh-CN: comment: none: 没有 comment_description_html: "%{name} 补充道:" + confirm_action: 确认对 @%{acct} 的管理操作 created_at: 举报时间 delete_and_resolve: 删除嘟文 forwarded: 已转发 @@ -593,6 +595,7 @@ zh-CN: placeholder: 描述已经执行的操作,或其他任何相关的跟进情况… title: 备注 notes_description_html: 查看备注或向其他监察员留言 + processed_msg: '举报 #%{id} 处理成功' quick_actions_description_html: 快捷选择操作或向下滚动以查看举报内容: remote_user_placeholder: 来自 %{instance} 的远程实例用户 reopen: 重开举报 @@ -605,9 +608,28 @@ zh-CN: status: 状态 statuses: 被举报内容 statuses_description_html: 在与该账号的通信中将引用违规内容 + summary: + action_preambles: + delete_html: 您即将删除 @%{acct} 的一些帖子。 这将: + mark_as_sensitive_html: 您即将 标记 @%{acct} 的帖一些子为 敏感。这将: + silence_html: 您即将限制 @%{acct} 的帐户。 这将: + suspend_html: 您即将暂停 @%{acct} 的帐户。 这将: + actions: + delete_html: 删除违规帖子 + mark_as_sensitive_html: 将违规帖子的媒体标记为敏感 + silence_html: 严格限制 @%{acct} 的影响力,方法是让他们的个人资料和内容仅对已经关注他们的人可见,或手动查找其个人资料时 + suspend_html: 暂停 @%{acct},使他们的个人资料和内容无法访问,也无法与之互动 + close_report: '将报告 #%{id} 标记为已解决' + close_reports_html: 将针对 @%{acct}所有 报告标记为已解决 + delete_data_html: 从现在起 30 天后删除 @%{acct} 的个人资料和内容,除非他们同时解除暂停。 + preview_preamble_html: "@%{acct} 将收到包含以下内容的警告:" + record_strike_html: 记录一次针对 @%{acct} 的警示,以帮助您在这个帐户上的未来违规事件中得到重视。 + send_email_html: 向 @%{acct} 发送警告电子邮件 + warning_placeholder: 可选的补充理由,以说明调整的情况。 target_origin: 被举报账号的来源 title: 举报 unassign: 取消接管 + unknown_action_msg: 未知操作:%{action} unresolved: 未处理 updated_at: 更新时间 view_profile: 查看资料 @@ -872,7 +894,7 @@ zh-CN: next_steps: 你可以批准此申诉并撤销该审核结果,也可以忽略此申诉。 subject: "%{username} 对 %{instance} 的审核结果提出了申诉" new_pending_account: - body: 新帐户的详细信息如下。你可以批准或拒绝此申请。 + body: 新账户的详细信息如下。你可以批准或拒绝此申请。 subject: 在 %{instance} 上有新账号 (%{username}) 需要审核 new_report: body: "%{reporter} 举报了用户 %{target}" @@ -925,6 +947,8 @@ zh-CN: auth: apply_for_account: 申请账号 change_password: 密码 + confirmations: + wrong_email_hint: 如果该电子邮件地址不正确,您可以在帐户设置中进行更改。 delete_account: 删除帐户 delete_account_html: 如果你想删除你的帐户,请点击这里继续。你需要确认你的操作。 description: @@ -971,7 +995,7 @@ zh-CN: confirming: 等待电子邮件确认完成。 functional: 你的账号可以正常使用了。 pending: 工作人员正在审核你的申请。这需要花点时间。在申请被批准后,你将收到一封电子邮件。 - redirecting_to: 你的帐户无效,因为它已被设置为跳转到 %{acct} + redirecting_to: 你的账户无效,因为它已被设置为跳转到 %{acct} view_strikes: 查看针对你账号的记录 too_fast: 表单提交过快,请重试。 use_security_key: 使用安全密钥 @@ -1027,7 +1051,7 @@ zh-CN: email_change_html: 你可以 更换邮箱地址 无需删除账号 email_contact_html: 如果它还没送到,你可以发邮件给 %{email} 寻求帮助。 email_reconfirmation_html: 如果你没有收到确认邮件,请点击 重新发送 。 - irreversible: 你将无法恢复或重新激活你的帐户 + irreversible: 你将无法恢复或重新激活你的账户 more_details_html: 更多细节,请查看 隐私政策 。 username_available: 你的用户名现在又可以使用了 username_unavailable: 你的用户名仍将无法使用 @@ -1240,13 +1264,13 @@ zh-CN: past_migrations: 迁移记录 proceed_with_move: 移动关注者 redirected_msg: 你的账号现在会跳转至 %{acct} - redirecting_to: 你的帐户被跳转到了 %{acct}。 + redirecting_to: 你的账户正在跳转到 %{acct}。 set_redirect: 设置跳转 warning: backreference_required: 新账号必须先引用当前账号 before: 在继续前,请仔细阅读下列说明: cooldown: 移动后会有一个冷却期,在此期间你将无法再次移动 - disabled_account: 此后,你的当前帐户将无法使用。但是,你仍然有权导出数据或者重新激活。 + disabled_account: 此后,你的当前账户将无法使用。但是,你仍然有权导出数据或者重新激活。 followers: 这步操作将把所有关注者从当前账户移动到新账户 only_redirect_html: 或者,你可以只在你的账号资料上设置一个跳转。 other_data: 不会自动移动其它数据 @@ -1591,19 +1615,19 @@ zh-CN: statuses: 被引用的嘟文: subject: delete_statuses: 你在 %{acct} 的嘟文已被删除 - disable: 你的帐户 %{acct} 已被冻结 + disable: 你的账户 %{acct} 已被冻结 mark_statuses_as_sensitive: 你在 %{acct} 的嘟文已被标记为敏感内容 none: 对 %{acct} 的警告 sensitive: 你在 %{acct} 的嘟文今后将被标记为敏感内容 - silence: 你的帐户 %{acct} 已被隐藏 - suspend: 你的帐户 %{acct} 已被封禁。 + silence: 你的账户 %{acct} 已被隐藏 + suspend: 你的账户 %{acct} 已被封禁 title: delete_statuses: 嘟文已删除 disable: 账号已冻结 mark_statuses_as_sensitive: 嘟文已被标记为敏感内容 none: 警示 sensitive: 账户已被标记为敏感内容 - silence: 帐户被隐藏 + silence: 账户被隐藏 suspend: 账号被封禁 welcome: edit_profile_action: 设置个人资料 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index f618c8fa45..97169cfde2 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -23,7 +23,7 @@ zh-TW: admin: account_actions: action: 執行動作 - title: 在 %{acct} 執行管理員動作 + title: 對 %{acct} 執行站務動作 account_moderation_notes: create: 記錄 created_msg: 已新增管理備忘! @@ -373,8 +373,8 @@ zh-TW: undo: 從聯邦宇宙白名單移除 domain_blocks: add_new: 新增欲封鎖域名 - created_msg: 正在進行站點封鎖 - destroyed_msg: 已撤銷站點封鎖 + created_msg: 正在進行網域封鎖 + destroyed_msg: 已撤銷網域封鎖 domain: 站點 edit: 更改封鎖的站台 existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。 @@ -401,7 +401,7 @@ zh-TW: reject_media: 拒絕媒體檔案 reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關 reject_reports: 拒絕檢舉 - reject_reports_hint: 忽略所有來自此站點的檢舉。與停權無關 + reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關 undo: 復原欲封鎖域名 view: 顯示阻擋的網域 email_domain_blocks: @@ -413,9 +413,9 @@ zh-TW: dns: types: mx: MX 記錄 - domain: 站點 + domain: 網域 new: - create: 新增站點 + create: 新增網域 resolve: 解析網域 title: 新增電子郵件黑名單項目 no_email_domain_block_selected: 因未選取項目,而未更改電子郵件網域黑名單 @@ -433,6 +433,7 @@ zh-TW: private_comment_description_html: 為了幫助您追蹤匯入黑名單之來源,匯入黑名單建立時將隨附以下私密備註:%{comment} private_comment_template: 於 %{date} 由 %{source} 匯入 title: 匯入網域黑名單 + invalid_domain_block: 由於此錯誤,以致一個或多個網域封鎖被略過:%{error} new: title: 匯入網域黑名單 no_file: 尚未選擇檔案 @@ -579,6 +580,7 @@ zh-TW: comment: none: 無 comment_description_html: 提供更多資訊,%{name} 寫道: + confirm_action: 確認對 @%{acct} 執行站務動作 created_at: 日期 delete_and_resolve: 刪除嘟文 forwarded: 已轉寄 @@ -595,6 +597,7 @@ zh-TW: placeholder: 記錄已執行的動作,或其他相關的更新... title: 註記 notes_description_html: 檢視及留下些給其他管理員和未來的自己的註記 + processed_msg: '檢舉報告 #%{id} 已被成功處理' quick_actions_description_html: 採取一個快速行動,或者下捲以檢視檢舉內容: remote_user_placeholder: 來自 %{instance} 之遠端使用者 reopen: 重開檢舉 @@ -607,9 +610,28 @@ zh-TW: status: 嘟文 statuses: 被檢舉的內容 statuses_description_html: 侵犯性違規內容會被引用在檢舉帳號通知中 + summary: + action_preambles: + delete_html: 您將要 移除 某些 @%{acct} 之嘟文。此將會: + mark_as_sensitive_html: 您將要 標記 某些 @%{acct} 之嘟文為 敏感內容 。此將會: + silence_html: 您將要 限制 @%{acct} 之帳號。此將會: + suspend_html: 您將要 暫停 @%{acct} 之帳號。此將會: + actions: + delete_html: 移除違反規則之嘟文 + mark_as_sensitive_html: 將違反規則之嘟文多媒體標記為敏感內容 + silence_html: 藉由標記他們的個人檔案與內容為僅可見於已跟隨帳號或手動查詢此個人檔案,此將嚴格地限制 @%{acct} 之觸及率 + suspend_html: 暫停 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動 + close_report: '將檢舉報告 #%{id} 標記為已處理' + close_reports_html: 將 所有 對於 @%{acct} 之檢舉報告標記為已處理 + delete_data_html: 於即日起 30 天後刪除 @%{acct}之個人檔案與內容,除非他們於期限前被解除暫停 + preview_preamble_html: "@%{acct} 將收到關於以下內容之警告:" + record_strike_html: 紀錄關於 @%{acct}之警示有助於您升級對此帳號未來違規處理 + send_email_html: 寄一封警告 e-mail 給 @%{acct} + warning_placeholder: 選填之其他站務動作理由。 target_origin: 檢舉帳號之來源 title: 檢舉 unassign: 取消指派 + unknown_action_msg: 未知的動作:%{action} unresolved: 未解決 updated_at: 更新 view_profile: 檢視個人檔案頁面 @@ -927,6 +949,8 @@ zh-TW: auth: apply_for_account: 申請帳號 change_password: 密碼 + confirmations: + wrong_email_hint: 若電子郵件地址不正確,您可以於帳號設定中更改。 delete_account: 刪除帳號 delete_account_html: 如果您欲刪除您的帳號,請點擊這裡繼續。您需要再三確認您的操作。 description: From 9400bdbce54989e461848a78c4656b71ea847d44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 20:09:43 +0900 Subject: [PATCH 0315/1220] Bump docker/build-push-action from 3 to 4 (#23333) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 97cc0c5ce9..0c84b23b65 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -42,7 +42,7 @@ jobs: type=pep440,pattern={{raw}} type=pep440,pattern=v{{major}}.{{minor}} type=ref,event=pr - - uses: docker/build-push-action@v3 + - uses: docker/build-push-action@v4 with: context: . platforms: linux/amd64,linux/arm64 From 1c335ac53a98c0f4f97a0ce5c8166cd2285c02ad Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 1 Feb 2023 13:15:42 +0100 Subject: [PATCH 0316/1220] Fix official docker images nto being compatible with some cloud providers (#23354) See #23333 and https://github.com/docker/buildx/issues/1533 --- .github/workflows/build-image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 0c84b23b65..9962bbde62 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -46,6 +46,7 @@ jobs: with: context: . platforms: linux/amd64,linux/arm64 + provenance: false builder: ${{ steps.buildx.outputs.name }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} From 420f33ccb95081b960510af3c746a525a370f6bb Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Wed, 1 Feb 2023 23:15:11 +0900 Subject: [PATCH 0317/1220] Skip locales linting (#23352) --- .github/workflows/lint-json.yml | 2 ++ .github/workflows/lint-yml.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/lint-json.yml b/.github/workflows/lint-json.yml index 5bf4349b3d..524ed083aa 100644 --- a/.github/workflows/lint-json.yml +++ b/.github/workflows/lint-json.yml @@ -9,6 +9,7 @@ on: - '.prettier*' - '**/*.json' - '.github/workflows/lint-json.yml' + - '!app/javascript/mastodon/locales/*.json' pull_request: paths: @@ -17,6 +18,7 @@ on: - '.prettier*' - '**/*.json' - '.github/workflows/lint-json.yml' + - '!app/javascript/mastodon/locales/*.json' jobs: lint: diff --git a/.github/workflows/lint-yml.yml b/.github/workflows/lint-yml.yml index b939ec8ce2..48f8170b3b 100644 --- a/.github/workflows/lint-yml.yml +++ b/.github/workflows/lint-yml.yml @@ -10,6 +10,7 @@ on: - '**/*.yaml' - '**/*.yml' - '.github/workflows/lint-yml.yml' + - '!config/locales/*.yml' pull_request: paths: @@ -19,6 +20,7 @@ on: - '**/*.yaml' - '**/*.yml' - '.github/workflows/lint-yml.yml' + - '!config/locales/*.yml' jobs: lint: From c6ef56fd5e8f2648a256ae1479ddc28d0164c602 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 2 Feb 2023 00:07:49 +0100 Subject: [PATCH 0318/1220] Change rate limits to 1,500/5m per user, 300/5m per app (#23347) --- config/initializers/rack_attack.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb index 72ef7ba801..3857e30555 100644 --- a/config/initializers/rack_attack.rb +++ b/config/initializers/rack_attack.rb @@ -33,6 +33,10 @@ class Rack::Attack authenticated_token&.resource_owner_id end + def authenticated_token_id + authenticated_token&.id + end + def unauthenticated? !authenticated_user_id end @@ -62,10 +66,14 @@ class Rack::Attack IpBlock.blocked?(req.remote_ip) end - throttle('throttle_authenticated_api', limit: 300, period: 5.minutes) do |req| + throttle('throttle_authenticated_api', limit: 1_500, period: 5.minutes) do |req| req.authenticated_user_id if req.api_request? end + throttle('throttle_per_token_api', limit: 300, period: 5.minutes) do |req| + req.authenticated_token_id if req.api_request? + end + throttle('throttle_unauthenticated_api', limit: 300, period: 5.minutes) do |req| req.throttleable_remote_ip if req.api_request? && req.unauthenticated? end From 6a5e447753095606e42cc3899887ba7fae77a0e8 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 1 Feb 2023 20:14:19 -0500 Subject: [PATCH 0319/1220] Address check-i18n warnings (#23313) * Address check-i18n warnings * Add language names to language helpers --- app/helpers/languages_helper.rb | 4 + config/application.rb | 15 + config/locales/activerecord.zh_Hant.yml | 15 - config/locales/en_GB.yml | 1043 ----------------------- config/locales/simple_form.en_GB.yml | 131 --- 5 files changed, 19 insertions(+), 1189 deletions(-) delete mode 100644 config/locales/activerecord.zh_Hant.yml delete mode 100644 config/locales/en_GB.yml delete mode 100644 config/locales/simple_form.en_GB.yml diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index bb87dd596c..bb35ce08cd 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -199,6 +199,8 @@ module LanguagesHelper sco: ['Scots', 'Scots'].freeze, sma: ['Southern Sami', 'Åarjelsaemien Gïele'].freeze, smj: ['Lule Sami', 'Julevsámegiella'].freeze, + szl: ['Silesian', 'ślůnsko godka'].freeze, + tai: ['Tai', 'ภาษาไท or ภาษาไต'].freeze, tok: ['Toki Pona', 'toki pona'].freeze, zba: ['Balaibalan', 'باليبلن'].freeze, zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze, @@ -210,8 +212,10 @@ module LanguagesHelper # names, but for some translations, we need the names of the # regional variants specifically REGIONAL_LOCALE_NAMES = { + 'en-GB': 'English (British)', 'es-AR': 'Español (Argentina)', 'es-MX': 'Español (México)', + 'fr-QC': 'Français (Canadien)', 'pt-BR': 'Português (Brasil)', 'pt-PT': 'Português (Portugal)', 'sr-Latn': 'Srpski (latinica)', diff --git a/config/application.rb b/config/application.rb index 929a44948f..c51eacd680 100644 --- a/config/application.rb +++ b/config/application.rb @@ -69,12 +69,14 @@ module Mastodon # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] config.i18n.available_locales = [ :af, + :an, :ar, :ast, :be, :bg, :bn, :br, + :bs, :ca, :ckb, :co, @@ -84,6 +86,7 @@ module Mastodon :de, :el, :en, + :'en-GB', :eo, :es, :'es-AR', @@ -92,7 +95,9 @@ module Mastodon :eu, :fa, :fi, + :fo, :fr, + :'fr-QC', :fy, :ga, :gd, @@ -103,6 +108,7 @@ module Mastodon :hu, :hy, :id, + :ig, :io, :is, :it, @@ -113,16 +119,20 @@ module Mastodon :kn, :ko, :ku, + :kw, + :la, :lt, :lv, :mk, :ml, :mr, :ms, + :my, :nl, :nn, :no, :oc, + :pa, :pl, :'pt-BR', :'pt-PT', @@ -130,6 +140,7 @@ module Mastodon :ru, :sa, :sc, + :sco, :si, :sk, :sl, @@ -137,10 +148,14 @@ module Mastodon :sr, :'sr-Latn', :sv, + :szl, :ta, + :tai, :te, :th, :tr, + :tt, + :ug, :uk, :ur, :vi, diff --git a/config/locales/activerecord.zh_Hant.yml b/config/locales/activerecord.zh_Hant.yml deleted file mode 100644 index 730ab3a511..0000000000 --- a/config/locales/activerecord.zh_Hant.yml +++ /dev/null @@ -1,15 +0,0 @@ -zh_Hant: - activerecord: - attributes: - status: - owned_poll: 投票 - errors: - models: - account: - attributes: - username: - invalid: 只允許使用字母、數字和底線 - status: - attributes: - reblog: - taken: 的嘟文已經存在 diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml deleted file mode 100644 index 2cba40da0b..0000000000 --- a/config/locales/en_GB.yml +++ /dev/null @@ -1,1043 +0,0 @@ ---- -en_GB: - about: - about_hashtag_html: These are public toots tagged with #%{hashtag}. You can interact with them if you have an account anywhere in the fediverse. - about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail. - about_this: About - active_count_after: active - active_footnote: Monthly Active Users (MAU) - administered_by: 'Administered by:' - api: API - apps: Mobile apps - apps_platforms: Use Mastodon from iOS, Android and other platforms - browse_directory: Browse a profile directory and filter by interests - browse_public_posts: Browse a live stream of public posts on Mastodon - contact: Contact - contact_missing: Not set - contact_unavailable: N/A - discover_users: Discover users - documentation: Documentation - extended_description_html: | -

    1A good place for rules

    2 -

    3The extended description has not been set up yet.

    4 - federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond. - generic_description: "%{domain} is one server in the network" - get_apps: Try a mobile app - hosted_on: Mastodon hosted on %{domain} - learn_more: Learn more - privacy_policy: Privacy policy - see_whats_happening: See what's happening - server_stats: 'Server stats:' - source_code: Source code - status_count_after: - one: status - other: statuses - status_count_before: Who authored - tagline: Follow friends and discover new ones - terms: Terms of service - user_count_after: - one: user - other: users - user_count_before: Home to - what_is_mastodon: What is Mastodon? - accounts: - choices_html: "%{name}'s choices:" - follow: Follow - followers: - one: Follower - other: Follower - following: Following - joined: Joined %{date} - last_active: last active - link_verified_on: Ownership of this link was checked on %{date} - media: Media - moved_html: "%{name} has moved to %{new_profile_link}:" - network_hidden: This information is not available - nothing_here: There is nothing here! - people_followed_by: People whom %{name} follows - people_who_follow: People who follow %{name} - pin_errors: - following: You must be already following the person you want to endorse - posts: - one: Toot - other: Toots - posts_tab_heading: Toots - posts_with_replies: Toots and replies - reserved_username: The username is reserved - roles: - admin: Admin - bot: Bot - moderator: Mod - unfollow: Unfollow - admin: - account_actions: - action: Perform action - title: Perform moderation action on %{acct} - account_moderation_notes: - create: Leave note - created_msg: Moderation note successfully created! - delete: Delete - destroyed_msg: Moderation note successfully destroyed! - accounts: - approve: Approve - are_you_sure: Are you sure? - avatar: Avatar - by_domain: Domain - change_email: - changed_msg: Account email successfully changed! - current_email: Current email - label: Change email - new_email: New email - submit: Change email - title: Change email for %{username} - confirm: Confirm - confirmed: Confirmed - confirming: Confirming - deleted: Deleted - demote: Demote - disable: Disable - disable_two_factor_authentication: Disable 2FA - disabled: Disabled - display_name: Display name - domain: Domain - edit: Edit - email: Email - email_status: Email status - enable: Enable - enabled: Enabled - followers: Followers - follows: Follows - header: Header - inbox_url: Inbox URL - invited_by: Invited by - ip: IP - joined: Joined - location: - all: All - local: Local - remote: Remote - title: Location - login_status: Login status - media_attachments: Media attachments - memorialize: Turn into memoriam - moderation: - active: Active - all: All - pending: Pending - silenced: Silenced - suspended: Suspended - title: Moderation - moderation_notes: Moderation notes - most_recent_activity: Most recent activity - most_recent_ip: Most recent IP - no_limits_imposed: No limits imposed - not_subscribed: Not subscribed - pending: Pending review - perform_full_suspension: Suspend - promote: Promote - protocol: Protocol - public: Public - push_subscription_expires: PuSH subscription expires - redownload: Refresh profile - reject: Reject - remove_avatar: Remove avatar - remove_header: Remove header - resend_confirmation: - already_confirmed: This user is already confirmed - send: Resend confirmation email - success: Confirmation email successfully sent! - reset: Reset - reset_password: Reset password - resubscribe: Resubscribe - role: Permissions - roles: - admin: Administrator - moderator: Moderator - staff: Staff - user: User - search: Search - shared_inbox_url: Shared inbox URL - show: - created_reports: Made reports - targeted_reports: Reported by others - silence: Silence - silenced: Silenced - statuses: Statuses - subscribe: Subscribe - suspended: Suspended - title: Accounts - unconfirmed_email: Unconfirmed email - undo_silenced: Undo silence - undo_suspension: Undo suspension - unsubscribe: Unsubscribe - username: Username - warn: Warn - web: Web - action_logs: - actions: - assigned_to_self_report: "%{name} assigned report %{target} to themselves" - change_email_user: "%{name} changed the e-mail address of user %{target}" - confirm_user: "%{name} confirmed e-mail address of user %{target}" - create_account_warning: "%{name} sent a warning to %{target}" - create_custom_emoji: "%{name} uploaded new emoji %{target}" - create_domain_block: "%{name} blocked domain %{target}" - create_email_domain_block: "%{name} blacklisted e-mail domain %{target}" - demote_user: "%{name} demoted user %{target}" - destroy_custom_emoji: "%{name} destroyed emoji %{target}" - destroy_domain_block: "%{name} unblocked domain %{target}" - destroy_email_domain_block: "%{name} whitelisted e-mail domain %{target}" - destroy_status: "%{name} removed status by %{target}" - disable_2fa_user: "%{name} disabled two factor requirement for user %{target}" - disable_custom_emoji: "%{name} disabled emoji %{target}" - disable_user: "%{name} disabled login for user %{target}" - enable_custom_emoji: "%{name} enabled emoji %{target}" - enable_user: "%{name} enabled login for user %{target}" - memorialize_account: "%{name} turned %{target}'s account into a memoriam page" - promote_user: "%{name} promoted user %{target}" - remove_avatar_user: "%{name} removed %{target}'s avatar" - reopen_report: "%{name} reopened report %{target}" - reset_password_user: "%{name} reset password of user %{target}" - resolve_report: "%{name} resolved report %{target}" - silence_account: "%{name} silenced %{target}'s account" - suspend_account: "%{name} suspended %{target}'s account" - unassigned_report: "%{name} unassigned report %{target}" - unsilence_account: "%{name} unsilenced %{target}'s account" - unsuspend_account: "%{name} unsuspended %{target}'s account" - update_custom_emoji: "%{name} updated emoji %{target}" - update_status: "%{name} updated status by %{target}" - deleted_status: "(deleted status)" - title: Audit log - custom_emojis: - by_domain: Domain - copied_msg: Successfully created local copy of the emoji - copy: Copy - copy_failed_msg: Could not make a local copy of that emoji - created_msg: Emoji successfully created! - delete: Delete - destroyed_msg: Emojo successfully destroyed! - disable: Disable - disabled_msg: Successfully disabled that emoji - emoji: Emoji - enable: Enable - enabled_msg: Successfully enabled that emoji - listed: Listed - new: - title: Add new custom emoji - overwrite: Overwrite - shortcode: Shortcode - shortcode_hint: At least 2 characters, only alphanumeric characters and underscores - title: Custom emojis - unlisted: Unlisted - update_failed_msg: Could not update that emoji - updated_msg: Emoji successfully updated! - upload: Upload - dashboard: - backlog: backlogged jobs - config: Configuration - feature_deletions: Account deletions - feature_invites: Invite links - feature_profile_directory: Profile directory - feature_registrations: Registrations - feature_relay: Federation relay - features: Features - hidden_service: Federation with hidden services - open_reports: open reports - recent_users: Recent users - search: Full-text search - single_user_mode: Single user mode - software: Software - space: Space usage - title: Dashboard - total_users: users in total - trends: Trends - week_interactions: interactions this week - week_users_active: active this week - week_users_new: users this week - domain_blocks: - add_new: Add new domain block - created_msg: Domain block is now being processed - destroyed_msg: Domain block has been undone - domain: Domain - new: - create: Create block - hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts. - severity: - desc_html: "Silence will make the account's posts invisible to anyone who isn't following them. Suspend will remove all of the account's content, media, and profile data. Use None if you just want to reject media files." - noop: None - silence: Silence - suspend: Suspend - title: New domain block - reject_media: Reject media files - reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions - reject_reports: Reject reports - reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions - rejecting_media: rejecting media files - rejecting_reports: rejecting reports - severity: - silence: silenced - suspend: suspended - show: - affected_accounts: - one: One account in the database affected - other: "%{count} accounts in the database affected" - retroactive: - silence: Unsilence all existing accounts from this domain - suspend: Unsuspend all existing accounts from this domain - title: Undo domain block for %{domain} - undo: Undo - undo: Undo domain block - email_domain_blocks: - add_new: Add new - created_msg: Successfully added e-mail domain to blacklist - delete: Delete - destroyed_msg: Successfully deleted e-mail domain from blacklist - domain: Domain - new: - create: Add domain - title: New e-mail blacklist entry - title: E-mail blacklist - followers: - back_to_account: Back To Account - title: "%{acct}'s Followers" - instances: - by_domain: Domain - delivery_available: Delivery is available - known_accounts: - one: "%{count} known account" - other: "%{count} known accounts" - moderation: - all: All - limited: Limited - title: Moderation - title: Federation - total_blocked_by_us: Blocked by us - total_followed_by_them: Followed by them - total_followed_by_us: Followed by us - total_reported: Reports about them - total_storage: Media attachments - invites: - deactivate_all: Deactivate all - filter: - all: All - available: Available - expired: Expired - title: Filter - title: Invites - relays: - add_new: Add new relay - delete: Delete - description_html: A federation relay is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. It can help small and medium servers discover content from the fediverse, which would otherwise require local users manually following other people on remote servers. - disable: Disable - disabled: Disabled - enable: Enable - enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it. - enabled: Enabled - inbox_url: Relay URL - pending: Waiting for relay's approval - save_and_enable: Save and enable - setup: Setup a relay connection - status: Status - title: Relays - report_notes: - created_msg: Report note successfully created! - destroyed_msg: Report note successfully deleted! - reports: - account: - note: note - report: report - action_taken_by: Action taken by - are_you_sure: Are you sure? - assign_to_self: Assign to me - assigned: Assigned moderator - comment: - none: None - created_at: Reported - mark_as_resolved: Mark as resolved - mark_as_unresolved: Mark as unresolved - notes: - create: Add note - create_and_resolve: Resolve with note - create_and_unresolve: Reopen with note - delete: Delete - placeholder: Describe what actions have been taken, or any other related updates... - reopen: Reopen report - report: 'Report #%{id}' - reported_account: Reported account - reported_by: Reported by - resolved: Resolved - resolved_msg: Report successfully resolved! - status: Status - title: Reports - unassign: Unassign - unresolved: Unresolved - updated_at: Updated - settings: - activity_api_enabled: - desc_html: Counts of locally posted statuses, active users, and new registrations in weekly buckets - title: Publish aggregate statistics about user activity - bootstrap_timeline_accounts: - desc_html: Separate multiple usernames by comma. Only local and unlocked accounts will work. Default when empty is all local admins. - title: Default follows for new users - contact_information: - email: Business e-mail - username: Contact username - custom_css: - desc_html: Modify the look with CSS loaded on every page - title: Custom CSS - hero: - desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail - title: Hero image - mascot: - desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot - title: Mascot image - peers_api_enabled: - desc_html: Domain names this server has encountered in the fediverse - title: Publish list of discovered servers - preview_sensitive_media: - desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive - title: Show sensitive media in OpenGraph previews - profile_directory: - desc_html: Allow users to be discoverable - title: Enable profile directory - registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags - title: Closed registration message - deletion: - desc_html: Allow anyone to delete their account - title: Open account deletion - min_invite_role: - disabled: No one - title: Allow invitations by - registrations_mode: - modes: - approved: Approval required for sign up - none: Nobody can sign up - open: Anyone can sign up - title: Registrations mode - show_known_fediverse_at_about_page: - desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show local toots. - title: Show known fediverse on timeline preview - show_staff_badge: - desc_html: Show a staff badge on a user page - title: Show staff badge - site_description: - desc_html: Introductory paragraph on the frontpage. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. - title: Server description - site_description_extended: - desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags - title: Custom extended information - site_short_description: - desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to server description. - title: Short server description - site_terms: - desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags - title: Custom terms of service - site_title: Server name - thumbnail: - desc_html: Used for previews via OpenGraph and API. 1200x630px recommended - title: Server thumbnail - timeline_preview: - desc_html: Display public timeline on landing page - title: Timeline preview - title: Site settings - statuses: - back_to_account: Back to account page - batch: - delete: Delete - nsfw_off: Mark as not sensitive - nsfw_on: Mark as sensitive - failed_to_execute: Failed to execute - media: - title: Media - no_media: No media - no_status_selected: No statuses were changed as none were selected - title: Account statuses - with_media: With media - subscriptions: - callback_url: Callback URL - confirmed: Confirmed - expires_in: Expires in - last_delivery: Last delivery - title: WebSub - topic: Topic - tags: - accounts: Accounts - hidden: Hidden - hide: Hide from directory - name: Hashtag - title: Hashtags - unhide: Show in directory - visible: Visible - title: Administration - warning_presets: - add_new: Add new - delete: Delete - edit_preset: Edit warning preset - title: Manage warning presets - admin_mailer: - new_pending_account: - body: The details of the new account are below. You can approve or reject this application. - subject: New account up for review on %{instance} (%{username}) - new_report: - body: "%{reporter} has reported %{target}" - body_remote: Someone from %{domain} has reported %{target} - subject: New report for %{instance} (#%{id}) - application_mailer: - notification_preferences: Change e-mail preferences - salutation: "%{name}," - settings: 'Change e-mail preferences: %{link}' - view: 'View:' - view_profile: View Profile - view_status: View status - applications: - created: Application successfully created - destroyed: Application successfully deleted - invalid_url: The provided URL is invalid - regenerate_token: Regenerate access token - token_regenerated: Access token successfully regenerated - warning: Be very careful with this data. Never share it with anyone! - your_token: Your access token - auth: - apply_for_account: Request an invite - change_password: Password - checkbox_agreement_html: I agree to the server rules and terms of service - confirm_email: Confirm email - delete_account: Delete account - delete_account_html: If you wish to delete your account, you can proceed here. You will be asked for confirmation. - didnt_get_confirmation: Didn't receive confirmation instructions? - forgot_password: Forgot your password? - invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one. - login: Log in - logout: Logout - migrate_account: Move to a different account - migrate_account_html: If you wish to redirect this account to a different one, you can configure it here. - or_log_in_with: Or log in with - providers: - cas: CAS - saml: SAML - register: Sign up - registration_closed: "%{instance} is not accepting new members" - resend_confirmation: Resend confirmation instructions - reset_password: Reset password - security: Security - set_new_password: Set new password - trouble_logging_in: Trouble logging in? - authorize_follow: - already_following: You are already following this account - error: Unfortunately, there was an error looking up the remote account - follow: Follow - follow_request: 'You have sent a follow request to:' - following: 'Success! You are now following:' - post_follow: - close: Or, you can just close this window. - return: Show the user's profile - web: Go to web - title: Follow %{acct} - datetime: - distance_in_words: - about_x_hours: "%{count}h" - about_x_months: "%{count}mo" - about_x_years: "%{count}y" - almost_x_years: "%{count}y" - half_a_minute: Just now - less_than_x_minutes: "%{count}m" - less_than_x_seconds: Just now - over_x_years: "%{count}y" - x_days: "%{count}d" - x_minutes: "%{count}m" - x_months: "%{count}mo" - x_seconds: "%{count}s" - deletes: - bad_password_msg: Nice try, hackers! Incorrect password - confirm_password: Enter your current password to verify your identity - description_html: This will permanently, irreversibly remove content from your account and deactivate it. Your username will remain reserved to prevent future impersonations. - proceed: Delete account - success_msg: Your account was successfully deleted - warning_html: Only deletion of content from this particular server is guaranteed. Content that has been widely shared is likely to leave traces. Offline servers and servers that have unsubscribed from your updates will not update their databases. - warning_title: Disseminated content availability - directories: - directory: Profile directory - enabled: You are currently listed in the directory. - enabled_but_waiting: You have opted-in to be listed in the directory, but you do not have the minimum number of followers (%{min_followers}) to be listed yet. - explanation: Discover users based on their interests - explore_mastodon: Explore %{title} - how_to_enable: You are not currently opted-in to the directory. You can opt-in below. Use hashtags in your bio text to be listed under specific hashtags! - people: - one: "%{count} person" - other: "%{count} people" - errors: - '403': You don't have permission to view this page. - '404': The page you are looking for isn't here. - '410': The page you were looking for doesn't exist here anymore. - '422': - content: Security verification failed. Are you blocking cookies? - title: Security verification failed - '429': Throttled - '500': - content: We're sorry, but something went wrong on our end. - title: This page is not correct - noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the native apps for Mastodon for your platform. - exports: - archive_takeout: - date: Date - download: Download your archive - hint_html: You can request an archive of your toots and uploaded media. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days. - in_progress: Compiling your archive... - request: Request your archive - size: Size - blocks: You block - csv: CSV - domain_blocks: Domain blocks - follows: You follow - lists: Lists - mutes: You mute - storage: Media storage - featured_tags: - add_new: Add new - errors: - limit: You have already featured the maximum amount of hashtags - filters: - contexts: - home: Home and lists - notifications: Notifications - public: Public timelines - thread: Conversations - edit: - title: Edit filter - errors: - invalid_context: None or invalid context supplied - invalid_irreversible: Irreversible filtering only works with home or notifications context - index: - delete: Delete - title: Filters - new: - title: Add new filter - footer: - developers: Developers - more: More… - resources: Resources - generic: - all: All - changes_saved_msg: Changes successfully saved! - copy: Copy - save_changes: Save changes - validation_errors: - one: Something isn't quite right yet! Please review the error below - other: Something isn't quite right yet! Please review %{count} errors below - identity_proofs: - active: Active - authorize: Yes, authorize - authorize_connection_prompt: Authorize this cryptographic connection? - errors: - failed: The cryptographic connection failed. Please try again from %{provider}. - keybase: - invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters - verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase. - explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them. - i_am_html: I am %{username} on %{service}. - identity: Identity - inactive: Inactive - status: Verification status - view_proof: View proof - imports: - modes: - merge: Merge - merge_long: Keep existing records and add new ones - overwrite: Overwrite - overwrite_long: Replace current records with the new ones - preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking. - success: Your data was successfully uploaded and will now be processed in due time - types: - blocking: Blocking list - domain_blocking: Domain blocking list - following: Following list - muting: Muting list - upload: Upload - in_memoriam_html: In Memoriam. - invites: - delete: Deactivate - expired: Expired - expires_in: - '1800': 30 minutes - '21600': 6 hours - '3600': 1 hour - '43200': 12 hours - '604800': 1 week - '86400': 1 day - expires_in_prompt: Never - generate: Generate - invited_by: 'You were invited by:' - max_uses: - one: 1 use - other: "%{count} uses" - max_uses_prompt: No limit - prompt: Generate and share links with others to grant access to this server - table: - expires_at: Expires - uses: Uses - title: Invite people - lists: - errors: - limit: You have reached the maximum amount of lists - media_attachments: - validations: - images_and_video: Cannot attach a video to a status that already contains images - too_many: Cannot attach more than 4 files - migrations: - acct: username@domain of the new account - currently_redirecting: 'Your profile is set to redirect to:' - proceed: Save - updated_msg: Your account migration setting successfully updated! - moderation: - title: Moderation - notification_mailer: - digest: - action: View all notifications - body: Here is a brief summary of the messages you missed since your last visit on %{since} - mention: "%{name} mentioned you in:" - new_followers_summary: - one: Also, you have acquired one new follower while being away! Yay! - other: Also, you have acquired %{count} new followers while being away! Amazing! - subject: - one: "1 new notification since your last visit 🐘" - other: "%{count} new notifications since your last visit 🐘" - title: In your absence... - favourite: - body: 'Your status was favourited by %{name}:' - subject: "%{name} favourited your status" - title: New favourite - follow: - body: "%{name} is now following you!" - subject: "%{name} is now following you" - title: New follower - follow_request: - action: Manage follow requests - body: "%{name} has requested to follow you" - subject: 'Pending follower: %{name}' - title: New follow request - mention: - action: Reply - body: 'You were mentioned by %{name} in:' - subject: You were mentioned by %{name} - title: New mention - reblog: - body: 'Your status was boosted by %{name}:' - subject: "%{name} boosted your status" - title: New boost - number: - human: - decimal_units: - format: "%n%u" - units: - billion: B - million: M - quadrillion: Q - thousand: K - trillion: T - pagination: - newer: Newer - next: Next - older: Older - prev: Prev - truncate: "…" - polls: - errors: - already_voted: You have already voted on this poll - duplicate_options: contain duplicate items - duration_too_long: is too far into the future - duration_too_short: is too soon - expired: The poll has already ended - over_character_limit: cannot be longer than %{max} characters each - too_few_options: must have more than one item - too_many_options: can't contain more than %{max} items - preferences: - other: Other - relationships: - activity: Account activity - dormant: Dormant - moved: Moved - mutual: Mutual - primary: Primary - relationship: Relationship - remove_selected_domains: Remove all followers from the selected domains - remove_selected_followers: Remove selected followers - remove_selected_follows: Unfollow selected users - status: Account status - remote_follow: - acct: Enter your username@domain you want to act from - missing_resource: Could not find the required redirect URL for your account - no_account_html: Don't have an account? You can sign up here - proceed: Proceed to follow - prompt: 'You are going to follow:' - reason_html: "Why is this step necessary? %{instance} might not be the server where you are registered, so we need to redirect you to your home server first." - remote_interaction: - favourite: - proceed: Proceed to favourite - prompt: 'You want to favourite this toot:' - reblog: - proceed: Proceed to boost - prompt: 'You want to boost this toot:' - reply: - proceed: Proceed to reply - prompt: 'You want to reply to this toot:' - remote_unfollow: - error: Error - title: Title - unfollowed: Unfollowed - scheduled_statuses: - over_daily_limit: You have exceeded the limit of %{limit} scheduled toots for that day - over_total_limit: You have exceeded the limit of %{limit} scheduled toots - too_soon: The scheduled date must be in the future - sessions: - activity: Last activity - browser: Browser - browsers: - alipay: Alipay - blackberry: Blackberry - chrome: Chrome - edge: Microsoft Edge - electron: Electron - firefox: Firefox - generic: Unknown 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: UCBrowser - weibo: Weibo - current_session: Current session - description: "%{browser} on %{platform}" - explanation: These are the web browsers currently logged in to your Mastodon account. - ip: IP - platforms: - adobe_air: Adobe Air - android: Android - blackberry: Blackberry - chrome_os: ChromeOS - firefox_os: Firefox OS - ios: iOS - linux: Linux - mac: Mac - other: unknown platform - windows: Windows - windows_mobile: Windows Mobile - windows_phone: Windows Phone - revoke: Revoke - revoke_success: Session successfully revoked - title: Sessions - settings: - authorized_apps: Authorized apps - back: Back to Mastodon - delete: Account deletion - development: Development - edit_profile: Edit profile - export: Data export - featured_tags: Featured hashtags - identity_proofs: Identity proofs - import: Import - migrate: Account migration - notifications: Notifications - preferences: Preferences - relationships: Follows and followers - two_factor_authentication: Two-factor Auth - statuses: - attached: - description: 'Attached: %{attached}' - image: - one: "%{count} image" - other: "%{count} images" - video: - one: "%{count} video" - other: "%{count} videos" - boosted_from_html: Boosted from %{acct_link} - content_warning: 'Content warning: %{warning}' - disallowed_hashtags: - one: 'contained a disallowed hashtag: %{tags}' - other: 'contained the disallowed hashtags: %{tags}' - language_detection: Automatically detect language - open_in_web: Open in web - over_character_limit: character limit of %{max} exceeded - pin_errors: - limit: You have already pinned the maximum number of toots - ownership: Someone else's toot cannot be pinned - private: Non-public toot cannot be pinned - reblog: A boost cannot be pinned - poll: - total_votes: - one: "%{count} vote" - other: "%{count} votes" - vote: Vote - show_more: Show more - sign_in_to_participate: Sign in to participate in the conversation - title: '%{name}: "%{quote}"' - visibilities: - private: Followers-only - private_long: Only show to followers - public: Public - public_long: Everyone can see - unlisted: Unlisted - unlisted_long: Everyone can see, but not listed on public timelines - stream_entries: - pinned: Pinned toot - reblogged: boosted - sensitive_content: Sensitive content - terms: - body_html: | -

    Privacy Policy

    -

    What information do we collect?

    - -
      -
    • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
    • -
    • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
    • -
    • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
    • -
    • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
    • -
    - -
    - -

    What do we use your information for?

    - -

    Any of the information we collect from you may be used in the following ways:

    - -
      -
    • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
    • -
    • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
    • -
    • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
    • -
    - -
    - -

    How do we protect your information?

    - -

    We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

    - -
    - -

    What is our data retention policy?

    - -

    We will make a good faith effort to:

    - -
      -
    • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
    • -
    • Retain the IP addresses associated with registered users no more than 12 months.
    • -
    - -

    You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

    - -

    You may irreversibly delete your account at any time.

    - -
    - -

    Do we use cookies?

    - -

    Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

    - -

    We use cookies to understand and save your preferences for future visits.

    - -
    - -

    Do we disclose any information to outside parties?

    - -

    We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

    - -

    Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

    - -

    When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

    - -
    - -

    Site usage by children

    - -

    If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

    - -

    If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

    - -

    Law requirements can be different if this server is in another jurisdiction.

    - -
    - -

    Changes to our Privacy Policy

    - -

    If we decide to change our privacy policy, we will post those changes on this page.

    - -

    This document is CC-BY-SA. It was last updated March 7, 2018.

    - -

    Originally adapted from the Discourse privacy policy.

    - title: "%{instance} Terms of Service and Privacy Policy" - themes: - contrast: Mastodon (High contrast) - default: Mastodon (Dark) - mastodon-light: Mastodon (Light) - time: - formats: - default: "%b %d, %Y, %H:%M" - month: "%b %Y" - two_factor_authentication: - code_hint: Enter the code generated by your authenticator app to confirm - description_html: If you enable two-factor authentication, logging in will require you to be in possession of your phone, which will generate tokens for you to enter. - disable: Disable - enable: Enable - enabled: Two-factor authentication is enabled - enabled_success: Two-factor authentication successfully enabled - generate_recovery_codes: Generate recovery codes - instructions_html: "Scan this QR code into Google Authenticator or a similar TOTP app on your phone. From now on, that app will generate tokens that you will have to enter when logging in." - lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated. - manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:' - recovery_codes: Backup recovery codes - recovery_codes_regenerated: Recovery codes successfully regenerated - recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe. For example, you may print them and store them with other important documents. - setup: Set up - wrong_code: The entered code was invalid! Are server time and device time correct? - user_mailer: - backup_ready: - explanation: You requested a full backup of your Mastodon account. It's now ready for download! - subject: Your archive is ready for download - title: Archive takeout - warning: - explanation: - disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked. - silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you. - suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers. - review_server_policies: Review server policies - subject: - disable: Your account %{acct} has been frozen - none: Warning for %{acct} - silence: Your account %{acct} has been limited - suspend: Your account %{acct} has been suspended - title: - disable: Account frozen - none: Warning - silence: Account limited - suspend: Account suspended - welcome: - edit_profile_action: Setup profile - edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account. - explanation: Here are some tips to get you started - final_action: Start posting - final_step: 'Start posting! Even without followers your public messages may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.' - full_handle: Your full handle - full_handle_hint: This is what you would tell your friends so they can message or follow you from another server. - review_preferences_action: Change preferences - review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay. - subject: Welcome to Mastodon - tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete. - tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines. - tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours! - tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways! - tips: Tips - title: Welcome aboard, %{name}! - users: - follow_limit_reached: You cannot follow more than %{limit} people - invalid_email: The e-mail address is invalid - invalid_otp_token: Invalid two-factor code - otp_lost_help_html: If you lost access to both, you may get in touch with %{email} - seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. - signed_in_as: 'Signed in as:' - verification: - explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' - verification: Verification diff --git a/config/locales/simple_form.en_GB.yml b/config/locales/simple_form.en_GB.yml deleted file mode 100644 index 8752d81bb0..0000000000 --- a/config/locales/simple_form.en_GB.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -en_GB: - simple_form: - hints: - account_warning_preset: - text: You can use toot syntax, such as URLs, hashtags and mentions - admin_account_action: - send_email_notification: The user will receive an explanation of what happened with their account - text_html: Optional. You can use toot syntax. You can add warning presets to save time - type_html: Choose what to do with %{acct} - warning_preset_id: Optional. You can still add custom text to end of the preset - defaults: - autofollow: People who sign up through the invite will automatically follow you - avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px - bot: This account mainly performs automated actions and might not be monitored - context: One or multiple contexts where the filter should apply - digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence - discoverable_html: The directory lets people find accounts based on interests and activity. Requires at least %{min_followers} followers - 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 toots will disappear irreversibly, even if filter is later removed - locale: The language of the user interface, e-mails and push notifications - locked: Requires you to manually approve followers - password: Use at least 8 characters - phrase: Will be matched regardless of casing in text or content warning of a toot - scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones. - setting_aggregate_reblogs: Do not show new boosts for toots that have been recently boosted (only affects newly-received boosts) - setting_display_media_default: Hide media marked as sensitive - setting_display_media_hide_all: Always hide all media - setting_display_media_show_all: Always show media marked as sensitive - setting_hide_network: Who you follow and who follows you will not be shown on your profile - setting_noindex: Affects your public profile and status pages - setting_show_application: The application you use to toot will be displayed in the detailed view of your toots - username: Your username will be unique on %{domain} - whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word - featured_tag: - name: 'You might want to use one of these:' - imports: - data: CSV file exported from another Mastodon server - sessions: - otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' - user: - chosen_languages: When checked, only toots in selected languages will be displayed in public timelines - labels: - account: - fields: - name: Label - value: Content - account_warning_preset: - text: Preset text - admin_account_action: - send_email_notification: Notify the user per e-mail - text: Custom warning - type: Action - types: - disable: Disable - none: Do nothing - silence: Silence - suspend: Suspend and irreversibly delete account data - warning_preset_id: Use a warning preset - defaults: - autofollow: Invite to follow your account - avatar: Avatar - bot: This is a bot account - chosen_languages: Filter languages - confirm_new_password: Confirm new password - confirm_password: Confirm password - context: Filter contexts - current_password: Current password - data: Data - discoverable: List this account on the directory - display_name: Display name - email: E-mail address - expires_in: Expire after - fields: Profile metadata - header: Header - inbox_url: URL of the relay inbox - irreversible: Drop instead of hide - locale: Interface language - locked: Lock account - max_uses: Max number of uses - new_password: New password - note: Bio - otp_attempt: Two-factor code - password: Password - phrase: Keyword or phrase - setting_aggregate_reblogs: Group boosts in timelines - setting_auto_play_gif: Auto-play animated GIFs - setting_boost_modal: Show confirmation dialog before boosting - setting_default_language: Posting language - setting_default_privacy: Post privacy - setting_default_sensitive: Always mark media as sensitive - setting_delete_modal: Show confirmation dialog before deleting a toot - setting_display_media: Media display - setting_display_media_default: Default - setting_display_media_hide_all: Hide all - setting_display_media_show_all: Show all - setting_expand_spoilers: Always expand toots marked with content warnings - setting_hide_network: Hide your network - setting_noindex: Opt-out of search engine indexing - setting_reduce_motion: Reduce motion in animations - setting_show_application: Disclose application used to send toots - setting_system_font_ui: Use system's default font - setting_theme: Site theme - setting_unfollow_modal: Show confirmation dialog before unfollowing someone - severity: Severity - type: Import type - username: Username - username_or_email: Username or Email - whole_word: Whole word - featured_tag: - name: Hashtag - interactions: - must_be_follower: Block notifications from non-followers - must_be_following: Block notifications from people you don't follow - must_be_following_dm: Block direct messages from people you don't follow - notification_emails: - digest: Send digest e-mails - favourite: Send e-mail when someone favourites your status - follow: Send e-mail when someone follows you - follow_request: Send e-mail when someone requests to follow you - mention: Send e-mail when someone mentions you - reblog: Send e-mail when someone boosts your status - report: Send e-mail when a new report is submitted - 'no': 'No' - required: - mark: "*" - text: required - 'yes': 'Yes' From 20a479ff7c3bcd8e5c223dae53b30b174d87f1bf Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 2 Feb 2023 12:03:49 +0100 Subject: [PATCH 0320/1220] Change `POST /settings/applications/:id` to regenerate token on scopes change (#23359) Fixes #23096 --- app/controllers/settings/applications_controller.rb | 8 +++++++- spec/controllers/settings/applications_controller_spec.rb | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/settings/applications_controller.rb b/app/controllers/settings/applications_controller.rb index d3ac268d86..e6e137c2bc 100644 --- a/app/controllers/settings/applications_controller.rb +++ b/app/controllers/settings/applications_controller.rb @@ -29,7 +29,13 @@ class Settings::ApplicationsController < Settings::BaseController def update if @application.update(application_params) - redirect_to settings_applications_path, notice: I18n.t('generic.changes_saved_msg') + if @application.scopes_previously_changed? + @access_token = current_user.token_for_app(@application) + @access_token.destroy + redirect_to settings_application_path(@application), notice: I18n.t('applications.token_regenerated') + else + redirect_to settings_application_path(@application), notice: I18n.t('generic.changes_saved_msg') + end else render :show end diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 29c2781484..1292e9ff83 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -132,7 +132,7 @@ describe Settings::ApplicationsController do end it 'redirects back to applications page' do - expect(call_update).to redirect_to(settings_applications_path) + expect(call_update).to redirect_to(settings_application_path(app)) end end From 7e04b15ad8bde9b22e7a3bb717e3d6177d3fa430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elizabeth=20Mart=C3=ADn=20Campos?= Date: Fri, 3 Feb 2023 09:29:32 +0100 Subject: [PATCH 0321/1220] fix(web-push-notifications): fix favourite push notifications (#23286) Fix a bug where clicking in a favourite push notification would result in a 404 (not found) error, since we were redirecting the user to the wrong URL (we were redirecting to /@/, when it should be /@/) --- .../mastodon/service_worker/web_push_notifications.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js index f125957773..b9d6266940 100644 --- a/app/javascript/mastodon/service_worker/web_push_notifications.js +++ b/app/javascript/mastodon/service_worker/web_push_notifications.js @@ -1,6 +1,6 @@ import IntlMessageFormat from 'intl-messageformat'; -import locales from './web_push_locales'; import { unescape } from 'lodash'; +import locales from './web_push_locales'; const MAX_NOTIFICATIONS = 5; const GROUP_TAG = 'tag'; @@ -90,7 +90,13 @@ export const handlePush = (event) => { options.tag = notification.id; options.badge = '/badge.png'; options.image = notification.status && notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url || undefined; - options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/@${notification.account.acct}/${notification.status.id}` : `/@${notification.account.acct}` }; + options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id }; + + if (notification.status) { + options.data.url = `/@${notification.status.account.acct}/${notification.status.id}`; + } else { + options.data.url = `/@${notification.account.acct}`; + } if (notification.status && notification.status.spoiler_text || notification.status.sensitive) { options.data.hiddenBody = htmlToPlainText(notification.status.content); From f98e4c662e80ec10ecbf69e3780fd9d6a6cce907 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Feb 2023 10:16:47 +0100 Subject: [PATCH 0322/1220] Change link previews for statuses to never use avatar as fallback (#23376) --- app/views/statuses/_og_image.html.haml | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/views/statuses/_og_image.html.haml b/app/views/statuses/_og_image.html.haml index 5a647531ab..39f390fdf4 100644 --- a/app/views/statuses/_og_image.html.haml +++ b/app/views/statuses/_og_image.html.haml @@ -45,7 +45,4 @@ - else = opengraph 'twitter:card', 'summary_large_image' - else - = opengraph 'og:image', full_asset_url(account.avatar.url(:original)) - = opengraph 'og:image:width', '400' - = opengraph 'og:image:height','400' = opengraph 'twitter:card', 'summary' From 79ca19e9b2e701d98c80afd939a98c2a3ef74830 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Feb 2023 16:39:38 +0100 Subject: [PATCH 0323/1220] Bump version to 4.1.0rc3 (#23384) --- CHANGELOG.md | 13 ++++++++++++- lib/mastodon/version.rb | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a1ad4ffcf..578a4f32ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,8 +38,10 @@ All notable changes to this project will be documented in this file. - Add brotli compression to `assets:precompile` ([Izorkin](https://github.com/mastodon/mastodon/pull/19025)) - Add “disabled” account filter to the `/admin/accounts` UI ([tribela](https://github.com/mastodon/mastodon/pull/21282)) - Add transparency to modal background for accessibility ([edent](https://github.com/mastodon/mastodon/pull/18081)) +- Add `lang` attribute to image description textarea and poll option field ([c960657](https://github.com/mastodon/mastodon/pull/23293)) - Add `title` attribute to video elements in media attachments ([bramus](https://github.com/mastodon/mastodon/pull/21420)) - Add left and right margins to emojis ([dsblank](https://github.com/mastodon/mastodon/pull/20464)) +- Add `roles` attribute to `Account` entities in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23255)) - 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)) @@ -67,8 +69,13 @@ All notable changes to this project will be documented in this file. - Change confirm prompts for relationships management ([tribela](https://github.com/mastodon/mastodon/pull/19411)) - 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 `POST /settings/applications/:id` to regenerate token on scopes change ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23359)) - Change account moderation notes to make links clickable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22553)) +- Change link previews for statuses to never use avatar as fallback ([Gargron](https://github.com/mastodon/mastodon/pull/23376)) - 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)) +- Change notifications per page from 15 to 40 in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/23348)) +- Change number of stored items in home feed from 400 to 800 ([Gargron](https://github.com/mastodon/mastodon/pull/23349)) +- Change API rate limits from 300/5min per user to 1500/5min per user, 300/5min per app ([Gargron](https://github.com/mastodon/mastodon/pull/23347)) - 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)) @@ -88,7 +95,7 @@ All notable changes to this project will be documented in this file. - Allow adding relays in secure mode and limited federation mode ([ineffyble](https://github.com/mastodon/mastodon/pull/22324)) - Change timestamps to be displayed using the user's timezone throughout the moderation interface ([FrancisMurillo](https://github.com/mastodon/mastodon/pull/21878), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/22555)) - Change CSP directives on API to be tight and concise ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20960)) -- Change web UI to not autofocus the compose form ([raboof](https://github.com/mastodon/mastodon/pull/16517)) +- Change web UI to not autofocus the compose form ([raboof](https://github.com/mastodon/mastodon/pull/16517), [Akkiesoft](https://github.com/mastodon/mastodon/pull/23094)) - Change idempotency key handling for posting when database access is slow ([lambda](https://github.com/mastodon/mastodon/pull/21840)) - Change remote media files to be downloaded outside of transactions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21796)) - Improve contrast of charts in “poll has ended” notifications ([j-f1](https://github.com/mastodon/mastodon/pull/22575)) @@ -101,6 +108,7 @@ All notable changes to this project will be documented in this file. - Officially remove support for Ruby 2.6 ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21477)) - Remove `object-fit` polyfill used for old versions of Microsoft Edge ([shuuji3](https://github.com/mastodon/mastodon/pull/22693)) +- Remove `intersection-observer` polyfill for old Safari support ([shuuji3](https://github.com/mastodon/mastodon/pull/23284)) - Remove empty `title` tag from mailer layout ([nametoolong](https://github.com/mastodon/mastodon/pull/23078)) ### Fixed @@ -110,6 +118,7 @@ All notable changes to this project will be documented in this file. - 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 incorrect link in push notifications for some event types ([elizabeth-dev](https://github.com/mastodon/mastodon/pull/23286)) - 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)) @@ -126,6 +135,7 @@ All notable changes to this project will be documented in this file. - 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 unserialized `role` on account entities in admin API ([Gargron](https://github.com/mastodon/mastodon/pull/23290)) - 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)) @@ -150,6 +160,7 @@ All notable changes to this project will be documented in this file. - Fix crash when trying to fetch unobtainable avatar of user using external authentication ([lochiiconnectivity](https://github.com/mastodon/mastodon/pull/22462)) - Fix potential duplicate statuses in Explore tab ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22121)) - Fix deprecation warning in `tootctl accounts rotate` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22120)) +- Fix styling of featured tags in light theme ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23252)) - Fix missing style in warning and strike cards ([AtelierSnek](https://github.com/mastodon/mastodon/pull/22177), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/22302)) - Fix wasteful request to `/api/v1/custom_emojis` when not logged in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22326)) - Fix replies sometimes being delivered to user-blocked domains ([tribela](https://github.com/mastodon/mastodon/pull/22117)) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index cc20122c1d..6d3baeecc1 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -17,7 +17,7 @@ module Mastodon end def flags - 'rc2' + 'rc3' end def suffix From fb9c786baf844d7f9f5e2f3920aa80efd0673abe Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sun, 29 Jan 2023 19:00:19 +0100 Subject: [PATCH 0324/1220] [Glitch] Add lang attribute to image description textarea and poll option field Port 2a4f2216d65bd5ac90239d5b99c70f4330d76fde to glitch-soc Signed-off-by: Claire --- .../glitch/features/compose/components/poll_form.js | 9 ++++++--- .../features/compose/containers/poll_form_container.js | 1 + .../glitch/features/ui/components/focal_point_modal.js | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/features/compose/components/poll_form.js b/app/javascript/flavours/glitch/features/compose/components/poll_form.js index afb5da0977..2ab3c64ac9 100644 --- a/app/javascript/flavours/glitch/features/compose/components/poll_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/poll_form.js @@ -26,6 +26,7 @@ class Option extends React.PureComponent { static propTypes = { title: PropTypes.string.isRequired, + lang: PropTypes.string, index: PropTypes.number.isRequired, isPollMultiple: PropTypes.bool, autoFocus: PropTypes.bool, @@ -59,7 +60,7 @@ class Option extends React.PureComponent { } render () { - const { isPollMultiple, title, index, autoFocus, intl } = this.props; + const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props; return (
  • @@ -70,6 +71,7 @@ class Option extends React.PureComponent { placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })} maxLength={pollLimits.max_option_chars} value={title} + lang={lang} onChange={this.handleOptionTitleChange} suggestions={this.props.suggestions} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} @@ -95,6 +97,7 @@ class PollForm extends ImmutablePureComponent { static propTypes = { options: ImmutablePropTypes.list, + lang: PropTypes.string, expiresIn: PropTypes.number, isMultiple: PropTypes.bool, onChangeOption: PropTypes.func.isRequired, @@ -121,7 +124,7 @@ class PollForm extends ImmutablePureComponent { }; render () { - const { options, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl, ...other } = this.props; + const { options, lang, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl, ...other } = this.props; if (!options) { return null; @@ -132,7 +135,7 @@ class PollForm extends ImmutablePureComponent { return (
      - {options.map((title, i) =>
    ); - } + }; render () { const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, lang, children } = this.props; diff --git a/app/javascript/flavours/glitch/components/avatar.js b/app/javascript/flavours/glitch/components/avatar.js index 38fd99af59..f30b33e700 100644 --- a/app/javascript/flavours/glitch/components/avatar.js +++ b/app/javascript/flavours/glitch/components/avatar.js @@ -28,12 +28,12 @@ export default class Avatar extends React.PureComponent { handleMouseEnter = () => { if (this.props.animate) return; this.setState({ hovering: true }); - } + }; handleMouseLeave = () => { if (this.props.animate) return; this.setState({ hovering: false }); - } + }; render () { const { diff --git a/app/javascript/flavours/glitch/components/button.js b/app/javascript/flavours/glitch/components/button.js index b1815c3e19..40b8f5a159 100644 --- a/app/javascript/flavours/glitch/components/button.js +++ b/app/javascript/flavours/glitch/components/button.js @@ -19,11 +19,11 @@ export default class Button extends React.PureComponent { if (!this.props.disabled) { this.props.onClick(e); } - } + }; setRef = (c) => { this.node = c; - } + }; focus() { this.node.focus(); diff --git a/app/javascript/flavours/glitch/components/column.js b/app/javascript/flavours/glitch/components/column.js index cf0e6d5e40..47293ef18e 100644 --- a/app/javascript/flavours/glitch/components/column.js +++ b/app/javascript/flavours/glitch/components/column.js @@ -29,11 +29,11 @@ export default class Column extends React.PureComponent { } this._interruptScrollAnimation(); - } + }; setRef = c => { this.node = c; - } + }; componentDidMount () { if (this.props.bindToDocument) { diff --git a/app/javascript/flavours/glitch/components/column_back_button.js b/app/javascript/flavours/glitch/components/column_back_button.js index 05688f867d..e9e2615cbb 100644 --- a/app/javascript/flavours/glitch/components/column_back_button.js +++ b/app/javascript/flavours/glitch/components/column_back_button.js @@ -26,7 +26,7 @@ export default class ColumnBackButton extends React.PureComponent { } else { this.context.router.history.push('/'); } - } + }; render () { const { multiColumn } = this.props; diff --git a/app/javascript/flavours/glitch/components/column_back_button_slim.js b/app/javascript/flavours/glitch/components/column_back_button_slim.js index faa0c23a82..b43d85b3b0 100644 --- a/app/javascript/flavours/glitch/components/column_back_button_slim.js +++ b/app/javascript/flavours/glitch/components/column_back_button_slim.js @@ -21,7 +21,7 @@ export default class ColumnBackButtonSlim extends React.PureComponent { } else { this.context.router.history.push('/'); } - } + }; render () { return ( diff --git a/app/javascript/flavours/glitch/components/column_header.js b/app/javascript/flavours/glitch/components/column_header.js index 0f89b3a97b..3790960ddf 100644 --- a/app/javascript/flavours/glitch/components/column_header.js +++ b/app/javascript/flavours/glitch/components/column_header.js @@ -55,39 +55,39 @@ class ColumnHeader extends React.PureComponent { } else { this.context.router.history.push('/'); } - } + }; handleToggleClick = (e) => { e.stopPropagation(); this.setState({ collapsed: !this.state.collapsed, animating: true }); - } + }; handleTitleClick = () => { this.props.onClick?.(); - } + }; handleMoveLeft = () => { this.props.onMove(-1); - } + }; handleMoveRight = () => { this.props.onMove(1); - } + }; handleBackClick = (event) => { this.historyBack(event.shiftKey); - } + }; handleTransitionEnd = () => { this.setState({ animating: false }); - } + }; handlePin = () => { if (!this.props.pinned) { this.historyBack(); } this.props.onPin(); - } + }; render () { const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder, appendContent, collapseIssues } = this.props; diff --git a/app/javascript/flavours/glitch/components/dismissable_banner.js b/app/javascript/flavours/glitch/components/dismissable_banner.js index ff52a619d2..c4968ac3c2 100644 --- a/app/javascript/flavours/glitch/components/dismissable_banner.js +++ b/app/javascript/flavours/glitch/components/dismissable_banner.js @@ -24,7 +24,7 @@ class DismissableBanner extends React.PureComponent { handleDismiss = () => { const { id } = this.props; this.setState({ visible: false }, () => bannerSettings.set(id, true)); - } + }; render () { const { visible } = this.state; diff --git a/app/javascript/flavours/glitch/components/display_name.js b/app/javascript/flavours/glitch/components/display_name.js index 1c22975785..19f63ec60c 100644 --- a/app/javascript/flavours/glitch/components/display_name.js +++ b/app/javascript/flavours/glitch/components/display_name.js @@ -27,7 +27,7 @@ export default class DisplayName extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -40,7 +40,7 @@ export default class DisplayName extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; render() { const { account, className, inline, localDomain, others, onAccountClick } = this.props; @@ -74,7 +74,7 @@ export default class DisplayName extends React.PureComponent { )).reduce((prev, cur) => [prev, ', ', cur]); if (others.size - 2 > 0) { - displayName.push(` +${others.size - 2}`); + displayName.push(` +${others.size - 2}`); } suffix = ( diff --git a/app/javascript/flavours/glitch/components/domain.js b/app/javascript/flavours/glitch/components/domain.js index 697065d874..e09fa45910 100644 --- a/app/javascript/flavours/glitch/components/domain.js +++ b/app/javascript/flavours/glitch/components/domain.js @@ -19,7 +19,7 @@ class Account extends ImmutablePureComponent { handleDomainUnblock = () => { this.props.onUnblockDomain(this.props.domain); - } + }; render () { const { domain, intl } = this.props; diff --git a/app/javascript/flavours/glitch/components/dropdown_menu.js b/app/javascript/flavours/glitch/components/dropdown_menu.js index 7c70f750fd..f4b6e059fc 100644 --- a/app/javascript/flavours/glitch/components/dropdown_menu.js +++ b/app/javascript/flavours/glitch/components/dropdown_menu.js @@ -36,7 +36,7 @@ class DropdownMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -56,11 +56,11 @@ class DropdownMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; setFocusRef = c => { this.focusedItem = c; - } + }; handleKeyDown = e => { const items = Array.from(this.node.querySelectorAll('a, button')); @@ -97,18 +97,18 @@ class DropdownMenu extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleItemKeyPress = e => { if (e.key === 'Enter' || e.key === ' ') { this.handleClick(e); } - } + }; handleClick = e => { const { onItemClick } = this.props; onItemClick(e); - } + }; renderItem = (option, i) => { if (option === null) { @@ -124,7 +124,7 @@ class DropdownMenu extends React.PureComponent {
  • ); - } + }; render () { const { items, scrollable, renderHeader, loading } = this.props; @@ -194,7 +194,7 @@ export default class Dropdown extends React.PureComponent { } else { this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click'); } - } + }; handleClose = () => { if (this.activeElement) { @@ -202,13 +202,13 @@ export default class Dropdown extends React.PureComponent { this.activeElement = null; } this.props.onClose(this.state.id); - } + }; handleMouseDown = () => { if (!this.state.open) { this.activeElement = document.activeElement; } - } + }; handleButtonKeyDown = (e) => { switch(e.key) { @@ -217,7 +217,7 @@ export default class Dropdown extends React.PureComponent { this.handleMouseDown(); break; } - } + }; handleKeyPress = (e) => { switch(e.key) { @@ -228,7 +228,7 @@ export default class Dropdown extends React.PureComponent { e.preventDefault(); break; } - } + }; handleItemClick = e => { const { onItemClick } = this.props; @@ -247,25 +247,25 @@ export default class Dropdown extends React.PureComponent { e.preventDefault(); this.context.router.history.push(item.to); } - } + }; setTargetRef = c => { this.target = c; - } + }; findTarget = () => { return this.target; - } + }; componentWillUnmount = () => { if (this.state.id === this.props.openDropdownId) { this.handleClose(); } - } + }; close = () => { this.handleClose(); - } + }; render () { const { diff --git a/app/javascript/flavours/glitch/components/edited_timestamp/index.js b/app/javascript/flavours/glitch/components/edited_timestamp/index.js index 9648133aff..c973bda58f 100644 --- a/app/javascript/flavours/glitch/components/edited_timestamp/index.js +++ b/app/javascript/flavours/glitch/components/edited_timestamp/index.js @@ -36,7 +36,7 @@ class EditedTimestamp extends React.PureComponent { return ( ); - } + }; renderItem = (item, index, { onClick, onKeyPress }) => { const formattedDate = ; @@ -53,7 +53,7 @@ class EditedTimestamp extends React.PureComponent { ); - } + }; render () { const { timestamp, intl, statusId } = this.props; diff --git a/app/javascript/flavours/glitch/components/error_boundary.js b/app/javascript/flavours/glitch/components/error_boundary.js index e0ca3e2b05..8518dfc866 100644 --- a/app/javascript/flavours/glitch/components/error_boundary.js +++ b/app/javascript/flavours/glitch/components/error_boundary.js @@ -18,7 +18,7 @@ export default class ErrorBoundary extends React.PureComponent { stackTrace: undefined, mappedStackTrace: undefined, componentStack: undefined, - } + }; componentDidCatch(error, info) { this.setState({ diff --git a/app/javascript/flavours/glitch/components/gifv.js b/app/javascript/flavours/glitch/components/gifv.js index b775e52005..1f0f99b464 100644 --- a/app/javascript/flavours/glitch/components/gifv.js +++ b/app/javascript/flavours/glitch/components/gifv.js @@ -17,7 +17,7 @@ export default class GIFV extends React.PureComponent { handleLoadedData = () => { this.setState({ loading: false }); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.src !== this.props.src) { @@ -32,7 +32,7 @@ export default class GIFV extends React.PureComponent { e.stopPropagation(); onClick(); } - } + }; render () { const { src, width, height, alt } = this.props; diff --git a/app/javascript/flavours/glitch/components/icon_button.js b/app/javascript/flavours/glitch/components/icon_button.js index 2485f0f480..10d7926be5 100644 --- a/app/javascript/flavours/glitch/components/icon_button.js +++ b/app/javascript/flavours/glitch/components/icon_button.js @@ -46,7 +46,7 @@ export default class IconButton extends React.PureComponent { state = { activate: false, deactivate: false, - } + }; componentWillReceiveProps (nextProps) { if (!nextProps.animate) return; @@ -64,25 +64,25 @@ export default class IconButton extends React.PureComponent { if (!this.props.disabled) { this.props.onClick(e); } - } + }; handleKeyPress = (e) => { if (this.props.onKeyPress && !this.props.disabled) { this.props.onKeyPress(e); } - } + }; handleMouseDown = (e) => { if (!this.props.disabled && this.props.onMouseDown) { this.props.onMouseDown(e); } - } + }; handleKeyDown = (e) => { if (!this.props.disabled && this.props.onKeyDown) { this.props.onKeyDown(e); } - } + }; render () { // Hack required for some icons which have an overriden size diff --git a/app/javascript/flavours/glitch/components/intersection_observer_article.js b/app/javascript/flavours/glitch/components/intersection_observer_article.js index b28e44e4c6..77cd663587 100644 --- a/app/javascript/flavours/glitch/components/intersection_observer_article.js +++ b/app/javascript/flavours/glitch/components/intersection_observer_article.js @@ -21,7 +21,7 @@ export default class IntersectionObserverArticle extends React.Component { state = { isHidden: false, // set to true in requestIdleCallback to trigger un-render - } + }; shouldComponentUpdate (nextProps, nextState) { const isUnrendered = !this.state.isIntersecting && (this.state.isHidden || this.props.cachedHeight); @@ -63,7 +63,7 @@ export default class IntersectionObserverArticle extends React.Component { scheduleIdleTask(this.calculateHeight); this.setState(this.updateStateAfterIntersection); - } + }; updateStateAfterIntersection = (prevState) => { if (prevState.isIntersecting !== false && !this.entry.isIntersecting) { @@ -73,7 +73,7 @@ export default class IntersectionObserverArticle extends React.Component { isIntersecting: this.entry.isIntersecting, isHidden: false, }; - } + }; calculateHeight = () => { const { onHeightChange, saveHeightKey, id } = this.props; @@ -84,7 +84,7 @@ export default class IntersectionObserverArticle extends React.Component { if (onHeightChange && saveHeightKey) { onHeightChange(saveHeightKey, id, this.height); } - } + }; hideIfNotIntersecting = () => { if (!this.componentMounted) { @@ -96,11 +96,11 @@ export default class IntersectionObserverArticle extends React.Component { // this is to save DOM nodes and avoid using up too much memory. // See: https://github.com/mastodon/mastodon/issues/2900 this.setState((prevState) => ({ isHidden: !prevState.isIntersecting })); - } + }; handleRef = (node) => { this.node = node; - } + }; render () { const { children, id, index, listLength, cachedHeight } = this.props; @@ -121,8 +121,9 @@ export default class IntersectionObserverArticle extends React.Component { aria-setsize={listLength} data-id={id} tabIndex='0' - style={style}> - {children && React.cloneElement(children, { hidden: !isIntersecting && (isHidden || !!cachedHeight) })} + style={style} + > + {children && React.cloneElement(children, { hidden: !isIntersecting && (isHidden || !!cachedHeight) })} ); } diff --git a/app/javascript/flavours/glitch/components/load_gap.js b/app/javascript/flavours/glitch/components/load_gap.js index fe3f60a585..6ed9a38c63 100644 --- a/app/javascript/flavours/glitch/components/load_gap.js +++ b/app/javascript/flavours/glitch/components/load_gap.js @@ -19,7 +19,7 @@ class LoadGap extends React.PureComponent { handleClick = () => { this.props.onClick(this.props.maxId); - } + }; render () { const { disabled, intl } = this.props; diff --git a/app/javascript/flavours/glitch/components/load_more.js b/app/javascript/flavours/glitch/components/load_more.js index 389c3e1e11..ab9428e35a 100644 --- a/app/javascript/flavours/glitch/components/load_more.js +++ b/app/javascript/flavours/glitch/components/load_more.js @@ -8,11 +8,11 @@ export default class LoadMore extends React.PureComponent { onClick: PropTypes.func, disabled: PropTypes.bool, visible: PropTypes.bool, - } + }; static defaultProps = { visible: true, - } + }; render() { const { disabled, visible } = this.props; diff --git a/app/javascript/flavours/glitch/components/load_pending.js b/app/javascript/flavours/glitch/components/load_pending.js index 7e27024036..a75259146a 100644 --- a/app/javascript/flavours/glitch/components/load_pending.js +++ b/app/javascript/flavours/glitch/components/load_pending.js @@ -7,7 +7,7 @@ export default class LoadPending extends React.PureComponent { static propTypes = { onClick: PropTypes.func, count: PropTypes.number, - } + }; render() { const { count } = this.props; diff --git a/app/javascript/flavours/glitch/components/media_attachments.js b/app/javascript/flavours/glitch/components/media_attachments.js index a517fcf300..33f01bb5a0 100644 --- a/app/javascript/flavours/glitch/components/media_attachments.js +++ b/app/javascript/flavours/glitch/components/media_attachments.js @@ -30,7 +30,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; renderLoadingVideoPlayer = () => { const { height, width } = this.props; @@ -38,7 +38,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; renderLoadingAudioPlayer = () => { const { height, width } = this.props; @@ -46,7 +46,7 @@ export default class MediaAttachments extends ImmutablePureComponent { return (
    ); - } + }; render () { const { status, width, height, revealed } = this.props; diff --git a/app/javascript/flavours/glitch/components/media_gallery.js b/app/javascript/flavours/glitch/components/media_gallery.js index 23e279589a..c11ac46c24 100644 --- a/app/javascript/flavours/glitch/components/media_gallery.js +++ b/app/javascript/flavours/glitch/components/media_gallery.js @@ -60,14 +60,14 @@ class Item extends React.PureComponent { if (this.hoverToPlay()) { e.target.play(); } - } + }; handleMouseLeave = (e) => { if (this.hoverToPlay()) { e.target.pause(); e.target.currentTime = 0; } - } + }; getAutoPlay() { return this.props.autoplay || autoPlayGif; @@ -91,11 +91,11 @@ class Item extends React.PureComponent { } e.stopPropagation(); - } + }; handleImageLoad = () => { this.setState({ loaded: true }); - } + }; render () { const { attachment, index, size, standalone, letterbox, displayWidth, visible } = this.props; @@ -307,11 +307,11 @@ class MediaGallery extends React.PureComponent { } else { this.setState({ visible: !this.state.visible }); } - } + }; handleClick = (index) => { this.props.onOpenMedia(this.props.media, index); - } + }; handleRef = (node) => { this.node = node; @@ -319,11 +319,11 @@ class MediaGallery extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.node.offsetWidth; - + if (width && width != this.state.width) { // offsetWidth triggers a layout, so only calculate when we need to if (this.props.cacheWidth) { @@ -360,7 +360,7 @@ class MediaGallery extends React.PureComponent { } else if (width) { style.height = width / (16/9); } else { - return (
    ); + return (
    ); } if (this.isStandaloneEligible()) { diff --git a/app/javascript/flavours/glitch/components/modal_root.js b/app/javascript/flavours/glitch/components/modal_root.js index 056277447a..5a5563e873 100644 --- a/app/javascript/flavours/glitch/components/modal_root.js +++ b/app/javascript/flavours/glitch/components/modal_root.js @@ -5,6 +5,7 @@ import { createBrowserHistory } from 'history'; import { multiply } from 'color-blend'; export default class ModalRoot extends React.PureComponent { + static contextTypes = { router: PropTypes.object, }; @@ -28,7 +29,7 @@ export default class ModalRoot extends React.PureComponent { && !!this.props.children && !this.props.noEsc) { this.props.onClose(); } - } + }; handleKeyDown = (e) => { if (e.key === 'Tab') { @@ -49,7 +50,7 @@ export default class ModalRoot extends React.PureComponent { e.preventDefault(); } } - } + }; componentDidMount () { window.addEventListener('keyup', this.handleKeyUp, false); @@ -125,11 +126,11 @@ export default class ModalRoot extends React.PureComponent { getSiblings = () => { return Array(...this.node.parentElement.childNodes).filter(node => node !== this.node); - } + }; setRef = ref => { this.node = ref; - } + }; render () { const { children, onClose } = this.props; diff --git a/app/javascript/flavours/glitch/components/permalink.js b/app/javascript/flavours/glitch/components/permalink.js index 718b021150..b09b17eeb4 100644 --- a/app/javascript/flavours/glitch/components/permalink.js +++ b/app/javascript/flavours/glitch/components/permalink.js @@ -24,12 +24,12 @@ export default class Permalink extends React.PureComponent { if (this.context.router) { e.preventDefault(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(this.props.to, state); } } - } + }; render () { const { diff --git a/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js b/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js index 01dce0a383..8bfdf343cf 100644 --- a/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js +++ b/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js @@ -22,7 +22,7 @@ class PictureInPicturePlaceholder extends React.PureComponent { handleClick = () => { const { dispatch } = this.props; dispatch(removePictureInPicture()); - } + }; setRef = c => { this.node = c; @@ -30,7 +30,7 @@ class PictureInPicturePlaceholder extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.node.offsetWidth; diff --git a/app/javascript/flavours/glitch/components/poll.js b/app/javascript/flavours/glitch/components/poll.js index da65cd2415..53ece560e7 100644 --- a/app/javascript/flavours/glitch/components/poll.js +++ b/app/javascript/flavours/glitch/components/poll.js @@ -95,7 +95,7 @@ class Poll extends ImmutablePureComponent { tmp[value] = true; this.setState({ selected: tmp }); } - } + }; handleOptionChange = ({ target: { value } }) => { this._toggleOption(value); @@ -107,7 +107,7 @@ class Poll extends ImmutablePureComponent { e.stopPropagation(); e.preventDefault(); } - } + }; handleVote = () => { if (this.props.disabled) { diff --git a/app/javascript/flavours/glitch/components/scrollable_list.js b/app/javascript/flavours/glitch/components/scrollable_list.js index 8eb2b66d43..ae1ba3037a 100644 --- a/app/javascript/flavours/glitch/components/scrollable_list.js +++ b/app/javascript/flavours/glitch/components/scrollable_list.js @@ -137,7 +137,7 @@ class ScrollableList extends PureComponent { } this.mouseMovedRecently = false; this.scrollToTopOnMouseIdle = false; - } + }; componentDidMount () { this.attachScrollListener(); @@ -154,29 +154,29 @@ class ScrollableList extends PureComponent { } else { return null; } - } + }; getScrollTop = () => { return this.props.bindToDocument ? document.scrollingElement.scrollTop : this.node.scrollTop; - } + }; getScrollHeight = () => { return this.props.bindToDocument ? document.scrollingElement.scrollHeight : this.node.scrollHeight; - } + }; getClientHeight = () => { return this.props.bindToDocument ? document.scrollingElement.clientHeight : this.node.clientHeight; - } + }; updateScrollBottom = (snapshot) => { const newScrollTop = this.getScrollHeight() - snapshot; this.setScrollTop(newScrollTop); - } + }; cacheMediaWidth = (width) => { if (width && this.state.cachedMediaWidth != width) this.setState({ cachedMediaWidth: width }); - } + }; getSnapshotBeforeUpdate (prevProps, prevState) { const someItemInserted = React.Children.count(prevProps.children) > 0 && @@ -208,7 +208,7 @@ class ScrollableList extends PureComponent { onFullScreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; attachIntersectionObserver () { this.intersectionObserverWrapper.connect({ @@ -256,12 +256,12 @@ class ScrollableList extends PureComponent { setRef = (c) => { this.node = c; - } + }; handleLoadMore = e => { e.preventDefault(); this.props.onLoadMore(); - } + }; handleLoadPending = e => { e.preventDefault(); @@ -273,7 +273,7 @@ class ScrollableList extends PureComponent { this.clearMouseIdleTimer(); this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY); this.mouseMovedRecently = true; - } + }; render () { const { children, scrollKey, trackScroll, showLoading, isLoading, hasMore, numPending, prepend, alwaysPrepend, append, emptyMessage, onLoadMore } = this.props; diff --git a/app/javascript/flavours/glitch/components/setting_text.js b/app/javascript/flavours/glitch/components/setting_text.js index 2c1b70bc34..3a21a06018 100644 --- a/app/javascript/flavours/glitch/components/setting_text.js +++ b/app/javascript/flavours/glitch/components/setting_text.js @@ -13,7 +13,7 @@ export default class SettingText extends React.PureComponent { handleChange = (e) => { this.props.onChange(this.props.settingPath, e.target.value); - } + }; render () { const { settings, settingPath, label } = this.props; diff --git a/app/javascript/flavours/glitch/components/spoilers.js b/app/javascript/flavours/glitch/components/spoilers.js index 8527403c16..75e4ec3a1a 100644 --- a/app/javascript/flavours/glitch/components/spoilers.js +++ b/app/javascript/flavours/glitch/components/spoilers.js @@ -4,6 +4,7 @@ import { FormattedMessage } from 'react-intl'; export default class Spoilers extends React.PureComponent { + static propTypes = { spoilerText: PropTypes.string, children: PropTypes.node, @@ -11,27 +12,27 @@ class Spoilers extends React.PureComponent { state = { hidden: true, - } + }; handleSpoilerClick = () => { this.setState({ hidden: !this.state.hidden }); - } + }; render () { const { spoilerText, children } = this.props; const { hidden } = this.state; - const toggleText = hidden ? - : - ; + const toggleText = hidden ? + () : + (); return ([

    @@ -43,8 +44,9 @@ class Spoilers extends React.PureComponent {

    ,
    {children} -
    +
    , ]); } + } diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index cbd8eb31cd..34880efe41 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -54,7 +54,7 @@ export const defaultMediaVisibility = (status, settings) => { } return (displayMedia !== 'hide_all' && !status.get('sensitive') || displayMedia === 'show_all'); -} +}; export default @injectIntl class Status extends ImmutablePureComponent { @@ -117,7 +117,7 @@ class Status extends ImmutablePureComponent { revealBehindCW: undefined, showCard: false, forceFilter: undefined, - } + }; // Avoid checking props that are functions (and whose equality will always // evaluate to false. See react-immutable-pure-component for usage. @@ -132,14 +132,14 @@ class Status extends ImmutablePureComponent { 'expanded', 'unread', 'pictureInPicture', - ] + ]; updateOnStates = [ 'isExpanded', 'isCollapsed', 'showMedia', 'forceFilter', - ] + ]; // If our settings have changed to disable collapsed statuses, then we // need to make sure that we uncollapse every one. We do that by watching @@ -302,7 +302,9 @@ class Status extends ImmutablePureComponent { if (this.node && this.props.getScrollPosition) { const position = this.props.getScrollPosition(); if (position !== null && this.node.offsetTop < position.top) { - requestAnimationFrame(() => { this.props.updateScrollBottom(position.height - position.top); }); + requestAnimationFrame(() => { + this.props.updateScrollBottom(position.height - position.top); + }); } } } @@ -321,7 +323,7 @@ class Status extends ImmutablePureComponent { } else { this.setState({ isCollapsed: false }); } - } + }; setExpansion = (value) => { if (this.props.settings.getIn(['content_warnings', 'shared_state']) && this.props.status.get('hidden') === value) { @@ -332,7 +334,7 @@ class Status extends ImmutablePureComponent { if (value) { this.setCollapsed(false); } - } + }; // `parseClick()` takes a click event and responds appropriately. // If our status is collapsed, then clicking on it should uncollapse it. @@ -361,17 +363,17 @@ class Status extends ImmutablePureComponent { status.getIn(['reblog', 'id'], status.get('id')) }`; } - let state = {...router.history.location.state}; + let state = { ...router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; router.history.push(destination, state); } e.preventDefault(); } - } + }; handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); - } + }; handleExpandedToggle = () => { if (this.props.settings.getIn(['content_warnings', 'shared_state'])) { @@ -384,11 +386,11 @@ class Status extends ImmutablePureComponent { handleOpenVideo = (options) => { const { status } = this.props; this.props.onOpenVideo(status.get('id'), status.getIn(['media_attachments', 0]), options); - } + }; handleOpenMedia = (media, index) => { this.props.onOpenMedia(this.props.status.get('id'), media, index); - } + }; handleHotkeyOpenMedia = e => { const { status, onOpenMedia, onOpenVideo } = this.props; @@ -403,84 +405,84 @@ class Status extends ImmutablePureComponent { onOpenMedia(statusId, status.get('media_attachments'), 0); } } - } + }; handleDeployPictureInPicture = (type, mediaProps) => { const { deployPictureInPicture, status } = this.props; deployPictureInPicture(status, type, mediaProps); - } + }; handleHotkeyReply = e => { e.preventDefault(); this.props.onReply(this.props.status, this.context.router.history); - } + }; handleHotkeyFavourite = (e) => { this.props.onFavourite(this.props.status, e); - } + }; handleHotkeyBoost = e => { this.props.onReblog(this.props.status, e); - } + }; handleHotkeyBookmark = e => { this.props.onBookmark(this.props.status, e); - } + }; handleHotkeyMention = e => { e.preventDefault(); this.props.onMention(this.props.status.get('account'), this.context.router.history); - } + }; handleHotkeyOpen = () => { - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; const status = this.props.status; this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`, state); - } + }; handleHotkeyOpenProfile = () => { - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`, state); - } + }; handleHotkeyMoveUp = e => { this.props.onMoveUp(this.props.containerId || this.props.id, e.target.getAttribute('data-featured')); - } + }; handleHotkeyMoveDown = e => { this.props.onMoveDown(this.props.containerId || this.props.id, e.target.getAttribute('data-featured')); - } + }; handleHotkeyCollapse = e => { if (!this.props.settings.getIn(['collapsed', 'enabled'])) return; this.setCollapsed(!this.state.isCollapsed); - } + }; handleHotkeyToggleSensitive = () => { this.handleToggleMediaVisibility(); - } + }; handleUnfilterClick = e => { this.setState({ forceFilter: false }); e.preventDefault(); - } + }; handleFilterClick = () => { this.setState({ forceFilter: true }); - } + }; handleRef = c => { this.node = c; - } + }; handleTranslate = () => { this.props.onTranslate(this.props.status); - } + }; renderLoadingMediaGallery () { return
    ; diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js index baf61000a3..02c5442b58 100644 --- a/app/javascript/flavours/glitch/components/status_action_bar.js +++ b/app/javascript/flavours/glitch/components/status_action_bar.js @@ -86,7 +86,7 @@ class StatusActionBar extends ImmutablePureComponent { 'showReplyCount', 'withCounters', 'withDismiss', - ] + ]; handleReplyClick = () => { const { signedIn } = this.context.identity; @@ -96,14 +96,14 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('reply', this.props.status); } - } + }; handleShareClick = () => { navigator.share({ text: this.props.status.get('search_index'), url: this.props.status.get('url'), }); - } + }; handleFavouriteClick = (e) => { const { signedIn } = this.context.identity; @@ -113,7 +113,7 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('favourite', this.props.status); } - } + }; handleReblogClick = e => { const { signedIn } = this.context.identity; @@ -123,78 +123,78 @@ class StatusActionBar extends ImmutablePureComponent { } else { this.props.onInteractionModal('reblog', this.props.status); } - } + }; handleBookmarkClick = (e) => { this.props.onBookmark(this.props.status, e); - } + }; handleDeleteClick = () => { this.props.onDelete(this.props.status, this.context.router.history); - } + }; handleRedraftClick = () => { this.props.onDelete(this.props.status, this.context.router.history, true); - } + }; handleEditClick = () => { this.props.onEdit(this.props.status, this.context.router.history); - } + }; handlePinClick = () => { this.props.onPin(this.props.status); - } + }; handleMentionClick = () => { this.props.onMention(this.props.status.get('account'), this.context.router.history); - } + }; handleDirectClick = () => { this.props.onDirect(this.props.status.get('account'), this.context.router.history); - } + }; handleMuteClick = () => { this.props.onMute(this.props.status.get('account')); - } + }; handleBlockClick = () => { this.props.onBlock(this.props.status); - } + }; handleOpen = () => { - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; if (state.mastodonModalKey) { this.context.router.history.replace(`/@${this.props.status.getIn(['account', 'acct'])}/${this.props.status.get('id')}`, { mastodonBackSteps: (state.mastodonBackSteps || 0) + 1 }); } else { state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}/${this.props.status.get('id')}`, state); } - } + }; handleEmbed = () => { this.props.onEmbed(this.props.status); - } + }; handleReport = () => { this.props.onReport(this.props.status); - } + }; handleConversationMuteClick = () => { this.props.onMuteConversation(this.props.status); - } + }; handleCopy = () => { const url = this.props.status.get('url'); navigator.clipboard.writeText(url); - } + }; handleHideClick = () => { this.props.onFilter(); - } + }; handleFilterClick = () => { this.props.onAddFilter(this.props.status); - } + }; render () { const { status, intl, withDismiss, withCounters, showReplyCount, scrollKey } = this.props; diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js index c59f42220c..790a5c6591 100644 --- a/app/javascript/flavours/glitch/components/status_content.js +++ b/app/javascript/flavours/glitch/components/status_content.js @@ -12,7 +12,7 @@ const textMatchesTarget = (text, origin, host) => { return (text === origin || text === host || text.startsWith(origin + '/') || text.startsWith(host + '/') || 'www.' + text === host || ('www.' + text).startsWith(host + '/')); -} +}; const isLinkMisleading = (link) => { let linkTextParts = []; @@ -168,8 +168,8 @@ class StatusContent extends React.PureComponent { link.setAttribute('title', link.href); link.classList.add('unhandled-link'); - link.setAttribute('target', '_blank'); - link.setAttribute('rel', 'noopener nofollow noreferrer'); + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener nofollow noreferrer'); try { if (tagLinks && isLinkMisleading(link)) { @@ -210,7 +210,7 @@ class StatusContent extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -223,7 +223,7 @@ class StatusContent extends React.PureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; componentDidMount () { this._updateStatusLinks(); @@ -238,13 +238,13 @@ class StatusContent extends React.PureComponent { if (this.props.collapsed) { if (this.props.parseClick) this.props.parseClick(e); } - } + }; onMentionClick = (mention, e) => { if (this.props.parseClick) { this.props.parseClick(e, `/@${mention.get('acct')}`); } - } + }; onHashtagClick = (hashtag, e) => { hashtag = hashtag.replace(/^#/, ''); @@ -252,11 +252,11 @@ class StatusContent extends React.PureComponent { if (this.props.parseClick) { this.props.parseClick(e, `/tags/${hashtag}`); } - } + }; handleMouseDown = (e) => { this.startXY = [e.clientX, e.clientY]; - } + }; handleMouseUp = (e) => { const { parseClick, disabled } = this.props; @@ -281,7 +281,7 @@ class StatusContent extends React.PureComponent { } this.startXY = null; - } + }; handleSpoilerClick = (e) => { e.preventDefault(); @@ -291,15 +291,15 @@ class StatusContent extends React.PureComponent { } else { this.setState({ hidden: !this.state.hidden }); } - } + }; handleTranslate = () => { this.props.onTranslate(); - } + }; setContentsRef = (c) => { this.contentsNode = c; - } + }; render () { const { diff --git a/app/javascript/flavours/glitch/components/status_header.js b/app/javascript/flavours/glitch/components/status_header.js index 990dea5362..21d8b42128 100644 --- a/app/javascript/flavours/glitch/components/status_header.js +++ b/app/javascript/flavours/glitch/components/status_header.js @@ -21,12 +21,12 @@ export default class StatusHeader extends React.PureComponent { handleClick = (acct, e) => { const { parseClick } = this.props; parseClick(e, `/@${acct}`); - } + }; handleAccountClick = (e) => { const { status } = this.props; this.handleClick(status.getIn(['account', 'acct']), e); - } + }; // Rendering. render () { diff --git a/app/javascript/flavours/glitch/components/status_icons.js b/app/javascript/flavours/glitch/components/status_icons.js index 71ffb2e569..c4cb42741b 100644 --- a/app/javascript/flavours/glitch/components/status_icons.js +++ b/app/javascript/flavours/glitch/components/status_icons.js @@ -60,22 +60,22 @@ class StatusIcons extends React.PureComponent { setCollapsed(!collapsed); e.preventDefault(); } - } + }; mediaIconTitleText (mediaIcon) { const { intl } = this.props; switch (mediaIcon) { - case 'link': - return intl.formatMessage(messages.previewCard); - case 'picture-o': - return intl.formatMessage(messages.pictures); - case 'tasks': - return intl.formatMessage(messages.poll); - case 'video-camera': - return intl.formatMessage(messages.video); - case 'music': - return intl.formatMessage(messages.audio); + case 'link': + return intl.formatMessage(messages.previewCard); + case 'picture-o': + return intl.formatMessage(messages.pictures); + case 'tasks': + return intl.formatMessage(messages.poll); + case 'video-camera': + return intl.formatMessage(messages.video); + case 'music': + return intl.formatMessage(messages.audio); } } diff --git a/app/javascript/flavours/glitch/components/status_list.js b/app/javascript/flavours/glitch/components/status_list.js index 0d843a27dd..a9c06f6932 100644 --- a/app/javascript/flavours/glitch/components/status_list.js +++ b/app/javascript/flavours/glitch/components/status_list.js @@ -35,7 +35,7 @@ export default class StatusList extends ImmutablePureComponent { getFeaturedStatusCount = () => { return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0; - } + }; getCurrentStatusIndex = (id, featured) => { if (featured) { @@ -43,21 +43,21 @@ export default class StatusList extends ImmutablePureComponent { } else { return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount(); } - } + }; handleMoveUp = (id, featured) => { const elementIndex = this.getCurrentStatusIndex(id, featured) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = (id, featured) => { const elementIndex = this.getCurrentStatusIndex(id, featured) + 1; this._selectChild(elementIndex, false); - } + }; handleLoadOlder = debounce(() => { this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined); - }, 300, { leading: true }) + }, 300, { leading: true }); _selectChild (index, align_top) { const container = this.node.node; @@ -75,7 +75,7 @@ export default class StatusList extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; render () { const { statusIds, featuredStatusIds, onLoadMore, timelineId, ...other } = this.props; diff --git a/app/javascript/flavours/glitch/components/status_prepend.js b/app/javascript/flavours/glitch/components/status_prepend.js index f825330621..8c4343b040 100644 --- a/app/javascript/flavours/glitch/components/status_prepend.js +++ b/app/javascript/flavours/glitch/components/status_prepend.js @@ -18,7 +18,7 @@ export default class StatusPrepend extends React.PureComponent { handleClick = (e) => { const { account, parseClick } = this.props; parseClick(e, `/@${account.get('acct')}`); - } + }; Message = () => { const { type, account } = this.props; @@ -98,7 +98,7 @@ export default class StatusPrepend extends React.PureComponent { ); } return null; - } + }; render () { const { Message } = this; @@ -126,7 +126,7 @@ export default class StatusPrepend extends React.PureComponent { case 'update': iconId = 'pencil'; break; - }; + } return !type ? null : (
    diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js index 963ce7bf3f..c11a472e75 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.js +++ b/app/javascript/flavours/glitch/features/account/components/header.js @@ -109,7 +109,7 @@ class Header extends ImmutablePureComponent { openEditProfile = () => { window.open(profileLink, '_blank'); - } + }; handleMouseEnter = ({ currentTarget }) => { if (autoPlayGif) { @@ -122,7 +122,7 @@ class Header extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -135,14 +135,14 @@ class Header extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleAvatarClick = e => { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); this.props.onOpenAvatar(); } - } + }; handleShare = () => { const { account } = this.props; @@ -153,7 +153,7 @@ class Header extends ImmutablePureComponent { }).catch((e) => { if (e.name !== 'AbortError') console.error(e); }); - } + }; render () { const { account, hidden, intl, domain } = this.props; @@ -177,8 +177,7 @@ class Header extends ImmutablePureComponent { if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) { info.push(); - } - else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) { + } else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) { info.push(); } @@ -378,7 +377,7 @@ class Header extends ImmutablePureComponent { {fields.map((pair, i) => (
    - +
    {pair.get('verified_at') && }
    diff --git a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js index f20ee685e5..d169875b01 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js +++ b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js @@ -22,20 +22,20 @@ export default class MediaItem extends ImmutablePureComponent { handleImageLoad = () => { this.setState({ loaded: true }); - } + }; handleMouseEnter = e => { if (this.hoverToPlay()) { e.target.play(); } - } + }; handleMouseLeave = e => { if (this.hoverToPlay()) { e.target.pause(); e.target.currentTime = 0; } - } + }; hoverToPlay () { return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1; @@ -51,7 +51,7 @@ export default class MediaItem extends ImmutablePureComponent { this.setState({ visible: true }); } } - } + }; render () { const { attachment, displayWidth } = this.props; diff --git a/app/javascript/flavours/glitch/features/account_gallery/index.js b/app/javascript/flavours/glitch/features/account_gallery/index.js index 638224bc02..afd6e5161c 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/index.js +++ b/app/javascript/flavours/glitch/features/account_gallery/index.js @@ -45,7 +45,7 @@ class LoadMoreMedia extends ImmutablePureComponent { handleLoadMore = () => { this.props.onLoadMore(this.props.maxId); - } + }; render () { return ( @@ -109,13 +109,13 @@ class AccountGallery extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; handleScrollToBottom = () => { if (this.props.hasMore) { this.handleLoadMore(this.props.attachments.size > 0 ? this.props.attachments.last().getIn(['status', 'id']) : undefined); } - } + }; handleScroll = e => { const { scrollTop, scrollHeight, clientHeight } = e.target; @@ -124,7 +124,7 @@ class AccountGallery extends ImmutablePureComponent { if (150 > offset && !this.props.isLoading) { this.handleScrollToBottom(); } - } + }; handleLoadMore = maxId => { this.props.dispatch(expandAccountMediaTimeline(this.props.accountId, { maxId })); @@ -133,11 +133,11 @@ class AccountGallery extends ImmutablePureComponent { handleLoadOlder = e => { e.preventDefault(); this.handleScrollToBottom(); - } + }; setColumnRef = c => { this.column = c; - } + }; handleOpenMedia = attachment => { const { dispatch } = this.props; @@ -153,13 +153,13 @@ class AccountGallery extends ImmutablePureComponent { dispatch(openModal('MEDIA', { media, index, statusId })); } - } + }; handleRef = c => { if (c) { this.setState({ width: c.offsetWidth }); } - } + }; render () { const { attachments, isLoading, hasMore, isAccount, multiColumn, suspended } = this.props; diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/header.js b/app/javascript/flavours/glitch/features/account_timeline/components/header.js index 90c4c9d513..eec065b437 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/components/header.js +++ b/app/javascript/flavours/glitch/features/account_timeline/components/header.js @@ -37,35 +37,35 @@ export default class Header extends ImmutablePureComponent { handleFollow = () => { this.props.onFollow(this.props.account); - } + }; handleBlock = () => { this.props.onBlock(this.props.account); - } + }; handleMention = () => { this.props.onMention(this.props.account, this.context.router.history); - } + }; handleDirect = () => { this.props.onDirect(this.props.account, this.context.router.history); - } + }; handleReport = () => { this.props.onReport(this.props.account); - } + }; handleReblogToggle = () => { this.props.onReblogToggle(this.props.account); - } + }; handleNotifyToggle = () => { this.props.onNotifyToggle(this.props.account); - } + }; handleMute = () => { this.props.onMute(this.props.account); - } + }; handleBlockDomain = () => { const domain = this.props.account.get('acct').split('@')[1]; @@ -73,7 +73,7 @@ export default class Header extends ImmutablePureComponent { if (!domain) return; this.props.onBlockDomain(domain); - } + }; handleUnblockDomain = () => { const domain = this.props.account.get('acct').split('@')[1]; @@ -81,31 +81,31 @@ export default class Header extends ImmutablePureComponent { if (!domain) return; this.props.onUnblockDomain(domain); - } + }; handleEndorseToggle = () => { this.props.onEndorseToggle(this.props.account); - } + }; handleAddToList = () => { this.props.onAddToList(this.props.account); - } + }; handleEditAccountNote = () => { this.props.onEditAccountNote(this.props.account); - } + }; handleChangeLanguages = () => { this.props.onChangeLanguages(this.props.account); - } + }; handleInteractionModal = () => { this.props.onInteractionModal(this.props.account); - } + }; handleOpenAvatar = () => { this.props.onOpenAvatar(this.props.account); - } + }; render () { const { account, hidden, hideTabs } = this.props; diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js b/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js index ca0e60672b..dc2b3e3e61 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js +++ b/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js @@ -20,7 +20,7 @@ class LimitedAccountHint extends React.PureComponent { static propTypes = { accountId: PropTypes.string.isRequired, reveal: PropTypes.func, - } + }; render () { const { reveal } = this.props; diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js b/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js index 308407e944..40bdc4034e 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js +++ b/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js @@ -21,13 +21,13 @@ export default class MovedNote extends ImmutablePureComponent { handleAccountClick = e => { if (e.button === 0) { e.preventDefault(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.to.get('acct')}`, state); } e.stopPropagation(); - } + }; render () { const { from, to } = this.props; diff --git a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js index 25bcd01190..3ec47cf2fd 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js +++ b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js @@ -12,7 +12,7 @@ import { } from 'flavours/glitch/actions/accounts'; import { mentionCompose, - directCompose + directCompose, } from 'flavours/glitch/actions/compose'; import { initMuteModal } from 'flavours/glitch/actions/mutes'; import { initBlockModal } from 'flavours/glitch/actions/blocks'; diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.js b/app/javascript/flavours/glitch/features/account_timeline/index.js index b79082f00a..9151c1990e 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/index.js +++ b/app/javascript/flavours/glitch/features/account_timeline/index.js @@ -140,15 +140,15 @@ class AccountTimeline extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; handleLoadMore = maxId => { this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); - } + }; setRef = c => { this.column = c; - } + }; render () { const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; diff --git a/app/javascript/flavours/glitch/features/audio/index.js b/app/javascript/flavours/glitch/features/audio/index.js index 3a0d491009..1a1d438c0c 100644 --- a/app/javascript/flavours/glitch/features/audio/index.js +++ b/app/javascript/flavours/glitch/features/audio/index.js @@ -75,7 +75,7 @@ class Audio extends React.PureComponent { if (this.player) { this._setDimensions(); } - } + }; _pack() { return { @@ -107,11 +107,11 @@ class Audio extends React.PureComponent { setSeekRef = c => { this.seek = c; - } + }; setVolumeRef = c => { this.volume = c; - } + }; setAudioRef = c => { this.audio = c; @@ -120,14 +120,14 @@ class Audio extends React.PureComponent { this.audio.volume = 1; this.audio.muted = false; } - } + }; setCanvasRef = c => { this.canvas = c; this.visualizer.setCanvas(c); - } - + }; + componentDidMount () { window.addEventListener('scroll', this.handleScroll); window.addEventListener('resize', this.handleResize, { passive: true }); @@ -169,7 +169,7 @@ class Audio extends React.PureComponent { } else { this.setState({ paused: true }, () => this.audio.pause()); } - } + }; handleResize = debounce(() => { if (this.player) { @@ -187,7 +187,7 @@ class Audio extends React.PureComponent { } this._renderCanvas(); - } + }; handlePause = () => { this.setState({ paused: true }); @@ -195,7 +195,7 @@ class Audio extends React.PureComponent { if (this.audioContext) { this.audioContext.suspend(); } - } + }; handleProgress = () => { const lastTimeRange = this.audio.buffered.length - 1; @@ -203,7 +203,7 @@ class Audio extends React.PureComponent { if (lastTimeRange > -1) { this.setState({ buffer: Math.ceil(this.audio.buffered.end(lastTimeRange) / this.audio.duration * 100) }); } - } + }; toggleMute = () => { const muted = !this.state.muted; @@ -213,7 +213,7 @@ class Audio extends React.PureComponent { this.gainNode.gain.value = muted ? 0 : this.state.volume; } }); - } + }; toggleReveal = () => { if (this.props.onToggleVisibility) { @@ -221,7 +221,7 @@ class Audio extends React.PureComponent { } else { this.setState({ revealed: !this.state.revealed }); } - } + }; handleVolumeMouseDown = e => { document.addEventListener('mousemove', this.handleMouseVolSlide, true); @@ -233,14 +233,14 @@ class Audio extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleVolumeMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseVolSlide, true); document.removeEventListener('mouseup', this.handleVolumeMouseUp, true); document.removeEventListener('touchmove', this.handleMouseVolSlide, true); document.removeEventListener('touchend', this.handleVolumeMouseUp, true); - } + }; handleMouseDown = e => { document.addEventListener('mousemove', this.handleMouseMove, true); @@ -254,7 +254,7 @@ class Audio extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove, true); @@ -264,7 +264,7 @@ class Audio extends React.PureComponent { this.setState({ dragging: false }); this.audio.play(); - } + }; handleMouseMove = throttle(e => { const { x } = getPointerPosition(this.seek, e); @@ -282,7 +282,7 @@ class Audio extends React.PureComponent { currentTime: this.audio.currentTime, duration: this.audio.duration, }); - } + }; handleMouseVolSlide = throttle(e => { const { x } = getPointerPosition(this.volume, e); @@ -317,11 +317,11 @@ class Audio extends React.PureComponent { handleMouseEnter = () => { this.setState({ hovered: true }); - } + }; handleMouseLeave = () => { this.setState({ hovered: false }); - } + }; handleLoadedData = () => { const { autoPlay, currentTime } = this.props; @@ -333,7 +333,7 @@ class Audio extends React.PureComponent { if (autoPlay) { this.togglePlay(); } - } + }; _initAudioContext () { const AudioContext = window.AudioContext || window.webkitAudioContext; @@ -367,7 +367,7 @@ class Audio extends React.PureComponent { }).catch(err => { console.error(err); }); - } + }; _renderCanvas () { requestAnimationFrame(() => { @@ -438,7 +438,7 @@ class Audio extends React.PureComponent { e.stopPropagation(); this.togglePlay(); } - } + }; handleKeyDown = e => { switch(e.key) { @@ -463,7 +463,7 @@ class Audio extends React.PureComponent { this.seekBy(10); break; } - } + }; render () { const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; diff --git a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js index 8978ac5fc1..8e25bc6fd9 100644 --- a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js +++ b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js @@ -48,24 +48,24 @@ class Bookmarks extends ImmutablePureComponent { } else { dispatch(addColumn('BOOKMARKS', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = debounce(() => { this.props.dispatch(expandBookmarkedStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; diff --git a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js index cb91636cb8..bdaa9885c8 100644 --- a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js +++ b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js @@ -72,4 +72,4 @@ class ClosedRegistrationsModal extends ImmutablePureComponent { ); } -}; +} diff --git a/app/javascript/flavours/glitch/features/community_timeline/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/community_timeline/containers/column_settings_container.js index b892f08ade..eac1c4bbac 100644 --- a/app/javascript/flavours/glitch/features/community_timeline/containers/column_settings_container.js +++ b/app/javascript/flavours/glitch/features/community_timeline/containers/column_settings_container.js @@ -12,7 +12,7 @@ const mapStateToProps = (state, { columnId }) => { settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'community']), }; }; - + const mapDispatchToProps = (dispatch, { columnId }) => { return { onChange (key, checked) { diff --git a/app/javascript/flavours/glitch/features/community_timeline/index.js b/app/javascript/flavours/glitch/features/community_timeline/index.js index 67bf548755..b9a59fdc70 100644 --- a/app/javascript/flavours/glitch/features/community_timeline/index.js +++ b/app/javascript/flavours/glitch/features/community_timeline/index.js @@ -63,16 +63,16 @@ class CommunityTimeline extends React.PureComponent { } else { dispatch(addColumn('COMMUNITY', { other: { onlyMedia } })); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch, onlyMedia } = this.props; @@ -112,13 +112,13 @@ class CommunityTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, onlyMedia } = this.props; dispatch(expandCommunityTimeline({ maxId, onlyMedia })); - } + }; render () { const { intl, hasUnread, columnId, multiColumn, onlyMedia } = this.props; diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.js b/app/javascript/flavours/glitch/features/compose/components/action_bar.js index 838ef09ea9..1843fdacbd 100644 --- a/app/javascript/flavours/glitch/features/compose/components/action_bar.js +++ b/app/javascript/flavours/glitch/features/compose/components/action_bar.js @@ -32,7 +32,7 @@ class ActionBar extends React.PureComponent { handleLogout = () => { this.props.onLogout(); - } + }; render () { const { intl } = this.props; 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 2b57cf15d8..c5655c4f20 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.js @@ -22,9 +22,9 @@ import { length } from 'stringz'; const messages = defineMessages({ placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' }, missingDescriptionMessage: { id: 'confirmations.missing_media_description.message', - defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, + defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, missingDescriptionConfirm: { id: 'confirmations.missing_media_description.confirm', - defaultMessage: 'Send anyway' }, + defaultMessage: 'Send anyway' }, spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' }, }); @@ -83,22 +83,22 @@ class ComposeForm extends ImmutablePureComponent { handleChange = (e) => { this.props.onChange(e.target.value); - } + }; getFulltextForCharacterCounting = () => { return [ this.props.spoiler? this.props.spoilerText: '', countableText(this.props.text), - this.props.advancedOptions && this.props.advancedOptions.get('do_not_federate') ? ' 👁️' : '' + this.props.advancedOptions && this.props.advancedOptions.get('do_not_federate') ? ' 👁️' : '', ].join(''); - } + }; canSubmit = () => { const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; const fulltext = this.getFulltextForCharacterCounting(); return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (!fulltext.trim().length && !anyMedia)); - } + }; handleSubmit = (overriddenVisibility = null) => { const { @@ -129,7 +129,7 @@ class ComposeForm extends ImmutablePureComponent { } onSubmit(this.context.router ? this.context.router.history : null); } - } + }; // Changes the text value of the spoiler. handleChangeSpoiler = ({ target: { value } }) => { @@ -137,7 +137,7 @@ class ComposeForm extends ImmutablePureComponent { if (onChangeSpoilerText) { onChangeSpoilerText(value); } - } + }; setRef = c => { this.composeForm = c; @@ -150,7 +150,7 @@ class ComposeForm extends ImmutablePureComponent { if (onPickEmoji) { onPickEmoji(selectionStart, data); } - } + }; // Handles the secondary submit button. handleSecondarySubmit = () => { @@ -158,16 +158,16 @@ class ComposeForm extends ImmutablePureComponent { sideArm, } = this.props; this.handleSubmit(sideArm === 'none' ? null : sideArm); - } + }; // Selects a suggestion from the autofill. onSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['text']); - } + }; onSpoilerSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['spoiler_text']); - } + }; handleKeyDown = (e) => { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { @@ -177,21 +177,21 @@ class ComposeForm extends ImmutablePureComponent { if (e.keyCode == 13 && e.altKey) { this.handleSecondarySubmit(); } - } + }; // Sets a reference to the textarea. setAutosuggestTextarea = (textareaComponent) => { if (textareaComponent) { this.textarea = textareaComponent.textarea; } - } + }; // Sets a reference to the CW field. handleRefSpoilerText = (spoilerComponent) => { if (spoilerComponent) { this.spoilerText = spoilerComponent.input; } - } + }; handleFocus = () => { if (this.composeForm && !this.props.singleColumn) { @@ -200,7 +200,7 @@ class ComposeForm extends ImmutablePureComponent { this.composeForm.scrollIntoView(); } } - } + }; componentDidMount () { this._updateFocusAndSelection({ }); @@ -217,7 +217,7 @@ class ComposeForm extends ImmutablePureComponent { // - Replying to more than one user, selects any usernames past // the first; this provides a convenient shortcut to drop // everyone else from the conversation. - _updateFocusAndSelection = (prevProps) => { + _updateFocusAndSelection = (prevProps) => { const { textarea, spoilerText, @@ -271,7 +271,7 @@ class ComposeForm extends ImmutablePureComponent { } } } - } + }; render () { diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown.js b/app/javascript/flavours/glitch/features/compose/components/dropdown.js index d98b311d9a..fe4ab36f5c 100644 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/dropdown.js @@ -64,7 +64,7 @@ export default class ComposerOptionsDropdown extends React.PureComponent { } this.setState({ open: !this.state.open, openedViaKeyboard: type !== 'click' }); } - } + }; handleKeyDown = (e) => { switch (e.key) { @@ -72,13 +72,13 @@ export default class ComposerOptionsDropdown extends React.PureComponent { this.handleClose(); break; } - } + }; handleMouseDown = () => { if (!this.state.open) { this.activeElement = document.activeElement; } - } + }; handleButtonKeyDown = (e) => { switch(e.key) { @@ -87,7 +87,7 @@ export default class ComposerOptionsDropdown extends React.PureComponent { this.handleMouseDown(); break; } - } + }; handleKeyPress = (e) => { switch(e.key) { @@ -98,14 +98,14 @@ export default class ComposerOptionsDropdown extends React.PureComponent { e.preventDefault(); break; } - } + }; handleClose = () => { if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } this.setState({ open: false }); - } + }; handleItemClick = (e) => { const { @@ -151,22 +151,22 @@ export default class ComposerOptionsDropdown extends React.PureComponent { ...rest, active: value && name === value, name, - }) + }), ), }; - } + }; setTargetRef = c => { this.target = c; - } + }; findTarget = () => { return this.target; - } + }; handleOverlayEnter = (state) => { this.setState({ placement: state.placement }); - } + }; // Rendering. render () { 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 c4895dfd0d..1ea0df536c 100644 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js +++ b/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js @@ -44,12 +44,12 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; // Stores our node in `this.node`. setRef = (node) => { this.node = node; - } + }; // On mounting, we add our listeners. componentDidMount () { @@ -84,7 +84,7 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent onClose(); } onChange(name); - } + }; // Handle changes differently whether the dropdown is a list of options or actions handleChange = (name) => { @@ -93,7 +93,7 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent } else { this.setState({ value: name }); } - } + }; handleKeyDown = (e) => { const index = Number(e.currentTarget.getAttribute('data-index')); @@ -135,11 +135,11 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent e.preventDefault(); e.stopPropagation(); } - } + }; setFocusRef = c => { this.focusedItem = c; - } + }; renderItem = (item, i) => { const { name, icon, meta, text } = item; @@ -177,7 +177,7 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent {contents}
    ); - } + }; // Rendering. render () { 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 38c7355514..66355e0883 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 @@ -58,7 +58,7 @@ class ModifierPickerMenu extends React.PureComponent { handleClick = e => { this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1); - } + }; componentWillReceiveProps (nextProps) { if (nextProps.active) { @@ -76,7 +76,7 @@ class ModifierPickerMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; attachListeners () { document.addEventListener('click', this.handleDocumentClick, false); @@ -90,7 +90,7 @@ class ModifierPickerMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; render () { const { active } = this.props; @@ -125,12 +125,12 @@ class ModifierPicker extends React.PureComponent { } else { this.props.onOpen(); } - } + }; handleSelect = modifier => { this.props.onChange(modifier); this.props.onClose(); - } + }; render () { const { active, modifier } = this.props; @@ -175,7 +175,7 @@ class EmojiPickerMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -199,7 +199,7 @@ class EmojiPickerMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; getI18n = () => { const { intl } = this.props; @@ -220,7 +220,7 @@ class EmojiPickerMenu extends React.PureComponent { custom: intl.formatMessage(messages.custom), }, }; - } + }; handleClick = (emoji, event) => { if (!emoji.native) { @@ -230,19 +230,19 @@ class EmojiPickerMenu extends React.PureComponent { this.props.onClose(); } this.props.onPick(emoji); - } + }; handleModifierOpen = () => { this.setState({ modifierOpen: true }); - } + }; handleModifierClose = () => { this.setState({ modifierOpen: false }); - } + }; handleModifierChange = modifier => { this.props.onSkinTone(modifier); - } + }; render () { const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props; @@ -327,7 +327,7 @@ class EmojiPickerDropdown extends React.PureComponent { setRef = (c) => { this.dropdown = c; - } + }; onShowDropdown = () => { this.setState({ active: true }); @@ -344,11 +344,11 @@ class EmojiPickerDropdown extends React.PureComponent { this.setState({ loading: false, active: false }); }); } - } + }; onHideDropdown = () => { this.setState({ active: false }); - } + }; onToggle = (e) => { if (!this.state.loading && (!e.key || e.key === 'Enter')) { @@ -358,21 +358,21 @@ class EmojiPickerDropdown extends React.PureComponent { this.onShowDropdown(e); } } - } + }; handleKeyDown = e => { if (e.key === 'Escape') { this.onHideDropdown(); } - } + }; setTargetRef = c => { this.target = c; - } + }; findTarget = () => { return this.target; - } + }; render () { const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; diff --git a/app/javascript/flavours/glitch/features/compose/components/header.js b/app/javascript/flavours/glitch/features/compose/components/header.js index 7ecb573aba..dcbdafa576 100644 --- a/app/javascript/flavours/glitch/features/compose/components/header.js +++ b/app/javascript/flavours/glitch/features/compose/components/header.js @@ -47,6 +47,7 @@ const messages = defineMessages({ export default @injectIntl class Header extends ImmutablePureComponent { + static propTypes = { columns: ImmutablePropTypes.list, unreadNotifications: PropTypes.number, @@ -63,7 +64,7 @@ class Header extends ImmutablePureComponent { this.props.onLogout(); return false; - } + }; render () { const { intl, columns, unreadNotifications, showNotificationsBadge, onSettingsClick } = this.props; @@ -71,8 +72,8 @@ class Header extends ImmutablePureComponent { // Only renders the component if the column isn't being shown. const renderForColumn = conditionalRender.bind(null, columnId => !columns || !columns.some( - column => column.get('id') === columnId - ) + column => column.get('id') === columnId, + ), ); // The result. @@ -125,10 +126,11 @@ class Header extends ImmutablePureComponent { ); - }; + } + } 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 3a1fa0226d..3f8411ab14 100644 --- a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js @@ -40,7 +40,7 @@ class LanguageDropdownMenu extends React.PureComponent { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); } - } + }; componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); @@ -63,15 +63,15 @@ class LanguageDropdownMenu extends React.PureComponent { setRef = c => { this.node = c; - } + }; setListRef = c => { this.listNode = c; - } + }; handleSearchChange = ({ target }) => { this.setState({ searchValue: target.value }); - } + }; search () { const { languages, value, frequentlyUsedLanguages } = this.props; @@ -122,7 +122,7 @@ class LanguageDropdownMenu extends React.PureComponent { this.props.onClose(); this.props.onChange(value); - } + }; handleKeyDown = e => { const { onClose } = this.props; @@ -163,7 +163,7 @@ class LanguageDropdownMenu extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleSearchKeyDown = e => { const { onChange, onClose } = this.props; @@ -199,11 +199,11 @@ class LanguageDropdownMenu extends React.PureComponent { break; } - } + }; handleClear = () => { this.setState({ searchValue: '' }); - } + }; renderItem = lang => { const { value } = this.props; @@ -213,7 +213,7 @@ class LanguageDropdownMenu extends React.PureComponent { {lang[2]} ({lang[1]})
    ); - } + }; render () { const { intl } = this.props; @@ -259,7 +259,7 @@ class LanguageDropdown extends React.PureComponent { } this.setState({ open: !this.state.open }); - } + }; handleClose = () => { const { value, onClose } = this.props; @@ -270,24 +270,24 @@ class LanguageDropdown extends React.PureComponent { this.setState({ open: false }); onClose(value); - } + }; handleChange = value => { const { onChange } = this.props; 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; diff --git a/app/javascript/flavours/glitch/features/compose/components/options.js b/app/javascript/flavours/glitch/features/compose/components/options.js index b5276c3715..e09e13bcb9 100644 --- a/app/javascript/flavours/glitch/features/compose/components/options.js +++ b/app/javascript/flavours/glitch/features/compose/components/options.js @@ -144,7 +144,7 @@ class ComposerOptions extends ImmutablePureComponent { if (files.length && onUpload) { onUpload(files); } - } + }; // Handles attachment clicks. handleClickAttach = (name) => { @@ -164,12 +164,12 @@ class ComposerOptions extends ImmutablePureComponent { } return; } - } + }; // Handles a ref to the file input. handleRefFileElement = (fileElement) => { this.fileElement = fileElement; - } + }; renderToggleItemContents = (item) => { const { onChangeAdvancedOption } = this.props; diff --git a/app/javascript/flavours/glitch/features/compose/components/poll_form.js b/app/javascript/flavours/glitch/features/compose/components/poll_form.js index 2ab3c64ac9..13b7322d3e 100644 --- a/app/javascript/flavours/glitch/features/compose/components/poll_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/poll_form.js @@ -49,15 +49,15 @@ class Option extends React.PureComponent { onSuggestionsClearRequested = () => { this.props.onClearSuggestions(); - } + }; onSuggestionsFetchRequested = (token) => { this.props.onFetchSuggestions(token); - } + }; onSuggestionSelected = (tokenStart, token, value) => { this.props.onSuggestionSelected(tokenStart, token, value, ['poll', 'options', this.props.index]); - } + }; render () { const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/compose/components/publisher.js b/app/javascript/flavours/glitch/features/compose/components/publisher.js index 9d53b7ee3c..59254990b1 100644 --- a/app/javascript/flavours/glitch/features/compose/components/publisher.js +++ b/app/javascript/flavours/glitch/features/compose/components/publisher.js @@ -94,5 +94,6 @@ class Publisher extends ImmutablePureComponent {
    ); - }; + } + } diff --git a/app/javascript/flavours/glitch/features/compose/components/reply_indicator.js b/app/javascript/flavours/glitch/features/compose/components/reply_indicator.js index 7ad9e2b644..ca167d1148 100644 --- a/app/javascript/flavours/glitch/features/compose/components/reply_indicator.js +++ b/app/javascript/flavours/glitch/features/compose/components/reply_indicator.js @@ -33,7 +33,7 @@ class ReplyIndicator extends ImmutablePureComponent { if (onCancel) { onCancel(); } - } + }; // Rendering. render () { diff --git a/app/javascript/flavours/glitch/features/compose/components/search.js b/app/javascript/flavours/glitch/features/compose/components/search.js index e5874de75e..6241e2a0ab 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search.js +++ b/app/javascript/flavours/glitch/features/compose/components/search.js @@ -71,14 +71,14 @@ class Search extends React.PureComponent { setRef = c => { this.searchForm = c; - } + }; handleChange = (e) => { const { onChange } = this.props; if (onChange) { onChange(e.target.value); } - } + }; handleClear = (e) => { const { @@ -90,11 +90,11 @@ class Search extends React.PureComponent { if (onClear && (submitted || value && value.length)) { onClear(); } - } + }; handleBlur = () => { this.setState({ expanded: false }); - } + }; handleFocus = () => { this.setState({ expanded: true }); @@ -106,7 +106,7 @@ class Search extends React.PureComponent { this.searchForm.scrollIntoView(); } } - } + }; handleKeyUp = (e) => { const { onSubmit } = this.props; @@ -121,11 +121,11 @@ class Search extends React.PureComponent { case 'Escape': focusRoot(); } - } + }; findTarget = () => { return this.searchForm; - } + }; render () { const { intl, value, submitted } = this.props; diff --git a/app/javascript/flavours/glitch/features/compose/components/search_results.js b/app/javascript/flavours/glitch/features/compose/components/search_results.js index c2178702cb..23ff609365 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search_results.js +++ b/app/javascript/flavours/glitch/features/compose/components/search_results.js @@ -103,7 +103,7 @@ class SearchResults extends ImmutablePureComponent {
    - {results.get('statuses').map(statusId => )} + {results.get('statuses').map(statusId => )} {results.get('statuses').size >= 5 && }
    @@ -136,5 +136,6 @@ class SearchResults extends ImmutablePureComponent { {hashtags}
    ); - }; + } + } diff --git a/app/javascript/flavours/glitch/features/compose/components/textarea_icons.js b/app/javascript/flavours/glitch/features/compose/components/textarea_icons.js index 25c2443b16..d8ee5c81b0 100644 --- a/app/javascript/flavours/glitch/features/compose/components/textarea_icons.js +++ b/app/javascript/flavours/glitch/features/compose/components/textarea_icons.js @@ -51,9 +51,10 @@ class TextareaIcons extends ImmutablePureComponent { id={icon} /> - ) : null + ) : null, ) : null}
    ); } + } diff --git a/app/javascript/flavours/glitch/features/compose/components/upload.js b/app/javascript/flavours/glitch/features/compose/components/upload.js index cd45245409..c82b8d55a0 100644 --- a/app/javascript/flavours/glitch/features/compose/components/upload.js +++ b/app/javascript/flavours/glitch/features/compose/components/upload.js @@ -23,12 +23,12 @@ export default class Upload extends ImmutablePureComponent { handleUndoClick = e => { e.stopPropagation(); this.props.onUndo(this.props.media.get('id')); - } + }; handleFocalPointClick = e => { e.stopPropagation(); this.props.onOpenFocalPoint(this.props.media.get('id')); - } + }; render () { const { media } = this.props; @@ -39,7 +39,7 @@ export default class Upload extends ImmutablePureComponent { return (
    - + {({ scale }) => (
    diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_form.js b/app/javascript/flavours/glitch/features/compose/components/upload_form.js index 7ebbac9632..f2e7fe7a23 100644 --- a/app/javascript/flavours/glitch/features/compose/components/upload_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/upload_form.js @@ -6,6 +6,7 @@ import UploadContainer from '../containers/upload_container'; import SensitiveButtonContainer from '../containers/sensitive_button_container'; export default class UploadForm extends ImmutablePureComponent { + static propTypes = { mediaIds: ImmutablePropTypes.list.isRequired, }; 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 8f2947672b..56eaaf9203 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 @@ -22,11 +22,11 @@ import { privacyPreference } from 'flavours/glitch/utils/privacy_preference'; const messages = defineMessages({ missingDescriptionMessage: { id: 'confirmations.missing_media_description.message', - defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, + defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, missingDescriptionConfirm: { id: 'confirmations.missing_media_description.confirm', - defaultMessage: 'Send anyway' }, + defaultMessage: 'Send anyway' }, missingDescriptionEdit: { id: 'confirmations.missing_media_description.edit', - defaultMessage: 'Edit media' }, + defaultMessage: 'Edit media' }, }); // State mapping. @@ -38,12 +38,12 @@ function mapStateToProps (state) { const sideArmRestrictedPrivacy = replyPrivacy ? privacyPreference(replyPrivacy, sideArmBasePrivacy) : null; let sideArmPrivacy = null; switch (state.getIn(['local_settings', 'side_arm_reply_mode'])) { - case 'copy': - sideArmPrivacy = replyPrivacy; - break; - case 'restrict': - sideArmPrivacy = sideArmRestrictedPrivacy; - break; + case 'copy': + sideArmPrivacy = replyPrivacy; + break; + case 'restrict': + sideArmPrivacy = sideArmRestrictedPrivacy; + break; } sideArmPrivacy = sideArmPrivacy || sideArmBasePrivacy; return { @@ -72,7 +72,7 @@ function mapStateToProps (state) { isInReply: state.getIn(['compose', 'in_reply_to']) !== null, lang: state.getIn(['compose', 'language']), }; -}; +} // Dispatch mapping. const mapDispatchToProps = (dispatch, { intl }) => ({ @@ -124,7 +124,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ onConfirm: () => { if (overriddenVisibility) { dispatch(changeComposeVisibility(overriddenVisibility)); - }; + } dispatch(submitCompose(routerHistory)); }, secondary: intl.formatMessage(messages.missingDescriptionEdit), 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 5de9f5419d..19a90ac8b6 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/options_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/options_container.js @@ -23,7 +23,7 @@ function mapStateToProps (state) { showContentTypeChoice: state.getIn(['local_settings', 'show_content_type_choice']), contentType: state.getIn(['compose', 'content_type']), }; -}; +} const mapDispatchToProps = (dispatch) => ({ diff --git a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js index b2ed40b82f..9402601f85 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js @@ -8,7 +8,7 @@ import { profileLink, termsLink } from 'flavours/glitch/utils/backend_links'; const buildHashtagRE = () => { try { - const HASHTAG_SEPARATORS = "_\\u00b7\\u200c"; + const HASHTAG_SEPARATORS = '_\\u00b7\\u200c'; const ALPHA = '\\p{L}\\p{M}'; const WORD = '\\p{L}\\p{M}\\p{N}\\p{Pc}'; return new RegExp( @@ -22,7 +22,7 @@ const buildHashtagRE = () => { '[' + WORD + '_]*' + '[' + ALPHA + ']' + '[' + WORD + '_]*' + - '))', 'iu' + '))', 'iu', ); } catch { return /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i; diff --git a/app/javascript/flavours/glitch/features/compose/index.js b/app/javascript/flavours/glitch/features/compose/index.js index 8ca3786728..68eb05e2c9 100644 --- a/app/javascript/flavours/glitch/features/compose/index.js +++ b/app/javascript/flavours/glitch/features/compose/index.js @@ -43,6 +43,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ export default @connect(mapStateToProps, mapDispatchToProps) @injectIntl class Compose extends React.PureComponent { + static propTypes = { multiColumn: PropTypes.bool, showSearch: PropTypes.bool, diff --git a/app/javascript/flavours/glitch/features/compose/util/counter.js b/app/javascript/flavours/glitch/features/compose/util/counter.js index 7aa9e87b1b..5a68bad992 100644 --- a/app/javascript/flavours/glitch/features/compose/util/counter.js +++ b/app/javascript/flavours/glitch/features/compose/util/counter.js @@ -6,4 +6,4 @@ export function countableText(inputText) { return inputText .replace(urlRegex, urlPlaceholder) .replace(/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/ig, '$1@$3'); -}; +} diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js index 00d9fdcd05..ad2a68ebdc 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js +++ b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js @@ -60,12 +60,12 @@ class Conversation extends ImmutablePureComponent { } destination = `/statuses/${lastStatus.get('id')}`; } - let state = {...router.history.location.state}; + let state = { ...router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; router.history.push(destination, state); e.preventDefault(); } - } + }; handleMouseEnter = ({ currentTarget }) => { if (autoPlayGif) { @@ -78,7 +78,7 @@ class Conversation extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -91,7 +91,7 @@ class Conversation extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleClick = () => { if (!this.context.router) { @@ -105,31 +105,31 @@ class Conversation extends ImmutablePureComponent { } this.context.router.history.push(`/@${lastStatus.getIn(['account', 'acct'])}/${lastStatus.get('id')}`); - } + }; handleMarkAsRead = () => { this.props.markRead(); - } + }; handleReply = () => { this.props.reply(this.props.lastStatus, this.context.router.history); - } + }; handleDelete = () => { this.props.delete(); - } + }; handleHotkeyMoveUp = () => { this.props.onMoveUp(this.props.conversationId); - } + }; handleHotkeyMoveDown = () => { this.props.onMoveDown(this.props.conversationId); - } + }; handleConversationMute = () => { this.props.onMute(this.props.lastStatus); - } + }; handleShowMore = () => { this.props.onToggleHidden(this.props.lastStatus); @@ -141,7 +141,7 @@ class Conversation extends ImmutablePureComponent { setExpansion = value => { this.setState({ isExpanded: value }); - } + }; render () { const { accounts, lastStatus, unread, scrollKey, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js b/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js index c2aff1b57f..ae72179e21 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js +++ b/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js @@ -16,17 +16,17 @@ export default class ConversationsList extends ImmutablePureComponent { onLoadMore: PropTypes.func, }; - getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id) + getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id); handleMoveUp = id => { const elementIndex = this.getCurrentIndex(id) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = id => { const elementIndex = this.getCurrentIndex(id) + 1; this._selectChild(elementIndex, false); - } + }; _selectChild (index, align_top) { const container = this.node.node; @@ -44,7 +44,7 @@ export default class ConversationsList extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; handleLoadOlder = debounce(() => { const last = this.props.conversations.last(); @@ -52,7 +52,7 @@ export default class ConversationsList extends ImmutablePureComponent { if (last && last.get('last_status')) { this.props.onLoadMore(last.get('last_status')); } - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { conversations, onLoadMore, ...other } = this.props; diff --git a/app/javascript/flavours/glitch/features/direct_timeline/index.js b/app/javascript/flavours/glitch/features/direct_timeline/index.js index d55c63c2b9..afd348988d 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/index.js +++ b/app/javascript/flavours/glitch/features/direct_timeline/index.js @@ -43,16 +43,16 @@ class DirectTimeline extends React.PureComponent { } else { dispatch(addColumn('DIRECT', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch, conversationsMode } = this.props; @@ -89,15 +89,15 @@ class DirectTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMoreTimeline = maxId => { this.props.dispatch(expandDirectTimeline({ maxId })); - } + }; handleLoadMoreConversations = maxId => { this.props.dispatch(expandConversations({ maxId })); - } + }; render () { const { intl, hasUnread, columnId, multiColumn, conversationsMode } = this.props; diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.js b/app/javascript/flavours/glitch/features/directory/components/account_card.js index ccc3dd3d2e..3fddb5b81c 100644 --- a/app/javascript/flavours/glitch/features/directory/components/account_card.js +++ b/app/javascript/flavours/glitch/features/directory/components/account_card.js @@ -118,7 +118,7 @@ class AccountCard extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -131,7 +131,7 @@ class AccountCard extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; handleFollow = () => { this.props.onFollow(this.props.account); @@ -143,11 +143,11 @@ class AccountCard extends ImmutablePureComponent { handleMute = () => { this.props.onMute(this.props.account); - } + }; handleEditProfile = () => { window.open('/settings/profile', '_blank'); - } + }; handleDismiss = (e) => { const { account, onDismiss } = this.props; @@ -155,7 +155,7 @@ class AccountCard extends ImmutablePureComponent { e.preventDefault(); e.stopPropagation(); - } + }; render() { const { account, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/directory/index.js b/app/javascript/flavours/glitch/features/directory/index.js index 94bcd578cf..07875b3e1c 100644 --- a/app/javascript/flavours/glitch/features/directory/index.js +++ b/app/javascript/flavours/glitch/features/directory/index.js @@ -64,7 +64,7 @@ class Directory extends React.PureComponent { } else { dispatch(addColumn('DIRECTORY', this.getParams(this.props, this.state))); } - } + }; getParams = (props, state) => ({ order: state.order === null ? (props.params.order || 'active') : state.order, @@ -74,11 +74,11 @@ class Directory extends React.PureComponent { handleMove = dir => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch } = this.props; @@ -97,7 +97,7 @@ class Directory extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleChangeOrder = e => { const { dispatch, columnId } = this.props; @@ -107,7 +107,7 @@ class Directory extends React.PureComponent { } else { this.setState({ order: e.target.value }); } - } + }; handleChangeLocal = e => { const { dispatch, columnId } = this.props; @@ -117,12 +117,12 @@ class Directory extends React.PureComponent { } else { this.setState({ local: e.target.value === '1' }); } - } + }; handleLoadMore = () => { const { dispatch } = this.props; dispatch(expandDirectory(this.getParams(this.props, this.state))); - } + }; render () { const { isLoading, accountIds, intl, columnId, multiColumn, domain } = this.props; diff --git a/app/javascript/flavours/glitch/features/explore/index.js b/app/javascript/flavours/glitch/features/explore/index.js index da0dc7f7c1..4cbc5294bb 100644 --- a/app/javascript/flavours/glitch/features/explore/index.js +++ b/app/javascript/flavours/glitch/features/explore/index.js @@ -41,11 +41,11 @@ class Explore extends React.PureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; render() { const { intl, multiColumn, isSearching } = this.props; diff --git a/app/javascript/flavours/glitch/features/explore/statuses.js b/app/javascript/flavours/glitch/features/explore/statuses.js index 0a5c9de233..21768dd242 100644 --- a/app/javascript/flavours/glitch/features/explore/statuses.js +++ b/app/javascript/flavours/glitch/features/explore/statuses.js @@ -33,7 +33,7 @@ class Statuses extends React.PureComponent { handleLoadMore = debounce(() => { const { dispatch } = this.props; dispatch(expandTrendingStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { isLoading, hasMore, statusIds, multiColumn } = this.props; diff --git a/app/javascript/flavours/glitch/features/explore/suggestions.js b/app/javascript/flavours/glitch/features/explore/suggestions.js index 52e5ce62bd..1c9b992662 100644 --- a/app/javascript/flavours/glitch/features/explore/suggestions.js +++ b/app/javascript/flavours/glitch/features/explore/suggestions.js @@ -29,7 +29,7 @@ class Suggestions extends React.PureComponent { handleDismiss = (accountId) => { const { dispatch } = this.props; dispatch(dismissSuggestion(accountId)); - } + }; render () { const { isLoading, suggestions } = this.props; diff --git a/app/javascript/flavours/glitch/features/favourited_statuses/index.js b/app/javascript/flavours/glitch/features/favourited_statuses/index.js index a03e1a4eb0..0667c205b6 100644 --- a/app/javascript/flavours/glitch/features/favourited_statuses/index.js +++ b/app/javascript/flavours/glitch/features/favourited_statuses/index.js @@ -48,24 +48,24 @@ class Favourites extends ImmutablePureComponent { } else { dispatch(addColumn('FAVOURITES', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = debounce(() => { this.props.dispatch(expandFavouritedStatuses()); - }, 300, { leading: true }) + }, 300, { leading: true }); render () { const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; diff --git a/app/javascript/flavours/glitch/features/favourites/index.js b/app/javascript/flavours/glitch/features/favourites/index.js index 47c3279c4d..ba58ed43b3 100644 --- a/app/javascript/flavours/glitch/features/favourites/index.js +++ b/app/javascript/flavours/glitch/features/favourites/index.js @@ -48,15 +48,15 @@ class Favourites extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleRefresh = () => { this.props.dispatch(fetchFavourites(this.props.params.statusId)); - } + }; render () { const { intl, accountIds, multiColumn } = this.props; diff --git a/app/javascript/flavours/glitch/features/filters/select_filter.js b/app/javascript/flavours/glitch/features/filters/select_filter.js index 5391766c91..57adb59ccc 100644 --- a/app/javascript/flavours/glitch/features/filters/select_filter.js +++ b/app/javascript/flavours/glitch/features/filters/select_filter.js @@ -71,7 +71,7 @@ class SelectFilter extends React.PureComponent { {filter[1]} {warning}
    ); - } + }; renderCreateNew (name) { return ( @@ -83,11 +83,11 @@ class SelectFilter extends React.PureComponent { handleSearchChange = ({ target }) => { this.setState({ searchValue: target.value }); - } + }; setListRef = c => { this.listNode = c; - } + }; handleKeyDown = e => { const index = Array.from(this.listNode.childNodes).findIndex(node => node === e.currentTarget); @@ -125,7 +125,7 @@ class SelectFilter extends React.PureComponent { e.preventDefault(); e.stopPropagation(); } - } + }; handleSearchKeyDown = e => { let element = null; @@ -143,11 +143,11 @@ class SelectFilter extends React.PureComponent { break; } - } + }; handleClear = () => { this.setState({ searchValue: '' }); - } + }; handleItemClick = e => { const value = e.currentTarget.getAttribute('data-index'); @@ -155,7 +155,7 @@ class SelectFilter extends React.PureComponent { e.preventDefault(); this.props.onSelectFilter(value); - } + }; handleNewFilterClick = e => { e.preventDefault(); diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js index 2c668da3e5..7c8a71879d 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js +++ b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js @@ -50,7 +50,7 @@ class Account extends ImmutablePureComponent { } else { dispatch(followAccount(account.get('id'))); } - } + }; render () { const { account, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/index.js b/app/javascript/flavours/glitch/features/follow_recommendations/index.js index d9d962b7c9..11396d2a3a 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/index.js +++ b/app/javascript/flavours/glitch/features/follow_recommendations/index.js @@ -69,7 +69,7 @@ class FollowRecommendations extends ImmutablePureComponent { })); router.history.push('/home'); - } + }; render () { const { suggestions, isLoading } = this.props; diff --git a/app/javascript/flavours/glitch/features/followers/index.js b/app/javascript/flavours/glitch/features/followers/index.js index 7122c19050..10fd76865f 100644 --- a/app/javascript/flavours/glitch/features/followers/index.js +++ b/app/javascript/flavours/glitch/features/followers/index.js @@ -107,11 +107,11 @@ class Followers extends ImmutablePureComponent { setRef = c => { this.column = c; - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; render () { const { accountId, accountIds, hasMore, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props; diff --git a/app/javascript/flavours/glitch/features/following/index.js b/app/javascript/flavours/glitch/features/following/index.js index 4ad6701050..5af4e60b6b 100644 --- a/app/javascript/flavours/glitch/features/following/index.js +++ b/app/javascript/flavours/glitch/features/following/index.js @@ -107,11 +107,11 @@ class Following extends ImmutablePureComponent { setRef = c => { this.column = c; - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; render () { const { accountId, accountIds, hasMore, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props; diff --git a/app/javascript/flavours/glitch/features/getting_started/components/announcements.js b/app/javascript/flavours/glitch/features/getting_started/components/announcements.js index 93f3c9428f..5ff4f0523d 100644 --- a/app/javascript/flavours/glitch/features/getting_started/components/announcements.js +++ b/app/javascript/flavours/glitch/features/getting_started/components/announcements.js @@ -35,7 +35,7 @@ class Content extends ImmutablePureComponent { setRef = c => { this.node = c; - } + }; componentDidMount () { this._updateLinks(); @@ -89,7 +89,7 @@ class Content extends ImmutablePureComponent { e.preventDefault(); this.context.router.history.push(`/@${mention.get('acct')}`); } - } + }; onHashtagClick = (hashtag, e) => { hashtag = hashtag.replace(/^#/, ''); @@ -98,14 +98,14 @@ class Content extends ImmutablePureComponent { e.preventDefault(); this.context.router.history.push(`/tags/${hashtag}`); } - } + }; onStatusClick = (status, e) => { if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); } - } + }; handleMouseEnter = ({ currentTarget }) => { if (autoPlayGif) { @@ -118,7 +118,7 @@ class Content extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-original'); } - } + }; handleMouseLeave = ({ currentTarget }) => { if (autoPlayGif) { @@ -131,7 +131,7 @@ class Content extends ImmutablePureComponent { let emoji = emojis[i]; emoji.src = emoji.getAttribute('data-static'); } - } + }; render () { const { announcement } = this.props; @@ -216,11 +216,11 @@ class Reaction extends ImmutablePureComponent { } else { addReaction(announcementId, reaction.get('name')); } - } + }; - handleMouseEnter = () => this.setState({ hovered: true }) + handleMouseEnter = () => this.setState({ hovered: true }); - handleMouseLeave = () => this.setState({ hovered: false }) + handleMouseLeave = () => this.setState({ hovered: false }); render () { const { reaction } = this.props; @@ -254,7 +254,7 @@ class ReactionsBar extends ImmutablePureComponent { handleEmojiPick = data => { const { addReaction, announcementId } = this.props; addReaction(announcementId, data.native.replace(/:/g, '')); - } + }; willEnter () { return { scale: reduceMotion ? 1 : 0 }; @@ -397,15 +397,15 @@ class Announcements extends ImmutablePureComponent { handleChangeIndex = index => { this.setState({ index: index % this.props.announcements.size }); - } + }; handleNextClick = () => { this.setState({ index: (this.state.index + 1) % this.props.announcements.size }); - } + }; handlePrevClick = () => { this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size }); - } + }; render () { const { announcements, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/getting_started/index.js b/app/javascript/flavours/glitch/features/getting_started/index.js index f9d79013b5..91b33c1dd5 100644 --- a/app/javascript/flavours/glitch/features/getting_started/index.js +++ b/app/javascript/flavours/glitch/features/getting_started/index.js @@ -79,9 +79,9 @@ const badgeDisplay = (number, limit) => { const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); - export default @connect(makeMapStateToProps, mapDispatchToProps) +export default @connect(makeMapStateToProps, mapDispatchToProps) @injectIntl - class GettingStarted extends ImmutablePureComponent { +class GettingStarted extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, @@ -164,7 +164,7 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2);
    {lists.filter(list => !columns.find(item => item.get('id') === 'LIST' && item.getIn(['params', 'id']) === list.get('id'))).map(list => - + , )}
    , ]); diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.js b/app/javascript/flavours/glitch/features/getting_started_misc/index.js index de354d6b11..613b43df7f 100644 --- a/app/javascript/flavours/glitch/features/getting_started_misc/index.js +++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.js @@ -35,11 +35,11 @@ class gettingStartedMisc extends ImmutablePureComponent { openOnboardingModal = (e) => { this.props.dispatch(openModal('ONBOARDING')); - } + }; openFeaturedAccountsModal = (e) => { this.props.dispatch(openModal('PINNED_ACCOUNTS_EDITOR')); - } + }; render () { const { intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js index ede8907e50..ac7863ed38 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js @@ -38,7 +38,7 @@ class ColumnSettings extends React.PureComponent { } else { return tags; } - }; + } onSelect = mode => value => { const oldValue = this.tags(mode); @@ -98,7 +98,7 @@ class ColumnSettings extends React.PureComponent { default: return ''; } - }; + } render () { const { settings, onChange } = this.props; diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.js b/app/javascript/flavours/glitch/features/hashtag_timeline/index.js index 219dc0ec60..54a67804ee 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.js +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.js @@ -54,7 +54,7 @@ class HashtagTimeline extends React.PureComponent { } else { dispatch(addColumn('HASHTAG', { id: this.props.params.id })); } - } + }; title = () => { const { id } = this.props.params; @@ -73,7 +73,7 @@ class HashtagTimeline extends React.PureComponent { } return title; - } + }; additionalFor = (mode) => { const { tags } = this.props.params; @@ -83,16 +83,16 @@ class HashtagTimeline extends React.PureComponent { } else { return ''; } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; _subscribe (dispatch, id, tags = {}, local) { const { signedIn } = this.context.identity; @@ -157,14 +157,14 @@ class HashtagTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, params } = this.props; const { id, tags, local } = params; dispatch(expandHashtagTimeline(id, { maxId, tags, local })); - } + }; handleFollow = () => { const { dispatch, params, tag } = this.props; @@ -180,7 +180,7 @@ class HashtagTimeline extends React.PureComponent { } else { dispatch(followHashtag(id)); } - } + }; render () { const { hasUnread, columnId, multiColumn, tag, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/home_timeline/index.js b/app/javascript/flavours/glitch/features/home_timeline/index.js index 5ed108ad2f..b2bfd3f173 100644 --- a/app/javascript/flavours/glitch/features/home_timeline/index.js +++ b/app/javascript/flavours/glitch/features/home_timeline/index.js @@ -60,24 +60,24 @@ class HomeTimeline extends React.PureComponent { } else { dispatch(addColumn('HOME', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { this.props.dispatch(expandHomeTimeline({ maxId })); - } + }; componentDidMount () { setTimeout(() => this.props.dispatch(fetchAnnouncements()), 700); @@ -116,7 +116,7 @@ class HomeTimeline extends React.PureComponent { handleToggleAnnouncementsClick = (e) => { e.stopPropagation(); this.props.dispatch(toggleShowAnnouncements()); - } + }; render () { const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.js b/app/javascript/flavours/glitch/features/interaction_modal/index.js index b71c041c9d..3a54105a36 100644 --- a/app/javascript/flavours/glitch/features/interaction_modal/index.js +++ b/app/javascript/flavours/glitch/features/interaction_modal/index.js @@ -30,14 +30,14 @@ class Copypaste extends React.PureComponent { setRef = c => { this.input = c; - } + }; handleInputClick = () => { this.setState({ copied: false }); this.input.focus(); this.input.select(); this.input.setSelectionRange(0, this.input.value.length); - } + }; handleButtonClick = () => { const { value } = this.props; @@ -45,7 +45,7 @@ class Copypaste extends React.PureComponent { this.input.blur(); this.setState({ copied: true }); this.timeout = setTimeout(() => this.setState({ copied: false }), 700); - } + }; componentWillUnmount () { if (this.timeout) clearTimeout(this.timeout); @@ -86,7 +86,7 @@ class InteractionModal extends React.PureComponent { handleSignupClick = () => { this.props.onSignupClick(); - } + }; render () { const { url, type, displayNameHtml } = this.props; diff --git a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js index a8cab27621..418c2a3e74 100644 --- a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js +++ b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js @@ -33,16 +33,16 @@ class ListForm extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleSubmit = e => { e.preventDefault(); this.props.onSubmit(); - } + }; handleClick = () => { this.props.onSubmit(); - } + }; render () { const { value, disabled, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/list_editor/components/search.js b/app/javascript/flavours/glitch/features/list_editor/components/search.js index 192643f770..94782ba69a 100644 --- a/app/javascript/flavours/glitch/features/list_editor/components/search.js +++ b/app/javascript/flavours/glitch/features/list_editor/components/search.js @@ -20,17 +20,17 @@ export default class Search extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleKeyUp = e => { if (e.keyCode === 13) { this.props.onSubmit(this.props.value); } - } + }; handleClear = () => { this.props.onClear(); - } + }; render () { const { value, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.js b/app/javascript/flavours/glitch/features/list_timeline/index.js index a94c05c565..3f15035480 100644 --- a/app/javascript/flavours/glitch/features/list_timeline/index.js +++ b/app/javascript/flavours/glitch/features/list_timeline/index.js @@ -58,16 +58,16 @@ class ListTimeline extends React.PureComponent { dispatch(addColumn('LIST', { id: this.props.params.id })); this.context.router.history.push('/'); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch } = this.props; @@ -105,16 +105,16 @@ class ListTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { id } = this.props.params; this.props.dispatch(expandListTimeline(id, { maxId })); - } + }; handleEditClick = () => { this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id })); - } + }; handleDeleteClick = () => { const { dispatch, columnId, intl } = this.props; @@ -126,20 +126,20 @@ class ListTimeline extends React.PureComponent { onConfirm: () => { dispatch(deleteList(id)); - if (!!columnId) { + if (columnId) { dispatch(removeColumn(columnId)); } else { this.context.router.history.push('/lists'); } }, })); - } + }; handleRepliesPolicyChange = ({ target }) => { const { dispatch, list } = this.props; const { id } = this.props.params; this.props.dispatch(updateList(id, undefined, false, target.value)); - } + }; render () { const { hasUnread, columnId, multiColumn, list, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/lists/components/new_list_form.js b/app/javascript/flavours/glitch/features/lists/components/new_list_form.js index cc78d30b7e..e78a6a3bc3 100644 --- a/app/javascript/flavours/glitch/features/lists/components/new_list_form.js +++ b/app/javascript/flavours/glitch/features/lists/components/new_list_form.js @@ -34,16 +34,16 @@ class NewListForm extends React.PureComponent { handleChange = e => { this.props.onChange(e.target.value); - } + }; handleSubmit = e => { e.preventDefault(); this.props.onSubmit(); - } + }; handleClick = () => { this.props.onSubmit(); - } + }; render () { const { value, disabled, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/local_settings/navigation/index.js b/app/javascript/flavours/glitch/features/local_settings/navigation/index.js index 98dda182f4..cc1f3df6d9 100644 --- a/app/javascript/flavours/glitch/features/local_settings/navigation/index.js +++ b/app/javascript/flavours/glitch/features/local_settings/navigation/index.js @@ -72,7 +72,7 @@ class LocalSettingsNavigation extends React.PureComponent { /> - + - + - + - + @@ -306,7 +306,7 @@ class LocalSettingsPage extends React.PureComponent { defaultMessage='user preferences' /> - ) + ), }} /> @@ -414,7 +414,7 @@ class LocalSettingsPage extends React.PureComponent { onChange={onChange} dependsOn={[['collapsed', 'enabled']]} dependsOnNot={[['collapsed', 'auto', 'all']]} - inputProps={{type: 'number', min: '200', max: '999'}} + inputProps={{ type: 'number', min: '200', max: '999' }} > 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 86da640ba7..41c0676a22 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 @@ -31,7 +31,7 @@ export default class LocalSettingsPageItem extends React.PureComponent { if (options && options.length > 0) onChange(item, target.value); else if (placeholder) onChange(item, target.value); else onChange(item, target.checked); - } + }; render () { const { handleChange } = this; @@ -55,7 +55,7 @@ export default class LocalSettingsPageItem extends React.PureComponent { let optionId = `${id}--${opt.value}`; return (
    diff --git a/app/javascript/flavours/glitch/features/notifications/components/admin_report.js b/app/javascript/flavours/glitch/features/notifications/components/admin_report.js index 4662bd9534..556df8f66b 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/admin_report.js +++ b/app/javascript/flavours/glitch/features/notifications/components/admin_report.js @@ -32,28 +32,28 @@ export default class AdminReport extends ImmutablePureComponent { handleMoveUp = () => { const { notification, onMoveUp } = this.props; onMoveUp(notification.get('id')); - } + }; handleMoveDown = () => { const { notification, onMoveDown } = this.props; onMoveDown(notification.get('id')); - } + }; handleOpen = () => { this.handleOpenProfile(); - } + }; handleOpenProfile = () => { const { notification } = this.props; this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); - } + }; handleMention = e => { e.preventDefault(); const { notification, onMention } = this.props; onMention(notification.get('account'), this.context.router.history); - } + }; getHandlers () { return { diff --git a/app/javascript/flavours/glitch/features/notifications/components/admin_signup.js b/app/javascript/flavours/glitch/features/notifications/components/admin_signup.js index 355ebef946..ead2a9701b 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/admin_signup.js +++ b/app/javascript/flavours/glitch/features/notifications/components/admin_signup.js @@ -26,28 +26,28 @@ export default class NotificationFollow extends ImmutablePureComponent { handleMoveUp = () => { const { notification, onMoveUp } = this.props; onMoveUp(notification.get('id')); - } + }; handleMoveDown = () => { const { notification, onMoveDown } = this.props; onMoveDown(notification.get('id')); - } + }; handleOpen = () => { this.handleOpenProfile(); - } + }; handleOpenProfile = () => { const { notification } = this.props; this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); - } + }; handleMention = e => { e.preventDefault(); const { notification, onMention } = this.props; onMention(notification.get('account'), this.context.router.history); - } + }; getHandlers () { return { diff --git a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js index 64fd98bd92..1c04218bac 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js +++ b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js @@ -27,7 +27,7 @@ export default class ColumnSettings extends React.PureComponent { onPushChange = (path, checked) => { this.props.onChange(['push', ...path], checked); - } + }; render () { const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props; diff --git a/app/javascript/flavours/glitch/features/notifications/components/follow.js b/app/javascript/flavours/glitch/features/notifications/components/follow.js index b8fad19d0d..434d6609da 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/follow.js +++ b/app/javascript/flavours/glitch/features/notifications/components/follow.js @@ -26,28 +26,28 @@ export default class NotificationFollow extends ImmutablePureComponent { handleMoveUp = () => { const { notification, onMoveUp } = this.props; onMoveUp(notification.get('id')); - } + }; handleMoveDown = () => { const { notification, onMoveDown } = this.props; onMoveDown(notification.get('id')); - } + }; handleOpen = () => { this.handleOpenProfile(); - } + }; handleOpenProfile = () => { const { notification } = this.props; this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); - } + }; handleMention = e => { e.preventDefault(); const { notification, onMention } = this.props; onMention(notification.get('account'), this.context.router.history); - } + }; getHandlers () { return { diff --git a/app/javascript/flavours/glitch/features/notifications/components/follow_request.js b/app/javascript/flavours/glitch/features/notifications/components/follow_request.js index 69b92a06f2..a3fdf8a61b 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/follow_request.js +++ b/app/javascript/flavours/glitch/features/notifications/components/follow_request.js @@ -32,28 +32,28 @@ class FollowRequest extends ImmutablePureComponent { handleMoveUp = () => { const { notification, onMoveUp } = this.props; onMoveUp(notification.get('id')); - } + }; handleMoveDown = () => { const { notification, onMoveDown } = this.props; onMoveDown(notification.get('id')); - } + }; handleOpen = () => { this.handleOpenProfile(); - } + }; handleOpenProfile = () => { const { notification } = this.props; this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); - } + }; handleMention = e => { e.preventDefault(); const { notification, onMention } = this.props; onMention(notification.get('account'), this.context.router.history); - } + }; getHandlers () { return { diff --git a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js index dd163225e9..7b6ab0c7da 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js +++ b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js @@ -23,11 +23,11 @@ class NotificationsPermissionBanner extends React.PureComponent { handleClick = () => { this.props.dispatch(requestBrowserPermission()); - } + }; handleClose = () => { this.props.dispatch(changeSetting(['notifications', 'dismissPermissionBanner'], true)); - } + }; render () { const { intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/notifications/components/overlay.js b/app/javascript/flavours/glitch/features/notifications/components/overlay.js index f3ccafc065..21d3f8acf1 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/overlay.js +++ b/app/javascript/flavours/glitch/features/notifications/components/overlay.js @@ -29,7 +29,7 @@ class NotificationOverlay extends ImmutablePureComponent { const mark = !this.props.notification.get('markedForDelete'); const id = this.props.notification.get('id'); this.props.onMarkForDelete(id, mark); - } + }; render () { const { notification, show, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js b/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js index 223b7f75ff..2f0b48ef98 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js +++ b/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import classNames from 'classnames' +import classNames from 'classnames'; export default class PillBarButton extends React.PureComponent { @@ -12,12 +12,12 @@ export default class PillBarButton extends React.PureComponent { label: PropTypes.node.isRequired, onChange: PropTypes.func.isRequired, disabled: PropTypes.bool, - } + }; onChange = () => { const { settings, settingPath } = this.props; this.props.onChange(settingPath, !settings.getIn(settingPath)); - } + }; render () { const { prefix, settings, settingPath, label, disabled } = this.props; diff --git a/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js b/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js index e472f7c4fe..dc7b89b7fd 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js +++ b/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js @@ -14,11 +14,11 @@ export default class SettingToggle extends React.PureComponent { onChange: PropTypes.func.isRequired, defaultValue: PropTypes.bool, disabled: PropTypes.bool, - } + }; onChange = ({ target }) => { this.props.onChange(this.props.settingPath, target.checked); - } + }; render () { const { prefix, settings, settingPath, label, meta, defaultValue, disabled } = this.props; diff --git a/app/javascript/flavours/glitch/features/notifications/index.js b/app/javascript/flavours/glitch/features/notifications/index.js index fc42a4de4c..fff3656174 100644 --- a/app/javascript/flavours/glitch/features/notifications/index.js +++ b/app/javascript/flavours/glitch/features/notifications/index.js @@ -158,30 +158,30 @@ class Notifications extends React.PureComponent { } else { dispatch(addColumn('NOTIFICATIONS', {})); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; setColumnRef = c => { this.column = c; - } + }; handleMoveUp = id => { const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) - 1; this._selectChild(elementIndex, true); - } + }; handleMoveDown = id => { const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) + 1; this._selectChild(elementIndex, false); - } + }; _selectChild (index, align_top) { const container = this.column.node; @@ -213,16 +213,16 @@ class Notifications extends React.PureComponent { handleTransitionEndNCD = () => { this.setState({ animatingNCD: false }); - } + }; onEnterCleaningMode = () => { this.setState({ animatingNCD: true }); this.props.onEnterCleaningMode(!this.props.notifCleaningActive); - } + }; handleMarkAsRead = () => { this.props.onMarkAsRead(); - } + }; render () { const { intl, notifications, isLoading, isUnread, columnId, multiColumn, hasMore, numPending, showFilterBar, lastReadId, canMarkAsRead, needsNotificationPermission } = this.props; diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js index f05a763e05..bc312d5305 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js +++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js @@ -114,7 +114,7 @@ class Footer extends ImmutablePureComponent { _performReblog = (privacy) => { const { dispatch, status } = this.props; dispatch(reblog(status, privacy)); - } + }; handleReblogClick = e => { const { dispatch, status } = this.props; @@ -151,7 +151,7 @@ class Footer extends ImmutablePureComponent { } router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); - } + }; render () { const { status, intl, showReplyCount, withOpenButton } = this.props; diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/index.js b/app/javascript/flavours/glitch/features/picture_in_picture/index.js index 3e6a20faa8..d445b6d586 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/index.js +++ b/app/javascript/flavours/glitch/features/picture_in_picture/index.js @@ -35,7 +35,7 @@ class PictureInPicture extends React.Component { handleClose = () => { const { dispatch } = this.props; dispatch(removePictureInPicture()); - } + }; render () { const { type, src, currentTime, accountId, statusId, left } = this.props; diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js b/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js index 5a1efce0ad..db586ecf71 100644 --- a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js +++ b/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js @@ -4,7 +4,7 @@ import { injectIntl } from 'react-intl'; import { fetchPinnedAccountsSuggestions, clearPinnedAccountsSuggestions, - changePinnedAccountsSuggestions + changePinnedAccountsSuggestions, } from '../../../actions/accounts'; import Search from 'flavours/glitch/features/list_editor/components/search'; diff --git a/app/javascript/flavours/glitch/features/pinned_statuses/index.js b/app/javascript/flavours/glitch/features/pinned_statuses/index.js index eeeab46ab6..b7bd46fbe3 100644 --- a/app/javascript/flavours/glitch/features/pinned_statuses/index.js +++ b/app/javascript/flavours/glitch/features/pinned_statuses/index.js @@ -37,11 +37,11 @@ class PinnedStatuses extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; render () { const { intl, statusIds, hasMore, multiColumn } = this.props; diff --git a/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js index 5091bfb909..97b7566585 100644 --- a/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js +++ b/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js @@ -2,7 +2,7 @@ import { connect } from 'react-redux'; import ColumnSettings from '../components/column_settings'; import { changeSetting } from 'flavours/glitch/actions/settings'; import { changeColumnParams } from 'flavours/glitch/actions/columns'; - + const mapStateToProps = (state, { columnId }) => { const uuid = columnId; const columns = state.getIn(['settings', 'columns']); diff --git a/app/javascript/flavours/glitch/features/public_timeline/index.js b/app/javascript/flavours/glitch/features/public_timeline/index.js index a61a47de1b..810643f970 100644 --- a/app/javascript/flavours/glitch/features/public_timeline/index.js +++ b/app/javascript/flavours/glitch/features/public_timeline/index.js @@ -68,16 +68,16 @@ class PublicTimeline extends React.PureComponent { } else { dispatch(addColumn(onlyRemote ? 'REMOTE' : 'PUBLIC', { other: { onlyMedia, onlyRemote, allowLocalOnly } })); } - } + }; handleMove = (dir) => { const { columnId, dispatch } = this.props; dispatch(moveColumn(columnId, dir)); - } + }; handleHeaderClick = () => { this.column.scrollTop(); - } + }; componentDidMount () { const { dispatch, onlyMedia, onlyRemote, allowLocalOnly } = this.props; @@ -116,13 +116,13 @@ class PublicTimeline extends React.PureComponent { setRef = c => { this.column = c; - } + }; handleLoadMore = maxId => { const { dispatch, onlyMedia, onlyRemote, allowLocalOnly } = this.props; dispatch(expandPublicTimeline({ maxId, onlyMedia, onlyRemote, allowLocalOnly })); - } + }; render () { const { intl, columnId, hasUnread, multiColumn, onlyMedia, onlyRemote, allowLocalOnly } = this.props; diff --git a/app/javascript/flavours/glitch/features/reblogs/index.js b/app/javascript/flavours/glitch/features/reblogs/index.js index b097ff9d7f..46b1ed4e54 100644 --- a/app/javascript/flavours/glitch/features/reblogs/index.js +++ b/app/javascript/flavours/glitch/features/reblogs/index.js @@ -48,15 +48,15 @@ class Reblogs extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; setRef = c => { this.column = c; - } + }; handleRefresh = () => { this.props.dispatch(fetchReblogs(this.props.params.statusId)); - } + }; render () { const { intl, accountIds, multiColumn } = this.props; diff --git a/app/javascript/flavours/glitch/features/report/components/option.js b/app/javascript/flavours/glitch/features/report/components/option.js index 7e94f06547..6ecfc7a248 100644 --- a/app/javascript/flavours/glitch/features/report/components/option.js +++ b/app/javascript/flavours/glitch/features/report/components/option.js @@ -24,12 +24,12 @@ export default class Option extends React.PureComponent { e.preventDefault(); onToggle(value, !checked); } - } + }; handleChange = e => { const { value, onToggle } = this.props; onToggle(value, e.target.checked); - } + }; render () { const { name, value, checked, label, labelComponent, description, multiple } = this.props; diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js index 73913dd495..4901fc4ccb 100644 --- a/app/javascript/flavours/glitch/features/status/components/action_bar.js +++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js @@ -68,75 +68,75 @@ class ActionBar extends React.PureComponent { handleReplyClick = () => { this.props.onReply(this.props.status); - } + }; handleReblogClick = (e) => { this.props.onReblog(this.props.status, e); - } + }; handleFavouriteClick = (e) => { this.props.onFavourite(this.props.status, e); - } + }; handleBookmarkClick = (e) => { this.props.onBookmark(this.props.status, e); - } + }; handleDeleteClick = () => { this.props.onDelete(this.props.status, this.context.router.history); - } + }; handleRedraftClick = () => { this.props.onDelete(this.props.status, this.context.router.history, true); - } + }; handleEditClick = () => { this.props.onEdit(this.props.status, this.context.router.history); - } + }; handleDirectClick = () => { this.props.onDirect(this.props.status.get('account'), this.context.router.history); - } + }; handleMentionClick = () => { this.props.onMention(this.props.status.get('account'), this.context.router.history); - } + }; handleMuteClick = () => { this.props.onMute(this.props.status.get('account')); - } + }; handleConversationMuteClick = () => { this.props.onMuteConversation(this.props.status); - } + }; handleBlockClick = () => { this.props.onBlock(this.props.status); - } + }; handleReport = () => { this.props.onReport(this.props.status); - } + }; handlePinClick = () => { this.props.onPin(this.props.status); - } + }; handleShare = () => { navigator.share({ text: this.props.status.get('search_index'), url: this.props.status.get('url'), }); - } + }; handleEmbed = () => { this.props.onEmbed(this.props.status); - } + }; handleCopy = () => { const url = this.props.status.get('url'); navigator.clipboard.writeText(url); - } + }; render () { const { status, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/status/components/card.js b/app/javascript/flavours/glitch/features/status/components/card.js index 2d2e49eb8e..6a306ed148 100644 --- a/app/javascript/flavours/glitch/features/status/components/card.js +++ b/app/javascript/flavours/glitch/features/status/components/card.js @@ -138,7 +138,7 @@ export default class Card extends React.PureComponent { } else { this.setState({ embedded: true }); } - } + }; setRef = c => { this.node = c; @@ -146,17 +146,17 @@ export default class Card extends React.PureComponent { if (this.node) { this._setDimensions(); } - } + }; handleImageLoad = () => { this.setState({ previewLoaded: true }); - } + }; handleReveal = e => { e.preventDefault(); e.stopPropagation(); this.setState({ revealed: true }); - } + }; renderVideo () { const { card } = this.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 907fc3f1c1..644881fa50 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js @@ -56,28 +56,28 @@ class DetailedStatus extends ImmutablePureComponent { handleAccountClick = (e) => { if (e.button === 0 && !(e.ctrlKey || e.altKey || e.metaKey) && this.context.router) { e.preventDefault(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`, state); } e.stopPropagation(); - } + }; parseClick = (e, destination) => { if (e.button === 0 && !(e.ctrlKey || e.altKey || e.metaKey) && this.context.router) { e.preventDefault(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(destination, state); } e.stopPropagation(); - } + }; handleOpenVideo = (options) => { this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options); - } + }; _measureHeight (heightJustChanged) { if (this.props.measureHeight && this.node) { @@ -92,7 +92,7 @@ class DetailedStatus extends ImmutablePureComponent { setRef = c => { this.node = c; this._measureHeight(); - } + }; componentDidUpdate (prevProps, prevState) { this._measureHeight(prevState.height !== this.state.height); @@ -100,7 +100,7 @@ class DetailedStatus extends ImmutablePureComponent { handleChildUpdate = () => { this._measureHeight(); - } + }; handleModalLink = e => { e.preventDefault(); @@ -114,12 +114,12 @@ class DetailedStatus extends ImmutablePureComponent { } window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); - } + }; handleTranslate = () => { const { onTranslate, status } = this.props; onTranslate(status); - } + }; render () { const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status; diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index c22e7f0bd8..9b49d41e4a 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -263,15 +263,15 @@ class Status extends ImmutablePureComponent { } else if (this.props.status.get('spoiler_text')) { this.setExpansion(!this.state.isExpanded); } - } + }; handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); - } + }; handleModalFavourite = (status) => { this.props.dispatch(favourite(status)); - } + }; handleFavouriteClick = (status, e) => { const { dispatch } = this.props; @@ -294,7 +294,7 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handlePin = (status) => { if (status.get('pinned')) { @@ -302,7 +302,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(pin(status)); } - } + }; handleReplyClick = (status) => { const { askReplyConfirmation, dispatch, intl } = this.props; @@ -326,7 +326,7 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handleModalReblog = (status, privacy) => { const { dispatch } = this.props; @@ -336,7 +336,7 @@ class Status extends ImmutablePureComponent { } else { dispatch(reblog(status, privacy)); } - } + }; handleReblogClick = (status, e) => { const { settings, dispatch } = this.props; @@ -357,7 +357,7 @@ class Status extends ImmutablePureComponent { url: status.get('url'), })); } - } + }; handleBookmarkClick = (status) => { if (status.get('bookmarked')) { @@ -365,7 +365,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(bookmark(status)); } - } + }; handleDeleteClick = (status, history, withRedraft = false) => { const { dispatch, intl } = this.props; @@ -379,27 +379,27 @@ class Status extends ImmutablePureComponent { onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)), })); } - } + }; handleEditClick = (status, history) => { this.props.dispatch(editStatus(status.get('id'), history)); - } + }; handleDirectClick = (account, router) => { this.props.dispatch(directCompose(account, router)); - } + }; handleMentionClick = (account, router) => { this.props.dispatch(mentionCompose(account, router)); - } + }; handleOpenMedia = (media, index) => { this.props.dispatch(openModal('MEDIA', { statusId: this.props.status.get('id'), media, index })); - } + }; handleOpenVideo = (media, options) => { this.props.dispatch(openModal('VIDEO', { statusId: this.props.status.get('id'), media, options })); - } + }; handleHotkeyOpenMedia = e => { const { status } = this.props; @@ -413,11 +413,11 @@ class Status extends ImmutablePureComponent { this.handleOpenMedia(status.get('media_attachments'), 0); } } - } + }; handleMuteClick = (account) => { this.props.dispatch(initMuteModal(account)); - } + }; handleConversationMuteClick = (status) => { if (status.get('muted')) { @@ -425,7 +425,7 @@ class Status extends ImmutablePureComponent { } else { this.props.dispatch(muteStatus(status.get('id'))); } - } + }; handleToggleAll = () => { const { status, ancestorsIds, descendantsIds, settings } = this.props; @@ -442,7 +442,7 @@ class Status extends ImmutablePureComponent { } this.setState({ isExpanded: !isExpanded, threadExpanded: !isExpanded }); - } + }; handleTranslate = status => { const { dispatch } = this.props; @@ -452,61 +452,61 @@ class Status extends ImmutablePureComponent { } else { dispatch(translateStatus(status.get('id'))); } - } + }; handleBlockClick = (status) => { const { dispatch } = this.props; const account = status.get('account'); dispatch(initBlockModal(account)); - } + }; handleReport = (status) => { this.props.dispatch(initReport(status.get('account'), status)); - } + }; handleEmbed = (status) => { this.props.dispatch(openModal('EMBED', { url: status.get('url') })); - } + }; handleHotkeyToggleSensitive = () => { this.handleToggleMediaVisibility(); - } + }; handleHotkeyMoveUp = () => { this.handleMoveUp(this.props.status.get('id')); - } + }; handleHotkeyMoveDown = () => { this.handleMoveDown(this.props.status.get('id')); - } + }; handleHotkeyReply = e => { e.preventDefault(); this.handleReplyClick(this.props.status); - } + }; handleHotkeyFavourite = () => { this.handleFavouriteClick(this.props.status); - } + }; handleHotkeyBoost = () => { this.handleReblogClick(this.props.status); - } + }; handleHotkeyBookmark = () => { this.handleBookmarkClick(this.props.status); - } + }; handleHotkeyMention = e => { e.preventDefault(); this.handleMentionClick(this.props.status); - } + }; handleHotkeyOpenProfile = () => { - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`, state); - } + }; handleMoveUp = id => { const { status, ancestorsIds, descendantsIds } = this.props; @@ -523,7 +523,7 @@ class Status extends ImmutablePureComponent { this._selectChild(index - 1, true); } } - } + }; handleMoveDown = id => { const { status, ancestorsIds, descendantsIds } = this.props; @@ -540,7 +540,7 @@ class Status extends ImmutablePureComponent { this._selectChild(index + 1, false); } } - } + }; _selectChild (index, align_top) { const container = this.node; @@ -558,7 +558,7 @@ class Status extends ImmutablePureComponent { handleHeaderClick = () => { this.column.scrollTop(); - } + }; renderChildren (list) { return list.map(id => ( @@ -575,15 +575,15 @@ class Status extends ImmutablePureComponent { setExpansion = value => { this.setState({ isExpanded: value }); - } + }; setRef = c => { this.node = c; - } + }; setColumnRef = c => { this.column = c; - } + }; componentDidUpdate (prevProps) { if (this.props.params.statusId && (this.props.params.statusId !== prevProps.params.statusId || prevProps.ancestorsIds.size < this.props.ancestorsIds.size)) { @@ -605,7 +605,7 @@ class Status extends ImmutablePureComponent { onFullScreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; render () { let ancestors, descendants; diff --git a/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js b/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js index fa69d82a4e..35083503c4 100644 --- a/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js +++ b/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js @@ -72,7 +72,7 @@ class SubscribedLanguagesModal extends ImmutablePureComponent { handleSubmit = () => { this.props.onSubmit(this.state.selectedLanguages.toArray()); this.props.onClose(); - } + }; renderItem (value) { const language = this.props.languages.find(language => language[0] === value); diff --git a/app/javascript/flavours/glitch/features/ui/components/actions_modal.js b/app/javascript/flavours/glitch/features/ui/components/actions_modal.js index aae2e4426d..c6e3ee37c7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/actions_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/actions_modal.js @@ -52,7 +52,7 @@ export default class ActionsModal extends ImmutablePureComponent { ); - } + }; render () { const status = this.props.status && ( diff --git a/app/javascript/flavours/glitch/features/ui/components/block_modal.js b/app/javascript/flavours/glitch/features/ui/components/block_modal.js index a07baeaa64..6c9d2043ca 100644 --- a/app/javascript/flavours/glitch/features/ui/components/block_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/block_modal.js @@ -55,20 +55,20 @@ class BlockModal extends React.PureComponent { handleClick = () => { this.props.onClose(); this.props.onConfirm(this.props.account); - } + }; handleSecondary = () => { this.props.onClose(); this.props.onBlockAndReport(this.props.account); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; render () { const { account } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/boost_modal.js b/app/javascript/flavours/glitch/features/ui/components/boost_modal.js index 8d9496bb98..a65b84e209 100644 --- a/app/javascript/flavours/glitch/features/ui/components/boost_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/boost_modal.js @@ -58,17 +58,17 @@ class BoostModal extends ImmutablePureComponent { handleReblog = () => { this.props.onReblog(this.props.status, this.props.privacy); this.props.onClose(); - } + }; handleAccountClick = (e) => { if (e.button === 0) { e.preventDefault(); this.props.onClose(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`, state); } - } + }; _findContainer = () => { return document.getElementsByClassName('modal-root__container')[0]; @@ -76,7 +76,7 @@ class BoostModal extends ImmutablePureComponent { setRef = (c) => { this.button = c; - } + }; render () { const { status, missingMediaDescription, privacy, intl } = this.props; @@ -116,9 +116,9 @@ class BoostModal extends ImmutablePureComponent {
    { missingMediaDescription ? - + : - Shift + }} /> + Shift + }} /> }
    diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle.js b/app/javascript/flavours/glitch/features/ui/components/bundle.js index 8f0d7b8b1f..27b13ecfe7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/bundle.js +++ b/app/javascript/flavours/glitch/features/ui/components/bundle.js @@ -15,7 +15,7 @@ class Bundle extends React.Component { onFetch: PropTypes.func, onFetchSuccess: PropTypes.func, onFetchFail: PropTypes.func, - } + }; static defaultProps = { loading: emptyComponent, @@ -24,14 +24,14 @@ class Bundle extends React.Component { onFetch: noop, onFetchSuccess: noop, onFetchFail: noop, - } + }; - static cache = {} + static cache = {}; state = { mod: undefined, forceRender: false, - } + }; componentWillMount() { this.load(this.props); @@ -84,7 +84,7 @@ class Bundle extends React.Component { this.setState({ mod: null }); onFetchFail(error); }); - } + }; render() { const { loading: Loading, error: Error, children, renderDelay } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js index 7cbe1413d7..88304dc361 100644 --- a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js +++ b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js @@ -31,7 +31,7 @@ class GIF extends React.PureComponent { if (!animate) { this.setState({ hovering: true }); } - } + }; handleMouseLeave = () => { const { animate } = this.props; @@ -39,7 +39,7 @@ class GIF extends React.PureComponent { if (!animate) { this.setState({ hovering: false }); } - } + }; render () { const { src, staticSrc, className, animate } = this.props; @@ -75,7 +75,7 @@ class CopyButton extends React.PureComponent { navigator.clipboard.writeText(value); this.setState({ copied: true }); this.timeout = setTimeout(() => this.setState({ copied: false }), 700); - } + }; componentWillUnmount () { if (this.timeout) clearTimeout(this.timeout); @@ -113,7 +113,7 @@ class BundleColumnError extends React.PureComponent { if (onRetry) { onRetry(); } - } + }; render () { const { errorType, multiColumn, stacktrace } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js b/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js index 2c14a1e5c3..b791054503 100644 --- a/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js +++ b/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js @@ -16,11 +16,11 @@ class BundleModalError extends React.Component { onRetry: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, - } + }; handleRetry = () => { this.props.onRetry(); - } + }; render () { const { onClose, intl: { formatMessage } } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/column.js b/app/javascript/flavours/glitch/features/ui/components/column.js index e9c1e2f87e..cc2abc43a4 100644 --- a/app/javascript/flavours/glitch/features/ui/components/column.js +++ b/app/javascript/flavours/glitch/features/ui/components/column.js @@ -25,7 +25,7 @@ export default class Column extends React.PureComponent { } this._interruptScrollAnimation = scrollTop(scrollable); - } + }; scrollTop () { const scrollable = this.props.bindToDocument ? document.scrollingElement : this.node.querySelector('.scrollable'); @@ -42,11 +42,11 @@ export default class Column extends React.PureComponent { if (typeof this._interruptScrollAnimation !== 'undefined') { this._interruptScrollAnimation(); } - }, 200) + }, 200); setRef = (c) => { this.node = c; - } + }; render () { const { heading, icon, children, active, hideHeadingOnMobile, name } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/column_header.js b/app/javascript/flavours/glitch/features/ui/components/column_header.js index 528ff73a68..151476f8ba 100644 --- a/app/javascript/flavours/glitch/features/ui/components/column_header.js +++ b/app/javascript/flavours/glitch/features/ui/components/column_header.js @@ -15,7 +15,7 @@ export default class ColumnHeader extends React.PureComponent { handleClick = () => { this.props.onClick(); - } + }; render () { const { icon, type, active, columnHeaderId } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/column_link.js b/app/javascript/flavours/glitch/features/ui/components/column_link.js index bd1c20b471..dcdac077fe 100644 --- a/app/javascript/flavours/glitch/features/ui/components/column_link.js +++ b/app/javascript/flavours/glitch/features/ui/components/column_link.js @@ -30,7 +30,7 @@ const ColumnLink = ({ icon, text, to, onClick, href, method, badge, transparent, e.preventDefault(); e.stopPropagation(); return onClick(e); - } + }; return ( {iconElement} diff --git a/app/javascript/flavours/glitch/features/ui/components/columns_area.js b/app/javascript/flavours/glitch/features/ui/components/columns_area.js index 993a507969..3b3b0d58f7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/columns_area.js +++ b/app/javascript/flavours/glitch/features/ui/components/columns_area.js @@ -59,7 +59,7 @@ export default class ColumnsArea extends ImmutablePureComponent { state = { renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches), - } + }; componentDidMount() { if (!this.props.singleColumn) { @@ -113,7 +113,7 @@ export default class ColumnsArea extends ImmutablePureComponent { handleLayoutChange = (e) => { this.setState({ renderComposePanel: !e.matches }); - } + }; handleWheel = () => { if (typeof this._interruptScrollAnimation !== 'function') { @@ -121,19 +121,19 @@ export default class ColumnsArea extends ImmutablePureComponent { } this._interruptScrollAnimation(); - } + }; setRef = (node) => { this.node = node; - } + }; renderLoading = columnId => () => { return columnId === 'COMPOSE' ? : ; - } + }; renderError = (props) => { return ; - } + }; render () { const { columns, children, singleColumn, navbarUnder, openSettings } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/compose_panel.js b/app/javascript/flavours/glitch/features/ui/components/compose_panel.js index dde252a61e..34c194c99d 100644 --- a/app/javascript/flavours/glitch/features/ui/components/compose_panel.js +++ b/app/javascript/flavours/glitch/features/ui/components/compose_panel.js @@ -55,4 +55,4 @@ class ComposePanel extends React.PureComponent { ); } -}; +} diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js index a665b9fb11..94935de5d8 100644 --- a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js @@ -34,24 +34,24 @@ class ConfirmationModal extends React.PureComponent { if (this.props.onDoNotAsk && this.doNotAskCheckbox.checked) { this.props.onDoNotAsk(); } - } + }; handleSecondary = () => { this.props.onClose(); this.props.onSecondary(); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; setDoNotAskRef = (c) => { this.doNotAskCheckbox = c; - } + }; render () { const { message, confirm, secondary, onDoNotAsk } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js b/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js index 68f04cb21c..37f52b014b 100644 --- a/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js @@ -30,11 +30,11 @@ class DeprecatedSettingsModal extends React.PureComponent { handleClick = () => { this.props.onConfirm(); this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; render () { const { settings, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js index c861d4d814..35933bedbd 100644 --- a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js +++ b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js @@ -46,7 +46,7 @@ class DisabledAccountBanner extends React.PureComponent { this.props.onLogout(); return false; - } + }; render () { const { disabledAcct, movedToAcct } = this.props; @@ -89,4 +89,4 @@ class DisabledAccountBanner extends React.PureComponent { ); } -}; +} diff --git a/app/javascript/flavours/glitch/features/ui/components/doodle_modal.js b/app/javascript/flavours/glitch/features/ui/components/doodle_modal.js index 0d10204fca..c8ea33a0e3 100644 --- a/app/javascript/flavours/glitch/features/ui/components/doodle_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/doodle_modal.js @@ -279,7 +279,7 @@ class DoodleModal extends ImmutablePureComponent { this.swapped = false; window.addEventListener('keyup', this.handleKeyUp, false); window.addEventListener('keydown', this.handleKeyDown, false); - }; + } /** * Tear component down @@ -575,7 +575,7 @@ class DoodleModal extends ImmutablePureComponent {
    @@ -602,7 +602,7 @@ class DoodleModal extends ImmutablePureComponent { 'foreground': this.fg === c[0], 'background': this.bg === c[0], })} - /> + />, ) }
    diff --git a/app/javascript/flavours/glitch/features/ui/components/embed_modal.js b/app/javascript/flavours/glitch/features/ui/components/embed_modal.js index 624b68f7ec..92bfa79c41 100644 --- a/app/javascript/flavours/glitch/features/ui/components/embed_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/embed_modal.js @@ -17,7 +17,7 @@ class EmbedModal extends ImmutablePureComponent { onClose: PropTypes.func.isRequired, onError: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, - } + }; state = { loading: false, @@ -48,11 +48,11 @@ class EmbedModal extends ImmutablePureComponent { setIframeRef = c => { this.iframe = c; - } + }; handleTextareaClick = (e) => { e.target.select(); - } + }; render () { const { intl, onClose } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js index d7f671d581..78cbfeb511 100644 --- a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js @@ -38,21 +38,21 @@ class FavouriteModal extends ImmutablePureComponent { handleFavourite = () => { this.props.onFavourite(this.props.status); this.props.onClose(); - } + }; handleAccountClick = (e) => { if (e.button === 0) { e.preventDefault(); this.props.onClose(); - let state = {...this.context.router.history.location.state}; + let state = { ...this.context.router.history.location.state }; state.mastodonBackSteps = (state.mastodonBackSteps || 0) + 1; this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`, state); } - } + }; setRef = (c) => { this.button = c; - } + }; render () { const { status, intl } = this.props; 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 9eb1c0fbfb..e36657fabc 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 @@ -135,7 +135,7 @@ class FocalPointModal extends ImmutablePureComponent { this.updatePosition(e); this.setState({ dragging: true }); - } + }; handleTouchStart = e => { document.addEventListener('touchmove', this.handleMouseMove); @@ -143,25 +143,25 @@ class FocalPointModal extends ImmutablePureComponent { this.updatePosition(e); this.setState({ dragging: true }); - } + }; handleMouseMove = e => { this.updatePosition(e); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove); document.removeEventListener('mouseup', this.handleMouseUp); this.setState({ dragging: false }); - } + }; handleTouchEnd = () => { document.removeEventListener('touchmove', this.handleMouseMove); document.removeEventListener('touchend', this.handleTouchEnd); this.setState({ dragging: false }); - } + }; updatePosition = e => { const { x, y } = getPointerPosition(this.node, e); @@ -169,11 +169,11 @@ class FocalPointModal extends ImmutablePureComponent { const focusY = (y - .5) * -2; this.props.onChangeFocus(focusX, focusY); - } + }; handleChange = e => { this.props.onChangeDescription(e.target.value); - } + }; handleKeyDown = (e) => { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { @@ -182,11 +182,11 @@ class FocalPointModal extends ImmutablePureComponent { this.props.onChangeDescription(e.target.value); this.handleSubmit(); } - } + }; handleSubmit = () => { this.props.onSave(this.props.description, this.props.focusX, this.props.focusY); - } + }; getCloseConfirmationMessage = () => { const { intl, dirty } = this.props; @@ -199,15 +199,15 @@ class FocalPointModal extends ImmutablePureComponent { } else { return null; } - } + }; setRef = c => { this.node = c; - } + }; handleTextDetection = () => { this._detectText(); - } + }; _detectText = (refreshCache = false) => { const { media } = this.props; @@ -258,21 +258,21 @@ class FocalPointModal extends ImmutablePureComponent { console.error(e); this.setState({ detecting: false }); }); - } + }; handleThumbnailChange = e => { if (e.target.files.length > 0) { this.props.onSelectThumbnail(e.target.files); } - } + }; setFileInputRef = c => { this.fileInput = c; - } + }; handleFileInputClick = () => { this.fileInput.click(); - } + }; render () { const { media, intl, account, onClose, isUploadingThumbnail, description, lang, focusX, focusY, dirty, is_changing_upload } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/image_loader.js b/app/javascript/flavours/glitch/features/ui/components/image_loader.js index dfa0efe49b..92aeef5c4f 100644 --- a/app/javascript/flavours/glitch/features/ui/components/image_loader.js +++ b/app/javascript/flavours/glitch/features/ui/components/image_loader.js @@ -14,7 +14,7 @@ export default class ImageLoader extends PureComponent { height: PropTypes.number, onClick: PropTypes.func, zoomButtonHidden: PropTypes.bool, - } + }; static defaultProps = { alt: '', @@ -26,7 +26,7 @@ export default class ImageLoader extends PureComponent { loading: true, error: false, width: null, - } + }; removers = []; canvas = null; @@ -86,7 +86,7 @@ export default class ImageLoader extends PureComponent { image.addEventListener('load', handleLoad); image.src = previewSrc; this.removers.push(removeEventListeners); - }) + }); clearPreviewCanvas () { const { width, height } = this.canvas; @@ -126,7 +126,7 @@ export default class ImageLoader extends PureComponent { setCanvasRef = c => { this.canvas = c; if (c) this.setState({ width: c.offsetWidth }); - } + }; render () { const { alt, src, width, height, onClick } = this.props; 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 ac0c78674e..c4bea9f310 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.js +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.js @@ -44,7 +44,7 @@ class LinkFooter extends React.PureComponent { this.props.onLogout(); return false; - } + }; render () { const { signedIn, permissions } = this.context.identity; @@ -93,4 +93,4 @@ class LinkFooter extends React.PureComponent { ); } -}; +} diff --git a/app/javascript/flavours/glitch/features/ui/components/media_modal.js b/app/javascript/flavours/glitch/features/ui/components/media_modal.js index ec3af857da..24559264ea 100644 --- a/app/javascript/flavours/glitch/features/ui/components/media_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/media_modal.js @@ -47,27 +47,27 @@ class MediaModal extends ImmutablePureComponent { handleSwipe = (index) => { this.setState({ index: index % this.props.media.size }); - } + }; handleTransitionEnd = () => { this.setState({ zoomButtonHidden: false, }); - } + }; handleNextClick = () => { this.setState({ index: (this.getIndex() + 1) % this.props.media.size, zoomButtonHidden: true, }); - } + }; handlePrevClick = () => { this.setState({ index: (this.props.media.size + this.getIndex() - 1) % this.props.media.size, zoomButtonHidden: true, }); - } + }; handleChangeIndex = (e) => { const index = Number(e.currentTarget.getAttribute('data-index')); @@ -76,7 +76,7 @@ class MediaModal extends ImmutablePureComponent { index: index % this.props.media.size, zoomButtonHidden: true, }); - } + }; handleKeyDown = (e) => { switch(e.key) { @@ -91,7 +91,7 @@ class MediaModal extends ImmutablePureComponent { e.stopPropagation(); break; } - } + }; componentDidMount () { window.addEventListener('keydown', this.handleKeyDown, false); 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 379f57cbbe..d04a2d53ac 100644 --- a/app/javascript/flavours/glitch/features/ui/components/modal_root.js +++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.js @@ -76,7 +76,7 @@ export default class ModalRoot extends React.PureComponent { }; componentDidUpdate () { - if (!!this.props.type) { + if (this.props.type) { document.body.classList.add('with-modals--active'); document.documentElement.style.marginRight = `${getScrollbarWidth()}px`; } else { @@ -87,17 +87,17 @@ export default class ModalRoot extends React.PureComponent { setBackgroundColor = color => { this.setState({ backgroundColor: color }); - } + }; renderLoading = modalId => () => { return ['MEDIA', 'VIDEO', 'BOOST', 'FAVOURITE', 'DOODLE', 'CONFIRM', 'ACTIONS'].indexOf(modalId) === -1 ? : null; - } + }; renderError = (props) => { const { onClose } = this.props; return ; - } + }; handleClose = (ignoreFocus = false) => { const { onClose } = this.props; @@ -110,14 +110,14 @@ export default class ModalRoot extends React.PureComponent { // This would be much smoother with react-intl 3+ and `forwardRef`. } onClose(message, ignoreFocus); - } + }; setModalRef = (c) => { this._modal = c; - } + }; // prevent closing of modal when clicking the overlay - noop = () => {} + noop = () => {}; render () { const { type, props, ignoreFocus } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/mute_modal.js b/app/javascript/flavours/glitch/features/ui/components/mute_modal.js index 7d25db3162..f8bb9a3642 100644 --- a/app/javascript/flavours/glitch/features/ui/components/mute_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/mute_modal.js @@ -65,23 +65,23 @@ class MuteModal extends React.PureComponent { handleClick = () => { this.props.onClose(); this.props.onConfirm(this.props.account, this.props.notifications, this.props.muteDuration); - } + }; handleCancel = () => { this.props.onClose(); - } + }; setRef = (c) => { this.button = c; - } + }; toggleNotifications = () => { this.props.onToggleNotifications(); - } + }; changeMuteDuration = (e) => { this.props.onChangeMuteDuration(e); - } + }; render () { const { account, notifications, muteDuration, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js index 611fae1ced..d972fe3b5b 100644 --- a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js @@ -49,7 +49,7 @@ const PageTwo = ({ intl, myAccount }) => ( privacy='public' text='Awoo! #introductions' spoilerText='' - suggestions={ [] } + suggestions={[]} />
    @@ -195,7 +195,7 @@ class OnboardingModal extends React.PureComponent { , , ]; - }; + } componentDidMount() { window.addEventListener('keyup', this.handleKeyUp); @@ -208,30 +208,30 @@ class OnboardingModal extends React.PureComponent { handleSkip = (e) => { e.preventDefault(); this.props.onClose(); - } + }; handleDot = (e) => { const i = Number(e.currentTarget.getAttribute('data-index')); e.preventDefault(); this.setState({ currentIndex: i }); - } + }; handlePrev = () => { this.setState(({ currentIndex }) => ({ currentIndex: Math.max(0, currentIndex - 1), })); - } + }; handleNext = () => { const { pages } = this; this.setState(({ currentIndex }) => ({ currentIndex: Math.min(currentIndex + 1, pages.length - 1), })); - } + }; handleSwipe = (index) => { this.setState({ currentIndex: index }); - } + }; handleKeyUp = ({ key }) => { switch (key) { @@ -242,11 +242,11 @@ class OnboardingModal extends React.PureComponent { this.handleNext(); break; } - } + }; handleClose = () => { this.props.onClose(); - } + }; render () { const { pages } = this; diff --git a/app/javascript/flavours/glitch/features/ui/components/report_modal.js b/app/javascript/flavours/glitch/features/ui/components/report_modal.js index 7b6a4a7847..4d7f84bae0 100644 --- a/app/javascript/flavours/glitch/features/ui/components/report_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/report_modal.js @@ -96,7 +96,7 @@ class ReportModal extends ImmutablePureComponent { } else { this.setState({ selectedRuleIds: selectedRuleIds.remove(ruleId) }); } - } + }; handleChangeCategory = category => { this.setState({ category }); diff --git a/app/javascript/flavours/glitch/features/ui/components/upload_area.js b/app/javascript/flavours/glitch/features/ui/components/upload_area.js index 6958ba9df0..0e07b67f87 100644 --- a/app/javascript/flavours/glitch/features/ui/components/upload_area.js +++ b/app/javascript/flavours/glitch/features/ui/components/upload_area.js @@ -22,7 +22,7 @@ export default class UploadArea extends React.PureComponent { break; } } - } + }; componentDidMount () { window.addEventListener('keyup', this.handleKeyUp, false); diff --git a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.js b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.js index caeeced642..50b36b478b 100644 --- a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.js +++ b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.js @@ -102,7 +102,7 @@ class ZoomableImage extends React.PureComponent { onClick: PropTypes.func, zoomButtonHidden: PropTypes.bool, intl: PropTypes.object.isRequired, - } + }; static defaultProps = { alt: '', @@ -132,7 +132,7 @@ class ZoomableImage extends React.PureComponent { dragged: false, lockScroll: { x: 0, y: 0 }, lockTranslate: { x: 0, y: 0 }, - } + }; removers = []; container = null; @@ -212,7 +212,7 @@ class ZoomableImage extends React.PureComponent { // lock horizontal scroll this.container.scrollLeft = Math.max(this.container.scrollLeft + event.pixelX, this.state.lockScroll.x); - } + }; mouseDownHandler = e => { this.container.style.cursor = 'grabbing'; @@ -228,7 +228,7 @@ class ZoomableImage extends React.PureComponent { this.image.addEventListener('mousemove', this.mouseMoveHandler); this.image.addEventListener('mouseup', this.mouseUpHandler); - } + }; mouseMoveHandler = e => { const dx = e.clientX - this.state.dragPosition.x; @@ -238,7 +238,7 @@ class ZoomableImage extends React.PureComponent { this.container.scrollTop = Math.max(this.state.dragPosition.top - dy, this.state.lockScroll.y); this.setState({ dragged: true }); - } + }; mouseUpHandler = () => { this.container.style.cursor = 'grab'; @@ -246,13 +246,13 @@ class ZoomableImage extends React.PureComponent { this.image.removeEventListener('mousemove', this.mouseMoveHandler); this.image.removeEventListener('mouseup', this.mouseUpHandler); - } + }; handleTouchStart = e => { if (e.touches.length !== 2) return; this.lastDistance = getDistance(...e.touches); - } + }; handleTouchMove = e => { const { scrollTop, scrollHeight, clientHeight } = this.container; @@ -275,7 +275,7 @@ class ZoomableImage extends React.PureComponent { this.lastMidpoint = midpoint; this.lastDistance = distance; - } + }; zoom(nextScale, midpoint) { const { scale, zoomMatrix } = this.state; @@ -314,11 +314,11 @@ class ZoomableImage extends React.PureComponent { const handler = this.props.onClick; if (handler) handler(); this.setState({ navigationHidden: !this.state.navigationHidden }); - } + }; handleMouseDown = e => { e.preventDefault(); - } + }; initZoomMatrix = () => { const { width, height } = this.props; @@ -350,7 +350,7 @@ class ZoomableImage extends React.PureComponent { translateY: translateY, }, }); - } + }; handleZoomClick = e => { e.preventDefault(); @@ -392,15 +392,15 @@ class ZoomableImage extends React.PureComponent { this.container.style.cursor = 'grab'; this.container.style.removeProperty('user-select'); - } + }; setContainerRef = c => { this.container = c; - } + }; setImageRef = c => { this.image = c; - } + }; render () { const { alt, src, width, height, intl } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/index.js b/app/javascript/flavours/glitch/features/ui/index.js index d8889f9f9a..9255e346e4 100644 --- a/app/javascript/flavours/glitch/features/ui/index.js +++ b/app/javascript/flavours/glitch/features/ui/index.js @@ -162,7 +162,7 @@ class SwitchingColumnsArea extends React.PureComponent { if (c) { this.node = c; } - } + }; render () { const { children, mobile, navbarUnder } = this.props; @@ -240,7 +240,7 @@ class SwitchingColumnsArea extends React.PureComponent { ); - }; + } } @@ -292,7 +292,7 @@ class UI extends React.Component { // but we set user-friendly message for other browsers, e.g. Edge. e.returnValue = intl.formatMessage(messages.beforeUnload); } - } + }; handleDragEnter = (e) => { e.preventDefault(); @@ -308,7 +308,7 @@ class UI extends React.Component { if (e.dataTransfer && e.dataTransfer.types.includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) { this.setState({ draggingOver: true }); } - } + }; handleDragOver = (e) => { if (this.dataTransferIsText(e.dataTransfer)) return false; @@ -322,7 +322,7 @@ class UI extends React.Component { } return false; - } + }; handleDrop = (e) => { if (this.dataTransferIsText(e.dataTransfer)) return; @@ -335,7 +335,7 @@ class UI extends React.Component { if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) { this.props.dispatch(uploadCompose(e.dataTransfer.files)); } - } + }; handleDragLeave = (e) => { e.preventDefault(); @@ -348,15 +348,15 @@ class UI extends React.Component { } this.setState({ draggingOver: false }); - } + }; dataTransferIsText = (dataTransfer) => { return (dataTransfer && Array.from(dataTransfer.types).filter((type) => type === 'text/plain').length === 1); - } + }; closeUploadModal = () => { this.setState({ draggingOver: false }); - } + }; handleServiceWorkerPostMessage = ({ data }) => { if (data.type === 'navigate') { @@ -364,7 +364,7 @@ class UI extends React.Component { } else { console.warn('Unknown message type:', data.type); } - } + }; handleVisibilityChange = () => { const visibility = !document[this.visibilityHiddenProp]; @@ -372,7 +372,7 @@ class UI extends React.Component { if (visibility) { this.props.dispatch(submitMarkers({ immediate: true })); } - } + }; handleLayoutChange = debounce(() => { this.props.dispatch(clearHeight()); // The cached heights are no longer accurate, invalidate @@ -389,7 +389,7 @@ class UI extends React.Component { } else { this.handleLayoutChange(); } - } + }; componentDidMount () { const { signedIn } = this.context.identity; @@ -407,7 +407,7 @@ class UI extends React.Component { navigator.serviceWorker.addEventListener('message', this.handleServiceWorkerPostMessage); } - this.favicon = new Favico({ animation:"none" }); + this.favicon = new Favico({ animation:'none' }); // On first launch, redirect to the follow recommendations page if (signedIn && this.props.firstLaunch) { @@ -487,7 +487,7 @@ class UI extends React.Component { setRef = c => { this.node = c; - } + }; handleHotkeyNew = e => { e.preventDefault(); @@ -497,7 +497,7 @@ class UI extends React.Component { if (element) { element.focus(); } - } + }; handleHotkeySearch = e => { e.preventDefault(); @@ -507,17 +507,17 @@ class UI extends React.Component { if (element) { element.focus(); } - } + }; handleHotkeyForceNew = e => { this.handleHotkeyNew(e); this.props.dispatch(resetCompose()); - } + }; handleHotkeyToggleComposeSpoilers = e => { e.preventDefault(); this.props.dispatch(changeComposeSpoilerness()); - } + }; handleHotkeyFocusColumn = e => { const index = (e.key * 1) + 1; // First child is drawer, skip that @@ -535,7 +535,7 @@ class UI extends React.Component { status.focus(); } } - } + }; handleHotkeyBack = () => { // if history is exhausted, or we would leave mastodon, just go to root. @@ -544,11 +544,11 @@ class UI extends React.Component { } else { this.props.history.push('/'); } - } + }; setHotkeysRef = c => { this.hotkeys = c; - } + }; handleHotkeyToggleHelp = () => { if (this.props.location.pathname === '/keyboard-shortcuts') { @@ -556,55 +556,55 @@ class UI extends React.Component { } else { this.props.history.push('/keyboard-shortcuts'); } - } + }; handleHotkeyGoToHome = () => { this.props.history.push('/home'); - } + }; handleHotkeyGoToNotifications = () => { this.props.history.push('/notifications'); - } + }; handleHotkeyGoToLocal = () => { this.props.history.push('/public/local'); - } + }; handleHotkeyGoToFederated = () => { this.props.history.push('/public'); - } + }; handleHotkeyGoToDirect = () => { this.props.history.push('/conversations'); - } + }; handleHotkeyGoToStart = () => { this.props.history.push('/getting-started'); - } + }; handleHotkeyGoToFavourites = () => { this.props.history.push('/favourites'); - } + }; handleHotkeyGoToPinned = () => { this.props.history.push('/pinned'); - } + }; handleHotkeyGoToProfile = () => { this.props.history.push(`/@${this.props.username}`); - } + }; handleHotkeyGoToBlocked = () => { this.props.history.push('/blocks'); - } + }; handleHotkeyGoToMuted = () => { this.props.history.push('/mutes'); - } + }; handleHotkeyGoToRequests = () => { this.props.history.push('/follow_requests'); - } + }; render () { const { draggingOver } = this.state; @@ -661,7 +661,7 @@ class UI extends React.Component { @{moved.get('acct')} - )}} + ) }} />
    )} diff --git a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js index 8946c8252a..b1c952d87d 100644 --- a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js +++ b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js @@ -36,7 +36,7 @@ export class WrappedRoute extends React.Component { content: PropTypes.node, multiColumn: PropTypes.bool, componentParams: PropTypes.object, - } + }; static defaultProps = { componentParams: {}, @@ -46,7 +46,7 @@ export class WrappedRoute extends React.Component { return { hasError: true, }; - }; + } state = { hasError: false, @@ -80,17 +80,17 @@ export class WrappedRoute extends React.Component { {Component => {content}} ); - } + }; renderLoading = () => { const { multiColumn } = this.props; return ; - } + }; renderError = (props) => { return ; - } + }; render () { const { component: Component, content, ...rest } = this.props; diff --git a/app/javascript/flavours/glitch/features/ui/util/reduced_motion.js b/app/javascript/flavours/glitch/features/ui/util/reduced_motion.js index 95519042b4..1123b80ed9 100644 --- a/app/javascript/flavours/glitch/features/ui/util/reduced_motion.js +++ b/app/javascript/flavours/glitch/features/ui/util/reduced_motion.js @@ -17,7 +17,7 @@ class ReducedMotion extends React.Component { defaultStyle: PropTypes.object, style: PropTypes.object, children: PropTypes.func, - } + }; render() { diff --git a/app/javascript/flavours/glitch/features/video/index.js b/app/javascript/flavours/glitch/features/video/index.js index 0daab747b6..cb923bcf76 100644 --- a/app/javascript/flavours/glitch/features/video/index.js +++ b/app/javascript/flavours/glitch/features/video/index.js @@ -156,7 +156,7 @@ class Video extends React.PureComponent { if (this.player) { this._setDimensions(); } - } + }; _setDimensions () { const width = this.player.offsetWidth; @@ -178,26 +178,26 @@ class Video extends React.PureComponent { if (this.video) { this.setState({ volume: this.video.volume, muted: this.video.muted }); } - } + }; setSeekRef = c => { this.seek = c; - } + }; setVolumeRef = c => { this.volume = c; - } + }; handleClickRoot = e => e.stopPropagation(); handlePlay = () => { this.setState({ paused: false }); this._updateTime(); - } + }; handlePause = () => { this.setState({ paused: true }); - } + }; _updateTime () { requestAnimationFrame(() => { @@ -216,7 +216,7 @@ class Video extends React.PureComponent { currentTime: this.video.currentTime, duration:this.video.duration, }); - } + }; handleVolumeMouseDown = e => { document.addEventListener('mousemove', this.handleMouseVolSlide, true); @@ -228,14 +228,14 @@ class Video extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleVolumeMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseVolSlide, true); document.removeEventListener('mouseup', this.handleVolumeMouseUp, true); document.removeEventListener('touchmove', this.handleMouseVolSlide, true); document.removeEventListener('touchend', this.handleVolumeMouseUp, true); - } + }; handleMouseVolSlide = throttle(e => { const { x } = getPointerPosition(this.volume, e); @@ -259,7 +259,7 @@ class Video extends React.PureComponent { e.preventDefault(); e.stopPropagation(); - } + }; handleMouseUp = () => { document.removeEventListener('mousemove', this.handleMouseMove, true); @@ -269,7 +269,7 @@ class Video extends React.PureComponent { this.setState({ dragging: false }); this.video.play(); - } + }; handleMouseMove = throttle(e => { const { x } = getPointerPosition(this.seek, e); @@ -301,7 +301,7 @@ class Video extends React.PureComponent { e.stopPropagation(); this.togglePlay(); } - } + }; handleKeyDown = e => { const frameTime = 1 / this.getFrameRate(); @@ -355,7 +355,7 @@ class Video extends React.PureComponent { exitFullscreen(); } } - } + }; togglePlay = () => { if (this.state.paused) { @@ -363,7 +363,7 @@ class Video extends React.PureComponent { } else { this.setState({ paused: true }, () => this.video.pause()); } - } + }; toggleFullscreen = () => { if (isFullscreen()) { @@ -371,7 +371,7 @@ class Video extends React.PureComponent { } else { requestFullscreen(this.player); } - } + }; componentDidMount () { document.addEventListener('fullscreenchange', this.handleFullscreenChange, true); @@ -444,19 +444,19 @@ class Video extends React.PureComponent { this.setState({ paused: true }); } - }, 150, { trailing: true }) + }, 150, { trailing: true }); handleFullscreenChange = () => { this.setState({ fullscreen: isFullscreen() }); - } + }; handleMouseEnter = () => { this.setState({ hovered: true }); - } + }; handleMouseLeave = () => { this.setState({ hovered: false }); - } + }; toggleMute = () => { const muted = !this.video.muted; @@ -464,7 +464,7 @@ class Video extends React.PureComponent { this.setState({ muted }, () => { this.video.muted = muted; }); - } + }; toggleReveal = () => { if (this.state.revealed) { @@ -476,7 +476,7 @@ class Video extends React.PureComponent { } else { this.setState({ revealed: !this.state.revealed }); } - } + }; handleLoadedData = () => { const { currentTime, volume, muted, autoPlay } = this.props; @@ -496,7 +496,7 @@ class Video extends React.PureComponent { if (autoPlay) { this.video.play(); } - } + }; handleProgress = () => { const lastTimeRange = this.video.buffered.length - 1; @@ -504,11 +504,11 @@ class Video extends React.PureComponent { if (lastTimeRange > -1) { this.setState({ buffer: Math.ceil(this.video.buffered.end(lastTimeRange) / this.video.duration * 100) }); } - } + }; handleVolumeChange = () => { this.setState({ volume: this.video.volume, muted: this.video.muted }); - } + }; handleOpenVideo = () => { this.video.pause(); @@ -519,12 +519,12 @@ class Video extends React.PureComponent { defaultVolume: this.state.volume, componentIndex: this.props.componentIndex, }); - } + }; handleCloseVideo = () => { this.video.pause(); this.props.onCloseVideo(); - } + }; getFrameRate () { if (this.props.frameRate && isNaN(this.props.frameRate)) { @@ -553,7 +553,7 @@ class Video extends React.PureComponent { playerStyle.height = height; } else if (inline) { - return (
    ); + return (
    ); } let preload; diff --git a/app/javascript/flavours/glitch/middleware/errors.js b/app/javascript/flavours/glitch/middleware/errors.js index ade529a4eb..3639a59512 100644 --- a/app/javascript/flavours/glitch/middleware/errors.js +++ b/app/javascript/flavours/glitch/middleware/errors.js @@ -14,4 +14,4 @@ export default function errorsMiddleware() { return next(action); }; -}; +} diff --git a/app/javascript/flavours/glitch/middleware/loading_bar.js b/app/javascript/flavours/glitch/middleware/loading_bar.js index a98f1bb2b6..da8cc4c7d3 100644 --- a/app/javascript/flavours/glitch/middleware/loading_bar.js +++ b/app/javascript/flavours/glitch/middleware/loading_bar.js @@ -22,4 +22,4 @@ export default function loadingBarMiddleware(config = {}) { return next(action); }; -}; +} diff --git a/app/javascript/flavours/glitch/middleware/sounds.js b/app/javascript/flavours/glitch/middleware/sounds.js index 9f1bc02b97..7f23889836 100644 --- a/app/javascript/flavours/glitch/middleware/sounds.js +++ b/app/javascript/flavours/glitch/middleware/sounds.js @@ -43,4 +43,4 @@ export default function soundsMiddleware() { return next(action); }; -}; +} diff --git a/app/javascript/flavours/glitch/reducers/accounts.js b/app/javascript/flavours/glitch/reducers/accounts.js index e02a5592ee..07f45f98b6 100644 --- a/app/javascript/flavours/glitch/reducers/accounts.js +++ b/app/javascript/flavours/glitch/reducers/accounts.js @@ -35,4 +35,4 @@ export default function accounts(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/accounts_counters.js b/app/javascript/flavours/glitch/reducers/accounts_counters.js index 9ebf72af9b..4e1256d1bd 100644 --- a/app/javascript/flavours/glitch/reducers/accounts_counters.js +++ b/app/javascript/flavours/glitch/reducers/accounts_counters.js @@ -35,4 +35,4 @@ export default function accountsCounters(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/accounts_map.js b/app/javascript/flavours/glitch/reducers/accounts_map.js index 444bbda191..8412ad4d0c 100644 --- a/app/javascript/flavours/glitch/reducers/accounts_map.js +++ b/app/javascript/flavours/glitch/reducers/accounts_map.js @@ -17,4 +17,4 @@ export default function accountsMap(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/alerts.js b/app/javascript/flavours/glitch/reducers/alerts.js index ee3d54ab0b..f0a696164a 100644 --- a/app/javascript/flavours/glitch/reducers/alerts.js +++ b/app/javascript/flavours/glitch/reducers/alerts.js @@ -23,4 +23,4 @@ export default function alerts(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/announcements.js b/app/javascript/flavours/glitch/reducers/announcements.js index 34e08eac88..b53f93a4a9 100644 --- a/app/javascript/flavours/glitch/reducers/announcements.js +++ b/app/javascript/flavours/glitch/reducers/announcements.js @@ -99,4 +99,4 @@ export default function announcementsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index a69c0f7f2d..da38b201f3 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -140,7 +140,7 @@ function statusToTextMentions(state, status) { } return set.union(status.get('mentions').filterNot(mention => mention.get('id') === me).map(mention => `@${mention.get('acct')} `)).join(''); -}; +} function apiStatusToTextMentions (state, status) { let set = ImmutableOrderedSet([]); @@ -150,16 +150,16 @@ function apiStatusToTextMentions (state, status) { } return set.union(status.mentions.filter( - mention => mention.id !== me + mention => mention.id !== me, ).map( - mention => `@${mention.acct} ` + mention => `@${mention.acct} `, )).join(''); } function apiStatusToTextHashtags (state, status) { const text = unescapeHTML(status.content); return ImmutableOrderedSet([]).union(recoverHashtags(status.tags, text).map( - (name) => `#${name} ` + (name) => `#${name} `, )).join(''); } @@ -175,7 +175,7 @@ function clearAll(state) { map.set('in_reply_to', null); map.update( 'advanced_options', - map => map.mergeWith(overwrite, state.get('default_advanced_options')) + map => map.mergeWith(overwrite, state.get('default_advanced_options')), ); map.set('privacy', state.get('default_privacy')); map.set('sensitive', state.get('default_sensitive')); @@ -184,7 +184,7 @@ function clearAll(state) { map.set('poll', null); map.set('idempotencyKey', uuid()); }); -}; +} function continueThread (state, status) { return state.withMutations(function (map) { @@ -202,7 +202,7 @@ function continueThread (state, status) { map.set('in_reply_to', status.id); map.update( 'advanced_options', - map => map.merge(new ImmutableMap({ do_not_federate: status.local_only })) + map => map.merge(new ImmutableMap({ do_not_federate: status.local_only })), ); map.set('privacy', status.visibility); map.set('sensitive', false); @@ -233,7 +233,7 @@ function appendMedia(state, media, file) { map.set('sensitive', true); } }); -}; +} function removeMedia(state, mediaId) { const prevSize = state.get('media_attachments').size; @@ -246,7 +246,7 @@ function removeMedia(state, mediaId) { map.set('sensitive', false); } }); -}; +} const insertSuggestion = (state, position, token, completion, path) => { return state.withMutations(map => { @@ -414,7 +414,7 @@ export default function compose(state = initialState, action) { map.set('privacy', privacyPreference(action.status.get('visibility'), state.get('default_privacy'))); map.update( 'advanced_options', - map => map.merge(new ImmutableMap({ do_not_federate: !!action.status.get('local_only') })) + map => map.merge(new ImmutableMap({ do_not_federate: !!action.status.get('local_only') })), ); map.set('focusDate', new Date()); map.set('caretPosition', null); @@ -453,7 +453,7 @@ export default function compose(state = initialState, action) { map.set('poll', null); map.update( 'advanced_options', - map => map.mergeWith(overwrite, state.get('default_advanced_options')) + map => map.mergeWith(overwrite, state.get('default_advanced_options')), ); map.set('idempotencyKey', uuid()); }); @@ -575,7 +575,7 @@ export default function compose(state = initialState, action) { map.set('language', action.status.get('language')); map.update( 'advanced_options', - map => map.merge(new ImmutableMap({ do_not_federate })) + map => map.merge(new ImmutableMap({ do_not_federate })), ); map.set('id', null); @@ -646,4 +646,4 @@ export default function compose(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/contexts.js b/app/javascript/flavours/glitch/reducers/contexts.js index a0fcc41587..aea77ae41e 100644 --- a/app/javascript/flavours/glitch/reducers/contexts.js +++ b/app/javascript/flavours/glitch/reducers/contexts.js @@ -67,7 +67,7 @@ const deleteFromContexts = (immutableState, ids) => immutableState.withMutations const filterContexts = (state, relationship, statuses) => { const ownedStatusIds = statuses.filter(status => status.get('account') === relationship.id) - .map(status => status.get('id')); + .map(status => status.get('id')); return deleteFromContexts(state, ownedStatusIds); }; @@ -102,4 +102,4 @@ export default function replies(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/conversations.js b/app/javascript/flavours/glitch/reducers/conversations.js index 4407dcf040..48b70cc33e 100644 --- a/app/javascript/flavours/glitch/reducers/conversations.js +++ b/app/javascript/flavours/glitch/reducers/conversations.js @@ -113,4 +113,4 @@ export default function conversations(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/custom_emojis.js b/app/javascript/flavours/glitch/reducers/custom_emojis.js index f490d0db1e..7f71ab791e 100644 --- a/app/javascript/flavours/glitch/reducers/custom_emojis.js +++ b/app/javascript/flavours/glitch/reducers/custom_emojis.js @@ -12,4 +12,4 @@ export default function custom_emojis(state = initialState, action) { } return state; -}; +} diff --git a/app/javascript/flavours/glitch/reducers/domain_lists.js b/app/javascript/flavours/glitch/reducers/domain_lists.js index eff97fbd60..6bf8cee681 100644 --- a/app/javascript/flavours/glitch/reducers/domain_lists.js +++ b/app/javascript/flavours/glitch/reducers/domain_lists.js @@ -22,4 +22,4 @@ export default function domainLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/filters.js b/app/javascript/flavours/glitch/reducers/filters.js index f4f97cd3a8..e1f0140465 100644 --- a/app/javascript/flavours/glitch/reducers/filters.js +++ b/app/javascript/flavours/glitch/reducers/filters.js @@ -41,4 +41,4 @@ export default function filters(state = ImmutableMap(), action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/height_cache.js b/app/javascript/flavours/glitch/reducers/height_cache.js index 8b05e0b196..660a2d1d77 100644 --- a/app/javascript/flavours/glitch/reducers/height_cache.js +++ b/app/javascript/flavours/glitch/reducers/height_cache.js @@ -20,4 +20,4 @@ export default function statuses(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/list_adder.js b/app/javascript/flavours/glitch/reducers/list_adder.js index b8c1b0e269..b144610a52 100644 --- a/app/javascript/flavours/glitch/reducers/list_adder.js +++ b/app/javascript/flavours/glitch/reducers/list_adder.js @@ -44,4 +44,4 @@ export default function listAdderReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/list_editor.js b/app/javascript/flavours/glitch/reducers/list_editor.js index 5427ac0981..6e020dbe64 100644 --- a/app/javascript/flavours/glitch/reducers/list_editor.js +++ b/app/javascript/flavours/glitch/reducers/list_editor.js @@ -54,10 +54,10 @@ export default function listEditorReducer(state = initialState, action) { }); case LIST_CREATE_REQUEST: case LIST_UPDATE_REQUEST: - return state.withMutations(map => { - map.set('isSubmitting', true); - map.set('isChanged', false); - }); + return state.withMutations(map => { + map.set('isSubmitting', true); + map.set('isChanged', false); + }); case LIST_CREATE_FAIL: case LIST_UPDATE_FAIL: return state.set('isSubmitting', false); @@ -93,4 +93,4 @@ export default function listEditorReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/lists.js b/app/javascript/flavours/glitch/reducers/lists.js index f30ffbcbdb..ba3e2b3cb5 100644 --- a/app/javascript/flavours/glitch/reducers/lists.js +++ b/app/javascript/flavours/glitch/reducers/lists.js @@ -34,4 +34,4 @@ export default function lists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/local_settings.js b/app/javascript/flavours/glitch/reducers/local_settings.js index 9075146f3e..887e0e135c 100644 --- a/app/javascript/flavours/glitch/reducers/local_settings.js +++ b/app/javascript/flavours/glitch/reducers/local_settings.js @@ -78,4 +78,4 @@ export default function localSettings(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/markers.js b/app/javascript/flavours/glitch/reducers/markers.js index fb1572ff59..e3d1b1936b 100644 --- a/app/javascript/flavours/glitch/reducers/markers.js +++ b/app/javascript/flavours/glitch/reducers/markers.js @@ -22,4 +22,4 @@ export default function markers(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/media_attachments.js b/app/javascript/flavours/glitch/reducers/media_attachments.js index 6e60585766..dfd8ea42d9 100644 --- a/app/javascript/flavours/glitch/reducers/media_attachments.js +++ b/app/javascript/flavours/glitch/reducers/media_attachments.js @@ -12,4 +12,4 @@ export default function meta(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/meta.js b/app/javascript/flavours/glitch/reducers/meta.js index b1482777a9..9f9b89fc00 100644 --- a/app/javascript/flavours/glitch/reducers/meta.js +++ b/app/javascript/flavours/glitch/reducers/meta.js @@ -15,12 +15,12 @@ export default function meta(state = initialState, action) { case STORE_HYDRATE: return state.merge( action.state.get('meta')) - .set('permissions', action.state.getIn(['role', 'permissions'])) - .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])) + .set('permissions', action.state.getIn(['role', 'permissions'])) + .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])), ); case APP_LAYOUT_CHANGE: return state.set('layout', action.layout); default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/modal.js b/app/javascript/flavours/glitch/reducers/modal.js index 2ef0aef24f..c481171815 100644 --- a/app/javascript/flavours/glitch/reducers/modal.js +++ b/app/javascript/flavours/glitch/reducers/modal.js @@ -36,4 +36,4 @@ export default function modal(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/notifications.js b/app/javascript/flavours/glitch/reducers/notifications.js index 18610e7583..d5b1568e90 100644 --- a/app/javascript/flavours/glitch/reducers/notifications.js +++ b/app/javascript/flavours/glitch/reducers/notifications.js @@ -371,4 +371,4 @@ export default function notifications(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/picture_in_picture.js b/app/javascript/flavours/glitch/reducers/picture_in_picture.js index 13a3d1aa2a..395c21245f 100644 --- a/app/javascript/flavours/glitch/reducers/picture_in_picture.js +++ b/app/javascript/flavours/glitch/reducers/picture_in_picture.js @@ -22,4 +22,4 @@ export default function pictureInPicture(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js b/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js index 267521bb84..144418d12a 100644 --- a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js +++ b/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js @@ -54,4 +54,4 @@ export default function listEditorReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/push_notifications.js b/app/javascript/flavours/glitch/reducers/push_notifications.js index 117fb51674..116c3732fc 100644 --- a/app/javascript/flavours/glitch/reducers/push_notifications.js +++ b/app/javascript/flavours/glitch/reducers/push_notifications.js @@ -50,4 +50,4 @@ export default function push_subscriptions(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/relationships.js b/app/javascript/flavours/glitch/reducers/relationships.js index e4b9acea27..b53f0238ca 100644 --- a/app/javascript/flavours/glitch/reducers/relationships.js +++ b/app/javascript/flavours/glitch/reducers/relationships.js @@ -82,4 +82,4 @@ export default function relationships(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/search.js b/app/javascript/flavours/glitch/reducers/search.js index 4b8913e967..bc0433d1fd 100644 --- a/app/javascript/flavours/glitch/reducers/search.js +++ b/app/javascript/flavours/glitch/reducers/search.js @@ -64,4 +64,4 @@ export default function search(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/settings.js b/app/javascript/flavours/glitch/reducers/settings.js index 82927f7cd7..e69eee9660 100644 --- a/app/javascript/flavours/glitch/reducers/settings.js +++ b/app/javascript/flavours/glitch/reducers/settings.js @@ -176,4 +176,4 @@ export default function settings(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/status_lists.js b/app/javascript/flavours/glitch/reducers/status_lists.js index 7ac0dab475..a279d3d347 100644 --- a/app/javascript/flavours/glitch/reducers/status_lists.js +++ b/app/javascript/flavours/glitch/reducers/status_lists.js @@ -145,4 +145,4 @@ export default function statusLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js index f0c4c804b7..ca220c54d6 100644 --- a/app/javascript/flavours/glitch/reducers/statuses.js +++ b/app/javascript/flavours/glitch/reducers/statuses.js @@ -94,4 +94,4 @@ export default function statuses(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/suggestions.js b/app/javascript/flavours/glitch/reducers/suggestions.js index 2bc30d2c68..3c1ea3fa8c 100644 --- a/app/javascript/flavours/glitch/reducers/suggestions.js +++ b/app/javascript/flavours/glitch/reducers/suggestions.js @@ -34,4 +34,4 @@ export default function suggestionsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/tags.js b/app/javascript/flavours/glitch/reducers/tags.js index 266b21177f..b280bc4dd2 100644 --- a/app/javascript/flavours/glitch/reducers/tags.js +++ b/app/javascript/flavours/glitch/reducers/tags.js @@ -22,4 +22,4 @@ export default function tags(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js index 407293c62e..96a6ca961f 100644 --- a/app/javascript/flavours/glitch/reducers/timelines.js +++ b/app/javascript/flavours/glitch/reducers/timelines.js @@ -229,4 +229,4 @@ export default function timelines(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/trends.js b/app/javascript/flavours/glitch/reducers/trends.js index e2bac61992..0b8e0882d2 100644 --- a/app/javascript/flavours/glitch/reducers/trends.js +++ b/app/javascript/flavours/glitch/reducers/trends.js @@ -43,4 +43,4 @@ export default function trendsReducer(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/reducers/user_lists.js b/app/javascript/flavours/glitch/reducers/user_lists.js index 0a75e85c1a..9e020fd912 100644 --- a/app/javascript/flavours/glitch/reducers/user_lists.js +++ b/app/javascript/flavours/glitch/reducers/user_lists.js @@ -187,4 +187,4 @@ export default function userLists(state = initialState, action) { default: return state; } -}; +} diff --git a/app/javascript/flavours/glitch/store/configureStore.js b/app/javascript/flavours/glitch/store/configureStore.js index e18af842ff..0e0d45c668 100644 --- a/app/javascript/flavours/glitch/store/configureStore.js +++ b/app/javascript/flavours/glitch/store/configureStore.js @@ -12,4 +12,4 @@ export default function configureStore() { errorsMiddleware(), soundsMiddleware(), ), window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f)); -}; +} diff --git a/app/javascript/flavours/glitch/utils/hashtag.js b/app/javascript/flavours/glitch/utils/hashtag.js index 9b663487fe..2024a665c3 100644 --- a/app/javascript/flavours/glitch/utils/hashtag.js +++ b/app/javascript/flavours/glitch/utils/hashtag.js @@ -1,8 +1,8 @@ export function recoverHashtags (recognizedTags, text) { return recognizedTags.map(tag => { - const re = new RegExp(`(?:^|[^\/\)\w])#(${tag.name})`, 'i'); - const matched_hashtag = text.match(re); - return matched_hashtag ? matched_hashtag[1] : null; - } + const re = new RegExp(`(?:^|[^\/\)\w])#(${tag.name})`, 'i'); + const matched_hashtag = text.match(re); + return matched_hashtag ? matched_hashtag[1] : null; + }, ).filter(x => x !== null); } diff --git a/app/javascript/flavours/glitch/utils/privacy_preference.js b/app/javascript/flavours/glitch/utils/privacy_preference.js index 7781ca7faa..51bdf072d7 100644 --- a/app/javascript/flavours/glitch/utils/privacy_preference.js +++ b/app/javascript/flavours/glitch/utils/privacy_preference.js @@ -2,4 +2,4 @@ export const order = ['public', 'unlisted', 'private', 'direct']; export function privacyPreference (a, b) { return order[Math.max(order.indexOf(a), order.indexOf(b), 0)]; -}; +} diff --git a/app/javascript/flavours/glitch/utils/react_helpers.js b/app/javascript/flavours/glitch/utils/react_helpers.js index 082a58e626..ea11acdb61 100644 --- a/app/javascript/flavours/glitch/utils/react_helpers.js +++ b/app/javascript/flavours/glitch/utils/react_helpers.js @@ -7,7 +7,7 @@ export function assignHandlers (target, handlers) { // We just bind each handler to the `target`. const handle = target.handlers = {}; Object.keys(handlers).forEach( - key => handle[key] = handlers[key].bind(target) + key => handle[key] = handlers[key].bind(target), ); } diff --git a/app/javascript/flavours/glitch/uuid.js b/app/javascript/flavours/glitch/uuid.js index be18993057..0d2cfaa776 100644 --- a/app/javascript/flavours/glitch/uuid.js +++ b/app/javascript/flavours/glitch/uuid.js @@ -1,3 +1,3 @@ export default function uuid(a) { return a ? (a^Math.random() * 16 >> a / 4).toString(16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, uuid); -}; +} From 372fa3fe368714047e06bea5465f9e8f6926ac59 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 29 Jan 2023 21:07:51 -0500 Subject: [PATCH 0328/1220] [Glitch] Update hasOwnProperty calls for ESLint Port 131e6403ccd59693e8498d175acba4fdd28268b9 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/emoji/emoji_utils.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/javascript/flavours/glitch/features/emoji/emoji_utils.js b/app/javascript/flavours/glitch/features/emoji/emoji_utils.js index dbf725c1f5..571907a509 100644 --- a/app/javascript/flavours/glitch/features/emoji/emoji_utils.js +++ b/app/javascript/flavours/glitch/features/emoji/emoji_utils.js @@ -135,19 +135,19 @@ function getData(emoji, skin, set) { } } - if (data.short_names.hasOwnProperty(emoji)) { + if (Object.prototype.hasOwnProperty.call(data.short_names, emoji)) { emoji = data.short_names[emoji]; } - if (data.emojis.hasOwnProperty(emoji)) { + if (Object.prototype.hasOwnProperty.call(data.emojis, emoji)) { emojiData = data.emojis[emoji]; } } else if (emoji.id) { - if (data.short_names.hasOwnProperty(emoji.id)) { + if (Object.prototype.hasOwnProperty.call(data.short_names, emoji.id)) { emoji.id = data.short_names[emoji.id]; } - if (data.emojis.hasOwnProperty(emoji.id)) { + if (Object.prototype.hasOwnProperty.call(data.emojis, emoji.id)) { emojiData = data.emojis[emoji.id]; skin = skin || emoji.skin; } @@ -216,7 +216,7 @@ function deepMerge(a, b) { let originalValue = a[key], value = originalValue; - if (b.hasOwnProperty(key)) { + if (Object.prototype.hasOwnProperty.call(b, key)) { value = b[key]; } From 8ce02aa6e82d40d7a9e7c842ae2b67dcf31e8a79 Mon Sep 17 00:00:00 2001 From: Akira Ouchi Date: Mon, 30 Jan 2023 22:49:10 +0900 Subject: [PATCH 0329/1220] [Glitch] autofocus the compose form again on /share Port e73b55184b37e7f29e5bcb16c980dc8dbdb9a7d1 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/standalone/compose/index.js | 2 +- app/javascript/flavours/glitch/reducers/compose.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/features/standalone/compose/index.js b/app/javascript/flavours/glitch/features/standalone/compose/index.js index b33c21cb5b..c534424357 100644 --- a/app/javascript/flavours/glitch/features/standalone/compose/index.js +++ b/app/javascript/flavours/glitch/features/standalone/compose/index.js @@ -9,7 +9,7 @@ export default class Compose extends React.PureComponent { render () { return (
    - + diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index da38b201f3..bb42580d49 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -303,8 +303,8 @@ const insertEmoji = (state, position, emojiData) => { const hydrate = (state, hydratedState) => { state = clearAll(state.merge(hydratedState)); - if (hydratedState.has('text')) { - state = state.set('text', hydratedState.get('text')); + if (hydratedState.get('text')) { + state = state.set('text', hydratedState.get('text')).set('focusDate', new Date()); } return state; From 3c451cf88f5bbdfe8459f61bb8167872e32e2297 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Feb 2023 21:14:22 +0100 Subject: [PATCH 0330/1220] [Glitch] Fix useless regular-expression character escape detected by CodeQL --- app/javascript/flavours/glitch/utils/hashtag.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/utils/hashtag.js b/app/javascript/flavours/glitch/utils/hashtag.js index 2024a665c3..8f5665c466 100644 --- a/app/javascript/flavours/glitch/utils/hashtag.js +++ b/app/javascript/flavours/glitch/utils/hashtag.js @@ -1,6 +1,6 @@ export function recoverHashtags (recognizedTags, text) { return recognizedTags.map(tag => { - const re = new RegExp(`(?:^|[^\/\)\w])#(${tag.name})`, 'i'); + const re = new RegExp(`(?:^|[^\/)\w])#(${tag.name})`, 'i'); const matched_hashtag = text.match(re); return matched_hashtag ? matched_hashtag[1] : null; }, From 01584f03e8159cbb7b411f33bd4f66f7131ce993 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Feb 2023 21:29:23 +0100 Subject: [PATCH 0331/1220] Add metrics endpoint to streaming API (#23388) --- streaming/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/streaming/index.js b/streaming/index.js index 0350c488da..e207411f23 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -850,6 +850,18 @@ const startWorker = async (workerId) => { res.end('OK'); }); + app.get('/metrics', (req, res) => server.getConnections((err, count) => { + res.writeHeader(200, { 'Content-Type': 'application/openmetrics-text; version=1.0.0; charset=utf-8' }); + res.write('# TYPE connected_clients gauge\n'); + res.write('# HELP connected_clients The number of clients connected to the streaming server\n'); + res.write(`connected_clients ${count}.0\n`); + res.write('# TYPE connected_channels gauge\n'); + res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); + res.write(`connected_channels ${Object.keys(subs).length}.0\n`); + res.write('# EOF\n'); + res.end(); + })); + app.use(authenticationMiddleware); app.use(errorMiddleware); From 8f590b0a211716bcbfc0f2278a452469f3346f55 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 4 Feb 2023 04:56:06 +0100 Subject: [PATCH 0332/1220] Add setting for status page URL (#23390) --- .../features/ui/components/link_footer.js | 16 +++++++++++----- app/javascript/mastodon/initial_state.js | 1 + app/models/form/admin_settings.rb | 2 ++ app/presenters/instance_presenter.rb | 4 ++++ app/serializers/initial_state_serializer.rb | 1 + app/serializers/rest/instance_serializer.rb | 1 + app/views/admin/settings/about/show.html.haml | 3 +++ config/locales/simple_form.en.yml | 2 ++ 8 files changed, 25 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.js index db5945d6ac..be21112079 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.js +++ b/app/javascript/mastodon/features/ui/components/link_footer.js @@ -3,7 +3,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; -import { domain, version, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state'; +import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'mastodon/initial_state'; import { logOut } from 'mastodon/utils/log_out'; import { openModal } from 'mastodon/actions/modal'; import { PERMISSION_INVITE_USERS } from 'mastodon/permissions'; @@ -59,21 +59,27 @@ class LinkFooter extends React.PureComponent {

    {domain}: {' '} - + + {statusPageUrl && ( + <> + {DividingCircle} + + + )} {canInvite && ( <> {DividingCircle} - + )} {canProfileDirectory && ( <> {DividingCircle} - + )} {DividingCircle} - +

    diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index 5bb8546eb4..d04c4a42d2 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -134,5 +134,6 @@ export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); export const translationEnabled = getMeta('translation_enabled'); export const languages = initialState?.languages; +export const statusPageUrl = getMeta('status_page_url'); export default initialState; diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 132b57b04a..001caa3765 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -32,6 +32,7 @@ class Form::AdminSettings media_cache_retention_period content_cache_retention_period backups_retention_period + status_page_url ).freeze INTEGER_KEYS = %i( @@ -68,6 +69,7 @@ class Form::AdminSettings validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) } validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) } validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) } + validates :status_page_url, url: true validate :validate_site_uploads KEYS.each do |key| diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index fba3cc734b..e3ba984f74 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -38,6 +38,10 @@ class InstancePresenter < ActiveModelSerializers::Model Setting.site_terms end + def status_page_url + Setting.status_page_url + end + def domain Rails.configuration.x.local_domain end diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 1bd62c26f6..24417bca77 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -33,6 +33,7 @@ class InitialStateSerializer < ActiveModel::Serializer single_user_mode: Rails.configuration.x.single_user_mode, translation_enabled: TranslationService.configured?, trends_as_landing_page: Setting.trends_as_landing_page, + status_page_url: Setting.status_page_url, } if object.current_account diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 5ae1099d04..fbb2fea0dc 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -45,6 +45,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer { urls: { streaming: Rails.configuration.x.streaming_api_base_url, + status: object.status_page_url, }, accounts: { diff --git a/app/views/admin/settings/about/show.html.haml b/app/views/admin/settings/about/show.html.haml index 366d213f62..2aaa64abe7 100644 --- a/app/views/admin/settings/about/show.html.haml +++ b/app/views/admin/settings/about/show.html.haml @@ -26,6 +26,9 @@ .fields-row__column.fields-row__column-6.fields-group = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + .fields-group + = f.input :status_page_url, wrapper: :with_block_label, input_html: { placeholder: "https://status.#{Rails.configuration.x.local_domain}" } + .fields-group = f.input :site_terms, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index d01f0ae753..96b0131efe 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -91,6 +91,7 @@ en: 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. + status_page_url: URL of a page where people can see the status of this server during an outage theme: Theme that logged out visitors and new users see. thumbnail: A roughly 2:1 image displayed alongside your server information. timeline_preview: Logged out visitors will be able to browse the most recent public posts available on the server. @@ -252,6 +253,7 @@ en: site_short_description: Server description site_terms: Privacy Policy site_title: Server name + status_page_url: Status page URL theme: Default theme thumbnail: Server thumbnail timeline_preview: Allow unauthenticated access to public timelines From 8651ef751e3dfddae549aa4d9243056644922098 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 4 Feb 2023 07:46:08 +0100 Subject: [PATCH 0333/1220] New Crowdin updates (#23356) * New translations en.json (Korean) * New translations simple_form.en.yml (Japanese) * New translations en.yml (Korean) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Finnish) * New translations en.yml (English, United Kingdom) * New translations en.yml (Korean) * New translations en.yml (Esperanto) * New translations en.json (French) * New translations en.json (French) * New translations en.yml (French) * New translations en.yml (English, United Kingdom) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Esperanto) * New translations doorkeeper.en.yml (Esperanto) * New translations activerecord.en.yml (Esperanto) * New translations devise.en.yml (Esperanto) * New translations en.json (Korean) * New translations en.json (French) * New translations en.json (French) * New translations simple_form.en.yml (French) * New translations en.json (French) * New translations en.yml (Danish) * New translations en.yml (Slovak) * New translations en.yml (Japanese) * New translations simple_form.en.yml (Catalan) * New translations simple_form.en.yml (English, United Kingdom) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Danish) * New translations simple_form.en.yml (Chinese Traditional) * New translations simple_form.en.yml (Icelandic) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Welsh) * New translations simple_form.en.yml (Basque) * New translations simple_form.en.yml (Slovak) * New translations simple_form.en.yml (Spanish) * New translations simple_form.en.yml (Korean) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Romanian) * New translations simple_form.en.yml (Afrikaans) * New translations simple_form.en.yml (Arabic) * New translations simple_form.en.yml (Belarusian) * New translations simple_form.en.yml (Czech) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Greek) * New translations simple_form.en.yml (Frisian) * New translations simple_form.en.yml (Irish) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Hungarian) * New translations simple_form.en.yml (Armenian) * New translations simple_form.en.yml (Italian) * New translations en.json (Japanese) * New translations simple_form.en.yml (Georgian) * New translations simple_form.en.yml (Norwegian) * New translations simple_form.en.yml (Polish) * New translations simple_form.en.yml (Portuguese) * New translations simple_form.en.yml (Russian) * New translations simple_form.en.yml (Slovenian) * New translations simple_form.en.yml (Albanian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Swedish) * New translations simple_form.en.yml (Turkish) * New translations simple_form.en.yml (Ukrainian) * New translations simple_form.en.yml (Chinese Simplified) * New translations simple_form.en.yml (Vietnamese) * New translations simple_form.en.yml (Galician) * New translations simple_form.en.yml (Indonesian) * New translations simple_form.en.yml (Persian) * New translations simple_form.en.yml (Tamil) * New translations simple_form.en.yml (Spanish, Argentina) * New translations simple_form.en.yml (Spanish, Mexico) * New translations simple_form.en.yml (Bengali) * New translations simple_form.en.yml (Thai) * New translations simple_form.en.yml (Croatian) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Kazakh) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Latvian) * New translations simple_form.en.yml (Malay) * New translations simple_form.en.yml (Faroese) * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) * New translations simple_form.en.yml (Tatar) * New translations simple_form.en.yml (Malayalam) * New translations simple_form.en.yml (Breton) * New translations simple_form.en.yml (French, Quebec) * New translations simple_form.en.yml (Sinhala) * New translations simple_form.en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Asturian) * New translations simple_form.en.yml (Aragonese) * New translations simple_form.en.yml (Occitan) * New translations simple_form.en.yml (Serbian (Latin)) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Sorani (Kurdish)) * New translations simple_form.en.yml (Scots) * New translations simple_form.en.yml (Corsican) * New translations simple_form.en.yml (Sardinian) * New translations simple_form.en.yml (Kabyle) * New translations simple_form.en.yml (Ido) * New translations simple_form.en.yml (Standard Moroccan Tamazight) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Chinese Traditional) * New translations simple_form.en.yml (Korean) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations simple_form.en.yml (Korean) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Ukrainian) * New translations simple_form.en.yml (Chinese Simplified) * New translations simple_form.en.yml (Spanish, Mexico) * Normalize --------- Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/af.json | 1 + app/javascript/mastodon/locales/an.json | 1 + app/javascript/mastodon/locales/ar.json | 1 + app/javascript/mastodon/locales/ast.json | 1 + app/javascript/mastodon/locales/be.json | 1 + app/javascript/mastodon/locales/bg.json | 1 + app/javascript/mastodon/locales/bn.json | 1 + app/javascript/mastodon/locales/br.json | 1 + app/javascript/mastodon/locales/bs.json | 1 + app/javascript/mastodon/locales/ca.json | 1 + app/javascript/mastodon/locales/ckb.json | 1 + app/javascript/mastodon/locales/co.json | 1 + app/javascript/mastodon/locales/cs.json | 1 + app/javascript/mastodon/locales/csb.json | 1 + app/javascript/mastodon/locales/cy.json | 1 + app/javascript/mastodon/locales/da.json | 1 + app/javascript/mastodon/locales/de.json | 1 + .../mastodon/locales/defaultMessages.json | 4 ++ app/javascript/mastodon/locales/el.json | 1 + app/javascript/mastodon/locales/en-GB.json | 1 + app/javascript/mastodon/locales/en.json | 1 + app/javascript/mastodon/locales/eo.json | 1 + app/javascript/mastodon/locales/es-AR.json | 1 + app/javascript/mastodon/locales/es-MX.json | 1 + app/javascript/mastodon/locales/es.json | 1 + app/javascript/mastodon/locales/et.json | 1 + app/javascript/mastodon/locales/eu.json | 1 + app/javascript/mastodon/locales/fa.json | 1 + app/javascript/mastodon/locales/fi.json | 1 + app/javascript/mastodon/locales/fo.json | 1 + app/javascript/mastodon/locales/fr-QC.json | 1 + app/javascript/mastodon/locales/fr.json | 21 +++--- app/javascript/mastodon/locales/fy.json | 1 + app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/gd.json | 1 + app/javascript/mastodon/locales/gl.json | 1 + app/javascript/mastodon/locales/he.json | 1 + app/javascript/mastodon/locales/hi.json | 1 + app/javascript/mastodon/locales/hr.json | 1 + app/javascript/mastodon/locales/hu.json | 1 + app/javascript/mastodon/locales/hy.json | 1 + app/javascript/mastodon/locales/id.json | 1 + app/javascript/mastodon/locales/ig.json | 1 + app/javascript/mastodon/locales/io.json | 1 + app/javascript/mastodon/locales/is.json | 1 + app/javascript/mastodon/locales/it.json | 1 + app/javascript/mastodon/locales/ja.json | 5 +- app/javascript/mastodon/locales/ka.json | 1 + app/javascript/mastodon/locales/kab.json | 1 + app/javascript/mastodon/locales/kk.json | 1 + app/javascript/mastodon/locales/kn.json | 1 + app/javascript/mastodon/locales/ko.json | 27 +++---- app/javascript/mastodon/locales/ku.json | 1 + app/javascript/mastodon/locales/kw.json | 1 + app/javascript/mastodon/locales/la.json | 1 + app/javascript/mastodon/locales/lt.json | 1 + app/javascript/mastodon/locales/lv.json | 1 + app/javascript/mastodon/locales/mk.json | 1 + app/javascript/mastodon/locales/ml.json | 1 + app/javascript/mastodon/locales/mr.json | 1 + app/javascript/mastodon/locales/ms.json | 1 + app/javascript/mastodon/locales/my.json | 1 + app/javascript/mastodon/locales/nl.json | 1 + app/javascript/mastodon/locales/nn.json | 1 + app/javascript/mastodon/locales/no.json | 1 + app/javascript/mastodon/locales/oc.json | 1 + app/javascript/mastodon/locales/pa.json | 1 + app/javascript/mastodon/locales/pl.json | 1 + app/javascript/mastodon/locales/pt-BR.json | 1 + app/javascript/mastodon/locales/pt-PT.json | 1 + app/javascript/mastodon/locales/ro.json | 1 + app/javascript/mastodon/locales/ru.json | 1 + app/javascript/mastodon/locales/sa.json | 1 + app/javascript/mastodon/locales/sc.json | 1 + app/javascript/mastodon/locales/sco.json | 1 + app/javascript/mastodon/locales/si.json | 1 + app/javascript/mastodon/locales/sk.json | 1 + app/javascript/mastodon/locales/sl.json | 1 + app/javascript/mastodon/locales/sq.json | 1 + app/javascript/mastodon/locales/sr-Latn.json | 1 + app/javascript/mastodon/locales/sr.json | 1 + app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/szl.json | 1 + app/javascript/mastodon/locales/ta.json | 1 + app/javascript/mastodon/locales/tai.json | 1 + app/javascript/mastodon/locales/te.json | 1 + app/javascript/mastodon/locales/th.json | 1 + app/javascript/mastodon/locales/tr.json | 1 + app/javascript/mastodon/locales/tt.json | 1 + app/javascript/mastodon/locales/ug.json | 1 + app/javascript/mastodon/locales/uk.json | 1 + app/javascript/mastodon/locales/ur.json | 1 + app/javascript/mastodon/locales/uz.json | 1 + app/javascript/mastodon/locales/vi.json | 1 + app/javascript/mastodon/locales/zgh.json | 1 + app/javascript/mastodon/locales/zh-CN.json | 1 + app/javascript/mastodon/locales/zh-HK.json | 1 + app/javascript/mastodon/locales/zh-TW.json | 1 + config/locales/da.yml | 4 +- config/locales/en-GB.yml | 72 +++++++++++++++++++ config/locales/eo.yml | 2 +- config/locales/fr.yml | 2 +- config/locales/ja.yml | 2 +- config/locales/ko.yml | 10 +-- config/locales/simple_form.es-MX.yml | 4 ++ config/locales/simple_form.fi.yml | 1 + config/locales/simple_form.fr-QC.yml | 6 ++ config/locales/simple_form.fr.yml | 6 +- config/locales/simple_form.he.yml | 4 +- config/locales/simple_form.ja.yml | 26 ++++--- config/locales/simple_form.ko.yml | 4 ++ config/locales/simple_form.uk.yml | 3 + config/locales/simple_form.zh-CN.yml | 4 ++ config/locales/simple_form.zh-TW.yml | 4 ++ config/locales/sk.yml | 1 + yarn.lock | 4 +- 116 files changed, 258 insertions(+), 52 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index b5bb1a055e..7d77246188 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Kortpadsleutels", "footer.privacy_policy": "Privaatheidsbeleid", "footer.source_code": "Wys bronkode", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Kom aan die gang", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 9ffaa0c593..389c512fea 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Alcorces de teclau", "footer.privacy_policy": "Politica de privacidat", "footer.source_code": "Veyer codigo fuent", + "footer.status": "Status", "generic.saved": "Alzau", "getting_started.heading": "Primers pasos", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 746af3f1e6..3e6c989ce0 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح", "footer.privacy_policy": "سياسة الخصوصية", "footer.source_code": "الاطلاع على الشفرة المصدرية", + "footer.status": "Status", "generic.saved": "تم الحفظ", "getting_started.heading": "استعدّ للبدء", "hashtag.column_header.tag_mode.all": "و {additional}", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 18ef12933a..23e9b026bc 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atayos del tecláu", "footer.privacy_policy": "Política de privacidá", "footer.source_code": "Ver el códigu fonte", + "footer.status": "Status", "generic.saved": "Guardóse", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 7b422dc94e..e7a6687b45 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Спалучэнні клавіш", "footer.privacy_policy": "Палітыка прыватнасці", "footer.source_code": "Прагледзець зыходны код", + "footer.status": "Status", "generic.saved": "Захавана", "getting_started.heading": "Пачатак працы", "hashtag.column_header.tag_mode.all": "і {additional}", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 5ddeedebaf..cf5df140ec 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Клавишни комбинации", "footer.privacy_policy": "Политика за поверителност", "footer.source_code": "Преглед на изходния код", + "footer.status": "Status", "generic.saved": "Запазено", "getting_started.heading": "Първи стъпки", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 985958cf15..07609a478d 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "সংরক্ষণ হয়েছে", "getting_started.heading": "শুরু করা", "hashtag.column_header.tag_mode.all": "এবং {additional}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 6ded741155..bb19a0452d 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Berradennoù klavier", "footer.privacy_policy": "Reolennoù prevezded", "footer.source_code": "Gwelet kod mammenn", + "footer.status": "Status", "generic.saved": "Enrollet", "getting_started.heading": "Loc'hañ", "hashtag.column_header.tag_mode.all": "ha {additional}", diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json index 73fb3404c9..bd89ec9fd2 100644 --- a/app/javascript/mastodon/locales/bs.json +++ b/app/javascript/mastodon/locales/bs.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 5adec87f7a..61abf6b09b 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Dreceres de teclat", "footer.privacy_policy": "Política de privadesa", "footer.source_code": "Mostra el codi font", + "footer.status": "Status", "generic.saved": "Desat", "getting_started.heading": "Primeres passes", "hashtag.column_header.tag_mode.all": "i {additional}", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 306764002b..8349e34bc4 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "پاشکەوتکرا", "getting_started.heading": "دەست پێکردن", "hashtag.column_header.tag_mode.all": "و {additional}", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 4d94dd2bab..9b75ceeb17 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Salvatu", "getting_started.heading": "Per principià", "hashtag.column_header.tag_mode.all": "è {additional}", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 7ff5aa2217..9b8214c308 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Klávesové zkratky", "footer.privacy_policy": "Zásady ochrany osobních údajů", "footer.source_code": "Zobrazit zdrojový kód", + "footer.status": "Status", "generic.saved": "Uloženo", "getting_started.heading": "Začínáme", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/csb.json b/app/javascript/mastodon/locales/csb.json index fbb103d2c6..884020da1d 100644 --- a/app/javascript/mastodon/locales/csb.json +++ b/app/javascript/mastodon/locales/csb.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 407f5dd926..442703ddfe 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Bysellau brys", "footer.privacy_policy": "Polisi preifatrwydd", "footer.source_code": "Gweld y cod ffynhonnell", + "footer.status": "Status", "generic.saved": "Wedi'i Gadw", "getting_started.heading": "Dechrau", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index bec230000e..1db8b030d3 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tastaturgenveje", "footer.privacy_policy": "Fortrolighedspolitik", "footer.source_code": "Vis kildekode", + "footer.status": "Status", "generic.saved": "Gemt", "getting_started.heading": "Startmenu", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 2cdaebe2a0..c0f82251db 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tastenkombinationen", "footer.privacy_policy": "Datenschutzerklärung", "footer.source_code": "Quellcode anzeigen", + "footer.status": "Status", "generic.saved": "Gespeichert", "getting_started.heading": "Auf geht's!", "hashtag.column_header.tag_mode.all": "und {additional}", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index f36929df5f..c09411f652 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -4075,6 +4075,10 @@ "defaultMessage": "About", "id": "footer.about" }, + { + "defaultMessage": "Status", + "id": "footer.status" + }, { "defaultMessage": "Invite people", "id": "footer.invite" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 1ea1580541..2ea34f6acf 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου", "footer.privacy_policy": "Πολιτική απορρήτου", "footer.source_code": "Προβολή πηγαίου κώδικα", + "footer.status": "Status", "generic.saved": "Αποθηκεύτηκε", "getting_started.heading": "Αφετηρία", "hashtag.column_header.tag_mode.all": "και {additional}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index a787a747b4..4ce198b908 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 29102298bb..ae7722635d 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 99f455e035..90ffab2a46 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Fulmoklavoj", "footer.privacy_policy": "Politiko de privateco", "footer.source_code": "Montri fontkodon", + "footer.status": "Status", "generic.saved": "Konservita", "getting_started.heading": "Por komenci", "hashtag.column_header.tag_mode.all": "kaj {additional}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index f490d29cbf..f32fd164f0 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", + "footer.status": "Status", "generic.saved": "Guardado", "getting_started.heading": "Inicio de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index c932c1af28..b371e0e9e2 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", + "footer.status": "Status", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index e9ba8f1023..aab1457f92 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", + "footer.status": "Status", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index de0f9d9716..74462ccbe2 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Kiirklahvid", "footer.privacy_policy": "Isikuandmete kaitse", "footer.source_code": "Lähtekood", + "footer.status": "Status", "generic.saved": "Salvestatud", "getting_started.heading": "Alustamine", "hashtag.column_header.tag_mode.all": "ja {additional}", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 8456069724..6ef651e33b 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Lasterbideak", "footer.privacy_policy": "Pribatutasun politika", "footer.source_code": "Ikusi iturburu kodea", + "footer.status": "Status", "generic.saved": "Gordea", "getting_started.heading": "Menua", "hashtag.column_header.tag_mode.all": "eta {osagarria}", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 6fc8904106..10c1b12fb9 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "میان‌برهای صفحه‌کلید", "footer.privacy_policy": "سیاست محرمانگی", "footer.source_code": "نمایش کد مبدأ", + "footer.status": "Status", "generic.saved": "ذخیره شده", "getting_started.heading": "آغاز کنید", "hashtag.column_header.tag_mode.all": "و {additional}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index daaab3857f..408024829c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Pikanäppäimet", "footer.privacy_policy": "Tietosuojakäytäntö", "footer.source_code": "Näytä lähdekoodi", + "footer.status": "Status", "generic.saved": "Tallennettu", "getting_started.heading": "Näin pääset alkuun", "hashtag.column_header.tag_mode.all": "ja {additional}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 60d82ccd8e..37219005b9 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Knappasnarvegir", "footer.privacy_policy": "Privatlívspolitikkur", "footer.source_code": "Vís keldukotuna", + "footer.status": "Status", "generic.saved": "Goymt", "getting_started.heading": "At byrja", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 050fd9002c..47159a012e 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Raccourcis clavier", "footer.privacy_policy": "Politique de confidentialité", "footer.source_code": "Voir le code source", + "footer.status": "Status", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", "hashtag.column_header.tag_mode.all": "et {additional}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 0dc5dcb1d0..ad751e0922 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -96,7 +96,7 @@ "closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.", "closed_registrations_modal.description": "Créer un compte sur {domain} est actuellement impossible, néanmoins souvenez-vous que vous n'avez pas besoin d'un compte spécifiquement sur {domain} pour utiliser Mastodon.", "closed_registrations_modal.find_another_server": "Trouver un autre serveur", - "closed_registrations_modal.preamble": "Mastodon est décentralisé : peu importe où vous créez votre votre, vous serez en mesure de suivre et d'interagir avec quiconque sur ce serveur. Vous pouvez même l'héberger !", + "closed_registrations_modal.preamble": "Mastodon est décentralisé : peu importe où vous créez votre compte, vous serez en mesure de suivre et d'interagir avec quiconque sur ce serveur. Vous pouvez même l'héberger !", "closed_registrations_modal.title": "Inscription sur Mastodon", "column.about": "À propos", "column.blocks": "Comptes bloqués", @@ -128,8 +128,8 @@ "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 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.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent apparaître dans les recherches par hashtags.", + "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre pour voir vos messages réservés à vos abonné⋅e⋅s.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "Qu’avez-vous en tête ?", "compose_form.poll.add_option": "Ajouter un choix", @@ -185,12 +185,12 @@ "directory.recently_active": "Actif·ve·s récemment", "disabled_account_banner.account_settings": "Paramètres du compte", "disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.", - "dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.", + "dismissable_banner.community_timeline": "Voici les messages publics les plus récents des comptes hébergés par {domain}.", "dismissable_banner.dismiss": "Rejeter", "dismissable_banner.explore_links": "On parle actuellement de ces nouvelles sur ce serveur, ainsi que sur d'autres serveurs du réseau décentralisé.", "dismissable_banner.explore_statuses": "Ces publications depuis les serveurs du réseau décentralisé, dont celui-ci, sont actuellement en train de gagner de l'ampleur sur ce serveur.", "dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.", - "dismissable_banner.public_timeline": "Voici les publications publiques les plus récentes des personnes de ce serveur et des autres du réseau décentralisé que ce serveur connait.", + "dismissable_banner.public_timeline": "Voici les messages publics les plus récents des personnes de cette instance et des autres instances du réseau décentralisé connues par ce serveur.", "embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.", "embed.preview": "Il apparaîtra comme cela :", "emoji_button.activity": "Activités", @@ -246,7 +246,7 @@ "filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !", "filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.", "filter_modal.added.expired_title": "Filtre expiré !", - "filter_modal.added.review_and_configure": "Pour passer en revue et approfondir la configuration de cette catégorie de filtre, aller sur le {settings_link}.", + "filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtre, allez à {settings_link}.", "filter_modal.added.review_and_configure_title": "Paramètres du filtre", "filter_modal.added.settings_link": "page des paramètres", "filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.", @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Raccourcis clavier", "footer.privacy_policy": "Politique de confidentialité", "footer.source_code": "Voir le code source", + "footer.status": "Status", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", "hashtag.column_header.tag_mode.all": "et {additional}", @@ -290,17 +291,17 @@ "home.column_settings.show_replies": "Afficher les réponses", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher les annonces", - "interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce post aux favoris pour informer l'auteur que vous l'appréciez et le sauvegarder pour plus tard.", + "interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce message à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et pour le sauvegarder pour plus tard.", "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.", - "interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonnés.", + "interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.", "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.", "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", - "interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris", + "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", - "interaction_modal.title.reblog": "Partager la publication de {name}", + "interaction_modal.title.reblog": "Partager le message de {name}", "interaction_modal.title.reply": "Répondre au message de {name}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index cd7232e27a..26a211042a 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Fluchtoetsen", "footer.privacy_policy": "Privacybelied", "footer.source_code": "Boarnekoade besjen", + "footer.status": "Status", "generic.saved": "Bewarre", "getting_started.heading": "Uteinsette", "hashtag.column_header.tag_mode.all": "en {additional}", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 61759475d3..9212d16bd8 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Aicearraí méarchláir", "footer.privacy_policy": "Polasaí príobháideachais", "footer.source_code": "Féach ar an gcód foinseach", + "footer.status": "Status", "generic.saved": "Sábháilte", "getting_started.heading": "Ag tosú amach", "hashtag.column_header.tag_mode.all": "agus {additional}", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 40d7e77e51..8355f2019c 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Ath-ghoiridean a’ mheur-chlàir", "footer.privacy_policy": "Poileasaidh prìobhaideachd", "footer.source_code": "Seall am bun-tùs", + "footer.status": "Status", "generic.saved": "Chaidh a shàbhaladh", "getting_started.heading": "Toiseach", "hashtag.column_header.tag_mode.all": "agus {additional}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 25756ea592..1eb6e438e4 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atallos do teclado", "footer.privacy_policy": "Política de privacidade", "footer.source_code": "Ver código fonte", + "footer.status": "Status", "generic.saved": "Gardado", "getting_started.heading": "Primeiros pasos", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index c1e5eee975..b95426c30f 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "קיצורי מקלדת", "footer.privacy_policy": "מדיניות פרטיות", "footer.source_code": "צפיה בקוד המקור", + "footer.status": "Status", "generic.saved": "נשמר", "getting_started.heading": "בואו נתחיל", "hashtag.column_header.tag_mode.all": "ו- {additional}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 9ed822e57e..3ac57d50d4 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट", "footer.privacy_policy": "प्राइवेसी पालिसी", "footer.source_code": "सोर्स कोड देखें", + "footer.status": "Status", "generic.saved": "सेव्ड", "getting_started.heading": "पहले कदम रखें", "hashtag.column_header.tag_mode.all": "और {additional}", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 77364d4fa6..9be500a7e5 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tipkovni prečaci", "footer.privacy_policy": "Pravila o zaštiti privatnosti", "footer.source_code": "Prikaz izvornog koda", + "footer.status": "Status", "generic.saved": "Spremljeno", "getting_started.heading": "Počnimo", "hashtag.column_header.tag_mode.all": "i {additional}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 2b999fcf52..0c95378d5b 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Billentyűparancsok", "footer.privacy_policy": "Adatvédelmi szabályzat", "footer.source_code": "Forráskód megtekintése", + "footer.status": "Status", "generic.saved": "Elmentve", "getting_started.heading": "Első lépések", "hashtag.column_header.tag_mode.all": "és {additional}", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 253dea6f48..cb1dd1bd2d 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Ստեղնաշարի կարճատներ", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Պահպանուած է", "getting_started.heading": "Ինչպէս սկսել", "hashtag.column_header.tag_mode.all": "եւ {additional}", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 584ce4c4cd..a6db3207db 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Pintasan papan ketik", "footer.privacy_policy": "Kebijakan privasi", "footer.source_code": "Lihat kode sumber", + "footer.status": "Status", "generic.saved": "Disimpan", "getting_started.heading": "Mulai", "hashtag.column_header.tag_mode.all": "dan {additional}", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index e088d08f2a..69e4ae08a7 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Iwu nzuzu", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Mbido", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 49ae3fc717..fedabed58e 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Sparesis", "getting_started.heading": "Debuto", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 8e1f3b6bf0..33b193deb9 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði", "footer.privacy_policy": "Persónuverndarstefna", "footer.source_code": "Skoða frumkóða", + "footer.status": "Status", "generic.saved": "Vistað", "getting_started.heading": "Komast í gang", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 41c404c146..f21308670e 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Scorciatoie da tastiera", "footer.privacy_policy": "Politica sulla privacy", "footer.source_code": "Visualizza il codice sorgente", + "footer.status": "Status", "generic.saved": "Salvato", "getting_started.heading": "Per iniziare", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 56bae24274..181e1e5c6c 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -45,7 +45,7 @@ "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。", "account.media": "メディア", "account.mention": "@{name}さんにメンション", - "account.moved_to": "{name} さんがアカウントを引っ越しました:", + "account.moved_to": "{name}さんがアカウントを引っ越しました:", "account.mute": "@{name}さんをミュート", "account.mute_notifications": "@{name}さんからの通知を受け取らない", "account.muted": "ミュート済み", @@ -54,7 +54,7 @@ "account.posts_with_replies": "投稿と返信", "account.report": "@{name}さんを通報", "account.requested": "フォロー承認待ちです。クリックしてキャンセル", - "account.requested_follow": "{name} さんがあなたにフォローリクエストしました", + "account.requested_follow": "{name}さんがあなたにフォローリクエストしました", "account.share": "@{name}さんのプロフィールを共有する", "account.show_reblogs": "@{name}さんからのブーストを表示", "account.statuses_counter": "{counter} 投稿", @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "キーボードショートカット", "footer.privacy_policy": "プライバシーポリシー", "footer.source_code": "ソースコードを表示", + "footer.status": "Status", "generic.saved": "保存しました", "getting_started.heading": "スタート", "hashtag.column_header.tag_mode.all": "と{additional}", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 714de6dad0..2158a8e0f3 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "დაწყება", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 3db7a397fd..fc0efa7ea0 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Inegzumen n unasiw", "footer.privacy_policy": "Tasertit tabaḍnit", "footer.source_code": "Wali tangalt taɣbalut", + "footer.status": "Status", "generic.saved": "Yettwasekles", "getting_started.heading": "Bdu", "hashtag.column_header.tag_mode.all": "d {additional}", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 47f4f104d7..297885a19e 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Сақталды", "getting_started.heading": "Желіде", "hashtag.column_header.tag_mode.all": "және {additional}", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 7f9574b3f4..4c7ed9a84f 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 7332dca16c..83f41d91fe 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -2,7 +2,7 @@ "about.blocks": "제한된 서버들", "about.contact": "연락처:", "about.disclaimer": "마스토돈은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다", - "about.domain_blocks.no_reason_available": "이유 비공개", + "about.domain_blocks.no_reason_available": "사유를 밝히지 않음", "about.domain_blocks.preamble": "마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.", "about.domain_blocks.silenced.explanation": "명시적으로 찾아보거나 팔로우를 하기 전까지는, 이 서버에 있는 프로필이나 게시물 등을 일반적으로 볼 수 없습니다.", "about.domain_blocks.silenced.title": "제한됨", @@ -139,7 +139,7 @@ "compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경", "compose_form.poll.switch_to_single": "단일 선택 투표로 변경", "compose_form.publish": "뿌우", - "compose_form.publish_form": "뿌우", + "compose_form.publish_form": "게시", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "변경사항 저장", "compose_form.sensitive.hide": "미디어를 민감함으로 설정하기", @@ -232,7 +232,7 @@ "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 사용자를 팔로우 해서 채워보세요", "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.", "error.unexpected_crash.explanation_addons": "이 페이지는 올바르게 보여질 수 없습니다. 브라우저 애드온이나 자동 번역 도구 등으로 인해 발생된 에러일 수 있습니다.", - "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.", + "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 도움이 되지 않는다면, 다른 브라우저나 네이티브 앱을 통해서도 Mastodon을 이용할 수 있습니다.", "error.unexpected_crash.next_steps_addons": "그걸 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않으면, 다른 브라우저나 네이티브 앱으로 마스토돈을 이용해 보실 수 있습니다.", "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사", "errors.unexpected_crash.report_issue": "문제 신고", @@ -272,15 +272,16 @@ "footer.keyboard_shortcuts": "키보드 단축키", "footer.privacy_policy": "개인정보 정책", "footer.source_code": "소스코드 보기", + "footer.status": "Status", "generic.saved": "저장됨", "getting_started.heading": "시작하기", "hashtag.column_header.tag_mode.all": "및 {additional}", "hashtag.column_header.tag_mode.any": "또는 {additional}", "hashtag.column_header.tag_mode.none": "{additional}를 제외하고", - "hashtag.column_settings.select.no_options_message": "추천할 내용이 없습니다", - "hashtag.column_settings.select.placeholder": "해시태그를 입력하세요…", + "hashtag.column_settings.select.no_options_message": "제안을 찾을 수 없습니다.", + "hashtag.column_settings.select.placeholder": "해시태그를 기입하면...", "hashtag.column_settings.tag_mode.all": "모두", - "hashtag.column_settings.tag_mode.any": "아무것이든", + "hashtag.column_settings.tag_mode.any": "어느것이든", "hashtag.column_settings.tag_mode.none": "이것들을 제외하고", "hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다", "hashtag.follow": "해시태그 팔로우", @@ -400,11 +401,11 @@ "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", "notification.mention": "{name} 님이 언급하였습니다", "notification.own_poll": "내 투표가 끝났습니다", - "notification.poll": "당신이 참여 한 투표가 종료되었습니다", + "notification.poll": "참여했던 투표가 끝났습니다.", "notification.reblog": "{name} 님이 부스트했습니다", "notification.status": "{name} 님이 방금 게시물을 올렸습니다", "notification.update": "{name} 님이 게시물을 수정했습니다", - "notifications.clear": "알림 지우기", + "notifications.clear": "알림 비우기", "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?", "notifications.column_settings.admin.report": "새 신고:", "notifications.column_settings.admin.sign_up": "새로운 가입:", @@ -494,13 +495,13 @@ "report.mute_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 여전히 당신을 팔로우 하거나 당신의 게시물을 볼 수 있으며 해당 계정은 자신이 뮤트 되었는지 알지 못합니다.", "report.next": "다음", "report.placeholder": "코멘트", - "report.reasons.dislike": "마음에 안듭니다", + "report.reasons.dislike": "마음에 안 들어요", "report.reasons.dislike_description": "내가 보기 싫은 종류에 속합니다", - "report.reasons.other": "기타", + "report.reasons.other": "그 밖에 문제예요", "report.reasons.other_description": "이슈가 다른 분류에 속하지 않습니다", - "report.reasons.spam": "스팸입니다", + "report.reasons.spam": "스팸이에요", "report.reasons.spam_description": "악성 링크, 반응 스팸, 또는 반복적인 답글", - "report.reasons.violation": "서버 규칙을 위반합니다", + "report.reasons.violation": "서버 규칙을 위반해요", "report.reasons.violation_description": "특정 규칙을 위반합니다", "report.rules.subtitle": "해당하는 사항을 모두 선택하세요", "report.rules.title": "어떤 규칙을 위반했나요?", @@ -617,7 +618,7 @@ "timeline_hint.resources.follows": "팔로우", "timeline_hint.resources.statuses": "이전 게시물", "trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자", - "trends.trending_now": "지금 유행중", + "trends.trending_now": "지금 유행 중", "ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.", "units.short.billion": "{count}B", "units.short.million": "{count}B", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 4b12ab6be6..ad53c35771 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Kurteriyên klavyeyê", "footer.privacy_policy": "Peymana nepeniyê", "footer.source_code": "Koda çavkanî nîşan bide", + "footer.status": "Status", "generic.saved": "Tomarkirî", "getting_started.heading": "Destpêkirin", "hashtag.column_header.tag_mode.all": "û {additional}", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index 1a8e20035b..db4f0022e4 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Gwithys", "getting_started.heading": "Dhe dhalleth", "hashtag.column_header.tag_mode.all": "ha(g) {additional}", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 2cbafae221..2634a6f066 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "servavit", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index ea53932f35..c7a27873de 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index bb6bfbc82b..f1b1322c22 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Īsinājumtaustiņi", "footer.privacy_policy": "Privātuma politika", "footer.source_code": "Skatīt pirmkodu", + "footer.status": "Status", "generic.saved": "Saglabāts", "getting_started.heading": "Darba sākšana", "hashtag.column_header.tag_mode.all": "un {additional}", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index c2d2bbfbed..b9e5cda1e4 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Започни", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index f3a13938bf..3574ede02d 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "സംരക്ഷിച്ചു", "getting_started.heading": "തുടക്കം കുറിക്കുക", "hashtag.column_header.tag_mode.all": "{additional} ഉം കൂടെ", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 5004f52095..1ba6aa9579 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 5936904084..3f971026ed 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Pintasan papan kekunci", "footer.privacy_policy": "Dasar privasi", "footer.source_code": "Lihat kod sumber", + "footer.status": "Status", "generic.saved": "Disimpan", "getting_started.heading": "Mari bermula", "hashtag.column_header.tag_mode.all": "dan {additional}", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index c0fa7822ec..76d864fee5 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 5b753cf2a4..91ca4ebf24 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Sneltoetsen", "footer.privacy_policy": "Privacybeleid", "footer.source_code": "Broncode bekijken", + "footer.status": "Status", "generic.saved": "Opgeslagen", "getting_started.heading": "Aan de slag", "hashtag.column_header.tag_mode.all": "en {additional}", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index b645ce087f..a4e47c1f1a 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Snøggtastar", "footer.privacy_policy": "Personvernsreglar", "footer.source_code": "Vis kjeldekode", + "footer.status": "Status", "generic.saved": "Gøymt", "getting_started.heading": "Kom i gang", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index e67cd61ea3..0cc3f121b4 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Hurtigtaster", "footer.privacy_policy": "Personvernregler", "footer.source_code": "Vis kildekode", + "footer.status": "Status", "generic.saved": "Lagret", "getting_started.heading": "Kom i gang", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 65a3e88520..1367cc893f 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Acorchis clavièr", "footer.privacy_policy": "Politica de confidencialitat", "footer.source_code": "Veire lo còdi font", + "footer.status": "Status", "generic.saved": "Enregistrat", "getting_started.heading": "Per començar", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 08145fe8ce..e22ab1f22f 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index a38ffabf76..2ad1e0961d 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Skróty klawiszowe", "footer.privacy_policy": "Polityka prywatności", "footer.source_code": "Zobacz kod źródłowy", + "footer.status": "Status", "generic.saved": "Zapisano", "getting_started.heading": "Rozpocznij", "hashtag.column_header.tag_mode.all": "i {additional}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 34098d5a09..02804f0f66 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atalhos de teclado", "footer.privacy_policy": "Política de privacidade", "footer.source_code": "Exibir código-fonte", + "footer.status": "Status", "generic.saved": "Salvo", "getting_started.heading": "Primeiros passos", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index f544e1eb7b..69f1228471 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Atalhos do teclado", "footer.privacy_policy": "Política de privacidade", "footer.source_code": "Ver código-fonte", + "footer.status": "Status", "generic.saved": "Guardado", "getting_started.heading": "Primeiros passos", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index f6348e2f31..683924c707 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Comenzi rapide de la tastatură", "footer.privacy_policy": "Politica de confidenţialitate", "footer.source_code": "Vizualizează codul sursă", + "footer.status": "Status", "generic.saved": "Salvat", "getting_started.heading": "Primii pași", "hashtag.column_header.tag_mode.all": "și {additional}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index d4bfe11e7e..e61df4a66b 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Сочетания клавиш", "footer.privacy_policy": "Политика конфиденциальности", "footer.source_code": "Исходный код", + "footer.status": "Status", "generic.saved": "Сохранено", "getting_started.heading": "Начать", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index ba83403002..e9deab43dc 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index f06e02c17a..100f8ecbd3 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Polìtica de riservadesa", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Sarvadu", "getting_started.heading": "Comente cumintzare", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index bb3389f909..c428d66835 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboord shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View the soorce code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Gettin stertit", "hashtag.column_header.tag_mode.all": "an {additional}", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index e6c9fccab0..a5ffbc615b 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "සුරැකිණි", "getting_started.heading": "පටන් ගන්න", "hashtag.column_header.tag_mode.all": "සහ {additional}", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index a341c42914..bca26f8d73 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Klávesové skratky", "footer.privacy_policy": "Zásady súkromia", "footer.source_code": "Zobraziť zdrojový kód", + "footer.status": "Status", "generic.saved": "Uložené", "getting_started.heading": "Začni tu", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 26c7376b3c..2237050d05 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tipkovne bližnjice", "footer.privacy_policy": "Pravilnik o zasebnosti", "footer.source_code": "Pokaži izvorno kodo", + "footer.status": "Status", "generic.saved": "Shranjeno", "getting_started.heading": "Kako začeti", "hashtag.column_header.tag_mode.all": "in {additional}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index f1ac38fdf9..5b2b09a5bd 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Shkurtore tastiere", "footer.privacy_policy": "Rregulla privatësie", "footer.source_code": "Shihni kodin burim", + "footer.status": "Status", "generic.saved": "U ruajt", "getting_started.heading": "Si t’ia fillohet", "hashtag.column_header.tag_mode.all": "dhe {additional}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 34e7b20def..a3ffb413ce 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tasterske prečice", "footer.privacy_policy": "Politika privatnosti", "footer.source_code": "Prikaži izvorni kod", + "footer.status": "Status", "generic.saved": "Sačuvano", "getting_started.heading": "Prvi koraci", "hashtag.column_header.tag_mode.all": "i {additional}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index be36045c21..03cc729f3e 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Тастерске пречице", "footer.privacy_policy": "Политика приватности", "footer.source_code": "Прикажи изворни код", + "footer.status": "Status", "generic.saved": "Сачувано", "getting_started.heading": "Први кораци", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 2d6cd4ab12..75a9467be2 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Tangentbordsgenvägar", "footer.privacy_policy": "Integritetspolicy", "footer.source_code": "Visa källkod", + "footer.status": "Status", "generic.saved": "Sparad", "getting_started.heading": "Kom igång", "hashtag.column_header.tag_mode.all": "och {additional}", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 08145fe8ce..e22ab1f22f 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 06e169da51..0cd309ed80 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "சேமிக்கப்பட்டது", "getting_started.heading": "முதன்மைப் பக்கம்", "hashtag.column_header.tag_mode.all": "மற்றும் {additional}", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index 43b30eb9a0..875a8c9445 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 3fdd552334..f4e3b7ff25 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "మొదలుపెడదాం", "hashtag.column_header.tag_mode.all": "మరియు {additional}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 9598c6a198..5a856f4432 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "แป้นพิมพ์ลัด", "footer.privacy_policy": "นโยบายความเป็นส่วนตัว", "footer.source_code": "ดูโค้ดต้นฉบับ", + "footer.status": "Status", "generic.saved": "บันทึกแล้ว", "getting_started.heading": "เริ่มต้นใช้งาน", "hashtag.column_header.tag_mode.all": "และ {additional}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 60cb03a841..6e658196ef 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Klavye kısayolları", "footer.privacy_policy": "Gizlilik politikası", "footer.source_code": "Kaynak kodu görüntüle", + "footer.status": "Status", "generic.saved": "Kaydedildi", "getting_started.heading": "Başlarken", "hashtag.column_header.tag_mode.all": "ve {additional}", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 1922e5890f..76009ba1e5 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Клавиатура кыска юллары", "footer.privacy_policy": "Хосусыйлык сәясәте", "footer.source_code": "Чыганак кодын карау", + "footer.status": "Status", "generic.saved": "Сакланды", "getting_started.heading": "Эшкә урнашу", "hashtag.column_header.tag_mode.all": "һәм {additional}", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 08145fe8ce..e22ab1f22f 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "and {additional}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 0528c3c2ac..5babeddd79 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Комбінації клавіш", "footer.privacy_policy": "Політика приватності", "footer.source_code": "Перегляд програмного коду", + "footer.status": "Status", "generic.saved": "Збережено", "getting_started.heading": "Розпочати", "hashtag.column_header.tag_mode.all": "та {additional}", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index cd94b32757..8980ca5318 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "آغاز کریں", "hashtag.column_header.tag_mode.all": "اور {additional}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 118d8be0c4..0f450b32af 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Klaviatura yorliqlari", "footer.privacy_policy": "Maxfiylik siyosati", "footer.source_code": "Kodini ko'rish", + "footer.status": "Status", "generic.saved": "Saqlandi", "getting_started.heading": "Ishni boshlash", "hashtag.column_header.tag_mode.all": "va {additional}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 0798d7b26c..e75f13035d 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Phím tắt", "footer.privacy_policy": "Chính sách bảo mật", "footer.source_code": "Mã nguồn", + "footer.status": "Status", "generic.saved": "Đã lưu", "getting_started.heading": "Quản lý", "hashtag.column_header.tag_mode.all": "và {additional}", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 35b6b7200a..4f190a4bc3 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", "footer.source_code": "View source code", + "footer.status": "Status", "generic.saved": "Saved", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "ⴷ {additional}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index ea1ae3179d..1d9917091d 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "快捷键列表", "footer.privacy_policy": "隐私政策", "footer.source_code": "查看源代码", + "footer.status": "Status", "generic.saved": "已保存", "getting_started.heading": "开始使用", "hashtag.column_header.tag_mode.all": "以及 {additional}", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 9312214846..f99a1c00c7 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "鍵盤快速鍵", "footer.privacy_policy": "私隱政策", "footer.source_code": "查看原始碼", + "footer.status": "Status", "generic.saved": "已儲存", "getting_started.heading": "開始使用", "hashtag.column_header.tag_mode.all": "以及{additional}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 63ee6ec6bc..c95e27cb77 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -272,6 +272,7 @@ "footer.keyboard_shortcuts": "鍵盤快速鍵", "footer.privacy_policy": "隱私權政策", "footer.source_code": "檢視原始碼", + "footer.status": "Status", "generic.saved": "已儲存", "getting_started.heading": "開始使用", "hashtag.column_header.tag_mode.all": "以及 {additional}", diff --git a/config/locales/da.yml b/config/locales/da.yml index 913f275cc6..d89aef9f39 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -142,7 +142,7 @@ da: show: created_reports: Indsendte anmeldelser targeted_reports: Anmeldt af andre - silence: Brgræns + silence: Begræns silenced: Begrænset statuses: Indlæg strikes: Tidligere anmeldelser @@ -603,7 +603,7 @@ da: delete: Slet placeholder: Beskriv udførte foranstaltninger eller andre relevante opdateringer... title: Notater - notes_description_html: Se og skriv notater til andre moderatorer og dit fremtid selv + notes_description_html: Se og skriv notater til andre moderatorer og dit fremtidige jeg processed_msg: 'Anmeldelse #%{id} er blev behandlet' quick_actions_description_html: 'Træf en hurtig foranstaltning eller rul ned for at se anmeldt indhold:' remote_user_placeholder: fjernbrugeren fra %{instance} diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 3bda08dcdd..40b2d43afb 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -110,6 +110,73 @@ en-GB: other: This account has %{count} strikes. promote: Promote protocol: Protocol + public: Public + push_subscription_expires: PuSH subscription expires + redownload: Refresh profile + redownloaded_msg: Successfully refreshed %{username}'s profile from origin + reject: Reject + rejected_msg: Successfully rejected %{username}'s sign-up application + remote_suspension_irreversible: The data of this account has been irreversibly deleted. + remote_suspension_reversible_hint_html: The account has been suspended on their server, and the data will be fully removed on %{date}. Until then, the remote server can restore this account without any ill effects. If you wish to remove all of the account's data immediately, you can do so below. + remove_avatar: Remove avatar + remove_header: Remove header + removed_avatar_msg: Successfully removed %{username}'s avatar image + removed_header_msg: Successfully removed %{username}'s header image + resend_confirmation: + already_confirmed: This user is already confirmed + send: Resend confirmation email + success: Confirmation email successfully sent! + reset: Reset + reset_password: Reset password + resubscribe: Resubscribe + role: Role + search: Search + search_same_email_domain: Other users with the same e-mail domain + search_same_ip: Other users with the same IP + security_measures: + only_password: Only password + password_and_2fa: Password and 2FA + sensitive: Force-sensitive + sensitized: Marked as sensitive + shared_inbox_url: Shared inbox URL + show: + created_reports: Made reports + targeted_reports: Reported by others + silence: Limit + silenced: Limited + statuses: Posts + strikes: Previous strikes + subscribe: Subscribe + suspend: Suspend + suspended: Suspended + suspension_irreversible: The data of this account has been irreversibly deleted. You can unsuspend the account to make it usable but it will not recover any data it previously had. + suspension_reversible_hint_html: The account has been suspended, and the data will be fully removed on %{date}. Until then, the account can be restored without any ill effects. If you wish to remove all of the account's data immediately, you can do so below. + title: Accounts + unblock_email: Unblock email address + unblocked_email_msg: Successfully unblocked %{username}'s email address + unconfirmed_email: Unconfirmed email + undo_sensitized: Undo force-sensitive + undo_silenced: Undo limit + undo_suspension: Undo suspension + unsilenced_msg: Successfully undid limit of %{username}'s account + unsubscribe: Unsubscribe + unsuspended_msg: Successfully unsuspended %{username}'s account + username: Username + view_domain: View summary for domain + warn: Warn + web: Web + whitelisted: Allowed for federation + action_logs: + action_types: + approve_appeal: Approve Appeal + approve_user: Approve User + assigned_to_self_report: Assign Report + change_email_user: Change E-mail for User + change_role_user: Change Role of User + confirm_user: Confirm User + create_account_warning: Create Warning + create_announcement: Create Announcement + unassigned_report: Unassign Report roles: categories: devops: DevOps @@ -161,3 +228,8 @@ en-GB: otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' + webauthn_credentials: + not_enabled: You haven't enabled WebAuthn yet + not_supported: This browser doesn't support security keys + otp_required: To use security keys please enable two-factor authentication first. + registered_on: Registered on %{date} diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 2131e253cf..cd236aae87 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1,7 +1,7 @@ --- eo: about: - about_mastodon_html: 'La socia retejo de la estonteco: sen reklamo, sen kompania observado, etika desegno, kaj malcentrigo! Regu viajn datumojn per Mastodon!' + about_mastodon_html: 'La socia retejo de la estonteco: sen reklamo, sen observado por firmao, etika desegno, kaj malcentrigo! Regu viajn informojn per Mastodon!' contact_missing: Ne elektita contact_unavailable: Ne disponebla hosted_on: "%{domain} estas nodo de Mastodon" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 75f9756233..8f72b69214 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -733,7 +733,7 @@ fr: title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche discovery: follow_recommendations: Suivre les recommandations - preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. + preamble: Il est essentiel de donner de la visibilité à des contenus intéressants pour attirer des utilisateur⋅rice⋅s néophytes qui ne connaissent peut-être personne sur Mastodon. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. profile_directory: Annuaire des profils public_timelines: Fils publics publish_discovered_servers: Publier les serveurs découverts diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 4f2f820a76..fa3f8d0135 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -265,7 +265,7 @@ ja: 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}さんのメディアを閲覧注意にマークしました" diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 557e499f31..e60ae983e8 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -72,7 +72,7 @@ ko: follows: 팔로우 header: 헤더 inbox_url: 수신함 URL - invite_request_text: 가입 하려는 이유 + invite_request_text: 가입하려는 이유 invited_by: 초대자 ip: IP joined: 가입 @@ -594,7 +594,7 @@ ko: create_and_resolve: 종결 및 참고사항 기재 create_and_unresolve: 재검토 및 참고사항 기재 delete: 삭제 - placeholder: 어떤 대응을 했는지 서설 또는 그 밖의 관련된 갱신 사항들 + placeholder: 어떤 대응을 했는지 설명 또는 그 밖의 관련된 갱신 사항들 title: 참고사항 notes_description_html: 확인하고 다른 중재자나 미래의 자신을 위해 기록을 작성합니다 processed_msg: '신고 #%{id}가 정상적으로 처리되었습니다' @@ -766,7 +766,7 @@ ko: reblogs: 리블로그 status_changed: 게시물 변경됨 title: 계정 게시물 - trending: 유행중 + trending: 유행 중 visibility: 공개 설정 with_media: 미디어 있음 strikes: @@ -856,7 +856,7 @@ ko: used_by_over_week: other: 지난 주 동안 %{count} 명의 사람들이 사용했습니다 title: 유행 - trending: 유행중 + trending: 유행 중 warning_presets: add_new: 새로 추가 delete: 삭제 @@ -1167,7 +1167,7 @@ ko: hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다. title: 필터링된 게시물 footer: - trending_now: 지금 유행중 + trending_now: 지금 유행 중 generic: all: 모두 all_items_on_page_selected_html: diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 0f0f5bb076..52d8974f2e 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -91,11 +91,13 @@ es-MX: site_short_description: Una breve descripción para ayudar a identificar su servidor de forma única. ¿Quién lo administra, a quién va dirigido? site_terms: Utiliza tu propia política de privacidad o déjala en blanco para usar la predeterminada Puede estructurarse con formato Markdown. site_title: Cómo puede referirse la gente a tu servidor además de por el nombre de dominio. + status_page_url: URL de una página donde las personas pueden ver el estado de este servidor durante una interrupción theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. + trends_as_landing_page: Mostrar contenido en tendencia para usuarios y visitantes desconectados en lugar de una descripción de este servidor. Requiere tendencias para ser habilitado. form_challenge: current_password: Estás entrando en un área segura imports: @@ -251,11 +253,13 @@ es-MX: site_short_description: Descripción del servidor site_terms: Política de Privacidad site_title: Nombre del servidor + status_page_url: URL de página de estado theme: Tema por defecto thumbnail: Miniatura del servidor timeline_preview: Permitir el acceso no autenticado a las líneas de tiempo públicas trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias + trends_as_landing_page: Usar tendencias como página de destino interactions: must_be_follower: Bloquear notificaciones de personas que no te siguen must_be_following: Bloquear notificaciones de personas que no sigues diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index ffcf16e01a..1328350dd3 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -18,6 +18,7 @@ fi: disable: Estä käyttäjää käyttämästä tiliään, mutta älä poista tai piilota sen sisältöä. none: Käytä tätä lähettääksesi varoituksen käyttäjälle käynnistämättä mitään muita toimintoja. sensitive: Pakota kaikki tämän käyttäjän mediatiedostot arkaluontoisiksi. + suspend: Estä kaikki vuorovaikutus tältä -tai tälle tilille ja poista sen kaikki sisältö. Päätös voidaan peruuttaa 30 päivän aikana. Sulkee kaikki raportit tätä tiliä vasten. warning_preset_id: Valinnainen. Voit silti lisätä mukautetun tekstin esiasetuksen loppuun announcement: all_day: Kun valittu, vain valittu aikaväli näytetään diff --git a/config/locales/simple_form.fr-QC.yml b/config/locales/simple_form.fr-QC.yml index 8bba3b5413..bc78f0ae65 100644 --- a/config/locales/simple_form.fr-QC.yml +++ b/config/locales/simple_form.fr-QC.yml @@ -18,6 +18,8 @@ fr-QC: disable: Empêcher l’utilisateur·rice d’utiliser son compte, mais ne pas supprimer ou masquer son contenu. none: Utilisez ceci pour envoyer un avertissement à l’utilisateur·rice, sans déclencher aucune autre action. sensitive: Forcer toutes les pièces jointes de cet·te utilisateur·rice à être signalées comme sensibles. + silence: Empêcher l'utilisateur⋅rice de publier des messages en visibilité publique et cacher tous ses messages et notifications aux comptes non abonnés. Cloture tous les signalements concernant ce compte. + suspend: Empêcher toute interaction depuis ou vers ce compte et supprimer son contenu. Réversible dans les 30 jours. Cloture tous les signalements concernant ce compte. warning_preset_id: Facultatif. Vous pouvez toujours ajouter un texte personnalisé à la fin de la présélection announcement: all_day: Coché, seules les dates de l’intervalle de temps seront affichées @@ -72,6 +74,7 @@ fr-QC: hide: Cacher complètement le contenu filtré, faire comme s'il n'existait pas warn: Cacher le contenu filtré derrière un avertissement mentionnant le nom du filtre form_admin_settings: + activity_api_enabled: Nombre de messages publiés localement, de comptes actifs et de nouvelles inscriptions par tranche hebdomadaire backups_retention_period: Conserve les archives générées par l'utilisateur selon le nombre de jours spécifié. bootstrap_timeline_accounts: Ces comptes seront épinglés en tête de liste des recommandations pour les nouveaux utilisateurs. closed_registrations_message: Affiché lorsque les inscriptions sont fermées @@ -79,6 +82,7 @@ fr-QC: custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon. mascot: Remplace l'illustration dans l'interface Web avancée. media_cache_retention_period: Les fichiers multimédias téléchargés seront supprimés après le nombre de jours spécifiés lorsque la valeur est positive, et seront téléchargés à nouveau sur demande. + peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fediverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général. 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. @@ -227,6 +231,7 @@ fr-QC: hide: Cacher complètement warn: Cacher derrière un avertissement form_admin_settings: + activity_api_enabled: Publie des statistiques agrégées sur l'activité des utilisateur⋅rice⋅s dans l'API backups_retention_period: Période d'archivage utilisateur bootstrap_timeline_accounts: Toujours recommander ces comptes aux nouveaux utilisateurs closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles @@ -234,6 +239,7 @@ fr-QC: custom_css: CSS personnalisé mascot: Mascotte personnalisée (héritée) media_cache_retention_period: Durée de rétention des médias dans le cache + peers_api_enabled: Publie la liste des serveurs découverts dans l'API profile_directory: Activer l’annuaire des profils registrations_mode: Qui peut s’inscrire require_invite_text: Exiger une raison pour s’inscrire diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index d9398ff883..02ecbe0862 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -41,7 +41,7 @@ fr: email: Vous recevrez un courriel de confirmation fields: Vous pouvez avoir jusqu’à 4 éléments affichés en tant que tableau sur votre profil header: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px - inbox_url: Copiez l’URL depuis la page d’accueil du relai que vous souhaitez utiliser + inbox_url: Copiez l’URL depuis la page d’accueil du relais que vous souhaitez utiliser irreversible: Les messages filtrés disparaîtront irrévocablement, même si le filtre est supprimé plus tard locale: La langue de l’interface, des courriels et des notifications locked: Nécessite que vous approuviez manuellement chaque abonné·e @@ -275,12 +275,12 @@ fr: notification_emails: appeal: Une personne fait appel d'une décision des modérateur·rice·s digest: Envoyer des courriels récapitulatifs - favourite: Quelqu’un a ajouté mon message à ses favoris + favourite: Quelqu’un a ajouté votre message à ses favoris follow: Quelqu’un vient de me suivre follow_request: Quelqu’un demande à me suivre mention: Quelqu’un me mentionne pending_account: Nouveau compte en attente d’approbation - reblog: Quelqu’un a partagé mon message + reblog: Quelqu’un a partagé votre message report: Nouveau signalement soumis trending_tag: Nouvelle tendance nécessitant supervision rule: diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 8afa078601..6d9ed78927 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -91,11 +91,12 @@ he: site_short_description: תיאור קצר שיעזור להבחין בייחודיות השרת שלך. מי מריץ אותו, למי הוא מיועד? site_terms: נסחו מדיניות פרטיות או השאירו ריק כדי להשתמש בברירת המחדל. ניתן לנסח בעזרת תחביר מארקדאון. site_title: כיצד יקרא השרת שלך על ידי הקהל מלבד שם המתחם. - theme: ערכת המראה שיראו משתמשים חדשים ולא מחוברים. + theme: ערכת המראה שיראו משתמשים חדשים ומשתמשים שאינם מחוברים. thumbnail: תמונה ביחס 2:1 בערך שתוצג ליד המידע על השרת שלך. timeline_preview: משתמשים מנותקים יוכלו לדפדף בהודעות ציר הזמן הציבורי שעל השרת. trendable_by_default: לדלג על בדיקה ידנית של התכנים החמים. פריטים ספציפיים עדיין ניתנים להסרה לאחר מעשה. trends: נושאים חמים יציגו אילו הודעות, תגיות וידיעות חדשות צוברות חשיפה על השרת שלך. + trends_as_landing_page: הצג למבקרים ולמשתמשים שאינם מחוברים את הנושאים החמים במקום את תיאור השרת. מחייב הפעלה של אפשרות הנושאים החמים. form_challenge: current_password: את.ה נכנס. ת לאזור מאובטח imports: @@ -256,6 +257,7 @@ he: timeline_preview: הרשאת גישה בלתי מאומתת לפיד הפומבי trendable_by_default: הרשאה לפריטים להופיע בנושאים החמים ללא אישור מוקדם trends: אפשר פריטים חמים (טרנדים) + trends_as_landing_page: השתמש בנושאים חמים בתור דף הנחיתה interactions: must_be_follower: חסימת התראות משאינם עוקבים must_be_following: חסימת התראות משאינם נעקבים diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 779555da3c..f7e2cb9545 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -84,18 +84,20 @@ ja: media_cache_retention_period: 正の値に設定されている場合、ダウンロードされたメディアファイルは指定された日数の後に削除され、リクエストに応じて再ダウンロードされます。 peers_api_enabled: このサーバーが Fediverse で遭遇したドメイン名のリストです。このサーバーが知っているだけで、特定のサーバーと連合しているかのデータは含まれません。これは一般的に Fediverse に関する統計情報を収集するサービスによって使用されます。 profile_directory: ディレクトリには、掲載する設定をしたすべてのユーザーが一覧表示されます。 - require_invite_text: アカウント登録が承認制の場合、申請事由の入力を必須にします + require_invite_text: アカウント登録が承認制の場合、登録の際の申請事由の入力を必須にします site_contact_email: 法律またはサポートに関する問い合わせ先 site_contact_username: マストドンでの連絡方法 site_extended_description: 訪問者やユーザーに役立つかもしれない任意の追加情報。Markdownが使えます。 site_short_description: 運営している人や組織、想定しているユーザーなど、サーバーの特徴を説明する短いテキスト site_terms: 独自のプライバシーポリシーを使用するか空白にしてデフォルトのプライバシーポリシーを使用します。Markdownが使えます。 site_title: ドメイン名以外でサーバーを参照する方法 + status_page_url: 障害発生時などにユーザーがサーバーの状態を確認できるページのURL theme: ログインしていない人と新規ユーザーに表示されるテーマ。 thumbnail: サーバー情報と共に表示される、アスペクト比が約 2:1 の画像。 - timeline_preview: ログアウトした人でも、サーバー上で利用可能な最新の公開投稿を閲覧することができます。 - trendable_by_default: トレンドコンテンツの手動レビューをスキップする。個々のコンテンツは後でトレンドから削除できます。 - trends: トレンドは、サーバー上でどの投稿、ハッシュタグ、ニュース記事が人気を集めているかを示します。 + timeline_preview: ログインしていないユーザーがサーバー上の最新の公開投稿を閲覧できるようにします。 + trendable_by_default: トレンドの審査を省略します。トレンドは掲載後でも個別に除外できます。 + trends: トレンドは、サーバー上で人気を集めている投稿、ハッシュタグ、ニュース記事などが表示されます。 + trends_as_landing_page: ログインしていないユーザーに対して、サーバーの説明の代わりにトレンドコンテンツを表示します。トレンドを有効にする必要があります。 form_challenge: current_password: セキュリティ上重要なエリアにアクセスしています imports: @@ -122,11 +124,11 @@ ja: chosen_languages: 選択すると、選択した言語の投稿のみが公開タイムラインに表示されるようになります role: このロールはユーザーが持つ権限を管理します user_role: - color: UI 全体で使用される色(RGB hex 形式) + color: UI 全体でロールの表示に使用される色(16進数RGB形式) highlighted: これによりロールが公開されます。 name: ロールのバッジを表示する際の表示名 permissions_as_keys: このロールを持つユーザーは次の機能にアクセスできます - position: 特定の状況では、より高いロールが競合の解決を決定します。特定のアクションは優先順位が低いロールでのみ実行できます。 + position: 場合により、より高いロールのユーザーが紛争の解決を決定します。特定のアクションは優先度が低いロールでのみ実行できます。 webhook: events: 送信するイベントを選択 url: イベントの送信先 @@ -233,16 +235,16 @@ ja: form_admin_settings: activity_api_enabled: APIでユーザーアクティビティに関する集計統計を公開する backups_retention_period: ユーザーアーカイブの保持期間 - bootstrap_timeline_accounts: 新規ユーザーに必ずおすすめするアカウント - closed_registrations_message: サインアップできない場合のカスタムメッセージ + bootstrap_timeline_accounts: おすすめユーザーに常に表示するアカウント + closed_registrations_message: アカウント作成を停止している時のカスタムメッセージ content_cache_retention_period: コンテンツキャッシュの保持期間 custom_css: カスタムCSS mascot: カスタムマスコット(レガシー) media_cache_retention_period: メディアキャッシュの保持期間 - peers_api_enabled: APIで接続しているサーバーのリストを公開する + peers_api_enabled: 発見したサーバーのリストをAPIで公開する profile_directory: ディレクトリを有効にする registrations_mode: 新規登録が可能な人 - require_invite_text: 意気込み理由の入力を必須にする。 + require_invite_text: 申請事由の入力を必須にする show_domain_blocks: ドメインブロックを表示 show_domain_blocks_rationale: ドメインがブロックされた理由を表示 site_contact_email: 連絡先メールアドレス @@ -251,11 +253,13 @@ ja: site_short_description: サーバーの説明 site_terms: プライバシーポリシー site_title: サーバーの名前 + status_page_url: ステータスページのURL theme: デフォルトテーマ thumbnail: サーバーのサムネイル timeline_preview: 公開タイムラインへの未認証のアクセスを許可する - trendable_by_default: 審査前のハッシュタグのトレンドへの表示を許可する + trendable_by_default: 審査前のトレンドの掲載を許可する trends: トレンドを有効にする + trends_as_landing_page: 新規登録画面にトレンドを表示する interactions: must_be_follower: フォロワー以外からの通知をブロック must_be_following: フォローしていないユーザーからの通知をブロック diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 007fa85610..d082262615 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -91,11 +91,13 @@ ko: site_short_description: 이 서버를 특별하게 구분할 수 있는 짧은 설명. 누가 운영하고, 누구를 위한 것인가요? site_terms: 자신만의 개인정보 정책을 사용하거나 비워두는 것으로 기본값을 사용할 수 있습니다. 마크다운 문법을 사용할 수 있습니다. site_title: 사람들이 이 서버를 도메인 네임 대신에 부를 이름. + status_page_url: 이 서버가 중단된 동안 사람들이 서버의 상태를 볼 수 있는 페이지 URL theme: 로그인 하지 않은 사용자나 새로운 사용자가 보게 될 테마. thumbnail: 대략 2:1 비율의 이미지가 서버 정보 옆에 표시됩니다. timeline_preview: 로그아웃 한 사용자들이 이 서버에 있는 최신 공개글들을 볼 수 있게 합니다. trendable_by_default: 유행하는 콘텐츠에 대한 수동 승인을 건너뜁니다. 이 설정이 적용된 이후에도 각각의 항목들을 삭제할 수 있습니다. trends: 트렌드는 어떤 게시물, 해시태그 그리고 뉴스 기사가 이 서버에서 인기를 끌고 있는지 보여줍니다. + trends_as_landing_page: 로그아웃한 사용자와 방문자에게 서버 설명 대신하여 유행하는 내용을 보여줍니다. 유행 기능을 활성화해야 합니다. form_challenge: current_password: 당신은 보안 구역에 진입하고 있습니다 imports: @@ -251,11 +253,13 @@ ko: site_short_description: 서버 설명 site_terms: 개인정보 정책 site_title: 서버 이름 + status_page_url: 상태 페이지 URL theme: 기본 테마 thumbnail: 서버 썸네일 timeline_preview: 로그인 하지 않고 공개 타임라인에 접근하는 것을 허용 trendable_by_default: 사전 리뷰 없이 트렌드에 오르는 것을 허용 trends: 유행 활성화 + trends_as_landing_page: 유행을 방문 페이지로 쓰기 interactions: must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단 must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단 diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index a14c631c2f..afc8b2d9d8 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -91,6 +91,7 @@ uk: site_short_description: Короткий опис, щоб допомогти однозначно ідентифікувати ваш сервер. Хто ним керує, для кого він потрібен? site_terms: Використовуйте власну політику приватності або залиште поле порожнім, щоб використовувати усталене значення. Може бути структуровано за допомогою синтаксису Markdown. site_title: Як люди можуть посилатися на ваш сервер, окрім його доменного імені. + status_page_url: URL сторінки, на якій люди можуть бачити статус цього сервера під час його збою в роботі theme: Тема, яку бачать відвідувачі, що вийшли з системи, та нові користувачі. thumbnail: Зображення приблизно 2:1, що показується поряд з відомостями про ваш сервер. timeline_preview: Зареєстровані відвідувачі зможуть переглядати останні публічні дописи, доступні на сервері. @@ -251,11 +252,13 @@ uk: site_short_description: Опис сервера site_terms: Політика приватності site_title: Назва сервера + status_page_url: URL сторінки статусу theme: Стандартна тема thumbnail: Мініатюра сервера timeline_preview: Дозволити неавтентифікований доступ до публічних стрічок trendable_by_default: Дозволити популярне без попереднього огляду trends: Увімкнути популярні + trends_as_landing_page: Використовуйте тенденції як цільову сторінку interactions: must_be_follower: Блокувати сповіщення від непідписаних людей must_be_following: Блокувати сповіщення від людей, на яких ви не підписані diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 4ac81354de..18ba22921c 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -91,11 +91,13 @@ zh-CN: site_short_description: 有助于区分你的服务器独特性的简短描述。谁在管理?供谁使用? site_terms: 使用你自己的隐私政策或留空以使用默认版。可以使用 Markdown 语法。 site_title: 除了域名,人们还可以如何指代你的服务器。 + status_page_url: 配置一个网址,当服务中断时,人们可以通过该网址查看服务器的状态。 theme: 给未登录访客和新用户使用的主题。 thumbnail: 与服务器信息一并展示的约 2:1 比例的图像。 timeline_preview: 未登录访客将能够浏览服务器上最新的公共嘟文。 trendable_by_default: 跳过对热门内容的手工审核。个别项目仍可在之后从趋势中删除。 trends: 趋势中会显示正在你服务器上受到关注的嘟文、标签和新闻故事。 + trends_as_landing_page: 向注销的用户和访问者显示趋势内容,而不是对该服务器的描述,需要启用趋势。 form_challenge: current_password: 你正在进入安全区域 imports: @@ -251,11 +253,13 @@ zh-CN: site_short_description: 本站简介 site_terms: 隐私政策 site_title: 本站名称 + status_page_url: 静态页面地址 theme: 默认主题 thumbnail: 本站缩略图 timeline_preview: 时间轴预览 trendable_by_default: 允许在未审核的情况下将话题置为热门 trends: 启用趋势 + trends_as_landing_page: 使用趋势作为登陆页面 interactions: must_be_follower: 屏蔽来自未关注我的用户的通知 must_be_following: 屏蔽来自我未关注的用户的通知 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index a4036e91bd..855c402423 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -91,11 +91,13 @@ zh-TW: site_short_description: 一段有助於辨別您伺服器的簡短說明。例如:誰運行該伺服器、該伺服器是提供給哪些人群? site_terms: 使用您自己的隱私權政策,或者保留空白以使用預設值。可由 Markdown 語法撰寫。 site_title: 除了網域外,其他人該如何指稱您的伺服器。 + status_page_url: 當服務中斷時,可以提供使用者了解伺服器資訊頁面之 URL theme: 未登入之訪客或新使用者所見之佈景主題。 thumbnail: 大約 2:1 圖片會顯示於您伺服器資訊之旁。 timeline_preview: 未登入之訪客能夠瀏覽此伺服器上最新的公開嘟文。 trendable_by_default: 跳過手動審核熱門內容。仍能在登上熱門趨勢後移除個別內容。 trends: 熱門趨勢將顯示於您伺服器上正在吸引大量注意力的嘟文、主題標籤、或者新聞。 + trends_as_landing_page: 顯示熱門趨勢內容給未登入使用者及訪客而不是關於此伺服器之描述。需要啟用熱門趨勢。 form_challenge: current_password: 您正要進入安全區域 imports: @@ -251,11 +253,13 @@ zh-TW: site_short_description: 伺服器描述 site_terms: 隱私權政策 site_title: 伺服器名稱 + status_page_url: 狀態頁面 URL theme: 預設佈景主題 thumbnail: 伺服器縮圖 timeline_preview: 允許未登入使用者瀏覽公開時間軸 trendable_by_default: 允許熱門趨勢直接顯示,不需經過審核 trends: 啟用熱門趨勢 + trends_as_landing_page: 以熱門趨勢作為登陸頁面 interactions: must_be_follower: 封鎖非跟隨者的通知 must_be_following: 封鎖您未跟隨之使用者的通知 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index f5042f92bb..675b963fa8 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -472,6 +472,7 @@ sk: delete: Vymaž placeholder: Opíš aké opatrenia boli urobené, alebo akékoľvek iné súvisiace aktualizácie… title: Poznámky + remote_user_placeholder: vzdialený užívateľ z %{instance} reopen: Znovu otvor report report: 'Nahlásiť #%{id}' reported_account: Nahlásený účet diff --git a/yarn.lock b/yarn.lock index 44bc57fd61..0d30d9f803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1449,7 +1449,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.3.1", "@jest/types@^29.4.1": +"@jest/types@^29.4.1": version "29.4.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== @@ -6771,7 +6771,7 @@ jest-snapshot@^29.4.1: pretty-format "^29.4.1" semver "^7.3.5" -jest-util@^29.3.1, jest-util@^29.4.1: +jest-util@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== From 1f9f8035e44436aa902d188c4a3dd758cc805698 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Feb 2023 15:55:07 +0900 Subject: [PATCH 0334/1220] Bump bootsnap from 1.15.0 to 1.16.0 (#23340) Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.15.0 to 1.16.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.15.0...v1.16.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... 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 1136de6997..6e5292d824 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1' gem 'active_model_serializers', '~> 0.10' gem 'addressable', '~> 2.8' -gem 'bootsnap', '~> 1.15.0', require: false +gem 'bootsnap', '~> 1.16.0', require: false gem 'browser' gem 'charlock_holmes', '~> 0.7.7' gem 'chewy', '~> 7.2' diff --git a/Gemfile.lock b/Gemfile.lock index a142117110..3ecd7eb0d8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,7 @@ GEM debug_inspector (>= 0.0.1) blurhash (0.1.6) ffi (~> 1.14) - bootsnap (1.15.0) + bootsnap (1.16.0) msgpack (~> 1.2) brakeman (5.4.0) browser (4.2.0) @@ -768,7 +768,7 @@ DEPENDENCIES better_errors (~> 2.9) binding_of_caller (~> 1.0) blurhash (~> 0.1) - bootsnap (~> 1.15.0) + bootsnap (~> 1.16.0) brakeman (~> 5.4) browser bullet (~> 7.0) From 67744ee779b97ea07e91dd076e1df25e362ff33d Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sat, 4 Feb 2023 16:34:21 +0100 Subject: [PATCH 0335/1220] Spell check input fields (#23395) --- app/javascript/mastodon/components/autosuggest_input.js | 4 +++- .../mastodon/features/compose/components/compose_form.js | 1 + .../mastodon/features/compose/components/poll_form.js | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.js index 817a41b93b..8d2ddb411a 100644 --- a/app/javascript/mastodon/components/autosuggest_input.js +++ b/app/javascript/mastodon/components/autosuggest_input.js @@ -51,6 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { searchTokens: PropTypes.arrayOf(PropTypes.string), maxLength: PropTypes.number, lang: PropTypes.string, + spellCheck: PropTypes.string, }; static defaultProps = { @@ -186,7 +187,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { }; render () { - const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props; + const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang, spellCheck } = this.props; const { suggestionsHidden } = this.state; return ( @@ -212,6 +213,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { className={className} maxLength={maxLength} lang={lang} + spellCheck={spellCheck} /> diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js index 8a8da7a98b..e641d59f4d 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.js +++ b/app/javascript/mastodon/features/compose/components/compose_form.js @@ -242,6 +242,7 @@ class ComposeForm extends ImmutablePureComponent { id='cw-spoiler-input' className='spoiler-input__input' lang={this.props.lang} + spellCheck />

    diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index bab31cb4cc..bb03f6f662 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -93,6 +93,7 @@ class Option extends React.PureComponent { maxLength={50} value={title} lang={lang} + spellCheck onChange={this.handleOptionTitleChange} suggestions={this.props.suggestions} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} From fa433ac5a638b00f5bf77ee52955696d7aa842d6 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 4 Feb 2023 11:09:05 +0100 Subject: [PATCH 0336/1220] Further JS code style changes --- .../compose/components/compose_form.js | 12 ++++++++---- .../containers/compose_form_container.js | 18 ++++++++++++------ .../flavours/glitch/reducers/meta.js | 6 ++---- 3 files changed, 22 insertions(+), 14 deletions(-) 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 c5655c4f20..9f57d7b1b2 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.js @@ -21,10 +21,14 @@ import { length } from 'stringz'; const messages = defineMessages({ placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' }, - missingDescriptionMessage: { id: 'confirmations.missing_media_description.message', - defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, - missingDescriptionConfirm: { id: 'confirmations.missing_media_description.confirm', - defaultMessage: 'Send anyway' }, + missingDescriptionMessage: { + id: 'confirmations.missing_media_description.message', + defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.', + }, + missingDescriptionConfirm: { + id: 'confirmations.missing_media_description.confirm', + defaultMessage: 'Send anyway', + }, spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' }, }); 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 56eaaf9203..ddcdb367a5 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 @@ -21,12 +21,18 @@ import { changeLocalSetting } from 'flavours/glitch/actions/local_settings'; import { privacyPreference } from 'flavours/glitch/utils/privacy_preference'; const messages = defineMessages({ - missingDescriptionMessage: { id: 'confirmations.missing_media_description.message', - defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' }, - missingDescriptionConfirm: { id: 'confirmations.missing_media_description.confirm', - defaultMessage: 'Send anyway' }, - missingDescriptionEdit: { id: 'confirmations.missing_media_description.edit', - defaultMessage: 'Edit media' }, + missingDescriptionMessage: { + id: 'confirmations.missing_media_description.message', + defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.', + }, + missingDescriptionConfirm: { + id: 'confirmations.missing_media_description.confirm', + defaultMessage: 'Send anyway', + }, + missingDescriptionEdit: { + id: 'confirmations.missing_media_description.edit', + defaultMessage: 'Edit media', + }, }); // State mapping. diff --git a/app/javascript/flavours/glitch/reducers/meta.js b/app/javascript/flavours/glitch/reducers/meta.js index 9f9b89fc00..7a38a9090c 100644 --- a/app/javascript/flavours/glitch/reducers/meta.js +++ b/app/javascript/flavours/glitch/reducers/meta.js @@ -13,11 +13,9 @@ const initialState = ImmutableMap({ export default function meta(state = initialState, action) { switch(action.type) { case STORE_HYDRATE: - return state.merge( - action.state.get('meta')) + return state.merge(action.state.get('meta')) .set('permissions', action.state.getIn(['role', 'permissions'])) - .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])), - ); + .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout']))); case APP_LAYOUT_CHANGE: return state.set('layout', action.layout); default: From c1f32c9c1470d7d38342e211ff5ca326e12494fb Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 6 Feb 2023 16:50:08 +0100 Subject: [PATCH 0337/1220] Show spinner while loading follow requests (#23386) --- .../mastodon/features/follow_requests/index.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.js index d16aa7737e..526ae4cde7 100644 --- a/app/javascript/mastodon/features/follow_requests/index.js +++ b/app/javascript/mastodon/features/follow_requests/index.js @@ -5,7 +5,6 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { debounce } from 'lodash'; -import LoadingIndicator from '../../components/loading_indicator'; import Column from '../ui/components/column'; import ColumnBackButtonSlim from '../../components/column_back_button_slim'; import AccountAuthorizeContainer from './containers/account_authorize_container'; @@ -53,16 +52,8 @@ class FollowRequests extends ImmutablePureComponent { render () { const { intl, accountIds, hasMore, multiColumn, locked, domain, isLoading } = this.props; - if (!accountIds) { - return ( - - - - ); - } - const emptyMessage = ; - const unlockedPrependMessage = locked ? null : ( + const unlockedPrependMessage = !locked && accountIds.size > 0 && (
    Date: Mon, 6 Feb 2023 16:53:31 +0100 Subject: [PATCH 0338/1220] Add scrolling to Compare history modal (#23396) * Compare history modal: allow vertical scrolling * Update app/javascript/styles/mastodon/components.scss Co-authored-by: Claire --------- Co-authored-by: Claire --- app/javascript/styles/mastodon/components.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index ed4e324400..493efea305 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -5798,6 +5798,7 @@ a.status-card.compact:hover { &__container { padding: 30px; pointer-events: all; + overflow-y: auto; } .status__content { From e2207af3d7ca9d00896bd7e3d1eceda138e39135 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 6 Feb 2023 18:41:31 +0100 Subject: [PATCH 0339/1220] New Crowdin updates (#23393) * New translations en.yml (Portuguese) * New translations en.yml (Romanian) * New translations en.yml (Spanish) * New translations en.yml (Afrikaans) * New translations en.yml (Arabic) * New translations en.yml (Belarusian) * New translations en.yml (Czech) * New translations en.yml (Danish) * New translations en.yml (Greek) * New translations en.yml (Basque) * New translations en.yml (Hungarian) * New translations en.yml (Armenian) * New translations en.yml (Italian) * New translations en.yml (Galician) * New translations en.yml (Slovak) * New translations en.yml (Chinese Simplified) * New translations en.yml (Polish) * New translations en.yml (Chinese Traditional) * New translations en.yml (Georgian) * New translations en.yml (Korean) * New translations en.yml (Lithuanian) * New translations en.yml (Macedonian) * New translations en.yml (Punjabi) * New translations en.yml (Slovenian) * New translations en.yml (Albanian) * New translations en.yml (Serbian (Cyrillic)) * New translations en.yml (Swedish) * New translations en.yml (Turkish) * New translations en.yml (Ukrainian) * New translations en.yml (Urdu (Pakistan)) * New translations en.yml (Icelandic) * New translations simple_form.en.yml (Icelandic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Indonesian) * New translations en.yml (Persian) * New translations en.yml (Tamil) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Bengali) * New translations en.yml (Marathi) * New translations en.yml (Thai) * New translations en.yml (Croatian) * New translations en.yml (Kazakh) * New translations en.yml (Latvian) * New translations en.yml (Hindi) * New translations en.yml (Malay) * New translations en.yml (Telugu) * New translations en.yml (Burmese) * New translations en.yml (Welsh) * New translations en.yml (Faroese) * New translations en.yml (Uyghur) * New translations simple_form.en.yml (Greek) * New translations simple_form.en.yml (Hebrew) * New translations en.json (Japanese) * New translations en.json (Romanian) * New translations en.json (Afrikaans) * New translations en.json (Danish) * New translations en.json (Greek) * New translations en.json (Frisian) * New translations en.json (Basque) * New translations en.json (Irish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.yml (Tatar) * New translations en.yml (Malayalam) * New translations en.yml (Breton) * New translations en.yml (Latin) * New translations en.yml (Bosnian) * New translations en.yml (French, Quebec) * New translations en.yml (Sinhala) * New translations en.yml (Cornish) * New translations en.yml (Kannada) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Asturian) * New translations en.yml (Aragonese) * New translations en.yml (Serbian (Latin)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Scots) * New translations en.yml (Igbo) * New translations en.yml (Corsican) * New translations en.yml (Sardinian) * New translations en.yml (Sanskrit) * New translations en.yml (Kabyle) * New translations en.yml (Taigi) * New translations en.yml (Silesian) * New translations en.yml (Standard Moroccan Tamazight) * New translations en.json (Uzbek) * New translations en.yml (Uzbek) * New translations en.json (Kashubian) * New translations en.yml (Kashubian) * New translations simple_form.en.yml (Slovenian) * New translations en.json (Georgian) * New translations en.json (Lithuanian) * New translations en.json (Macedonian) * New translations en.json (Norwegian) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Russian) * New translations en.json (Slovenian) * 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 (Urdu (Pakistan)) * New translations en.json (Galician) * 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 (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations en.json (Hindi) * New translations en.json (Malay) * New translations en.json (Telugu) * New translations en.json (Burmese) * New translations en.json (Faroese) * 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 (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.json (Catalan) * New translations en.json (German) * New translations en.json (Korean) * New translations en.json (Portuguese) * New translations en.json (Thai) * New translations simple_form.en.yml (Catalan) * New translations en.yml (Thai) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Portuguese) * New translations simple_form.en.yml (Spanish, Argentina) * New translations simple_form.en.yml (Thai) * New translations en.json (Hungarian) * New translations en.json (Spanish, Argentina) * New translations en.json (German) * New translations en.json (Dutch) * New translations en.yml (German) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (German) * New translations en.json (German) * New translations en.json (Italian) * New translations en.json (Albanian) * New translations en.yml (German) * New translations en.yml (Russian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Italian) * New translations simple_form.en.yml (Albanian) * New translations simple_form.en.yml (Latvian) * New translations en.json (Polish) * New translations en.json (Russian) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Latvian) * New translations simple_form.en.yml (Czech) * New translations simple_form.en.yml (Polish) * New translations simple_form.en.yml (Turkish) * New translations simple_form.en.yml (Ukrainian) * New translations en.json (Turkish) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (Italian) * New translations en.json (French) * New translations en.json (Czech) * New translations simple_form.en.yml (French) * New translations en.json (Slovak) * New translations simple_form.en.yml (Slovak) * New translations en.json (German) * New translations en.json (English, United Kingdom) * New translations en.json (Esperanto) * New translations en.yml (German) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (English, United Kingdom) * New translations simple_form.en.yml (Esperanto) * New translations en.yml (Slovak) * New translations simple_form.en.yml (German) * New translations en.json (Spanish) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Basque) * New translations simple_form.en.yml (Spanish) * New translations en.json (Basque) * New translations en.json (Belarusian) * New translations en.json (Finnish) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Faroese) * New translations en.json (Faroese) * New translations en.json (Korean) * New translations en.json (Vietnamese) * New translations simple_form.en.yml (Vietnamese) * New translations en.json (Korean) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Hungarian) * New translations simple_form.en.yml (Galician) * New translations en.json (Galician) * New translations simple_form.en.yml (Polish) * New translations en.json (French) * New translations en.yml (French) * New translations en.json (French) * New translations en.yml (French) * New translations simple_form.en.yml (French) * New translations activerecord.en.yml (French) * New translations devise.en.yml (French) * New translations doorkeeper.en.yml (French) * New translations en.json (Icelandic) * New translations en.yml (French) * New translations simple_form.en.yml (French) * New translations en.json (French) * New translations en.yml (French) * New translations simple_form.en.yml (French) * New translations doorkeeper.en.yml (French) * New translations en.json (French) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Danish) * New translations en.json (Danish) * New translations en.yml (English, United Kingdom) * New translations en.yml (Asturian) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations simple_form.en.yml (Estonian) * New translations en.json (Estonian) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Frisian) * New translations en.json (Frisian) * Normalize --------- Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/be.json | 2 +- app/javascript/mastodon/locales/ca.json | 2 +- app/javascript/mastodon/locales/cs.json | 2 +- app/javascript/mastodon/locales/de.json | 40 ++++++------- app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/eo.json | 6 +- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es.json | 2 +- app/javascript/mastodon/locales/et.json | 2 +- app/javascript/mastodon/locales/eu.json | 2 +- app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fo.json | 2 +- app/javascript/mastodon/locales/fr-QC.json | 10 ++-- app/javascript/mastodon/locales/fr.json | 24 ++++---- app/javascript/mastodon/locales/fy.json | 2 +- app/javascript/mastodon/locales/gl.json | 2 +- app/javascript/mastodon/locales/he.json | 2 +- app/javascript/mastodon/locales/hu.json | 2 +- app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/ja.json | 2 +- app/javascript/mastodon/locales/ko.json | 10 ++-- app/javascript/mastodon/locales/lv.json | 2 +- app/javascript/mastodon/locales/nn.json | 2 +- app/javascript/mastodon/locales/pt-PT.json | 2 +- app/javascript/mastodon/locales/ru.json | 6 +- app/javascript/mastodon/locales/sk.json | 2 +- app/javascript/mastodon/locales/sl.json | 2 +- app/javascript/mastodon/locales/sq.json | 2 +- app/javascript/mastodon/locales/sr.json | 2 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 4 +- app/javascript/mastodon/locales/uk.json | 2 +- app/javascript/mastodon/locales/vi.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 2 +- config/locales/activerecord.fr.yml | 2 +- config/locales/ast.yml | 5 ++ config/locales/de.yml | 12 ++-- config/locales/devise.fr.yml | 22 ++++---- config/locales/doorkeeper.fr.yml | 12 ++-- config/locales/en-GB.yml | 10 ++++ config/locales/eo.yml | 30 ++++++++-- config/locales/fr-QC.yml | 32 +++++++++-- config/locales/fr.yml | 66 +++++++++++----------- config/locales/ja.yml | 2 +- config/locales/ko.yml | 4 +- config/locales/ru.yml | 5 ++ config/locales/simple_form.ca.yml | 4 ++ config/locales/simple_form.cs.yml | 4 ++ config/locales/simple_form.da.yml | 3 + config/locales/simple_form.de.yml | 6 +- config/locales/simple_form.el.yml | 2 + config/locales/simple_form.en-GB.yml | 4 ++ config/locales/simple_form.eo.yml | 1 + config/locales/simple_form.es-AR.yml | 4 ++ config/locales/simple_form.es.yml | 1 + config/locales/simple_form.et.yml | 4 ++ config/locales/simple_form.eu.yml | 4 ++ config/locales/simple_form.fi.yml | 4 ++ config/locales/simple_form.fo.yml | 4 ++ config/locales/simple_form.fr.yml | 50 ++++++++-------- config/locales/simple_form.fy.yml | 4 ++ config/locales/simple_form.gl.yml | 4 ++ config/locales/simple_form.he.yml | 4 +- config/locales/simple_form.hu.yml | 4 ++ config/locales/simple_form.is.yml | 4 ++ config/locales/simple_form.it.yml | 4 ++ config/locales/simple_form.lv.yml | 4 ++ config/locales/simple_form.nl.yml | 4 ++ config/locales/simple_form.pl.yml | 4 ++ config/locales/simple_form.pt-PT.yml | 4 ++ config/locales/simple_form.sk.yml | 1 + config/locales/simple_form.sl.yml | 4 ++ config/locales/simple_form.sq.yml | 4 ++ config/locales/simple_form.th.yml | 6 +- config/locales/simple_form.tr.yml | 4 ++ config/locales/simple_form.uk.yml | 1 + config/locales/simple_form.vi.yml | 4 ++ config/locales/sk.yml | 2 + config/locales/th.yml | 10 ++-- 81 files changed, 351 insertions(+), 180 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index e7a6687b45..4dd3a06e04 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Спалучэнні клавіш", "footer.privacy_policy": "Палітыка прыватнасці", "footer.source_code": "Прагледзець зыходны код", - "footer.status": "Status", + "footer.status": "Статус", "generic.saved": "Захавана", "getting_started.heading": "Пачатак працы", "hashtag.column_header.tag_mode.all": "і {additional}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 61abf6b09b..39e8f12e2e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Dreceres de teclat", "footer.privacy_policy": "Política de privadesa", "footer.source_code": "Mostra el codi font", - "footer.status": "Status", + "footer.status": "Estat", "generic.saved": "Desat", "getting_started.heading": "Primeres passes", "hashtag.column_header.tag_mode.all": "i {additional}", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 9b8214c308..e07ad6ae11 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Klávesové zkratky", "footer.privacy_policy": "Zásady ochrany osobních údajů", "footer.source_code": "Zobrazit zdrojový kód", - "footer.status": "Status", + "footer.status": "Stav", "generic.saved": "Uloženo", "getting_started.heading": "Začínáme", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index c0f82251db..418e985e48 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -247,7 +247,7 @@ "filter_modal.added.expired_explanation": "Diese Filterkategorie ist abgelaufen. Du musst das Ablaufdatum für diese Kategorie ändern.", "filter_modal.added.expired_title": "Abgelaufener Filter!", "filter_modal.added.review_and_configure": "Um diesen Filter zu überprüfen oder noch weiter zu konfigurieren, rufe die {settings_link} auf.", - "filter_modal.added.review_and_configure_title": "Filtereinstellungen", + "filter_modal.added.review_and_configure_title": "Filter-Einstellungen", "filter_modal.added.settings_link": "Einstellungen", "filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.", "filter_modal.added.title": "Filter hinzugefügt!", @@ -260,7 +260,7 @@ "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!", + "follow_recommendations.lead": "Beiträge von Profilen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Sei unbesorgt, mal Fehler zu begehen. Du kannst diesen Konten ganz einfach und jederzeit wieder entfolgen.", "follow_request.authorize": "Genehmigen", "follow_request.reject": "Ablehnen", "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", @@ -280,10 +280,10 @@ "hashtag.column_header.tag_mode.none": "ohne {additional}", "hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden", "hashtag.column_settings.select.placeholder": "Hashtags eingeben …", - "hashtag.column_settings.tag_mode.all": "All diese", + "hashtag.column_settings.tag_mode.all": "Alle", "hashtag.column_settings.tag_mode.any": "Eines von diesen", "hashtag.column_settings.tag_mode.none": "Keines von diesen", - "hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags für diese Spalte einfügen", + "hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags dieser Spalte hinzufügen", "hashtag.follow": "Hashtag folgen", "hashtag.unfollow": "Hashtag entfolgen", "home.column_settings.basic": "Einfach", @@ -309,7 +309,7 @@ "keyboard_shortcuts.back": "zurücknavigieren", "keyboard_shortcuts.blocked": "Liste gesperrter Profile öffnen", "keyboard_shortcuts.boost": "Beitrag teilen", - "keyboard_shortcuts.column": "Spalte fokussieren", + "keyboard_shortcuts.column": "Auf die aktuelle Spalte fokussieren", "keyboard_shortcuts.compose": "Eingabefeld fokussieren", "keyboard_shortcuts.description": "Beschreibung", "keyboard_shortcuts.direct": "Direktnachrichten öffnen", @@ -341,8 +341,8 @@ "keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren", "keyboard_shortcuts.up": "sich in der Liste hinaufbewegen", "lightbox.close": "Schließen", - "lightbox.compress": "Bildansicht komprimieren", - "lightbox.expand": "Bildansicht erweitern", + "lightbox.compress": "Bildansicht verkleinern", + "lightbox.expand": "Bildansicht vergrößern", "lightbox.next": "Vor", "lightbox.previous": "Zurück", "limited_account_hint.action": "Profil trotzdem anzeigen", @@ -378,7 +378,7 @@ "navigation_bar.discover": "Entdecken", "navigation_bar.domain_blocks": "Gesperrte Domains", "navigation_bar.edit_profile": "Profil bearbeiten", - "navigation_bar.explore": "Entdecken", + "navigation_bar.explore": "Erforschen", "navigation_bar.favourites": "Favoriten", "navigation_bar.filters": "Stummgeschaltete Wörter", "navigation_bar.follow_requests": "Follower-Anfragen", @@ -394,7 +394,7 @@ "navigation_bar.search": "Suche", "navigation_bar.security": "Sicherheit", "not_signed_in_indicator.not_signed_in": "Du musst dich anmelden, um auf diesen Inhalt zugreifen zu können.", - "notification.admin.report": "{target} wurde von {name} gemeldet", + "notification.admin.report": "{name} meldete {target}", "notification.admin.sign_up": "{name} registrierte sich", "notification.favourite": "{name} hat deinen Beitrag favorisiert", "notification.follow": "{name} folgt dir jetzt", @@ -452,7 +452,7 @@ "poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}", "poll_button.add_poll": "Umfrage erstellen", "poll_button.remove_poll": "Umfrage entfernen", - "privacy.change": "Sichtbarkeit des Beitrags anpassen", + "privacy.change": "Sichtbarkeit anpassen", "privacy.direct.long": "Nur für die genannten Profile sichtbar", "privacy.direct.short": "Nur erwähnte Profile", "privacy.private.long": "Nur für deine Follower sichtbar", @@ -466,16 +466,16 @@ "refresh": "Aktualisieren", "regeneration_indicator.label": "Wird geladen …", "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!", - "relative_time.days": "{number}T", + "relative_time.days": "{number} T.", "relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}", "relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}", "relative_time.full.just_now": "soeben", "relative_time.full.minutes": "vor {number, plural, one {# Minute} other {# Minuten}}", "relative_time.full.seconds": "vor {number, plural, one {1 Sekunde} other {# Sekunden}}", - "relative_time.hours": "{number} Std", + "relative_time.hours": "{number} Std.", "relative_time.just_now": "jetzt", - "relative_time.minutes": "{number} min", - "relative_time.seconds": "{number} sek", + "relative_time.minutes": "{number} Min.", + "relative_time.seconds": "{number} Sek.", "relative_time.today": "heute", "reply_indicator.cancel": "Abbrechen", "report.block": "Sperren", @@ -531,7 +531,7 @@ "search_results.accounts": "Profile", "search_results.all": "Alles", "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden", + "search_results.nothing_found": "Nichts zu diesen Suchbegriffen gefunden", "search_results.statuses": "Beiträge", "search_results.statuses_fts_disabled": "Die Suche nach Beitragsinhalten ist auf diesem Mastodon-Server deaktiviert.", "search_results.title": "Suchergebnisse für {q}", @@ -545,9 +545,9 @@ "sign_in_banner.create_account": "Konto erstellen", "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. Du kannst auch von deinem Konto aus auf einem anderen Server interagieren.", - "status.admin_account": "Moderationsoberfläche für @{name} öffnen", - "status.admin_domain": "Moderationsoberfläche für {domain} öffnen", - "status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen", + "status.admin_account": "@{name} moderieren", + "status.admin_domain": "{domain} moderieren", + "status.admin_status": "Beitrag moderieren", "status.block": "@{name} blockieren", "status.bookmark": "Beitrag als Lesezeichen setzen", "status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen", @@ -596,7 +596,7 @@ "status.show_original": "Ursprünglichen Beitrag anzeigen", "status.translate": "Übersetzen", "status.translated_from_with": "Aus {lang} mittels {provider} übersetzt", - "status.uncached_media_warning": "Nicht verfügbar", + "status.uncached_media_warning": "Medien-Datei auf diesem Server noch nicht verfügbar", "status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben", "status.unpin": "Vom Profil lösen", "subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.", @@ -647,7 +647,7 @@ "upload_progress.label": "Wird hochgeladen …", "upload_progress.processing": "Wird verarbeitet…", "video.close": "Video schließen", - "video.download": "Datei herunterladen", + "video.download": "Video-Datei herunterladen", "video.exit_fullscreen": "Vollbild verlassen", "video.expand": "Video vergrößern", "video.fullscreen": "Vollbild", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 2ea34f6acf..5c41b75474 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου", "footer.privacy_policy": "Πολιτική απορρήτου", "footer.source_code": "Προβολή πηγαίου κώδικα", - "footer.status": "Status", + "footer.status": "Κατάσταση", "generic.saved": "Αποθηκεύτηκε", "getting_started.heading": "Αφετηρία", "hashtag.column_header.tag_mode.all": "και {additional}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 90ffab2a46..fc2e9d5e7f 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -3,7 +3,7 @@ "about.contact": "Kontakto:", "about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Kialo ne disponebla", - "about.domain_blocks.preamble": "Mastodono ebligas vidi la enhavojn de uzantoj el aliaj serviloj en la Fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.", + "about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.", "about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.", "about.domain_blocks.silenced.title": "Limigita", "about.domain_blocks.suspended.explanation": "Neniuj datumoj el tiu servilo estos prilaboritaj, konservitaj, aŭ interŝanĝitaj, do neeblas interagi aŭ komuniki kun uzantoj de tiu servilo.", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Fulmoklavoj", "footer.privacy_policy": "Politiko de privateco", "footer.source_code": "Montri fontkodon", - "footer.status": "Status", + "footer.status": "Stato", "generic.saved": "Konservita", "getting_started.heading": "Por komenci", "hashtag.column_header.tag_mode.all": "kaj {additional}", @@ -461,7 +461,7 @@ "privacy.public.short": "Publika", "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive el la funkcio de esploro", "privacy.unlisted.short": "Nelistigita", - "privacy_policy.last_updated": "Laste ĝisdatigita sur {date}", + "privacy_policy.last_updated": "Laste ĝisdatigita en {date}", "privacy_policy.title": "Politiko de privateco", "refresh": "Refreŝigu", "regeneration_indicator.label": "Ŝargado…", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index f32fd164f0..c37d8f62d5 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", - "footer.status": "Status", + "footer.status": "Estado", "generic.saved": "Guardado", "getting_started.heading": "Inicio de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index aab1457f92..61800fd6bb 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", - "footer.status": "Status", + "footer.status": "Estado", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 74462ccbe2..0f9f33080c 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Kiirklahvid", "footer.privacy_policy": "Isikuandmete kaitse", "footer.source_code": "Lähtekood", - "footer.status": "Status", + "footer.status": "Olek", "generic.saved": "Salvestatud", "getting_started.heading": "Alustamine", "hashtag.column_header.tag_mode.all": "ja {additional}", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 6ef651e33b..39eaeda023 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Lasterbideak", "footer.privacy_policy": "Pribatutasun politika", "footer.source_code": "Ikusi iturburu kodea", - "footer.status": "Status", + "footer.status": "Egoera", "generic.saved": "Gordea", "getting_started.heading": "Menua", "hashtag.column_header.tag_mode.all": "eta {osagarria}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 408024829c..a1decf1ed0 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Pikanäppäimet", "footer.privacy_policy": "Tietosuojakäytäntö", "footer.source_code": "Näytä lähdekoodi", - "footer.status": "Status", + "footer.status": "Tila", "generic.saved": "Tallennettu", "getting_started.heading": "Näin pääset alkuun", "hashtag.column_header.tag_mode.all": "ja {additional}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 37219005b9..adcb3aae04 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Knappasnarvegir", "footer.privacy_policy": "Privatlívspolitikkur", "footer.source_code": "Vís keldukotuna", - "footer.status": "Status", + "footer.status": "Støða", "generic.saved": "Goymt", "getting_started.heading": "At byrja", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 47159a012e..1ad8e9353d 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": "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.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent apparaî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 publications privés.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "À quoi pensez-vous?", @@ -221,7 +221,7 @@ "empty_column.favourites": "Personne n’a encore ajouté cette publication à ses favoris. Lorsque quelqu’un le fera, elle apparaîtra ici.", "empty_column.follow_recommendations": "Il semble qu’aucune suggestion n’ait pu être générée pour vous. Vous pouvez essayer d’utiliser la recherche pour découvrir des personnes que vous pourriez connaître ou explorer les hashtags populaires.", "empty_column.follow_requests": "Vous n’avez pas encore de demande d'abonnement. Lorsque vous en recevrez une, elle apparaîtra ici.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Vous n'avez pas encore suivi d'hashtags. Lorsque vous le ferez, ils apparaîtront ici.", "empty_column.hashtag": "Il n’y a pas encore de contenu associé à ce hashtag.", "empty_column.home": "Votre fil d'accueil est vide! Suivez plus de personnes pour la remplir. {suggestions}", "empty_column.home.suggestions": "Voir quelques suggestions", @@ -264,7 +264,7 @@ "follow_request.authorize": "Autoriser", "follow_request.reject": "Rejeter", "follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.", - "followed_tags": "Followed hashtags", + "followed_tags": "Hashtags suivis", "footer.about": "À propos", "footer.directory": "Annuaire des profils", "footer.get_app": "Télécharger l’application", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Favoris", "navigation_bar.filters": "Mots masqués", "navigation_bar.follow_requests": "Demandes d'abonnements", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Hashtags suivis", "navigation_bar.follows_and_followers": "Abonnements et abonnés", "navigation_bar.lists": "Listes", "navigation_bar.logout": "Se déconnecter", @@ -544,7 +544,7 @@ "server_banner.server_stats": "Statistiques du serveur:", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.sign_in": "Se connecter", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des messages. Vous pouvez également interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", "status.admin_status": "Ouvrir ce message dans l’interface de modération", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index ad751e0922..1dcf41c850 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -6,7 +6,7 @@ "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur⋅rice⋅s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.", "about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.", "about.domain_blocks.silenced.title": "Limité", - "about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.", + "about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les comptes de ce serveur.", "about.domain_blocks.suspended.title": "Suspendu", "about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.", "about.powered_by": "Réseau social décentralisé propulsé par {mastodon}", @@ -45,7 +45,7 @@ "account.locked_info": "Ce compte est privé. Son ou sa propriétaire approuve manuellement qui peut le suivre.", "account.media": "Médias", "account.mention": "Mentionner @{name}", - "account.moved_to": "{name} a indiqué que son nouveau compte est maintenant  :", + "account.moved_to": "{name} a indiqué que son nouveau compte est maintenant :", "account.mute": "Masquer @{name}", "account.mute_notifications": "Masquer les notifications de @{name}", "account.muted": "Masqué·e", @@ -71,7 +71,7 @@ "admin.dashboard.monthly_retention": "Taux de rétention des utilisateur·rice·s par mois après inscription", "admin.dashboard.retention.average": "Moyenne", "admin.dashboard.retention.cohort": "Mois d'inscription", - "admin.dashboard.retention.cohort_size": "Nouveaux utilisateurs", + "admin.dashboard.retention.cohort_size": "Nouveaux comptes", "alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.", "alert.rate_limited.title": "Nombre de requêtes limité", "alert.unexpected.message": "Une erreur inattendue s’est produite.", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Raccourcis clavier", "footer.privacy_policy": "Politique de confidentialité", "footer.source_code": "Voir le code source", - "footer.status": "Status", + "footer.status": "État", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", "hashtag.column_header.tag_mode.all": "et {additional}", @@ -297,7 +297,7 @@ "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.", + "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", @@ -365,7 +365,7 @@ "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}", "missing_indicator.label": "Non trouvé", "missing_indicator.sublabel": "Ressource introuvable", - "moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déplacé vers {movedToAccount}.", + "moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous l'avez déplacé à {movedToAccount}.", "mute_modal.duration": "Durée", "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?", "mute_modal.indefinite": "Indéfinie", @@ -396,7 +396,7 @@ "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", "notification.admin.report": "{name} a signalé {target}", "notification.admin.sign_up": "{name} s'est inscrit", - "notification.favourite": "{name} a aimé votre publication", + "notification.favourite": "{name} a ajouté votre message à ses favoris", "notification.follow": "{name} vous suit", "notification.follow_request": "{name} a demandé à vous suivre", "notification.mention": "{name} vous a mentionné·e :", @@ -523,10 +523,10 @@ "search.placeholder": "Rechercher", "search.search_or_paste": "Rechercher ou saisir une URL", "search_popout.search_format": "Recherche avancée", - "search_popout.tips.full_text": "Un texte normal retourne les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.", + "search_popout.tips.full_text": "Faire une recherche textuelle retrouve les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "message", - "search_popout.tips.text": "Un texte simple renvoie les noms affichés, les identifiants et les hashtags correspondants", + "search_popout.tips.text": "Faire une recherche textuelle retrouve les noms affichés, les identifiants et les hashtags correspondants", "search_popout.tips.user": "utilisateur", "search_results.accounts": "Comptes", "search_results.all": "Tous les résultats", @@ -563,7 +563,7 @@ "status.favourite": "Ajouter aux favoris", "status.filter": "Filtrer ce message", "status.filtered": "Filtré", - "status.hide": "Masquer la publication", + "status.hide": "Masquer le message", "status.history.created": "créé par {name} {date}", "status.history.edited": "édité par {name} {date}", "status.load_more": "Charger plus", @@ -616,7 +616,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.", "timeline_hint.resources.followers": "Les abonnés", "timeline_hint.resources.follows": "Les abonnements", - "timeline_hint.resources.statuses": "Les messages plus anciens", + "timeline_hint.resources.statuses": "Messages plus anciens", "trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}", "trends.trending_now": "Tendance en ce moment", "ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.", @@ -628,7 +628,7 @@ "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés d’audition", - "upload_form.description": "Décrire pour les malvoyants", + "upload_form.description": "Décrire pour les malvoyant·e·s", "upload_form.description_missing": "Description manquante", "upload_form.edit": "Modifier", "upload_form.thumbnail": "Changer la vignette", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 26a211042a..61273f58f1 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Fluchtoetsen", "footer.privacy_policy": "Privacybelied", "footer.source_code": "Boarnekoade besjen", - "footer.status": "Status", + "footer.status": "Steat", "generic.saved": "Bewarre", "getting_started.heading": "Uteinsette", "hashtag.column_header.tag_mode.all": "en {additional}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 1eb6e438e4..1033e6d7dd 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Atallos do teclado", "footer.privacy_policy": "Política de privacidade", "footer.source_code": "Ver código fonte", - "footer.status": "Status", + "footer.status": "Estado", "generic.saved": "Gardado", "getting_started.heading": "Primeiros pasos", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index b95426c30f..7e3cee334a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "קיצורי מקלדת", "footer.privacy_policy": "מדיניות פרטיות", "footer.source_code": "צפיה בקוד המקור", - "footer.status": "Status", + "footer.status": "מצב", "generic.saved": "נשמר", "getting_started.heading": "בואו נתחיל", "hashtag.column_header.tag_mode.all": "ו- {additional}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 0c95378d5b..b5ca1ef3bd 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Billentyűparancsok", "footer.privacy_policy": "Adatvédelmi szabályzat", "footer.source_code": "Forráskód megtekintése", - "footer.status": "Status", + "footer.status": "Állapot", "generic.saved": "Elmentve", "getting_started.heading": "Első lépések", "hashtag.column_header.tag_mode.all": "és {additional}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 33b193deb9..56ef257c9f 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði", "footer.privacy_policy": "Persónuverndarstefna", "footer.source_code": "Skoða frumkóða", - "footer.status": "Status", + "footer.status": "Staða", "generic.saved": "Vistað", "getting_started.heading": "Komast í gang", "hashtag.column_header.tag_mode.all": "og {additional}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index f21308670e..e7b4808145 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Scorciatoie da tastiera", "footer.privacy_policy": "Politica sulla privacy", "footer.source_code": "Visualizza il codice sorgente", - "footer.status": "Status", + "footer.status": "Stato", "generic.saved": "Salvato", "getting_started.heading": "Per iniziare", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 181e1e5c6c..ff50491ca0 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "キーボードショートカット", "footer.privacy_policy": "プライバシーポリシー", "footer.source_code": "ソースコードを表示", - "footer.status": "Status", + "footer.status": "ステータス", "generic.saved": "保存しました", "getting_started.heading": "スタート", "hashtag.column_header.tag_mode.all": "と{additional}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 83f41d91fe..612b00f461 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -1,7 +1,7 @@ { "about.blocks": "제한된 서버들", "about.contact": "연락처:", - "about.disclaimer": "마스토돈은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다", + "about.disclaimer": "Mastodon은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다", "about.domain_blocks.no_reason_available": "사유를 밝히지 않음", "about.domain_blocks.preamble": "마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.", "about.domain_blocks.silenced.explanation": "명시적으로 찾아보거나 팔로우를 하기 전까지는, 이 서버에 있는 프로필이나 게시물 등을 일반적으로 볼 수 없습니다.", @@ -138,7 +138,7 @@ "compose_form.poll.remove_option": "이 항목 삭제", "compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경", "compose_form.poll.switch_to_single": "단일 선택 투표로 변경", - "compose_form.publish": "뿌우", + "compose_form.publish": "게시", "compose_form.publish_form": "게시", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "변경사항 저장", @@ -209,7 +209,7 @@ "emoji_button.symbols": "기호", "emoji_button.travel": "여행과 장소", "empty_column.account_suspended": "계정 정지됨", - "empty_column.account_timeline": "여긴 게시물이 없어요!", + "empty_column.account_timeline": "이곳에는 게시물이 없습니다!", "empty_column.account_unavailable": "프로필 사용 불가", "empty_column.blocks": "아직 아무도 차단하지 않았습니다.", "empty_column.bookmarked_statuses": "아직 북마크에 저장한 게시물이 없습니다. 게시물을 북마크 지정하면 여기에 나타납니다.", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "키보드 단축키", "footer.privacy_policy": "개인정보 정책", "footer.source_code": "소스코드 보기", - "footer.status": "Status", + "footer.status": "상태", "generic.saved": "저장됨", "getting_started.heading": "시작하기", "hashtag.column_header.tag_mode.all": "및 {additional}", @@ -497,7 +497,7 @@ "report.placeholder": "코멘트", "report.reasons.dislike": "마음에 안 들어요", "report.reasons.dislike_description": "내가 보기 싫은 종류에 속합니다", - "report.reasons.other": "그 밖에 문제예요", + "report.reasons.other": "그 밖의 것들", "report.reasons.other_description": "이슈가 다른 분류에 속하지 않습니다", "report.reasons.spam": "스팸이에요", "report.reasons.spam_description": "악성 링크, 반응 스팸, 또는 반복적인 답글", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index f1b1322c22..f54a92378c 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Īsinājumtaustiņi", "footer.privacy_policy": "Privātuma politika", "footer.source_code": "Skatīt pirmkodu", - "footer.status": "Status", + "footer.status": "Statuss", "generic.saved": "Saglabāts", "getting_started.heading": "Darba sākšana", "hashtag.column_header.tag_mode.all": "un {additional}", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index a4e47c1f1a..9ed91cc345 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Favorittar", "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Fulgte emneknagger", "navigation_bar.follows_and_followers": "Fylgje og fylgjarar", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 69f1228471..ae0a2df318 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Atalhos do teclado", "footer.privacy_policy": "Política de privacidade", "footer.source_code": "Ver código-fonte", - "footer.status": "Status", + "footer.status": "Estado", "generic.saved": "Guardado", "getting_started.heading": "Primeiros passos", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index e61df4a66b..f8275452cf 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Сочетания клавиш", "footer.privacy_policy": "Политика конфиденциальности", "footer.source_code": "Исходный код", - "footer.status": "Status", + "footer.status": "Статус", "generic.saved": "Сохранено", "getting_started.heading": "Начать", "hashtag.column_header.tag_mode.all": "и {additional}", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Избранное", "navigation_bar.filters": "Игнорируемые слова", "navigation_bar.follow_requests": "Запросы на подписку", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Отслеживаемые хэштеги", "navigation_bar.follows_and_followers": "Подписки и подписчики", "navigation_bar.lists": "Списки", "navigation_bar.logout": "Выйти", @@ -544,7 +544,7 @@ "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Создать учётную запись", "sign_in_banner.sign_in": "Войти", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Войдите, чтобы отслеживать профили, хэштеги или избранное, делиться сообщениями и отвечать на них. Вы также можете взаимодействовать с вашей учётной записью на другом сервере.", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модерации {domain}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index bca26f8d73..ba50e846a1 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Klávesové skratky", "footer.privacy_policy": "Zásady súkromia", "footer.source_code": "Zobraziť zdrojový kód", - "footer.status": "Status", + "footer.status": "Stav", "generic.saved": "Uložené", "getting_started.heading": "Začni tu", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 2237050d05..d706eac777 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Tipkovne bližnjice", "footer.privacy_policy": "Pravilnik o zasebnosti", "footer.source_code": "Pokaži izvorno kodo", - "footer.status": "Status", + "footer.status": "Stanje", "generic.saved": "Shranjeno", "getting_started.heading": "Kako začeti", "hashtag.column_header.tag_mode.all": "in {additional}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 5b2b09a5bd..927cf7659e 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Shkurtore tastiere", "footer.privacy_policy": "Rregulla privatësie", "footer.source_code": "Shihni kodin burim", - "footer.status": "Status", + "footer.status": "Gjendje", "generic.saved": "U ruajt", "getting_started.heading": "Si t’ia fillohet", "hashtag.column_header.tag_mode.all": "dhe {additional}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 03cc729f3e..ea39d230a2 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Тастерске пречице", "footer.privacy_policy": "Политика приватности", "footer.source_code": "Прикажи изворни код", - "footer.status": "Status", + "footer.status": "Статус", "generic.saved": "Сачувано", "getting_started.heading": "Први кораци", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 5a856f4432..aaac5b7842 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "แป้นพิมพ์ลัด", "footer.privacy_policy": "นโยบายความเป็นส่วนตัว", "footer.source_code": "ดูโค้ดต้นฉบับ", - "footer.status": "Status", + "footer.status": "สถานะ", "generic.saved": "บันทึกแล้ว", "getting_started.heading": "เริ่มต้นใช้งาน", "hashtag.column_header.tag_mode.all": "และ {additional}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 6e658196ef..5d085495bb 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -58,7 +58,7 @@ "account.share": "@{name} adlı kişinin profilini paylaş", "account.show_reblogs": "@{name} kişisinin boostlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", - "account.unblock": "@{name}'in engelini kaldır", + "account.unblock": "@{name} adlı kişinin engelini kaldır", "account.unblock_domain": "{domain} alan adının engelini kaldır", "account.unblock_short": "Engeli kaldır", "account.unendorse": "Profilimde öne çıkarma", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Klavye kısayolları", "footer.privacy_policy": "Gizlilik politikası", "footer.source_code": "Kaynak kodu görüntüle", - "footer.status": "Status", + "footer.status": "Durum", "generic.saved": "Kaydedildi", "getting_started.heading": "Başlarken", "hashtag.column_header.tag_mode.all": "ve {additional}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 5babeddd79..7f509d039c 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Комбінації клавіш", "footer.privacy_policy": "Політика приватності", "footer.source_code": "Перегляд програмного коду", - "footer.status": "Status", + "footer.status": "Статус", "generic.saved": "Збережено", "getting_started.heading": "Розпочати", "hashtag.column_header.tag_mode.all": "та {additional}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index e75f13035d..4ee65e72a0 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Phím tắt", "footer.privacy_policy": "Chính sách bảo mật", "footer.source_code": "Mã nguồn", - "footer.status": "Status", + "footer.status": "Trạng thái", "generic.saved": "Đã lưu", "getting_started.heading": "Quản lý", "hashtag.column_header.tag_mode.all": "và {additional}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 1d9917091d..2cfed5224a 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "快捷键列表", "footer.privacy_policy": "隐私政策", "footer.source_code": "查看源代码", - "footer.status": "Status", + "footer.status": "状态", "generic.saved": "已保存", "getting_started.heading": "开始使用", "hashtag.column_header.tag_mode.all": "以及 {additional}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index c95e27cb77..1e8dd80516 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "鍵盤快速鍵", "footer.privacy_policy": "隱私權政策", "footer.source_code": "檢視原始碼", - "footer.status": "Status", + "footer.status": "狀態", "generic.saved": "已儲存", "getting_started.heading": "開始使用", "hashtag.column_header.tag_mode.all": "以及 {additional}", diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml index e2d950d1f3..bd34fcbcf1 100644 --- a/config/locales/activerecord.fr.yml +++ b/config/locales/activerecord.fr.yml @@ -19,7 +19,7 @@ fr: account: attributes: username: - invalid: seulement des lettres, des nombres et des tirets bas + invalid: seulement des lettres, des chiffres et des tirets bas reserved: est réservé admin/webhook: attributes: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 0a85b4c9a4..f612d4d281 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -368,6 +368,7 @@ ast: discovery: Descubrimientu localization: body: Mastodon tradúcenlu voluntarios, + guide_link: https://crowdin.com/project/mastodon guide_link_text: tol mundu pue collaborar. sensitive_content: Conteníu sensible toot_layout: Distribución de los artículos @@ -713,6 +714,10 @@ ast: unlisted_long: Tol mundu pue velos, mas nun apaecen nes llinies de tiempu públiques statuses_cleanup: exceptions: Esceiciones + interaction_exceptions: Esceiciones basaes nes interaiciones + keep_direct: Caltener los mensaxes direutos + keep_pinned: Caltener los artículos fixaos + keep_polls: Caltener les encuestes min_age: '1209600': 2 selmanes '15778476': 6 meses diff --git a/config/locales/de.yml b/config/locales/de.yml index ee5f3c28e5..605eb8e736 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -84,7 +84,7 @@ de: remote: Extern title: Herkunft login_status: Anmeldestatus - media_attachments: Medienanhänge + media_attachments: Speicherplatz memorialize: In Gedenkseite umwandeln memorialized: Gedenkseite memorialized_msg: "%{username} wurde erfolgreich in ein Gedenkseiten-Konto umgewandelt" @@ -108,7 +108,7 @@ de: previous_strikes_description_html: one: Dieses Konto hat einen Verstoß. other: Dieses Konto hat %{count} Verstöße. - promote: Befördern + promote: Berechtigungen erweitern protocol: Protokoll public: Öffentlich push_subscription_expires: PuSH-Abonnement läuft aus @@ -194,7 +194,7 @@ de: destroy_instance: Domain-Daten entfernen destroy_ip_block: IP-Regel löschen destroy_status: Beitrag löschen - destroy_unavailable_domain: Nicht verfügbare Domain löschen + destroy_unavailable_domain: Nicht-verfügbare Domain entfernen destroy_user_role: Rolle entfernen disable_2fa_user: 2FA deaktivieren disable_custom_emoji: Eigenes Emoji deaktivieren @@ -270,7 +270,7 @@ de: reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet" resend_user_html: "%{name} hat erneut eine Bestätigungs-E-Mail für %{target} gesendet" reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt" - resolve_report_html: "%{name} hat die Meldung %{target} bearbeitet" + resolve_report_html: "%{name} hat die Meldung %{target} geklärt" sensitive_account_html: "%{name} hat die Medien von %{target} mit einer Inhaltswarnung versehen" silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet" suspend_account_html: "%{name} hat das Konto von %{target} gesperrt" @@ -286,7 +286,7 @@ de: update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert" update_user_role_html: "%{name} hat die Rolle %{target} geändert" deleted_account: gelöschtes Konto - empty: Keine Protokolle gefunden. + empty: Protokolle nicht gefunden. filter_by_action: Nach Aktion filtern filter_by_user: Nach Benutzer*in filtern title: Protokoll @@ -604,7 +604,7 @@ de: create_and_resolve: Mit Kommentar lösen create_and_unresolve: Mit Kommentar wieder öffnen delete: Löschen - placeholder: Bitte beschreibe, welche Maßnahmen ergriffen wurden oder andere damit verbundene Aktualisierungen … + placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt … title: Notizen notes_description_html: Notiz an dich und andere Moderator*innen hinterlassen processed_msg: 'Meldung #%{id} erfolgreich bearbeitet' diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 1047fae0bb..8eb744d94c 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -15,21 +15,21 @@ fr: pending: Votre compte est toujours en cours d'approbation. timeout: Votre session a expiré. Veuillez vous reconnecter pour continuer. unauthenticated: Vous devez vous connecter ou vous inscrire pour continuer. - unconfirmed: Vous devez valider votre adresse courriel pour continuer. + unconfirmed: Vous devez valider votre adresse de courriel pour continuer. mailer: confirmation_instructions: - action: Vérifier l’adresse courriel + action: Vérifier l’adresse de courriel action_with_app: Confirmer et retourner à %{app} explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n’était pas vous, veuillez ignorer ce courriel. explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse de courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecter d’ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n’est donc requise. Si vous n’êtes pas à l’origine de cette demande, veuillez ignorer ce message. extra_html: Merci de consultez également les règles du serveur et nos conditions d’utilisation. subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}' - title: Vérifiez l’adresse courriel + title: Vérifiez l’adresse de courriel email_changed: - explanation: 'L’adresse courriel de votre compte est en cours de modification pour devenir :' + explanation: 'L’adresse de courriel de votre compte est en cours de modification pour devenir :' extra: Si vous n’avez pas changé votre adresse courriel, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué·e hors de votre compte. subject: 'Mastodon : Courriel modifié' - title: Nouvelle adresse courriel + title: Nouvelle adresse de courriel password_change: explanation: Le mot de passe de votre compte a été changé. extra: Si vous n’avez pas changé votre mot de passe, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué·e hors de votre compte. @@ -37,8 +37,8 @@ fr: title: Mot de passe modifié reconfirmation_instructions: explanation: Confirmez la nouvelle adresse pour changer votre courriel. - extra: Si ce changement n’a pas été initié par vous, veuillez ignorer ce courriel. L’adresse courriel du compte Mastodon ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus. - subject: 'Mastodon : Confirmez l’adresse courriel pour %{instance}' + extra: Si ce changement n’a pas été initié par vous, veuillez ignorer ce courriel. L’adresse de courriel du compte Mastodon ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus. + subject: 'Mastodon : Confirmez l’adresse de courriel pour %{instance}' title: Vérifier l’adresse courriel reset_password_instructions: action: Modifier le mot de passe @@ -82,8 +82,8 @@ fr: success: Authentifié avec succès via %{kind}. passwords: no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d’utiliser l’URL complète. - send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. - send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. + send_instructions: Si votre adresse de courriel existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. + send_paranoid_instructions: Si votre adresse de courriel existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté. updated_not_active: Votre mot de passe a été modifié avec succès. registrations: @@ -92,8 +92,8 @@ fr: signed_up_but_inactive: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé. signed_up_but_locked: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé. signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez informé·e si elle a été approuvée. - signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel. - update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams. + signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse de courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel. + update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse de courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier d’indésirables. updated: Votre compte a été modifié avec succès. sessions: already_signed_out: Déconnecté·e avec succès. diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 7819d1fd85..d777c925a3 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -86,7 +86,7 @@ fr: invalid_grant: L’autorisation accordée est invalide, expirée, annulée, ne concorde pas avec l’URL de redirection utilisée dans la requête d’autorisation, ou a été délivrée à un autre client. invalid_redirect_uri: L’URL de redirection n’est pas valide. invalid_request: - missing_param: 'Paramètre requis manquant: %{value}.' + missing_param: 'Paramètre requis manquant : %{value}.' request_not_authorized: La requête doit être autorisée. Le paramètre requis pour l'autorisation de la requête est manquant ou non valide. unknown: La requête omet un paramètre requis, inclut une valeur de paramètre non prise en charge ou est autrement mal formée. invalid_resource_owner: Les identifiants fournis par le propriétaire de la ressource ne sont pas valides ou le propriétaire de la ressource ne peut être trouvé @@ -149,18 +149,18 @@ fr: 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:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs de courriels 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:domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines + admin:read:email_domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines de courriel 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:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs de courriels 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:email_domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines de courriel 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 diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 40b2d43afb..b02e00bf01 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -176,6 +176,8 @@ en-GB: confirm_user: Confirm User create_account_warning: Create Warning create_announcement: Create Announcement + create_canonical_email_block: Create E-mail Block + create_custom_emoji: Create Custom Emoji unassigned_report: Unassign Report roles: categories: @@ -199,7 +201,15 @@ en-GB: platforms: blackberry: BlackBerry chrome_os: ChromeOS + two_factor_authentication: + recovery_codes_regenerated: Recovery codes successfully regenerated + recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe. For example, you may print them and store them with other important documents. + webauthn: Security keys user_mailer: + appeal_approved: + action: Go to your account + explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing. + subject: Your appeal from %{date} has been approved warning: subject: silence: Your account %{acct} has been limited diff --git a/config/locales/eo.yml b/config/locales/eo.yml index cd236aae87..dc783a82cc 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -223,8 +223,8 @@ eo: update_custom_emoji: Ĝisdatigi proprajn emoĝiojn update_domain_block: Ĝigdatigi domajnan blokadon update_ip_block: Krei IP-regulon - update_status: Ĝisdatigi staton - update_user_role: Ĝisdatigi Rolon + update_status: Ĝisdatigi afiŝon + update_user_role: Ĝisdatigi rolon actions: approve_appeal_html: "%{name} aprobis kontroldecidapelacion de %{target}" approve_user_html: "%{name} aprobis registriĝon de %{target}" @@ -278,12 +278,12 @@ eo: unsensitive_account_html: "%{name} malmarkis audovidaĵojn de %{target} kiel sentemaj" unsilence_account_html: "%{name} malfaris limon de konto de %{target}" unsuspend_account_html: "%{name} malsuspendis la konton de %{target}" - update_announcement_html: "%{name} ĝisdatigis anoncon %{target}" - update_custom_emoji_html: "%{name} ĝisdatigis emoĝion %{target}" + update_announcement_html: "%{name} ĝisdatigis la anoncon %{target}" + update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}" update_domain_block_html: "%{name} ĝisdatigis domajnblokon por %{target}" update_ip_block_html: "%{name} ŝanĝis regulon por IP %{target}" update_status_html: "%{name} ĝisdatigis mesaĝon de %{target}" - update_user_role_html: "%{name} ŝanĝis rolon %{target}" + update_user_role_html: "%{name} ŝanĝis la rolon %{target}" deleted_account: forigita konto empty: Neniu ĵurnalo trovita. filter_by_action: Filtri per ago @@ -556,7 +556,7 @@ eo: pending: Atendante aprobon de la ripetilo save_and_enable: Konservi kaj ebligi setup: Agordi konekton al ripetilo - signatures_not_enabled: Ripetiloj ne ĝuste funkcias dum sekura reĝimo au limigita federacio reĝimo ebligitas + signatures_not_enabled: Relajsoj eble ne funkcias ĝuste dum sekura reĝimo aŭ reĝimo de limigita federado estas ŝaltita status: Stato title: Ripetiloj report_notes: @@ -601,6 +601,7 @@ eo: placeholder: Priskribu faritajn agojn, aŭ ajnan novan informon pri tiu signalo… title: Notoj notes_description_html: Vidi kaj lasi notojn por aliaj kontrolantoj kaj estonta vi + processed_msg: 'La raporto #%{id} sukcese prilaborita' quick_actions_description_html: 'Agu au movu malsupre por vidi raportitajn enhavojn:' remote_user_placeholder: la ekstera uzanto de %{instance} reopen: Remalfermi signalon @@ -613,9 +614,21 @@ eo: status: Mesaĝoj statuses: Raportita enhavo statuses_description_html: Sentema enhavo referencitas kun la raportita konto + summary: + action_preambles: + delete_html: 'Vi ja tuj forigos kelke da afiŝoj de @%{acct}. Tio faros kiel jene:' + mark_as_sensitive_html: 'Vi ja tuj markos kelke da afiŝoj de @%{acct} kiel tiklaj. Tio faros kiel:' + silence_html: 'Vi ja tuj limigos kelke da afiŝoj de @%{acct}. Tio faros kiel:' + suspend_html: 'Vi ja tuj suspendos la konton de @%{acct}. Tio faros kiel:' + actions: + suspend_html: Suspendi @%{acct}, fari ties profilon kaj enhavojn neatingeblaj kaj maleblaj interagi kun + close_report: 'Marki la raporto #%{id} kiel solvita' + close_reports_html: Marki ĉiuj raportoj kontraŭ @%{acct} kiel solvitaj + send_email_html: Sendi al @%{acct} retpoŝtaĵon de averto target_origin: Origino de raportita konto title: Signaloj unassign: Malasigni + unknown_action_msg: 'Nekonata ago: %{action}' unresolved: Nesolvitaj updated_at: Ĝisdatigita view_profile: Vidi profilon @@ -710,6 +723,7 @@ eo: preamble: Interesa enhavo estas grava por novaj uzantoj kiuj eble ne konas ajn iun. profile_directory: Profilujo public_timelines: Publikaj templinioj + publish_discovered_servers: Publikigi la malkovritajn servilojn publish_statistics: Publikigi statistikojn title: Eltrovado trends: Tendencoj @@ -938,6 +952,8 @@ eo: auth: apply_for_account: Peti konton change_password: Pasvorto + confirmations: + wrong_email_hint: Se tiu retpoŝtadreso ne estas ĝusta, vi povas ŝanĝi ĝin en la agordoj pri la konto. delete_account: Forigi konton delete_account_html: Se vi deziras forigi vian konton, vi povas fari tion ĉi tie. Vi bezonos konfirmi vian peton. description: @@ -1366,6 +1382,8 @@ eo: unrecognized_emoji: ne estas rekonita emoĝio relationships: activity: Konta aktiveco + confirm_remove_selected_followers: Ĉu vi certas, ke vi volas forigi la elektitajn sekvantojn? + confirm_remove_selected_follows: Ĉu vi certas, ke vi volas forigi la elektitajn sekvatojn? dormant: Dormanta follow_selected_followers: Sekvi selektitajn sekvantojn followers: Sekvantoj diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index ed4c900f7f..504ab8486b 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -392,7 +392,7 @@ fr-QC: create: Créer le blocage hint: Le blocage de domaine n’empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. severity: - desc_html: "Limiter rendra les messages des comptes de ce domaine invisibles à ceux qui ne les suivent pas. Suspendre supprimera tout le contenu, les médias, et données de profile pour les comptes de ce domaine de votre serveur. Utilisez Aucun si vous voulez simplement rejeter les fichiers multimédia." + desc_html: "Limiter rendra les messages des comptes de ce domaine invisibles pour tous les comptes qui ne les suivent pas. Suspendre supprimera de votre serveur tout le contenu, les médias et données de profil pour les comptes sur ce domaine. Utilisez Aucun si vous voulez simplement rejeter les fichiers multimédia." noop: Aucune silence: Limiter suspend: Suspendre @@ -438,11 +438,12 @@ fr-QC: import: description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste. existing_relationships_warning: Relations de suivi existantes - private_comment_description_html: 'Pour vous aider à suivre d''où viennent les blocs importés, des blocs importés seront créés avec le commentaire privé suivant : %{comment}' + private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}' private_comment_template: Importé depuis %{source} le %{date} - title: Importer des blocs de domaine + title: Importer des blocages de domaine + invalid_domain_block: 'Un ou plusieurs blocages de domaine ont été ignorés en raison des erreurs suivantes : %{error}' new: - title: Importer des blocs de domaine + title: Importer des blocages de domaine no_file: Aucun fichier sélectionné follow_recommendations: description_html: "Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée." @@ -589,6 +590,7 @@ fr-QC: comment: none: Aucun comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :' + confirm_action: Confirmer l'action de modération contre @%{acct} created_at: Signalé delete_and_resolve: Supprimer les messages forwarded: Transféré @@ -605,6 +607,7 @@ fr-QC: placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour… title: Remarques notes_description_html: Voir et laisser des notes aux autres modérateurs et à votre futur moi-même + processed_msg: 'Le signalement #%{id} a été traité avec succès' quick_actions_description_html: 'Faites une action rapide ou faites défiler vers le bas pour voir le contenu signalé :' remote_user_placeholder: l'utilisateur·rice distant·e de %{instance} reopen: Ré-ouvrir le signalement @@ -617,9 +620,28 @@ fr-QC: status: Statut statuses: Contenu signalé statuses_description_html: Le contenu offensant sera cité dans la communication avec le compte signalé + summary: + action_preambles: + delete_html: 'Vous êtes sur le point de supprimer certains messages de @%{acct}. Cela va :' + mark_as_sensitive_html: 'Vous êtes sur le point de marquer certains messages de @%{acct} comme sensibles. Cela va :' + silence_html: 'Vous êtes sur le point de limiter le compte de @%{acct}. Cela va :' + suspend_html: 'Vous êtes sur le point de suspendre le compte de @%{acct}. Cela va :' + actions: + delete_html: supprimer les messages incriminés + mark_as_sensitive_html: marquer le média des messages incriminés comme sensible + silence_html: limiter drastiquement la portée du compte de @%{acct} en rendant son profil, ainsi que ses contenus, visibles uniquement des personnes déjà abonnées ou qui le recherchent manuellement + suspend_html: suspendre le compte de @%{acct}, ce qui empêche toute interaction avec son profil et tout accès à ses contenus + close_report: 'marquer le signalement #%{id} comme résolu' + close_reports_html: marquer tous les signalements de @%{acct} comme résolus + delete_data_html: effacer le profil de @%{acct} et ses contenus dans 30 jours, à moins que la suspension du compte ne soit annulée entre temps + preview_preamble_html: "@%{acct} recevra un avertissement contenant les éléments suivants :" + record_strike_html: enregistrer une sanction contre @%{acct} pour vous aider à prendre des mesures supplémentaires en cas d'infractions futures de ce compte + send_email_html: envoyer un courriel d'avertissement à @%{acct} + warning_placeholder: Arguments supplémentaires pour l'action de modération (facultatif). target_origin: Origine du compte signalé title: Signalements unassign: Dés-assigner + unknown_action_msg: 'Action inconnue : %{action}' unresolved: Non résolus updated_at: Mis à jour view_profile: Voir le profil @@ -943,6 +965,8 @@ fr-QC: auth: apply_for_account: Demander un compte change_password: Mot de passe + confirmations: + wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 8f72b69214..278fc9e777 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -38,12 +38,12 @@ fr: avatar: Avatar by_domain: Domaine change_email: - changed_msg: Courriel modifié avec succès ! - current_email: Courriel actuel - label: Modifier le courriel - new_email: Nouveau courriel + changed_msg: Adresse de courriel modifiée avec succès ! + current_email: Adresse de courriel actuelle + label: Modifier l’adresse de courriel + new_email: Nouvelle adresse de courriel submit: Modifier le courriel - title: Modifier le courriel pour %{username} + title: Modifier l’adresse de courriel pour %{username} change_role: changed_msg: Rôle modifié avec succès ! label: Modifier le rôle @@ -64,7 +64,7 @@ fr: display_name: Nom affiché domain: Domaine edit: Éditer - email: Courriel + email: Adresse de courriel email_status: État du courriel enable: Dégeler enable_sign_in_token_auth: Activer l'authentification basée sur les jetons envoyés par courriel @@ -152,9 +152,9 @@ fr: suspension_irreversible: Les données de ce compte ont été irréversiblement supprimées. Vous pouvez annuler la suspension du compte pour le rendre utilisable, mais il ne récupérera aucune donnée qu’il avait auparavant. suspension_reversible_hint_html: Le compte a été suspendu et les données seront complètement supprimées le %{date}. D’ici là, le compte peut être restauré sans aucun effet néfaste. Si vous souhaitez supprimer toutes les données du compte immédiatement, vous pouvez le faire ci-dessous. title: Comptes - unblock_email: Débloquer l'adresse courriel - unblocked_email_msg: L'adresse courriel de %{username} a été débloquée avec succès - unconfirmed_email: Courriel non confirmé + unblock_email: Débloquer l’adresse de courriel + unblocked_email_msg: L’adresse de courriel de %{username} a été débloquée avec succès + unconfirmed_email: Adresse de courriel non confirmée undo_sensitized: Annuler sensible undo_silenced: Annuler la limitation undo_suspension: Annuler la suspension @@ -169,11 +169,11 @@ fr: action_logs: action_types: approve_appeal: Approuver l'appel - approve_user: Approuver l’utilisateur + approve_user: Approuver le compte assigned_to_self_report: Affecter le signalement - change_email_user: Modifier le courriel pour ce compte - change_role_user: Changer le rôle de l’utilisateur·rice - confirm_user: Confirmer l’utilisateur + change_email_user: Modifier l’adresse de courriel pour ce compte + change_role_user: Changer le rôle du compte + confirm_user: Confirmer le compte create_account_warning: Créer une alerte create_announcement: Créer une annonce create_canonical_email_block: Créer un blocage de domaine de courriel @@ -202,11 +202,11 @@ fr: disable_user: Désactiver le compte enable_custom_emoji: Activer les émojis personnalisées enable_sign_in_token_auth_user: Activer l'authentification basée sur les jetons envoyés par courriel pour l'utilisateur·rice - enable_user: Activer l’utilisateur + enable_user: Activer le compte memorialize_account: Ériger en mémorial - promote_user: Promouvoir l’utilisateur + promote_user: Promouvoir le compte reject_appeal: Rejeter l'appel - reject_user: Rejeter l’utilisateur + reject_user: Rejeter le compte remove_avatar_user: Supprimer l’avatar reopen_report: Rouvrir le signalement resend_user: Renvoyer l'e-mail de confirmation @@ -216,7 +216,7 @@ fr: silence_account: Limiter le compte suspend_account: Suspendre le compte unassigned_report: Ne plus assigner le signalement - unblock_email_account: Débloquer l'adresse courriel + unblock_email_account: Débloquer l’adresse de courriel unsensitive_account: Ne pas marquer les médias de votre compte comme sensibles unsilence_account: Annuler la limitation du compte unsuspend_account: Annuler la suspension du compte @@ -235,7 +235,7 @@ fr: confirm_user_html: "%{name} a confirmé l'adresse courriel de l'utilisateur %{target}" create_account_warning_html: "%{name} a envoyé un avertissement à %{target}" create_announcement_html: "%{name} a créé une nouvelle annonce %{target}" - create_canonical_email_block_html: "%{name} a bloqué l’e-mail avec le hachage %{target}" + create_canonical_email_block_html: "%{name} a bloqué le courriel avec le hachage %{target}" create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}" create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}" create_domain_block_html: "%{name} a bloqué le domaine %{target}" @@ -245,7 +245,7 @@ fr: create_user_role_html: "%{name} a créé le rôle %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" - destroy_canonical_email_block_html: "%{name} a débloqué l'email avec le hash %{target}" + destroy_canonical_email_block_html: "%{name} a débloqué le courriel avec le hachage %{target}" destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}" destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}" destroy_domain_block_html: "%{name} a débloqué le domaine %{target}" @@ -275,7 +275,7 @@ fr: silence_account_html: "%{name} a limité le compte de %{target}" suspend_account_html: "%{name} a suspendu le compte de %{target}" unassigned_report_html: "%{name} a désassigné le signalement %{target}" - unblock_email_account_html: "%{name} a débloqué l'adresse courriel de %{target}" + unblock_email_account_html: "%{name} a débloqué l’adresse de courriel de %{target}" unsensitive_account_html: "%{name} a enlevé le marquage comme sensible du média de %{target}" unsilence_account_html: "%{name} a annulé la limitation du compte de %{target}" unsuspend_account_html: "%{name} a réactivé le compte de %{target}" @@ -342,10 +342,10 @@ fr: updated_msg: Émoji mis à jour avec succès ! upload: Téléverser dashboard: - active_users: utilisateurs actifs + active_users: comptes actifs interactions: interactions media_storage: Stockage des médias - new_users: nouveaux utilisateurs + new_users: nouveaux comptes opened_reports: rapports ouverts pending_appeals_html: one: "%{count} appel en attente" @@ -398,7 +398,7 @@ fr: suspend: Suspendre title: Nouveau blocage de domaine no_domain_block_selected: Aucun blocage de domaine n'a été modifié car aucun n'a été sélectionné - not_permitted: Vous n’êtes pas autorisé à effectuer cette action + not_permitted: Vous n’êtes pas autorisé⋅e à effectuer cette action obfuscate: Obfusquer le nom de domaine obfuscate_hint: Obfusquer partiellement le nom de domaine dans la liste si la publication de la liste des limitations de domaine est activée private_comment: Commentaire privé @@ -432,12 +432,12 @@ fr: title: Blocage de domaines de courriel export_domain_allows: new: - title: Autoriser l'importation de domaine + title: Importer les autorisations de domaine no_file: Aucun fichier sélectionné export_domain_blocks: import: - description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste. - existing_relationships_warning: Relations de suivi existantes + description_html: Vous êtes sur le point d'importer une liste de bloqueurs de domaine. Veuillez examiner cette liste très attentivement, surtout si vous ne l'avez pas créée vous-même. + existing_relationships_warning: Relations d'abonnement existantes private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}' private_comment_template: Importé depuis %{source} le %{date} title: Importer des blocages de domaine @@ -558,7 +558,7 @@ fr: pending: En attente de l’approbation du relai save_and_enable: Sauvegarder et activer setup: Paramétrer une connexion de relais - signatures_not_enabled: Les relais ne fonctionneront pas correctement lorsque le mode sécurisé ou le mode liste blanche est activé + signatures_not_enabled: Les relais peuvent ne pas fonctionner correctement lorsque les modes sécurisé ou de fédération limitée sont activés status: Statut title: Relais report_notes: @@ -729,8 +729,8 @@ fr: preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon. title: Rétention du contenu default_noindex: - desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes - title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche + desc_html: Affecte tous les comptes qui n'ont pas modifié ce paramètre + title: Par défaut, ne pas indexer les comptes dans les moteurs de recherche discovery: follow_recommendations: Suivre les recommandations preamble: Il est essentiel de donner de la visibilité à des contenus intéressants pour attirer des utilisateur⋅rice⋅s néophytes qui ne connaissent peut-être personne sur Mastodon. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. @@ -966,7 +966,7 @@ fr: apply_for_account: Demander un compte change_password: Mot de passe confirmations: - wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. + wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -1003,7 +1003,7 @@ fr: 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. + preamble_html: Connectez-vous avec vos identifiants sur %{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é. @@ -1059,7 +1059,7 @@ fr: deletes: challenge_not_passed: Les renseignements que vous avez entrés n'étaient pas exacts confirm_password: Entrez votre mot de passe actuel pour vérifier votre identité - confirm_username: Entrez votre nom d'utilisateur pour confirmer la procédure + confirm_username: Entrez votre identifiant pour confirmer la procédure proceed: Supprimer le compte success_msg: Votre compte a été supprimé avec succès warning: @@ -1396,7 +1396,7 @@ fr: activity: Activité du compte confirm_follow_selected_followers: Voulez-vous vraiment suivre les abonné⋅e⋅s sélectionné⋅e⋅s ? confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ? - confirm_remove_selected_follows: Voulez-vous vraiment suivre les abonnements sélectionnés ? + confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ? dormant: Dormant follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s followers: Abonné·e diff --git a/config/locales/ja.yml b/config/locales/ja.yml index fa3f8d0135..288d56ca5b 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -433,7 +433,7 @@ ja: private_comment_description_html: 'ブロックのインポート元を判別できるようにするため、ブロックは次のプライベートコメントを追加してインポートされます: %{comment}' private_comment_template: "%{source} から %{date} にインポートしました" title: ドメインブロックをインポート - invalid_domain_block: '次のエラーのため、1つ以上のドメインブロックがスキップされました: %{error}' + invalid_domain_block: 'エラーが発生したため、ブロックできなかったドメインがあります: %{error}' new: title: ドメインブロックをインポート no_file: ファイルが選択されていません diff --git a/config/locales/ko.yml b/config/locales/ko.yml index e60ae983e8..2f362ab669 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -495,7 +495,7 @@ ko: destroyed_msg: "%{domain}의 데이터는 곧바로 지워지도록 대기열에 들어갔습니다." empty: 도메인이 하나도 없습니다. known_accounts: - other: "%{count}개의 알려진 계정" + other: "%{count} 개의 알려진 계정" moderation: all: 모두 limited: 제한됨 @@ -1243,7 +1243,7 @@ ko: title: 인증 이력 media_attachments: validations: - images_and_video: 이미 사진이 첨부 된 게시물엔 동영상을 첨부 할 수 없습니다 + images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부 할 수 없습니다 not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요! too_many: 최대 4개까지 첨부할 수 있습니다 migrations: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 671d998d97..9aa13fd458 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -638,6 +638,11 @@ ru: status: Статус statuses: Содержимое относящееся к жалобе statuses_description_html: Нарушающее правила содержимое будет процитировано при коммуникации с фигурирующим в жалобе аккаунтом + summary: + close_report: 'Отметить жалобу #%{id} как решённую' + close_reports_html: Отметить все жалобы на @%{acct} как разрешённые + delete_data_html: Удалить профиль и контент @%{acct} через 30 дней, если за это время они не будут разблокированы + preview_preamble_html: "@%{acct} получит предупреждение со следующим содержанием:" target_origin: Происхождение объекта жалобы title: Жалобы unassign: Снять назначение diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 3b5738375e..bcabca0344 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -91,11 +91,13 @@ ca: 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: 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. + status_page_url: URL de la pàgina on els usuaris poden veure l'estat d'aquest servidor durant una interrupció del servei 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 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 quins tuts, etiquetes i notícies estan guanyant força en el teu servidor. + trends_as_landing_page: Mostra el contingut en tendència als usuaris i visitants no autenticats enlloc de la descripció d'aquest servidor. Requereix que les tendències estiguin activades. form_challenge: current_password: Estàs entrant en una àrea segura imports: @@ -251,11 +253,13 @@ ca: site_short_description: Descripció del servidor site_terms: Política de Privacitat site_title: Nom del servidor + status_page_url: URL de la pàgina de l'estat theme: Tema per defecte thumbnail: Miniatura del servidor timeline_preview: Permet l'accés no autenticat a les línies de temps públiques trendable_by_default: Permet tendències sense revisió prèvia trends: Activa les tendències + trends_as_landing_page: Fer servir les tendències com a pàgina inicial interactions: must_be_follower: Bloqueja les notificacions de persones que no em segueixen must_be_following: Bloqueja les notificacions de persones no seguides diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index d1244b24e6..7025c63856 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -91,11 +91,13 @@ cs: site_short_description: Krátký popis, který pomůže jednoznačně identifikovat váš server. Kdo ho provozuje, pro koho je určen? site_terms: Použijte vlastní zásady ochrany osobních údajů nebo ponechte prázdné pro použití výchozího nastavení. Může být strukturováno pomocí Markdown syntaxe. site_title: Jak mohou lidé odkazovat na váš server kromě názvu domény. + status_page_url: URL stránky, kde mohou lidé vidět stav tohoto serveru během výpadku theme: Vzhled stránky, který vidí noví a odhlášení uživatelé. thumbnail: Přibližně 2:1 obrázek zobrazený vedle informací o vašem serveru. timeline_preview: Odhlášení uživatelé budou moci procházet nejnovější veřejné příspěvky na serveru. trendable_by_default: Přeskočit manuální kontrolu populárního obsahu. Jednotlivé položky mohou být odstraněny z trendů později. trends: Trendy zobrazují, které příspěvky, hashtagy a zprávy získávají na serveru pozornost. + trends_as_landing_page: Zobrazit populární obsah odhlášeným uživatelům a návštěvníkům místo popisu tohoto serveru. Vyžaduje povolení trendů. form_challenge: current_password: Vstupujete do zabezpečeného prostoru imports: @@ -251,11 +253,13 @@ cs: site_short_description: Popis serveru site_terms: Ochrana osobních údajů site_title: Název serveru + status_page_url: URL stránky se stavem theme: Výchozí motiv thumbnail: Miniatura serveru timeline_preview: Povolit neověřený přístup k veřejným časovým osám trendable_by_default: Povolit trendy bez předchozí revize trends: Povolit trendy + trends_as_landing_page: Použít trendy jako vstupní stránku interactions: must_be_follower: Blokovat oznámení od lidí, kteří vás nesledují must_be_following: Blokovat oznámení od lidí, které nesledujete diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 0958426b6b..3116f02d81 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -88,11 +88,13 @@ da: site_short_description: En kort beskrivelse mhp. entydigt at kunne identificere denne server. Hvem kører den, hvem er den for? site_terms: Brug egen fortrolighedspolitik eller lad stå tomt for standardpolitikken. Kan struktureres med Markdown-syntaks. site_title: Hvordan folk kan henvise til serveren udover domænenavnet. + status_page_url: URL'en til en side, hvor status for denne server kan ses under en afbrydelse theme: Tema, som udloggede besøgende og nye brugere ser. thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne. timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg. trendable_by_default: Spring manuel gennemgang af trendindhold over. Individuelle elementer kan stadig fjernes fra trends efter kendsgerningen. trends: Tendenser viser, hvilke indlæg, hashtags og nyheder opnår momentum på serveren. + trends_as_landing_page: Vis tendensindhold til udloggede brugere og besøgende i stedet for en beskrivelse af denne server. Kræver, at tendenser er aktiveret. form_challenge: current_password: Du bevæger dig ind på et sikkert område imports: @@ -247,6 +249,7 @@ da: site_short_description: Serverbeskrivelse site_terms: Fortrolighedspolitik site_title: Servernavn + status_page_url: Statusside-URL theme: Standardtema thumbnail: Serverminiaturebillede timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 8c48db7935..2ee277100a 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -91,11 +91,13 @@ de: site_short_description: Eine kurze Beschreibung zur eindeutigen Identifizierung des Servers. Wer betreibt ihn, für wen ist er bestimmt? site_terms: Verwende eine eigene Datenschutzerklärung oder lasse das Feld leer, um die allgemeine Vorlage zu verwenden. Kann mit der Markdown-Syntax formatiert werden. site_title: Wie Personen neben dem Domainnamen auf deinen Server verweisen können. + status_page_url: URL einer Seite, auf der der Status des Servers während eines Ausfalls angezeigt werden kann theme: Das Design, das abgemeldete Besucher und neue Benutzer sehen. thumbnail: Ein Bild ungefähr im 2:1-Format, das neben den Server-Informationen angezeigt wird. timeline_preview: Besucher*innen und ausgeloggte Benutzer*innen können die neuesten öffentlichen Beiträge dieses Servers aufrufen. 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. + trends_as_landing_page: Dies zeigt nicht angemeldeten Personen Trendinhalte anstelle einer Beschreibung des Servers an. Erfordert, dass Trends aktiviert sind. form_challenge: current_password: Du betrittst einen gesicherten Bereich imports: @@ -202,7 +204,7 @@ de: setting_disable_swiping: Wischgesten deaktivieren setting_display_media: Medien-Anzeige setting_display_media_default: Standard - setting_display_media_hide_all: Alle Medien verstecken + setting_display_media_hide_all: Alle Medien verbergen setting_display_media_show_all: Alle Medien anzeigen setting_expand_spoilers: Beiträge mit Inhaltswarnung immer ausklappen setting_hide_network: Deine Follower und „Folge ich“ nicht anzeigen @@ -251,11 +253,13 @@ de: site_short_description: Serverbeschreibung site_terms: Datenschutzerklärung site_title: Servername + status_page_url: URL der Statusseite theme: Standard-Design thumbnail: Vorschaubild des Servers timeline_preview: Nicht-authentifizierten Zugriff auf die öffentliche Timeline gestatten trendable_by_default: Trends ohne vorherige Überprüfung erlauben trends: Trends aktivieren + trends_as_landing_page: Trends als Landingpage verwenden interactions: must_be_follower: Benachrichtigungen von Profilen verbergen, die mir nicht folgen must_be_following: Benachrichtigungen von Profilen verbergen, denen ich nicht folge diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 0a52204c01..d28435c7df 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -189,6 +189,8 @@ el: registrations_mode: Ποιος μπορεί να εγγραφεί site_contact_email: E-mail επικοινωνίας site_contact_username: Όνομα χρήστη επικοινωνίας + status_page_url: URL σελίδας κατάστασης + trends_as_landing_page: Χρήση των τάσεων ως σελίδα προορισμού interactions: must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν σε ακολουθούν must_be_following: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index d66a708af0..27aa80c426 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -91,11 +91,13 @@ en-GB: 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. + status_page_url: URL of a page where people can see the status of this server during an outage theme: Theme that logged out visitors and new users see. thumbnail: A roughly 2:1 image displayed alongside your server information. timeline_preview: Logged out visitors will be able to browse the most recent public posts available on the server. trendable_by_default: Skip manual review of trending content. Individual items can still be removed from trends after the fact. trends: Trends show which posts, hashtags and news stories are gaining traction on your server. + trends_as_landing_page: Show trending content to logged-out users and visitors instead of a description of this server. Requires trends to be enabled. form_challenge: current_password: You are entering a secure area imports: @@ -251,11 +253,13 @@ en-GB: site_short_description: Server description site_terms: Privacy Policy site_title: Server name + status_page_url: Status page URL theme: Default theme thumbnail: Server thumbnail timeline_preview: Allow unauthenticated access to public timelines trendable_by_default: Allow trends without prior review trends: Enable trends + trends_as_landing_page: Use trends as the landing page interactions: must_be_follower: Block notifications from non-followers must_be_following: Block notifications from people you don't follow diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index 7537f0a4ab..4f1a6341b3 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -245,6 +245,7 @@ eo: site_short_description: Priskribo de servilo site_terms: Privateca politiko site_title: Nomo de la servilo + status_page_url: URL de la paĝo de stato theme: Implicita etoso thumbnail: Bildeto de servilo timeline_preview: Permesi la neaŭtentigitan aliron al la publikaj templinioj diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 0fdbfd937c..bcceccfb18 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -91,11 +91,13 @@ es-AR: site_short_description: Una breve descripción para ayudar a identificar individualmente a tu servidor. ¿Quién lo administra, a quién va dirigido? site_terms: Usá tu propia política de privacidad o dejala en blanco para usar la predeterminada. Puede estructurarse con sintaxis Markdown. site_title: Cómo la gente puede referirse a tu servidor además de su nombre de dominio. + status_page_url: Dirección web de una página donde la gente puede ver el estado de este servidor durante un apagón theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. trendable_by_default: Omití la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. + trends_as_landing_page: Mostrar contenido en tendencia para usuarios que no iniciaron sesión y visitantes, en lugar de una descripción de este servidor. Requiere que las tendencias estén habilitadas. form_challenge: current_password: Estás ingresando en un área segura imports: @@ -251,11 +253,13 @@ es-AR: site_short_description: Descripción del servidor site_terms: Política de privacidad site_title: Nombre del servidor + status_page_url: Dirección web de la página de estado theme: Tema predeterminado thumbnail: Miniatura del servidor timeline_preview: Permitir el acceso no autenticado a las líneas temporales públicas trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias + trends_as_landing_page: Usar las tendencias como la página de destino interactions: must_be_follower: Bloquear notificaciones de cuentas que no te siguen must_be_following: Bloquear notificaciones de cuentas que no seguís diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 7592979309..fc8c332e08 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -91,6 +91,7 @@ es: site_short_description: Una breve descripción para ayudar a identificar su servidor de forma única. ¿Quién lo administra, a quién va dirigido? site_terms: Utiliza tu propia política de privacidad o déjala en blanco para usar la predeterminada Puede estructurarse con formato Markdown. site_title: Cómo puede referirse la gente a tu servidor además de por el nombre de dominio. + status_page_url: URL de la página donde la gente pueda ver el estado de este servidor durante la exclusión theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 7e5a04ab2c..8b7dace23c 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -91,11 +91,13 @@ et: site_short_description: Lühikirjeldus serveri unikaalseks identifitseerimiseks. Kes haldab, kellele mõeldud? site_terms: Lisa siia serveri isikuandmete kaitse põhimõtted või jäta tühjaks, et kasutada geneerilisi. Tekstis on lubatud Markdowni süntaks. site_title: Kuidas inimesed saavad serverile viidata, lisaks domeeninimele. + status_page_url: Lehe URL, kus saab serveri maas oleku ajal näha serveri olekut theme: Teema, mida näevad sisenemata ning uued kasutajad. thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval. timeline_preview: Sisenemata külastajatel on võimalik sirvida viimaseid avalikke postitusi serveril. trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada. trends: Populaarsuse suunad näitavad millised postitused, sildid ja uudislood koguvad sinu serveris tähelepanu. + trends_as_landing_page: Näitab välja logitud kasutajatele ja külalistele serveri kirjelduse asemel populaarset sisu. Populaarne sisu (trendid) peab selleks olema sisse lülitatud. form_challenge: current_password: Turvalisse alasse sisenemine imports: @@ -251,11 +253,13 @@ et: site_short_description: Serveri lühikirjeldus site_terms: Isikuandmete kaitse site_title: Serveri nimi + status_page_url: Oleku lehe URL theme: Vaikmisi teema thumbnail: Serveri pisipilt timeline_preview: Luba autentimata ligipääs avalikele ajajoontele trendable_by_default: Luba trendid eelneva ülevaatuseta trends: Luba trendid + trends_as_landing_page: Kasuta maabumislehena lehte Populaarne interactions: must_be_follower: Keela teavitused mittejälgijatelt must_be_following: Keela teavitused kasutajatelt, keda sa ei jälgi diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 29042deb5d..175e0c96d7 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -91,11 +91,13 @@ eu: site_short_description: Zure zerbitzaria identifikatzen laguntzen duen deskribapen laburra. Nork du ardura? Nori zuzendua dago? site_terms: Erabili zure pribatutasun politika edo hutsik utzi lehenetsia erabiltzeko. Markdown sintaxiarekin egituratu daiteke. site_title: Jendeak nola deituko dion zure zerbitzariari, domeinu-izenaz gain. + status_page_url: Kanporatua dagoen jendeak zerbitzari honen egoera ikus dezaten gune baten URL theme: Saioa hasi gabeko erabiltzaileek eta berriek ikusiko duten gaia. thumbnail: Zerbitzariaren informazioaren ondoan erakusten den 2:1 inguruko irudia. timeline_preview: Saioa hasi gabeko erabiltzaileek ezingo dituzte arakatu zerbitzariko bidalketa publiko berrienak. trendable_by_default: Saltatu joeretako edukiaren eskuzko berrikuspena. Ondoren elementuak banan-bana kendu daitezke joeretatik. trends: Joeretan zure zerbitzarian bogan dauden bidalketa, traola eta albisteak erakusten dira. + trends_as_landing_page: Saioa hasita ez duten erabiltzaileei eta bisitariei pil-pilean dagoen edukia erakutsi zerbitzari honen deskribapena erakutsi ordez. Joerak aktibatuak edukitzea beharrezkoa da. form_challenge: current_password: Zonalde seguruan sartzen ari zara imports: @@ -251,11 +253,13 @@ eu: site_short_description: Zerbitzariaren deskribapena site_terms: Pribatutasun politika site_title: Zerbitzariaren izena + status_page_url: Egoera-orriaren URL theme: Lehenetsitako gaia thumbnail: Zerbitzariaren koadro txikia timeline_preview: Onartu autentifikatu gabeko sarbidea denbora lerro publikoetara trendable_by_default: Onartu joerak aurrez berrikusi gabe trends: Gaitu joerak + trends_as_landing_page: Joerak erabili helburuko orri gisa interactions: must_be_follower: Blokeatu jarraitzaile ez direnen jakinarazpenak must_be_following: Blokeatu zuk jarraitzen ez dituzu horien jakinarazpenak diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 1328350dd3..39c6befdfd 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -90,11 +90,13 @@ fi: site_short_description: Lyhyt kuvaus auttaa yksilöimään palvelimesi. Kuka sitä johtaa, kenelle se on tarkoitettu? site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla. site_title: Kuinka ihmiset voivat viitata palvelimeen sen verkkotunnuksen lisäksi. + status_page_url: URL-osoite, jonka kautta palvelimen tila voidaan tarkastaa sen ollessa tavoittamattomissa theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. 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ä julkaisut, aihetunnisteet ja uutiset ovat saamassa vetoa palvelimellasi. + trends_as_landing_page: Näytä suosittu sisältö uloskirjautuneille käyttäjille ja kävijöille palvelimen kuvauksen sijaan. Edellyttää suositun sisällön käyttöönottoa. form_challenge: current_password: Olet menossa suojatulle alueelle imports: @@ -250,11 +252,13 @@ fi: site_short_description: Palvelimen kuvaus site_terms: Tietosuojakäytäntö site_title: Palvelimen nimi + status_page_url: Tilasivun URL-osoite theme: Oletusteema thumbnail: Palvelimen pikkukuva timeline_preview: Salli todentamaton pääsy julkiselle aikajanalle trendable_by_default: Salli trendit ilman ennakkotarkastusta trends: Trendit käyttöön + trends_as_landing_page: Käytä suosittua sisältöä aloitussivuna interactions: must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml index 36e98f5b7e..2713d1f89a 100644 --- a/config/locales/simple_form.fo.yml +++ b/config/locales/simple_form.fo.yml @@ -91,11 +91,13 @@ fo: site_short_description: Ein stutt lýsing at eyðmerkja ambætaran hjá tær. Hvør rekur hann og hvønn er hann til? site_terms: Brúka tín egna privatlívspolitikk ella lat vera blankt fyri at brúka tann sjálvsetta. Kann skrivast við Markdown syntaksi. site_title: Hvussu fólk kunnu vísa til ambætaran hjá tær útyvir at brúka navnaøkið. + status_page_url: Slóð til eina síðu, har ið fólk kunnu síggja støðuna á hesum ambætaranum í sambandi við streymslit theme: Uppsetingareyðkenni, sum vitjandi, ið ikki eru ritaði inn, og nýggir brúkarar síggja. thumbnail: Ein mynd í lutfallinum 2:1, sum verður víst saman við ambætaraupplýsingunum hjá tær. timeline_preview: Vitjandi, sum eru ritaði út, fara at kunna blaða ígjøgnum nýggjastu almennu postarnar, sum eru tøkir á ambætaranum. trendable_by_default: Loyp uppum serskilda eftirkannan av tilfari, sum er vælumtókt. Einstakir lutir kunnu framvegis strikast frá listum við vælumtóktum tilfari seinni. trends: Listar við vælumtóktum tilfari vísa, hvørjir postar, frámerki og tíðindasøgur hava framburð á tínum ambætara. + trends_as_landing_page: Vís vitjandi og brúkarum, sum ikki eru innritaðir, rák í staðin fyri eina lýsing av ambætaranum. Krevur at rák eru virkin. form_challenge: current_password: Tú ert á veg til eitt trygt øki imports: @@ -251,11 +253,13 @@ fo: site_short_description: Ambætaralýsing site_terms: Privatlívspolitikkur site_title: Ambætaranavn + status_page_url: Slóð til støðusíðu theme: Sjálvvalt uppsetingareyðkenni thumbnail: Ambætarasmámynd timeline_preview: Loyv teimum, sum ikki eru ritaði inn, atgongd til almennar tíðarlinjur trendable_by_default: Loyv vælumtóktum tilfari uttan at viðgera tað fyrst trends: Loyv ráki + trends_as_landing_page: Brúka rák sum lendingarsíðu interactions: must_be_follower: Blokera fráboðanum frá teimum, sum ikki fylgja tær must_be_following: Blokera fráboðanum frá teimum, tú ikki fylgir diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 02ecbe0862..d395b8517e 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -3,7 +3,7 @@ fr: simple_form: hints: account_alias: - acct: Spécifiez le nom d'utilisateur@domaine du compte à partir duquel vous souhaitez migrer + acct: Spécifiez l’identifiant@domaine du compte à partir duquel vous souhaitez migrer account_migration: acct: Spécifiez l’identifiant@domaine du compte vers lequel vous souhaitez migrer account_warning_preset: @@ -35,7 +35,7 @@ fr: bot: Signale aux autres que ce compte exécute principalement des actions automatisées et pourrait ne pas être surveillé context: Un ou plusieurs contextes où le filtre devrait s’appliquer current_password: Par mesure de sécurité, veuillez saisir le mot de passe de ce compte - current_username: Pour confirmer, veuillez saisir le nom d'utilisateur de ce compte + current_username: Pour confirmer, veuillez saisir l’identifiant de ce compte digest: Uniquement envoyé après une longue période d’inactivité en cas de messages personnels reçus pendant votre absence discoverable: Permet à votre compte d’être découvert par des inconnus par le biais de recommandations, de tendances et autres fonctionnalités email: Vous recevrez un courriel de confirmation @@ -59,7 +59,7 @@ fr: setting_show_application: Le nom de l’application que vous utilisez pour publier sera affichée dans la vue détaillée de vos messages setting_use_blurhash: Les dégradés sont basés sur les couleurs des images cachées mais n’en montrent pas les détails setting_use_pending_items: Cacher les mises à jour des fils d’actualités derrière un clic, au lieu de les afficher automatiquement - username: Votre nom d’utilisateur sera unique sur %{domain} + username: Votre identifiant sera unique sur %{domain} whole_word: Si le mot-clé ou la phrase est alphanumérique, alors le filtre ne sera appliqué que s’il correspond au mot entier domain_allow: domain: Ce domaine pourra récupérer des données de ce serveur et les données entrantes seront traitées et stockées @@ -78,24 +78,26 @@ fr: backups_retention_period: Conserve les archives générées par l'utilisateur selon le nombre de jours spécifié. bootstrap_timeline_accounts: Ces comptes seront épinglés en tête de liste des recommandations pour les nouveaux utilisateurs. closed_registrations_message: Affiché lorsque les inscriptions sont fermées - content_cache_retention_period: Les publications depuis d'autres serveurs seront supprimées après un nombre de jours spécifiés lorsque défini sur une valeur positive. Cela peut être irréversible. + content_cache_retention_period: Lorsque la valeur est positive, les messages publiés depuis d'autres serveurs seront supprimés après le nombre de jours défini. Cela peut être irréversible. custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon. mascot: Remplace l'illustration dans l'interface Web avancée. - media_cache_retention_period: Les fichiers multimédias téléchargés seront supprimés après le nombre de jours spécifiés lorsque la valeur est positive, et seront téléchargés à nouveau sur demande. - peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fediverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général. - profile_directory: L'annuaire des profils répertorie tous les utilisateurs qui ont opté pour être découverts. + media_cache_retention_period: Lorsque la valeur est positive, les fichiers multimédias téléchargés seront supprimés après le nombre de jours défini et pourront être à nouveau téléchargés sur demande. + peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fédiverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général. + profile_directory: L'annuaire des profils répertorie tous les comptes qui choisi d'être découvrables. 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_email: Comment l'on peut vous joindre pour des requêtes d'assistance ou d'ordre juridique. 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. - site_title: Comment les personnes peuvent se référer à votre serveur en plus de son nom de domaine. + site_extended_description: Toute information supplémentaire qui peut être utile aux non-inscrit⋅e⋅s et à vos utilisateur⋅rice⋅s. Peut être structurée avec la syntaxe Markdown. + site_short_description: Une description brève pour aider à faire connaître votre serveur de manière unique. Qui s'en occupe ? à qui est-il destiné ? + site_terms: Utilisez votre propre politique de confidentialité ou laissez vide pour utiliser les conditions définies par défaut. Peut être structurée avec la syntaxe Markdown. + site_title: Comment l'on peut faire référence à votre serveur, autrement que par le nom de domaine. + status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s. thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur. - timeline_preview: Les visiteurs déconnectés pourront parcourir les derniers messages publics disponibles sur le serveur. + timeline_preview: Les utilisateur⋅rice⋅s déconnecté⋅e⋅s pourront parcourir les derniers messages publics disponibles sur le serveur. trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup. - trends: Les tendances montrent quelles publications, hashtags et actualités sont en train de gagner en traction sur votre serveur. + trends: Les tendances montrent quelles publications, hashtags et actualités gagnent en ampleur sur votre serveur. + trends_as_landing_page: Afficher le contenu tendance au lieu d'une description de ce serveur pour les comptes déconnectés et les non-inscrit⋅e⋅s. Nécessite que les tendances soient activées. form_challenge: current_password: Vous entrez une zone sécurisée imports: @@ -174,7 +176,7 @@ fr: data: Données discoverable: Suggérer ce compte aux autres display_name: Nom public - email: Adresse courriel + email: Adresse de courriel expires_in: Expire après fields: Métadonnées du profil header: Image d’en-tête @@ -220,7 +222,7 @@ fr: title: Nom type: Type d’import username: Identifiant - username_or_email: Nom d’utilisateur·rice ou courriel + username_or_email: Identifiant ou adresse courriel whole_word: Mot entier email_domain_block: with_dns_records: Inclure les enregistrements MX et IP du domaine @@ -232,8 +234,8 @@ fr: warn: Cacher derrière un avertissement form_admin_settings: activity_api_enabled: Publie des statistiques agrégées sur l'activité des utilisateur⋅rice⋅s dans l'API - backups_retention_period: Période d'archivage utilisateur - bootstrap_timeline_accounts: Toujours recommander ces comptes aux nouveaux utilisateurs + backups_retention_period: Durée de rétention des archives utilisateur + bootstrap_timeline_accounts: Toujours recommander ces comptes aux nouveaux⋅elles utilisateur⋅rice⋅s closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles content_cache_retention_period: Durée de rétention du contenu dans le cache custom_css: CSS personnalisé @@ -245,17 +247,19 @@ fr: require_invite_text: Exiger une raison pour s’inscrire show_domain_blocks: Afficher les blocages de domaines show_domain_blocks_rationale: Montrer pourquoi les domaines ont été bloqués - site_contact_email: E-mail de contact - site_contact_username: Nom d'utilisateur du contact + site_contact_email: Adresse de courriel de contact + site_contact_username: Identifiant du contact site_extended_description: Description étendue site_short_description: Description du serveur site_terms: Politique de confidentialité site_title: Nom du serveur + status_page_url: URL de la page de l'état du serveur theme: Thème par défaut thumbnail: Miniature du serveur timeline_preview: Autoriser l’accès non authentifié aux fils publics trendable_by_default: Autoriser les tendances sans révision préalable trends: Activer les tendances + trends_as_landing_page: Utiliser les tendances comme page d'accueil interactions: must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas must_be_following: Bloquer les notifications des personnes que vous ne suivez pas @@ -276,9 +280,9 @@ fr: appeal: Une personne fait appel d'une décision des modérateur·rice·s digest: Envoyer des courriels récapitulatifs favourite: Quelqu’un a ajouté votre message à ses favoris - follow: Quelqu’un vient de me suivre - follow_request: Quelqu’un demande à me suivre - mention: Quelqu’un me mentionne + follow: Quelqu’un vient de vous suivre + follow_request: Quelqu’un demande à vous suivre + mention: Quelqu’un vous a mentionné⋅e pending_account: Nouveau compte en attente d’approbation reblog: Quelqu’un a partagé votre message report: Nouveau signalement soumis diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index 7686359126..be950189b2 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -91,11 +91,13 @@ fy: 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. + status_page_url: URL fan in side dêr’t minsken de steat fan dizze server sjen kinne wylst in steuring 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. + trends_as_landing_page: Toan trending ynhâld oan ôfmelde brûkers en besikers yn stee fan in beskriuwing fan dizze server. Fereasket dat trends ynskeakele binne. form_challenge: current_password: Jo betrêdzje in feilige omjouwing imports: @@ -251,11 +253,13 @@ fy: site_short_description: Serveromskriuwing site_terms: Privacybelied site_title: Servernamme + status_page_url: URL fan steatside 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 + trends_as_landing_page: Lit trends op de startside sjen 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 diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index a0156e8c2a..c4a6da5669 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -91,11 +91,13 @@ gl: site_short_description: Breve descrición que axuda a identificar de xeito único o teu servidor. Quen o xestiona, a quen vai dirixido? site_terms: Escribe a túa propia política de privacidade ou usa o valor por defecto. Podes usar sintaxe Markdow. site_title: De que xeito se pode referir o teu servidor ademáis do seu nome de dominio. + status_page_url: URL dunha páxina onde se pode ver o estado deste servidor cando non está a funcionar theme: Decorado que verán visitantes e novas usuarias. thumbnail: Imaxe con proporcións 2:1 mostrada xunto á información sobre o servidor. timeline_preview: Visitantes e usuarias non conectadas poderán ver as publicacións públicas máis recentes do servidor. trendable_by_default: Omitir a revisión manual das tendencias. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo. trends: As tendencias mostran publicacións, cancelos e novas historias que teñen popularidade no teu servidor. + trends_as_landing_page: Mostrar contidos en voga para as persoas sen sesión iniciada e visitantes no lugar dunha descrición deste servidor. Require ter activado Tendencias. form_challenge: current_password: Estás entrando nun área segura imports: @@ -251,11 +253,13 @@ gl: site_short_description: Descrición do servidor site_terms: Política de Privacidade site_title: Nome do servidor + status_page_url: URL da páxina do estado theme: Decorado por omisión thumbnail: Icona do servidor timeline_preview: Permitir acceso á cronoloxía pública sen autenticación trendable_by_default: Permitir tendencias sen aprobación previa trends: Activar tendencias + trends_as_landing_page: Usar as tendencias como páxina de benvida interactions: must_be_follower: Bloquear as notificacións de non-seguidoras must_be_following: Bloquea as notificacións de persoas que non segues diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 6d9ed78927..8e6631e36a 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -91,6 +91,7 @@ he: site_short_description: תיאור קצר שיעזור להבחין בייחודיות השרת שלך. מי מריץ אותו, למי הוא מיועד? site_terms: נסחו מדיניות פרטיות או השאירו ריק כדי להשתמש בברירת המחדל. ניתן לנסח בעזרת תחביר מארקדאון. site_title: כיצד יקרא השרת שלך על ידי הקהל מלבד שם המתחם. + status_page_url: כתובת לבדיקת מצב שרת זה בעת תקלה theme: ערכת המראה שיראו משתמשים חדשים ומשתמשים שאינם מחוברים. thumbnail: תמונה ביחס 2:1 בערך שתוצג ליד המידע על השרת שלך. timeline_preview: משתמשים מנותקים יוכלו לדפדף בהודעות ציר הזמן הציבורי שעל השרת. @@ -252,12 +253,13 @@ he: site_short_description: תיאור השרת site_terms: מדיניות פרטיות site_title: שם השרת + status_page_url: URL של עמוד סטטוס חיצוני theme: ערכת נושא ברירת מחדל thumbnail: תמונה ממוזערת מהשרת timeline_preview: הרשאת גישה בלתי מאומתת לפיד הפומבי trendable_by_default: הרשאה לפריטים להופיע בנושאים החמים ללא אישור מוקדם trends: אפשר פריטים חמים (טרנדים) - trends_as_landing_page: השתמש בנושאים חמים בתור דף הנחיתה + trends_as_landing_page: דף הנחיתה יהיה "נושאים חמים" interactions: must_be_follower: חסימת התראות משאינם עוקבים must_be_following: חסימת התראות משאינם נעקבים diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index a8b891afe5..81d74cebee 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -91,11 +91,13 @@ hu: site_short_description: Rövid leírás, amely segíthet a kiszolgálód egyedi azonosításában. Ki futtatja, kinek készült? site_terms: Használd a saját adatvédelmi irányelveidet, vagy hagyd üresen az alapértelmezett használatához. Markdown szintaxis használható. site_title: Hogyan hivatkozhatnak mások a kiszolgálódra a domain nevén kívül. + status_page_url: Annak az oldalnak az URL-je, melyen ennek a kiszolgálónak az állapotát látják az emberek egy leállás során theme: A téma, melyet a kijelentkezett látogatók és az új felhasználók látnak. thumbnail: Egy durván 2:1 arányú kép, amely a kiszolgálóinformációk mellett jelenik meg. timeline_preview: A kijelentkezett látogatók továbbra is böngészhetik a kiszolgáló legfrissebb nyilvános bejegyzéseit. trendable_by_default: Kézi felülvizsgálat kihagyása a felkapott tartalmaknál. Az egyes elemek utólag távolíthatók el a trendek közül. trends: A trendek azt mondják meg, hogy mely bejegyzések, hashtagek és hírbejegyzések felkapottak a kiszolgálódon. + trends_as_landing_page: Felkapott tartalmak mutatása a kijelentkezett felhasználók és látogatók számára ennek a kiszolgálónak a leírása helyett. Szükséges hozzá a trendek engedélyezése. form_challenge: current_password: Beléptél egy biztonsági térben imports: @@ -251,11 +253,13 @@ hu: site_short_description: Kiszolgáló leírása site_terms: Adatvédelmi szabályzat site_title: Kiszolgáló neve + status_page_url: Állapotoldal URL-je theme: Alapértelmezett téma thumbnail: Kiszolgáló bélyegképe timeline_preview: A nyilvános idővonalak hitelesítés nélküli elérésének engedélyezése trendable_by_default: Trendek engedélyezése előzetes ellenőrzés nélkül trends: Trendek engedélyezése + trends_as_landing_page: Trendek használata nyitóoldalként interactions: must_be_follower: Nem követőidtől érkező értesítések tiltása must_be_following: Nem követettjeidtől érkező értesítések tiltása diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index dcb77ca4e6..ed17c97536 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -91,11 +91,13 @@ is: site_short_description: Stutt lýsing sem hjálpar til við að auðkenna netþjóninn þinn. Hver er að reka hann, fyrir hverja er hann? site_terms: Notaðu þína eigin persónuverndarstefnu eða skildu þetta eftir autt til að nota sjálfgefna stefnu. Má sníða með Markdown-málskipan. site_title: Hvað fólk kallar netþjóninn þinn annað en með heiti lénsins. + status_page_url: Slóð á síðu þar sem fólk getur séð ástand netþjónsins þegar vandræði koma upp theme: Þema sem útskráðir gestir og nýjir notendur sjá. thumbnail: Mynd um það bil 2:1 sem birtist samhliða upplýsingum um netþjóninn þinn. timeline_preview: Gestir sem ekki eru skráðir inn munu geta skoðað nýjustu opinberu færslurnar sem tiltækar eru á þjóninum. trendable_by_default: Sleppa handvirkri yfirferð á vinsælu efni. Áfram verður hægt að fjarlægja stök atriði úr vinsældarlistum. trends: Vinsældir sýna hvaða færslur, myllumerki og fréttasögur séu í umræðunni á netþjóninum þínum. + trends_as_landing_page: Sýna vinsælt efni til ekki-innskráðra notenda í stað lýsingar á þessum netþjóni. Krefst þess að vinsældir efnis sé virkjað. form_challenge: current_password: Þú ert að fara inn á öryggissvæði imports: @@ -251,11 +253,13 @@ is: site_short_description: Lýsing á vefþjóni site_terms: Persónuverndarstefna site_title: Heiti vefþjóns + status_page_url: Slóð á ástandssíðu theme: Sjálfgefið þema thumbnail: Smámynd vefþjóns timeline_preview: Leyfa óauðkenndan aðgang að opinberum tímalínum trendable_by_default: Leyfa vinsælt efni án undanfarandi yfirferðar trends: Virkja vinsælt + trends_as_landing_page: Nota vinsælasta sem upphafssíðu interactions: must_be_follower: Loka á tilkynningar frá þeim sem ekki eru fylgjendur must_be_following: Loka á tilkynningar frá þeim sem þú fylgist ekki með diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 4dc27cc615..3af09275fb 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -91,11 +91,13 @@ it: site_short_description: Una breve descrizione per aiutare a identificare in modo univoco il tuo server. Chi lo gestisce, a chi è rivolto? site_terms: Usa la tua politica sulla privacy o lascia vuoto per usare l'impostazione predefinita. Può essere strutturata con la sintassi Markdown. site_title: In che modo le persone possono fare riferimento al tuo server oltre al suo nome di dominio. + status_page_url: URL di una pagina in cui le persone possono visualizzare lo stato di questo server durante un disservizio theme: Tema visualizzato dai visitatori e dai nuovi utenti disconnessi. thumbnail: Un'immagine approssimativamente 2:1 visualizzata insieme alle informazioni del tuo server. timeline_preview: I visitatori disconnessi potranno sfogliare i post pubblici più recenti disponibili sul server. trendable_by_default: Salta la revisione manuale dei contenuti di tendenza. I singoli elementi possono ancora essere rimossi dalle tendenze dopo il fatto. trends: Le tendenze mostrano quali post, hashtag e notizie stanno guadagnando popolarità sul tuo server. + trends_as_landing_page: Mostra i contenuti di tendenza agli utenti disconnessi e ai visitatori, invece di una descrizione di questo server. Richiede l'abilitazione delle tendenze. form_challenge: current_password: Stai entrando in un'area sicura imports: @@ -251,11 +253,13 @@ it: site_short_description: Descrizione del server site_terms: Politica sulla privacy site_title: Nome del server + status_page_url: URL della pagina di stato theme: Tema predefinito thumbnail: Miniatura del server timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche trendable_by_default: Consenti le tendenze senza revisione preventiva trends: Abilita le tendenze + trends_as_landing_page: Utilizza le tendenze come pagina di destinazione interactions: must_be_follower: Blocca notifiche da chi non ti segue must_be_following: Blocca notifiche dalle persone che non segui diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index aec79eaa00..ff727235ed 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -91,11 +91,13 @@ lv: site_short_description: Īss apraksts, kas palīdzēs unikāli identificēt tavu serveri. Kurš to darbina, kam tas paredzēts? site_terms: Izmanto pats savu konfidencialitātes politiku vai atstāj tukšu, lai izmantotu noklusējuma iestatījumu. Var strukturēt ar Markdown sintaksi. site_title: Kā cilvēki var atsaukties uz tavu serveri, izņemot tā domēna nosaukumu. + status_page_url: Tās lapas URL, kurā lietotāji var redzēt šī servera statusu pārtraukuma laikā theme: Tēma, kuru redz apmeklētāji, kuri ir atteikušies, un jaunie lietotāji. thumbnail: Aptuveni 2:1 attēls, kas tiek parādīts kopā ar tava servera informāciju. timeline_preview: Atteikušies apmeklētāji varēs pārlūkot jaunākās serverī pieejamās publiskās ziņas. trendable_by_default: Izlaist aktuālā satura manuālu pārskatīšanu. Atsevišķas preces joprojām var noņemt no tendencēm pēc fakta. trends: Tendences parāda, kuras ziņas, atsauces un ziņu stāsti gūst panākumus tavā serverī. + trends_as_landing_page: Šī servera apraksta vietā rādīt aktuālo saturu lietotājiem un apmeklētājiem, kuri ir atteikušies. Nepieciešams iespējot tendences. form_challenge: current_password: Tu ieej drošā zonā imports: @@ -251,11 +253,13 @@ lv: site_short_description: Servera apraksts site_terms: Privātuma Politika site_title: Servera nosaukums + status_page_url: Statusa lapas URL theme: Noklusētā tēma thumbnail: Servera sīkbilde timeline_preview: Atļaut neautentificētu piekļuvi publiskajām ziņu lentām trendable_by_default: Atļaut tendences bez iepriekšējas pārskatīšanas trends: Iespējot tendences + trends_as_landing_page: Izmantojiet tendences kā galveno lapu interactions: must_be_follower: Bloķēt paziņojumus no ne-sekotājiem must_be_following: Bloķēt paziņojumus no cilvēkiem, kuriem tu neseko diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index ce474dab7e..44e9e78197 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -91,11 +91,13 @@ nl: site_short_description: Een korte beschrijving om het unieke karakter van je server te tonen. Wie beheert de server, wat is de doelgroep? site_terms: Gebruik je eigen privacybeleid of laat leeg om de standaardwaarde te gebruiken. Kan worden opgemaakt met Markdown. site_title: Hoe mensen buiten de domeinnaam naar je server kunnen verwijzen. + status_page_url: URL van een pagina waar mensen de status van deze server kunnen zien tijdens een storing theme: Thema die (niet ingelogde) bezoekers en nieuwe gebruikers zien. thumbnail: Een afbeelding van ongeveer een verhouding van 2:1 die naast jouw serverinformatie wordt getoond. timeline_preview: Bezoekers (die niet zijn ingelogd) kunnen de meest recente, op de server aanwezige openbare berichten bekijken. trendable_by_default: Handmatige beoordeling van trends overslaan. Individuele items kunnen later alsnog worden afgekeurd. trends: Trends laten zien welke berichten, hashtags en nieuwsberichten op jouw server aan populariteit winnen. + trends_as_landing_page: Toon trending inhoud aan uitgelogde gebruikers en bezoekers in plaats van een beschrijving van deze server. Vereist dat trends zijn ingeschakeld. form_challenge: current_password: Je betreedt een veilige omgeving imports: @@ -251,11 +253,13 @@ nl: site_short_description: Serveromschrijving site_terms: Privacybeleid site_title: Servernaam + status_page_url: URL van statuspagina theme: Standaardthema thumbnail: Serverthumbnail timeline_preview: Toegang tot de openbare tijdlijnen zonder in te loggen toestaan trendable_by_default: Trends goedkeuren zonder voorafgaande beoordeling trends: Trends inschakelen + trends_as_landing_page: Laat trends op de startpagina zien interactions: must_be_follower: Meldingen van mensen die jou niet volgen blokkeren must_be_following: Meldingen van mensen die jij niet volgt blokkeren diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 712a8ea147..b6d351cb22 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -91,11 +91,13 @@ pl: site_short_description: Krótki opis, który pomoże w unikalnym zidentyfikowaniu Twojego serwera. Kto go obsługuje, do kogo jest skierowany? site_terms: Użyj własnej polityki prywatności lub zostaw puste, aby użyć domyślnej. Może być sformatowana za pomocą składni Markdown. site_title: Jak ludzie mogą odwoływać się do Twojego serwera inaczej niże przez nazwę jego domeny. + status_page_url: Adres URL strony, na której odwiedzający mogą zobaczyć status tego serwera w trakcie awarii theme: Motyw, który widzą wylogowani i nowi użytkownicy. thumbnail: Obraz o proporcjach mniej więcej 2:1 wyświetlany obok informacji o serwerze. timeline_preview: Wylogowani użytkownicy będą mogli przeglądać najnowsze publiczne wpisy dostępne na serwerze. trendable_by_default: Pomiń ręczny przegląd treści trendów. Pojedyncze elementy nadal mogą być usuwane z trendów po fakcie. trends: Tendencje pokazują, które posty, hasztagi i newsy zyskują popularność na Twoim serwerze. + trends_as_landing_page: Pokaż najpopularniejsze treści niezalogowanym użytkownikom i odwiedzającym zamiast opisu tego serwera. Wymaga włączenia trendów. form_challenge: current_password: Wchodzisz w strefę bezpieczną imports: @@ -251,11 +253,13 @@ pl: site_short_description: Opis serwera site_terms: Polityka prywatności site_title: Nazwa serwera + status_page_url: Adres URL strony statusu theme: Domyślny motyw thumbnail: Miniaturka serwera timeline_preview: Zezwalaj na nieuwierzytelniony dostęp do publicznych osi czasu trendable_by_default: Zezwalaj na trendy bez wcześniejszego przeglądu trends: Włącz trendy + trends_as_landing_page: Użyj trendów jako strony początkowej interactions: must_be_follower: Nie wyświetlaj powiadomień od osób, które Cię nie obserwują must_be_following: Nie wyświetlaj powiadomień od osób, których nie obserwujesz diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index 3de885530f..4e34c5897b 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -91,11 +91,13 @@ pt-PT: site_short_description: Uma breve descrição para ajudar a identificar de forma única o seu servidor. Quem o está a gerir, e a quem se destina? site_terms: Use a sua própria política de privacidade ou deixe em branco para usar a política padrão. Pode ser estruturada com a sintaxe Markdown. site_title: Como as pessoas podem referir-se ao seu servidor para além do seu nome de domínio. + status_page_url: URL de uma página onde as pessoas podem ver o estado deste servidor durante uma interrupção theme: Tema que os visitantes e os novos utilizadores veem. thumbnail: Uma imagem de cerca de 2:1, apresentada 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 em alta. Elementos em avulso poderão ainda assim ser retirados das tendências mesmo após a sua apresentação. trends: As publicações em alta mostram quais as publicações, etiquetas e notícias que estão a ganhar destaque no seu servidor. + trends_as_landing_page: Mostrar conteúdo de tendências para usuários logados e visitantes em vez de uma descrição deste servidor. Requer que as tendências sejam ativadas. form_challenge: current_password: Está a entrar numa área segura imports: @@ -251,11 +253,13 @@ pt-PT: site_short_description: Descrição do servidor site_terms: Política de privacidade site_title: Nome do servidor + status_page_url: URL da página de estado theme: Tema predefinido thumbnail: Miniatura do servidor timeline_preview: Permitir acesso não autenticado às cronologias públicas trendable_by_default: Permitir publicações em alta sem revisão prévia trends: Activar publicações em alta + trends_as_landing_page: Usar tendências como página inicial interactions: must_be_follower: Bloquear notificações de não-seguidores must_be_following: Bloquear notificações de pessoas que não segues diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index 78c8ea7e00..e8fb86f29b 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -149,6 +149,7 @@ sk: name: Haštag form_admin_settings: peers_api_enabled: Zverejni zoznam objavených serverov v API + status_page_url: URL adresa stránky stavu interactions: must_be_follower: Blokuj oboznámenia od užívateľov, ktorí ma nenasledujú must_be_following: Blokuj oboznámenia od ľudí, ktorých nesledujem diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index 8bf5e43f1d..ac14735a91 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -91,11 +91,13 @@ sl: site_short_description: Kratek opis v pomoč za identifikacijo vašega strežnika. Kdo ga vzdržuje, komu je namenjen? site_terms: Uporabite svoj lasten pravilnik o zasebnosti ali pustite prazno za privzetega. Lahko ga strukturirate s skladnjo Markdown. site_title: Kako naj imenujejo vaš strežnik poleg njegovega domenskega imena. + status_page_url: URL strani, kjer je moč videti stanje tega strežnika med prekinjenim delovanjem theme: Tema, ki jo vidijo odjavljeni obiskovalci in novi uporabniki. thumbnail: Slika v razmerju stranic približno 2:1, prikazana vzdolž podatkov o vašem strežniku. timeline_preview: Odjavljeni obiskovalci bodo lahko brskali po najnovejših javnih objavah, ki so na voljo na strežniku. trendable_by_default: Preskočite ročni pregled vsebine v trendu. Posamezne elemente še vedno lahko odstranite iz trenda post festum. trends: Trendi prikažejo, katere objave, ključniki in novice privlačijo zanimanje na vašem strežniku. + trends_as_landing_page: Odjavljenim uporabnikom in obiskovalcem namesto opisa tega strežnika pokažite vsebine v trendu. Trendi morajo biti omogočeni. form_challenge: current_password: Vstopate v varovano območje imports: @@ -251,11 +253,13 @@ sl: site_short_description: Opis strežnika site_terms: Pravilnik o zasebnosti site_title: Ime strežnika + status_page_url: URL strani stanja theme: Privzeta tema thumbnail: Sličica strežnika timeline_preview: Omogoči neoverjen dostop do javnih časovnic trendable_by_default: Dovoli trende brez predhodnega pregleda trends: Omogoči trende + trends_as_landing_page: Uporabi trende za pristopno stran interactions: must_be_follower: Blokiraj obvestila nesledilcev must_be_following: Blokiraj obvestila oseb, ki jim ne sledite diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 3c86da4963..a11037fa92 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -91,11 +91,13 @@ sq: site_short_description: Një përshkrim i shkurtër për të ndihmuar identifikimin unik të shërbyesit tuaj. Kush e mban në punë, për kë është? site_terms: Përdorni rregullat tuaja të privatësisë, ose lëreni të zbrazët që të përdoren ato parazgjedhje. Mund të hartohet me sintaksë Markdown. site_title: Si mund t’i referohen njerëzit shërbyesit tuaj, përveç emrit të tij të përkatësisë. + status_page_url: URL e faqe ku njerëzit mund të shohin gjendjen e këtij shërbyesi, gjatë një ndërprerje të funksionimit theme: Temë që shohin vizitorët që kanë bërë daljen dhe përdorues të rinj. thumbnail: Një figurë afërsisht 2:1 e shfaqur tok me hollësi mbi shërbyesin tuaj. timeline_preview: Vizitorët që kanë bërë daljen do të jenë në gjendje të shfletojnë postimet më të freskëta publike të passhme në shërbyes. trendable_by_default: Anashkalo shqyrtim dorazi lënde në modë. Gjëra individuale prapë mund të hiqen nga lëndë në modë pas publikimi. trends: Gjërat në modë shfaqin cilat postime, hashtagë dhe histori të reja po tërheqin vëmendjen në shërbyesin tuaj. + trends_as_landing_page: Shfaq lëndë në modë për përdorues jo të futur në llogari dhe për vizitorë, në vend se të një përshkrimi të këtij shërbyesi. Lyp që të jenë të aktivizuara gjërat në modë. form_challenge: current_password: Po hyni në një zonë të sigurt imports: @@ -251,11 +253,13 @@ sq: site_short_description: Përshkrim shërbyesi site_terms: Rregulla Privatësie site_title: Emër shërbyesi + status_page_url: URL faqeje gjendjesh theme: Temë parazgjedhje thumbnail: Miniaturë shërbyesi timeline_preview: Lejo hyrje pa mirëfilltësim te rrjedha kohore publike trendable_by_default: Lejoni gjëra në modë pa shqyrtim paraprak trends: Aktivizo gjëra në modë + trends_as_landing_page: Përdor gjërat në modë si faqe hyrëse interactions: must_be_follower: Blloko njoftime nga jo-ndjekës must_be_following: Blloko njoftime nga persona që s’i ndiqni diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index d7b306bd2e..ed111ecc90 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -91,11 +91,13 @@ th: site_short_description: คำอธิบายแบบสั้นเพื่อช่วยระบุเซิร์ฟเวอร์ของคุณอย่างไม่ซ้ำกัน ผู้ดำเนินการเซิร์ฟเวอร์ เซิร์ฟเวอร์สำหรับใคร? site_terms: ใช้นโยบายความเป็นส่วนตัวของคุณเองหรือเว้นว่างไว้เพื่อใช้ค่าเริ่มต้น สามารถจัดโครงสร้างด้วยไวยากรณ์ Markdown site_title: วิธีที่ผู้คนอาจอ้างอิงถึงเซิร์ฟเวอร์ของคุณนอกเหนือจากชื่อโดเมนของเซิร์ฟเวอร์ + status_page_url: URL ของหน้าที่ผู้คนสามารถเห็นสถานะของเซิร์ฟเวอร์นี้ในระหว่างการหยุดทำงาน theme: ชุดรูปแบบที่ผู้เยี่ยมชมที่ออกจากระบบและผู้ใช้ใหม่เห็น thumbnail: แสดงภาพ 2:1 โดยประมาณควบคู่ไปกับข้อมูลเซิร์ฟเวอร์ของคุณ timeline_preview: ผู้เยี่ยมชมที่ออกจากระบบจะสามารถเรียกดูโพสต์สาธารณะล่าสุดที่มีในเซิร์ฟเวอร์ trendable_by_default: ข้ามการตรวจทานเนื้อหาที่กำลังนิยมด้วยตนเอง ยังคงสามารถเอารายการแต่ละรายการออกจากแนวโน้มได้หลังเกิดเหตุ trends: แนวโน้มแสดงว่าโพสต์, แฮชแท็ก และเรื่องข่าวใดกำลังได้รับความสนใจในเซิร์ฟเวอร์ของคุณ + trends_as_landing_page: แสดงเนื้อหาที่กำลังนิยมแก่ผู้ใช้และผู้เยี่ยมชมที่ออกจากระบบแทนที่จะเป็นคำอธิบายของเซิร์ฟเวอร์นี้ ต้องมีการเปิดใช้งานแนวโน้ม form_challenge: current_password: คุณกำลังเข้าสู่พื้นที่ปลอดภัย imports: @@ -179,7 +181,7 @@ th: fields: ข้อมูลอภิพันธุ์โปรไฟล์ header: ส่วนหัว honeypot: "%{label} (ไม่ต้องกรอก)" - inbox_url: URL กล่องขาเข้าแบบรีเลย์ + inbox_url: URL ของกล่องขาเข้าของรีเลย์ irreversible: ลบแทนที่จะซ่อน locale: ภาษาส่วนติดต่อ locked: ต้องมีคำขอติดตาม @@ -251,11 +253,13 @@ th: site_short_description: คำอธิบายเซิร์ฟเวอร์ site_terms: นโยบายความเป็นส่วนตัว site_title: ชื่อเซิร์ฟเวอร์ + status_page_url: URL ของหน้าสถานะ theme: ชุดรูปแบบเริ่มต้น thumbnail: ภาพขนาดย่อเซิร์ฟเวอร์ timeline_preview: อนุญาตการเข้าถึงเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง trendable_by_default: อนุญาตแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า trends: เปิดใช้งานแนวโน้ม + trends_as_landing_page: ใช้แนวโน้มเป็นหน้าเริ่มต้น interactions: must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 5f5cdbb391..3e0e7470d7 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -91,11 +91,13 @@ tr: site_short_description: Sunucunuzu tekil olarak tanımlamaya yardımcı olacak kısa tanım. Kim işletiyor, kimin için? site_terms: Kendi gizlilik politikanızı kullanın veya varsayılanı kullanmak için boş bırakın. Markdown sözdizimiyle biçimlendirilebilir. site_title: İnsanlar sunucunuzu alan adı dışında nasıl isimlendirmeli. + status_page_url: İnsanların bir kesinti halinde sunucunun durumunu görebilecekleri bir sayfanın URL'si theme: Giriş yapmamış ziyaretçilerin ve yeni kullanıcıların gördüğü tema. thumbnail: Sunucu bilginizin yanında gösterilen yaklaşık 2:1'lik görüntü. timeline_preview: Giriş yapmamış ziyaretçiler, sunucuda mevcut olan en son genel gönderileri tarayabilecekler. trendable_by_default: Öne çıkan içeriğin elle incelenmesini atla. Tekil öğeler sonrada öne çıkanlardan kaldırılabilir. trends: Öne çıkanlar, sunucunuzda ilgi toplayan gönderileri, etiketleri ve haber yazılarını gösterir. + trends_as_landing_page: Giriş yapmış kullanıcılar ve ziyaretçilere sunucunun açıklması yerine öne çıkan içeriği göster. Öne çıkanların etkin olması gerekir. form_challenge: current_password: Güvenli bir bölgeye giriyorsunuz imports: @@ -251,11 +253,13 @@ tr: site_short_description: Sunucu açıklaması site_terms: Gizlilik Politikası site_title: Sunucu adı + status_page_url: Durum sayfası URL'si theme: Öntanımlı tema thumbnail: Sunucu küçük resmi timeline_preview: Genel zaman çizelgelerine yetkisiz erişime izin ver trendable_by_default: Ön incelemesiz öne çıkanlara izin ver trends: Öne çıkanları etkinleştir + trends_as_landing_page: Giriş sayfası olarak öne çıkanları kullan interactions: must_be_follower: Takipçim olmayan kişilerden gelen bildirimleri engelle must_be_following: Takip etmediğim kişilerden gelen bildirimleri engelle diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index afc8b2d9d8..be4d4b764c 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -97,6 +97,7 @@ uk: timeline_preview: Зареєстровані відвідувачі зможуть переглядати останні публічні дописи, доступні на сервері. trendable_by_default: Пропустити ручний огляд популярних матеріалів. Індивідуальні елементи все ще можна вилучити з популярних постфактум. trends: Популярні показують, які дописи, хештеґи та новини набувають популярності на вашому сервері. + trends_as_landing_page: Показувати популярні матеріали для зареєстрованих користувачів і відвідувачів замість опису цього сервера. Для активації потрібні тренди. form_challenge: current_password: Ви входите до безпечної зони imports: diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index fb2ca90fda..b5da24dd16 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -91,11 +91,13 @@ vi: site_short_description: Mô tả ngắn gọn để giúp nhận định máy chủ của bạn. Ai đang điều hành nó, nó là cho ai? site_terms: Sử dụng chính sách bảo mật của riêng bạn hoặc để trống để sử dụng mặc định. Có thể soạn bằng cú pháp Markdown. site_title: Cách mọi người có thể tham chiếu đến máy chủ của bạn ngoài tên miền của nó. + status_page_url: URL của trang nơi mọi người có thể xem trạng thái của máy chủ này khi ngừng hoạt động theme: Chủ đề mà khách truy cập đăng xuất và người mới nhìn thấy. thumbnail: 'Một hình ảnh tỉ lệ 2: 1 được hiển thị cùng với thông tin máy chủ của bạn.' timeline_preview: Khách truy cập đã đăng xuất sẽ có thể xem các tút công khai gần đây nhất trên máy chủ. trendable_by_default: Bỏ qua việc duyệt thủ công nội dung thịnh hành. Các mục riêng lẻ vẫn có thể bị xóa khỏi xu hướng sau này. trends: Hiển thị những tút, hashtag và tin tức đang được thảo luận nhiều trên máy chủ của bạn. + trends_as_landing_page: Hiển thị nội dung thịnh hành cho người dùng đã đăng xuất và khách truy cập thay vì mô tả về máy chủ này. Yêu cầu xu hướng được kích hoạt. form_challenge: current_password: Biểu mẫu này an toàn imports: @@ -251,11 +253,13 @@ vi: site_short_description: Mô tả máy chủ site_terms: Chính sách bảo mật site_title: Tên máy chủ + status_page_url: URL trang trạng thái theme: Chủ đề mặc định thumbnail: Hình thu nhỏ của máy chủ timeline_preview: Cho phép truy cập vào dòng thời gian công khai trendable_by_default: Cho phép thịnh hành mà không cần duyệt trước trends: Bật thịnh hành + trends_as_landing_page: Dùng trang thịnh hành làm trang chào mừng interactions: must_be_follower: Chặn thông báo từ những người không theo dõi bạn must_be_following: Chặn thông báo từ những người bạn không theo dõi diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 675b963fa8..d450fa08f7 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -351,6 +351,7 @@ sk: no_file: Nevybraný žiaden súbor export_domain_blocks: import: + existing_relationships_warning: Existujúce vzťahy nasledovania title: Nahraj zákazy domén new: title: Nahraj zákazy domén @@ -376,6 +377,7 @@ sk: policies: reject_media: Zamietni médiá reject_reports: Zamietni hlásenia + silence: Obmedzená suspend: Vylúč policy: Zásady reason: Verejné odôvodnenie diff --git a/config/locales/th.yml b/config/locales/th.yml index 0135574ff2..8081559db8 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -71,7 +71,7 @@ th: followers: ผู้ติดตาม follows: การติดตาม header: ส่วนหัว - inbox_url: URL กล่องขาเข้า + inbox_url: URL ของกล่องขาเข้า invite_request_text: เหตุผลสำหรับการเข้าร่วม invited_by: เชิญโดย ip: IP @@ -135,7 +135,7 @@ th: password_and_2fa: รหัสผ่านและ 2FA sensitive: บังคับให้ละเอียดอ่อน sensitized: ทำเครื่องหมายว่าละเอียดอ่อนแล้ว - shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน + shared_inbox_url: URL ของกล่องขาเข้าที่แบ่งปัน show: created_reports: รายงานที่สร้าง targeted_reports: รายงานโดยผู้อื่น @@ -543,11 +543,11 @@ th: enable: เปิดใช้งาน enable_hint: เมื่อเปิดใช้งาน เซิร์ฟเวอร์ของคุณจะบอกรับโพสต์สาธารณะทั้งหมดจากรีเลย์นี้ และจะเริ่มส่งโพสต์สาธารณะของเซิร์ฟเวอร์นี้ไปยังรีเลย์ enabled: เปิดใช้งานอยู่ - inbox_url: URL รีเลย์ + inbox_url: URL ของรีเลย์ pending: กำลังรอการอนุมัติของรีเลย์ save_and_enable: บันทึกแล้วเปิดใช้งาน - setup: ตั้งค่าการเชื่อมต่อแบบรีเลย์ - signatures_not_enabled: รีเลย์จะทำงานไม่ถูกต้องขณะที่มีการเปิดใช้งานโหมดปลอดภัยหรือโหมดการติดต่อกับภายนอกแบบจำกัด + setup: ตั้งค่าการเชื่อมต่อรีเลย์ + signatures_not_enabled: รีเลย์อาจทำงานไม่ถูกต้องขณะที่มีการเปิดใช้งานโหมดปลอดภัยหรือโหมดการติดต่อกับภายนอกแบบจำกัด status: สถานะ title: รีเลย์ report_notes: From bb89f0af8a54abe4ae790f11b6f7c03a00158cfc Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 6 Feb 2023 21:00:58 +0100 Subject: [PATCH 0340/1220] Fix ActivityPub::ProcessingWorker error on incoming malformed JSON-LD (#23416) --- app/services/activitypub/process_collection_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb index fffe301957..8218b8a12f 100644 --- a/app/services/activitypub/process_collection_service.rb +++ b/app/services/activitypub/process_collection_service.rb @@ -71,7 +71,7 @@ class ActivityPub::ProcessCollectionService < BaseService @account = ActivityPub::LinkedDataSignature.new(@json).verify_actor! @account = nil unless @account.is_a?(Account) @account - rescue JSON::LD::JsonLdError => e + rescue JSON::LD::JsonLdError, RDF::WriterError => e Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}" nil end From 523a86618f8a1825e620a2461e465db3b4e1dc57 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Tue, 7 Feb 2023 09:03:26 +0900 Subject: [PATCH 0341/1220] Fix account serializer crash if account doesn't have a user (#23428) --- app/serializers/rest/account_serializer.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index 62eac1fbde..f6fad9fe14 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -125,10 +125,10 @@ class REST::AccountSerializer < ActiveModel::Serializer end def roles - if object.suspended? + if object.suspended? || object.user.nil? [] else - [object.user.role].compact.filter { |role| role.highlighted? } + [object.user.role].compact.filter(&:highlighted?) end end From 9edefc779f8e5a5bdedd5a27f6fd815105dd3e92 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 7 Feb 2023 01:14:44 +0100 Subject: [PATCH 0342/1220] Fix `UserCleanupScheduler` crash when an unconfirmed account has a moderation note (#23318) * Fix `UserCleanupScheduler` crash when an unconfirmed account has a moderation note * Add tests --- .../scheduler/user_cleanup_scheduler.rb | 2 +- .../scheduler/user_cleanup_scheduler_spec.rb | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 spec/workers/scheduler/user_cleanup_scheduler_spec.rb diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb index 63f9ed78cc..45cfbc62e6 100644 --- a/app/workers/scheduler/user_cleanup_scheduler.rb +++ b/app/workers/scheduler/user_cleanup_scheduler.rb @@ -15,7 +15,7 @@ class Scheduler::UserCleanupScheduler def clean_unconfirmed_accounts! User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).reorder(nil).find_in_batches do |batch| # We have to do it separately because of missing database constraints - AccountModerationNote.where(account_id: batch.map(&:account_id)).delete_all + AccountModerationNote.where(target_account_id: batch.map(&:account_id)).delete_all Account.where(id: batch.map(&:account_id)).delete_all User.where(id: batch.map(&:id)).delete_all end diff --git a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb new file mode 100644 index 0000000000..da99f10f97 --- /dev/null +++ b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb @@ -0,0 +1,39 @@ +require 'rails_helper' + +describe Scheduler::UserCleanupScheduler do + subject { described_class.new } + + let!(:new_unconfirmed_user) { Fabricate(:user) } + let!(:old_unconfirmed_user) { Fabricate(:user) } + let!(:confirmed_user) { Fabricate(:user) } + let!(:moderation_note) { Fabricate(:account_moderation_note, account: Fabricate(:account), target_account: old_unconfirmed_user.account) } + + describe '#perform' do + before do + # Need to update the already-existing users because their initialization overrides confirmation_sent_at + new_unconfirmed_user.update!(confirmed_at: nil, confirmation_sent_at: Time.now.utc) + old_unconfirmed_user.update!(confirmed_at: nil, confirmation_sent_at: 1.week.ago) + confirmed_user.update!(confirmed_at: 1.day.ago) + end + + it 'deletes the old unconfirmed user' do + expect { subject.perform }.to change { User.exists?(old_unconfirmed_user.id) }.from(true).to(false) + end + + it "deletes the old unconfirmed user's account" do + expect { subject.perform }.to change { Account.exists?(old_unconfirmed_user.account_id) }.from(true).to(false) + end + + it 'does not delete the new unconfirmed user or their account' do + subject.perform + expect(User.exists?(new_unconfirmed_user.id)).to be true + expect(Account.exists?(new_unconfirmed_user.account_id)).to be true + end + + it 'does not delete the confirmed user or their account' do + subject.perform + expect(User.exists?(confirmed_user.id)).to be true + expect(Account.exists?(confirmed_user.account_id)).to be true + end + end +end From 6a71bb23c26577c3186a8730b663a37efd29ad1f Mon Sep 17 00:00:00 2001 From: mon1kasenpai Date: Tue, 7 Feb 2023 10:23:21 +1000 Subject: [PATCH 0343/1220] Update README.md (#23409) Fixed grammatical error in first paragraph --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f996cc269..1b5db92a84 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ [crowdin]: https://crowdin.com/project/mastodon [docker]: https://hub.docker.com/r/tootsuite/mastodon/ -Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub)! +Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!) Click below to **learn more** in a video: From ed570050c62115cfbcca8cfcd0de891b729f3e5c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 6 Feb 2023 21:44:36 -0500 Subject: [PATCH 0344/1220] Autofix Rails/EagerEvaluationLogMessage (#23429) * Autofix Rails/EagerEvaluationLogMessage * Update spec for debug block syntax --- app/lib/activitypub/activity/create.rb | 2 +- app/lib/link_details_extractor.rb | 2 +- app/models/concerns/remotable.rb | 4 ++-- app/services/activitypub/fetch_featured_collection_service.rb | 2 +- app/services/activitypub/fetch_remote_account_service.rb | 2 +- app/services/activitypub/fetch_remote_actor_service.rb | 2 +- app/services/activitypub/fetch_remote_key_service.rb | 2 +- app/services/activitypub/process_collection_service.rb | 4 ++-- app/services/activitypub/process_status_update_service.rb | 2 +- app/services/fetch_link_card_service.rb | 2 +- app/services/fetch_resource_service.rb | 2 +- app/services/keys/claim_service.rb | 2 +- app/services/keys/query_service.rb | 2 +- app/services/resolve_account_service.rb | 2 +- app/services/verify_link_service.rb | 2 +- app/workers/activitypub/processing_worker.rb | 2 +- spec/models/concerns/remotable_spec.rb | 4 +++- 17 files changed, 21 insertions(+), 19 deletions(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index b15e66ca29..cfad62a6bf 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -285,7 +285,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity media_attachments rescue Addressable::URI::InvalidURIError => e - Rails.logger.debug "Invalid URL in attachment: #{e}" + Rails.logger.debug { "Invalid URL in attachment: #{e}" } media_attachments end diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index b0c4e4f425..2e0672abe1 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -248,7 +248,7 @@ class LinkDetailsExtractor structured_data rescue Oj::ParseError, EncodingError - Rails.logger.debug("Invalid JSON-LD in #{@original_url}") + Rails.logger.debug { "Invalid JSON-LD in #{@original_url}" } next end.first end diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb index ffe8a7565c..cb8f46e688 100644 --- a/app/models/concerns/remotable.rb +++ b/app/models/concerns/remotable.rb @@ -27,11 +27,11 @@ module Remotable public_send("#{attachment_name}=", ResponseWithLimit.new(response, limit)) end rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError => e - Rails.logger.debug "Error fetching remote #{attachment_name}: #{e}" + Rails.logger.debug { "Error fetching remote #{attachment_name}: #{e}" } public_send("#{attachment_name}=", nil) if public_send("#{attachment_name}_file_name").present? raise e unless suppress_errors rescue Paperclip::Errors::NotIdentifiedByImageMagickError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, Paperclip::Error, Mastodon::DimensionsValidationError, Mastodon::StreamValidationError => e - Rails.logger.debug "Error fetching remote #{attachment_name}: #{e}" + Rails.logger.debug { "Error fetching remote #{attachment_name}: #{e}" } public_send("#{attachment_name}=", nil) if public_send("#{attachment_name}_file_name").present? end diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb index a746ef4d63..1208820df2 100644 --- a/app/services/activitypub/fetch_featured_collection_service.rb +++ b/app/services/activitypub/fetch_featured_collection_service.rb @@ -53,7 +53,7 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService status.id rescue ActiveRecord::RecordInvalid => e - Rails.logger.debug "Invalid pinned status #{uri}: #{e.message}" + Rails.logger.debug { "Invalid pinned status #{uri}: #{e.message}" } nil end diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb index 7aba8269ea..567dd8a14a 100644 --- a/app/services/activitypub/fetch_remote_account_service.rb +++ b/app/services/activitypub/fetch_remote_account_service.rb @@ -6,7 +6,7 @@ class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorServ actor = super return actor if actor.nil? || actor.is_a?(Account) - Rails.logger.debug "Fetching account #{uri} failed: Expected Account, got #{actor.class.name}" + Rails.logger.debug { "Fetching account #{uri} failed: Expected Account, got #{actor.class.name}" } raise Error, "Expected Account, got #{actor.class.name}" unless suppress_errors end end diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index 4f60ea5e8e..8908d21e2e 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -38,7 +38,7 @@ class ActivityPub::FetchRemoteActorService < BaseService ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key, request_id: request_id) rescue Error => e - Rails.logger.debug "Fetching actor #{uri} failed: #{e.message}" + Rails.logger.debug { "Fetching actor #{uri} failed: #{e.message}" } raise unless suppress_errors end diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb index 32e82b47a5..8eb97c1e66 100644 --- a/app/services/activitypub/fetch_remote_key_service.rb +++ b/app/services/activitypub/fetch_remote_key_service.rb @@ -38,7 +38,7 @@ class ActivityPub::FetchRemoteKeyService < BaseService find_actor(owner_uri, @owner, suppress_errors) rescue Error => e - Rails.logger.debug "Fetching key #{uri} failed: #{e.message}" + Rails.logger.debug { "Fetching key #{uri} failed: #{e.message}" } raise unless suppress_errors end diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb index 8218b8a12f..52f48bd49d 100644 --- a/app/services/activitypub/process_collection_service.rb +++ b/app/services/activitypub/process_collection_service.rb @@ -11,7 +11,7 @@ class ActivityPub::ProcessCollectionService < BaseService begin @json = compact(@json) if @json['signature'].is_a?(Hash) rescue JSON::LD::JsonLdError => e - Rails.logger.debug "Error when compacting JSON-LD document for #{value_or_id(@json['actor'])}: #{e.message}" + Rails.logger.debug { "Error when compacting JSON-LD document for #{value_or_id(@json['actor'])}: #{e.message}" } @json = original_json.without('signature') end @@ -72,7 +72,7 @@ class ActivityPub::ProcessCollectionService < BaseService @account = nil unless @account.is_a?(Account) @account rescue JSON::LD::JsonLdError, RDF::WriterError => e - Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}" + Rails.logger.debug { "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}" } nil end end diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index 11b38ab92b..1dc393e28e 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -94,7 +94,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService @next_media_attachments << media_attachment rescue Addressable::URI::InvalidURIError => e - Rails.logger.debug "Invalid URL in attachment: #{e}" + Rails.logger.debug { "Invalid URL in attachment: #{e}" } end end diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index e5b5b730ec..4d55aa5e23 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -30,7 +30,7 @@ class FetchLinkCardService < BaseService attach_card if @card&.persisted? rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e - Rails.logger.debug "Error fetching link #{@original_url}: #{e}" + Rails.logger.debug { "Error fetching link #{@original_url}: #{e}" } nil end diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index 73204e55db..4470fca010 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -12,7 +12,7 @@ class FetchResourceService < BaseService process(url) rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e - Rails.logger.debug "Error fetching resource #{@url}: #{e}" + Rails.logger.debug { "Error fetching resource #{@url}: #{e}" } nil end diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb index ae9e24a24f..0451c3cb1d 100644 --- a/app/services/keys/claim_service.rb +++ b/app/services/keys/claim_service.rb @@ -58,7 +58,7 @@ class Keys::ClaimService < BaseService @result = Result.new(@target_account, @device_id, key_id: json['id'], key: json['publicKeyBase64'], signature: json.dig('signature', 'signatureValue')) rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error => e - Rails.logger.debug "Claiming one-time key for #{@target_account.acct}:#{@device_id} failed: #{e}" + Rails.logger.debug { "Claiming one-time key for #{@target_account.acct}:#{@device_id} failed: #{e}" } nil end diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb index ac3388bdc0..404854c9fc 100644 --- a/app/services/keys/query_service.rb +++ b/app/services/keys/query_service.rb @@ -73,7 +73,7 @@ class Keys::QueryService < BaseService Device.new(device_id: device['id'], name: device['name'], identity_key: device.dig('identityKey', 'publicKeyBase64'), fingerprint_key: device.dig('fingerprintKey', 'publicKeyBase64'), claim_url: device['claim']) end rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error => e - Rails.logger.debug "Querying devices for #{@account.acct} failed: #{e}" + Rails.logger.debug { "Querying devices for #{@account.acct} failed: #{e}" } nil end end diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index d8b81a7b9d..1ba372cd6d 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -54,7 +54,7 @@ class ResolveAccountService < BaseService fetch_account! rescue Webfinger::Error => e - Rails.logger.debug "Webfinger query for #{@uri} failed: #{e}" + Rails.logger.debug { "Webfinger query for #{@uri} failed: #{e}" } raise unless @options[:suppress_errors] end diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb index 9708cdd736..f83a664d41 100644 --- a/app/services/verify_link_service.rb +++ b/app/services/verify_link_service.rb @@ -11,7 +11,7 @@ class VerifyLinkService < BaseService field.mark_verified! rescue OpenSSL::SSL::SSLError, HTTP::Error, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, IPAddr::AddressFamilyError => e - Rails.logger.debug "Error fetching link #{@url}: #{e}" + Rails.logger.debug { "Error fetching link #{@url}: #{e}" } nil end diff --git a/app/workers/activitypub/processing_worker.rb b/app/workers/activitypub/processing_worker.rb index 5e36fab51e..1bb94b7f26 100644 --- a/app/workers/activitypub/processing_worker.rb +++ b/app/workers/activitypub/processing_worker.rb @@ -15,6 +15,6 @@ class ActivityPub::ProcessingWorker ActivityPub::ProcessCollectionService.new.call(body, actor, override_timestamps: true, delivered_to_account_id: delivered_to_account_id, delivery: true) rescue ActiveRecord::RecordInvalid => e - Rails.logger.debug "Error processing incoming ActivityPub object: #{e}" + Rails.logger.debug { "Error processing incoming ActivityPub object: #{e}" } end end diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb index 9cc849dedb..ca2d65d2d1 100644 --- a/spec/models/concerns/remotable_spec.rb +++ b/spec/models/concerns/remotable_spec.rb @@ -194,7 +194,9 @@ RSpec.describe Remotable do let(:error_class) { error_class } it 'calls Rails.logger.debug' do - expect(Rails.logger).to receive(:debug).with(/^Error fetching remote #{hoge}: /) + expect(Rails.logger).to receive(:debug) do |&block| + expect(block.call).to match(/^Error fetching remote #{hoge}: /) + end foo.hoge_remote_url = url end end From 4f14957723560919f7885cc6521923b721aee1d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:38:30 +0900 Subject: [PATCH 0345/1220] Bump faker from 3.1.0 to 3.1.1 (#23425) Bumps [faker](https://github.com/faker-ruby/faker) from 3.1.0 to 3.1.1. - [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.1.0...v3.1.1) --- updated-dependencies: - dependency-name: faker dependency-type: direct:development update-type: version-update:semver-patch ... 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 3ecd7eb0d8..30a6b7963d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -229,7 +229,7 @@ GEM tzinfo excon (0.95.0) fabrication (2.30.0) - faker (3.1.0) + faker (3.1.1) i18n (>= 1.8.11, < 2) faraday (1.9.3) faraday-em_http (~> 1.0) From fb7919e4ec28cc39f75e940900d79462b0061769 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:39:02 +0900 Subject: [PATCH 0346/1220] Bump webpacker from 5.4.3 to 5.4.4 (#23424) Bumps [webpacker](https://github.com/rails/webpacker) from 5.4.3 to 5.4.4. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v5.4.3...v5.4.4) --- updated-dependencies: - dependency-name: webpacker dependency-type: direct:production update-type: version-update:semver-patch ... 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 30a6b7963d..59063de4ff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -509,7 +509,7 @@ GEM httpclient json-jwt (>= 1.11.0) rack (>= 2.1.0) - rack-proxy (0.7.0) + rack-proxy (0.7.6) rack rack-test (2.0.2) rack (>= 1.3) @@ -742,7 +742,7 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (5.4.3) + webpacker (5.4.4) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) From ea4ff7e786e33bffb54b48155d815005e65d614b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:39:37 +0900 Subject: [PATCH 0347/1220] Bump doorkeeper from 5.6.3 to 5.6.4 (#23422) Bumps [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) from 5.6.3 to 5.6.4. - [Release notes](https://github.com/doorkeeper-gem/doorkeeper/releases) - [Changelog](https://github.com/doorkeeper-gem/doorkeeper/blob/main/CHANGELOG.md) - [Commits](https://github.com/doorkeeper-gem/doorkeeper/compare/v5.6.3...v5.6.4) --- updated-dependencies: - dependency-name: doorkeeper dependency-type: direct:production update-type: version-update:semver-patch ... 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 59063de4ff..abc91ae639 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,7 +207,7 @@ GEM docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.6.3) + doorkeeper (5.6.4) railties (>= 5) dotenv (2.8.1) dotenv-rails (2.8.1) From 1e2f839543ef5eccf10a38eed9647f35795fbc00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:40:15 +0900 Subject: [PATCH 0348/1220] Bump immutable from 4.2.2 to 4.2.4 (#23419) Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.2.2 to 4.2.4. - [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.2...v4.2.4) --- updated-dependencies: - dependency-name: immutable dependency-type: direct:production update-type: version-update:semver-patch ... 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 30fab3b48b..de82a1d718 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "glob": "^8.1.0", "history": "^4.10.1", "http-link-header": "^1.1.0", - "immutable": "^4.2.2", + "immutable": "^4.2.4", "imports-loader": "^1.2.0", "intl": "^1.2.5", "intl-messageformat": "^2.2.0", diff --git a/yarn.lock b/yarn.lock index 0d30d9f803..aeb88c253c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5739,10 +5739,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.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" - integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== +immutable@^4.0.0, immutable@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a" + integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w== import-cwd@^2.0.0: version "2.1.0" From e559d1e672f75d151b736dc451b7ca84a7598118 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:40:36 +0900 Subject: [PATCH 0349/1220] Bump rubocop-performance from 1.15.2 to 1.16.0 (#23418) Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.15.2 to 1.16.0. - [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.2...v1.16.0) --- updated-dependencies: - dependency-name: rubocop-performance dependency-type: direct:development update-type: version-update:semver-minor ... 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 abc91ae639..3bd2d591df 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -609,7 +609,7 @@ GEM parser (>= 3.1.1.0) rubocop-capybara (2.17.0) rubocop (~> 1.41) - rubocop-performance (1.15.2) + rubocop-performance (1.16.0) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.17.4) From f31d9a590d0b07e60d92f5dd404ab628a4a2ff70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 00:41:07 +0900 Subject: [PATCH 0350/1220] Bump sass from 1.57.1 to 1.58.0 (#23421) Bumps [sass](https://github.com/sass/dart-sass) from 1.57.1 to 1.58.0. - [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.1...1.58.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... 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 de82a1d718..ac5cd552f8 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^4.1.2", - "sass": "^1.57.1", + "sass": "^1.58.0", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index aeb88c253c..34e7420138 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9696,10 +9696,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -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== +sass@^1.58.0: + version "1.58.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.0.tgz#ee8aea3ad5ea5c485c26b3096e2df6087d0bb1cc" + integrity sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From cec005068f25c6487331a8437e69f29d5bef3d60 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 18:58:18 -0500 Subject: [PATCH 0351/1220] Apply Rubocop Performance/RedundantBlockCall (#23440) --- app/models/trends/history.rb | 2 +- app/workers/import/relationship_worker.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/trends/history.rb b/app/models/trends/history.rb index 74723e35c9..03d62103fd 100644 --- a/app/models/trends/history.rb +++ b/app/models/trends/history.rb @@ -88,7 +88,7 @@ class Trends::History def each(&block) if block_given? - (0...7).map { |i| block.call(get(i.days.ago)) } + (0...7).map { |i| yield(get(i.days.ago)) } else to_enum(:each) end diff --git a/app/workers/import/relationship_worker.rb b/app/workers/import/relationship_worker.rb index 6791b15c30..c2728c1961 100644 --- a/app/workers/import/relationship_worker.rb +++ b/app/workers/import/relationship_worker.rb @@ -49,7 +49,7 @@ class Import::RelationshipWorker .with_error_handler { |error, handle| error.is_a?(HTTP::Error) || error.is_a?(OpenSSL::SSL::SSLError) ? handle.call(error) : raise(error) } .run else - block.call + yield end end end From c92e033cdd3e1f5c20a8b297a2e72d26f8ddd26f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 19:10:25 -0500 Subject: [PATCH 0352/1220] Apply Rubocop Performance/BindCall (#23437) --- lib/active_record/database_tasks_extensions.rb | 2 +- lib/rails/engine_extensions.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/active_record/database_tasks_extensions.rb b/lib/active_record/database_tasks_extensions.rb index e274f476df..d52186113c 100644 --- a/lib/active_record/database_tasks_extensions.rb +++ b/lib/active_record/database_tasks_extensions.rb @@ -11,7 +11,7 @@ module ActiveRecord ActiveRecord::Base.establish_connection(db_config) Mastodon::Snowflake.define_timestamp_id - original_load_schema.bind(self).call(db_config, *args) + original_load_schema.bind_call(self, db_config, *args) Mastodon::Snowflake.ensure_id_sequences_exist end diff --git a/lib/rails/engine_extensions.rb b/lib/rails/engine_extensions.rb index 4848b15f25..4e3767db9e 100644 --- a/lib/rails/engine_extensions.rb +++ b/lib/rails/engine_extensions.rb @@ -2,7 +2,7 @@ module Rails module EngineExtensions # Rewrite task loading code to filter digitalocean.rake task def run_tasks_blocks(app) - Railtie.instance_method(:run_tasks_blocks).bind(self).call(app) + Railtie.instance_method(:run_tasks_blocks).bind_call(self, app) paths["lib/tasks"].existent.reject { |ext| ext.end_with?('digitalocean.rake') }.sort.each { |ext| load(ext) } end end From ef8988aef2b616305c7f3038dc555d22ff1125fd Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 20:06:48 -0500 Subject: [PATCH 0353/1220] Apply Rubocop Performance/DoubleStartEndWith (#23442) --- app/lib/delivery_failure_tracker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb index 66c1fd8c00..c907166329 100644 --- a/app/lib/delivery_failure_tracker.rb +++ b/app/lib/delivery_failure_tracker.rb @@ -6,7 +6,7 @@ class DeliveryFailureTracker FAILURE_DAYS_THRESHOLD = 7 def initialize(url_or_host) - @host = url_or_host.start_with?('https://') || url_or_host.start_with?('http://') ? Addressable::URI.parse(url_or_host).normalized_host : url_or_host + @host = url_or_host.start_with?('https://', 'http://') ? Addressable::URI.parse(url_or_host).normalized_host : url_or_host end def track_failure! From 2e652aa81c22c802e4571e6cfa443319cb862614 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 20:25:20 -0500 Subject: [PATCH 0354/1220] Apply Rubocop Performance/RedundantSplitRegexpArgument (#23443) * Apply Rubocop Performance/RedundantSplitRegexpArgument * Update app/controllers/concerns/signature_verification.rb --- app/controllers/concerns/signature_verification.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index a9950d21fb..9c04ab4ca6 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -227,7 +227,7 @@ module SignatureVerification end def to_header_name(name) - name.split(/-/).map(&:capitalize).join('-') + name.split('-').map(&:capitalize).join('-') end def missing_required_signature_parameters? From 203739dd3adbfccf96c237bd8f4cf9cefc67ff94 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 20:36:20 -0500 Subject: [PATCH 0355/1220] Apply Rubocop Performance/StringIdentifierArgument (#23444) --- app/lib/scope_transformer.rb | 2 +- lib/mastodon/statuses_cli.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/lib/scope_transformer.rb b/app/lib/scope_transformer.rb index fdfc6cf131..adcb711f8a 100644 --- a/app/lib/scope_transformer.rb +++ b/app/lib/scope_transformer.rb @@ -28,7 +28,7 @@ class ScopeTransformer < Parslet::Transform def merge!(other_scope) raise ArgumentError unless other_scope.namespace == namespace && other_scope.term == term - @access.concat(other_scope.instance_variable_get('@access')) + @access.concat(other_scope.instance_variable_get(:@access)) @access.uniq! @access.sort! diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb index d4c2e6cf2a..baab83e297 100644 --- a/lib/mastodon/statuses_cli.rb +++ b/lib/mastodon/statuses_cli.rb @@ -93,7 +93,7 @@ module Mastodon c.table_name = 'statuses_to_be_deleted' end - Object.const_set('StatusToBeDeleted', klass) + Object.const_set(:StatusToBeDeleted, klass) scope = StatusToBeDeleted processed = 0 @@ -175,7 +175,7 @@ module Mastodon c.table_name = 'conversations_to_be_deleted' end - Object.const_set('ConversationsToBeDeleted', klass) + Object.const_set(:ConversationsToBeDeleted, klass) scope = ConversationsToBeDeleted processed = 0 From d3f59f52c33e67e3beec2a6b65cccc86352a1468 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 7 Feb 2023 21:21:21 -0500 Subject: [PATCH 0356/1220] Apply Rubocop Performance/StringReplacement (#23445) --- app/helpers/email_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/email_helper.rb b/app/helpers/email_helper.rb index 360783c628..0800601f98 100644 --- a/app/helpers/email_helper.rb +++ b/app/helpers/email_helper.rb @@ -7,7 +7,7 @@ module EmailHelper def email_to_canonical_email(str) username, domain = str.downcase.split('@', 2) - username, = username.gsub('.', '').split('+', 2) + username, = username.delete('.').split('+', 2) "#{username}@#{domain}" end From 1487fcde93fece43ea786faade93d3dfaa393e67 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 01:06:20 -0500 Subject: [PATCH 0357/1220] Apply Rubocop Style/ExpandPathArguments (#23450) --- config.ru | 2 +- spec/rails_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.ru b/config.ru index 3476455ef3..d7295e4767 100644 --- a/config.ru +++ b/config.ru @@ -1,5 +1,5 @@ # frozen_string_literal: true # This file is used by Rack-based servers to start the application. -require ::File.expand_path('../config/environment', __FILE__) +require ::File.expand_path('config/environment', __dir__) run Rails.application diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 02827a3886..c197bc0075 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,5 +1,5 @@ ENV['RAILS_ENV'] ||= 'test' -require File.expand_path('../../config/environment', __FILE__) +require File.expand_path('../config/environment', __dir__) abort("The Rails environment is running in production mode!") if Rails.env.production? From 8c1b65c7ddb9d49cb33c15c9a92dbfefebe868c6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 01:06:50 -0500 Subject: [PATCH 0358/1220] Apply Rubocop Style/RedundantAssignment (#23452) --- app/models/concerns/omniauthable.rb | 3 +-- app/models/setting.rb | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb index feac0a1f5e..7d54e9d6de 100644 --- a/app/models/concerns/omniauthable.rb +++ b/app/models/concerns/omniauthable.rb @@ -97,8 +97,7 @@ module Omniauthable def ensure_valid_username(starting_username) starting_username = starting_username.split('@')[0] temp_username = starting_username.gsub(/[^a-z0-9_]+/i, '') - validated_username = temp_username.truncate(30, omission: '') - validated_username + temp_username.truncate(30, omission: '') end end end diff --git a/app/models/setting.rb b/app/models/setting.rb index 4bcaa060ff..c6558d6924 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -23,7 +23,7 @@ class Setting < RailsSettings::Base def [](key) return super(key) unless rails_initialized? - val = Rails.cache.fetch(cache_key(key, nil)) do + Rails.cache.fetch(cache_key(key, nil)) do db_val = object(key) if db_val @@ -35,7 +35,6 @@ class Setting < RailsSettings::Base default_settings[key] end end - val end def all_as_records From f68bb52556fe90d7adad8db9ba8b801a22281f30 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 01:07:36 -0500 Subject: [PATCH 0359/1220] Apply Rubocop Style/NegatedIfElseCondition (#23451) --- app/controllers/api/v1/streaming_controller.rb | 6 +++--- app/models/user.rb | 2 +- app/services/fetch_oembed_service.rb | 2 +- app/services/verify_link_service.rb | 2 +- lib/tasks/mastodon.rake | 12 ++++++------ 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/v1/streaming_controller.rb b/app/controllers/api/v1/streaming_controller.rb index 7cd60615ab..b23a60170c 100644 --- a/app/controllers/api/v1/streaming_controller.rb +++ b/app/controllers/api/v1/streaming_controller.rb @@ -2,10 +2,10 @@ class Api::V1::StreamingController < Api::BaseController def index - if Rails.configuration.x.streaming_api_base_url != request.host - redirect_to streaming_api_url, status: 301 - else + if Rails.configuration.x.streaming_api_base_url == request.host not_found + else + redirect_to streaming_api_url, status: 301 end end diff --git a/app/models/user.rb b/app/models/user.rb index d40044da38..c767f89842 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -265,7 +265,7 @@ class User < ApplicationRecord end def inactive_message - !approved? ? :pending : super + approved? ? super : :pending end def approve! diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb index 7d0879c799..9851ac0982 100644 --- a/app/services/fetch_oembed_service.rb +++ b/app/services/fetch_oembed_service.rb @@ -82,7 +82,7 @@ class FetchOEmbedService return if @endpoint_url.blank? body = Request.new(:get, @endpoint_url).perform do |res| - res.code != 200 ? nil : res.body_with_limit + res.code == 200 ? res.body_with_limit : nil end validate(parse_for_format(body)) if body.present? diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb index f83a664d41..707aeb4e08 100644 --- a/app/services/verify_link_service.rb +++ b/app/services/verify_link_service.rb @@ -19,7 +19,7 @@ class VerifyLinkService < BaseService def perform_request! @body = Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res| - res.code != 200 ? nil : res.body_with_limit + res.code == 200 ? res.body_with_limit : nil end end diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 876383d7fc..1184e52739 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -463,10 +463,10 @@ namespace :mastodon do prompt.say 'Running `RAILS_ENV=production rails db:setup` ...' prompt.say "\n\n" - if !system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production', 'SAFETY_ASSURED' => '1' }), 'rails db:setup') - prompt.error 'That failed! Perhaps your configuration is not right' - else + if system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production', 'SAFETY_ASSURED' => '1' }), 'rails db:setup') prompt.ok 'Done!' + else + prompt.error 'That failed! Perhaps your configuration is not right' end end @@ -479,10 +479,10 @@ namespace :mastodon do prompt.say 'Running `RAILS_ENV=production rails assets:precompile` ...' prompt.say "\n\n" - if !system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production' }), 'rails assets:precompile') - prompt.error 'That failed! Maybe you need swap space?' - else + if system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production' }), 'rails assets:precompile') prompt.say 'Done!' + else + prompt.error 'That failed! Maybe you need swap space?' end end end From 26ac2447b4efc4689295188c5d1cd3d444f28b15 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 01:08:39 -0500 Subject: [PATCH 0360/1220] Apply Rubocop Style/EmptyElse (#23449) --- app/serializers/rest/instance_serializer.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index fbb2fea0dc..e280f8eb63 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -97,8 +97,6 @@ class REST::InstanceSerializer < ActiveModel::Serializer def registrations_message if Setting.closed_registrations_message.present? markdown.render(Setting.closed_registrations_message) - else - nil end end From 0d1f192c54ab65a4a1c938553e5d87be65a966e8 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 04:36:23 -0500 Subject: [PATCH 0361/1220] Apply Rubocop Performance/BlockGivenWithExplicitBlock (#23441) * Apply Rubocop Performance/BlockGivenWithExplicitBlock * Unprefix used block parameter --- app/helpers/application_helper.rb | 4 ++-- app/helpers/jsonld_helper.rb | 4 ++-- app/lib/extractor.rb | 2 +- app/models/trends/history.rb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4c20f1e140..b2687eddd9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -67,7 +67,7 @@ module ApplicationHelper def link_to_login(name = nil, html_options = nil, &block) target = new_user_session_path - html_options = name if block_given? + html_options = name if block if omniauth_only? && Devise.mappings[:user].omniauthable? && User.omniauth_providers.size == 1 target = omniauth_authorize_path(:user, User.omniauth_providers[0]) @@ -75,7 +75,7 @@ module ApplicationHelper html_options[:method] = :post end - if block_given? + if block link_to(target, html_options, &block) else link_to(name, target, html_options) diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index 102e4b1328..e5787fd471 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -213,7 +213,7 @@ module JsonLdHelper end end - def load_jsonld_context(url, _options = {}, &_block) + def load_jsonld_context(url, _options = {}, &block) json = Rails.cache.fetch("jsonld:context:#{url}", expires_in: 30.days, raw: true) do request = Request.new(:get, url) request.add_headers('Accept' => 'application/ld+json') @@ -226,6 +226,6 @@ module JsonLdHelper doc = JSON::LD::API::RemoteDocument.new(json, documentUrl: url) - block_given? ? yield(doc) : doc + block ? yield(doc) : doc end end diff --git a/app/lib/extractor.rb b/app/lib/extractor.rb index aea60dae5b..ead4cdddde 100644 --- a/app/lib/extractor.rb +++ b/app/lib/extractor.rb @@ -18,7 +18,7 @@ module Extractor return [] if entities.empty? entities = remove_overlapping_entities(entities) - entities.each(&block) if block_given? + entities.each(&block) if block entities end diff --git a/app/models/trends/history.rb b/app/models/trends/history.rb index 03d62103fd..83532e7bc8 100644 --- a/app/models/trends/history.rb +++ b/app/models/trends/history.rb @@ -87,7 +87,7 @@ class Trends::History end def each(&block) - if block_given? + if block (0...7).map { |i| yield(get(i.days.ago)) } else to_enum(:each) From 11557d1c5a4ecb44cf602eabf0c9bd2882514b3a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 04:38:07 -0500 Subject: [PATCH 0362/1220] Apply Rubocop Rails/RootPublicPath (#23447) --- lib/mastodon/premailer_webpack_strategy.rb | 2 +- lib/tasks/assets.rake | 2 +- lib/tasks/branding.rake | 4 ++-- lib/tasks/emojis.rake | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb index 56ef09c1a8..4356b7285a 100644 --- a/lib/mastodon/premailer_webpack_strategy.rb +++ b/lib/mastodon/premailer_webpack_strategy.rb @@ -13,7 +13,7 @@ module PremailerWebpackStrategy HTTP.get(url).to_s else url = url[1..-1] if url.start_with?('/') - File.read(Rails.root.join('public', url)) + File.read(Rails.public_path.join(url)) end css.gsub(/url\(\//, "url(#{asset_host}/") diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index b642510a16..1d2270572e 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -8,7 +8,7 @@ end namespace :assets do desc 'Generate static pages' task generate_static_pages: :environment do - render_static_page 'errors/500', layout: 'error', dest: Rails.root.join('public', 'assets', '500.html') + render_static_page 'errors/500', layout: 'error', dest: Rails.public_path.join('assets', '500.html') end end diff --git a/lib/tasks/branding.rake b/lib/tasks/branding.rake index 2eec7c9e14..d1c1c9dede 100644 --- a/lib/tasks/branding.rake +++ b/lib/tasks/branding.rake @@ -54,7 +54,7 @@ namespace :branding do rsvg_convert.run(size: size, input: favicon_source, output: output_path) end - convert.run(input: favicons, output: Rails.root.join('public', 'favicon.ico')) + convert.run(input: favicons, output: Rails.public_path.join('favicon.ico')) apple_icon_sizes.each do |size| rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("apple-touch-icon-#{size}x#{size}.png")) @@ -69,7 +69,7 @@ namespace :branding do task generate_app_badge: :environment do rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '--stylesheet :stylesheet -w :size -h :size --keep-aspect-ratio :input -o :output') badge_source = Rails.root.join('app', 'javascript', 'images', 'logo-symbol-icon.svg') - output_dest = Rails.root.join('public') + output_dest = Rails.public_path stylesheet = Rails.root.join('lib', 'assets', 'wordmark.light.css') rsvg_convert.run(stylesheet: stylesheet, input: badge_source, size: 192, output: output_dest.join('badge.png')) diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake index 473aee9cc4..02d772b488 100644 --- a/lib/tasks/emojis.rake +++ b/lib/tasks/emojis.rake @@ -1,8 +1,8 @@ # frozen_string_literal: true def gen_border(codepoint, color) - input = Rails.root.join('public', 'emoji', "#{codepoint}.svg") - dest = Rails.root.join('public', 'emoji', "#{codepoint}_border.svg") + input = Rails.public_path.join('emoji', "#{codepoint}.svg") + dest = Rails.public_path.join('emoji', "#{codepoint}_border.svg") doc = File.open(input) { |f| Nokogiri::XML(f) } svg = doc.at_css('svg') if svg.key?('viewBox') @@ -69,7 +69,7 @@ namespace :emojis do end end - existence_maps = grouped_codes.map { |c| c.index_with { |cc| File.exist?(Rails.root.join('public', 'emoji', "#{codepoints_to_filename(cc)}.svg")) } } + existence_maps = grouped_codes.map { |c| c.index_with { |cc| File.exist?(Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg")) } } map = {} existence_maps.each do |group| From 0592937264d7a8cb4f1ea56be403f48e0801b2b7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Feb 2023 04:39:57 -0500 Subject: [PATCH 0363/1220] Apply Rubocop Rails/WhereNot (#23448) * Apply Rubocop Rails/WhereNot * Update spec for where.not --- app/lib/vacuum/access_tokens_vacuum.rb | 4 ++-- app/models/session_activation.rb | 2 +- spec/models/session_activation_spec.rb | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/lib/vacuum/access_tokens_vacuum.rb b/app/lib/vacuum/access_tokens_vacuum.rb index 4f3878027a..7b91f74a51 100644 --- a/app/lib/vacuum/access_tokens_vacuum.rb +++ b/app/lib/vacuum/access_tokens_vacuum.rb @@ -9,10 +9,10 @@ class Vacuum::AccessTokensVacuum private def vacuum_revoked_access_tokens! - Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all + Doorkeeper::AccessToken.where.not(revoked_at: nil).where('revoked_at < NOW()').delete_all end def vacuum_revoked_access_grants! - Doorkeeper::AccessGrant.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all + Doorkeeper::AccessGrant.where.not(revoked_at: nil).where('revoked_at < NOW()').delete_all end end diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb index 3a59bad939..0b7fa6fe49 100644 --- a/app/models/session_activation.rb +++ b/app/models/session_activation.rb @@ -59,7 +59,7 @@ class SessionActivation < ApplicationRecord end def exclusive(id) - where('session_id != ?', id).destroy_all + where.not(session_id: id).destroy_all end end diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb index 450dc1399f..8db06c6227 100644 --- a/spec/models/session_activation_spec.rb +++ b/spec/models/session_activation_spec.rb @@ -118,8 +118,8 @@ RSpec.describe SessionActivation, type: :model do let(:id) { '1' } it 'calls where.destroy_all' do - expect(described_class).to receive_message_chain(:where, :destroy_all) - .with('session_id != ?', id).with(no_args) + expect(described_class).to receive_message_chain(:where, :not, :destroy_all) + .with(session_id: id).with(no_args) described_class.exclusive(id) end From 08001e387be3047ae5b4d01d4a253b0e9f2906ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 10:54:51 +0100 Subject: [PATCH 0364/1220] Bump axios from 1.2.6 to 1.3.2 (#23420) Bumps [axios](https://github.com/axios/axios) from 1.2.6 to 1.3.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.6...v1.3.2) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production update-type: version-update:semver-minor ... 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 ac5cd552f8..96f1e7b0e6 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.6", + "axios": "^1.3.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 34e7420138..cd14ee89a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2540,10 +2540,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.6.tgz#eacb6d065baa11bad5959e7ffa0cb6745c65f392" - integrity sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ== +axios@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.2.tgz#7ac517f0fa3ec46e0e636223fd973713a09c72b3" + integrity sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" From 832595d1e79f9c185efd6d18741f295745ee536a Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 8 Feb 2023 17:57:25 +0100 Subject: [PATCH 0365/1220] Remove posts count and last posts from ActivityPub representation of hashtag collections (#23460) --- app/controllers/tags_controller.rb | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 65017acba3..750e15fa31 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -11,7 +11,7 @@ class TagsController < ApplicationController before_action :authenticate_user!, if: :whitelist_mode? before_action :set_local before_action :set_tag - before_action :set_statuses + before_action :set_statuses, if: -> { request.format == :rss } before_action :set_instance_presenter skip_before_action :require_functional!, unless: :whitelist_mode? @@ -44,12 +44,7 @@ class TagsController < ApplicationController end def set_statuses - case request.format&.to_sym - when :json - @statuses = cache_collection(TagFeed.new(@tag, current_account, local: @local).get(PAGE_SIZE, params[:max_id], params[:since_id], params[:min_id]), Status) - when :rss - @statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status) - end + @statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status) end def set_instance_presenter @@ -64,8 +59,6 @@ class TagsController < ApplicationController ActivityPub::CollectionPresenter.new( id: tag_url(@tag), type: :ordered, - size: @tag.statuses.count, - items: @statuses.map { |status| ActivityPub::TagManager.instance.uri_for(status) } ) end end From 4cb76475167750ef03b747aded962db7f1702f88 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 9 Feb 2023 11:20:59 +0100 Subject: [PATCH 0366/1220] Add database pool configuration over `DB_POOL` to streaming API (#23470) Add connection timeout of 15s --- streaming/index.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index e207411f23..1fbbdea3b5 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -127,7 +127,6 @@ const startWorker = async (workerId) => { database: process.env.DB_NAME || 'mastodon_development', host: process.env.DB_HOST || pg.defaults.host, port: process.env.DB_PORT || pg.defaults.port, - max: 10, }, production: { @@ -136,20 +135,19 @@ const startWorker = async (workerId) => { database: process.env.DB_NAME || 'mastodon_production', host: process.env.DB_HOST || 'localhost', port: process.env.DB_PORT || 5432, - max: 10, }, }; - if (!!process.env.DB_SSLMODE && process.env.DB_SSLMODE !== 'disable') { - pgConfigs.development.ssl = true; - pgConfigs.production.ssl = true; - } - const app = express(); app.set('trust proxy', process.env.TRUSTED_PROXY_IP ? process.env.TRUSTED_PROXY_IP.split(/(?:\s*,\s*|\s+)/) : 'loopback,uniquelocal'); - const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL))); + const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL), { + max: process.env.DB_POOL || 10, + connectionTimeoutMillis: 15000, + ssl: !!process.env.DB_SSLMODE && process.env.DB_SSLMODE !== 'disable', + })); + const server = http.createServer(app); const redisNamespace = process.env.REDIS_NAMESPACE || null; From c5a4d8c82ddd5265abc830959a58cdaf1f061a43 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 9 Feb 2023 11:24:16 +0100 Subject: [PATCH 0367/1220] Add information about database pool to metrics endpoint in streaming API (#23469) --- streaming/index.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/streaming/index.js b/streaming/index.js index 1fbbdea3b5..a8708ec78b 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -856,6 +856,15 @@ const startWorker = async (workerId) => { res.write('# TYPE connected_channels gauge\n'); res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); res.write(`connected_channels ${Object.keys(subs).length}.0\n`); + res.write('# TYPE pg.pool.total_connections gauge \n'); + res.write('# HELP pg.pool.total_connections The total number of clients existing within the pool\n'); + res.write(`pg.pool.total_connections ${pgPool.totalCount}.0\n`); + res.write('# TYPE pg.pool.idle_connections gauge \n'); + res.write('# HELP pg.pool.idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); + res.write(`pg.pool.idle_connections ${pgPool.idleCount}.0\n`); + res.write('# TYPE pg.pool.waiting_queries gauge \n'); + res.write('# HELP pg.pool.waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); + res.write(`pg.pool.waiting_queries ${pgPool.waitingCount}.0\n`); res.write('# EOF\n'); res.end(); })); From 95e2cab22ed4fdd68ca6422190aaffd11c4cb8ee Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 4 Feb 2023 04:56:06 +0100 Subject: [PATCH 0368/1220] [Glitch] Add setting for status page URL Port 8f590b0a211716bcbfc0f2278a452469f3346f55 to glitch-soc Signed-off-by: Claire --- .../glitch/features/ui/components/link_footer.js | 16 +++++++++++----- app/javascript/flavours/glitch/initial_state.js | 1 + 2 files changed, 12 insertions(+), 5 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 c4bea9f310..0d1d4040f7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.js +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.js @@ -3,7 +3,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; -import { domain, version, source_url, profile_directory as profileDirectory } from 'flavours/glitch/initial_state'; +import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'flavours/glitch/initial_state'; import { logOut } from 'flavours/glitch/utils/log_out'; import { openModal } from 'flavours/glitch/actions/modal'; import { PERMISSION_INVITE_USERS } from 'flavours/glitch/permissions'; @@ -59,21 +59,27 @@ class LinkFooter extends React.PureComponent {

    {domain}: {' '} - + + {statusPageUrl && ( + <> + {DividingCircle} + + + )} {canInvite && ( <> {DividingCircle} - + )} {canProfileDirectory && ( <> {DividingCircle} - + )} {DividingCircle} - +

    diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index eefbdca804..c4b249db81 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -142,6 +142,7 @@ export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); export const translationEnabled = getMeta('translation_enabled'); export const languages = initialState?.languages; +export const statusPageUrl = getMeta('status_page_url'); // Glitch-soc-specific settings export const maxChars = (initialState && initialState.max_toot_chars) || 500; From 8fd6c362438b8549abc3c95389c55576af159326 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sat, 4 Feb 2023 16:34:21 +0100 Subject: [PATCH 0369/1220] [Glitch] Spell check input fields Port 67744ee779b97ea07e91dd076e1df25e362ff33d to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/components/autosuggest_input.js | 4 +++- .../glitch/features/compose/components/compose_form.js | 1 + .../flavours/glitch/features/compose/components/poll_form.js | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/components/autosuggest_input.js b/app/javascript/flavours/glitch/components/autosuggest_input.js index 4d751e2812..1a030fb858 100644 --- a/app/javascript/flavours/glitch/components/autosuggest_input.js +++ b/app/javascript/flavours/glitch/components/autosuggest_input.js @@ -51,6 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { searchTokens: PropTypes.arrayOf(PropTypes.string), maxLength: PropTypes.number, lang: PropTypes.string, + spellCheck: PropTypes.string, }; static defaultProps = { @@ -186,7 +187,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { }; render () { - const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props; + const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang, spellCheck } = this.props; const { suggestionsHidden } = this.state; return ( @@ -212,6 +213,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { className={className} maxLength={maxLength} lang={lang} + spellCheck={spellCheck} /> 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 9f57d7b1b2..696188f31a 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.js @@ -332,6 +332,7 @@ class ComposeForm extends ImmutablePureComponent { className='spoiler-input__input' lang={this.props.lang} autoFocus={false} + spellCheck />

    diff --git a/app/javascript/flavours/glitch/features/compose/components/poll_form.js b/app/javascript/flavours/glitch/features/compose/components/poll_form.js index 13b7322d3e..cb6b577bf8 100644 --- a/app/javascript/flavours/glitch/features/compose/components/poll_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/poll_form.js @@ -72,6 +72,7 @@ class Option extends React.PureComponent { maxLength={pollLimits.max_option_chars} value={title} lang={lang} + spellCheck onChange={this.handleOptionTitleChange} suggestions={this.props.suggestions} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} From 2dfbdc3f9dbca574fbeb5e27de1515a09021b9a7 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 6 Feb 2023 16:50:08 +0100 Subject: [PATCH 0370/1220] [Glitch] Show spinner while loading follow requests Port c1f32c9c1470d7d38342e211ff5ca326e12494fb to glitch-soc Signed-off-by: Claire --- .../glitch/features/follow_requests/index.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/app/javascript/flavours/glitch/features/follow_requests/index.js b/app/javascript/flavours/glitch/features/follow_requests/index.js index 7b35e3ec90..aa60bd7b8d 100644 --- a/app/javascript/flavours/glitch/features/follow_requests/index.js +++ b/app/javascript/flavours/glitch/features/follow_requests/index.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { debounce } from 'lodash'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; import Column from 'flavours/glitch/features/ui/components/column'; import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; import AccountAuthorizeContainer from './containers/account_authorize_container'; @@ -53,16 +52,8 @@ class FollowRequests extends ImmutablePureComponent { render () { const { intl, accountIds, hasMore, multiColumn, locked, domain, isLoading } = this.props; - if (!accountIds) { - return ( - - - - ); - } - const emptyMessage = ; - const unlockedPrependMessage = locked ? null : ( + const unlockedPrependMessage = !locked && accountIds.size > 0 && (
    Date: Mon, 6 Feb 2023 16:53:31 +0100 Subject: [PATCH 0371/1220] [Glitch] Add scrolling to Compare history modal Port e8cb3ee827d3bd20b0ad28dfc7358afaa43b4dad to glitch-soc Co-authored-by: Claire Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/components/modal.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss index 972e01e7d3..69d237dec6 100644 --- a/app/javascript/flavours/glitch/styles/components/modal.scss +++ b/app/javascript/flavours/glitch/styles/components/modal.scss @@ -1071,6 +1071,7 @@ &__container { padding: 30px; pointer-events: all; + overflow-y: auto; } .status__content { From f23d30100a3a85d4d099e9ea95a97b1dd5a3f9b0 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 9 Feb 2023 08:46:42 -0500 Subject: [PATCH 0372/1220] Cleanup unused i18n strings (#23426) * Remove partial 422/500 error translations * Add missing siblings for i18n unused warnings * Enable i18n unused string checking for all locales --- .github/workflows/check-i18n.yml | 2 +- config/locales/af.yml | 2 -- config/locales/bn.yml | 2 -- config/locales/br.yml | 2 -- config/locales/bs.yml | 2 -- config/locales/csb.yml | 2 -- config/locales/en-GB.yml | 2 -- config/locales/ga.yml | 4 ++-- config/locales/hi.yml | 2 -- config/locales/hr.yml | 2 -- config/locales/hy.yml | 1 - config/locales/ig.yml | 2 -- config/locales/ka.yml | 2 ++ config/locales/kab.yml | 3 ++- config/locales/kn.yml | 2 -- config/locales/kw.yml | 2 -- config/locales/la.yml | 2 -- config/locales/lt.yml | 2 ++ config/locales/mk.yml | 2 -- config/locales/ml.yml | 2 -- config/locales/mr.yml | 2 -- config/locales/ms.yml | 1 - config/locales/my.yml | 2 -- config/locales/pa.yml | 2 -- config/locales/sa.yml | 2 -- config/locales/sr-Latn.yml | 3 ++- config/locales/szl.yml | 2 -- config/locales/ta.yml | 2 -- config/locales/tai.yml | 2 -- config/locales/te.yml | 2 -- config/locales/tt.yml | 4 ++-- config/locales/ug.yml | 2 -- config/locales/ur.yml | 2 -- config/locales/uz.yml | 2 -- config/locales/zgh.yml | 2 -- 35 files changed, 13 insertions(+), 61 deletions(-) diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml index 9a74630607..b2e6197868 100644 --- a/.github/workflows/check-i18n.yml +++ b/.github/workflows/check-i18n.yml @@ -30,7 +30,7 @@ jobs: - name: Check locale file normalization run: bundle exec i18n-tasks check-normalized - name: Check for unused strings - run: bundle exec i18n-tasks unused -l en + run: bundle exec i18n-tasks unused - name: Check for wrong string interpolations run: bundle exec i18n-tasks check-consistent-interpolations - name: Check that all required locale files exist diff --git a/config/locales/af.yml b/config/locales/af.yml index dadb61c756..ed86619911 100644 --- a/config/locales/af.yml +++ b/config/locales/af.yml @@ -96,9 +96,7 @@ af: '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. exports: bookmarks: Boekmerke diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 5a40fad8f3..1f2550d298 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -232,9 +232,7 @@ bn: '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. verification: verification: সত্যতা নির্ধারণ diff --git a/config/locales/br.yml b/config/locales/br.yml index c53fac24f6..6be93d2924 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -342,9 +342,7 @@ br: '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. exports: archive_takeout: diff --git a/config/locales/bs.yml b/config/locales/bs.yml index adb1ccc2a2..2709636c9f 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -6,7 +6,5 @@ bs: '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. diff --git a/config/locales/csb.yml b/config/locales/csb.yml index 0d4e4b36b2..e2a6dd4de6 100644 --- a/config/locales/csb.yml +++ b/config/locales/csb.yml @@ -6,7 +6,5 @@ csb: '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. diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index b02e00bf01..496d240a05 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -190,9 +190,7 @@ en-GB: '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. sessions: browsers: diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 7f1a2b6feb..073f2bad00 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -369,9 +369,7 @@ ga: '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. exports: archive_takeout: @@ -437,6 +435,8 @@ ga: prev: Ceann roimhe seo preferences: other: Eile + posting_defaults: Posting defaults + public_timelines: Public timelines relationships: follow_selected_followers: Lean leantóirí roghnaithe followers: Leantóirí diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 7678edc385..50fae82bd8 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -6,7 +6,5 @@ hi: '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. diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 7a9ee2dc39..0563712266 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -81,9 +81,7 @@ hr: '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. exports: archive_takeout: diff --git a/config/locales/hy.yml b/config/locales/hy.yml index df7dd3e2e0..de995c5b5e 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -539,7 +539,6 @@ hy: '404': Էջը, որը փնտրում ես գոյութիւն չունի։ '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. - '422': '429': Չափազանց շատ հարցումներ '500': title: Էջը ճիշտ չէ diff --git a/config/locales/ig.yml b/config/locales/ig.yml index c327065183..6459396380 100644 --- a/config/locales/ig.yml +++ b/config/locales/ig.yml @@ -6,7 +6,5 @@ ig: '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. diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 41a51a8b09..ff08987d9a 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -394,6 +394,8 @@ ka: prev: წინა preferences: other: სხვა + posting_defaults: Posting defaults + public_timelines: Public timelines remote_follow: missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა sessions: diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 235aad5b38..7f77b2be78 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -508,7 +508,6 @@ kab: '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': title: Asebter-ayi d arameγtu @@ -630,6 +629,8 @@ kab: prev: Win iɛeddan preferences: other: Wiyaḍ + posting_defaults: Posting defaults + public_timelines: Public timelines privacy_policy: title: Tasertit tabaḍnit relationships: diff --git a/config/locales/kn.yml b/config/locales/kn.yml index d44eb868f3..998f613ef7 100644 --- a/config/locales/kn.yml +++ b/config/locales/kn.yml @@ -6,7 +6,5 @@ kn: '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. diff --git a/config/locales/kw.yml b/config/locales/kw.yml index 7683e30423..4085046cf6 100644 --- a/config/locales/kw.yml +++ b/config/locales/kw.yml @@ -11,9 +11,7 @@ kw: '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. settings: account: Akont diff --git a/config/locales/la.yml b/config/locales/la.yml index 0a4bec9ee9..244938ef6b 100644 --- a/config/locales/la.yml +++ b/config/locales/la.yml @@ -6,7 +6,5 @@ la: '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. diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 58d0ae4f48..28c9419591 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -426,6 +426,8 @@ lt: prev: Ankstesnis preferences: other: Kita + posting_defaults: Posting defaults + public_timelines: Public timelines remote_follow: missing_resource: Jūsų paskyros nukreipimo URL nerasta scheduled_statuses: diff --git a/config/locales/mk.yml b/config/locales/mk.yml index b538272dee..9504dc972e 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -6,7 +6,5 @@ mk: '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. diff --git a/config/locales/ml.yml b/config/locales/ml.yml index d5442c96cb..ae39911456 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -87,9 +87,7 @@ ml: '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. filters: contexts: diff --git a/config/locales/mr.yml b/config/locales/mr.yml index 9d7609ea4b..161e5e5717 100644 --- a/config/locales/mr.yml +++ b/config/locales/mr.yml @@ -6,7 +6,5 @@ mr: '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. diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 848580f0ce..1fc856c64f 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -827,7 +827,6 @@ ms: '422': title: Pengesahan keselamatan gagal '429': Terlalu banyak permintaan - '500': '503': Halaman tidak dapat disampaikan kerana kegagalan pelayan sementara. exports: archive_takeout: diff --git a/config/locales/my.yml b/config/locales/my.yml index 399105ce07..ae5a59e092 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -6,7 +6,5 @@ my: '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. diff --git a/config/locales/pa.yml b/config/locales/pa.yml index 0fc957a99f..1a91937967 100644 --- a/config/locales/pa.yml +++ b/config/locales/pa.yml @@ -6,7 +6,5 @@ pa: '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. diff --git a/config/locales/sa.yml b/config/locales/sa.yml index 229e4568c5..f8c64a7854 100644 --- a/config/locales/sa.yml +++ b/config/locales/sa.yml @@ -6,7 +6,5 @@ sa: '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. diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index dc62f22206..1a4a2b7b1e 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -209,7 +209,6 @@ sr-Latn: '404': Strana koju ste tražili ne postoji. '406': This page is not available in the requested format. '410': Strana koju ste tražili više ne postoji. - '422': '429': Uspored '500': content: Izvinjavamo se, nešto je pošlo po zlu sa ove strane. @@ -289,6 +288,8 @@ sr-Latn: prev: Prethodni preferences: other: Ostali + posting_defaults: Posting defaults + public_timelines: Public timelines remote_follow: missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog sessions: diff --git a/config/locales/szl.yml b/config/locales/szl.yml index 4359f4d610..2e059c51ac 100644 --- a/config/locales/szl.yml +++ b/config/locales/szl.yml @@ -6,7 +6,5 @@ szl: '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. diff --git a/config/locales/ta.yml b/config/locales/ta.yml index d691c0ec81..2d2bce86ad 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -203,9 +203,7 @@ ta: '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. filters: index: diff --git a/config/locales/tai.yml b/config/locales/tai.yml index 3b22e9999b..f347ac6200 100644 --- a/config/locales/tai.yml +++ b/config/locales/tai.yml @@ -6,7 +6,5 @@ tai: '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. diff --git a/config/locales/te.yml b/config/locales/te.yml index d325d0fba0..e3b3f97ab6 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -76,7 +76,5 @@ te: '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. diff --git a/config/locales/tt.yml b/config/locales/tt.yml index b2986602db..01b491b11b 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -136,9 +136,7 @@ tt: '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. exports: archive_takeout: @@ -183,6 +181,8 @@ tt: truncate: "…" preferences: other: Башка + posting_defaults: Posting defaults + public_timelines: Public timelines relationships: following: Язылгансыз sessions: diff --git a/config/locales/ug.yml b/config/locales/ug.yml index 779d4d226f..ea5bdb5c88 100644 --- a/config/locales/ug.yml +++ b/config/locales/ug.yml @@ -6,7 +6,5 @@ ug: '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. diff --git a/config/locales/ur.yml b/config/locales/ur.yml index 31c2292bbd..a5ae83fd42 100644 --- a/config/locales/ur.yml +++ b/config/locales/ur.yml @@ -6,7 +6,5 @@ ur: '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. diff --git a/config/locales/uz.yml b/config/locales/uz.yml index 94260c6660..caed654ec7 100644 --- a/config/locales/uz.yml +++ b/config/locales/uz.yml @@ -45,7 +45,5 @@ uz: '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. diff --git a/config/locales/zgh.yml b/config/locales/zgh.yml index d29daf18c4..4750a6cee5 100644 --- a/config/locales/zgh.yml +++ b/config/locales/zgh.yml @@ -89,9 +89,7 @@ zgh: '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. exports: archive_takeout: From 67de888bad9b045787dd8fe6db77658b84137426 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 10:20:43 +0100 Subject: [PATCH 0373/1220] Fix server status URL being a required server setting (#23499) --- app/models/form/admin_settings.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 001caa3765..070478e8ee 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -69,7 +69,7 @@ class Form::AdminSettings validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) } validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) } validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) } - validates :status_page_url, url: true + validates :status_page_url, url: true, allow_blank: true validate :validate_site_uploads KEYS.each do |key| From a9c220242bcc5f3d5e4c8ea92483f6b626a30ffa Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 11:14:58 +0100 Subject: [PATCH 0374/1220] Fix admin-set follow recommandations being case-sensitive (#23500) Fixes #23472 --- app/models/account_suggestions/setting_source.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/account_suggestions/setting_source.rb b/app/models/account_suggestions/setting_source.rb index be9eff2335..7b8873e0c5 100644 --- a/app/models/account_suggestions/setting_source.rb +++ b/app/models/account_suggestions/setting_source.rb @@ -54,7 +54,7 @@ class AccountSuggestions::SettingSource < AccountSuggestions::Source next if username.blank? - [username, domain] + [username.downcase, domain&.downcase] end.compact end @@ -63,6 +63,6 @@ class AccountSuggestions::SettingSource < AccountSuggestions::Source end def to_ordered_list_key(account) - [account.username, account.domain] + [account.username.downcase, account.domain&.downcase] end end From 71ae17e8f5b450d6000536ca9597673eba4725db Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 10 Feb 2023 21:42:08 +0100 Subject: [PATCH 0375/1220] New Crowdin updates (#23413) * New translations en.json (Esperanto) * New translations en.yml (Slovak) * New translations en.json (Burmese) * New translations en.yml (Korean) * New translations en.json (Burmese) * New translations en.json (Burmese) * New translations en.yml (Finnish) * New translations simple_form.en.yml (Finnish) * New translations en.json (Burmese) * New translations en.yml (Burmese) * New translations en.yml (Burmese) * New translations en.json (Burmese) * New translations activerecord.en.yml (Burmese) * New translations en.yml (Burmese) * New translations activerecord.en.yml (Burmese) * New translations en.json (German) * New translations simple_form.en.yml (German) * New translations en.json (Catalan) * New translations en.yml (Burmese) * New translations en.yml (Burmese) * New translations en.yml (Russian) * New translations doorkeeper.en.yml (Russian) * New translations simple_form.en.yml (Russian) * New translations en.json (Russian) * New translations en.json (Belarusian) * New translations en.json (Belarusian) * New translations en.json (Esperanto) * New translations en.yml (Esperanto) * New translations doorkeeper.en.yml (Korean) * New translations en.json (Burmese) * New translations en.yml (Slovak) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Belarusian) * New translations simple_form.en.yml (Esperanto) * New translations doorkeeper.en.yml (Esperanto) * New translations activerecord.en.yml (Esperanto) * New translations devise.en.yml (Esperanto) * New translations en.yml (English, United Kingdom) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Asturian) * New translations en.yml (Asturian) * New translations doorkeeper.en.yml (Asturian) * New translations en.json (Asturian) * New translations en.yml (Asturian) * New translations en.json (Asturian) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations devise.en.yml (Korean) * New translations simple_form.en.yml (Korean) * New translations en.json (Welsh) * New translations en.yml (Welsh) * New translations simple_form.en.yml (Welsh) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Welsh) * New translations doorkeeper.en.yml (Welsh) * New translations en.yml (Burmese) * New translations en.yml (Burmese) * New translations en.yml (Burmese) * New translations en.json (Silesian) * New translations en.yml (Occitan) * New translations en.yml (Turkish) * New translations simple_form.en.yml (Turkish) * New translations en.json (Occitan) * New translations activerecord.en.yml (Turkish) * New translations doorkeeper.en.yml (Turkish) * Normalize * Remove unused locales --------- Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ast.json | 28 +- app/javascript/mastodon/locales/be.json | 6 +- app/javascript/mastodon/locales/ca.json | 4 +- app/javascript/mastodon/locales/cy.json | 2 +- app/javascript/mastodon/locales/de.json | 14 +- app/javascript/mastodon/locales/eo.json | 2 +- app/javascript/mastodon/locales/ko.json | 18 +- app/javascript/mastodon/locales/my.json | 64 ++--- app/javascript/mastodon/locales/oc.json | 2 +- app/javascript/mastodon/locales/ru.json | 4 +- app/javascript/mastodon/locales/szl.json | 40 +-- config/locales/activerecord.eo.yml | 2 +- config/locales/activerecord.my.yml | 26 ++ config/locales/activerecord.tr.yml | 2 +- config/locales/ast.yml | 17 ++ config/locales/be.yml | 12 + config/locales/devise.eo.yml | 2 +- config/locales/devise.ko.yml | 22 +- config/locales/doorkeeper.ast.yml | 1 + config/locales/doorkeeper.eo.yml | 10 + config/locales/doorkeeper.ru.yml | 7 + config/locales/doorkeeper.tr.yml | 14 +- config/locales/en-GB.yml | 55 ++++ config/locales/eo.yml | 15 + config/locales/fi.yml | 7 + config/locales/ko.yml | 34 +-- config/locales/my.yml | 341 +++++++++++++++++++++++ config/locales/oc.yml | 4 + config/locales/ru.yml | 4 + config/locales/simple_form.ast.yml | 1 + config/locales/simple_form.be.yml | 5 + config/locales/simple_form.cy.yml | 4 + config/locales/simple_form.de.yml | 8 +- config/locales/simple_form.eo.yml | 9 + config/locales/simple_form.fi.yml | 1 + config/locales/simple_form.ko.yml | 8 +- config/locales/simple_form.ru.yml | 4 + config/locales/simple_form.tr.yml | 4 +- config/locales/sk.yml | 3 + config/locales/tr.yml | 16 +- 40 files changed, 675 insertions(+), 147 deletions(-) diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 23e9b026bc..fcdabdc6c9 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -34,7 +34,7 @@ "account.followers.empty": "No one follows this user yet.", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", "account.following": "Following", - "account.following_counter": "{count, plural,one {Siguiendo a {counter}} other {Siguiendo a {counter}}}", + "account.following_counter": "{count, plural,one {Sigue a {counter}} other {Sigue a {counter}}}", "account.follows.empty": "Esti perfil entá nun sigue a naide.", "account.follows_you": "Síguete", "account.go_to_profile": "Go to profile", @@ -59,7 +59,7 @@ "account.show_reblogs": "Amosar los artículos compartíos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}", "account.unblock": "Unblock @{name}", - "account.unblock_domain": "Unblock domain {domain}", + "account.unblock_domain": "Desbloquiar el dominiu «{domain}»", "account.unblock_short": "Unblock", "account.unendorse": "Dexar de destacar nel perfil", "account.unfollow": "Dexar de siguir", @@ -108,7 +108,7 @@ "column.favourites": "Favourites", "column.follow_requests": "Solicitúes de siguimientu", "column.home": "Home", - "column.lists": "Lists", + "column.lists": "Llistes", "column.mutes": "Muted users", "column.notifications": "Avisos", "column.pins": "Artículos fixaos", @@ -179,10 +179,10 @@ "conversation.with": "Con {names}", "copypaste.copied": "Copióse", "copypaste.copy": "Copiar", - "directory.federated": "From known fediverse", - "directory.local": "From {domain} only", - "directory.new_arrivals": "New arrivals", - "directory.recently_active": "Recently active", + "directory.federated": "Del fediversu conocíu", + "directory.local": "De «{domain}» namás", + "directory.new_arrivals": "Cuentes nueves", + "directory.recently_active": "Con actividá recién", "disabled_account_banner.account_settings": "Account settings", "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", @@ -268,11 +268,11 @@ "footer.about": "Tocante a", "footer.directory": "Direutoriu de perfiles", "footer.get_app": "Consiguir l'aplicación", - "footer.invite": "Invite people", + "footer.invite": "Convidar a persones", "footer.keyboard_shortcuts": "Atayos del tecláu", "footer.privacy_policy": "Política de privacidá", "footer.source_code": "Ver el códigu fonte", - "footer.status": "Status", + "footer.status": "Estáu", "generic.saved": "Guardóse", "getting_started.heading": "Getting started", "hashtag.column_header.tag_mode.all": "y {additional}", @@ -353,13 +353,13 @@ "lists.edit": "Editar la llista", "lists.edit.submit": "Change title", "lists.new.create": "Amestar la llista", - "lists.new.title_placeholder": "New list title", + "lists.new.title_placeholder": "Títulu", "lists.replies_policy.followed": "Cualesquier perfil siguíu", "lists.replies_policy.list": "Miembros de la llista", "lists.replies_policy.none": "Naide", "lists.replies_policy.title": "Show replies to:", "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", + "lists.subheading": "Les tos llistes", "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}", "loading_indicator.label": "Cargando…", "media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}", @@ -543,7 +543,7 @@ "server_banner.learn_more": "Saber más", "server_banner.server_stats": "Estadístiques del sirvidor:", "sign_in_banner.create_account": "Crear una cuenta", - "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.sign_in": "Aniciar la sesión", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", @@ -580,7 +580,7 @@ "status.reblog_private": "Boost with original visibility", "status.reblogged_by": "{name} compartió", "status.reblogs.empty": "Naide nun compartió esti artículu entá. Cuando daquién lo faiga, apaez equí.", - "status.redraft": "Delete & re-draft", + "status.redraft": "Desaniciar ya reeditar", "status.remove_bookmark": "Remove bookmark", "status.replied_to": "En rempuesta a {name}", "status.reply": "Responder", @@ -617,7 +617,7 @@ "timeline_hint.resources.followers": "Siguidores", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Artículos antiguos", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} {days, plural, one {nel últimu día} other {nos últimos {days} díes}}", "trends.trending_now": "En tendencia", "ui.beforeunload": "El borrador piérdese si coles de Mastodon.", "units.short.billion": "{count} MM", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 4dd3a06e04..f4a10a7957 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -3,7 +3,7 @@ "about.contact": "Кантакт:", "about.disclaimer": "Mastodon - свабоднае праграмнае забеспячэнне, з адкрытым зыходным кодам, і гандлёвай маркай Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Прычына недаступная", - "about.domain_blocks.preamble": "Mastodon звычайна дазваляе вам бачыць змесціва і камунікаваць з карыстальнікамі з іншых сервераў федэсвету. Гэта выключэнні, якія былі зробленыя на гэтым канкрэтным серверы.", + "about.domain_blocks.preamble": "Mastodon, у асноўным, дазваляе вам праглядаць кантэнт і ўзаемадзейнічаць з карыстальнікамі з іншых сервераў у федэсвету. Гэтыя выключэнні былі зроблены дакладна на гэтым серверы.", "about.domain_blocks.silenced.explanation": "Вы не будзеце бачыць профілі і змесціва гэтага серверу, калі не шукаеце іх мэтанакіравана ці не падпісаны на карыстальнікаў адтуль.", "about.domain_blocks.silenced.title": "Абмежаваны", "about.domain_blocks.suspended.explanation": "Ніякая інфармацыя з гэтага сервера не будзе апрацавана, захавана або абменена, узаемадзеянне або камунікацыя з карыстальнікамі гэтага сервера немагчымы.", @@ -21,7 +21,7 @@ "account.browse_more_on_origin_server": "Глядзіце больш у арыгінальным профілі", "account.cancel_follow_request": "Скасаваць запыт на падпіску", "account.direct": "Асабістае паведамленне @{name}", - "account.disable_notifications": "Не апавяшчаць мяне пра допісы @{name}", + "account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}", "account.domain_blocked": "Дамен заблакаваны", "account.edit_profile": "Рэдагаваць профіль", "account.enable_notifications": "Апавяшчаць мяне пра допісы @{name}", @@ -606,7 +606,7 @@ "suggestions.header": "Гэта можа Вас зацікавіць…", "tabs_bar.federated_timeline": "Глабальнае", "tabs_bar.home": "Галоўная", - "tabs_bar.local_timeline": "Мясцовае", + "tabs_bar.local_timeline": "Тутэйшыя", "tabs_bar.notifications": "Апавяшчэнні", "time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}", "time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 39e8f12e2e..8dba6bb2cd 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -32,9 +32,9 @@ "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.following_counter": "{count, plural, other {{counter} Seguint-ne}}", "account.follows.empty": "Aquest usuari encara no segueix ningú.", "account.follows_you": "Et segueix", "account.go_to_profile": "Vés al perfil", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 442703ddfe..e193919d1c 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Bysellau brys", "footer.privacy_policy": "Polisi preifatrwydd", "footer.source_code": "Gweld y cod ffynhonnell", - "footer.status": "Status", + "footer.status": "Statws", "generic.saved": "Wedi'i Gadw", "getting_started.heading": "Dechrau", "hashtag.column_header.tag_mode.all": "a {additional}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 418e985e48..ff3f38c968 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -78,7 +78,7 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Ankündigung", "attachments_list.unprocessed": "(ausstehend)", - "audio.hide": "Audio verbergen", + "audio.hide": "Audio ausblenden", "autosuggest_hashtag.per_week": "{count} pro Woche", "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt", "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren", @@ -114,7 +114,7 @@ "column.pins": "Angeheftete Beiträge", "column.public": "Föderierte Timeline", "column_back_button.label": "Zurück", - "column_header.hide_settings": "Einstellungen verbergen", + "column_header.hide_settings": "Einstellungen ausblenden", "column_header.moveLeft_settings": "Diese Spalte nach links verschieben", "column_header.moveRight_settings": "Diese Spalte nach rechts verschieben", "column_header.pin": "Anheften", @@ -289,7 +289,7 @@ "home.column_settings.basic": "Einfach", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.hide_announcements": "Ankündigungen verbergen", + "home.hide_announcements": "Ankündigungen ausblenden", "home.show_announcements": "Ankündigungen anzeigen", "interaction_modal.description.favourite": "Mit einem Mastodon-Konto kannst du diesen Beitrag favorisieren, um deine Wertschätzung auszudrücken, und ihn für einen späteren Zeitpunkt speichern.", "interaction_modal.description.follow": "Mit einem Mastodon-Konto kannst du {name} folgen, um die Beiträge auf deiner Startseite zu sehen.", @@ -333,9 +333,9 @@ "keyboard_shortcuts.reply": "auf Beitrag antworten", "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen", "keyboard_shortcuts.search": "Suchleiste fokussieren", - "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/verbergen", + "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/ausblenden", "keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen", - "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/verbergen", + "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/ausblenden", "keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen", "keyboard_shortcuts.toot": "neuen Beitrag erstellen", "keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren", @@ -367,7 +367,7 @@ "missing_indicator.sublabel": "Der Inhalt konnte nicht gefunden werden", "moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.", "mute_modal.duration": "Dauer", - "mute_modal.hide_notifications": "Benachrichtigungen dieses Profils verbergen?", + "mute_modal.hide_notifications": "Benachrichtigungen dieses Profils ausblenden?", "mute_modal.indefinite": "Unbegrenzt", "navigation_bar.about": "Über", "navigation_bar.blocks": "Gesperrte Profile", @@ -651,7 +651,7 @@ "video.exit_fullscreen": "Vollbild verlassen", "video.expand": "Video vergrößern", "video.fullscreen": "Vollbild", - "video.hide": "Video verbergen", + "video.hide": "Video ausblenden", "video.mute": "Stummschalten", "video.pause": "Pausieren", "video.play": "Abspielen", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index fc2e9d5e7f..fde1636282 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -488,7 +488,7 @@ "report.category.title_account": "profilo", "report.category.title_status": "afiŝo", "report.close": "Farita", - "report.comment.title": "Ĉu estas io alia kion vi pensas ke ni devas scii?", + "report.comment.title": "Ĉu estas ajn ion alian kiun vi pensas ke ni devus scii?", "report.forward": "Plusendi al {target}", "report.forward_hint": "La konto estas de alia servilo. Ĉu vi volas sendi anoniman kopion de la raporto ankaŭ al tie?", "report.mute": "Silentigi", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 612b00f461..9ff4910ef0 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -66,7 +66,7 @@ "account.unmute": "@{name} 뮤트 해제", "account.unmute_notifications": "@{name}의 알림 뮤트 해제", "account.unmute_short": "뮤트 해제", - "account_note.placeholder": "클릭해서 노트 추가", + "account_note.placeholder": "클릭하여 노트 추가", "admin.dashboard.daily_retention": "가입 후 일별 사용자 유지율", "admin.dashboard.monthly_retention": "가입 후 월별 사용자 유지율", "admin.dashboard.retention.average": "평균", @@ -219,7 +219,7 @@ "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!", "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", - "empty_column.follow_recommendations": "제안을 만들 수 없었습니다. 알 수 있는 사람을 찾아보거나 유행하는 해시태그를 둘러보세요.", + "empty_column.follow_recommendations": "당신을 위한 제안이 생성될 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.", "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.", "empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.", "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", @@ -232,7 +232,7 @@ "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 사용자를 팔로우 해서 채워보세요", "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.", "error.unexpected_crash.explanation_addons": "이 페이지는 올바르게 보여질 수 없습니다. 브라우저 애드온이나 자동 번역 도구 등으로 인해 발생된 에러일 수 있습니다.", - "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 도움이 되지 않는다면, 다른 브라우저나 네이티브 앱을 통해서도 Mastodon을 이용할 수 있습니다.", + "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.", "error.unexpected_crash.next_steps_addons": "그걸 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않으면, 다른 브라우저나 네이티브 앱으로 마스토돈을 이용해 보실 수 있습니다.", "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사", "errors.unexpected_crash.report_issue": "문제 신고", @@ -278,8 +278,8 @@ "hashtag.column_header.tag_mode.all": "및 {additional}", "hashtag.column_header.tag_mode.any": "또는 {additional}", "hashtag.column_header.tag_mode.none": "{additional}를 제외하고", - "hashtag.column_settings.select.no_options_message": "제안을 찾을 수 없습니다.", - "hashtag.column_settings.select.placeholder": "해시태그를 기입하면...", + "hashtag.column_settings.select.no_options_message": "추천할 내용이 없습니다", + "hashtag.column_settings.select.placeholder": "해시태그를 입력하세요…", "hashtag.column_settings.tag_mode.all": "모두", "hashtag.column_settings.tag_mode.any": "어느것이든", "hashtag.column_settings.tag_mode.none": "이것들을 제외하고", @@ -495,13 +495,13 @@ "report.mute_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 여전히 당신을 팔로우 하거나 당신의 게시물을 볼 수 있으며 해당 계정은 자신이 뮤트 되었는지 알지 못합니다.", "report.next": "다음", "report.placeholder": "코멘트", - "report.reasons.dislike": "마음에 안 들어요", + "report.reasons.dislike": "마음에 안듭니다", "report.reasons.dislike_description": "내가 보기 싫은 종류에 속합니다", - "report.reasons.other": "그 밖의 것들", + "report.reasons.other": "기타", "report.reasons.other_description": "이슈가 다른 분류에 속하지 않습니다", - "report.reasons.spam": "스팸이에요", + "report.reasons.spam": "스팸입니다", "report.reasons.spam_description": "악성 링크, 반응 스팸, 또는 반복적인 답글", - "report.reasons.violation": "서버 규칙을 위반해요", + "report.reasons.violation": "서버 규칙을 위반합니다", "report.reasons.violation_description": "특정 규칙을 위반합니다", "report.rules.subtitle": "해당하는 사항을 모두 선택하세요", "report.rules.title": "어떤 규칙을 위반했나요?", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 76d864fee5..9086f0eec8 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -1,47 +1,47 @@ { - "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.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.", - "about.domain_blocks.suspended.title": "Suspended", - "about.not_available": "This information has not been made available on this server.", - "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", - "account.account_note_header": "Note", - "account.add_or_remove_from_list": "Add or Remove from lists", + "about.blocks": "ထိန်းချုပ်ထားသော ဆာဗာများ", + "about.contact": "ဆက်သွယ်ရန်:", + "about.disclaimer": "Mastodon သည် အခမဲ့ဖြစ်ပြီး open-source software နှင့် Mastodon gGmbH ၏ ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။", + "about.domain_blocks.no_reason_available": "အကြောင်းပြချက်မရရှိပါ", + "about.domain_blocks.preamble": "Mastodon သည် ယေဘူယျအားဖြင့် သင့်အား အစုအဝေးရှိ အခြားဆာဗာများမှ အသုံးပြုသူများထံမှ အကြောင်းအရာများကို ကြည့်ရှုပြီး အပြန်အလှန် တုံ့ပြန်နိုင်စေပါသည်။ ဤအရာများသည် ဤအထူးဆာဗာတွင် ပြုလုပ်ထားသော ခြွင်းချက်ဖြစ်သည်။", + "about.domain_blocks.silenced.explanation": "ရှင်းရှင်းလင်းလင်း ရှာကြည့်ခြင်း သို့မဟုတ် လိုက်ကြည့်ခြင်းဖြင့် ၎င်းကို ရွေးချယ်ခြင်းမှလွဲ၍ ဤဆာဗာမှ ပရိုဖိုင်များနှင့် အကြောင်းအရာများကို ယေဘုယျအားဖြင့် သင်သည် မမြင်ရပါ။", + "about.domain_blocks.silenced.title": "ကန့်သတ်ထားသော", + "about.domain_blocks.suspended.explanation": "ဤဆာဗာမှ ဒေတာများကို စီမံဆောင်ရွက်ခြင်း၊ သိမ်းဆည်းခြင်း သို့မဟုတ် ဖလှယ်ခြင်း မပြုဘဲ၊ ဤဆာဗာမှ အသုံးပြုသူများနှင့် အပြန်အလှန် ဆက်သွယ်မှု သို့မဟုတ် ဆက်သွယ်မှုတို့ကို မဖြစ်နိုင်အောင် ပြုလုပ်ပေးမည်မဟုတ်ပါ။", + "about.domain_blocks.suspended.title": "ရပ်ဆိုင်းထားသည်။", + "about.not_available": "ဤအချက်အလက်ကို ဤဆာဗာတွင် မရရှိနိုင်ပါ။", + "about.powered_by": "{mastodon} မှ ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ဆိုရှယ်မီဒီယာ", + "about.rules": "ဆာဗာစည်းမျဉ်းများ\n", + "account.account_note_header": "မှတ်ချက်", + "account.add_or_remove_from_list": "စာရင်းများမှ ထည့်ပါ သို့မဟုတ် ဖယ်ရှားပါ။\n", "account.badges.bot": "Bot", - "account.badges.group": "Group", - "account.block": "Block @{name}", - "account.block_domain": "Block domain {domain}", - "account.blocked": "Blocked", - "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.badges.group": "အုပ်စု", + "account.block": "@{name} ကိုဘလော့မည်", + "account.block_domain": " {domain} ဒိုမိန်းကိုပိတ်မည်", + "account.blocked": "ဘလော့ထားသည်", + "account.browse_more_on_origin_server": "မူရင်းပရိုဖိုင်တွင် ပိုမိုကြည့်ရှုပါ။", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", - "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocked": "Domain blocked", + "account.direct": "@{name} ကိုတိုက်ရိုက်စာပို့မည်", + "account.disable_notifications": "@{name} ပို့စ်တင်သည့်အခါ ကျွန်ုပ်ကို အသိပေးခြင်းရပ်ပါ။", + "account.domain_blocked": "ဒိုမိန်း ပိတ်ပင်ထားခဲ့သည်\n", "account.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", - "account.enable_notifications": "Notify me when @{name} posts", + "account.enable_notifications": "@{name} ပို့စ်တင်သည့်အခါ ကျွန်ုပ်ကို အကြောင်းကြားပါ။", "account.endorse": "Feature on profile", - "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_at": "{date} တွင် နောက်ဆုံးပို့စ်", "account.featured_tags.last_status_never": "No posts", "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "စောင့်ကြည့်မည်", - "account.followers": "Followers", - "account.followers.empty": "No one follows this user yet.", + "account.followers": "စောင့်ကြည့်သူများ", + "account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", "account.following": "စောင့်ကြည့်နေသည်", "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", - "account.follows.empty": "This user doesn't follow anyone yet.", - "account.follows_you": "Follows you", - "account.go_to_profile": "Go to profile", - "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined_short": "Joined", + "account.follows.empty": "ဤသူသည် မည်သူ့ကိုမျှ စောင့်ကြည့်ခြင်း မရှိသေးပါ။", + "account.follows_you": "သင့်ကို စောင့်ကြည့်နေသည်", + "account.go_to_profile": "ပရိုဖိုင်းသို့ သွားရန်", + "account.hide_reblogs": "@{name} ၏ မျှဝေမှုကို ဝှက်ထားရန်", + "account.joined_short": "ပူးပေါင်း", "account.languages": "Change subscribed languages", - "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.link_verified_on": "ဤလင့်ခ်၏ ပိုင်ဆိုင်မှုကို {date} က စစ်ဆေးခဲ့သည်။", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "မီဒီယာ", "account.mention": "Mention @{name}", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 1367cc893f..4bce24d073 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Acorchis clavièr", "footer.privacy_policy": "Politica de confidencialitat", "footer.source_code": "Veire lo còdi font", - "footer.status": "Status", + "footer.status": "Estat", "generic.saved": "Enregistrat", "getting_started.heading": "Per començar", "hashtag.column_header.tag_mode.all": "e {additional}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index f8275452cf..75e6f7edf0 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Никто ещё не добавил этот пост в «Избранное». Как только кто-то это сделает, это отобразится здесь.", "empty_column.follow_recommendations": "Похоже, у нас нет предложений для вас. Вы можете попробовать поискать людей, которых уже знаете, или изучить актуальные хэштеги.", "empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Вы еще не подписались ни на один хэштег. Когда вы это сделаете, они появятся здесь.", "empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.", "empty_column.home": "Ваша лента совсем пуста! Подпишитесь на других, чтобы заполнить её. {suggestions}", "empty_column.home.suggestions": "Посмотреть некоторые предложения", @@ -264,7 +264,7 @@ "follow_request.authorize": "Авторизовать", "follow_request.reject": "Отказать", "follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.", - "followed_tags": "Followed hashtags", + "followed_tags": "Отслеживаемые хэштеги", "footer.about": "О проекте", "footer.directory": "Каталог профилей", "footer.get_app": "Скачать приложение", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index e22ab1f22f..9d23c3dd0e 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -1,28 +1,28 @@ { - "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.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.", - "about.domain_blocks.suspended.title": "Suspended", - "about.not_available": "This information has not been made available on this server.", + "about.blocks": "Moderowane serwery", + "about.contact": "Kōntakt:", + "about.disclaimer": "Mastodōn je wolnym a ôtwartozdrzōdłowym ôprogramowaniym ôraz znakiym towarowym ôd Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Grund niydostympny", + "about.domain_blocks.preamble": "Mastodōn normalniy pozwŏlŏ na ôglōndaniy treściōw a interakcyje ze używŏczami inkszych serwerōw we fediverse, ale sōm ôd tygo wyjōntki, kere bōły poczyniōne na tym serwerze.", + "about.domain_blocks.silenced.explanation": "Normalniy niy bydziesz widzieć profilōw a treściōw ze tygo serwera. Ôboczysz je ino jak specjalniy bydziesz ich szukać abo jak je zaôbserwujesz.", + "about.domain_blocks.silenced.title": "Ôgraniczone", + "about.domain_blocks.suspended.explanation": "Żŏdne dane ze tygo serwera niy bydōm przetwarzane, przechowywane abo wymieniane, beztoż wszelakŏ interakcyjŏ abo komunikacyjŏ ze używŏczami tygo serwera bydzie niymożliwŏ.", + "about.domain_blocks.suspended.title": "Zawiyszōne", + "about.not_available": "Ta informacyjŏ niy bōła udostympniōna na tym serwerze.", "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", - "account.account_note_header": "Note", + "about.rules": "Zasady serwera", + "account.account_note_header": "Notatka", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", - "account.badges.group": "Group", - "account.block": "Block @{name}", - "account.block_domain": "Block domain {domain}", + "account.badges.group": "Grupa", + "account.block": "Zablokuj @{name}", + "account.block_domain": "Zablokuj domena {domain}", "account.blocked": "Blocked", - "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.browse_more_on_origin_server": "Ôbocz wiyncyj we ôryginalnym profilu", "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocked": "Domain blocked", + "account.domain_blocked": "Domena zablokowanŏ", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", @@ -43,11 +43,11 @@ "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", - "account.media": "Media", + "account.media": "Mydia", "account.mention": "Mention @{name}", "account.moved_to": "{name} has indicated that their new account is now:", - "account.mute": "Mute @{name}", - "account.mute_notifications": "Mute notifications from @{name}", + "account.mute": "Wycisz @{name}", + "account.mute_notifications": "Wycisz powiadōmiynia ôd @{name}", "account.muted": "Muted", "account.open_original_page": "Open original page", "account.posts": "Toots", diff --git a/config/locales/activerecord.eo.yml b/config/locales/activerecord.eo.yml index 9ae8bab42e..64af882b4d 100644 --- a/config/locales/activerecord.eo.yml +++ b/config/locales/activerecord.eo.yml @@ -6,7 +6,7 @@ eo: expires_at: Limdato options: Elektebloj user: - agreement: Servo-interkonsento + agreement: Interkonsento pri servoj email: Retpoŝtadreso locale: Lokaĵaro password: Pasvorto diff --git a/config/locales/activerecord.my.yml b/config/locales/activerecord.my.yml index 5e1fc6bee9..6aba9d49b9 100644 --- a/config/locales/activerecord.my.yml +++ b/config/locales/activerecord.my.yml @@ -1 +1,27 @@ +--- my: + activerecord: + attributes: + poll: + expires_at: နောက်ဆုံးတင်သွင်းချိန် + options: ရွေးချယ်မှူများ + user: + agreement: ဝန်ဆောင်မှု သဘောတူညီချက် + email: အီးမေးလ်လိပ်စာ + locale: ဒေသဆိုင်ရာ + password: စကားဝှက် + user/account: + username: အသုံးပြုသူအမည် + user/invite_request: + text: အကြောင်းပြချက် + errors: + models: + account: + attributes: + username: + invalid: အက္ခရာစာလုံး၊ ဂဏန်းနံပါတ်နှင့်underscores သာပါရမည် + reserved: အသုံးပြုပြီးဖြစ်သည် + user: + attributes: + email: + unreachable: တည်ရှိပုံ မပေါ်ပါ diff --git a/config/locales/activerecord.tr.yml b/config/locales/activerecord.tr.yml index c9695c1a6b..ffdc68ac87 100644 --- a/config/locales/activerecord.tr.yml +++ b/config/locales/activerecord.tr.yml @@ -28,7 +28,7 @@ tr: doorkeeper/application: attributes: website: - invalid: geçerli bir URL değil + invalid: geçerli bir bağlantı değil import: attributes: data: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index f612d4d281..c7d09ddf08 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -380,20 +380,28 @@ ast: your_token: El pase d'accesu auth: change_password: Contraseña + delete_account: Desaniciu de la cuenta delete_account_html: Si quies desaniciar la cuenta, pues facelo equí. Va pidísete que confirmes l'aición. + description: + prefix_sign_up: "¡Rexístrate güei en Mastodon!" didnt_get_confirmation: "¿Nun recibiesti les instrucciones de confirmación?" dont_have_your_security_key: "¿Nun tienes una llave de seguranza?" forgot_password: "¿Escaeciesti la contraseña?" login: Aniciar la sesión logout: Zarrar la sesión + migrate_account: Cambéu de cuenta privacy_policy_agreement_html: Lleí ya acepto la política de privacidá providers: cas: CAS saml: SAML register: Rexistrase + registration_closed: "%{instance} nun acepta cuentes nueves" security: Seguranza setup: email_settings_hint_html: Unvióse'l mensaxe de confirmación a %{email}. Si la direición de corréu electrónicu nun ye correuta, pues camudala na configuración de la cuenta. + sign_in: + preamble_html: Anicia la sesión colos tos datos d'accesu en %{domain}. Si la cuenta ta agospiada n'otru sirvidor, nun vas ser a aniciar la sesión equí. + title: Aniciu de la sesión en «%{domain}» sign_up: preamble: Con una cuenta nesti sirvidor de Mastodon vas ser a siguir a cualesquier perfil de la rede, independientemente del sirvidor onde s'agospie la so cuenta. title: 'Creación d''una cuenta en: %{domain}.' @@ -412,7 +420,9 @@ ast: return: Amosar el perfil de la cuenta web: Dir a la web challenge: + confirm: Siguir hint_html: "Conseyu: nun vamos volver pidite la contraseña hasta dientro d'una hora." + invalid_password: La contraseña nun ye válida prompt: Confirma la contraseña pa siguir crypto: errors: @@ -480,6 +490,7 @@ ast: lists: Llistes storage: Almacenamientu multimedia featured_tags: + add_new: Amestar hint_html: "¿Qué son les etiquetes destacaes? Apaecen de forma bien visible nel perfil públicu ya permite que les persones restolen los tos artículos públicos per duana d'eses etiquetes. Son una gran ferramienta pa tener un rexistru de trabayos creativos o de proyeutos a plazu llongu." filters: contexts: @@ -597,9 +608,13 @@ ast: thousand: mil trillion: B otp_authentication: + code_hint: Introduz el códigu que xeneró l'aplicación autenticadora pa confirmar l'aición description_html: Si actives l'autenticación en dos pasos con una aplicación autenticadora, al aniciar la sesión va ser obligatorio que tengas el teléfonu a mano, preséu que xenera los pases que tienes d'introducir. + enable: Activar + instructions_html: "Escania esti códigu QR con Google Authenticator o otra aplicación asemeyada nel móvil. Dende agora, esa aplicación va xenerar los pases que tienes d'introducir cuando anicies la sesión." manual_instructions: 'Si nun pues escaniar el códigu QR ya tienes d''introducilu manualmente, equí tienes el secretu en testu ensin formatu:' setup: Configurar + wrong_code: "¡El códigu introducíu nun yera válidu! ¿La hora del sirvidor y la del preséu son correutes?" pagination: next: Siguiente truncate: "…" @@ -668,6 +683,7 @@ ast: authorized_apps: Aplicaciones autorizaes back: Volver a Mastodon development: Desendolcu + edit_profile: Edición del perfil export: Esportación de datos featured_tags: Etiquetes destacaes import: Importación @@ -761,6 +777,7 @@ ast: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil + edit_profile_step: Pues personalizar el perfil pente la xuba d'una semeya, el cambéu del nome visible y muncho más. Tamién, si lo prefieres, pues revisar los perfiles nuevos enantes de que puedan siguite. explanation: Equí tienes dalgunos conseyos pa que comiences final_action: Comenzar a espublizar subject: Afáyate en Mastodon diff --git a/config/locales/be.yml b/config/locales/be.yml index 18ec633767..ea5d01764c 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -614,6 +614,7 @@ be: comment: none: Пуста comment_description_html: 'Каб даць больш інфармацыі, %{name} напісаў:' + confirm_action: Пацвердзіць мадэрацыю супраць @%{acct} created_at: Створана delete_and_resolve: Выдаліць допісы forwarded: Пераслана @@ -644,10 +645,20 @@ be: statuses: Змесціва, на якое паскардзіліся statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга summary: + actions: + delete_html: Выдаліць абразлівы допіс + mark_as_sensitive_html: Пазначыць медыя абразлівага допіса як далікатнае + suspend_html: Прыпыніць @%{acct}, зрабіць профіль і змесціва недаступным і не даваць магчымасці ўзаемадзейнічаць з імі close_report: 'Пазначыць скаргу #%{id} як вырашаную' + close_reports_html: Адзначыць усе скаргі супраць @%{acct} як вырашаныя + delete_data_html: Выдаліць профіль @%{acct} і змесціва праз 30 дзён, калі тым часам гэтае дзеянне не будзе адменена + preview_preamble_html: "@%{acct} атрымае папярэджанне наступнага зместу:" + send_email_html: Адправіць @%{acct} папярэджанне па электроннай пошце + warning_placeholder: Неабавязковае дадатковае абгрунтаванне мадэрацыі. target_origin: Крыніца уліковага запісу на які пададзена скарга title: Скаргі unassign: Скінуць + unknown_action_msg: 'Невядомае дзеянне: %{action}' unresolved: Нявырашаныя updated_at: Абноўлена view_profile: Паглядзець профіль @@ -1430,6 +1441,7 @@ be: activity: Актыўнасць ул. запісу confirm_follow_selected_followers: Вы ўпэўнены, што жадаеце падпісацца на выбраных падпісчыкаў? confirm_remove_selected_followers: Вы ўпэўнены, што жадаеце выдаліць выбраных падпісчыкаў? + confirm_remove_selected_follows: Вы ўпэўнены, што жадаеце выдаліць выбраныя падпіскі? dormant: Занядбаны follow_selected_followers: Падпісацца на выбраных падпісчыкаў followers: Падпісчыкі diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml index 68a90171c6..1c13490e53 100644 --- a/config/locales/devise.eo.yml +++ b/config/locales/devise.eo.yml @@ -6,7 +6,7 @@ eo: send_instructions: Vi ricevos retmesaĝon kun instrukcioj por konfirmi vian retadreson ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. send_paranoid_instructions: Se via retadreso ekzistas en nia datumbazo, vi ricevos retmesaĝon kun instrukcioj por konfirmi vian retadreson ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. failure: - already_authenticated: Vi jam ensalutis. + already_authenticated: Vi jam salutis. inactive: Via konto ankoraŭ ne estas konfirmita. invalid: Nevalida %{authentication_keys} aŭ pasvorto. last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita. diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml index dd49b6df42..9dc9f2167b 100644 --- a/config/locales/devise.ko.yml +++ b/config/locales/devise.ko.yml @@ -8,42 +8,42 @@ ko: failure: already_authenticated: 이미 로그인 된 상태입니다. inactive: 계정이 아직 활성화 되지 않았습니다. - invalid: 알맞지 않은 %{authentication_keys} 혹은 암호입니다. + invalid: 올바르지 않은 %{authentication_keys} 혹은 암호입니다. last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다. locked: 계정이 잠겼습니다. - not_found_in_database: 알맞지 않은 %{authentication_keys} 혹은 암호입니다. + not_found_in_database: 올바르지 않은 %{authentication_keys} 혹은 암호입니다. pending: 이 계정은 아직 검토 중입니다. timeout: 세션이 만료 되었습니다. 다시 로그인 해 주세요. unauthenticated: 계속 하려면 로그인을 해야 합니다. unconfirmed: 계속 하려면 이메일을 확인 받아야 합니다. mailer: confirmation_instructions: - action: 이메일 주소 검증 + action: 이메일 확인 action_with_app: 확인하고 %{app}으로 돌아가기 explanation: 당신은 %{host}에서 이 이메일로 가입하셨습니다. 클릭만 하시면 계정이 활성화 됩니다. 만약 당신이 가입한 게 아니라면 이 메일을 무시해 주세요. explanation_when_pending: 당신은 %{host}에 가입 요청을 하셨습니다. 이 이메일이 확인 되면 우리가 가입 요청을 리뷰하고 승인할 수 있습니다. 그 전까지는 로그인을 할 수 없습니다. 당신의 가입 요청이 거부 될 경우 당신에 대한 정보는 모두 삭제 되며 따로 요청 할 필요는 없습니다. 만약 당신이 가입 요청을 한 게 아니라면 이 메일을 무시해 주세요. extra_html: 서버의 규칙이용 약관도 확인해 주세요. subject: '마스토돈: %{instance}에 대한 확인 메일' - title: 이메일 주소 검증 + title: 이메일 주소 확인 email_changed: explanation: '귀하의 계정이 다음의 이메일 주소로 변경됩니다:' extra: 만약 이메일을 바꾸지 않았다면 누군가 계정에 대한 접근 권한을 얻은 것입니다. 바로 암호를 바꾸셔야 하며, 만약 계정이 잠겼다면 서버의 운영자에게 연락 바랍니다. subject: '마스토돈: 이메일이 변경 되었습니다' title: 새 이메일 주소 password_change: - explanation: 계정의 암호를 바꾸었습니다. + explanation: 계정 암호가 변경되었습니다. extra: 만약 패스워드 변경을 하지 않았다면 누군가가 당신의 계정에 대한 접근 권한을 얻은 것입니다. 즉시 패스워드를 바꾼 후, 계정이 잠겼다면 서버의 관리자에게 연락 하세요. - subject: 'Mastodon: 암호 변경함' - title: 암호 변경함 + subject: 'Mastodon: 암호 변경됨' + title: 암호 변경됨 reconfirmation_instructions: explanation: 이메일 주소를 바꾸려면 새 이메일 주소를 확인해야 합니다. extra: 당신이 시도한 것이 아니라면 이 메일을 무시해 주세요. 위 링크를 클릭하지 않으면 이메일 변경은 일어나지 않습니다. subject: '마스토돈: %{instance}에 대한 이메일 확인' - title: 이메일 주소 검증 + title: 이메일 주소 확인 reset_password_instructions: action: 암호 변경 - explanation: 계정에 새 암호를 쓰도록 요청받았습니다. - extra: 요청하지 않았다면 이 이메일을 무시하셔야 합니다. 상기 링크에 접속하지 않으면 암호는 새것으로 변경되지 않습니다. + explanation: 계정에 대한 패스워드 변경을 요청하였습니다. + extra: 만약 당신이 시도한 것이 아니라면 이 메일을 무시해 주세요. 위 링크를 클릭해 패스워드를 새로 설정하기 전까지는 패스워드가 바뀌지 않습니다. subject: 'Mastodon: 암호 재설정 설명' title: 암호 재설정 two_factor_disabled: @@ -81,7 +81,7 @@ ko: failure: '"%{reason}" 때문에 당신을 %{kind}에서 인증할 수 없습니다.' success: "%{kind} 계정을 성공적으로 인증했습니다." passwords: - no_token: 이 페이지는 암호 재설정 이메일을 거쳐야 접근할 수 있습니다. 만약 암호 재설정 이메일 거치지 않았다면 사용하려는 URL이 맞는지 확인 바랍니다. + no_token: 이 페이지는 암호 재설정 이메일을 거쳐야 접근할 수 있습니다. 만약 암호 재설정 이메일 거치지 않았다면 입력한 URL이 맞는지 확인 바랍니다. send_instructions: 당신의 이메일 주소가 우리의 DB에 있다면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. send_paranoid_instructions: 당신의 이메일 주소가 우리의 DB에 있다면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. updated: 암호를 잘 바꾸었습니다. 현재 로그인 상태입니다. diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index 70a429bf61..695f9e4b04 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -49,6 +49,7 @@ ast: description_html: Estes son les aplicaciones que puen acceder a la cuenta cola API. Si equí hai aplicaciones que nun conoces o hai dalguna aplicación que nun funciona correutamente, pues revocar el so accesu. never_used: Enxamás s'usó scopes: Permisos + title: Les aplicaciones qu'autoricesti errors: messages: access_denied: El propietariu del recursu o'l sirvidor d'autorización negó la solicitú. diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml index aa16bdf42b..18005fc3ab 100644 --- a/config/locales/doorkeeper.eo.yml +++ b/config/locales/doorkeeper.eo.yml @@ -149,9 +149,19 @@ eo: scopes: admin:read: legu ĉiujn datumojn en la servilo admin:read:accounts: legi konfidencajn informojn de ĉiuj kontoj + admin:read:canonical_email_blocks: legi sentemajn informojn de ĉiuj kanonikaj retpoŝtaj blokoj + admin:read:domain_allows: legi sentemajn informojn de ĉiuj domajno permesas + admin:read:domain_blocks: legi sentemajn informojn de ĉiuj domajnaj blokoj + admin:read:email_domain_blocks: legi sentemajn informojn pri ĉiuj retpoŝtaj domajnaj blokoj + admin:read:ip_blocks: legi sentivajn informojn de ĉiuj IP-blokoj admin:read:reports: legi konfidencajn informojn de ĉiuj signaloj kaj signalitaj kontoj admin:write: modifi ĉiujn datumojn en la servilo admin:write:accounts: plenumi agojn de kontrolo sur kontoj + admin:write:canonical_email_blocks: fari moderigajn agojn sur kanonikaj retpoŝtaj blokoj + admin:write:domain_allows: fari moderigajn agojn sur domajno permesas + admin:write:domain_blocks: fari moderigajn agojn sur domajnaj blokoj + admin:write:email_domain_blocks: fari moderigajn agojn pri retpoŝtaj domajnaj blokoj + admin:write:ip_blocks: fari moderigajn agojn pri IP-blokoj admin:write:reports: plenumi agojn de kontrolo sur signaloj crypto: uzi fin-al-finan ĉifradon follow: ŝanĝi rilatojn al aliaj kontoj diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index 6fb149b7ed..d8262dae98 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -152,9 +152,16 @@ ru: 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.tr.yml b/config/locales/doorkeeper.tr.yml index d9966d2004..46ab470acd 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -19,7 +19,7 @@ tr: doorkeeper: applications: buttons: - authorize: İzin Ver + authorize: Yetkilendir cancel: İptal Et destroy: Yok Et edit: Düzenle @@ -29,19 +29,19 @@ tr: edit: title: Uygulamayı düzenle form: - error: Hata! Olası hatalar için formunuzu kontrol edin + error: Opps! Olası hatalar için formunuzu kontrol edin help: native_redirect_uri: Yerel testler için %{native_redirect_uri} kullanın - redirect_uri: URL başına bir satır kullanın + redirect_uri: URL başına tek satır kullanın scopes: Kapsamları boşluklarla ayırın. Varsayılan kapsamları kullanmak için boş bırakın. index: application: Uygulama - callback_url: Geri Dönüş URL + callback_url: Geri Dönüş bağlantısı delete: Sil empty: Hiç uygulamanız yok. name: İsim new: Yeni uygulama - scopes: Kapsam + scopes: Kapsamlar show: Göster title: Uygulamalarınız new: @@ -49,13 +49,13 @@ tr: show: actions: Eylemler application_id: İstemci anahtarı - callback_urls: Callback URL + callback_urls: Geri Dönüş bağlantıları scopes: Kapsamlar secret: İstemci gizli anahtarı title: 'Uygulama: %{name}' authorizations: buttons: - authorize: İzin Ver + authorize: Yetkilendir deny: Reddet error: title: Bir hata oluştu diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 496d240a05..17fea72274 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -178,7 +178,54 @@ en-GB: create_announcement: Create Announcement create_canonical_email_block: Create E-mail Block create_custom_emoji: Create Custom Emoji + create_domain_allow: Create Domain Allow + create_domain_block: Create Domain Block + create_email_domain_block: Create E-mail Domain Block + create_ip_block: Create IP rule + create_unavailable_domain: Create Unavailable Domain + create_user_role: Create Role + demote_user: Demote User + destroy_announcement: Delete Announcement + destroy_canonical_email_block: Delete E-mail Block + destroy_custom_emoji: Delete Custom Emoji + destroy_domain_allow: Delete Domain Allow + destroy_domain_block: Delete Domain Block + destroy_email_domain_block: Delete E-mail Domain Block + destroy_instance: Purge Domain + destroy_ip_block: Delete IP rule + destroy_status: Delete Post + destroy_unavailable_domain: Delete Unavailable Domain + destroy_user_role: Destroy Role + disable_2fa_user: Disable 2FA + disable_custom_emoji: Disable Custom Emoji + disable_sign_in_token_auth_user: Disable E-mail Token Authentication for User + disable_user: Disable User + enable_custom_emoji: Enable Custom Emoji + enable_sign_in_token_auth_user: Enable E-mail Token Authentication for User + enable_user: Enable User + memorialize_account: Memorialise Account + promote_user: Promote User + reject_appeal: Reject Appeal + reject_user: Reject User + remove_avatar_user: Remove Avatar + reopen_report: Reopen Report + resend_user: Resend Confirmation Mail + reset_password_user: Reset Password + resolve_report: Resolve Report + sensitive_account: Force-Sensitive Account + silence_account: Limit Account + suspend_account: Suspend Account unassigned_report: Unassign Report + unblock_email_account: Unblock email address + unsensitive_account: Undo Force-Sensitive Account + unsilence_account: Undo Limit Account + unsuspend_account: Unsuspend Account + update_announcement: Update Announcement + update_custom_emoji: Update Custom Emoji + update_domain_block: Update Domain Block + update_ip_block: Update IP rule + update_status: Update Post + update_user_role: Update Role roles: categories: devops: DevOps @@ -237,6 +284,14 @@ en-GB: seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' webauthn_credentials: + delete: Delete + delete_confirmation: Are you sure you want to delete this security key? + description_html: If you enable security key authentication, logging in will require you to use one of your security keys. + destroy: + error: There was a problem deleting you security key. Please try again. + success: Your security key was successfully deleted. + invalid_credential: Invalid security key + nickname_hint: Enter the nickname of your new security key not_enabled: You haven't enabled WebAuthn yet not_supported: This browser doesn't support security keys otp_required: To use security keys please enable two-factor authentication first. diff --git a/config/locales/eo.yml b/config/locales/eo.yml index dc783a82cc..ce532d6029 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -117,6 +117,7 @@ eo: reject: Malakcepti rejected_msg: Sukcese malaprobis aliĝ-peton de %{username} remote_suspension_irreversible: La informoj de ĉi tiu konto estis neinversigeble forigitaj. + remote_suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forigitaj je %{date}. Ĝis tiam, la konto povas esti malsuspendita sen flankefiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari tion sube. remove_avatar: Forigi la profilbildon remove_header: Forigi kapan bildon removed_avatar_msg: La rolfiguro de %{username} estas sukcese forigita @@ -440,6 +441,7 @@ eo: private_comment_description_html: 'Por helpi vin, importitaj blokoj kreitas kun la privata komento: %{comment}' private_comment_template: Enportita el %{source} je %{date} title: Importi domajnblokojn + invalid_domain_block: '1 au pli da domajnblokadoj ignoritas ĉar la eraro: %{error}' new: title: Importi domajnblokojn no_file: Neniu dosiero elektita @@ -574,7 +576,10 @@ eo: mark_as_sensitive_description_html: La audovidaĵo en la raportita mesaĝo markotas kiel sentema kaj admono rekorditas. other_description_html: Vidu pli da ebloj por regi la sintenon de la konto kaj por personigi la komunikadon kun la raportita konto. resolve_description_html: Nenio okazotas al la raportita konto kaj la raporto fermotas. + silence_description_html: La konto estos videbla al nur personoj kiu jam sekvis ĝin au permane serĉo ĝin, ege limigante ĝian atingon. Malfermi ciujn raportojn kontra ĉi tiun konton. + suspend_description_html: La konto kaj ciuj ĝiaj enhavoj estos neatingebla kaj poŝte forigitas, kaj interagi per ĝi estos neebla. Malfermi ciujn raportojn kontra ĉi tiu konto. actions_description_html: Decidu kiu ago por solvi ĉi tiuj raporto. Spamo kategorio elektitas. + actions_description_remote_html: Decidu kiun klopodon por solvi ĉi tiun raporton. Ĉi tiu efikas kiel nur via servilo komuniki per ĉi tiu fora konto kaj trakti ĝian enhavon. add_to_report: Aldoni pli al raporto are_you_sure: Ĉu vi certas? assign_to_self: Asigni al mi @@ -585,6 +590,7 @@ eo: comment: none: Nenio comment_description_html: 'Por doni pli da informo, %{name} skribis:' + confirm_action: Konfirmi moderigadagon kontra @%{acct} created_at: Signalita delete_and_resolve: Forigi afiŝojn forwarded: Plusendita @@ -621,10 +627,17 @@ eo: silence_html: 'Vi ja tuj limigos kelke da afiŝoj de @%{acct}. Tio faros kiel:' suspend_html: 'Vi ja tuj suspendos la konton de @%{acct}. Tio faros kiel:' actions: + delete_html: Forigi la sentemajn afiŝojn + mark_as_sensitive_html: Markigi la audovidaĵojn de sentemaj afiŝoj kiel sentemaj + silence_html: Ege limigi atingon de @%{acct} per kauzi ilia profilo kaj enhavoj esti videbla nur al personoj kiu jam sekvis ilin au permane serĉi ĝin suspend_html: Suspendi @%{acct}, fari ties profilon kaj enhavojn neatingeblaj kaj maleblaj interagi kun close_report: 'Marki la raporto #%{id} kiel solvita' close_reports_html: Marki ĉiuj raportoj kontraŭ @%{acct} kiel solvitaj + delete_data_html: Forigi profilon kaj enhavojn de @%{acct} post 30 tagoj se ili ne malsuspenditas dum la dauro + preview_preamble_html: "@%{acct} akiros averton kun ĉi tiuj enhavoj:" + record_strike_html: Rekordu admonon kontra @%{acct} por helpi vi plikontroli estontajn malobservojn de ĉi tiu konto send_email_html: Sendi al @%{acct} retpoŝtaĵon de averto + warning_placeholder: Nedeviga aldona kialo por la moderigadago. target_origin: Origino de raportita konto title: Signaloj unassign: Malasigni @@ -990,6 +1003,7 @@ eo: email_settings_hint_html: La konfirmretpoŝto senditas al %{email}. title: Agordi sign_in: + preamble_html: Ensalutu per via detaloj de %{domain}. Se via konto gastigantigas sur malsama servilo, vi ne povas ensaluti ĉi tie. title: Saluti en %{domain} sign_up: preamble: Per konto ĉe ĉi tiu Mastodon-servilo, vi povas sekvi ajn personojn en la reto. @@ -1382,6 +1396,7 @@ eo: unrecognized_emoji: ne estas rekonita emoĝio relationships: activity: Konta aktiveco + confirm_follow_selected_followers: Ĉu vi certas ke vi volas sekvi la elektitajn sekvantojn? confirm_remove_selected_followers: Ĉu vi certas, ke vi volas forigi la elektitajn sekvantojn? confirm_remove_selected_follows: Ĉu vi certas, ke vi volas forigi la elektitajn sekvatojn? dormant: Dormanta diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 16a1b6650a..cbff5c237a 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -441,6 +441,7 @@ fi: private_comment_description_html: 'Tuodun estolistan alkuperän selvillä pitämiseksi, lisätään tietojen yhteyteen seuraava yksityinen kommentti: %{comment}' private_comment_template: Tuotu lähteestä %{source}, pvm %{date} title: Tuo luettelo verkkoalue-estoista + invalid_domain_block: 'Yksi tai useampi verkkotunnuksen lohko ohitettiin seuraavien virheiden vuoksi: %{error}' new: title: Tuo luettelo verkkoalue-estoista no_file: Yhtäkään tiedostoa ei ole valittu @@ -575,7 +576,10 @@ fi: mark_as_sensitive_description_html: Ilmoitettujen viestien media merkitään arkaluonteisiksi ja varoitus tallennetaan, jotta voit kärjistää saman tilin tulevia rikkomuksia. other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja ilmoitetun tilin viestinnän mukauttamiseksi. resolve_description_html: Ilmoitettua tiliä vastaan ei ryhdytä toimenpiteisiin, varoitusta ei kirjata ja raportti suljetaan. + silence_description_html: Tili näkyy vain niille, jotka jo seuraavat sitä tai estävät sen manuaalisesti, mikä rajoittaa merkittävästi sen kattavuutta. Se voidaan aina palauttaa. Sulkee kaikki raportit tätä tiliä vastaan. + suspend_description_html: Tili ja kaikki sen sisältö eivät ole käytettävissä ja vuorovaikutus sen kanssa on mahdotonta, sekä lopulta poistetaan. Palautettava 30 päivän kuluessa. Sulkee kaikki raportit tätä tiliä vastaan. actions_description_html: Päätä, mihin toimiin ryhdyt tämän ilmoituksen ratkaisemiseksi. Jos ryhdyt rangaistustoimeen ilmoitettua tiliä vastaan, heille lähetetään sähköposti-ilmoitus, paitsi jos Roskaposti luokka on valittuna. + actions_description_remote_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Tämä vaikuttaa vain siihen, miten palvelimesi kommunikoi tämän etätilin kanssa ja käsittelee sen sisältöä. add_to_report: Lisää raporttiin are_you_sure: Oletko varma? assign_to_self: Ota tehtäväksi @@ -629,7 +633,9 @@ fi: suspend_html: Rajoita @%{acct}, jolloin heidän profiilinsa ja sisällönsä ei ole käytettävissä ja on mahdotonta olla vuorovaikutuksessa close_report: 'Merkitse raportti #%{id} selvitetyksi' close_reports_html: Merkitse kaikki käyttäjään @%{acct} kohdistuvat raportit ratkaistuiksi + delete_data_html: Poista @%{acct}profiili ja sisältö 30 päivän kuluttua, ellei jäädytystä tällä välin peruuteta preview_preamble_html: "@%{acct} saa varoituksen, jonka sisältö on seuraava:" + record_strike_html: Tallenna varoitus @%{acct} vastaan, joka auttaa sinua selvittämään tulevia rikkomuksia tältä tililtä send_email_html: Lähetä käyttäjälle @%{acct} varoitus sähköpostitse warning_placeholder: Valinnaiset lisäperustelut moderointitoimenpiteelle. target_origin: Raportoidun tilin alkuperä @@ -730,6 +736,7 @@ fi: preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi. profile_directory: Profiilihakemisto public_timelines: Julkiset aikajanat + publish_discovered_servers: Julkaise löydetyt palvelimet publish_statistics: Julkaise tilastot title: Löytäminen trends: Trendit diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 2f362ab669..a216953e3e 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -100,7 +100,7 @@ ko: no_limits_imposed: 제한 없음 no_role_assigned: 할당된 역할 없음 not_subscribed: 구독하지 않음 - pending: 계류된 검토 + pending: 심사 대기 perform_full_suspension: 정지 previous_strikes: 이전의 처벌들 previous_strikes_description_html: @@ -297,7 +297,7 @@ ko: create: 공지사항 생성 title: 새 공지사항 publish: 게시 - published_msg: 공지사항을 잘 발행했습니다! + published_msg: 공지사항이 성공적으로 발행되었습니다! scheduled_for: "%{time}에 예약됨" scheduled_msg: 공지의 발행이 예약되었습니다! title: 공지사항 @@ -422,7 +422,7 @@ ko: title: 새 이메일 도메인 차단 no_email_domain_block_selected: 아무 것도 선택 되지 않아 어떤 이메일 도메인 차단도 변경되지 않았습니다 resolved_dns_records_hint_html: 도메인 네임은 다음의 MX 도메인으로 연결되어 있으며, 이메일을 받는데 필수적입니다. MX 도메인을 차단하면 같은 MX 도메인을 사용하는 어떤 이메일이라도 가입할 수 없게 되며, 보여지는 도메인이 다르더라도 적용됩니다. 주요 이메일 제공자를 차단하지 않도록 조심하세요. - resolved_through_html: "%{domain}을 통해 해결됨" + resolved_through_html: "%{domain}을 통해 리졸빙됨" title: Email 도메인 차단 export_domain_allows: new: @@ -467,7 +467,7 @@ ko: description_html: 이 도메인과 하위 도메인의 모든 계정에 적용될 콘텐츠 정책을 정의할 수 있습니다. policies: reject_media: 미디어 거부 - reject_reports: 신고 반려 + reject_reports: 신고 거부 silence: 제한 suspend: 정지 policy: 정책 @@ -558,7 +558,7 @@ ko: reports: account: notes: - other: "%{count}개의 참고사항" + other: "%{count} 개의 참고사항" action_log: 감사 기록 action_taken_by: 신고 처리자 actions: @@ -590,9 +590,9 @@ ko: mark_as_unresolved: 미해결로 표시 no_one_assigned: 아무도 없음 notes: - create: 기록 추가 - create_and_resolve: 종결 및 참고사항 기재 - create_and_unresolve: 재검토 및 참고사항 기재 + create: 참고사항 추가 + create_and_resolve: 참고사항 기재 및 종결 + create_and_unresolve: 참고사항 기재 및 재개 delete: 삭제 placeholder: 어떤 대응을 했는지 설명 또는 그 밖의 관련된 갱신 사항들 title: 참고사항 @@ -794,7 +794,7 @@ ko: sidekiq_process_check: message_html: "%{value} 큐에 대한 사이드킥 프로세스가 발견되지 않았습니다. 사이드킥 설정을 검토해주세요" tags: - review: 검토 상태 + review: 심사 상태 updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다 title: 관리 trends: @@ -815,7 +815,7 @@ ko: title: 유행하는 링크 usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다 only_allowed: 허용된 것만 - pending_review: 계류된 검토 + pending_review: 심사 대기 preview_card_providers: allowed: 이 출처의 링크는 유행 목록에 실릴 수 있습니다 description_html: 당신의 서버에서 많은 링크가 공유되고 있는 도메인들입니다. 링크의 도메인이 승인되기 전까지는 링크들은 공개적으로 트렌드에 게시되지 않습니다. 당신의 승인(또는 거절)은 서브도메인까지 확장됩니다. @@ -897,7 +897,7 @@ ko: subject: "%{username} 님이 %{instance}에서 발생한 중재 결정에 대해 소명을 제출했습니다" new_pending_account: body: 아래에 새 계정에 대한 상세정보가 있습니다. 이 가입을 승인하거나 거부할 수 있습니다. - subject: "%{instance}의 새 계정(%{username}) 검토" + subject: "%{instance}의 새 계정(%{username})에 대한 심사가 대기중입니다" new_report: body: "%{reporter} 님이 %{target}를 신고했습니다" body_remote: "%{domain}의 누군가가 %{target}을 신고했습니다" @@ -912,7 +912,7 @@ ko: no_approved_tags: 현재 승인된 유행 중인 해시태그가 없습니다. requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 해시태그를 앞지를 수 있으며, 이것은 현재 #%{lowest_tag_name}이고 %{lowest_tag_score}점을 기록하고 있습니다.' title: 유행하는 해시태그 - subject: "%{instance}의 새 유행물 검토" + subject: 새 트렌드가 %{instance}에서 심사 대기 중입니다 aliases: add_new: 별칭 만들기 created_msg: 새 별칭이 성공적으로 만들어졌습니다. 이제 기존 계정에서 이주를 시작할 수 있습니다. @@ -1009,7 +1009,7 @@ ko: follow_request: '당신은 다음 계정에 팔로우 신청을 했습니다:' following: '성공! 당신은 다음 계정을 팔로우 하고 있습니다:' post_follow: - close: 또한, 그저 이 창을 닫을 수도 있습니다. + close: 혹은, 그저 이 창을 닫을 수도 있습니다. return: 사용자 프로필 보기 web: 웹으로 가기 title: "%{acct} 를 팔로우" @@ -1047,7 +1047,7 @@ ko: proceed: 계정 삭제 success_msg: 계정이 성공적으로 삭제되었습니다 warning: - before: '진행 전, 참고사항을 주의 깊게 읽기 바랍니다:' + before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' caches: 다른 서버에 캐싱된 정보들은 남아있을 수 있습니다 data_removal: 당신의 게시물과 다른 정보들은 영구적으로 삭제 됩니다 email_change_html: 계정을 지우지 않고도 이메일 주소를 수정할 수 있습니다 @@ -1218,7 +1218,7 @@ ko: '86400': 하루 expires_in_prompt: 영원히 generate: 생성 - invited_by: '초대자:' + invited_by: '당신을 초대한 사람:' max_uses: other: "%{count}회" max_uses_prompt: 제한 없음 @@ -1270,7 +1270,7 @@ ko: set_redirect: 리디렉션 설정 warning: backreference_required: 새 계정은 이 계정으로 역참조를 하도록 설정되어 있어야 합니다 - before: '진행 전, 참고사항을 주의 깊게 읽기 바랍니다:' + before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 휴식기간이 존재합니다 disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다. followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다 @@ -1282,7 +1282,7 @@ ko: move_handler: carry_blocks_over_text: 이 사용자는 당신이 차단한 %{acct}로부터 이주 했습니다. carry_mutes_over_text: 이 사용자는 당신이 뮤트한 %{acct}로부터 이주 했습니다. - copy_account_note_text: '이 사용자는 %{acct}에서 옮겨왔으며 이전의 참고사항은 다음과 같습니다:' + copy_account_note_text: '이 사용자는 %{acct}로부터 이동하였습니다. 당신의 이전 노트는 이렇습니다:' navigation: toggle_menu: 토글 메뉴 notification_mailer: diff --git a/config/locales/my.yml b/config/locales/my.yml index ae5a59e092..0a0826a65b 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -1,5 +1,258 @@ --- my: + about: + title: အကြောင်း + accounts: + follow: စောင့်ကြည့်မယ် + followers: + other: စောင့်ကြည့်သူ + following: စောင့်ကြည့်နေသည် + last_active: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် + posts: + other: ပို့စ်တင်မယ် + posts_tab_heading: ပို့စ်များ + admin: + accounts: + are_you_sure: သေချာပါသလား။ + avatar: ကိုယ်စားပြုရုပ်ပုံ + by_domain: ဒိုမိန်း + change_email: + changed_msg: အီးမေးလ် ပြောင်းလဲပြီးပါပြီ။ + current_email: လက်ရှိအီးမေးလ် + label: အီးမေးလ်ပြောင်းရန် + new_email: အီးမေးလ်အသစ် + submit: အီးမေးလ်ပြောင်းပါ။ + title: "%{username} အတွက် အီးမေးလ်ပြောင်းပါ" + confirm: အတည်ပြု + confirmed: အတည်ပြုပြီးပါပြီ + confirming: အတည်ပြုနေသည် + custom: စိတ်ကြိုက် + delete: အချက်အလက်များဖျက်ပါ + deleted: ဖျက်ပြီးပါပြီ + disable_two_factor_authentication: 2FA ကို ပိတ်ပါ + domain: ဒိုမိန်း + edit: ပြင်ဆင်ရန် + email: အီးမေးလ် + enabled: ဖွင့်ထားသည် + followers: စောင့်ကြည့်သူများ + ip: IP + location: + all: အားလုံး + remote: အဝေးမှ + title: တည်နေရာ + login_status: အကောင့်ဝင်ရောက်မှုအခြေအနေ + media_attachments: မီဒီယာ ပူးတွဲချက်များ + moderation: + all: အားလုံး + public: အများမြင် + reject: ဖယ်ရှားပါ + remove_avatar: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ + reset: ပြန်သတ်မှတ်မည် + search: ရှာရန် + security_measures: + only_password: စကားဝှက်ဖြင့်သာ + password_and_2fa: စကားဝှက်နှင့် 2FA + silence: ကန့်သတ် + silenced: ကန့်သတ်ထားသည် + statuses: ပို့စ်များ + subscribe: စာရင်းသွင်းပါ + suspend: ရပ်ဆိုင်းပါ + suspended: ရပ်ဆိုင်းထားသည် + title: အကောင့်များ + unsubscribe: စာရင်းမှထွက်ရန် + unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ" + username: အသုံးပြုသူအမည် + web: ဝဘ် + action_logs: + action_types: + create_announcement: ကြေညာချက်ဖန်တီးပါ + create_custom_emoji: စိတ်ကြိုက်အီမိုဂျီ ဖန်တီးပါ + destroy_status: Post ကို ဖျက်ပါ + disable_2fa_user: 2FA ကို ပိတ်ပါ + disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ + remove_avatar_user: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ + silence_account: အကောင့် ကန့်သတ်ပါ + suspend_account: အကောင့် ရပ်ဆိုင်းပါ + update_status: ပို့စ်ပြင်ဆင်ရန် + deleted_account: အကောင့်ဖျက်ပြီးပါပြီ + announcements: + destroyed_msg: ကြေညာချက် ဖျက်ပြီးပါပြီ + edit: + title: ကြေညာချက် ပြင်ဆင်ရန် + empty: ကြေညာချက်များမတွေ့ပါ + new: + create: ကြေညာချက်ဖန်တီးပါ + title: ကြေညာချက်အသစ် + publish: ပို့စ်တင်မည် + title: ကြေညာချက်များ + unpublish: ပြန်ဖြုတ်ပါ + unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ + updated_msg: ကြေညာချက်ကို ပြင်ဆင်ပြီးပါပြီ။ + custom_emojis: + by_domain: ဒိုမိန်း + copy: ကူးယူပါ + delete: ဖျက်ပါ + disable: ပိတ်ပါ + disabled: ပိတ်ပြီးပါပြီ + emoji: အီမိုဂျီ + enable: ဖွင့်ပါ + enabled: ဖွင့်ထားသည် + image_hint: PNG သို့မဟုတ် GIF %{size} အထိ + list: စာရင်း + listed: စာရင်းသွင်းထားသည် + new: + title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ + title: စိတ်ကြိုက်အီမိုဂျီများ + unlisted: စာရင်းမသွင်းထားပါ + update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ + updated_msg: အီမိုဂျီကို ပြင်ဆင်ပြီးပါပြီ။ + dashboard: + new_users: အသုံးပြုသူအသစ်များ + website: ဝဘ်ဆိုဒ် + domain_blocks: + domain: ဒိုမိန်း + new: + severity: + silence: ကန့်သတ် + suspend: ရပ်ဆိုင်းပါ + private_comment: သီးသန့်မှတ်ချက် + email_domain_blocks: + delete: ဖျက်ပါ + domain: ဒိုမိန်း + new: + create: ဒိုမိန်းထည့်ပါ + export_domain_allows: + no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ။ + export_domain_blocks: + no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ + follow_recommendations: + language: ဘာသာစကားအတွက် + instances: + back_to_all: အားလုံး + back_to_limited: ကန့်သတ်ထားသည် + content_policies: + policies: + silence: ကန့်သတ် + policy: မူဝါဒ + dashboard: + instance_followers_measure: ကျွန်ုပ်တို့၏စောင့်ကြည့်သူများ အဲ့ဒီနေရာမှာပါ + instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ + delivery: + all: အားလုံး + moderation: + all: အားလုံး + limited: ကန့်သတ်ထားသော + private_comment: သီးသန့်မှတ်ချက် + public_comment: အများမြင်မှတ်ချက် + total_storage: မီဒီယာ ပူးတွဲချက်များ + invites: + filter: + all: အားလုံး + available: ရရှိနိုင်သော + ip_blocks: + delete: ဖျက်ပါ + expires_in: + '1209600': 2 weeks + '15778476': 6 months + '2629746': 1 month + '31556952': 1 year + '86400': 1 day + '94670856': ၃ နှစ် + title: IP စည်းမျဉ်းများ + relays: + delete: ဖျက်ပါ + disable: ပိတ်ပါ + disabled: ပိတ်ထားသည် + enable: ဖွင့်ပါ + enabled: ဖွင့်ထားသည် + reports: + delete_and_resolve: ပို့စ်များကို ဖျက်ပါ + view_profile: ပရိုဖိုင်ကိုကြည့်ရန် + roles: + categories: + devops: DevOps + delete: ဖျက်ပါ + permissions_count: + other: "%{count} ခွင့်ပြုချက်" + privileges: + manage_announcements: ကြေညာချက်များကို စီမံပါ + manage_settings: သတ်မှတ်ချက်များကို စီမံပါ + manage_users: အသုံးပြုသူများကို စီမံပါ + view_devops: DevOps + rules: + delete: ဖျက်ပါ + title: ဆာဗာစည်းမျဉ်းများ + settings: + about: + title: အကြောင်း + statuses: + account: ရေးသားသူ + back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန် + deleted: ဖျက်ပြီးပါပြီ + language: ဘာသာစကား + media: + title: မီဒီယာ + trends: + allow: ခွင့်ပြု + disallow: ခွင့်မပြု + tags: + not_usable: အသုံးမပြုနိုင်ပါ + usable: အသုံးပြုနိုင်သည် + warning_presets: + add_new: အသစ်ထည့်ပါ + delete: ဖျက်ပါ + webhooks: + delete: ဖျက်ပါ + enable: ဖွင့်ပါ + appearance: + localization: + guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။ + application_mailer: + view_profile: ပရိုဖိုင်ကိုကြည့်ရန် + view_status: ပို့စ်ကိုကြည့်ရန် + auth: + change_password: စကားဝှက် + delete_account: အကောင့်ဖျက်ပါ + logout: ထွက်မယ် + providers: + cas: CAS + saml: SAML + set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။ + status: + account_status: အကောင့်အခြေအနေ + authorize_follow: + follow: စောင့်ကြည့်မယ် + follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်- + post_follow: + web: ဝဘ်သို့ သွားပါ + title: "%{acct} ကို စောင့်ကြည့်မယ်" + challenge: + confirm: ဆက်လုပ်မည် + invalid_password: စကားဝှက် မမှန်ပါ + date: + formats: + default: "%b %d, %Y" + with_month_name: "%B %d, %Y" + datetime: + distance_in_words: + about_x_hours: "%{count}h" + about_x_months: "%{count}mo" + about_x_years: "%{count}y" + almost_x_years: "%{count}y" + half_a_minute: အခုလေးတင် + less_than_x_seconds: အခုလေးတင် + over_x_years: "%{count}y" + x_days: "%{count}y" + x_minutes: "%{count}m" + x_months: "%{count}mo" + x_seconds: "%{count}s" + deletes: + proceed: အကောင့်ဖျက်ပါ + success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ + disputes: + strikes: + status: "#%{id} ပို့စ်" + title: "%{date} မှ %{action}" errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -8,3 +261,91 @@ my: '410': The page you were looking for doesn't exist here anymore. '429': Too many requests '503': The page could not be served due to a temporary server failure. + exports: + archive_takeout: + date: ရက်စွဲ + size: အရွယ်အစား + csv: CSV + lists: စာရင်းများ + featured_tags: + add_new: အသစ် ထည့်ပါ + filters: + contexts: + notifications: အကြောင်းကြားချက်များ + index: + delete: ဖျက်ပါ + statuses: + other: "%{count} ပို့စ်" + generic: + all: အားလုံး + today: ယနေ့ + invites: + expires_in: + '1800': ၃၀ မိနစ် + '21600': ၆ နာရီ + '3600': ၁ နာရီ + '43200': ၁၂ နာရီ + '604800': ၁ ပတ် + '86400': ၁ ရက် + login_activities: + authentication_methods: + otp: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အက်ပ် + password: စကားဝှက် + media_attachments: + validations: + images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ + migrations: + errors: + not_found: ရှာမတွေ့ပါ + notification_mailer: + follow: + title: စောင့်ကြည့်သူအသစ် + mention: + action: စာပြန်ရန် + subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည် + status: + subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ" + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T + privacy_policy: + title: ကိုယ်ရေးအချက်အလက်မူဝါဒ + relationships: + followers: စောင့်ကြည့်သူများ + following: စောင့်ကြည့်နေသည် + mutual: အပြန်အလှန်စောင့်ကြည့်ထားခြင်း + sessions: + platforms: + ios: iOS + linux: Linux + mac: macOS + settings: + edit_profile: ပရိုဖိုင်ပြင်ဆင်ရန် + statuses: + visibilities: + public: အများမြင် + statuses_cleanup: + min_age: + '1209600': ၂ ပတ် + '15778476': ၆ လ + '2629746': ၁ လ + '31556952': ၁ နှစ် + '5259492': ၂ လ + '604800': ၁ ပတ် + '63113904': ၂ နှစ် + '7889238': ၃ လ + time: + formats: + month: "%b %Y" + time: "%H:%M" + two_factor_authentication: + disable: 2FA ကို ပိတ်ပါ + enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည် + enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ diff --git a/config/locales/oc.yml b/config/locales/oc.yml index e77191865c..7af4a339da 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -36,14 +36,17 @@ oc: avatar: Avatar by_domain: Domeni change_email: + changed_msg: Adreça corrèctament cambiada ! current_email: Adreça actuala label: Cambiar d’adreça new_email: Novèla adreça submit: Cambiar l’adreça title: Cambiar l’adreça a %{username} change_role: + changed_msg: Ròtle corrèctament cambiat ! label: Cambiar lo ròtle no_role: Cap de ròtle + title: Cambiar lo ròtle de %{username} confirm: Confirmar confirmed: Confirmat confirming: Confirmacion @@ -88,6 +91,7 @@ oc: most_recent_ip: IP mai recenta no_account_selected: Cap de compte pas cambiat estant que cap èra pas seleccionat no_limits_imposed: Cap de limit impausat + no_role_assigned: Cap de ròtle pas assignat not_subscribed: Pas seguidor pending: Revision en espèra perform_full_suspension: Suspendre diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9aa13fd458..b5fec6cfa7 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -744,6 +744,7 @@ ru: preamble: Наблюдение интересного контента играет важную роль при открытии новых пользователей, которые могут не знать ни одного Mastodon. Контролируйте как работают различные функции обнаружения на вашем сервере. profile_directory: Каталог профилей public_timelines: Публичные ленты + publish_discovered_servers: Публикация списка обнаруженных узлов title: Обзор trends: Популярное domain_blocks: @@ -1421,6 +1422,9 @@ ru: unrecognized_emoji: не является распознанным эмодзи relationships: activity: Активность учётной записи + confirm_follow_selected_followers: Вы уверены, что хотите подписаться на выбранных подписчиков? + confirm_remove_selected_followers: Вы уверены, что хотите удалить выбранных подписчиков? + confirm_remove_selected_follows: Вы уверены, что хотите удалить выбранные подписки? dormant: Заброшенная follow_selected_followers: Подписаться на выбранных подписчиков followers: Подписчики diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index 6a0dc22c4d..31501ed860 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -20,6 +20,7 @@ ast: irreversible: Los artículos peñeraos desapaecen de forma irreversible, magar que la peñera se quite dempués locale: La llingua de la interfaz, los mensaxes per corréu electrónicu ya los avisos push locked: Controla manualmente quién pue siguite pente l'aprobación de les solicitúes de siguimientu + password: Usa polo menos 8 caráuteres setting_display_media_default: Anubrilu cuando se marque como sensible setting_display_media_hide_all: Anubrilu siempres setting_display_media_show_all: Amosalu siempres diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index c248dab548..cdd1b34771 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -92,6 +92,7 @@ be: timeline_preview: Наведвальнікі, якія выйшлі, змогуць праглядаць апошнія публічныя допісы на серверы. trendable_by_default: Прапусціць ручны агляд трэндавага змесціва. Асобныя элементы ўсё яшчэ можна будзе выдаліць з трэндаў пастфактум. trends: Трэнды паказваюць, якія допісы, хэштэгі і навіны набываюць папулярнасць на вашым серверы. + trends_as_landing_page: Паказваць папулярнае змесціва карыстальнікам, якія выйшлі з сістэмы, і наведвальнікам, замест апісання гэтага сервера. Патрабуецца ўключэнне трэндаў. form_challenge: current_password: Вы ўваходзіце ў бяспечную зону imports: @@ -227,6 +228,7 @@ be: hide: Схаваць цалкам warn: Схаваць з папярэджаннем form_admin_settings: + activity_api_enabled: Апублікаваць зводную статыстыку аб актыўнасці карыстальнікаў API backups_retention_period: Працягласць захавання архіву карыстальніка bootstrap_timeline_accounts: Заўсёды раіць гэтыя ўліковыя запісы новым карыстальнікам closed_registrations_message: Уласнае паведамленне, калі рэгістрацыя немагчымая @@ -234,6 +236,7 @@ be: custom_css: CSS карыстальніка mascot: Уласны маскот(спадчына) media_cache_retention_period: Працягласць захавання кэшу для медыя + peers_api_enabled: Апублікаваць спіс знойдзеных сервераў у API profile_directory: Уключыць каталог профіляў registrations_mode: Хто можа зарэгістравацца require_invite_text: Каб далучыцца, патрэбна прычына @@ -245,11 +248,13 @@ be: site_short_description: Апісанне сервера site_terms: Палітыка канфідэнцыйнасці site_title: Назва сервера + status_page_url: URL старонкі статусу theme: Тэма па змаўчанні thumbnail: Мініяцюра сервера timeline_preview: Дазволіць неаўтэнтыфікаваны доступ да публічных стужак trendable_by_default: Дазваляць трэнды без папярэдняй праверкі trends: Уключыць трэнды + trends_as_landing_page: Выкарыстоўваць трэнды ў якасці лэндзінга interactions: must_be_follower: Заблакіраваць апавяшчэнні ад непадпісаных людзей must_be_following: Заблакіраваць апавяшчэнні ад людзей на якіх вы не падпісаны diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index a72823e289..c51fda6613 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -91,11 +91,13 @@ cy: site_short_description: Disgrifiad byr i helpu i adnabod eich gweinydd yn unigryw. Pwy sy'n ei redeg, ar gyfer pwy mae e? site_terms: Defnyddiwch eich polisi preifatrwydd eich hun neu gadewch yn wag i ddefnyddio'r rhagosodiad. Mae modd ei strwythuro gyda chystrawen Markdown. site_title: Sut y gall pobl gyfeirio at eich gweinydd ar wahân i'w enw parth. + status_page_url: URL tudalen lle gall pobl weld statws y gweinydd hwn yn ystod cyfnod o doriad gwasanaeth theme: Thema sy'n allgofnodi ymwelwyr a defnyddwyr newydd yn gweld. thumbnail: Delwedd tua 2:1 yn cael ei dangos ochr yn ochr â manylion eich gweinydd. timeline_preview: Bydd ymwelwyr sydd wedi allgofnodi yn gallu pori drwy'r postiadau cyhoeddus diweddaraf sydd ar gael ar y gweinydd. trendable_by_default: Hepgor adolygiad llaw o gynnwys sy'n tueddu. Gall eitemau unigol gael eu tynnu o dueddiadau o hyd ar ôl y ffaith. trends: Mae pynciau llosg yn dangos y postiadau, hashnodau, a newyddion sy'n denu sylw ar eich gweinydd. + trends_as_landing_page: Dangos cynnwys tueddiadol i ddefnyddwyr ac ymwelwyr sydd wedi allgofnodi yn lle disgrifiad o'r gweinydd hwn. Mae angen galluogi tueddiadau. form_challenge: current_password: Rydych chi'n mynd i mewn i ardal ddiogel imports: @@ -251,11 +253,13 @@ cy: site_short_description: Disgrifiad y gweinydd site_terms: Polisi Preifatrwydd site_title: Enw'r gweinydd + status_page_url: URL tudalen statws theme: Thema ragosodedig thumbnail: Lluniau bach gweinydd timeline_preview: Caniatáu mynediad heb ei ddilysu i linellau amser cyhoeddus trendable_by_default: Caniatáu pynciau llosg heb adolygiad trends: Galluogi pynciau llosg + trends_as_landing_page: Defnyddio tueddiadau fel y dudalen gartref interactions: must_be_follower: Blocio hysbysiadau o bobl nad ydynt yn eich dilyn must_be_following: Blocio hysbysiadau o bobl nad ydych yn eu dilyn diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 2ee277100a..6829286538 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -51,8 +51,8 @@ de: setting_aggregate_reblogs: Zeige denselben Beitrag nicht nochmal an, wenn er erneut geteilt wurde (dies betrifft nur neulich erhaltene erneut geteilte Beiträge) setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail verschickt, wenn du gerade auf Mastodon aktiv bist setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden erst nach einem zusätzlichen Klick angezeigt - setting_display_media_default: Medien mit Inhaltswarnung verbergen - setting_display_media_hide_all: Medien immer verbergen + setting_display_media_default: Medien mit Inhaltswarnung ausblenden + setting_display_media_hide_all: Medien immer ausblenden setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen setting_hide_network: Wem du folgst und wer dir folgt, wird in deinem Profil nicht angezeigt setting_noindex: Betrifft alle öffentlichen Daten deines Profils, z. B. deine Beiträge, Account-Empfehlungen und „Über mich“ @@ -204,7 +204,7 @@ de: setting_disable_swiping: Wischgesten deaktivieren setting_display_media: Medien-Anzeige setting_display_media_default: Standard - setting_display_media_hide_all: Alle Medien verbergen + setting_display_media_hide_all: Alle Medien ausblenden setting_display_media_show_all: Alle Medien anzeigen setting_expand_spoilers: Beiträge mit Inhaltswarnung immer ausklappen setting_hide_network: Deine Follower und „Folge ich“ nicht anzeigen @@ -230,7 +230,7 @@ de: name: Hashtag filters: actions: - hide: Komplett ausblenden + hide: Vollständig ausblenden warn: Mit einer Warnung ausblenden form_admin_settings: activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index 4f1a6341b3..d54248de08 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -18,6 +18,8 @@ eo: disable: Malhelpi la uzanton uzi sian konton, sed ne forigi aŭ kaŝi ties enhavojn. none: Uzu ĉi tion por sendi averton al la uzanto, sen ekigi alian agon. sensitive: Devigi ĉiujn da plurmediaj aldonaĵoj esti markitaj kiel sentemaj. + silence: Malhelpu la uzanton povi afiŝi kun publika videbleco, kaŝu iliajn afiŝojn kaj sciigojn de homoj, kiuj ne sekvas ilin. Fermas ĉiujn raportojn kontraŭ ĉi tiu konto. + suspend: Malhelpu ajnan interagadon de aŭ al ĉi tiu konto kaj forigu ĝian enhavon. Revertebla ene de 30 tagoj. Fermas ĉiujn raportojn kontraŭ ĉi tiu konto. warning_preset_id: Malnepra. Vi povas ankoraŭ aldoni propran tekston al la fino de la antaŭagordo announcement: all_day: Kiam markita, nur la datoj de la tempointervalo estos montrataj @@ -72,6 +74,7 @@ eo: hide: Tute kaŝigi la filtritajn enhavojn, kvazau ĝi ne ekzistis warn: Kaŝi la enhavon filtritan malantaŭ averto mencianta la nomon de la filtro form_admin_settings: + activity_api_enabled: Nombroj de loke publikigitaj afiŝoj, aktivaj uzantoj kaj novaj registradoj en semajnaj siteloj backups_retention_period: Konservi generitajn uzantoarkivojn por la kvanto de tagoj. bootstrap_timeline_accounts: Ĉi tiuj kontoj pinglitas al la supro de sekvorekomendoj de novaj uzantoj. closed_registrations_message: Montrita kiam registroj fermitas @@ -79,6 +82,7 @@ eo: custom_css: Vi povas meti propajn stilojn en la retversio de Mastodon. mascot: Anstatauigi la ilustraĵon en la altnivela retinterfaco. media_cache_retention_period: Elŝutitaj audovidaĵojn forigotas post la kvanto de tagoj kiam fiksitas al pozitiva nombro. + peers_api_enabled: Listo de domajnaj nomoj kiujn ĉi tiu servilo renkontis en la fediverso. Neniuj datumoj estas inkluditaj ĉi tie pri ĉu vi federacias kun donita servilo, nur ke via servilo scias pri ĝi. Ĉi tio estas uzata de servoj kiuj kolektas statistikojn pri federacio en ĝenerala signifo. profile_directory: La profilujo listigas ĉiujn uzantojn kiu volonte malkovrebli. require_invite_text: Kiam registroj bezonas permanan aprobon, igi la "Kial vi volas aliĝi?" tekstoenigon deviga anstau nedeviga site_contact_email: Kiel personoj povas kontakti vin por juraj au subtenaj demandoj. @@ -87,11 +91,13 @@ eo: site_short_description: Mallonga priskribo por helpi unike identigi vian servilon. Kiu faras, por kiu? site_terms: Uzu vian sian privatecan politekon au ignoru por uzi la defaulton. site_title: Kiel personoj voki vian servilon anstatau ĝia domajnnomo. + status_page_url: URL de paĝo kie homoj povas vidi la staton de ĉi tiu servilo dum malfunkcio theme: Etoso kiun elsalutitaj vizitantoj kaj novaj uzantoj vidas. thumbnail: Ĉirkaua 2:1 bildo montritas kun via servilinformo. timeline_preview: Elsalutitaj vizitantoj povos vidi la plej lastajn publikajn mesaĝojn disponeblaj en la servilo. trendable_by_default: Ignori permanan kontrolon de tendenca enhavo. trends: Tendencoj montras kiu mesaĝoj, kradvortoj kaj novaĵoj populariĝas en via servilo. + trends_as_landing_page: Montru tendencan enhavon al elsalutitaj uzantoj kaj vizitantoj anstataŭ priskribo de ĉi tiu servilo. Necesas ke tendencoj estu ebligitaj. form_challenge: current_password: Vi eniras sekuran areon imports: @@ -227,6 +233,7 @@ eo: hide: Kaŝi komplete warn: Kaŝi malantaŭ averto form_admin_settings: + activity_api_enabled: Publikigi entutajn statistikojn pri uzantagado en la API backups_retention_period: Uzantoarkivretendauro bootstrap_timeline_accounts: Ĉiam rekomendi ĉi tiujn kontojn al novaj uzantoj closed_registrations_message: Kutima mesaĝo kiam registroj ne estas disponeblaj @@ -234,6 +241,7 @@ eo: custom_css: Propa CSS mascot: Propa maskoto media_cache_retention_period: Audovidaĵkaŝaĵretendauro + peers_api_enabled: Eldonu liston de malkovritaj serviloj en la API profile_directory: Ŝalti la profilujon registrations_mode: Kiu povas krei konton require_invite_text: Bezoni kialon por aliĝi @@ -251,6 +259,7 @@ eo: timeline_preview: Permesi la neaŭtentigitan aliron al la publikaj templinioj trendable_by_default: Permesi tendencojn sen deviga kontrolo trends: Ŝalti furorojn + trends_as_landing_page: Uzu tendencojn kiel la landpaĝon interactions: must_be_follower: Bloki sciigojn de nesekvantoj must_be_following: Bloki sciigojn de homoj, kiujn vi ne sekvas diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 39c6befdfd..f22ba7a981 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -18,6 +18,7 @@ fi: disable: Estä käyttäjää käyttämästä tiliään, mutta älä poista tai piilota sen sisältöä. none: Käytä tätä lähettääksesi varoituksen käyttäjälle käynnistämättä mitään muita toimintoja. sensitive: Pakota kaikki tämän käyttäjän mediatiedostot arkaluontoisiksi. + silence: Estä käyttäjää lähettämästä viestejä julkisesti, piilota hänen viestinsä ja ilmoituksensa ihmisiltä, jotka eivät seuraa häntä. Sulkee kaikki tämän tilin raportit. suspend: Estä kaikki vuorovaikutus tältä -tai tälle tilille ja poista sen kaikki sisältö. Päätös voidaan peruuttaa 30 päivän aikana. Sulkee kaikki raportit tätä tiliä vasten. warning_preset_id: Valinnainen. Voit silti lisätä mukautetun tekstin esiasetuksen loppuun announcement: diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index d082262615..9cb8dae478 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -45,7 +45,7 @@ ko: irreversible: 필터링 된 게시물은 나중에 필터가 사라지더라도 돌아오지 않게 됩니다 locale: 사용자 인터페이스, 이메일, 푸시 알림 언어 locked: 팔로우 요청을 승인제로 두어 누가 당신을 팔로우 할 수 있는지를 수동으로 제어합니다. - password: 여덟 글자를 넘어야 합니다. + password: 최소 8글자 phrase: 게시물 내용이나 열람주의 내용 안에서 대소문자 구분 없이 매칭 됩니다 scopes: 애플리케이션에 허용할 API들입니다. 최상위 스코프를 선택하면 개별적인 것은 선택하지 않아도 됩니다. setting_aggregate_reblogs: 최근에 부스트 됐던 게시물은 새로 부스트 되어도 보여주지 않기 (새로 받은 부스트에만 적용됩니다) @@ -97,7 +97,7 @@ ko: timeline_preview: 로그아웃 한 사용자들이 이 서버에 있는 최신 공개글들을 볼 수 있게 합니다. trendable_by_default: 유행하는 콘텐츠에 대한 수동 승인을 건너뜁니다. 이 설정이 적용된 이후에도 각각의 항목들을 삭제할 수 있습니다. trends: 트렌드는 어떤 게시물, 해시태그 그리고 뉴스 기사가 이 서버에서 인기를 끌고 있는지 보여줍니다. - trends_as_landing_page: 로그아웃한 사용자와 방문자에게 서버 설명 대신하여 유행하는 내용을 보여줍니다. 유행 기능을 활성화해야 합니다. + trends_as_landing_page: 로그아웃한 사용자와 방문자에게 서버 설명 대신 유행하는 내용을 보여줍니다. 유행 기능을 활성화해야 합니다. form_challenge: current_password: 당신은 보안 구역에 진입하고 있습니다 imports: @@ -283,7 +283,7 @@ ko: follow: 누군가 나를 팔로우 했을 때 follow_request: 누군가 나를 팔로우 하길 요청할 때 mention: 누군가 나를 언급했을 때 - pending_account: 검토해야 할 새 계정 + pending_account: 새 계정이 심사가 필요할 때 reblog: 누군가 내 게시물을 부스트 했을 때 report: 새 신고가 접수되었을 때 trending_tag: 검토해야 할 새 유행 @@ -292,7 +292,7 @@ ko: tag: listable: 이 해시태그가 검색과 추천에 보여지도록 허용 name: 해시태그 - trendable: 이 해시태그를 유행에 나타나도록 허용 + trendable: 이 해시태그가 유행에 나타날 수 있도록 허용 usable: 이 해시태그를 게시물에 사용 가능하도록 허용 user: role: 역할 diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index c3343b4b84..7e23edf7dd 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -91,11 +91,13 @@ ru: site_short_description: Краткое описание, помогающее однозначно идентифицировать ваш сервер. Кто им управляет, для кого он предназначен? site_terms: Используйте свою собственную политику конфиденциальности или оставьте пустым, чтобы использовать политику по умолчанию. Можно использовать синтаксис Markdown. site_title: Как люди могут ссылаться на ваш сервер, помимо его доменного имени. + status_page_url: URL страницы, на которой люди могут видеть статус этого сервера во время отключения theme: Тема, которую видят вышедшие из системы посетители и новые пользователи. thumbnail: Изображение примерно 2:1, отображаемое рядом с информацией о вашем сервере. timeline_preview: Посетители, вышедшие из системы, смогут просматривать последние публичные сообщения, имеющиеся на сервере. trendable_by_default: Пропустить ручной просмотр трендового контента. Отдельные элементы могут быть удалены из трендов уже постфактум. trends: Тренды показывают, какие посты, хэштеги и новостные истории набирают обороты на вашем сервере. + trends_as_landing_page: Показывать популярный контент для выходов пользователей и посетителей, а не для описания этого сервера. Требует включения тенденций. form_challenge: current_password: Вы переходите к настройкам безопасности imports: @@ -251,11 +253,13 @@ ru: site_short_description: Описание сервера site_terms: Политика конфиденциальности site_title: Имя сервера + status_page_url: Страница уведомлений theme: Тема по умолчанию thumbnail: Изображение сервера timeline_preview: Разрешить доступ к публичным лентам без авторизации trendable_by_default: Разрешить треды без предварительной проверки trends: Включить тренды + trends_as_landing_page: Использовать тенденции в качестве целевой страницы interactions: must_be_follower: Присылать уведомления только от подписчиков must_be_following: Присылать уведомления только от людей на которых вы подписаны diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 3e0e7470d7..a2f42e2596 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -5,9 +5,9 @@ tr: account_alias: acct: Taşımak istediğiniz hesabı kullanıcıadı@alanadı şeklinde belirtin account_migration: - acct: Yeni hesabınızı kullanıcıadı@alanadını şeklinde belirtin + acct: Taşımak istediğiniz hesabın kullanıcıadı@alanadını belirtin account_warning_preset: - text: URL'ler, etiketler ve bahsedenler gibi gönderi sözdizimini kullanabilirsiniz + text: Bğlantılar, etiketler ve bahsedenler gibi gönderi sözdizimini kullanabilirsiniz title: İsteğe bağlı. Alıcıya görünmez admin_account_action: include_statuses: Kullanıcı hangi gönderilerin denetleme eylemi veya uyarısına neden olduğunu görecektir diff --git a/config/locales/sk.yml b/config/locales/sk.yml index d450fa08f7..c453ee125f 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -226,6 +226,7 @@ sk: destroy_domain_block_html: "%{name} odblokoval/i doménu %{target}" destroy_ip_block_html: "%{name} vymazal/a pravidlo pre IP %{target}" destroy_status_html: "%{name} zmazal/a príspevok od %{target}" + reject_appeal_html: "%{name} zamietol/la námietku moderovacieho rozhodnutia od %{target}" deleted_account: zmazaný účet empty: Žiadne záznamy nenájdené. filter_by_action: Filtruj podľa úkonu @@ -385,6 +386,7 @@ sk: dashboard: instance_accounts_dimension: Najsledovanejšie účty instance_accounts_measure: uložené účty + instance_follows_measure: ich sledovatelia tu instance_statuses_measure: uložené príspevky delivery: all: Všetko @@ -503,6 +505,7 @@ sk: categories: administration: Spravovanie invites: Pozvánky + moderation: Moderácia delete: Vymaž edit: Uprav postavenie %{name} privileges: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index c4379552c3..fb254e11b4 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -3,7 +3,7 @@ tr: about: about_mastodon_html: Mastodon ücretsiz ve açık kaynaklı bir sosyal ağdır. Merkezileştirilmemiş yapısı sayesinde diğer ticari sosyal platformların aksine iletişimininizin tek bir firmada tutulmasının/yönetilmesinin önüne geçer. Güvendiğiniz bir sunucuyu seçerek oradaki kişilerle etkileşimde bulunabilirsiniz. Herkes kendi Mastodon sunucusunu kurabilir ve sorunsuz bir şekilde Mastodon sosyal ağına dahil edebilir. contact_missing: Ayarlanmadı - contact_unavailable: Yok + contact_unavailable: Bulunamadı hosted_on: Mastodon %{domain} üzerinde barındırılıyor title: Hakkında accounts: @@ -11,7 +11,7 @@ tr: followers: one: Takipçi other: Takipçi - following: Takip edilenler + following: Takip ediliyor instance_actor_flash: Bu hesap, herhangi bir bireysel kullanıcı değil, sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür. Birleştirme amacıyla kullanılmaktadır ve askıya alınmamalıdır. last_active: son etkinlik link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi @@ -34,7 +34,7 @@ tr: add_email_domain_block: E-posta alan adını engelle approve: Onayla approved_msg: "%{username} adlı kullanıcının kayıt başvurusu başarıyla onaylandı" - are_you_sure: Emin misiniz? + are_you_sure: Emin misin? avatar: Profil resmi by_domain: Alan adı change_email: @@ -56,17 +56,17 @@ tr: delete: Veriyi sil deleted: Silindi demote: Düşür - destroyed_msg: "%{username} verilerinin hemen silinmesi için kuyruğa alındı" - disable: Devre dışı + destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı" + disable: Dondur disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak - disable_two_factor_authentication: 2AD kapat + disable_two_factor_authentication: 2 adımlı doğrulamayı kapat disabled: Kapalı display_name: Görünen isim domain: Alan adı edit: Düzenle email: E-posta email_status: E-posta durumu - enable: Etkinleştir + enable: Dondurmayı Kaldır enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir enabled: Etkin enabled_msg: "%{username} hesabı başarıyla çözüldü" @@ -634,6 +634,8 @@ tr: close_reports_html: "@%{acct} hesabına yönelik tüm bildirimleri çözüldü olarak işaretle" delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa @%{acct} hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil preview_preamble_html: "@%{acct} aşağıdaki içerikle bir uyarı alacaktır:" + send_email_html: "@%{acct} adlı kullanıcıya uyarı e-maili gönder" + warning_placeholder: İsteğe bağlı ek nedenden denetim eylemi. target_origin: Şikayet edilen hesabın kökeni title: Şikayetler unassign: Atamayı geri al From bae17ebe5eab02879599ae8516cf6b3f6736b450 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 22:03:35 +0100 Subject: [PATCH 0376/1220] Fix attached media uploads not being cleared when replying to a post (#23504) --- .../mastodon/features/compose/components/upload.js | 5 +++++ app/javascript/mastodon/reducers/compose.js | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.js index 20f58ee754..f114680b93 100644 --- a/app/javascript/mastodon/features/compose/components/upload.js +++ b/app/javascript/mastodon/features/compose/components/upload.js @@ -31,6 +31,11 @@ export default class Upload extends ImmutablePureComponent { render () { const { media } = this.props; + + if (!media) { + return null; + } + const focusX = media.getIn(['meta', 'focus', 'x']); const focusY = media.getIn(['meta', 'focus', 'y']); const x = ((focusX / 2) + .5) * 100; diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 77faa96a40..783d748ae3 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -330,6 +330,8 @@ export default function compose(state = initialState, action) { map.set('preselectDate', new Date()); map.set('idempotencyKey', uuid()); + map.update('media_attachments', list => list.filter(media => media.get('unattached'))); + if (action.status.get('language') && !action.status.has('translation')) { map.set('language', action.status.get('language')); } else { From 719bb799be9a03b767bd9f55d30abf2b7bc318ec Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 10 Feb 2023 16:04:13 -0500 Subject: [PATCH 0377/1220] Remove DesspSouce config (#23513) --- .deepsource.toml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .deepsource.toml diff --git a/.deepsource.toml b/.deepsource.toml deleted file mode 100644 index bcd3104124..0000000000 --- a/.deepsource.toml +++ /dev/null @@ -1,23 +0,0 @@ -version = 1 - -test_patterns = ["app/javascript/mastodon/**/__tests__/**"] - -exclude_patterns = [ - "db/migrate/**", - "db/post_migrate/**" -] - -[[analyzers]] -name = "ruby" -enabled = true - -[[analyzers]] -name = "javascript" -enabled = true - - [analyzers.meta] - environment = [ - "browser", - "jest", - "nodejs" - ] From 0c9eac80d887cdf7f1efa582b21006248d2f83eb Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 22:16:37 +0100 Subject: [PATCH 0378/1220] Fix unbounded recursion in post discovery (#23506) * Add a limit to how many posts can get fetched as a result of a single request * Add tests * Always pass `request_id` when processing `Announce` activities --------- Co-authored-by: nametoolong --- app/lib/activitypub/activity.rb | 7 +- app/lib/activitypub/activity/create.rb | 6 +- .../fetch_remote_status_service.rb | 13 ++- .../activitypub/fetch_replies_service.rb | 4 +- app/services/fetch_remote_status_service.rb | 4 +- app/services/resolve_url_service.rb | 2 +- .../activitypub/fetch_replies_worker.rb | 4 +- app/workers/fetch_reply_worker.rb | 4 +- app/workers/thread_resolve_worker.rb | 4 +- spec/lib/activitypub/activity/add_spec.rb | 4 +- .../fetch_remote_status_service_spec.rb | 94 +++++++++++++++++++ .../fetch_remote_status_service_spec.rb | 2 +- 12 files changed, 126 insertions(+), 22 deletions(-) diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index f4c67cccd7..900428e920 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -106,7 +106,8 @@ class ActivityPub::Activity actor_id = value_or_id(first_of_value(@object['attributedTo'])) if actor_id == @account.uri - return ActivityPub::Activity.factory({ 'type' => 'Create', 'actor' => actor_id, 'object' => @object }, @account).perform + virtual_object = { 'type' => 'Create', 'actor' => actor_id, 'object' => @object } + return ActivityPub::Activity.factory(virtual_object, @account, request_id: @options[:request_id]).perform end end @@ -152,9 +153,9 @@ class ActivityPub::Activity def fetch_remote_original_status if object_uri.start_with?('http') return if ActivityPub::TagManager.instance.local_uri?(object_uri) - ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first) + ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id]) elsif @object['url'].present? - ::FetchRemoteStatusService.new.call(@object['url']) + ::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id]) end end diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index cfad62a6bf..487b652237 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -327,18 +327,18 @@ class ActivityPub::Activity::Create < ActivityPub::Activity def resolve_thread(status) return unless status.reply? && status.thread.nil? && Request.valid_url?(in_reply_to_uri) - ThreadResolveWorker.perform_async(status.id, in_reply_to_uri) + ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id]}) end def fetch_replies(status) collection = @object['replies'] return if collection.nil? - replies = ActivityPub::FetchRepliesService.new.call(status, collection, false) + replies = ActivityPub::FetchRepliesService.new.call(status, collection, allow_synchronous_requests: false, request_id: @options[:request_id]) return unless replies.nil? uri = value_or_id(collection) - ActivityPub::FetchRepliesWorker.perform_async(status.id, uri) unless uri.nil? + ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id]}) unless uri.nil? end def conversation_from_uri(uri) diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index 21b9242f82..936737bf66 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -2,10 +2,13 @@ class ActivityPub::FetchRemoteStatusService < BaseService include JsonLdHelper + include Redisable + + DISCOVERIES_PER_REQUEST = 1000 # Should be called when uri has already been checked for locality def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil) - @request_id = request_id + @request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}" @json = begin if prefetched_body.nil? fetch_resource(uri, id, on_behalf_of) @@ -42,7 +45,13 @@ class ActivityPub::FetchRemoteStatusService < BaseService # activity as an update rather than create activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.where(uri: object_uri, account_id: actor.id).exists? - ActivityPub::Activity.factory(activity_json, actor, request_id: request_id).perform + with_redis do |redis| + discoveries = redis.incr("status_discovery_per_request:#{@request_id}") + redis.expire("status_discovery_per_request:#{@request_id}", 5.minutes.seconds) + return nil if discoveries > DISCOVERIES_PER_REQUEST + end + + ActivityPub::Activity.factory(activity_json, actor, request_id: @request_id).perform end private diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb index 8cb309e52a..18a27e851d 100644 --- a/app/services/activitypub/fetch_replies_service.rb +++ b/app/services/activitypub/fetch_replies_service.rb @@ -3,14 +3,14 @@ class ActivityPub::FetchRepliesService < BaseService include JsonLdHelper - def call(parent_status, collection_or_uri, allow_synchronous_requests = true) + def call(parent_status, collection_or_uri, allow_synchronous_requests: true, request_id: nil) @account = parent_status.account @allow_synchronous_requests = allow_synchronous_requests @items = collection_items(collection_or_uri) return if @items.nil? - FetchReplyWorker.push_bulk(filtered_replies) + FetchReplyWorker.push_bulk(filtered_replies) { |reply_uri| [reply_uri, { 'request_id' => request_id}] } @items end diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb index eafde4d4a5..08c2d24ba1 100644 --- a/app/services/fetch_remote_status_service.rb +++ b/app/services/fetch_remote_status_service.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class FetchRemoteStatusService < BaseService - def call(url, prefetched_body = nil) + def call(url, prefetched_body: nil, request_id: nil) if prefetched_body.nil? resource_url, resource_options = FetchResourceService.new.call(url) else @@ -9,6 +9,6 @@ class FetchRemoteStatusService < BaseService resource_options = { prefetched_body: prefetched_body } end - ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) unless resource_url.nil? + ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options.merge(request_id: request_id)) unless resource_url.nil? end end diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb index 52f35daf37..d8e795f3b0 100644 --- a/app/services/resolve_url_service.rb +++ b/app/services/resolve_url_service.rb @@ -25,7 +25,7 @@ class ResolveURLService < BaseService if equals_or_includes_any?(type, ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) ActivityPub::FetchRemoteActorService.new.call(resource_url, prefetched_body: body) elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES) - status = FetchRemoteStatusService.new.call(resource_url, body) + status = FetchRemoteStatusService.new.call(resource_url, prefetched_body: body) authorize_with @on_behalf_of, status, :show? unless status.nil? status end diff --git a/app/workers/activitypub/fetch_replies_worker.rb b/app/workers/activitypub/fetch_replies_worker.rb index 54d98f228b..d72bad7452 100644 --- a/app/workers/activitypub/fetch_replies_worker.rb +++ b/app/workers/activitypub/fetch_replies_worker.rb @@ -6,8 +6,8 @@ class ActivityPub::FetchRepliesWorker sidekiq_options queue: 'pull', retry: 3 - def perform(parent_status_id, replies_uri) - ActivityPub::FetchRepliesService.new.call(Status.find(parent_status_id), replies_uri) + def perform(parent_status_id, replies_uri, options = {}) + ActivityPub::FetchRepliesService.new.call(Status.find(parent_status_id), replies_uri, **options.deep_symbolize_keys) rescue ActiveRecord::RecordNotFound true end diff --git a/app/workers/fetch_reply_worker.rb b/app/workers/fetch_reply_worker.rb index f7aa25e815..68a7414beb 100644 --- a/app/workers/fetch_reply_worker.rb +++ b/app/workers/fetch_reply_worker.rb @@ -6,7 +6,7 @@ class FetchReplyWorker sidekiq_options queue: 'pull', retry: 3 - def perform(child_url) - FetchRemoteStatusService.new.call(child_url) + def perform(child_url, options = {}) + FetchRemoteStatusService.new.call(child_url, **options.deep_symbolize_keys) end end diff --git a/app/workers/thread_resolve_worker.rb b/app/workers/thread_resolve_worker.rb index 1b77dfdd93..3206c45f63 100644 --- a/app/workers/thread_resolve_worker.rb +++ b/app/workers/thread_resolve_worker.rb @@ -6,9 +6,9 @@ class ThreadResolveWorker sidekiq_options queue: 'pull', retry: 3 - def perform(child_status_id, parent_url) + def perform(child_status_id, parent_url, options = {}) child_status = Status.find(child_status_id) - parent_status = FetchRemoteStatusService.new.call(parent_url) + parent_status = FetchRemoteStatusService.new.call(parent_url, **options.deep_symbolize_keys) return if parent_status.nil? diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index e6408b610f..0b08e2924a 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -48,7 +48,7 @@ RSpec.describe ActivityPub::Activity::Add do end it 'fetches the status and pins it' do - allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil| + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| expect(uri).to eq 'https://example.com/unknown' expect(id).to eq true expect(on_behalf_of&.following?(sender)).to eq true @@ -62,7 +62,7 @@ RSpec.describe ActivityPub::Activity::Add do context 'when there is no local follower' do it 'tries to fetch the status' do - allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil| + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| expect(uri).to eq 'https://example.com/unknown' expect(id).to eq true expect(on_behalf_of).to eq nil diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 7359ca0b43..a81dcad818 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -223,4 +223,98 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do end end end + + context 'statuses referencing other statuses' do + before do + stub_const 'ActivityPub::FetchRemoteStatusService::DISCOVERIES_PER_REQUEST', 5 + end + + context 'using inReplyTo' do + let(:object) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://foo.bar/@foo/1", + type: 'Note', + content: 'Lorem ipsum', + inReplyTo: 'https://foo.bar/@foo/2', + attributedTo: ActivityPub::TagManager.instance.uri_for(sender), + } + end + + before do + 8.times do |i| + status_json = { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://foo.bar/@foo/#{i}", + type: 'Note', + content: 'Lorem ipsum', + inReplyTo: "https://foo.bar/@foo/#{i + 1}", + attributedTo: ActivityPub::TagManager.instance.uri_for(sender), + to: 'as:Public', + }.with_indifferent_access + stub_request(:get, "https://foo.bar/@foo/#{i}").to_return(status: 200, body: status_json.to_json, headers: { 'Content-Type': 'application/activity+json' }) + end + end + + it 'creates at least some statuses' do + expect { subject.call(object[:id], prefetched_body: Oj.dump(object)) }.to change { sender.statuses.count }.by_at_least(2) + end + + it 'creates no more account than the limit allows' do + expect { subject.call(object[:id], prefetched_body: Oj.dump(object)) }.to change { sender.statuses.count }.by_at_most(5) + end + end + + context 'using replies' do + let(:object) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://foo.bar/@foo/1", + type: 'Note', + content: 'Lorem ipsum', + replies: { + type: 'Collection', + id: 'https://foo.bar/@foo/1/replies', + first: { + type: 'CollectionPage', + partOf: 'https://foo.bar/@foo/1/replies', + items: ['https://foo.bar/@foo/2'], + }, + }, + attributedTo: ActivityPub::TagManager.instance.uri_for(sender), + } + end + + before do + 8.times do |i| + status_json = { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://foo.bar/@foo/#{i}", + type: 'Note', + content: 'Lorem ipsum', + replies: { + type: 'Collection', + id: "https://foo.bar/@foo/#{i}/replies", + first: { + type: 'CollectionPage', + partOf: "https://foo.bar/@foo/#{i}/replies", + items: ["https://foo.bar/@foo/#{i+1}"], + }, + }, + attributedTo: ActivityPub::TagManager.instance.uri_for(sender), + to: 'as:Public', + }.with_indifferent_access + stub_request(:get, "https://foo.bar/@foo/#{i}").to_return(status: 200, body: status_json.to_json, headers: { 'Content-Type': 'application/activity+json' }) + end + end + + it 'creates at least some statuses' do + expect { subject.call(object[:id], prefetched_body: Oj.dump(object)) }.to change { sender.statuses.count }.by_at_least(2) + end + + it 'creates no more account than the limit allows' do + expect { subject.call(object[:id], prefetched_body: Oj.dump(object)) }.to change { sender.statuses.count }.by_at_most(5) + end + end + end end diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index fe5f1aed19..4f6ad64967 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -15,7 +15,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do end context 'protocol is :activitypub' do - subject { described_class.new.call(note[:id], prefetched_body) } + subject { described_class.new.call(note[:id], prefetched_body: prefetched_body) } let(:prefetched_body) { Oj.dump(note) } before do From 70c0d754a6e0ceff80ee2853dbfb351da9fab2cd Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 22:21:23 +0100 Subject: [PATCH 0379/1220] Bump version to 4.1.0 (#23471) * Bump version to 4.1.0 * Editorialize changelog some more and highlight API changes * Update changelog --- CHANGELOG.md | 44 +++++++++++++++++++++++++++++------------ lib/mastodon/version.rb | 2 +- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 578a4f32ab..16bd63ceec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,19 +3,27 @@ Changelog All notable changes to this project will be documented in this file. -## [4.1.0] - UNRELEASED +## [4.1.0] - 2023-02-10 ### Added - **Add support for importing/exporting server-wide domain blocks** ([enbylenore](https://github.com/mastodon/mastodon/pull/20597), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/21471), [dariusk](https://github.com/mastodon/mastodon/pull/22803), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/21470)) -- 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), [tribela](https://github.com/mastodon/mastodon/pull/23178)) +- **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)) + - Previously, you could add and remove attachments, but not edit media description of already-attached media + - REST API changes: + - `PUT /api/v1/statuses/:id` now takes an extra `media_attributes[]` array parameter with the `id` of the updated media and their updated `description`, `focus`, and `thumbnail` +- **Add follow request banner on account header** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20785)) + - REST API changes: + - `Relationship` entities have an extra `requested_by` boolean attribute representing whether the represented user has requested to follow you +- **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)) - Add instance activity API endpoint toggle back to the admin interface ([dariusk](https://github.com/mastodon/mastodon/pull/22833)) +- Add setting for status page URL ([Gargron](https://github.com/mastodon/mastodon/pull/23390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23499)) + - REST API changes: + - Add `configuration.urls.status` attribute to the object returned by `GET /api/v1/instance` - Add `account.approved` webhook ([Saiv46](https://github.com/mastodon/mastodon/pull/22938)) - Add 12 hours option to polls ([Pleclown](https://github.com/mastodon/mastodon/pull/21131)) - Add dropdown menu item to open admin interface for remote domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21895)) @@ -25,6 +33,7 @@ All notable changes to this project will be documented in this file. - Add `tootctl accounts prune` ([tribela](https://github.com/mastodon/mastodon/pull/18397)) - Add `tootctl domains purge` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22063)) - Add `SIDEKIQ_CONCURRENCY` environment variable ([muffinista](https://github.com/mastodon/mastodon/pull/19589)) +- Add `DB_POOL` environment variable support for streaming server ([Gargron](https://github.com/mastodon/mastodon/pull/23470)) - Add `MIN_THREADS` environment variable to set minimum Puma threads ([jimeh](https://github.com/mastodon/mastodon/pull/21048)) - Add explanation text to log-in page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20946)) - Add user profile OpenGraph tag on post pages ([bramus](https://github.com/mastodon/mastodon/pull/21423)) @@ -39,12 +48,14 @@ All notable changes to this project will be documented in this file. - Add “disabled” account filter to the `/admin/accounts` UI ([tribela](https://github.com/mastodon/mastodon/pull/21282)) - Add transparency to modal background for accessibility ([edent](https://github.com/mastodon/mastodon/pull/18081)) - Add `lang` attribute to image description textarea and poll option field ([c960657](https://github.com/mastodon/mastodon/pull/23293)) +- Add `spellcheck` attribute to Content Warning and poll option input fields ([c960657](https://github.com/mastodon/mastodon/pull/23395)) - Add `title` attribute to video elements in media attachments ([bramus](https://github.com/mastodon/mastodon/pull/21420)) - Add left and right margins to emojis ([dsblank](https://github.com/mastodon/mastodon/pull/20464)) -- Add `roles` attribute to `Account` entities in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23255)) +- Add `roles` attribute to `Account` entities in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23255), [tribela](https://github.com/mastodon/mastodon/pull/23428)) - 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 `policy` attribute to web push subscription objects in REST API at `/api/v1/push/subscriptions` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23210)) +- Add metrics endpoint to streaming API ([Gargron](https://github.com/mastodon/mastodon/pull/23388), [Gargron](https://github.com/mastodon/mastodon/pull/23469)) - 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)) @@ -110,13 +121,14 @@ All notable changes to this project will be documented in this file. - Remove `object-fit` polyfill used for old versions of Microsoft Edge ([shuuji3](https://github.com/mastodon/mastodon/pull/22693)) - Remove `intersection-observer` polyfill for old Safari support ([shuuji3](https://github.com/mastodon/mastodon/pull/23284)) - Remove empty `title` tag from mailer layout ([nametoolong](https://github.com/mastodon/mastodon/pull/23078)) +- Remove post count and last posts from ActivityPub representation of hashtag collections ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23460)) ### Fixed - **Fix changing domain block severity not undoing individual account effects** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22135)) - 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 being stuck in edit mode when deleting the edited posts ([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 incorrect link in push notifications for some event types ([elizabeth-dev](https://github.com/mastodon/mastodon/pull/23286)) - Fix some performance issues with `/admin/instances` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21907)) @@ -125,16 +137,18 @@ All notable changes to this project will be documented in this file. - 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)) +- Fix attachments of edited posts not being fetched ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21565)) - Fix irreversible and whole_word parameters handling in `/api/v1/filters` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21988)) - 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 expanded posts 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 not being able to scroll in post history modal ([cadars](https://github.com/mastodon/mastodon/pull/23396)) - 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 admin-set follow recommandations being case-sensitive ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23500)) - Fix unserialized `role` on account entities in admin API ([Gargron](https://github.com/mastodon/mastodon/pull/23290)) - 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)) @@ -146,9 +160,11 @@ All notable changes to this project will be documented in this file. - 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)) +- Fix misleading message briefly showing up when loading follow requests under some conditions ([c960657](https://github.com/mastodon/mastodon/pull/23386)) +- Fix “Share @:user's profile” profile menu item not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21490)) - Fix crash and incorrect behavior in `tootctl domains crawl` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19004)) - Fix autoplay on iOS ([jamesadney](https://github.com/mastodon/mastodon/pull/21422)) +- Fix user clean-up scheduler crash when an unconfirmed account has a moderation note ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23318)) - Fix spaces not being stripped in admin account search ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21324)) - Fix spaces not being stripped when adding relays ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22655)) - Fix infinite loading spinner instead of soft 404 for non-existing remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21303)) @@ -158,7 +174,8 @@ All notable changes to this project will be documented in this file. - Fix UI header overflowing on mobile ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21783)) - Fix 500 error when trying to migrate to an invalid address ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21462)) - Fix crash when trying to fetch unobtainable avatar of user using external authentication ([lochiiconnectivity](https://github.com/mastodon/mastodon/pull/22462)) -- Fix potential duplicate statuses in Explore tab ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22121)) +- Fix processing error on incoming malformed JSON-LD under some situations ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23416)) +- Fix potential duplicate posts in Explore tab ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22121)) - Fix deprecation warning in `tootctl accounts rotate` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22120)) - Fix styling of featured tags in light theme ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23252)) - Fix missing style in warning and strike cards ([AtelierSnek](https://github.com/mastodon/mastodon/pull/22177), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/22302)) @@ -178,7 +195,7 @@ All notable changes to this project will be documented in this file. - Fix CSP violation warning by removing inline CSS from SVG logo ([luxiaba](https://github.com/mastodon/mastodon/pull/20814)) - Fix margin for search field on medium window size ([minacle](https://github.com/mastodon/mastodon/pull/21606)) - Fix search popout scrolling with the page in single-column mode ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/16463)) -- Fix minor status cache hydration discrepancy ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19879)) +- Fix minor post cache hydration discrepancy ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19879)) - Fix `・` detection in hashtags ([parthoghosh24](https://github.com/mastodon/mastodon/pull/22888)) - Fix hashtag follows bypassing user blocks ([tribela](https://github.com/mastodon/mastodon/pull/22849)) - Fix moved accounts being incorrectly redirected to account settings when trying to view a remote profile ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22497)) @@ -198,6 +215,7 @@ All notable changes to this project will be documented in this file. - Add `form-action` CSP directive ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20781), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20958), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20962)) - Fix unbounded recursion in account discovery ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22025)) - Revoke all authorized applications on password reset ([FrancisMurillo](https://github.com/mastodon/mastodon/pull/21325)) +- Fix unbounded recursion in post discovery ([ClearlyClaire,nametoolong](https://github.com/mastodon/mastodon/pull/23506)) ## [4.0.2] - 2022-11-15 ### Fixed diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 6d3baeecc1..8101e61dd2 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -17,7 +17,7 @@ module Mastodon end def flags - 'rc3' + '' end def suffix From 61c5dfb9295ea66c376c452a7ef7379e8c562416 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 22:48:49 +0100 Subject: [PATCH 0380/1220] Update changelog (#23515) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16bd63ceec..7a6998e8c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -129,6 +129,7 @@ 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 posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22126)) +- Fix attached media uploads not being cleared when replying to a post ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23504)) - Fix filters not being applied to some notification types ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23211)) - Fix incorrect link in push notifications for some event types ([elizabeth-dev](https://github.com/mastodon/mastodon/pull/23286)) - Fix some performance issues with `/admin/instances` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21907)) From c1b823368c894c80b586d37c85012ee766a32c0e Mon Sep 17 00:00:00 2001 From: emilweth <7402764+emilweth@users.noreply.github.com> Date: Sat, 11 Feb 2023 02:15:07 +0100 Subject: [PATCH 0381/1220] dot is not allowed (#23519) --- streaming/index.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index a8708ec78b..1121c77bf3 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -856,15 +856,15 @@ const startWorker = async (workerId) => { res.write('# TYPE connected_channels gauge\n'); res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); res.write(`connected_channels ${Object.keys(subs).length}.0\n`); - res.write('# TYPE pg.pool.total_connections gauge \n'); - res.write('# HELP pg.pool.total_connections The total number of clients existing within the pool\n'); - res.write(`pg.pool.total_connections ${pgPool.totalCount}.0\n`); - res.write('# TYPE pg.pool.idle_connections gauge \n'); - res.write('# HELP pg.pool.idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); - res.write(`pg.pool.idle_connections ${pgPool.idleCount}.0\n`); - res.write('# TYPE pg.pool.waiting_queries gauge \n'); - res.write('# HELP pg.pool.waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); - res.write(`pg.pool.waiting_queries ${pgPool.waitingCount}.0\n`); + res.write('# TYPE pg_pool_total_connections gauge \n'); + res.write('# HELP pg_pool_total_connections The total number of clients existing within the pool\n'); + res.write(`pg_pool_total_connections ${pgPool.totalCount}.0\n`); + res.write('# TYPE pg_pool_idle_connections gauge \n'); + res.write('# HELP pg_pool_idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); + res.write(`pg_pool_idle_connections ${pgPool.idleCount}.0\n`); + res.write('# TYPE pg_pool_waiting_queries gauge \n'); + res.write('# HELP pg_pool_waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); + res.write(`pg_pool_waiting_queries ${pgPool.waitingCount}.0\n`); res.write('# EOF\n'); res.end(); })); From 7c45145430d7f61c01de6a8c6a55b4c8588a67c4 Mon Sep 17 00:00:00 2001 From: emilweth <7402764+emilweth@users.noreply.github.com> Date: Sat, 11 Feb 2023 03:00:44 +0100 Subject: [PATCH 0382/1220] fix metrics format (#23520) --- streaming/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index 1121c77bf3..32e3babaa4 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -856,13 +856,13 @@ const startWorker = async (workerId) => { res.write('# TYPE connected_channels gauge\n'); res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); res.write(`connected_channels ${Object.keys(subs).length}.0\n`); - res.write('# TYPE pg_pool_total_connections gauge \n'); + res.write('# TYPE pg_pool_total_connections gauge\n'); res.write('# HELP pg_pool_total_connections The total number of clients existing within the pool\n'); res.write(`pg_pool_total_connections ${pgPool.totalCount}.0\n`); - res.write('# TYPE pg_pool_idle_connections gauge \n'); + res.write('# TYPE pg_pool_idle_connections gauge\n'); res.write('# HELP pg_pool_idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); res.write(`pg_pool_idle_connections ${pgPool.idleCount}.0\n`); - res.write('# TYPE pg_pool_waiting_queries gauge \n'); + res.write('# TYPE pg_pool_waiting_queries gauge\n'); res.write('# HELP pg_pool_waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); res.write(`pg_pool_waiting_queries ${pgPool.waitingCount}.0\n`); res.write('# EOF\n'); From e7b81d7d9625893b1323e12215a2a98c0f19f58f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 11 Feb 2023 04:02:07 +0100 Subject: [PATCH 0383/1220] Bump blurhash from 0.1.6 to 0.1.7 (#23517) --- Gemfile.lock | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3bd2d591df..2d7ee2df89 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -120,8 +120,7 @@ GEM bindata (2.4.14) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - blurhash (0.1.6) - ffi (~> 1.14) + blurhash (0.1.7) bootsnap (1.16.0) msgpack (~> 1.2) brakeman (5.4.0) From c812cfa667764ff3791fb5b5cd0dffc5ba2441da Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 02:34:17 -0500 Subject: [PATCH 0384/1220] Enable EditorConfig trailing whitespace trimming (#23543) --- .editorconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/.editorconfig b/.editorconfig index 5f8702cf89..b5217da4af 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,3 +10,4 @@ insert_final_newline = true charset = utf-8 indent_style = space indent_size = 2 +trim_trailing_whitespace = true From 8eb74c88ec3a2d8cc1ec722e3b7a74023ea341a8 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 12 Feb 2023 18:16:08 +0100 Subject: [PATCH 0385/1220] New Crowdin updates (#2100) * New translations en.json (Korean) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] --- .../flavours/glitch/locales/es.json | 16 +++++++++++ .../flavours/glitch/locales/ko.json | 1 + .../flavours/glitch/locales/pt-BR.json | 5 ++-- config/locales-glitch/es.yml | 9 ++++++ config/locales-glitch/pt-PT.yml | 28 ++++++++++++++++++- 5 files changed, 56 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json index 07acbf914c..7231fe1351 100644 --- a/app/javascript/flavours/glitch/locales/es.json +++ b/app/javascript/flavours/glitch/locales/es.json @@ -1,4 +1,10 @@ { + "account.follows": "Sigue", + "account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.", + "account.view_full_profile": "Ver perfil completo", + "account_note.cancel": "Cancelar", + "account_note.edit": "Editar", + "account_note.save": "Guardar", "advanced_options.icon_title": "Opciones avanzadas", "advanced_options.local-only.long": "No publicar a otras instancias", "advanced_options.local-only.short": "Local", @@ -6,9 +12,17 @@ "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", "advanced_options.threaded_mode.short": "Modo hilo", "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", + "column.favourited_by": "Marcado como favorito por", + "column.reblogged_by": "Retooteado por", + "column_header.profile": "Perfil", + "column_subheading.lists": "Listas", + "column_subheading.navigation": "Navegación", "compose.attach": "Adjuntar...", "compose.attach.doodle": "Dibujar algo", "compose.attach.upload": "Subir un archivo", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Sin formato", "confirmations.unfilter.author": "Publicado por", "confirmations.unfilter.confirm": "Mostrar", "confirmations.unfilter.edit_filter": "Editar filtro", @@ -91,5 +105,7 @@ "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", "settings.wide_view": "Vista amplia (solo modo de escritorio)", "status.collapse": "Colapsar", + "status.in_reply_to": "Este toot es una respuesta", + "status.is_poll": "Este toot es una encuesta", "status.uncollapse": "Descolapsar" } diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json index f17f32a9d4..045a3894b5 100644 --- a/app/javascript/flavours/glitch/locales/ko.json +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -103,6 +103,7 @@ "settings.auto_collapse_all": "모두", "settings.auto_collapse_lengthy": "긴 글", "settings.auto_collapse_media": "미디어 포함 글", + "settings.auto_collapse_height": "길이가 긴 것으로 간주할 툿이 높이 (픽셀 단위)", "settings.auto_collapse_notifications": "알림", "settings.auto_collapse_reblogs": "부스트", "settings.auto_collapse_replies": "답글", diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json index 0bc0d2beae..f658d3bdc8 100644 --- a/app/javascript/flavours/glitch/locales/pt-BR.json +++ b/app/javascript/flavours/glitch/locales/pt-BR.json @@ -103,6 +103,7 @@ "settings.auto_collapse_all": "Tudo", "settings.auto_collapse_lengthy": "Toots longos", "settings.auto_collapse_media": "Toots com mídia", + "settings.auto_collapse_height": "Altura (em pixels) para um toot ser considerado longo", "settings.auto_collapse_notifications": "Notificações", "settings.auto_collapse_reblogs": "Impulsos", "settings.auto_collapse_replies": "Respostas", @@ -112,7 +113,7 @@ "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.content_warnings": "Aviso de Conteúdo", "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", @@ -148,7 +149,7 @@ "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.preferences": "Preferências do usuário", "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", diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index d842deb673..f7f068faa0 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -1,6 +1,9 @@ --- es: admin: + custom_emojis: + batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}' + batch_error: 'Ocurrió un error %{message}' settings: hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix @@ -14,6 +17,12 @@ es: show_replies_in_public_timelines: desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas + trending_status_cw: + title: Permitir que toots con advertencias de contenido sean tendencia + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: Al igual que para glitch-soc! generic: use_this: Usar settings: diff --git a/config/locales-glitch/pt-PT.yml b/config/locales-glitch/pt-PT.yml index a1a2dc36b3..6af5de0a74 100644 --- a/config/locales-glitch/pt-PT.yml +++ b/config/locales-glitch/pt-PT.yml @@ -1 +1,27 @@ -pt-PT: +--- +pt: + admin: + custom_emojis: + batch_copy_error: 'Houve um erro ao copiar alguns dos emoji selecionados: %{message}' + batch_error: 'Houve um erro: %{message}' + settings: + captcha_enabled: + desc_html: Isto depende de scripts externos da hCaptcha, o que pode ser uma preocupação de segurança e privacidade. Além disso, isto pode tornar o processo de registo menos acessível para algumas pessoas (especialmente as com limitações físicas). Por isto, considera medidas alternativas tais como registo mediante aprovação ou sob convite.
    Pessoas que se registam com um convite não precisam de resolver um CAPTCHA + title: Exigir que novas contas resolvam um CAPTCHA para validar o registo + flavour_and_skin: + title: Sabor e tema + hide_followers_count: + desc_html: Não mostrar o número de seguidores nos perfis + title: Esconder o número de seguidores + other: + preamble: Várias opções do glitch-soc que não cabem noutras categorias. + title: Outras opções + outgoing_spoilers: + desc_html: Ao federar toots, juntar este aviso de conteúdo aos toots que não têm aviso. Isto é útil se o teu servidor for especializado em conteúdos que outros servidores podem querer ter sob um Aviso de Conteúdo. Os media também vão ser marcados como sensíveis. + title: Aviso de conteúdo para toots enviados + show_reblogs_in_public_timelines: + desc_html: Mostrar boosts públicos de toots públicos nas linhas de tempo locais e públicas. + title: Mostrar boosts nas timelines públicas + show_replies_in_public_timelines: + desc_html: Além de auto-respostas públicas (fios), mostrar as respostas públicas em linhas de tempo locais e públicas. + title: Mostrar respostas nas linhas de tempo públicas From ee4250545236e4330c46b43f4abfe94ad323d4d4 Mon Sep 17 00:00:00 2001 From: Dean Bassett Date: Sun, 12 Feb 2023 09:58:02 -0800 Subject: [PATCH 0386/1220] fix hashtag ordering (#2107) Co-authored-by: Eugen Rochko --- app/javascript/flavours/glitch/reducers/compose.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index bb42580d49..57ab36b3d8 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -282,9 +282,9 @@ const sortHashtagsByUse = (state, tags) => { if (usedA === usedB) { return 0; } else if (usedA && !usedB) { - return 1; - } else { return -1; + } else { + return 1; } }); }; From 0c9d455ea5540e854c2d879cd1df015ea493f622 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 22:57:03 -0500 Subject: [PATCH 0387/1220] Upgrade to Stylelint 15 with Prettier (#23558) --- .prettierignore | 3 + app/javascript/styles/fonts/roboto-mono.scss | 9 +- app/javascript/styles/fonts/roboto.scss | 24 ++-- .../styles/mastodon-light/diff.scss | 31 ++-- .../styles/mastodon/accessibility.scss | 5 +- app/javascript/styles/mastodon/admin.scss | 23 ++- app/javascript/styles/mastodon/basics.scss | 6 +- .../styles/mastodon/components.scss | 126 +++++++++++----- .../styles/mastodon/emoji_picker.scss | 2 +- app/javascript/styles/mastodon/forms.scss | 48 ++++--- app/javascript/styles/mastodon/modal.scss | 4 +- app/javascript/styles/mastodon/polls.scss | 10 +- app/javascript/styles/mastodon/rtl.scss | 18 ++- app/javascript/styles/mastodon/statuses.scss | 2 +- app/javascript/styles/mastodon/variables.scss | 31 ++-- app/javascript/styles/mastodon/widgets.scss | 2 +- lib/assets/wordmark.light.css | 4 +- package.json | 6 +- stylelint.config.js | 2 - yarn.lock | 134 +++++++++++------- 20 files changed, 311 insertions(+), 179 deletions(-) diff --git a/.prettierignore b/.prettierignore index f72354a42f..8279ac1a45 100644 --- a/.prettierignore +++ b/.prettierignore @@ -70,3 +70,6 @@ docker-compose.override.yml # Ignore locale files /app/javascript/mastodon/locales /config/locales + +# Ignore vendored CSS reset +app/javascript/styles/mastodon/reset.scss diff --git a/app/javascript/styles/fonts/roboto-mono.scss b/app/javascript/styles/fonts/roboto-mono.scss index 3802212a9b..10dd630099 100644 --- a/app/javascript/styles/fonts/roboto-mono.scss +++ b/app/javascript/styles/fonts/roboto-mono.scss @@ -1,11 +1,12 @@ @font-face { font-family: mastodon-font-monospace; - src: - local('Roboto Mono'), + src: local('Roboto Mono'), url('../fonts/roboto-mono/robotomono-regular-webfont.woff2') format('woff2'), url('../fonts/roboto-mono/robotomono-regular-webfont.woff') format('woff'), - url('../fonts/roboto-mono/robotomono-regular-webfont.ttf') format('truetype'), - url('../fonts/roboto-mono/robotomono-regular-webfont.svg#roboto_monoregular') format('svg'); + url('../fonts/roboto-mono/robotomono-regular-webfont.ttf') + format('truetype'), + url('../fonts/roboto-mono/robotomono-regular-webfont.svg#roboto_monoregular') + format('svg'); font-weight: 400; font-display: swap; font-style: normal; diff --git a/app/javascript/styles/fonts/roboto.scss b/app/javascript/styles/fonts/roboto.scss index 6571523807..672eab086c 100644 --- a/app/javascript/styles/fonts/roboto.scss +++ b/app/javascript/styles/fonts/roboto.scss @@ -1,11 +1,11 @@ @font-face { font-family: mastodon-font-sans-serif; - src: - local('Roboto Italic'), + src: local('Roboto Italic'), url('../fonts/roboto/roboto-italic-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-italic-webfont.woff') format('woff'), url('../fonts/roboto/roboto-italic-webfont.ttf') format('truetype'), - url('../fonts/roboto/roboto-italic-webfont.svg#roboto-italic-webfont') format('svg'); + url('../fonts/roboto/roboto-italic-webfont.svg#roboto-italic-webfont') + format('svg'); font-weight: normal; font-display: swap; font-style: italic; @@ -13,12 +13,12 @@ @font-face { font-family: mastodon-font-sans-serif; - src: - local('Roboto Bold'), + src: local('Roboto Bold'), url('../fonts/roboto/roboto-bold-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-bold-webfont.woff') format('woff'), url('../fonts/roboto/roboto-bold-webfont.ttf') format('truetype'), - url('../fonts/roboto/roboto-bold-webfont.svg#roboto-bold-webfont') format('svg'); + url('../fonts/roboto/roboto-bold-webfont.svg#roboto-bold-webfont') + format('svg'); font-weight: bold; font-display: swap; font-style: normal; @@ -26,12 +26,12 @@ @font-face { font-family: mastodon-font-sans-serif; - src: - local('Roboto Medium'), + src: local('Roboto Medium'), url('../fonts/roboto/roboto-medium-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-medium-webfont.woff') format('woff'), url('../fonts/roboto/roboto-medium-webfont.ttf') format('truetype'), - url('../fonts/roboto/roboto-medium-webfont.svg#roboto-medium-webfont') format('svg'); + url('../fonts/roboto/roboto-medium-webfont.svg#roboto-medium-webfont') + format('svg'); font-weight: 500; font-display: swap; font-style: normal; @@ -39,12 +39,12 @@ @font-face { font-family: mastodon-font-sans-serif; - src: - local('Roboto'), + src: local('Roboto'), url('../fonts/roboto/roboto-regular-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-regular-webfont.woff') format('woff'), url('../fonts/roboto/roboto-regular-webfont.ttf') format('truetype'), - url('../fonts/roboto/roboto-regular-webfont.svg#roboto-regular-webfont') format('svg'); + url('../fonts/roboto/roboto-regular-webfont.svg#roboto-regular-webfont') + format('svg'); font-weight: normal; font-display: swap; font-style: normal; diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index c37100a28f..01725cf968 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -152,7 +152,7 @@ html { } .compose-form__autosuggest-wrapper, -.poll__option input[type="text"], +.poll__option input[type='text'], .compose-form .spoiler-input__input, .compose-form__poll-wrapper select, .search__input, @@ -179,7 +179,9 @@ html { } .compose-form__poll-wrapper select { - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; } .compose-form__poll-wrapper, @@ -205,7 +207,9 @@ html { } .drawer__inner__mastodon { - background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; + background: $white + url('data:image/svg+xml;utf8,') + no-repeat bottom / 100% auto; } // Change the colors used in compose-form @@ -332,11 +336,13 @@ html { color: $white; } -.language-dropdown__dropdown__results__item .language-dropdown__dropdown__results__item__common-name { +.language-dropdown__dropdown__results__item + .language-dropdown__dropdown__results__item__common-name { color: lighten($ui-base-color, 8%); } -.language-dropdown__dropdown__results__item.active .language-dropdown__dropdown__results__item__common-name { +.language-dropdown__dropdown__results__item.active + .language-dropdown__dropdown__results__item__common-name { color: darken($ui-base-color, 12%); } @@ -490,7 +496,8 @@ html { background: darken($ui-secondary-color, 10%); } -.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track { +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) + .react-toggle-track { background: lighten($ui-highlight-color, 10%); } @@ -522,10 +529,10 @@ html { } .simple_form { - input[type="text"], - input[type="number"], - input[type="email"], - input[type="password"], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], textarea { &:hover { border-color: lighten($ui-base-color, 12%); @@ -682,5 +689,7 @@ html { .mute-modal select { border: 1px solid lighten($ui-base-color, 8%); - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; } diff --git a/app/javascript/styles/mastodon/accessibility.scss b/app/javascript/styles/mastodon/accessibility.scss index c5bcb59418..deaa0afdac 100644 --- a/app/javascript/styles/mastodon/accessibility.scss +++ b/app/javascript/styles/mastodon/accessibility.scss @@ -1,4 +1,7 @@ -$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on' 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default; +$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' + 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' + 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on' + 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default; %emoji-color-inversion { filter: invert(1); diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 674fafbe95..d9e45fb102 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1,4 +1,4 @@ -@use "sass:math"; +@use 'sass:math'; $no-columns-breakpoint: 600px; $sidebar-width: 240px; @@ -1131,7 +1131,10 @@ a.name-tag, @for $i from 0 through 10 { &--#{10 * $i} { - background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10))); + background-color: rgba( + $ui-highlight-color, + 1 * (math.div(max(1, $i), 10)) + ); } } } @@ -1220,7 +1223,12 @@ a.sparkline { .skeleton { background-color: lighten($ui-base-color, 8%); - background-image: linear-gradient(90deg, lighten($ui-base-color, 8%), lighten($ui-base-color, 12%), lighten($ui-base-color, 8%)); + background-image: linear-gradient( + 90deg, + lighten($ui-base-color, 8%), + lighten($ui-base-color, 12%), + lighten($ui-base-color, 8%) + ); background-size: 200px 100%; background-repeat: no-repeat; border-radius: 4px; @@ -1269,7 +1277,10 @@ a.sparkline { @for $i from 0 through 10 { &--#{10 * $i} { - background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10))); + background-color: rgba( + $ui-highlight-color, + 1 * (math.div(max(1, $i), 10)) + ); } } } @@ -1415,7 +1426,7 @@ a.sparkline { &::after { display: block; - content: ""; + content: ''; width: 50px; height: 21px; position: absolute; @@ -1809,7 +1820,7 @@ a.sparkline { &::after { position: absolute; - content: ""; + content: ''; width: 1px; background: $highlight-text-color; bottom: 0; diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 413a1cdd6a..1d08b12e57 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -14,7 +14,7 @@ body { font-weight: 400; color: $primary-text-color; text-rendering: optimizelegibility; - font-feature-settings: "kern"; + font-feature-settings: 'kern'; text-size-adjust: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0%); -webkit-tap-highlight-color: transparent; @@ -31,7 +31,9 @@ body { // Droid Sans => Older Androids (<4.0) // Helvetica Neue => Older macOS <10.11 // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0) - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', + Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + $font-sans-serif, sans-serif; } &.app-body { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 493efea305..11c28dbc13 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -387,7 +387,7 @@ body > [data-popper-placement] { .ellipsis { &::after { - content: "…"; + content: '…'; } } @@ -404,7 +404,7 @@ body > [data-popper-placement] { color: $highlight-text-color; } - input[type="checkbox"] { + input[type='checkbox'] { display: none; } @@ -423,7 +423,9 @@ body > [data-popper-placement] { &.active { border-color: $highlight-text-color; - background: $highlight-text-color url("data:image/svg+xml;utf8,") center center no-repeat; + background: $highlight-text-color + url("data:image/svg+xml;utf8,") + center center no-repeat; } } } @@ -647,7 +649,12 @@ body > [data-popper-placement] { margin: 5px; &__actions { - background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent); + background: linear-gradient( + 180deg, + rgba($base-shadow-color, 0.8) 0, + rgba($base-shadow-color, 0.35) 80%, + transparent + ); display: flex; align-items: flex-start; justify-content: space-between; @@ -675,7 +682,12 @@ body > [data-popper-placement] { left: 0; right: 0; box-sizing: border-box; - background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent); + background: linear-gradient( + 0deg, + rgba($base-shadow-color, 0.8) 0, + rgba($base-shadow-color, 0.35) 80%, + transparent + ); } } @@ -1080,8 +1092,13 @@ body > [data-popper-placement] { cursor: auto; @keyframes fade { - 0% { opacity: 0; } - 100% { opacity: 1; } + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } } opacity: 1; @@ -1827,11 +1844,11 @@ a.account__display-name { justify-content: center; flex-direction: column; scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ + -ms-overflow-style: none; /* IE 10+ */ * { scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ + -ms-overflow-style: none; /* IE 10+ */ } &::-webkit-scrollbar, @@ -2863,7 +2880,9 @@ $ui-header-height: 55px; } .drawer__inner__mastodon { - background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; + background: lighten($ui-base-color, 13%) + url('data:image/svg+xml;utf8,') + no-repeat bottom / 100% auto; flex: 1; min-height: 47px; display: none; @@ -2918,7 +2937,8 @@ $ui-header-height: 55px; overflow-y: auto; } - @supports (display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: strict; } @@ -2939,7 +2959,8 @@ $ui-header-height: 55px; } .scrollable.fullscreen { - @supports (display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: none; } } @@ -3043,7 +3064,8 @@ $ui-header-height: 55px; transition: background-color 0.2s ease; } -.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track { +.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { background-color: darken($ui-base-color, 10%); } @@ -3051,7 +3073,8 @@ $ui-header-height: 55px; background-color: darken($ui-highlight-color, 2%); } -.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track { +.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { background-color: $ui-highlight-color; } @@ -3646,7 +3669,7 @@ a.status-card.compact:hover { &::before { display: block; - content: ""; + content: ''; position: absolute; bottom: -13px; left: 0; @@ -3656,7 +3679,11 @@ a.status-card.compact:hover { pointer-events: none; height: 28px; z-index: 1; - background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%); + background: radial-gradient( + ellipse, + rgba($ui-highlight-color, 0.23) 0%, + rgba($ui-highlight-color, 0) 60% + ); } } @@ -4241,7 +4268,8 @@ a.status-card.compact:hover { align-items: center; justify-content: center; - @supports (display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: strict; } @@ -5747,7 +5775,9 @@ a.status-card.compact:hover { width: auto; outline: 0; font-family: inherit; - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; @@ -6154,7 +6184,12 @@ a.status-card.compact:hover { left: 0; right: 0; box-sizing: border-box; - background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent); + background: linear-gradient( + 0deg, + rgba($base-shadow-color, 0.85) 0, + rgba($base-shadow-color, 0.45) 60%, + transparent + ); padding: 0 15px; opacity: 0; transition: opacity 0.1s ease; @@ -6295,7 +6330,7 @@ a.status-card.compact:hover { } &::before { - content: ""; + content: ''; width: 50px; background: rgba($white, 0.35); border-radius: 4px; @@ -6365,7 +6400,7 @@ a.status-card.compact:hover { position: relative; &::before { - content: ""; + content: ''; width: 100%; background: rgba($white, 0.35); border-radius: 4px; @@ -6448,7 +6483,11 @@ a.status-card.compact:hover { } .scrollable .account-card__bio::after { - background: linear-gradient(to left, lighten($ui-base-color, 8%), transparent); + background: linear-gradient( + to left, + lighten($ui-base-color, 8%), + transparent + ); } .account-gallery__container { @@ -6509,7 +6548,7 @@ a.status-card.compact:hover { &::before, &::after { display: block; - content: ""; + content: ''; position: absolute; bottom: 0; left: 50%; @@ -6575,8 +6614,8 @@ a.status-card.compact:hover { text-overflow: ellipsis; cursor: pointer; - input[type="radio"], - input[type="checkbox"] { + input[type='radio'], + input[type='checkbox'] { display: none; } @@ -6635,9 +6674,17 @@ noscript { } @keyframes flicker { - 0% { opacity: 1; } - 30% { opacity: 0.75; } - 100% { opacity: 1; } + 0% { + opacity: 1; + } + + 30% { + opacity: 0.75; + } + + 100% { + opacity: 1; + } } @media screen and (max-width: 630px) and (max-height: 400px) { @@ -6658,7 +6705,9 @@ noscript { .navigation-bar { & > a:first-child { will-change: margin-top, margin-left, margin-right, width; - transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay); + transition: margin-top $duration $delay, + margin-left $duration ($duration + $delay), + margin-right $duration ($duration + $delay); } & > .navigation-bar__profile-edit { @@ -6669,15 +6718,12 @@ noscript { .navigation-bar__actions { & > .icon-button.close { will-change: opacity transform; - transition: - opacity $duration * 0.5 $delay, - transform $duration $delay; + transition: opacity $duration * 0.5 $delay, transform $duration $delay; } & > .compose__action-bar .icon-button { will-change: opacity transform; - transition: - opacity $duration * 0.5 $delay + $duration * 0.5, + transition: opacity $duration * 0.5 $delay + $duration * 0.5, transform $duration $delay; } } @@ -7677,7 +7723,11 @@ noscript { &.active { transition: all 100ms ease-in; transition-property: background-color, color; - background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%); + background-color: mix( + lighten($ui-base-color, 12%), + $ui-highlight-color, + 80% + ); .reactions-bar__item__count { color: lighten($highlight-text-color, 8%); @@ -7730,7 +7780,7 @@ noscript { &.unread { &::before { - content: ""; + content: ''; position: absolute; top: 0; left: 0; @@ -8258,14 +8308,14 @@ noscript { counter-increment: list-counter; &::before { - content: counter(list-counter) "."; + content: counter(list-counter) '.'; position: absolute; left: 0; } } ul > li::before { - content: ""; + content: ''; position: absolute; background-color: $darker-text-color; border-radius: 50%; diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss index 1042ddda89..0d7a7df2ee 100644 --- a/app/javascript/styles/mastodon/emoji_picker.scss +++ b/app/javascript/styles/mastodon/emoji_picker.scss @@ -174,7 +174,7 @@ &:hover::before { z-index: -1; - content: ""; + content: ''; position: absolute; top: 0; left: 0; diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 1841dc8bfd..e4539deffe 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -299,7 +299,7 @@ code { max-width: 100%; height: auto; border-radius: 4px; - background: url("images/void.png"); + background: url('images/void.png'); &:last-child { margin-bottom: 0; @@ -384,7 +384,7 @@ code { flex: 1 1 auto; } - input[type="checkbox"] { + input[type='checkbox'] { position: absolute; left: 0; top: 5px; @@ -400,12 +400,12 @@ code { border-radius: 4px; } - input[type="text"], - input[type="number"], - input[type="email"], - input[type="password"], - input[type="url"], - input[type="datetime-local"], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='url'], + input[type='datetime-local'], textarea { box-sizing: border-box; font-size: 16px; @@ -443,11 +443,11 @@ code { } } - input[type="text"], - input[type="number"], - input[type="email"], - input[type="password"], - input[type="datetime-local"] { + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='datetime-local'] { &:focus:invalid:not(:placeholder-shown), &:required:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); @@ -459,11 +459,11 @@ code { color: lighten($error-red, 12%); } - input[type="text"], - input[type="number"], - input[type="email"], - input[type="password"], - input[type="datetime-local"], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='datetime-local'], textarea, select { border-color: lighten($error-red, 12%); @@ -567,7 +567,9 @@ code { outline: 0; font-family: inherit; resize: vertical; - background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: darken($ui-base-color, 10%) + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($ui-base-color, 14%); border-radius: 4px; padding-left: 10px; @@ -607,7 +609,11 @@ code { right: 0; bottom: 1px; width: 5px; - background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%)); + background-image: linear-gradient( + to right, + rgba(darken($ui-base-color, 10%), 0), + darken($ui-base-color, 10%) + ); } } } @@ -995,7 +1001,7 @@ code { flex: 1 1 auto; } - input[type="text"] { + input[type='text'] { background: transparent; border: 0; padding: 10px; diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss index a333926dd1..6170877b22 100644 --- a/app/javascript/styles/mastodon/modal.scss +++ b/app/javascript/styles/mastodon/modal.scss @@ -1,5 +1,7 @@ .modal-layout { - background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed; + background: $ui-base-color + url('data:image/svg+xml;utf8,') + repeat-x bottom fixed; display: flex; flex-direction: column; height: 100vh; diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index 03d2cb4b2d..b30932e04c 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -64,8 +64,8 @@ max-width: calc(100% - 45px - 25px); } - input[type="radio"], - input[type="checkbox"] { + input[type='radio'], + input[type='checkbox'] { display: none; } @@ -73,7 +73,7 @@ flex: 1 1 auto; } - input[type="text"] { + input[type='text'] { display: block; box-sizing: border-box; width: 100%; @@ -263,7 +263,9 @@ width: auto; outline: 0; font-family: inherit; - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss index 39f4653bbd..e60087dab0 100644 --- a/app/javascript/styles/mastodon/rtl.scss +++ b/app/javascript/styles/mastodon/rtl.scss @@ -229,8 +229,8 @@ body.rtl { padding-right: 0; } - .simple_form .check_boxes .checkbox input[type="checkbox"], - .simple_form .input.boolean input[type="checkbox"] { + .simple_form .check_boxes .checkbox input[type='checkbox'], + .simple_form .input.boolean input[type='checkbox'] { left: auto; right: 0; } @@ -268,12 +268,18 @@ body.rtl { &::after { right: auto; left: 0; - background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%)); + background-image: linear-gradient( + to left, + rgba(darken($ui-base-color, 10%), 0), + darken($ui-base-color, 10%) + ); } } .simple_form select { - background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,") no-repeat left 8px center / auto 16px; + background: darken($ui-base-color, 10%) + url("data:image/svg+xml;utf8,") + no-repeat left 8px center / auto 16px; } .table th, @@ -320,11 +326,11 @@ body.rtl { } .fa-chevron-left::before { - content: "\F054"; + content: '\F054'; } .fa-chevron-right::before { - content: "\F053"; + content: '\F053'; } .column-back-button__icon { diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss index ce71d11e4e..a42f1f42c0 100644 --- a/app/javascript/styles/mastodon/statuses.scss +++ b/app/javascript/styles/mastodon/statuses.scss @@ -138,7 +138,7 @@ a.button.logo-button { } .embed { - .status__content[data-spoiler="folded"] { + .status__content[data-spoiler='folded'] { .e-content { display: none; } diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index 2f6c41d5f2..7de25f8fd4 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -1,18 +1,18 @@ // Commonly used web colors -$black: #000000; // Black -$white: #ffffff; // White -$success-green: #79bd9a !default; // Padua -$error-red: #df405a !default; // Cerise -$warning-red: #ff5050 !default; // Sunset Orange -$gold-star: #ca8f04 !default; // Dark Goldenrod +$black: #000000; // Black +$white: #ffffff; // White +$success-green: #79bd9a !default; // Padua +$error-red: #df405a !default; // Cerise +$warning-red: #ff5050 !default; // Sunset Orange +$gold-star: #ca8f04 !default; // Dark Goldenrod $red-bookmark: $warning-red; // Values from the classic Mastodon UI -$classic-base-color: #282c37; // Midnight Express -$classic-primary-color: #9baec8; // Echo Blue -$classic-secondary-color: #d9e1e8; // Pattens Blue -$classic-highlight-color: #6364ff; // Brand purple +$classic-base-color: #282c37; // Midnight Express +$classic-primary-color: #9baec8; // Echo Blue +$classic-secondary-color: #d9e1e8; // Pattens Blue +$classic-highlight-color: #6364ff; // Brand purple // Variables for defaults in UI $base-shadow-color: $black !default; @@ -23,10 +23,13 @@ $valid-value-color: $success-green !default; $error-value-color: $error-red !default; // Tell UI to use selected colors -$ui-base-color: $classic-base-color !default; // Darkest -$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest -$ui-primary-color: $classic-primary-color !default; // Lighter -$ui-secondary-color: $classic-secondary-color !default; // Lightest +$ui-base-color: $classic-base-color !default; // Darkest +$ui-base-lighter-color: lighten( + $ui-base-color, + 26% +) !default; // Lighter darkest +$ui-primary-color: $classic-primary-color !default; // Lighter +$ui-secondary-color: $classic-secondary-color !default; // Lightest $ui-highlight-color: $classic-highlight-color !default; // Variables for texts diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 7a25d121bb..ef7bfc6de4 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -1,4 +1,4 @@ -@use "sass:math"; +@use 'sass:math'; .hero-widget { margin-bottom: 10px; diff --git a/lib/assets/wordmark.light.css b/lib/assets/wordmark.light.css index 9a601f9725..b8c9993fd8 100644 --- a/lib/assets/wordmark.light.css +++ b/lib/assets/wordmark.light.css @@ -1 +1,3 @@ -use { color: #000 !important; } +use { + color: #000 !important; +} diff --git a/package.json b/package.json index 96f1e7b0e6..9fc84f01d8 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives", - "test:lint:sass": "stylelint \"**/*.{css,scss}\"", + "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write \"**/*.{json,yml}\"", "format-check": "prettier --check \"**/*.{json,yml}\"" @@ -157,8 +157,8 @@ "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", - "stylelint": "^14.16.1", - "stylelint-config-standard-scss": "^6.1.0", + "stylelint": "^15.1.0", + "stylelint-config-standard-scss": "^7.0.0", "webpack-dev-server": "^3.11.3", "yargs": "^17.6.2" }, diff --git a/stylelint.config.js b/stylelint.config.js index 0f8267a81f..c8c07a05bc 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -10,7 +10,6 @@ module.exports = { 'color-function-notation': null, 'color-hex-length': null, 'declaration-block-no-redundant-longhand-properties': null, - 'max-line-length': null, 'no-descending-specificity': null, 'no-duplicate-selectors': null, 'number-max-precision': 8, @@ -18,7 +17,6 @@ module.exports = { 'property-no-vendor-prefix': null, 'selector-class-pattern': null, 'selector-id-pattern': null, - 'string-quotes': null, 'value-keyword-case': null, 'value-no-vendor-prefix': null, diff --git a/yarn.lock b/yarn.lock index cd14ee89a8..b94daa0893 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1076,10 +1076,25 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@csstools/selector-specificity@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36" - integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== +"@csstools/css-parser-algorithms@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.0.1.tgz#ff02629c7c95d1f4f8ea84d5ef1173461610535e" + integrity sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw== + +"@csstools/css-tokenizer@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.0.1.tgz#cb1e11752db57e69d9aa0e84c3105a25845d4055" + integrity sha512-sYD3H7ReR88S/4+V5VbKiBEUJF4FqvG+8aNJkxqoPAnbhFziDG22IDZc4+h+xA63SfgM+h15lq5OnLeCxQ9nPA== + +"@csstools/media-query-list-parser@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.1.tgz#d85a366811563a5d002755ed10e5212a1613c91d" + integrity sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA== + +"@csstools/selector-specificity@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" + integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== "@emotion/babel-plugin@^11.7.1": version "11.9.2" @@ -3562,7 +3577,7 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0, cosmiconfig@^7.1.0: +cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== @@ -3573,6 +3588,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.1.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -3718,6 +3743,14 @@ css-tree@1.0.0-alpha.39: mdn-data "2.0.6" source-map "^0.6.1" +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + css-what@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" @@ -5734,7 +5767,7 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^5.2.0, ignore@^5.2.1: +ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -7316,6 +7349,11 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -8706,7 +8744,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.19, postcss@^8.4.21: +postcss@^8.2.15, 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== @@ -10029,7 +10067,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== @@ -10426,39 +10464,39 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -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== +stylelint-config-recommended-scss@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-9.0.0.tgz#e755cf3654f3a3a6d7bdf84fe0a814595754a386" + integrity sha512-5e9pn3Ztfncd8s9OqvvCW7tZpYe+vGmPi7VEXX7XEp+Kj38PnKCrvFCBL+hQ7rkD4d5QzjB3BxlFEyo/30UWUw== dependencies: postcss-scss "^4.0.2" - stylelint-config-recommended "^9.0.0" - stylelint-scss "^4.0.0" + stylelint-config-recommended "^10.0.1" + stylelint-scss "^4.4.0" -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-recommended@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz#25a8828acf6cde87dac6db2950c8c4ed82a69ae1" + integrity sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA== -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== +stylelint-config-standard-scss@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-7.0.0.tgz#c7076bf5afa705d9e5ddc3ede39da7a684fa0f60" + integrity sha512-rHgydRJxN4Q9lDcwrLFoiFA3S8CRqsUcyBBCLwEMjIwzJViluFfsOKFPSomx6hScVQgQ4//Fx0hRKiSHyO0ihw== dependencies: - stylelint-config-recommended-scss "^8.0.0" - stylelint-config-standard "^29.0.0" + stylelint-config-recommended-scss "^9.0.0" + stylelint-config-standard "^30.0.1" -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== +stylelint-config-standard@^30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-30.0.1.tgz#a84d57c240c37f7db47023ab9d2e64c49090e1eb" + integrity sha512-NbeHOmpRQhjZh5XB1B/S4MLRWvz4xxAxeDBjzl0tY2xEcayNhLbaRGF0ZQzq+DQZLCcPpOHeS2Ru1ydbkhkmLg== dependencies: - stylelint-config-recommended "^9.0.0" + stylelint-config-recommended "^10.0.1" -stylelint-scss@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-4.2.0.tgz#e25fd390ee38a7e89fcfaec2a8f9dce2ec6ddee8" - integrity sha512-HHHMVKJJ5RM9pPIbgJ/XA67h9H0407G68Rm69H4fzFbFkyDMcTV1Byep3qdze5+fJ3c0U7mJrbj6S0Fg072uZA== +stylelint-scss@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-4.4.0.tgz#87ce9d049eff1ce67cce788780fbfda63099017e" + integrity sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw== dependencies: lodash "^4.17.21" postcss-media-query-parser "^0.2.3" @@ -10466,16 +10504,20 @@ stylelint-scss@^4.0.0: postcss-selector-parser "^6.0.6" postcss-value-parser "^4.1.0" -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== +stylelint@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.1.0.tgz#24d7cbe06250ceca3b276393bfdeaaaba4356195" + integrity sha512-Tw8OyIiYhxnIHUzgoLlCyWgCUKsPYiP3TDgs7M1VbayS+q5qZly2yxABg+YPe/hFRWiu0cOtptCtpyrn1CrnYw== dependencies: - "@csstools/selector-specificity" "^2.0.2" + "@csstools/css-parser-algorithms" "^2.0.1" + "@csstools/css-tokenizer" "^2.0.1" + "@csstools/media-query-list-parser" "^2.0.1" + "@csstools/selector-specificity" "^2.1.1" balanced-match "^2.0.0" colord "^2.9.3" - cosmiconfig "^7.1.0" + cosmiconfig "^8.0.0" css-functions-list "^3.1.0" + css-tree "^2.3.1" debug "^4.3.4" fast-glob "^3.2.12" fastest-levenshtein "^1.0.16" @@ -10484,7 +10526,7 @@ stylelint@^14.16.1: globby "^11.1.0" globjoin "^0.1.4" html-tags "^3.2.0" - ignore "^5.2.1" + ignore "^5.2.4" import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" @@ -10494,7 +10536,7 @@ stylelint@^14.16.1: micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" @@ -10508,7 +10550,7 @@ stylelint@^14.16.1: svg-tags "^1.0.0" table "^6.8.1" v8-compile-cache "^2.3.0" - write-file-atomic "^4.0.2" + write-file-atomic "^5.0.0" stylis@4.0.13: version "4.0.13" @@ -11778,14 +11820,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - write-file-atomic@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" From a1c0573bc6f4e4778c10f1d08f0bc35260d620ed Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 22:57:51 -0500 Subject: [PATCH 0388/1220] Yarn cache cleanup right after install in Docker (#23557) --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ce7f4d7186..35c7ae4410 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,8 @@ RUN apt-get update && \ bundle config set --local without 'development test' && \ bundle config set silence_root_warning true && \ bundle install -j"$(nproc)" && \ - yarn install --pure-lockfile --network-timeout 600000 + yarn install --pure-lockfile --network-timeout 600000 && \ + yarn cache clean FROM node:${NODE_VERSION} @@ -91,8 +92,7 @@ USER mastodon WORKDIR /opt/mastodon # Precompile assets -RUN OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile && \ - yarn cache clean +RUN OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile # Set the work dir and the container entry point ENTRYPOINT ["/usr/bin/tini", "--"] From c6b7e0412061770f26c4eb5700fb1f515c8f9a53 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 22:58:37 -0500 Subject: [PATCH 0389/1220] Sync Node.js to 16.19 patch release (#23554) --- .circleci/config.yml | 2 +- .nvmrc | 2 +- Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a373d685e0..fabb6967e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -221,5 +221,5 @@ workflows: pkg-manager: yarn requires: - build - version: '16.18' + version: '16.19' yarn-run: test:jest diff --git a/.nvmrc b/.nvmrc index b6a7d89c68..030fcd56bf 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16 +16.19 diff --git a/Dockerfile b/Dockerfile index 35c7ae4410..fbb8871411 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1.4 # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim -ARG NODE_VERSION="16.18.1-bullseye-slim" +ARG NODE_VERSION="16.19-bullseye-slim" FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.4-slim as ruby FROM node:${NODE_VERSION} as build From d874877b27321682be7b208326f098d6750ec8db Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Mon, 13 Feb 2023 12:58:56 +0900 Subject: [PATCH 0390/1220] Update SECURITY.md (#23545) Co-authored-by: Eugen Rochko Co-authored-by: Nick Schonning --- SECURITY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index ccc7c10346..234172999d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -11,7 +11,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through ## Supported Versions | Version | Supported | -| ------- | ----------| +| ------- | --------- | +| 4.1.x | Yes | | 4.0.x | Yes | | 3.5.x | Yes | | < 3.5 | No | From 7c5d396fcad1267872dd7ed00204f076e52c689c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 22:59:30 -0500 Subject: [PATCH 0391/1220] Replace hamlit-rails with haml-rails (#23542) --- Gemfile | 4 ++-- Gemfile.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 6e5292d824..9849b36eaf 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 1.2' gem 'rack', '~> 2.2.6' -gem 'hamlit-rails', '~> 0.2' +gem 'haml-rails', '~>2.0' gem 'pg', '~> 1.4' gem 'makara', '~> 0.5' gem 'pghero' @@ -122,7 +122,7 @@ group :test do gem 'climate_control', '~> 0.2' gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' - gem 'rack-test', '~> 2.0' + gem 'rack-test', '~> 2.0' gem 'rails-controller-testing', '~> 1.0' gem 'rspec_junit_formatter', '~> 0.6' gem 'rspec-sidekiq', '~> 3.1' diff --git a/Gemfile.lock b/Gemfile.lock index 2d7ee2df89..8e6e5a28f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -284,15 +284,15 @@ GEM openid_connect (~> 1.2) globalid (1.1.0) activesupport (>= 5.0) - hamlit (2.13.0) + haml (6.1.1) temple (>= 0.8.2) thor tilt - hamlit-rails (0.2.3) - actionpack (>= 4.0.1) - activesupport (>= 4.0.1) - hamlit (>= 1.2.0) - railties (>= 4.0.1) + haml-rails (2.1.0) + actionpack (>= 5.1) + activesupport (>= 5.1) + haml (>= 4.0.6) + railties (>= 5.1) hashdiff (1.0.1) hashie (5.0.0) highline (2.0.3) @@ -683,7 +683,7 @@ GEM activesupport (>= 3) attr_required (>= 0.0.5) httpclient (>= 2.4) - temple (0.8.2) + temple (0.10.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) terrapin (0.6.0) @@ -799,7 +799,7 @@ DEPENDENCIES fog-openstack (~> 0.3) fuubar (~> 2.5) gitlab-omniauth-openid-connect (~> 0.10.1) - hamlit-rails (~> 0.2) + haml-rails (~> 2.0) hiredis (~> 0.6) htmlentities (~> 4.3) http (~> 5.1) From c55568c75a2754d1a2d9383b4e4e7147ea2e9ed5 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 13 Feb 2023 13:23:59 +0100 Subject: [PATCH 0392/1220] Add tests for `REST::AccountSerializer` (#23319) --- .../rest/account_serializer_spec.rb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 spec/serializers/rest/account_serializer_spec.rb diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb new file mode 100644 index 0000000000..ce29df3a76 --- /dev/null +++ b/spec/serializers/rest/account_serializer_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::AccountSerializer do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } + let(:user) { Fabricate(:user, role: role) } + let(:account) { user.account} + + subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) } + + context 'when the account is suspended' do + before do + account.suspend! + end + + it 'returns empty roles' do + expect(subject['roles']).to eq [] + end + end + + context 'when the account has a highlighted role' do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } + + it 'returns the expected role' do + expect(subject['roles'].first).to include({ 'name' => 'Role' }) + end + end + + context 'when the account has a non-highlighted role' do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: false) } + + it 'returns empty roles' do + expect(subject['roles']).to eq [] + end + end +end From 31352f0d2ce2fbfaa0a4cef4cbf61cf45fa0f2ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:31:42 +0100 Subject: [PATCH 0393/1220] Bump sidekiq-scheduler from 4.0.3 to 5.0.0 (#23212) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claire --- Gemfile | 2 +- Gemfile.lock | 9 ++--- config/sidekiq.yml | 98 +++++++++++++++++++++++----------------------- 3 files changed, 54 insertions(+), 55 deletions(-) diff --git a/Gemfile b/Gemfile index 9849b36eaf..d64451589b 100644 --- a/Gemfile +++ b/Gemfile @@ -81,7 +81,7 @@ gem 'ruby-progressbar', '~> 1.11' gem 'sanitize', '~> 6.0' gem 'scenic', '~> 1.7' gem 'sidekiq', '~> 6.5' -gem 'sidekiq-scheduler', '~> 4.0' +gem 'sidekiq-scheduler', '~> 5.0' gem 'sidekiq-unique-jobs', '~> 7.1' gem 'sidekiq-bulk', '~> 0.2.0' gem 'simple-navigation', '~> 4.4' diff --git a/Gemfile.lock b/Gemfile.lock index 8e6e5a28f7..3bf7699d66 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,7 +272,7 @@ GEM fog-json (>= 1.0) ipaddress (>= 0.8) formatador (0.3.0) - fugit (1.7.1) + fugit (1.8.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) fuubar (2.5.1) @@ -640,10 +640,9 @@ GEM redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (4.0.3) - redis (>= 4.2.0) + sidekiq-scheduler (5.0.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4, < 7) + sidekiq (>= 4, < 8) tilt (>= 1.4.0) sidekiq-unique-jobs (7.1.29) brpoplpush-redis_script (> 0.1.1, <= 2.0.0) @@ -867,7 +866,7 @@ DEPENDENCIES scenic (~> 1.7) sidekiq (~> 6.5) sidekiq-bulk (~> 0.2.0) - sidekiq-scheduler (~> 4.0) + sidekiq-scheduler (~> 5.0) sidekiq-unique-jobs (~> 7.1) simple-navigation (~> 4.4) simple_form (~> 5.2) diff --git a/config/sidekiq.yml b/config/sidekiq.yml index b8739aab33..2278329a56 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -9,52 +9,52 @@ - [scheduler] :scheduler: :listened_queues_only: true -:schedule: - scheduled_statuses_scheduler: - every: '5m' - class: Scheduler::ScheduledStatusesScheduler - queue: scheduler - trends_refresh_scheduler: - every: '5m' - class: Scheduler::Trends::RefreshScheduler - queue: scheduler - trends_review_notifications_scheduler: - every: '6h' - class: Scheduler::Trends::ReviewNotificationsScheduler - queue: scheduler - indexing_scheduler: - every: '5m' - class: Scheduler::IndexingScheduler - queue: scheduler - vacuum_scheduler: - cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *' - class: Scheduler::VacuumScheduler - queue: scheduler - follow_recommendations_scheduler: - cron: '<%= Random.rand(0..59) %> <%= Random.rand(6..9) %> * * *' - class: Scheduler::FollowRecommendationsScheduler - queue: scheduler - user_cleanup_scheduler: - cron: '<%= Random.rand(0..59) %> <%= Random.rand(4..6) %> * * *' - class: Scheduler::UserCleanupScheduler - queue: scheduler - ip_cleanup_scheduler: - cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *' - class: Scheduler::IpCleanupScheduler - queue: scheduler - pghero_scheduler: - cron: '0 0 * * *' - class: Scheduler::PgheroScheduler - queue: scheduler - instance_refresh_scheduler: - cron: '0 * * * *' - class: Scheduler::InstanceRefreshScheduler - queue: scheduler - accounts_statuses_cleanup_scheduler: - interval: 1 minute - class: Scheduler::AccountsStatusesCleanupScheduler - queue: scheduler - suspended_user_cleanup_scheduler: - interval: 1 minute - class: Scheduler::SuspendedUserCleanupScheduler - queue: scheduler + :schedule: + scheduled_statuses_scheduler: + every: '5m' + class: Scheduler::ScheduledStatusesScheduler + queue: scheduler + trends_refresh_scheduler: + every: '5m' + class: Scheduler::Trends::RefreshScheduler + queue: scheduler + trends_review_notifications_scheduler: + every: '6h' + class: Scheduler::Trends::ReviewNotificationsScheduler + queue: scheduler + indexing_scheduler: + every: '5m' + class: Scheduler::IndexingScheduler + queue: scheduler + vacuum_scheduler: + cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *' + class: Scheduler::VacuumScheduler + queue: scheduler + follow_recommendations_scheduler: + cron: '<%= Random.rand(0..59) %> <%= Random.rand(6..9) %> * * *' + class: Scheduler::FollowRecommendationsScheduler + queue: scheduler + user_cleanup_scheduler: + cron: '<%= Random.rand(0..59) %> <%= Random.rand(4..6) %> * * *' + class: Scheduler::UserCleanupScheduler + queue: scheduler + ip_cleanup_scheduler: + cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *' + class: Scheduler::IpCleanupScheduler + queue: scheduler + pghero_scheduler: + cron: '0 0 * * *' + class: Scheduler::PgheroScheduler + queue: scheduler + instance_refresh_scheduler: + cron: '0 * * * *' + class: Scheduler::InstanceRefreshScheduler + queue: scheduler + accounts_statuses_cleanup_scheduler: + interval: 1 minute + class: Scheduler::AccountsStatusesCleanupScheduler + queue: scheduler + suspended_user_cleanup_scheduler: + interval: 1 minute + class: Scheduler::SuspendedUserCleanupScheduler + queue: scheduler From 66f2ad483c621cac783e639f68842e770f425b11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:55:55 +0100 Subject: [PATCH 0394/1220] Bump sidekiq-scheduler from 5.0.0 to 5.0.1 (#23569) 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 3bf7699d66..f325a7df86 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -640,7 +640,7 @@ GEM redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (5.0.0) + sidekiq-scheduler (5.0.1) rufus-scheduler (~> 3.2) sidekiq (>= 4, < 8) tilt (>= 1.4.0) From cc92c65d832a7920cc4dcd55ce703022c0a19632 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 13 Feb 2023 14:36:07 +0100 Subject: [PATCH 0395/1220] Add dependency on net-http (#23571) --- Gemfile | 2 ++ Gemfile.lock | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Gemfile b/Gemfile index d64451589b..5bb81e3d55 100644 --- a/Gemfile +++ b/Gemfile @@ -158,3 +158,5 @@ gem 'concurrent-ruby', require: false gem 'connection_pool', require: false gem 'xorcist', '~> 1.1' gem 'cocoon', '~> 1.2' + +gem 'net-http', '~> 0.3.2' diff --git a/Gemfile.lock b/Gemfile.lock index f325a7df86..38f6ce65f2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -410,6 +410,8 @@ GEM msgpack (1.6.0) multi_json (1.15.0) multipart-post (2.1.1) + net-http (0.3.2) + uri net-imap (0.3.4) date net-protocol @@ -716,6 +718,7 @@ GEM unf_ext (0.0.8.2) unicode-display_width (2.4.2) uniform_notifier (1.16.0) + uri (0.12.0) validate_email (0.1.6) activemodel (>= 3.0) mail (>= 2.2.5) @@ -819,6 +822,7 @@ DEPENDENCIES mario-redis-lock (~> 1.2) memory_profiler mime-types (~> 3.4.1) + net-http (~> 0.3.2) net-ldap (~> 0.17) nokogiri (~> 1.14) nsa (~> 0.2) From 93d7c26fa5224aea9d0cd10838dbd2d2a1fc5156 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 14:38:43 +0100 Subject: [PATCH 0396/1220] Bump rubocop from 1.44.1 to 1.45.1 (#23523) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 38f6ce65f2..1c692ed0d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -465,7 +465,7 @@ GEM orm_adapter (0.5.0) ox (2.14.14) parallel (1.22.1) - parser (3.2.0.0) + parser (3.2.1.0) ast (~> 2.4.1) parslet (2.0.0) pastel (0.8.0) @@ -561,7 +561,7 @@ GEM redis (>= 4) redlock (1.3.2) redis (>= 3.0.0, < 6.0) - regexp_parser (2.6.2) + regexp_parser (2.7.0) request_store (1.5.1) rack (>= 1.4) responders (3.0.1) @@ -596,7 +596,7 @@ GEM rspec-support (3.11.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.44.1) + rubocop (1.45.1) json (~> 2.3) parallel (~> 1.10) parser (>= 3.2.0.0) From 5f56818f9ed23ff902b6a53bba01574f97980abc Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Mon, 13 Feb 2023 22:39:00 +0900 Subject: [PATCH 0397/1220] Change followed_by link to location=all if account is local on /admin/accounts/:id page (#23467) --- app/views/admin/accounts/show.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index db5c255c91..c8a9d33a70 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -37,7 +37,7 @@ .dashboard__counters__num= number_to_human_size @account.media_attachments.sum('file_file_size') .dashboard__counters__label= t 'admin.accounts.media_attachments' %div - = link_to admin_account_relationships_path(@account.id, location: 'local', relationship: 'followed_by') do + = link_to admin_account_relationships_path(@account.id, location: @account.local? ? nil : 'local', relationship: 'followed_by') do .dashboard__counters__num= number_with_delimiter @account.local_followers_count .dashboard__counters__label= t 'admin.accounts.followers' %div From 841263a548fa04d953bc47bd3a18474f0daecf9a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 13 Feb 2023 08:39:24 -0500 Subject: [PATCH 0398/1220] Update Ruby to 3.0.5 (#23544) --- .ruby-version | 2 +- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ruby-version b/.ruby-version index b0f2dcb32f..eca690e737 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.4 +3.0.5 diff --git a/Dockerfile b/Dockerfile index fbb8871411..04e3b58b1e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim ARG NODE_VERSION="16.19-bullseye-slim" -FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.4-slim as ruby +FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.5-slim as ruby FROM node:${NODE_VERSION} as build COPY --link --from=ruby /opt/ruby /opt/ruby From 4da5f77d929d6b83c134cae1eefbc8ba2db752f8 Mon Sep 17 00:00:00 2001 From: Dean Bassett Date: Mon, 13 Feb 2023 05:54:08 -0800 Subject: [PATCH 0399/1220] Fix case-sensitive check for previously used hashtags (#23526) --- app/javascript/mastodon/reducers/compose.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 783d748ae3..842b7af518 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -186,11 +186,12 @@ const ignoreSuggestion = (state, position, token, completion, path) => { }; const sortHashtagsByUse = (state, tags) => { - const personalHistory = state.get('tagHistory'); + const personalHistory = state.get('tagHistory').map(tag => tag.toLowerCase()); - return tags.sort((a, b) => { - const usedA = personalHistory.includes(a.name); - const usedB = personalHistory.includes(b.name); + const tagsWithLowercase = tags.map(t => ({ ...t, lowerName: t.name.toLowerCase() })); + const sorted = tagsWithLowercase.sort((a, b) => { + const usedA = personalHistory.includes(a.lowerName); + const usedB = personalHistory.includes(b.lowerName); if (usedA === usedB) { return 0; @@ -200,6 +201,8 @@ const sortHashtagsByUse = (state, tags) => { return 1; } }); + sorted.forEach(tag => delete tag.lowerName); + return sorted; }; const insertEmoji = (state, position, emojiData, needsSpace) => { From db2c58d47ae0db8490a30cd3846f30e615c382b5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 13 Feb 2023 09:12:14 -0500 Subject: [PATCH 0400/1220] Enable ESLint no-useless-escape (#23311) --- .eslintrc.js | 1 - .../mastodon/actions/push_notifications/registerer.js | 2 +- app/javascript/mastodon/components/status.js | 2 +- .../mastodon/features/account_gallery/components/media_item.js | 2 +- .../mastodon/features/compose/containers/warning_container.js | 2 +- app/javascript/mastodon/features/compose/util/counter.js | 2 +- app/javascript/mastodon/features/emoji/emoji_utils.js | 2 +- .../features/follow_recommendations/components/account.js | 2 +- .../mastodon/features/picture_in_picture/components/footer.js | 2 +- .../mastodon/features/status/components/detailed_status.js | 2 +- app/javascript/mastodon/features/ui/components/boost_modal.js | 2 +- config/webpack/shared.js | 2 +- 12 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ca7fc83eb9..ef52818b06 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -98,7 +98,6 @@ module.exports = { ignoreRestSiblings: true, }, ], - 'no-useless-escape': 'off', 'object-curly-spacing': ['error', 'always'], 'padded-blocks': [ 'error', diff --git a/app/javascript/mastodon/actions/push_notifications/registerer.js b/app/javascript/mastodon/actions/push_notifications/registerer.js index b0f42b6a20..b491f85c24 100644 --- a/app/javascript/mastodon/actions/push_notifications/registerer.js +++ b/app/javascript/mastodon/actions/push_notifications/registerer.js @@ -8,7 +8,7 @@ import { me } from '../../initial_state'; const urlBase64ToUint8Array = (base64String) => { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding) - .replace(/\-/g, '+') + .replace(/-/g, '+') .replace(/_/g, '/'); return decodeBase64(base64); diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 6b89226085..f02910f5ac 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -511,7 +511,7 @@ class Status extends ImmutablePureComponent {
    - + {status.get('edited_at') && *} diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.js index 80e164af89..d6d60ebda7 100644 --- a/app/javascript/mastodon/features/account_gallery/components/media_item.js +++ b/app/javascript/mastodon/features/account_gallery/components/media_item.js @@ -130,7 +130,7 @@ export default class MediaItem extends ImmutablePureComponent { return (
    - + { '))', 'iu', ); } catch { - return /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i; + return /(?:^|[^/)\w])#(\w*[a-zA-Z·]\w*)/i; } }; diff --git a/app/javascript/mastodon/features/compose/util/counter.js b/app/javascript/mastodon/features/compose/util/counter.js index 5a68bad992..ec2431096b 100644 --- a/app/javascript/mastodon/features/compose/util/counter.js +++ b/app/javascript/mastodon/features/compose/util/counter.js @@ -5,5 +5,5 @@ const urlPlaceholder = '$2xxxxxxxxxxxxxxxxxxxxxxx'; export function countableText(inputText) { return inputText .replace(urlRegex, urlPlaceholder) - .replace(/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/ig, '$1@$3'); + .replace(/(^|[^/\w])@(([a-z0-9_]+)@[a-z0-9.-]+[a-z0-9]+)/ig, '$1@$3'); } diff --git a/app/javascript/mastodon/features/emoji/emoji_utils.js b/app/javascript/mastodon/features/emoji/emoji_utils.js index 571907a509..be793526d0 100644 --- a/app/javascript/mastodon/features/emoji/emoji_utils.js +++ b/app/javascript/mastodon/features/emoji/emoji_utils.js @@ -73,7 +73,7 @@ const stringFromCodePoint = _String.fromCodePoint || function () { const _JSON = JSON; -const COLONS_REGEX = /^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/; +const COLONS_REGEX = /^(?::([^:]+):)(?::skin-tone-(\d):)?$/; const SKINS = [ '1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF', diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.js index daaa2f99ee..ddd0c8baab 100644 --- a/app/javascript/mastodon/features/follow_recommendations/components/account.js +++ b/app/javascript/mastodon/features/follow_recommendations/components/account.js @@ -27,7 +27,7 @@ const makeMapStateToProps = () => { }; const getFirstSentence = str => { - const arr = str.split(/(([\.\?!]+\s)|[.。?!\n•])/); + const arr = str.split(/(([.?!]+\s)|[.。?!\n•])/); return arr[0]; }; diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.js index 3f59b891b8..0ee6d06c7f 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.js +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.js @@ -184,7 +184,7 @@ class Footer extends ImmutablePureComponent { - {withOpenButton && } + {withOpenButton && }
    ); } diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 116d9f6b27..064231ffe3 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -276,7 +276,7 @@ class DetailedStatus extends ImmutablePureComponent { {media}
    - + {edited}{visibilityLink}{applicationLink}{reblogLink} · {favouriteLink}
    diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.js index 087eadba2e..d6a6cea31e 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.js +++ b/app/javascript/mastodon/features/ui/components/boost_modal.js @@ -98,7 +98,7 @@ class BoostModal extends ImmutablePureComponent {
    - + diff --git a/config/webpack/shared.js b/config/webpack/shared.js index 3447e711c1..78f660cfcd 100644 --- a/config/webpack/shared.js +++ b/config/webpack/shared.js @@ -55,7 +55,7 @@ module.exports = { chunks: 'all', minChunks: 2, minSize: 0, - test: /^(?!.*[\\\/]node_modules[\\\/]react-intl[\\\/]).+$/, + test: /^(?!.*[\\/]node_modules[\\/]react-intl[\\/]).+$/, }, }, }, From eddfb33dfea6a17e71377d95498b557dd0194477 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 13 Feb 2023 09:12:31 -0500 Subject: [PATCH 0401/1220] Enable ESLint import recommended rules (#23315) --- .eslintrc.js | 3 ++- .../mastodon/features/audio/index.js | 6 ++--- .../compose/containers/poll_form_container.js | 5 ++++- .../compose/containers/upload_container.js | 3 +-- .../components/announcements.js | 3 +-- .../containers/column_settings_container.js | 3 +-- .../mastodon/features/status/index.js | 22 +++++++++---------- 7 files changed, 22 insertions(+), 23 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ef52818b06..4d81aa47e0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,6 +5,7 @@ module.exports = { 'eslint:recommended', 'plugin:react/recommended', 'plugin:jsx-a11y/recommended', + 'plugin:import/recommended', ], env: { @@ -177,6 +178,7 @@ module.exports = { }, ], + // See https://github.com/import-js/eslint-plugin-import/blob/main/config/recommended.js 'import/extensions': [ 'error', 'always', @@ -195,7 +197,6 @@ module.exports = { ], }, ], - 'import/no-unresolved': 'error', 'import/no-webpack-loader-syntax': 'error', 'promise/catch-or-return': [ diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.js index a556583608..bf954c06d4 100644 --- a/app/javascript/mastodon/features/audio/index.js +++ b/app/javascript/mastodon/features/audio/index.js @@ -1,12 +1,10 @@ import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; -import { formatTime } from 'mastodon/features/video'; +import { formatTime, getPointerPosition, fileNameFromURL } from 'mastodon/features/video'; import Icon from 'mastodon/components/icon'; import classNames from 'classnames'; -import { throttle } from 'lodash'; -import { getPointerPosition, fileNameFromURL } from 'mastodon/features/video'; -import { debounce } from 'lodash'; +import { throttle, debounce } from 'lodash'; import Visualizer from './visualizer'; import { displayMedia, useBlurhash } from '../../initial_state'; import Blurhash from '../../components/blurhash'; diff --git a/app/javascript/mastodon/features/compose/containers/poll_form_container.js b/app/javascript/mastodon/features/compose/containers/poll_form_container.js index c47fc75006..479117e915 100644 --- a/app/javascript/mastodon/features/compose/containers/poll_form_container.js +++ b/app/javascript/mastodon/features/compose/containers/poll_form_container.js @@ -1,7 +1,10 @@ import { connect } from 'react-redux'; import PollForm from '../components/poll_form'; -import { addPollOption, removePollOption, changePollOption, changePollSettings } from '../../../actions/compose'; import { + addPollOption, + removePollOption, + changePollOption, + changePollSettings, clearComposeSuggestions, fetchComposeSuggestions, selectComposeSuggestion, diff --git a/app/javascript/mastodon/features/compose/containers/upload_container.js b/app/javascript/mastodon/features/compose/containers/upload_container.js index 05cd2ecc1f..5a8a64931c 100644 --- a/app/javascript/mastodon/features/compose/containers/upload_container.js +++ b/app/javascript/mastodon/features/compose/containers/upload_container.js @@ -1,7 +1,6 @@ import { connect } from 'react-redux'; import Upload from '../components/upload'; -import { undoUploadCompose, initMediaEditModal } from '../../../actions/compose'; -import { submitCompose } from '../../../actions/compose'; +import { undoUploadCompose, initMediaEditModal, submitCompose } from '../../../actions/compose'; const mapStateToProps = (state, { id }) => ({ media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id), diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index d4afbabe36..0cae0bd1fe 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -6,9 +6,8 @@ import PropTypes from 'prop-types'; import IconButton from 'mastodon/components/icon_button'; import Icon from 'mastodon/components/icon'; import { defineMessages, injectIntl, FormattedMessage, FormattedDate } from 'react-intl'; -import { autoPlayGif, reduceMotion, disableSwiping } from 'mastodon/initial_state'; +import { autoPlayGif, reduceMotion, disableSwiping, mascot } from 'mastodon/initial_state'; import elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg'; -import { mascot } from 'mastodon/initial_state'; import unicodeMapping from 'mastodon/features/emoji/emoji_unicode_mapping_light'; import classNames from 'classnames'; import EmojiPickerDropdown from 'mastodon/features/compose/containers/emoji_picker_dropdown_container'; diff --git a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js index 9a70bd4f36..515afaca96 100644 --- a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js +++ b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js @@ -2,8 +2,7 @@ import { connect } from 'react-redux'; import { defineMessages, injectIntl } from 'react-intl'; import ColumnSettings from '../components/column_settings'; import { changeSetting } from '../../../actions/settings'; -import { setFilter } from '../../../actions/notifications'; -import { clearNotifications, requestBrowserPermission } from '../../../actions/notifications'; +import { setFilter, clearNotifications, requestBrowserPermission } from '../../../actions/notifications'; import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications'; import { openModal } from '../../../actions/modal'; import { showAlert } from '../../../actions/alerts'; diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 38bbc6895b..2c6728fc05 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -5,7 +5,17 @@ import PropTypes from 'prop-types'; import classNames from 'classnames'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { createSelector } from 'reselect'; -import { fetchStatus } from '../../actions/statuses'; +import { + fetchStatus, + muteStatus, + unmuteStatus, + deleteStatus, + editStatus, + hideStatus, + revealStatus, + translateStatus, + undoStatusTranslation, +} from '../../actions/statuses'; import MissingIndicator from '../../components/missing_indicator'; import LoadingIndicator from 'mastodon/components/loading_indicator'; import DetailedStatus from './components/detailed_status'; @@ -26,16 +36,6 @@ import { mentionCompose, directCompose, } from '../../actions/compose'; -import { - muteStatus, - unmuteStatus, - deleteStatus, - editStatus, - hideStatus, - revealStatus, - translateStatus, - undoStatusTranslation, -} from '../../actions/statuses'; import { unblockAccount, unmuteAccount, From f553b064e09fd9005c61b910f7be9f7e2955197b Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 13 Feb 2023 09:47:50 -0500 Subject: [PATCH 0402/1220] Switch OpenID Connect gems (#23223) Co-authored-by: Claire --- Gemfile | 2 +- Gemfile.lock | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 5bb81e3d55..961926c534 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ end gem 'net-ldap', '~> 0.17' gem 'omniauth-cas', '~> 2.0' gem 'omniauth-saml', '~> 1.10' -gem 'gitlab-omniauth-openid-connect', '~>0.10.1', require: 'omniauth_openid_connect' +gem 'omniauth_openid_connect', '~> 0.6.0' gem 'omniauth', '~> 1.9' gem 'omniauth-rails_csrf_protection', '~> 0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 1c692ed0d7..df50ee38f4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -278,10 +278,6 @@ GEM fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - gitlab-omniauth-openid-connect (0.10.1) - addressable (~> 2.7) - omniauth (>= 1.9, < 3) - openid_connect (~> 1.2) globalid (1.1.0) activesupport (>= 5.0) haml (6.1.1) @@ -448,6 +444,9 @@ GEM omniauth-saml (1.10.3) omniauth (~> 1.3, >= 1.3.2) ruby-saml (~> 1.9) + omniauth_openid_connect (0.6.0) + omniauth (>= 1.9, < 3) + openid_connect (~> 1.1) openid_connect (1.4.2) activemodel attr_required (>= 1.0.0) @@ -800,7 +799,6 @@ DEPENDENCIES fog-core (<= 2.4.0) fog-openstack (~> 0.3) fuubar (~> 2.5) - gitlab-omniauth-openid-connect (~> 0.10.1) haml-rails (~> 2.0) hiredis (~> 0.6) htmlentities (~> 4.3) @@ -831,6 +829,7 @@ DEPENDENCIES omniauth-cas (~> 2.0) omniauth-rails_csrf_protection (~> 0.1) omniauth-saml (~> 1.10) + omniauth_openid_connect (~> 0.6.0) ox (~> 2.14) parslet pg (~> 1.4) From 45e2936c89870de7cd2fd0ce159e195745d8fddc Mon Sep 17 00:00:00 2001 From: Varun Sharma Date: Mon, 13 Feb 2023 20:34:26 +0530 Subject: [PATCH 0403/1220] Add tests to indicate inclusion of self replies in statuses endpoint (#23266) --- .../v1/accounts/statuses_controller_spec.rb | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb index b962b3398f..01d745fc0f 100644 --- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'rails_helper' describe Api::V1::Accounts::StatusesController do @@ -15,7 +16,12 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, limit: 1 } - expect(response).to have_http_status(200) + expect(response).to have_http_status(:ok) + end + + it 'returns expected headers' do + get :index, params: { account_id: user.account.id, limit: 1 } + expect(response.headers['Link'].links.size).to eq(2) end @@ -23,19 +29,29 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, only_media: true } - expect(response).to have_http_status(200) + expect(response).to have_http_status(:ok) end end context 'with exclude replies' do + let!(:older_statuses) { user.account.statuses.destroy_all } + let!(:status) { Fabricate(:status, account: user.account) } + let!(:status_self_reply) { Fabricate(:status, account: user.account, thread: status) } + before do - Fabricate(:status, account: user.account, thread: Fabricate(:status)) + Fabricate(:status, account: user.account, thread: Fabricate(:status)) # Reply to another user + get :index, params: { account_id: user.account.id, exclude_replies: true } end it 'returns http success' do - get :index, params: { account_id: user.account.id, exclude_replies: true } + expect(response).to have_http_status(:ok) + end - expect(response).to have_http_status(200) + it 'returns posts along with self replies' do + json = body_as_json + post_ids = json.map { |item| item[:id].to_i }.sort + + expect(post_ids).to eq [status.id, status_self_reply.id] end end @@ -47,7 +63,7 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, pinned: true } - expect(response).to have_http_status(200) + expect(response).to have_http_status(:ok) end end @@ -55,12 +71,15 @@ describe Api::V1::Accounts::StatusesController do let(:account) { Fabricate(:account, username: 'bob', domain: 'example.com') } let(:status) { Fabricate(:status, account: account) } let(:private_status) { Fabricate(:status, account: account, visibility: :private) } - let!(:pin) { Fabricate(:status_pin, account: account, status: status) } - let!(:private_pin) { Fabricate(:status_pin, account: account, status: private_status) } + + before do + Fabricate(:status_pin, account: account, status: status) + Fabricate(:status_pin, account: account, status: private_status) + end it 'returns http success' do get :index, params: { account_id: account.id, pinned: true } - expect(response).to have_http_status(200) + expect(response).to have_http_status(:ok) end context 'when user does not follow account' do From c84f38abc4b82d77c5d832399d5746fe51de3c67 Mon Sep 17 00:00:00 2001 From: Shlee Date: Mon, 13 Feb 2023 15:33:34 +0000 Subject: [PATCH 0404/1220] chewy from 7.2.4 to 7.2.7 (#23572) --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index df50ee38f4..4c6801047c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -164,7 +164,7 @@ GEM activesupport cbor (0.5.9.6) charlock_holmes (0.7.7) - chewy (7.2.4) + chewy (7.2.7) activesupport (>= 5.2) elasticsearch (>= 7.12.0, < 7.14.0) elasticsearch-dsl @@ -230,7 +230,7 @@ GEM fabrication (2.30.0) faker (3.1.1) i18n (>= 1.8.11, < 2) - faraday (1.9.3) + faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -246,8 +246,8 @@ GEM faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.0.3) - multipart-post (>= 1.2, < 3) + faraday-multipart (1.0.4) + multipart-post (~> 2) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) @@ -405,7 +405,7 @@ GEM minitest (5.17.0) msgpack (1.6.0) multi_json (1.15.0) - multipart-post (2.1.1) + multipart-post (2.3.0) net-http (0.3.2) uri net-imap (0.3.4) @@ -754,7 +754,7 @@ GEM xorcist (1.1.3) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.6) + zeitwerk (2.6.7) PLATFORMS ruby From d6930b3847405dc9f8c1a54fb74d488a3c9a775e Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 13 Feb 2023 16:36:29 +0100 Subject: [PATCH 0405/1220] Add API parameter to safeguard unexpect mentions in new posts (#18350) --- app/controllers/api/v1/statuses_controller.rb | 8 ++++++ app/services/post_status_service.rb | 28 +++++++++++++++++-- app/services/process_mentions_service.rb | 19 +++++++------ .../api/v1/statuses_controller_spec.rb | 17 +++++++++++ spec/services/post_status_service_spec.rb | 21 +++++++++++++- .../services/process_mentions_service_spec.rb | 13 +++++++++ 6 files changed, 94 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 9a8c0c1619..fadd1b0451 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -63,11 +63,18 @@ class Api::V1::StatusesController < Api::BaseController scheduled_at: status_params[:scheduled_at], application: doorkeeper_token.application, poll: status_params[:poll], + allowed_mentions: status_params[:allowed_mentions], idempotency: request.headers['Idempotency-Key'], with_rate_limit: true ) render json: @status, serializer: @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer + rescue PostStatusService::UnexpectedMentionsError => e + unexpected_accounts = ActiveModel::Serializer::CollectionSerializer.new( + e.accounts, + serializer: REST::AccountSerializer + ) + render json: { error: e.message, unexpected_accounts: unexpected_accounts }, status: 422 end def update @@ -128,6 +135,7 @@ class Api::V1::StatusesController < Api::BaseController :visibility, :language, :scheduled_at, + allowed_mentions: [], media_ids: [], media_attributes: [ :id, diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index bd3b696329..258af8827e 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -6,6 +6,15 @@ class PostStatusService < BaseService MIN_SCHEDULE_OFFSET = 5.minutes.freeze + class UnexpectedMentionsError < StandardError + attr_reader :accounts + + def initialize(message, accounts) + super(message) + @accounts = accounts + end + end + # Post a text status update, fetch and notify remote users mentioned # @param [Account] account Account from which to post # @param [Hash] options @@ -21,6 +30,7 @@ class PostStatusService < BaseService # @option [Doorkeeper::Application] :application # @option [String] :idempotency Optional idempotency key # @option [Boolean] :with_rate_limit + # @option [Enumerable] :allowed_mentions Optional array of expected mentioned account IDs, raises `UnexpectedMentionsError` if unexpected accounts end up in mentions # @return [Status] def call(account, options = {}) @account = account @@ -63,14 +73,27 @@ class PostStatusService < BaseService end def process_status! + @status = @account.statuses.new(status_attributes) + process_mentions_service.call(@status, save_records: false) + safeguard_mentions!(@status) + # The following transaction block is needed to wrap the UPDATEs to # the media attachments when the status is created - ApplicationRecord.transaction do - @status = @account.statuses.create!(status_attributes) + @status.save! end end + def safeguard_mentions!(status) + return if @options[:allowed_mentions].nil? + expected_account_ids = @options[:allowed_mentions].map(&:to_i) + + unexpected_accounts = status.mentions.map(&:account).to_a.reject { |mentioned_account| expected_account_ids.include?(mentioned_account.id) } + return if unexpected_accounts.empty? + + raise UnexpectedMentionsError.new('Post would be sent to unexpected accounts', unexpected_accounts) + end + def schedule_status! status_for_validation = @account.statuses.build(status_attributes) @@ -93,7 +116,6 @@ class PostStatusService < BaseService def postprocess_status! process_hashtags_service.call(@status) - process_mentions_service.call(@status) Trends.tags.register(@status) LinkCrawlWorker.perform_async(@status.id) DistributionWorker.perform_async(@status.id) diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index b117db8c25..93a96667e0 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -3,12 +3,13 @@ class ProcessMentionsService < BaseService include Payloadable - # Scan status for mentions and fetch remote mentioned users, create - # local mention pointers, send Salmon notifications to mentioned - # remote users + # Scan status for mentions and fetch remote mentioned users, + # and create local mention pointers # @param [Status] status - def call(status) + # @param [Boolean] save_records Whether to save records in database + def call(status, save_records: true) @status = status + @save_records = save_records return unless @status.local? @@ -55,14 +56,15 @@ class ProcessMentionsService < BaseService next match if mention_undeliverable?(mentioned_account) || mentioned_account&.suspended? mention = @previous_mentions.find { |x| x.account_id == mentioned_account.id } - mention ||= mentioned_account.mentions.new(status: @status) + mention ||= @current_mentions.find { |x| x.account_id == mentioned_account.id } + mention ||= @status.mentions.new(account: mentioned_account) @current_mentions << mention "@#{mentioned_account.acct}" end - @status.save! + @status.save! if @save_records end def assign_mentions! @@ -73,11 +75,12 @@ class ProcessMentionsService < BaseService mentioned_account_ids = @current_mentions.map(&:account_id) blocked_account_ids = Set.new(@status.account.block_relationships.where(target_account_id: mentioned_account_ids).pluck(:target_account_id)) - @current_mentions.select! { |mention| !(blocked_account_ids.include?(mention.account_id) || blocked_domains.include?(mention.account.domain)) } + dropped_mentions, @current_mentions = @current_mentions.partition { |mention| blocked_account_ids.include?(mention.account_id) || blocked_domains.include?(mention.account.domain) } + dropped_mentions.each(&:destroy) end @current_mentions.each do |mention| - mention.save if mention.new_record? + mention.save if mention.new_record? && @save_records end # If previous mentions are no longer contained in the text, convert them diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb index 24810a5d27..bd8b8013a6 100644 --- a/spec/controllers/api/v1/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/statuses_controller_spec.rb @@ -133,6 +133,23 @@ RSpec.describe Api::V1::StatusesController, type: :controller do end end + context 'with a safeguard' do + let!(:alice) { Fabricate(:account, username: 'alice') } + let!(:bob) { Fabricate(:account, username: 'bob') } + + before do + post :create, params: { status: '@alice hm, @bob is really annoying lately', allowed_mentions: [alice.id] } + end + + it 'returns http unprocessable entity' do + expect(response).to have_http_status(422) + end + + it 'returns serialized extra accounts in body' do + expect(body_as_json[:unexpected_accounts].map { |a| a.slice(:id, :acct) }).to eq [{ id: bob.id.to_s, acct: bob.acct }] + end + end + context 'with missing parameters' do before do post :create, params: {} diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index d21270c793..28f20e9c70 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -138,7 +138,26 @@ RSpec.describe PostStatusService, type: :service do status = subject.call(account, text: "test status update") expect(ProcessMentionsService).to have_received(:new) - expect(mention_service).to have_received(:call).with(status) + expect(mention_service).to have_received(:call).with(status, save_records: false) + end + + it 'safeguards mentions' do + account = Fabricate(:account) + mentioned_account = Fabricate(:account, username: 'alice') + unexpected_mentioned_account = Fabricate(:account, username: 'bob') + + expect do + subject.call(account, text: '@alice hm, @bob is really annoying lately', allowed_mentions: [mentioned_account.id]) + end.to raise_error(an_instance_of(PostStatusService::UnexpectedMentionsError).and having_attributes(accounts: [unexpected_mentioned_account])) + end + + it 'processes duplicate mentions correctly' do + account = Fabricate(:account) + mentioned_account = Fabricate(:account, username: 'alice') + + expect do + subject.call(account, text: '@alice @alice @alice hey @alice') + end.not_to raise_error end it 'processes hashtags' do diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index 5b9d17a4c2..0dd62c8070 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -47,6 +47,19 @@ RSpec.describe ProcessMentionsService, type: :service do end end + context 'mentioning a user several times when not saving records' do + let!(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') } + let(:status) { Fabricate(:status, account: account, text: "Hello @#{remote_user.acct} @#{remote_user.acct} @#{remote_user.acct}", visibility: :public) } + + before do + subject.call(status, save_records: false) + end + + it 'creates exactly one mention' do + expect(status.mentions.size).to eq 1 + end + end + context 'with an IDN domain' do let!(:remote_user) { Fabricate(:account, username: 'sneak', protocol: :activitypub, domain: 'xn--hresiar-mxa.ch', inbox_url: 'http://example.com/inbox') } let!(:status) { Fabricate(:status, account: account, text: "Hello @sneak@hæresiar.ch") } From 58291b31fa8eff7bb5dd76b605377a33a977fa5a Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 10 Feb 2023 22:03:35 +0100 Subject: [PATCH 0406/1220] [Glitch] Fix attached media uploads not being cleared when replying to a post Port bae17ebe5eab02879599ae8516cf6b3f6736b450 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/compose/components/upload.js | 5 +++++ app/javascript/flavours/glitch/reducers/compose.js | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/javascript/flavours/glitch/features/compose/components/upload.js b/app/javascript/flavours/glitch/features/compose/components/upload.js index c82b8d55a0..63582c6367 100644 --- a/app/javascript/flavours/glitch/features/compose/components/upload.js +++ b/app/javascript/flavours/glitch/features/compose/components/upload.js @@ -32,6 +32,11 @@ export default class Upload extends ImmutablePureComponent { render () { const { media } = this.props; + + if (!media) { + return null; + } + const focusX = media.getIn(['meta', 'focus', 'x']); const focusY = media.getIn(['meta', 'focus', 'y']); const x = ((focusX / 2) + .5) * 100; diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index 57ab36b3d8..c31cc56940 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -421,6 +421,8 @@ export default function compose(state = initialState, action) { map.set('preselectDate', new Date()); map.set('idempotencyKey', uuid()); + map.update('media_attachments', list => list.filter(media => media.get('unattached'))); + if (action.status.get('language') && !action.status.has('translation')) { map.set('language', action.status.get('language')); } else { From 40fc917a8616898b842ab9f59c81e67a464c3483 Mon Sep 17 00:00:00 2001 From: Dean Bassett Date: Mon, 13 Feb 2023 05:54:08 -0800 Subject: [PATCH 0407/1220] [Glitch] Fix case-sensitive check for previously used hashtags Port 4da5f77d929d6b83c134cae1eefbc8ba2db752f8 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/reducers/compose.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index c31cc56940..109e4c723f 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -273,11 +273,12 @@ const ignoreSuggestion = (state, position, token, completion, path) => { }; const sortHashtagsByUse = (state, tags) => { - const personalHistory = state.get('tagHistory'); + const personalHistory = state.get('tagHistory').map(tag => tag.toLowerCase()); - return tags.sort((a, b) => { - const usedA = personalHistory.includes(a.name); - const usedB = personalHistory.includes(b.name); + const tagsWithLowercase = tags.map(t => ({ ...t, lowerName: t.name.toLowerCase() })); + const sorted = tagsWithLowercase.sort((a, b) => { + const usedA = personalHistory.includes(a.lowerName); + const usedB = personalHistory.includes(b.lowerName); if (usedA === usedB) { return 0; @@ -287,6 +288,8 @@ const sortHashtagsByUse = (state, tags) => { return 1; } }); + sorted.forEach(tag => delete tag.lowerName); + return sorted; }; const insertEmoji = (state, position, emojiData) => { From 7bc946e8dae217ef26dd38155740bae326deb401 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:07:12 +0100 Subject: [PATCH 0408/1220] Bump aws-sdk-s3 from 1.119.0 to 1.119.1 (#23586) 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 4c6801047c..5ff4e318bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.701.0) + aws-partitions (1.711.0) aws-sdk-core (3.170.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) @@ -99,7 +99,7 @@ GEM aws-sdk-kms (1.62.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.119.0) + aws-sdk-s3 (1.119.1) aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) From 737fbe5c0287e6dfd6b38259835b1ae5f9dc68b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:11:51 +0100 Subject: [PATCH 0409/1220] Bump nokogiri from 1.14.1 to 1.14.2 (#23577) 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 5ff4e318bb..26800af2c9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -422,7 +422,7 @@ GEM net-protocol net-ssh (7.0.1) nio4r (2.5.8) - nokogiri (1.14.1) + nokogiri (1.14.2) mini_portile2 (~> 2.8.0) racc (~> 1.4) nsa (0.2.8) From 93e36c0d551d0088a98c8d1f6db5186af80353f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:12:14 +0100 Subject: [PATCH 0410/1220] Bump stylelint-config-standard-scss from 7.0.0 to 7.0.1 (#23578) 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 9fc84f01d8..97cbe4f975 100644 --- a/package.json +++ b/package.json @@ -158,7 +158,7 @@ "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", "stylelint": "^15.1.0", - "stylelint-config-standard-scss": "^7.0.0", + "stylelint-config-standard-scss": "^7.0.1", "webpack-dev-server": "^3.11.3", "yargs": "^17.6.2" }, diff --git a/yarn.lock b/yarn.lock index b94daa0893..e122ff14eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10478,10 +10478,10 @@ stylelint-config-recommended@^10.0.1: resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz#25a8828acf6cde87dac6db2950c8c4ed82a69ae1" integrity sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA== -stylelint-config-standard-scss@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-7.0.0.tgz#c7076bf5afa705d9e5ddc3ede39da7a684fa0f60" - integrity sha512-rHgydRJxN4Q9lDcwrLFoiFA3S8CRqsUcyBBCLwEMjIwzJViluFfsOKFPSomx6hScVQgQ4//Fx0hRKiSHyO0ihw== +stylelint-config-standard-scss@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-7.0.1.tgz#4ba83fa19e1508937f7e02674e085cf94fc1a145" + integrity sha512-m5sRdtsB1F5fnC1Ozla7ryftU47wVpO+HWd+JQTqeoG0g/oPh5EfbWfcVHbNCEtuoHfALIySiUWS20pz2hX6jA== dependencies: stylelint-config-recommended-scss "^9.0.0" stylelint-config-standard "^30.0.1" From 14ad013f5ea847931ab900d0fc1229db9c7812e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:12:21 +0100 Subject: [PATCH 0411/1220] Bump ws from 8.12.0 to 8.12.1 (#23579) 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 97cbe4f975..54db6dafbe 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "workbox-strategies": "^6.5.4", "workbox-webpack-plugin": "^6.5.4", "workbox-window": "^6.5.4", - "ws": "^8.12.0" + "ws": "^8.12.1" }, "devDependencies": { "@babel/eslint-parser": "^7.19.1", diff --git a/yarn.lock b/yarn.lock index e122ff14eb..9b3fe79323 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11840,10 +11840,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.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== +ws@^8.11.0, ws@^8.12.1: + version "8.12.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== xml-name-validator@^4.0.0: version "4.0.0" From 64f9ced09f05d3505c093a86da340e3e513e2c78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:12:41 +0100 Subject: [PATCH 0412/1220] Bump axios from 1.3.2 to 1.3.3 (#23580) 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 54db6dafbe..1a39779976 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.3.2", + "axios": "^1.3.3", "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 9b3fe79323..37f20f025d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2555,10 +2555,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.2.tgz#7ac517f0fa3ec46e0e636223fd973713a09c72b3" - integrity sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw== +axios@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.3.tgz#e7011384ba839b885007c9c9fae1ff23dceb295b" + integrity sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" From cfad64daebe827b014785a70b11ebec330694a5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:14:10 +0100 Subject: [PATCH 0413/1220] Bump webpack-bundle-analyzer from 4.7.0 to 4.8.0 (#23581) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 1a39779976..87696d2768 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "uuid": "^8.3.1", "webpack": "^4.46.0", "webpack-assets-manifest": "^4.0.6", - "webpack-bundle-analyzer": "^4.7.0", + "webpack-bundle-analyzer": "^4.8.0", "webpack-cli": "^3.3.12", "webpack-merge": "^5.8.0", "wicg-inert": "^3.1.2", diff --git a/yarn.lock b/yarn.lock index 37f20f025d..1fe1a1a7b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1096,6 +1096,11 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308" integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw== +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + "@emotion/babel-plugin@^11.7.1": version "11.9.2" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95" @@ -2195,12 +2200,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -acorn@^8.8.0: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -11361,11 +11361,12 @@ webpack-assets-manifest@^4.0.6: tapable "^1.0" webpack-sources "^1.0" -webpack-bundle-analyzer@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz#33c1c485a7fcae8627c547b5c3328b46de733c66" - integrity sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg== +webpack-bundle-analyzer@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz#951b8aaf491f665d2ae325d8b84da229157b1d04" + integrity sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg== dependencies: + "@discoveryjs/json-ext" "0.5.7" acorn "^8.0.4" acorn-walk "^8.0.0" chalk "^4.1.0" From 526361a5e9c6a19a50d06ed241818bd194f0f1b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:14:29 +0100 Subject: [PATCH 0414/1220] Bump prettier from 2.8.3 to 2.8.4 (#23584) 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 87696d2768..b0550d8ba9 100644 --- a/package.json +++ b/package.json @@ -153,7 +153,7 @@ "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "postcss-scss": "^4.0.6", - "prettier": "^2.8.3", + "prettier": "^2.8.4", "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 1fe1a1a7b9..898b574b65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8785,10 +8785,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.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" - integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== +prettier@^2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" From a4f22e43439ef2404b244483078769b72f23c3c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:27:24 +0100 Subject: [PATCH 0415/1220] Bump jest from 29.4.1 to 29.4.2 (#23585) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 710 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 440 insertions(+), 272 deletions(-) diff --git a/package.json b/package.json index b0550d8ba9..8c1a10dc89 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", - "jest": "^29.4.1", + "jest": "^29.4.2", "jest-environment-jsdom": "^29.4.1", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", diff --git a/yarn.lock b/yarn.lock index 898b574b65..b8df1ef69d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1268,49 +1268,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.1.tgz#cbc31d73f6329f693b3d34b365124de797704fff" - integrity sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ== +"@jest/console@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.2.tgz#f78374905c2454764152904a344a2d5226b0ef09" + integrity sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + jest-message-util "^29.4.2" + jest-util "^29.4.2" slash "^3.0.0" -"@jest/core@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.1.tgz#91371179b5959951e211dfaeea4277a01dcca14f" - integrity sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA== +"@jest/core@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.2.tgz#6e999b67bdc2df9d96ba9b142465bda71ee472c2" + integrity sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ== dependencies: - "@jest/console" "^29.4.1" - "@jest/reporters" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/reporters" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.4.0" - jest-config "^29.4.1" - jest-haste-map "^29.4.1" - jest-message-util "^29.4.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-resolve-dependencies "^29.4.1" - jest-runner "^29.4.1" - jest-runtime "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" - jest-watcher "^29.4.1" + jest-changed-files "^29.4.2" + jest-config "^29.4.2" + jest-haste-map "^29.4.2" + jest-message-util "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-resolve-dependencies "^29.4.2" + jest-runner "^29.4.2" + jest-runtime "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" + jest-watcher "^29.4.2" micromatch "^4.0.4" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" strip-ansi "^6.0.0" @@ -1324,20 +1324,30 @@ "@types/node" "*" jest-mock "^29.4.1" -"@jest/expect-utils@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.1.tgz#105b9f3e2c48101f09cae2f0a4d79a1b3a419cbb" - integrity sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ== +"@jest/environment@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" + integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ== dependencies: - jest-get-type "^29.2.0" + "@jest/fake-timers" "^29.4.2" + "@jest/types" "^29.4.2" + "@types/node" "*" + jest-mock "^29.4.2" -"@jest/expect@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.1.tgz#3338fa20f547bb6e550c4be37d6f82711cc13c38" - integrity sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw== +"@jest/expect-utils@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.2.tgz#cd0065dfdd8e8a182aa350cc121db97b5eed7b3f" + integrity sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA== dependencies: - expect "^29.4.1" - jest-snapshot "^29.4.1" + jest-get-type "^29.4.2" + +"@jest/expect@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.2.tgz#2d4a6a41b29380957c5094de19259f87f194578b" + integrity sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ== + dependencies: + expect "^29.4.2" + jest-snapshot "^29.4.2" "@jest/fake-timers@^29.4.1": version "29.4.1" @@ -1351,26 +1361,38 @@ jest-mock "^29.4.1" jest-util "^29.4.1" -"@jest/globals@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.1.tgz#3cd78c5567ab0249f09fbd81bf9f37a7328f4713" - integrity sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA== +"@jest/fake-timers@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" + integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ== dependencies: - "@jest/environment" "^29.4.1" - "@jest/expect" "^29.4.1" - "@jest/types" "^29.4.1" - jest-mock "^29.4.1" + "@jest/types" "^29.4.2" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.4.2" + jest-mock "^29.4.2" + jest-util "^29.4.2" -"@jest/reporters@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.1.tgz#50d509c08575c75e3cd2176d72ec3786419d5e04" - integrity sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg== +"@jest/globals@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.2.tgz#73f85f5db0e17642258b25fd0b9fc89ddedb50eb" + integrity sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg== + dependencies: + "@jest/environment" "^29.4.2" + "@jest/expect" "^29.4.2" + "@jest/types" "^29.4.2" + jest-mock "^29.4.2" + +"@jest/reporters@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.2.tgz#6abfa923941daae0acc76a18830ee9e79a22042d" + integrity sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1383,9 +1405,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.1" - jest-util "^29.4.1" - jest-worker "^29.4.1" + jest-message-util "^29.4.2" + jest-util "^29.4.2" + jest-worker "^29.4.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1398,33 +1420,40 @@ dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== +"@jest/schemas@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" + integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/source-map@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.2.tgz#f9815d59e25cd3d6828e41489cd239271018d153" + integrity sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.1.tgz#997f19695e13b34779ceb3c288a416bd26c3238d" - integrity sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ== +"@jest/test-result@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.2.tgz#34b0ba069f2e3072261e4884c8fb6bd15ed6fb8d" + integrity sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA== dependencies: - "@jest/console" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/types" "^29.4.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz#f7a006ec7058b194a10cf833c88282ef86d578fd" - integrity sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w== +"@jest/test-sequencer@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.2.tgz#8b48e5bc4af80b42edacaf2a733d4f295edf28fb" + integrity sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg== dependencies: - "@jest/test-result" "^29.4.1" + "@jest/test-result" "^29.4.2" graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" + jest-haste-map "^29.4.2" slash "^3.0.0" "@jest/transform@^29.4.1": @@ -1448,6 +1477,27 @@ slash "^3.0.0" write-file-atomic "^5.0.0" +"@jest/transform@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81" + integrity sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.4.2" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.4.2" + jest-regex-util "^29.4.2" + jest-util "^29.4.2" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1469,12 +1519,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" - integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== +"@jest/types@^29.4.1", "@jest/types@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" + integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== dependencies: - "@jest/schemas" "^29.4.0" + "@jest/schemas" "^29.4.2" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -2584,6 +2634,19 @@ babel-jest@^29.4.1: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" + integrity sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ== + dependencies: + "@jest/transform" "^29.4.2" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.4.2" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-loader@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -2615,6 +2678,16 @@ babel-plugin-jest-hoist@^29.4.0: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc" + integrity sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -2722,6 +2795,14 @@ babel-preset-jest@^29.4.0: babel-plugin-jest-hoist "^29.4.0" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38" + integrity sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ== + dependencies: + babel-plugin-jest-hoist "^29.4.2" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -4110,10 +4191,10 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== +diff-sequences@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda" + integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw== diffie-hellman@^5.0.0: version "5.0.3" @@ -4810,16 +4891,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.1.tgz#58cfeea9cbf479b64ed081fd1e074ac8beb5a1fe" - integrity sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A== +expect@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.2.tgz#2ae34eb88de797c64a1541ad0f1e2ea8a7a7b492" + integrity sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ== dependencies: - "@jest/expect-utils" "^29.4.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + "@jest/expect-utils" "^29.4.2" + jest-get-type "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-util "^29.4.2" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -6471,82 +6552,82 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" - integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== +jest-changed-files@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376" + integrity sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.1.tgz#ff1b63eb04c3b111cefea9489e8dbadd23ce49bd" - integrity sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA== +jest-circus@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.2.tgz#2d00c04baefd0ee2a277014cd494d4b5970663ed" + integrity sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg== dependencies: - "@jest/environment" "^29.4.1" - "@jest/expect" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/expect" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.1" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-runtime "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" + jest-each "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-runtime "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" p-limit "^3.1.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.1.tgz#7abef96944f300feb9b76f68b1eb2d68774fe553" - integrity sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ== +jest-cli@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.2.tgz#94a2f913a0a7a49d11bee98ad88bf48baae941f4" + integrity sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q== dependencies: - "@jest/core" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/core" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-config "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.1.tgz#e62670c6c980ec21d75941806ec4d0c0c6402728" - integrity sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg== +jest-config@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.2.tgz#15386dd9ed2f7059516915515f786b8836a98f07" + integrity sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.1" - "@jest/types" "^29.4.1" - babel-jest "^29.4.1" + "@jest/test-sequencer" "^29.4.2" + "@jest/types" "^29.4.2" + babel-jest "^29.4.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.4.1" - jest-environment-node "^29.4.1" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-runner "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-circus "^29.4.2" + jest-environment-node "^29.4.2" + jest-get-type "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-runner "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -6560,33 +6641,33 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.1.tgz#9a6dc715037e1fa7a8a44554e7d272088c4029bd" - integrity sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw== +jest-diff@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871" + integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g== dependencies: chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + diff-sequences "^29.4.2" + jest-get-type "^29.4.2" + pretty-format "^29.4.2" -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== +jest-docblock@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.2.tgz#c78a95eedf9a24c0a6cc16cf2abdc4b8b0f2531b" + integrity sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag== dependencies: detect-newline "^3.0.0" -jest-each@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.1.tgz#05ce9979e7486dbd0f5d41895f49ccfdd0afce01" - integrity sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ== +jest-each@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.2.tgz#e1347aff1303f4c35470827a62c029d389c5d44a" + integrity sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.4.1" - pretty-format "^29.4.1" + jest-get-type "^29.4.2" + jest-util "^29.4.2" + pretty-format "^29.4.2" jest-environment-jsdom@^29.4.1: version "29.4.1" @@ -6602,27 +6683,27 @@ jest-environment-jsdom@^29.4.1: jest-util "^29.4.1" jsdom "^20.0.0" -jest-environment-node@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.1.tgz#22550b7d0f8f0b16228639c9f88ca04bbf3c1974" - integrity sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg== +jest-environment-node@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.2.tgz#0eab835b41e25fd0c1a72f62665fc8db08762ad2" + integrity sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w== dependencies: - "@jest/environment" "^29.4.1" - "@jest/fake-timers" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/fake-timers" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" - jest-mock "^29.4.1" - jest-util "^29.4.1" + jest-mock "^29.4.2" + jest-util "^29.4.2" jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== +jest-get-type@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" + integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== jest-haste-map@^29.4.1: version "29.4.1" @@ -6643,23 +6724,42 @@ jest-haste-map@^29.4.1: optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz#632186c546e084da2b490b7496fee1a1c9929637" - integrity sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ== +jest-haste-map@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a" + integrity sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw== dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + "@jest/types" "^29.4.2" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.4.2" + jest-util "^29.4.2" + jest-worker "^29.4.2" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" -jest-matcher-utils@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz#73d834e305909c3b43285fbc76f78bf0ad7e1954" - integrity sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA== +jest-leak-detector@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.2.tgz#8f05c6680e0cb46a1d577c0d3da9793bed3ea97b" + integrity sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA== + dependencies: + jest-get-type "^29.4.2" + pretty-format "^29.4.2" + +jest-matcher-utils@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.2.tgz#08d0bf5abf242e3834bec92c7ef5071732839e85" + integrity sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg== dependencies: chalk "^4.0.0" - jest-diff "^29.4.1" - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + jest-diff "^29.4.2" + jest-get-type "^29.4.2" + pretty-format "^29.4.2" jest-message-util@^29.4.1: version "29.4.1" @@ -6676,6 +6776,21 @@ jest-message-util@^29.4.1: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717" + integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.4.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.4.2" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" @@ -6685,6 +6800,15 @@ jest-mock@^29.4.1: "@types/node" "*" jest-util "^29.4.1" +jest-mock@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" + integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g== + dependencies: + "@jest/types" "^29.4.2" + "@types/node" "*" + jest-util "^29.4.2" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -6695,89 +6819,94 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz#02420a2e055da105e5fca8218c471d8b9553c904" - integrity sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg== - dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.4.1" +jest-regex-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" + integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig== -jest-resolve@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.1.tgz#4c6bf71a07b8f0b79c5fdf4f2a2cf47317694c5e" - integrity sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ== +jest-resolve-dependencies@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.2.tgz#6359db606f5967b68ca8bbe9dbc07a4306c12bf7" + integrity sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg== + dependencies: + jest-regex-util "^29.4.2" + jest-snapshot "^29.4.2" + +jest-resolve@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.2.tgz#8831f449671d08d161fe493003f61dc9b55b808e" + integrity sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" + jest-haste-map "^29.4.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-util "^29.4.2" + jest-validate "^29.4.2" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.1.tgz#57460d9ebb0eea2e27eeddca1816cf8537469661" - integrity sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg== +jest-runner@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.2.tgz#2bcecf72303369df4ef1e6e983c22a89870d5125" + integrity sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg== dependencies: - "@jest/console" "^29.4.1" - "@jest/environment" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/environment" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.4.1" - jest-haste-map "^29.4.1" - jest-leak-detector "^29.4.1" - jest-message-util "^29.4.1" - jest-resolve "^29.4.1" - jest-runtime "^29.4.1" - jest-util "^29.4.1" - jest-watcher "^29.4.1" - jest-worker "^29.4.1" + jest-docblock "^29.4.2" + jest-environment-node "^29.4.2" + jest-haste-map "^29.4.2" + jest-leak-detector "^29.4.2" + jest-message-util "^29.4.2" + jest-resolve "^29.4.2" + jest-runtime "^29.4.2" + jest-util "^29.4.2" + jest-watcher "^29.4.2" + jest-worker "^29.4.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.1.tgz#9a50f9c69d3a391690897c01b0bfa8dc5dd45808" - integrity sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA== +jest-runtime@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.2.tgz#d86b764c5b95d76cb26ed1f32644e99de5d5c134" + integrity sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw== dependencies: - "@jest/environment" "^29.4.1" - "@jest/fake-timers" "^29.4.1" - "@jest/globals" "^29.4.1" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/fake-timers" "^29.4.2" + "@jest/globals" "^29.4.2" + "@jest/source-map" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" - jest-message-util "^29.4.1" - jest-mock "^29.4.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" + jest-haste-map "^29.4.2" + jest-message-util "^29.4.2" + jest-mock "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.1.tgz#5692210b3690c94f19317913d4082b123bd83dd9" - integrity sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA== +jest-snapshot@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.2.tgz#ba1fb9abb279fd2c85109ff1757bc56b503bbb3a" + integrity sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6785,23 +6914,23 @@ jest-snapshot@^29.4.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/expect-utils" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.1" + expect "^29.4.2" graceful-fs "^4.2.9" - jest-diff "^29.4.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.4.1" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + jest-diff "^29.4.2" + jest-get-type "^29.4.2" + jest-haste-map "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-util "^29.4.2" natural-compare "^1.4.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" semver "^7.3.5" jest-util@^29.4.1: @@ -6816,30 +6945,42 @@ jest-util@^29.4.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.1.tgz#0d5174510415083ec329d4f981bf6779211f17e9" - integrity sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw== +jest-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" + integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.2.tgz#3b3f8c4910ab9a3442d2512e2175df6b3f77b915" + integrity sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q== + dependencies: + "@jest/types" "^29.4.2" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.2.0" + jest-get-type "^29.4.2" leven "^3.1.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" -jest-watcher@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.1.tgz#6e3e2486918bd778849d4d6e67fd77b814f3e6ed" - integrity sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw== +jest-watcher@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.2.tgz#09c0f4c9a9c7c0807fcefb1445b821c6f7953b7c" + integrity sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w== dependencies: - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.1" + jest-util "^29.4.2" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -6861,15 +7002,25 @@ jest-worker@^29.4.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" - integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== +jest-worker@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f" + integrity sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw== dependencies: - "@jest/core" "^29.4.1" - "@jest/types" "^29.4.1" + "@types/node" "*" + jest-util "^29.4.2" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.2.tgz#4c2127d03a71dc187f386156ef155dbf323fb7be" + integrity sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg== + dependencies: + "@jest/core" "^29.4.2" + "@jest/types" "^29.4.2" import-local "^3.0.2" - jest-cli "^29.4.1" + jest-cli "^29.4.2" js-sdsl@^4.1.4: version "4.3.0" @@ -8824,6 +8975,15 @@ pretty-format@^29.4.1: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" + integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg== + dependencies: + "@jest/schemas" "^29.4.2" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -11821,6 +11981,14 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + write-file-atomic@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" From 6f34fdcd86b75f5bf559f11ecaf5489292c725d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:35:10 +0100 Subject: [PATCH 0416/1220] Bump jest-environment-jsdom from 29.4.1 to 29.4.2 (#23582) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 94 ++++++---------------------------------------------- 2 files changed, 11 insertions(+), 85 deletions(-) diff --git a/package.json b/package.json index 8c1a10dc89..72ca2a8c77 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", "jest": "^29.4.2", - "jest-environment-jsdom": "^29.4.1", + "jest-environment-jsdom": "^29.4.2", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", "raf": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index b8df1ef69d..3bfd83e473 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1314,16 +1314,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" - integrity sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg== - dependencies: - "@jest/fake-timers" "^29.4.1" - "@jest/types" "^29.4.1" - "@types/node" "*" - jest-mock "^29.4.1" - "@jest/environment@^29.4.2": version "29.4.2" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" @@ -1349,18 +1339,6 @@ expect "^29.4.2" jest-snapshot "^29.4.2" -"@jest/fake-timers@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" - integrity sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw== - dependencies: - "@jest/types" "^29.4.1" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.4.1" - jest-mock "^29.4.1" - jest-util "^29.4.1" - "@jest/fake-timers@^29.4.2": version "29.4.2" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" @@ -1413,13 +1391,6 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" - integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== - dependencies: - "@sinclair/typebox" "^0.25.16" - "@jest/schemas@^29.4.2": version "29.4.2" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" @@ -6669,18 +6640,18 @@ jest-each@^29.4.2: jest-util "^29.4.2" pretty-format "^29.4.2" -jest-environment-jsdom@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.1.tgz#34d491244ddd6fe3d666da603b576bd0ae6aef78" - integrity sha512-+KfYmRTl5CBHQst9hIz77TiiriHYvuWoLjMT855gx2AMxhHxpk1vtKvag1DQfyWCPVTWV/AG7SIqVh5WI1O/uw== +jest-environment-jsdom@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz#0cf95ad846949280dd58bc91a9ca463b6b232dd8" + integrity sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg== dependencies: - "@jest/environment" "^29.4.1" - "@jest/fake-timers" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/fake-timers" "^29.4.2" + "@jest/types" "^29.4.2" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.4.1" - jest-util "^29.4.1" + jest-mock "^29.4.2" + jest-util "^29.4.2" jsdom "^20.0.0" jest-environment-node@^29.4.2: @@ -6761,21 +6732,6 @@ jest-matcher-utils@^29.4.2: jest-get-type "^29.4.2" pretty-format "^29.4.2" -jest-message-util@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" - integrity sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.4.1" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717" @@ -6791,15 +6747,6 @@ jest-message-util@^29.4.2: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" - integrity sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ== - dependencies: - "@jest/types" "^29.4.1" - "@types/node" "*" - jest-util "^29.4.1" - jest-mock@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" @@ -6933,19 +6880,7 @@ jest-snapshot@^29.4.2: pretty-format "^29.4.2" semver "^7.3.5" -jest-util@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" - integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== - dependencies: - "@jest/types" "^29.4.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.4.2: +jest-util@^29.4.1, jest-util@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== @@ -8966,15 +8901,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" - integrity sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg== - dependencies: - "@jest/schemas" "^29.4.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-format@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" From 520c73c12fa4f8601166e243b45c6cdda7eba528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:44:26 +0100 Subject: [PATCH 0417/1220] Bump babel-jest from 29.4.1 to 29.4.2 (#23583) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 86 ---------------------------------------------------- 2 files changed, 1 insertion(+), 87 deletions(-) diff --git a/package.json b/package.json index 72ca2a8c77..fc31d444c9 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "@babel/eslint-parser": "^7.19.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", - "babel-jest": "^29.4.1", + "babel-jest": "^29.4.2", "eslint": "^8.33.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", diff --git a/yarn.lock b/yarn.lock index 3bfd83e473..09a319e8ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1427,27 +1427,6 @@ jest-haste-map "^29.4.2" slash "^3.0.0" -"@jest/transform@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" - integrity sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.4.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" - jest-regex-util "^29.2.0" - jest-util "^29.4.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^5.0.0" - "@jest/transform@^29.4.2": version "29.4.2" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81" @@ -2592,19 +2571,6 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" -babel-jest@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" - integrity sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg== - dependencies: - "@jest/transform" "^29.4.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" @@ -2639,16 +2605,6 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" - integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc" @@ -2758,14 +2714,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" - integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== - dependencies: - babel-plugin-jest-hoist "^29.4.0" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38" @@ -6676,25 +6624,6 @@ jest-get-type@^29.4.2: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== -jest-haste-map@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" - integrity sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w== - dependencies: - "@jest/types" "^29.4.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.4.1" - jest-worker "^29.4.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-haste-map@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a" @@ -6761,11 +6690,6 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== - jest-regex-util@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" @@ -6927,16 +6851,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" - integrity sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ== - dependencies: - "@types/node" "*" - jest-util "^29.4.1" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f" From 66f715550e575129e5d8b093a15aa67527136bd2 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 14 Feb 2023 13:50:55 +0100 Subject: [PATCH 0418/1220] Add `memorial` attribute to REST API (#23591) --- app/serializers/rest/account_serializer.rb | 8 +++++++- spec/serializers/rest/account_serializer_spec.rb | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index f6fad9fe14..2845470be0 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -16,6 +16,8 @@ class REST::AccountSerializer < ActiveModel::Serializer attribute :silenced, key: :limited, if: :silenced? attribute :noindex, if: :local? + attribute :memorial, if: :memorial? + class AccountDecorator < SimpleDelegator def self.model_name Account.model_name @@ -124,6 +126,10 @@ class REST::AccountSerializer < ActiveModel::Serializer object.silenced? end + def memorial + object.memorial? + end + def roles if object.suspended? || object.user.nil? [] @@ -136,7 +142,7 @@ class REST::AccountSerializer < ActiveModel::Serializer object.user_prefers_noindex? end - delegate :suspended?, :silenced?, :local?, to: :object + delegate :suspended?, :silenced?, :local?, :memorial?, to: :object def moved_and_not_nested? object.moved? diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb index ce29df3a76..5b08d5aca6 100644 --- a/spec/serializers/rest/account_serializer_spec.rb +++ b/spec/serializers/rest/account_serializer_spec.rb @@ -34,4 +34,14 @@ describe REST::AccountSerializer do expect(subject['roles']).to eq [] end end + + context 'when the account is memorialized' do + before do + account.memorialize! + end + + it 'marks it as such' do + expect(subject['memorial']).to be true + end + end end From d15a9df6fefd515e8c655b1a03f08d2a95675d97 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Tue, 14 Feb 2023 19:05:57 +0100 Subject: [PATCH 0419/1220] Fix paths with url-encoded @ to redirect to the correct path (#23593) --- config/routes.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/routes.rb b/config/routes.rb index 319f0c7d15..e7c4c000ee 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -110,6 +110,8 @@ Rails.application.routes.draw do resource :inbox, only: [:create], module: :activitypub + get '/:encoded_at(*path)', to: redirect("/@%{path}"), constraints: { encoded_at: /%40/ } + constraints(username: /[^@\/.]+/) do get '/@:username', to: 'accounts#show', as: :short_account get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies From fb8503e861b630728ead4be847309f1fd7c03dd4 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 14 Feb 2023 23:30:27 -0800 Subject: [PATCH 0420/1220] Upgrade to Ruby 3.2 (#22928) Co-authored-by: Matthew Ford --- .circleci/config.yml | 18 ++++++++++-------- .github/workflows/check-i18n.yml | 2 +- .ruby-version | 2 +- Dockerfile | 2 +- Gemfile | 6 +++--- Gemfile.lock | 32 ++++++++++++++++++++++---------- app/models/backup.rb | 2 +- 7 files changed, 39 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fabb6967e7..0b31238937 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,7 @@ commands: name: Set bundler settings - ruby/install-deps: bundler-version: '2.3.26' - key: ruby<< parameters.ruby-version >>-gems-v1 + key: ruby<< parameters.ruby-version >>-gems-v2 wait-db: steps: - run: @@ -56,14 +56,14 @@ commands: jobs: build: docker: - - image: cimg/ruby:3.0-node + - image: cimg/ruby:3.2-node environment: RAILS_ENV: test steps: - checkout - install-system-dependencies - install-ruby-dependencies: - ruby-version: '3.0' + ruby-version: '3.2' - node/install-packages: cache-version: v1 pkg-manager: yarn @@ -95,7 +95,7 @@ jobs: - checkout - install-system-dependencies - run: - command: sudo apt-get install -y ffmpeg imagemagick libpam-dev + command: sudo apt-get install -y ffmpeg imagemagick libmagickcore-dev libmagickwand-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libpam-dev name: Install additional system dependencies - run: command: bundle config with 'pam_authentication' @@ -113,12 +113,12 @@ jobs: test-migrations: executor: name: default - ruby-version: '3.0' + ruby-version: '3.2' steps: - checkout - install-system-dependencies - install-ruby-dependencies: - ruby-version: '3.0' + ruby-version: '3.2' - wait-db - run: command: ./bin/rails db:create @@ -151,12 +151,12 @@ jobs: test-two-step-migrations: executor: name: default - ruby-version: '3.0' + ruby-version: '3.2' steps: - checkout - install-system-dependencies - install-ruby-dependencies: - ruby-version: '3.0' + ruby-version: '3.2' - wait-db - run: command: ./bin/rails db:create @@ -206,6 +206,8 @@ workflows: ruby-version: - '2.7' - '3.0' + - '3.1' + - '3.2' name: test-ruby<< matrix.ruby-version >> requires: - build diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml index b2e6197868..aa2ec03940 100644 --- a/.github/workflows/check-i18n.yml +++ b/.github/workflows/check-i18n.yml @@ -14,7 +14,7 @@ permissions: jobs: check-i18n: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 diff --git a/.ruby-version b/.ruby-version index eca690e737..e4604e3afd 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.5 +3.2.1 diff --git a/Dockerfile b/Dockerfile index 04e3b58b1e..c2b18ce886 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim ARG NODE_VERSION="16.19-bullseye-slim" -FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.5-slim as ruby +FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby FROM node:${NODE_VERSION} as build COPY --link --from=ruby /opt/ruby /opt/ruby diff --git a/Gemfile b/Gemfile index 961926c534..3a1f3a8c4d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby '>= 2.7.0', '< 3.1.0' +ruby '>= 2.7.0', '< 3.3.0' gem 'pkg-config', '~> 1.5' gem 'rexml', '~> 3.2' @@ -21,7 +21,7 @@ gem 'dotenv-rails', '~> 2.8' gem 'aws-sdk-s3', '~> 1.119', require: false gem 'fog-core', '<= 2.4.0' gem 'fog-openstack', '~> 0.3', require: false -gem 'kt-paperclip', '~> 7.1' +gem 'kt-paperclip', '~> 7.1', github: 'kreeti/kt-paperclip', ref: '11abf222dc31bff71160a1d138b445214f434b2b' gem 'blurhash', '~> 0.1' gem 'active_model_serializers', '~> 0.10' @@ -72,7 +72,7 @@ gem 'premailer-rails' gem 'rack-attack', '~> 6.6' gem 'rack-cors', '~> 1.1', require: 'rack/cors' gem 'rails-i18n', '~> 6.0' -gem 'rails-settings-cached', '~> 0.6' +gem 'rails-settings-cached', '~> 0.6', git: 'https://github.com/mastodon/rails-settings-cached.git', branch: 'v0.6.6-aliases-true' gem 'redcarpet', '~> 3.6' gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' diff --git a/Gemfile.lock b/Gemfile.lock index 26800af2c9..fbe09b290a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,6 +7,26 @@ GIT hkdf (~> 0.2) jwt (~> 2.0) +GIT + remote: https://github.com/kreeti/kt-paperclip.git + revision: 11abf222dc31bff71160a1d138b445214f434b2b + ref: 11abf222dc31bff71160a1d138b445214f434b2b + specs: + kt-paperclip (7.1.1) + activemodel (>= 4.2.0) + activesupport (>= 4.2.0) + marcel (~> 1.0.1) + mime-types + terrapin (~> 0.6.0) + +GIT + remote: https://github.com/mastodon/rails-settings-cached.git + revision: 86328ef0bd04ce21cc0504ff5e334591e8c2ccab + branch: v0.6.6-aliases-true + specs: + rails-settings-cached (0.6.6) + rails (>= 4.2.0) + GEM remote: https://rubygems.org/ specs: @@ -357,12 +377,6 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - kt-paperclip (7.1.1) - activemodel (>= 4.2.0) - activesupport (>= 4.2.0) - marcel (~> 1.0.1) - mime-types - terrapin (~> 0.6.0) launchy (2.5.0) addressable (~> 2.7) letter_opener (1.8.1) @@ -540,8 +554,6 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (0.6.6) - rails (>= 4.2.0) railties (6.1.7.2) actionpack (= 6.1.7.2) activesupport (= 6.1.7.2) @@ -811,7 +823,7 @@ DEPENDENCIES json-ld-preloaded (~> 3.2) json-schema (~> 3.0) kaminari (~> 1.2) - kt-paperclip (~> 7.1) + kt-paperclip (~> 7.1)! letter_opener (~> 1.8) letter_opener_web (~> 2.0) link_header (~> 0.0) @@ -850,7 +862,7 @@ DEPENDENCIES rails (~> 6.1.7) rails-controller-testing (~> 1.0) rails-i18n (~> 6.0) - rails-settings-cached (~> 0.6) + rails-settings-cached (~> 0.6)! rdf-normalize (~> 0.5) redcarpet (~> 3.6) redis (~> 4.5) diff --git a/app/models/backup.rb b/app/models/backup.rb index d242fd62c1..277b9395ba 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -18,5 +18,5 @@ class Backup < ApplicationRecord belongs_to :user, inverse_of: :backups has_attached_file :dump - do_not_validate_attachment_file_type :dump + validates_attachment_content_type :dump, content_type: /\Aapplication/ end From 418c3a4699222f0a0ed201282b328d4a2c46d8ad Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Feb 2023 19:24:35 -0500 Subject: [PATCH 0421/1220] Move Jest tests to filtered GitHub Action (#23623) --- .circleci/config.yml | 8 ------- .github/workflows/test-js.yml | 41 +++++++++++++++++++++++++++++++++++ jest.config.js | 29 ++++++++++--------------- 3 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/test-js.yml diff --git a/.circleci/config.yml b/.circleci/config.yml index 0b31238937..183ad9048e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -217,11 +217,3 @@ workflows: - test-two-step-migrations: requires: - build - - node/run: - cache-version: v1 - name: test-webui - pkg-manager: yarn - requires: - - build - version: '16.19' - yarn-run: test:jest diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml new file mode 100644 index 0000000000..60b8e318ef --- /dev/null +++ b/.github/workflows/test-js.yml @@ -0,0 +1,41 @@ +name: JavaScript Testing +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - 'package.json' + - 'yarn.lock' + - '.nvmrc' + - '**/*.js' + - '**/*.snap' + - '.github/workflows/test-js.yml' + + pull_request: + paths: + - 'package.json' + - 'yarn.lock' + - '.nvmrc' + - '**/*.js' + - '**/*.snap' + - '.github/workflows/test-js.yml' + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version-file: '.nvmrc' + + - name: Install all yarn packages + run: yarn --frozen-lockfile + + - name: Jest testing + run: yarn test:jest --reporters github-actions summary diff --git a/jest.config.js b/jest.config.js index d7b5610b81..69222ea357 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,9 +1,7 @@ -module.exports = { - 'testEnvironment': 'jsdom', - 'projects': [ - '/app/javascript/mastodon', - ], - 'testPathIgnorePatterns': [ +/** @type {import('jest').Config} */ +const config = { + testEnvironment: 'jsdom', + testPathIgnorePatterns: [ '/node_modules/', '/vendor/', '/config/', @@ -11,22 +9,17 @@ module.exports = { '/public/', '/tmp/', ], - 'setupFiles': [ - 'raf/polyfill', - ], - 'setupFilesAfterEnv': [ - '/app/javascript/mastodon/test_setup.js', - ], - 'collectCoverageFrom': [ + setupFiles: ['raf/polyfill'], + setupFilesAfterEnv: ['/app/javascript/mastodon/test_setup.js'], + collectCoverageFrom: [ 'app/javascript/mastodon/**/*.js', '!app/javascript/mastodon/features/emoji/emoji_compressed.js', '!app/javascript/mastodon/locales/locale-data/*.js', '!app/javascript/mastodon/service_worker/entry.js', '!app/javascript/mastodon/test_setup.js', ], - 'coverageDirectory': '/coverage', - 'moduleDirectories': [ - '/node_modules', - '/app/javascript', - ], + coverageDirectory: '/coverage', + moduleDirectories: ['/node_modules', '/app/javascript'], }; + +module.exports = config; From 630975bf415e999717a11db859c5fa2760492f4a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Feb 2023 02:23:03 +0100 Subject: [PATCH 0422/1220] New Crowdin updates (#23527) Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ar.json | 16 +- app/javascript/mastodon/locales/ast.json | 90 ++-- app/javascript/mastodon/locales/bg.json | 2 +- app/javascript/mastodon/locales/cy.json | 34 +- app/javascript/mastodon/locales/de.json | 8 +- app/javascript/mastodon/locales/el.json | 12 +- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/fo.json | 2 +- app/javascript/mastodon/locales/gd.json | 28 +- app/javascript/mastodon/locales/kab.json | 2 +- app/javascript/mastodon/locales/my.json | 468 ++++++++++----------- app/javascript/mastodon/locales/pt-BR.json | 4 +- app/javascript/mastodon/locales/ro.json | 20 +- app/javascript/mastodon/locales/sk.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 2 +- config/locales/activerecord.de.yml | 6 +- config/locales/activerecord.el.yml | 13 + config/locales/activerecord.my.yml | 34 +- config/locales/activerecord.zh-TW.yml | 2 +- config/locales/ar.yml | 33 +- config/locales/ast.yml | 83 +++- config/locales/bg.yml | 10 + config/locales/cy.yml | 18 +- config/locales/de.yml | 6 +- config/locales/devise.ar.yml | 4 +- config/locales/devise.ast.yml | 4 +- config/locales/devise.my.yml | 57 +++ config/locales/devise.zh-TW.yml | 6 +- config/locales/doorkeeper.ar.yml | 1 + config/locales/doorkeeper.ast.yml | 14 + config/locales/doorkeeper.cy.yml | 6 +- config/locales/doorkeeper.el.yml | 19 + config/locales/doorkeeper.gd.yml | 12 + config/locales/doorkeeper.my.yml | 23 + config/locales/el.yml | 32 ++ config/locales/en-GB.yml | 42 ++ config/locales/fi.yml | 50 +-- config/locales/gd.yml | 43 ++ config/locales/he.yml | 2 +- config/locales/my.yml | 292 ++++++++++++- config/locales/nl.yml | 2 +- config/locales/pt-BR.yml | 2 + config/locales/simple_form.ar.yml | 8 +- config/locales/simple_form.ast.yml | 31 +- config/locales/simple_form.be.yml | 1 + config/locales/simple_form.bg.yml | 16 +- config/locales/simple_form.de.yml | 20 +- config/locales/simple_form.es.yml | 5 +- config/locales/simple_form.gd.yml | 12 +- config/locales/simple_form.pt-BR.yml | 1 + config/locales/simple_form.zh-TW.yml | 2 +- config/locales/sk.yml | 9 +- config/locales/th.yml | 2 +- config/locales/zh-TW.yml | 112 ++--- yarn.lock | 4 +- 55 files changed, 1232 insertions(+), 499 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 3e6c989ce0..3e685efec0 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -97,7 +97,7 @@ "closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.", "closed_registrations_modal.find_another_server": "ابحث على خادم آخر", "closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!", - "closed_registrations_modal.title": "تسجيل حساب في ماستدون", + "closed_registrations_modal.title": "إنشاء حساب على ماستدون", "column.about": "عن", "column.blocks": "المُستَخدِمون المَحظورون", "column.bookmarks": "الفواصل المرجعية", @@ -232,7 +232,7 @@ "empty_column.public": "لا يوجد أي شيء هنا! قم بنشر شيء ما للعامة، أو اتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات", "error.unexpected_crash.explanation": "نظرا لوجود خطأ في التعليمات البرمجية أو مشكلة توافق مع المتصفّح، تعذر عرض هذه الصفحة بشكل صحيح.", "error.unexpected_crash.explanation_addons": "لا يمكن عرض هذه الصفحة بشكل صحيح. من المحتمل أن يكون هذا الخطأ بسبب إضافة متصفح أو أدوات ترجمة تلقائية.", - "error.unexpected_crash.next_steps": "حاول إعادة إنعاش الصفحة. إن لم تُحلّ المشكلة ، يمكنك دائمًا استخدام ماستدون عبر متصفّح آخر أو تطبيق أصلي.", + "error.unexpected_crash.next_steps": "حاول إعادة إنعاش الصفحة. إن لم تُحلّ المشكلة، يمكنك دائمًا استخدام ماستدون عبر متصفّح آخر أو تطبيق أصلي.", "error.unexpected_crash.next_steps_addons": "حاول تعطيلهم وإنعاش الصفحة. إن لم ينجح ذلك، يمكنك دائمًا استخدام ماستدون عبر متصفح آخر أو تطبيق أصلي.", "errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة", "errors.unexpected_crash.report_issue": "الإبلاغ عن خلل", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح", "footer.privacy_policy": "سياسة الخصوصية", "footer.source_code": "الاطلاع على الشفرة المصدرية", - "footer.status": "Status", + "footer.status": "الحالة", "generic.saved": "تم الحفظ", "getting_started.heading": "استعدّ للبدء", "hashtag.column_header.tag_mode.all": "و {additional}", @@ -291,10 +291,10 @@ "home.column_settings.show_replies": "اعرض الردود", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", - "interaction_modal.description.favourite": "مع حساب في ماستدون، يمكنك تفضيل هذا المقال لإبلاغ الناشر بتقديرك وحفظه لاحقا.", - "interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} لتلقي مشاركاتهم في الصفحه الرئيسيه.", - "interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور لمشاركته مع متابعينك.", - "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذه المشاركة.", + "interaction_modal.description.favourite": "مع حساب في ماستدون، يمكنك إضافة هذا المنشور إلى مفضلتك لإبلاغ الناشر عن تقديرك وكذا للاحتفاظ به لوقت لاحق.", + "interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} وتلقي منشوراته على خيطك الرئيس.", + "interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور ومشاركته مع مُتابِعيك.", + "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذا المنشور.", "interaction_modal.on_another_server": "على خادم مختلف", "interaction_modal.on_this_server": "على هذا الخادم", "interaction_modal.other_server_instructions": "انسخ و الصق هذا الرابط في حقل البحث الخاص بك لتطبيق ماستدون المفضل لديك أو واجهة الويب لخادم ماستدون الخاص بك.", @@ -509,7 +509,7 @@ "report.statuses.title": "هل توجد مشاركات تدعم صحة هذا البلاغ؟", "report.submit": "إرسال", "report.target": "ابلغ عن {target}", - "report.thanks.take_action": "يمكنك هنا التحكم في ما يعرض لك على ماستدون:", + "report.thanks.take_action": "فيما يلي خياراتك للتحكم بما يُعرَض عليك في ماستدون:", "report.thanks.take_action_actionable": "في أثناء مراجعتنا للبلاغ، يمكنك اتخاذ إجراء ضد @{name}:", "report.thanks.title": "هل ترغب في مشاهدة هذا؟", "report.thanks.title_actionable": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index fcdabdc6c9..bedfd91385 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -10,7 +10,7 @@ "about.domain_blocks.suspended.title": "Suspendióse", "about.not_available": "Esta información nun ta disponible nesti sirvidor.", "about.powered_by": "Una rede social descentralizada que tien la teunoloxía de {mastodon}", - "about.rules": "Regles del sirvidor", + "about.rules": "Normes del sirvidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Amestar o quitar de les llistes", "account.badges.bot": "Robó", @@ -46,7 +46,7 @@ "account.media": "Multimedia", "account.mention": "Mentar a @{name}", "account.moved_to": "{name} indicó qu'agora la so cuenta nueva ye:", - "account.mute": "Mute @{name}", + "account.mute": "Desactivar los avisos de @{name}", "account.mute_notifications": "Desactivar los avisos de @{name}", "account.muted": "Muted", "account.open_original_page": "Abrir la páxina orixinal", @@ -100,16 +100,16 @@ "closed_registrations_modal.title": "Rexistru en Mastodon", "column.about": "Tocante a", "column.blocks": "Perfiles bloquiaos", - "column.bookmarks": "Bookmarks", + "column.bookmarks": "Marcadores", "column.community": "Llinia de tiempu llocal", "column.direct": "Mensaxes direutos", "column.directory": "Browse profiles", "column.domain_blocks": "Dominios bloquiaos", - "column.favourites": "Favourites", + "column.favourites": "Favoritos", "column.follow_requests": "Solicitúes de siguimientu", - "column.home": "Home", + "column.home": "Aniciu", "column.lists": "Llistes", - "column.mutes": "Muted users", + "column.mutes": "Perfiles colos avisos desactivaos", "column.notifications": "Avisos", "column.pins": "Artículos fixaos", "column.public": "Llinia de tiempu federada", @@ -138,10 +138,10 @@ "compose_form.poll.remove_option": "Quitar esta opción", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "Espublizar", + "compose_form.publish_form": "Espublizar", "compose_form.publish_loud": "¡{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Guardar los cambeos", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", @@ -175,7 +175,7 @@ "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", - "conversation.open": "View conversation", + "conversation.open": "Ver la conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copióse", "copypaste.copy": "Copiar", @@ -185,12 +185,12 @@ "directory.recently_active": "Con actividá recién", "disabled_account_banner.account_settings": "Account settings", "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.community_timeline": "Esta seición contién los artículos públicos más actuales de los perfiles agospiaos nel dominiu {domain}.", "dismissable_banner.dismiss": "Escartar", "dismissable_banner.explore_links": "Esta seición contién les noticies que se tán comentando puramente agora, nesti ya otros sirvidores de la rede descentralizada.", "dismissable_banner.explore_statuses": "Esta seición contién los artículos d'esti ya otros sirvidores de la rede descentralizada que tán ganando popularidá nesti sirvidor.", "dismissable_banner.explore_tags": "Esta seición contién les etiquetes que tán ganando popularidá ente les persones d'esti ya otros sirvidores de la rede descentralizada.", - "dismissable_banner.public_timeline": "Esta seición contién los artículos públicos más recientes de persones nesti ya otros sirvidores de la rede descentralizada qu'esti sirvidor conoz.", + "dismissable_banner.public_timeline": "Esta seición contién los artículos públicos más actuales de persones nesti ya otros sirvidores de la rede descentralizada qu'esti sirvidor conoz.", "embed.instructions": "Empotra esti artículu nel to sitiu web pente la copia del códigu d'abaxo.", "embed.preview": "Va apaecer asina:", "emoji_button.activity": "Actividá", @@ -212,24 +212,24 @@ "empty_column.account_timeline": "¡Equí nun hai nengún artículu!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "Entá nun bloquiesti a nengún perfil.", - "empty_column.bookmarked_statuses": "Entá nun tienes nengún artículu en Marcadores. Cuando amiestes unu, apaez equí.", + "empty_column.bookmarked_statuses": "Entá nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaecen equí.", + "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.", "empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.", "empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!", - "empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques unu, apaez equí.", + "empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques dalgún, apaez equí.", "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", "empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.", - "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, apaez equí.", + "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas dalguna, apaez equí.", "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "Entá nun hai nada con esta etiqueta.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", - "empty_column.home.suggestions": "See some suggestions", + "empty_column.home": "¡La to llinia de tiempu ta balera! Sigui a cuentes pa enllenala. {suggestions}", + "empty_column.home.suggestions": "Ver dalgunes suxerencies", "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.", - "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, apaez equí.", - "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees dalguna, apaez equí.", + "empty_column.mutes": "Entá nun tienes nengún perfil colos avisos desactivaos.", + "empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, apaez equí.", + "empty_column.public": "¡Equí nun hai nada! Escribi daqué públicamente o sigui a perfiles d'otros sirvidores pa enllenar esta seición", "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.", "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.", "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.", @@ -259,7 +259,7 @@ "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Fecho", - "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "follow_recommendations.heading": "¡Sigui a perfiles que te prestaría ver nel feed personal! Equí tienes dalgunes suxerencies.", "follow_recommendations.lead": "Los artículos de los perfiles que sigas van apaecer n'orde cronolóxicu nel to feed d'aniciu. ¡Nun tengas mieu d'enquivocate, pues dexar de siguilos con facilidá en cualesquier momentu!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Refugar", @@ -312,7 +312,7 @@ "keyboard_shortcuts.column": "Enfocar una columna", "keyboard_shortcuts.compose": "Enfocar l'área de composición", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "Abrir la columna de mensaxes direutos", "keyboard_shortcuts.down": "Baxar na llista", "keyboard_shortcuts.enter": "Abrir un artículu", "keyboard_shortcuts.favourite": "Marcar un artículu como favoritu", @@ -386,7 +386,7 @@ "navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.lists": "Llistes", "navigation_bar.logout": "Zarrar la sesión", - "navigation_bar.mutes": "Muted users", + "navigation_bar.mutes": "Perfiles colos avisos desactivaos", "navigation_bar.personal": "Personal", "navigation_bar.pins": "Artículos fixaos", "navigation_bar.preferences": "Preferencies", @@ -420,7 +420,7 @@ "notifications.column_settings.poll": "Resultaos de les encuestes:", "notifications.column_settings.push": "Push notifications", "notifications.column_settings.reblog": "Artículos compartíos:", - "notifications.column_settings.show": "Show in column", + "notifications.column_settings.show": "Amosar en columna", "notifications.column_settings.sound": "Reproducir un soníu", "notifications.column_settings.status": "Artículos nuevos:", "notifications.column_settings.unread_notifications.category": "Avisos ensin lleer", @@ -457,7 +457,7 @@ "privacy.direct.short": "Direct", "privacy.private.long": "Artículu visible namás pa los perfiles siguidores", "privacy.private.short": "Namás pa siguidores", - "privacy.public.long": "Visible for all", + "privacy.public.long": "Tol mundu pue ver l'artículu", "privacy.public.short": "Artículu públicu", "privacy.unlisted.long": "Artículu visible pa tol mundu mas escluyíu de les funciones de descubrimientu", "privacy.unlisted.short": "Unlisted", @@ -467,11 +467,11 @@ "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", "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.days": "Hai {number, plural, one {# día} other {# díes}}", + "relative_time.full.hours": "Hai {number, plural, one {# hora} other {# hores}}", "relative_time.full.just_now": "puramente agora", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.full.minutes": "Hai {number, plural, one {# minutu} other {# minutos}}", + "relative_time.full.seconds": "Hai {number, plural, one {# segundu} other {# segundos}}", "relative_time.hours": "{number} h", "relative_time.just_now": "agora", "relative_time.minutes": "{number} m", @@ -482,7 +482,7 @@ "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.categories.spam": "Spam", - "report.categories.violation": "El conteníu incumple una o más regles del sirvidor", + "report.categories.violation": "El conteníu incumple una o más normes del sirvidor", "report.category.subtitle": "Escueyi la meyor opción", "report.category.title": "Dinos qué pasa con esti {type}", "report.category.title_account": "perfil", @@ -495,18 +495,18 @@ "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": "Siguiente", "report.placeholder": "Comentarios adicionales", - "report.reasons.dislike": "I don't like it", + "report.reasons.dislike": "Nun me presta", "report.reasons.dislike_description": "Nun ye daqué que quiera ver", "report.reasons.other": "Ye daqué más", "report.reasons.other_description": "La incidencia nun s'axusta a les demás categoríes", "report.reasons.spam": "Ye spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "Incumple les regles del sirvidor", - "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.reasons.spam_description": "Contién enllaces maliciosos, conteníu fraudulentu o rempuestes repetitives", + "report.reasons.violation": "Incumple les normes del sirvidor", + "report.reasons.violation_description": "Yes consciente qu'incumple dalguna norma específica", "report.rules.subtitle": "Select all that apply", - "report.rules.title": "¿Qué regles s'incumplen?", + "report.rules.title": "¿Qué normes s'incumplen?", "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.statuses.title": "¿Hai dalgún artículu qu'apoye esti informe?", "report.submit": "Unviar", "report.target": "Report {target}", "report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:", @@ -515,7 +515,7 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Dexar de siguir a @{name}", "report.unfollow_explanation": "Sigues a esta cuenta. Pa dexar de ver los sos artículos nel to feed d'aniciu, dexa de siguila.", - "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} artículu} other {Axuntáronse {count} artículos}}", "report_notification.categories.other": "Other", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", @@ -545,9 +545,9 @@ "sign_in_banner.create_account": "Crear una cuenta", "sign_in_banner.sign_in": "Aniciar la sesión", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also 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.admin_account": "Abrir la interfaz de moderación pa @{name}", + "status.admin_domain": "Abrir la interfaz de moderación pa «{domain}»", + "status.admin_status": "Abrir esti artículu na interfaz de moderación", "status.block": "Block @{name}", "status.bookmark": "Meter en Marcadores", "status.cancel_reblog_private": "Unboost", @@ -555,7 +555,7 @@ "status.copy": "Copiar l'enllaz al artículu", "status.delete": "Desaniciar", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Unviar un mensaxe direutu a @{name}", "status.edit": "Edit", "status.edited": "Edited {date}", "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}", @@ -567,7 +567,7 @@ "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editó {date}", "status.load_more": "Cargar más", - "status.media_hidden": "Media hidden", + "status.media_hidden": "Conteníu multimedia anubríu", "status.mention": "Mentar a @{name}", "status.more": "Más", "status.mute": "Desactivar los avisos de @{name}", @@ -624,7 +624,7 @@ "units.short.million": "{count} M", "units.short.thousand": "{count} mil", "upload_area.title": "Drag & drop to upload", - "upload_button.label": "Add images, a video or an audio file", + "upload_button.label": "Amestar ficheros multimedia", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.", "upload_form.audio_description": "Describe for people who are hard of hearing", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index cf5df140ec..f357ed67d5 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Клавишни комбинации", "footer.privacy_policy": "Политика за поверителност", "footer.source_code": "Преглед на изходния код", - "footer.status": "Status", + "footer.status": "Състояние", "generic.saved": "Запазено", "getting_started.heading": "Първи стъпки", "hashtag.column_header.tag_mode.all": "и {additional}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index e193919d1c..84f8c70ac0 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -3,23 +3,23 @@ "about.contact": "Cysylltwch â:", "about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael", - "about.domain_blocks.preamble": "Yn gyffredinol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", - "about.domain_blocks.silenced.explanation": "Yn gyffredinol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", + "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", + "about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", "about.domain_blocks.silenced.title": "Cyfyngedig", - "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", + "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", "about.domain_blocks.suspended.title": "Ataliwyd", "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.", "about.powered_by": "Cyfrwng cymdeithasol datganoledig sy'n cael ei yrru gan {mastodon}", "about.rules": "Rheolau'r gweinydd", "account.account_note_header": "Nodyn", - "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau", + "account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau", "account.badges.bot": "Bot", "account.badges.group": "Grŵp", "account.block": "Blocio @{name}", "account.block_domain": "Blocio parth {domain}", "account.blocked": "Blociwyd", "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol", - "account.cancel_follow_request": "Tynnu nôl cais i ddilyn", + "account.cancel_follow_request": "Tynnu cais i ddilyn", "account.direct": "Neges breifat @{name}", "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio", "account.domain_blocked": "Parth wedi ei flocio", @@ -100,14 +100,14 @@ "closed_registrations_modal.title": "Ymgofrestru ar Mastodon", "column.about": "Ynghylch", "column.blocks": "Defnyddwyr a flociwyd", - "column.bookmarks": "Nodau tudalen", + "column.bookmarks": "Llyfrnodau", "column.community": "Ffrwd lleol", "column.direct": "Negeseuon preifat", "column.directory": "Pori proffiliau", "column.domain_blocks": "Parthau wedi'u blocio", "column.favourites": "Ffefrynnau", "column.follow_requests": "Ceisiadau dilyn", - "column.home": "Cartref", + "column.home": "Hafan", "column.lists": "Rhestrau", "column.mutes": "Defnyddwyr wedi'u tewi", "column.notifications": "Hysbysiadau", @@ -145,8 +145,8 @@ "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif", "compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif", "compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif", - "compose_form.spoiler.marked": "Testun wedi ei guddio gan rybudd", - "compose_form.spoiler.unmarked": "Nid yw'r testun wedi ei guddio", + "compose_form.spoiler.marked": "Dileu rhybudd cynnwys", + "compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys", "compose_form.spoiler_placeholder": "Ysgrifenwch eich rhybudd yma", "confirmation_modal.cancel": "Diddymu", "confirmations.block.block_and_report": "Rhwystro ac Adrodd", @@ -179,7 +179,7 @@ "conversation.with": "Gyda {names}", "copypaste.copied": "Wedi ei gopïo", "copypaste.copy": "Copïo", - "directory.federated": "O'r fydysawd cyfan", + "directory.federated": "O'r ffedysawd cyfan", "directory.local": "O {domain} yn unig", "directory.new_arrivals": "Defnyddwyr newydd", "directory.recently_active": "Ar-lein yn ddiweddar", @@ -198,7 +198,7 @@ "emoji_button.custom": "Cyfaddas", "emoji_button.flags": "Baneri", "emoji_button.food": "Bwyd & Diod", - "emoji_button.label": "Mewnosodwch emoji", + "emoji_button.label": "Mewnosod emoji", "emoji_button.nature": "Natur", "emoji_button.not_found": "Dim emojiau'n cydweddu i'w cael", "emoji_button.objects": "Gwrthrychau", @@ -212,7 +212,7 @@ "empty_column.account_timeline": "Dim postiadau yma!", "empty_column.account_unavailable": "Nid yw'r proffil ar gael", "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.", - "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel nodau tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.", + "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel llyfrnodau eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.", "empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth cyhoeddus?", "empty_column.direct": "Does gennych unrhyw negeseuon preifat eto. Pan byddwch yn anfon neu derbyn un, bydd yn ymddangos yma.", "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.", @@ -371,7 +371,7 @@ "mute_modal.indefinite": "Parhaus", "navigation_bar.about": "Ynghylch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", - "navigation_bar.bookmarks": "Nodau tudalen", + "navigation_bar.bookmarks": "Llyfrnodau", "navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.compose": "Cyfansoddi post newydd", "navigation_bar.direct": "Negeseuon preifat", @@ -549,7 +549,7 @@ "status.admin_domain": "Agor rhyngwyneb cymedroli {domain}", "status.admin_status": "Agor y postiad hwn yn y rhyngwyneb cymedroli", "status.block": "Blocio @{name}", - "status.bookmark": "Nod Tudalen", + "status.bookmark": "Llyfrnodi", "status.cancel_reblog_private": "Dadhybu", "status.cannot_reblog": "Nid oes modd hybu'r postiad hwn", "status.copy": "Copïo dolen i'r post", @@ -574,14 +574,14 @@ "status.mute_conversation": "Tewi sgwrs", "status.open": "Ehangu'r post hwn", "status.pin": "Pinio ar y proffil", - "status.pinned": "Post wedi'i binio", + "status.pinned": "Postiad wedi'i binio", "status.read_more": "Darllen rhagor", "status.reblog": "Hybu", "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol", "status.reblogged_by": "Hybodd {name}", "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu ac ailddrafftio", - "status.remove_bookmark": "Tynnu Nod Tudalen", + "status.remove_bookmark": "Dileu llyfrnod", "status.replied_to": "Wedi ateb {name}", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", @@ -604,7 +604,7 @@ "subscribed_languages.target": "Newid ieithoedd tanysgrifio {target}", "suggestions.dismiss": "Diystyru'r awgrym", "suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…", - "tabs_bar.federated_timeline": "Ffedereiddiwyd", + "tabs_bar.federated_timeline": "Ffederasiwn", "tabs_bar.home": "Cartref", "tabs_bar.local_timeline": "Lleol", "tabs_bar.notifications": "Hysbysiadau", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index ff3f38c968..b34864cb0e 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -39,7 +39,7 @@ "account.follows_you": "Folgt dir", "account.go_to_profile": "Profil aufrufen", "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen", - "account.joined_short": "Beigetreten", + "account.joined_short": "Registriert", "account.languages": "Genutzte Sprachen überarbeiten", "account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt", "account.locked_info": "Die Privatsphäre dieses Kontos wurde auf „geschützt“ gesetzt. Die Person bestimmt manuell, wer ihrem Profil folgen darf.", @@ -378,7 +378,7 @@ "navigation_bar.discover": "Entdecken", "navigation_bar.domain_blocks": "Gesperrte Domains", "navigation_bar.edit_profile": "Profil bearbeiten", - "navigation_bar.explore": "Erforschen", + "navigation_bar.explore": "Entdecken", "navigation_bar.favourites": "Favoriten", "navigation_bar.filters": "Stummgeschaltete Wörter", "navigation_bar.follow_requests": "Follower-Anfragen", @@ -523,7 +523,7 @@ "search.placeholder": "Suche", "search.search_or_paste": "Suchen oder URL einfügen", "search_popout.search_format": "Erweiterte Suche", - "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.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 Profilnamen, Anzeigenamen oder Hashtags.", "search_popout.tips.hashtag": "Hashtag", "search_popout.tips.status": "Beitrag", "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Profilnamen und Hashtags zurück", @@ -567,7 +567,7 @@ "status.history.created": "{name} erstellte {date}", "status.history.edited": "{name} bearbeitete {date}", "status.load_more": "Weitere laden", - "status.media_hidden": "{number, plural, one {Medium ausgeblendet} other {Medien ausgeblendet}}", + "status.media_hidden": "Inhalt verborgen", "status.mention": "@{name} im Beitrag erwähnen", "status.more": "Mehr", "status.mute": "@{name} stummschalten", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 5c41b75474..3d71f3c5c4 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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "Αυτή η δημοσίευση δεν θα εμφανίζεται κάτω από οποιαδήποτε ετικέτα καθώς δεν είναι δημόσια. Μόνο οι δημόσιες δημοσιεύσεις μπορούν να αναζητηθούν με ετικέτα.", "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.", "compose_form.lock_disclaimer.lock": "κλειδωμένο", "compose_form.placeholder": "Τι σκέφτεσαι;", @@ -221,7 +221,7 @@ "empty_column.favourites": "Κανείς δεν έχει αγαπήσει αυτό το τουτ ακόμα. Μόλις το κάνει κάποια, θα εμφανιστούν εδώ.", "empty_column.follow_recommendations": "Φαίνεται ότι δεν υπάρχει καμία πρόταση για σένα. Μπορείς να κάνεις μια αναζήτηση για άτομα που μπορεί να γνωρίζεις ή για hashtags που τρεντάρουν.", "empty_column.follow_requests": "Δεν έχεις κανένα αίτημα παρακολούθησης ακόμα. Μόλις λάβεις κάποιο, θα εμφανιστεί εδώ.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Δεν έχετε παρακολουθήσει ακόμα καμία ετικέτα. Όταν το κάνετε, θα εμφανιστούν εδώ.", "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.", "empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.", "empty_column.home.suggestions": "Ορίστε μερικές προτάσεις", @@ -264,7 +264,7 @@ "follow_request.authorize": "Ενέκρινε", "follow_request.reject": "Απέρριψε", "follow_requests.unlocked_explanation": "Παρόλο που ο λογαριασμός σου δεν είναι κλειδωμένος, οι διαχειριστές του {domain} θεώρησαν πως ίσως να θέλεις να ελέγξεις χειροκίνητα αυτά τα αιτήματα ακολούθησης.", - "followed_tags": "Followed hashtags", + "followed_tags": "Ετικέτες που ακολουθούνται", "footer.about": "Σχετικά με", "footer.directory": "Κατάλογος προφίλ", "footer.get_app": "Αποκτήστε την Εφαρμογή", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Αγαπημένα", "navigation_bar.filters": "Αποσιωπημένες λέξεις", "navigation_bar.follow_requests": "Αιτήματα ακολούθησης", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Ετικέτες που ακολουθούνται", "navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν", "navigation_bar.lists": "Λίστες", "navigation_bar.logout": "Αποσύνδεση", @@ -544,7 +544,7 @@ "server_banner.server_stats": "Στατιστικά διακομιστή:", "sign_in_banner.create_account": "Δημιουργία λογαριασμού", "sign_in_banner.sign_in": "Σύνδεση", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Συνδεθείτε για να ακολουθήσετε προφίλ ή ετικέτες, αγαπήστε, μοιραστείτε και απαντήστε σε δημοσιεύσεις. Μπορείτε επίσης να αλληλεπιδράσετε από τον λογαριασμό σας σε διαφορετικό διακομιστή.", "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}", "status.admin_domain": "Άνοιγμα λειτουργίας διαμεσολάβησης για {domain}", "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης", @@ -599,7 +599,7 @@ "status.uncached_media_warning": "Μη διαθέσιμα", "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης", "status.unpin": "Ξεκαρφίτσωσε από το προφίλ", - "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.lead": "Μόνο δημοσιεύσεις σε επιλεγμένες γλώσσες θα εμφανίζονται στην αρχική σας και θα εμφανίζονται χρονοδιαγράμματα μετά την αλλαγή. Επιλέξτε καμία για να λαμβάνετε δημοσιεύσεις σε όλες τις γλώσσες.", "subscribed_languages.save": "Αποθήκευση αλλαγών", "subscribed_languages.target": "Αλλαγή εγγεγραμμένων γλωσσών για {target}", "suggestions.dismiss": "Απόρριψη πρότασης", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index c37d8f62d5..c1994b5f9c 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -239,7 +239,7 @@ "explore.search_results": "Resultados de búsqueda", "explore.suggested_follows": "Para vos", "explore.title": "Explorá", - "explore.trending_links": "Novedades", + "explore.trending_links": "Noticias", "explore.trending_statuses": "Mensajes", "explore.trending_tags": "Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que accediste a este mensaje. Si querés que el mensaje sea filtrado también en este contexto, vas a tener que editar el filtro.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index adcb3aae04..3b67c3d75e 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -389,7 +389,7 @@ "navigation_bar.mutes": "Doyvdir brúkarar", "navigation_bar.personal": "Persónligt", "navigation_bar.pins": "Festir postar", - "navigation_bar.preferences": "Sertokki", + "navigation_bar.preferences": "Stillingar", "navigation_bar.public_timeline": "Felags tíðarlinja", "navigation_bar.search": "Leita", "navigation_bar.security": "Trygd", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 8355f2019c..ca3dd0f2f8 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Postaichean ’s freagairtean", "account.report": "Dèan gearan mu @{name}", "account.requested": "A’ feitheamh air aontachadh. Briog airson sgur dhen iarrtas leantainn", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "Dh’iarr {name} ’gad leantainn", "account.share": "Co-roinn a’ phròifil aig @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}", "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", @@ -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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais o nach eil e poblach. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", "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?", @@ -221,7 +221,7 @@ "empty_column.favourites": "Chan eil am post seo ’na annsachd aig duine sam bith fhathast. Nuair a nì daoine annsachd dheth, nochdaidh iad an-seo.", "empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a’ treandadh.", "empty_column.follow_requests": "Chan eil iarrtas leantainn agad fhathast. Nuair a gheibh thu fear, nochdaidh e an-seo.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Cha do lean thu taga hais sam bith fhathast. Nuair a leanas tu, nochdaidh iad an-seo.", "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", "empty_column.home": "Tha loidhne-ama na dachaigh agad falamh! Lean barrachd dhaoine gus a lìonadh. {suggestions}", "empty_column.home.suggestions": "Faic moladh no dhà", @@ -237,11 +237,11 @@ "errors.unexpected_crash.copy_stacktrace": "Cuir lethbhreac dhen stacktrace air an stòr-bhòrd", "errors.unexpected_crash.report_issue": "Dèan aithris air an duilgheadas", "explore.search_results": "Toraidhean an luirg", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Dhut-sa", "explore.title": "Rùraich", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Naidheachdan", + "explore.trending_statuses": "Postaichean", + "explore.trending_tags": "Tagaichean hais", "filter_modal.added.context_mismatch_explanation": "Chan eil an roinn-seòrsa criathraidh iom seo chaidh dhan cho-theacs san do dh’inntrig thu am post seo. Ma tha thu airson am post a chriathradh sa cho-theacs seo cuideachd, feumaidh tu a’ chriathrag a dheasachadh.", "filter_modal.added.context_mismatch_title": "Co-theacsa neo-iomchaidh!", "filter_modal.added.expired_explanation": "Dh’fhalbh an ùine air an roinn-seòrsa criathraidh seo agus feumaidh tu an ceann-là crìochnachaidh atharrachadh mus cuir thu an sàs i.", @@ -264,7 +264,7 @@ "follow_request.authorize": "Ùghdarraich", "follow_request.reject": "Diùlt", "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.", - "followed_tags": "Followed hashtags", + "followed_tags": "Tagaichean hais ’gan leantainn", "footer.about": "Mu dhèidhinn", "footer.directory": "Eòlaire nam pròifil", "footer.get_app": "Faigh an aplacaid", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Ath-ghoiridean a’ mheur-chlàir", "footer.privacy_policy": "Poileasaidh prìobhaideachd", "footer.source_code": "Seall am bun-tùs", - "footer.status": "Status", + "footer.status": "Staid", "generic.saved": "Chaidh a shàbhaladh", "getting_started.heading": "Toiseach", "hashtag.column_header.tag_mode.all": "agus {additional}", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Na h-annsachdan", "navigation_bar.filters": "Faclan mùchte", "navigation_bar.follow_requests": "Iarrtasan leantainn", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Tagaichean hais ’gan leantainn", "navigation_bar.follows_and_followers": "Dàimhean leantainn", "navigation_bar.lists": "Liostaichean", "navigation_bar.logout": "Clàraich a-mach", @@ -544,9 +544,9 @@ "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", "sign_in_banner.create_account": "Cruthaich cunntas", "sign_in_banner.sign_in": "Clàraich a-steach", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Clàraich a-steach a leantainn phròifilean no thagaichean hais, a’ cur postaichean ris na h-annsachdan ’s ’gan co-roinneadh is freagairt dhaibh. ’S urrainn dhut gnìomh a ghabhail le cunntas o fhrithealaiche eile cuideachd.", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Fosgail eadar-aghaidh na maorsainneachd dha {domain}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", "status.block": "Bac @{name}", "status.bookmark": "Cuir ris na comharran-lìn", @@ -563,7 +563,7 @@ "status.favourite": "Cuir ris na h-annsachdan", "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", - "status.hide": "Hide post", + "status.hide": "Falaich am post", "status.history.created": "Chruthaich {name} {date} e", "status.history.edited": "Dheasaich {name} {date} e", "status.load_more": "Luchdaich barrachd dheth", @@ -595,7 +595,7 @@ "status.show_more_all": "Seall barrachd dhen a h-uile", "status.show_original": "Seall an tionndadh tùsail", "status.translate": "Eadar-theangaich", - "status.translated_from_with": "Air eaar-theangachadh o {lang} le {provider}", + "status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}", "status.uncached_media_warning": "Chan eil seo ri fhaighinn", "status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unpin": "Dì-phrìnich on phròifil", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index fc0efa7ea0..3d6021b6e1 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -1,6 +1,6 @@ { "about.blocks": "Moderated servers", - "about.contact": "Contact:", + "about.contact": "Anermis:", "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.", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 9086f0eec8..d39ede21d0 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -13,188 +13,188 @@ "about.rules": "ဆာဗာစည်းမျဉ်းများ\n", "account.account_note_header": "မှတ်ချက်", "account.add_or_remove_from_list": "စာရင်းများမှ ထည့်ပါ သို့မဟုတ် ဖယ်ရှားပါ။\n", - "account.badges.bot": "Bot", + "account.badges.bot": "စက်ရုပ်", "account.badges.group": "အုပ်စု", "account.block": "@{name} ကိုဘလော့မည်", "account.block_domain": " {domain} ဒိုမိန်းကိုပိတ်မည်", "account.blocked": "ဘလော့ထားသည်", "account.browse_more_on_origin_server": "မူရင်းပရိုဖိုင်တွင် ပိုမိုကြည့်ရှုပါ။", - "account.cancel_follow_request": "Withdraw follow request", + "account.cancel_follow_request": "ဖောလိုးပယ်ဖျက်ခြင်း", "account.direct": "@{name} ကိုတိုက်ရိုက်စာပို့မည်", "account.disable_notifications": "@{name} ပို့စ်တင်သည့်အခါ ကျွန်ုပ်ကို အသိပေးခြင်းရပ်ပါ။", "account.domain_blocked": "ဒိုမိန်း ပိတ်ပင်ထားခဲ့သည်\n", "account.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", "account.enable_notifications": "@{name} ပို့စ်တင်သည့်အခါ ကျွန်ုပ်ကို အကြောင်းကြားပါ။", - "account.endorse": "Feature on profile", + "account.endorse": "အကောင့်ပရိုဖိုင်တွင်ဖော်ပြပါ", "account.featured_tags.last_status_at": "{date} တွင် နောက်ဆုံးပို့စ်", - "account.featured_tags.last_status_never": "No posts", - "account.featured_tags.title": "{name}'s featured hashtags", + "account.featured_tags.last_status_never": "ပို့စ်တင်ထားခြင်းမရှိပါ", + "account.featured_tags.title": "ဖော်ပြထားသောဟက်ရှ်တက်ခ်များ", "account.follow": "စောင့်ကြည့်မည်", "account.followers": "စောင့်ကြည့်သူများ", "account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။", - "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.followers_counter": "{count, plural, one {{counter} ဖော်လိုဝါများ} other {{counter} ဖော်လိုဝါများ}}", "account.following": "စောင့်ကြည့်နေသည်", - "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.following_counter": "{count, plural, one {{counter} ဖော်လိုလုပ်နေသည်} other {{counter} ဖော်လိုလုပ်နေသည်}}", "account.follows.empty": "ဤသူသည် မည်သူ့ကိုမျှ စောင့်ကြည့်ခြင်း မရှိသေးပါ။", "account.follows_you": "သင့်ကို စောင့်ကြည့်နေသည်", "account.go_to_profile": "ပရိုဖိုင်းသို့ သွားရန်", "account.hide_reblogs": "@{name} ၏ မျှဝေမှုကို ဝှက်ထားရန်", "account.joined_short": "ပူးပေါင်း", - "account.languages": "Change subscribed languages", + "account.languages": "ဘာသာစကားပြောင်းမည်", "account.link_verified_on": "ဤလင့်ခ်၏ ပိုင်ဆိုင်မှုကို {date} က စစ်ဆေးခဲ့သည်။", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.locked_info": "အကောင့်ကိုယ်ရေးကိုယ်တာကိုလော့ချထားသည်။အကောင့်ပိုင်ရှင်မှ ခွင့်ပြုချက်လိုအပ်သည်။", "account.media": "မီဒီယာ", - "account.mention": "Mention @{name}", - "account.moved_to": "{name} has indicated that their new account is now:", - "account.mute": "Mute @{name}", - "account.mute_notifications": "Mute notifications from @{name}", - "account.muted": "Muted", - "account.open_original_page": "Open original page", + "account.mention": "{name}ကိုမန်းရှင်းထားသည်", + "account.moved_to": "{name} ၏အကောင့်အသစ်မှာ", + "account.mute": "{name}ကိုပိတ်ထားရန်", + "account.mute_notifications": "{name}ထံမှသတိပေးချက်", + "account.muted": "ပိတ်ထားရန်", + "account.open_original_page": "မူလစာမျက်နှာကိုဖွင့်ပါ", "account.posts": "ပို့စ်များ", - "account.posts_with_replies": "Posts and replies", - "account.report": "Report @{name}", - "account.requested": "Awaiting approval. Click to cancel follow request", - "account.requested_follow": "{name} has requested to follow you", - "account.share": "Share @{name}'s profile", - "account.show_reblogs": "Show boosts from @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", - "account.unblock": "Unblock @{name}", - "account.unblock_domain": "Unblock domain {domain}", - "account.unblock_short": "Unblock", - "account.unendorse": "Don't feature on profile", - "account.unfollow": "Unfollow", - "account.unmute": "Unmute @{name}", - "account.unmute_notifications": "Unmute notifications from @{name}", - "account.unmute_short": "Unmute", + "account.posts_with_replies": "ပို့စ်နှင့် ရီပလိုင်းများ", + "account.report": "တိုင်ကြားမည်{name}", + "account.requested": "ခွင့်ပြုချက်စောင့်နေသည်။ ဖော်လိုးပယ်ဖျက်ရန်နှိပ်ပါ", + "account.requested_follow": "{name} မှသင့်ကိုဖော်လိုပြုလုပ်လိုသည်", + "account.share": "{name}၏ပရိုဖိုင်ကိုမျှဝေပါ", + "account.show_reblogs": "@{name} မှ မျှ၀ေမှုများကို ပြပါ\n", + "account.statuses_counter": "{count, plural, one {{counter} ပိုစ့်များ} other {{counter} ပိုစ့်များ}}", + "account.unblock": "{name} ကို ဘလော့ဖြုတ်မည်", + "account.unblock_domain": " {domain} ဒိုမိန်းကိုပြန်ဖွင့်မည်", + "account.unblock_short": "ဘလော့ဖြုတ်ရန်", + "account.unendorse": "အကောင့်ပရိုဖိုင်တွင်မဖော်ပြပါ", + "account.unfollow": "ဖောလိုးဖြုတ်မည်", + "account.unmute": "{name} ကို ပြန်ဖွင့်ရန်", + "account.unmute_notifications": "{name}ထံမှသတိပေးချက်ပြန်ဖွင့်မည်", + "account.unmute_short": "ပြန်ဖွင့်ရန်", "account_note.placeholder": "Click to add a note", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", - "alert.unexpected.title": "Oops!", - "announcement.announcement": "Announcement", - "attachments_list.unprocessed": "(unprocessed)", - "audio.hide": "Hide audio", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "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.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.retry": "Try again", - "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?", - "bundle_column_error.routing.title": "404", - "bundle_modal_error.close": "Close", - "bundle_modal_error.message": "Something went wrong while loading this component.", - "bundle_modal_error.retry": "Try again", - "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", - "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", - "closed_registrations_modal.find_another_server": "Find another server", - "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", - "closed_registrations_modal.title": "Signing up on Mastodon", + "admin.dashboard.daily_retention": "အကောင့်ဖွင့်ပြီးနောက် တစ်ရက်ပြီးတစ်ရက် အသုံးပြုသူ ထိန်းသိမ်းမှုနှုန်း", + "admin.dashboard.monthly_retention": "အကောင့်ဖွင့်ပြီးနောက် တစ်လအလိုက် အသုံးပြုသူ ထိန်းသိမ်းမှုနှုန်း", + "admin.dashboard.retention.average": "ပျမ်းမျှ", + "admin.dashboard.retention.cohort": "အကောင့်ပြုလုပ်မှုလ", + "admin.dashboard.retention.cohort_size": "အသုံးပြုသူအသစ်များ", + "alert.rate_limited.message": " {retry_time, time, medium}ပြီးနောက် ထပ်စမ်းကြည့်ပါ", + "alert.rate_limited.title": "နှုန်းထားကန့်သတ်ထားသည်။\n", + "alert.unexpected.message": "မမျှော်လင့်ထားသော အမှားတစ်ခု ဖြစ်ပွားခဲ့သည်။", + "alert.unexpected.title": "အယ်!", + "announcement.announcement": "ကြေငြာချက်", + "attachments_list.unprocessed": "(မလုပ်ဆောင်ရသေး)", + "audio.hide": "အသံပိတ်မည်", + "autosuggest_hashtag.per_week": "တစ်ပတ်လျှင် {count}\n", + "boost_modal.combo": "ဤအရာကို နောက်တစ်ကြိမ်ကျော်ရန် {combo} ကိုနှိပ်နိုင်သည်။", + "bundle_column_error.copy_stacktrace": "စာကူးရာတွင်ပြဿနာရှိသည်", + "bundle_column_error.error.body": "ဤစာမျက်နှာကို ဖော်ပြရာတွင် ပြဿနာရှိနေသည်", + "bundle_column_error.error.title": "မှားနေသည်", + "bundle_column_error.network.body": "ဒီစာမျက်နှာအား ဖွင့်လို့မရပါ။ အင်တာနက်ကွန်နက်ရှင် (သို့) ဆာဗာ ပြဿနာဖြစ်နေသည်။", + "bundle_column_error.network.title": "အင်တာနက်ကွန်ယက် ပြဿနာ", + "bundle_column_error.retry": "ထပ်ကြိုးစားပါ", + "bundle_column_error.return": "Homeကိုပြန်သွားမည်", + "bundle_column_error.routing.body": "ရှာနေသောအရာမှာမရှိပါ။ URL မှန်မမှန်ပြန်စစ်ပေးပါ", + "bundle_column_error.routing.title": "လေးသုံညလေး", + "bundle_modal_error.close": "ပိတ်ပါ", + "bundle_modal_error.message": "ဤဝက်ဘ်စာမျက်နှာအား ဖွင့်နေစဥ် အမှားတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။", + "bundle_modal_error.retry": "ထပ်မံကြိုးစားပါ", + "closed_registrations.other_server_instructions": "Mastodon ကို ဗဟိုချုပ်ကိုင်မှု လျှော့ချထားသောကြောင့် သင်သည် အခြားဆာဗာတစ်ခုပေါ်တွင် အကောင့်တစ်ခု ဖန်တီးနိုင်ပြီး ဤတစ်ခုနှင့် အပြန်အလှန် တုံ့ပြန်ဆဲဖြစ်သည်။", + "closed_registrations_modal.description": "{domain} တွင် အကောင့်တစ်ခုဖန်တီးခြင်းသည် လောလောဆယ်မဖြစ်နိုင်ပါ၊ သို့သော် Mastodon ကိုအသုံးပြုရန်အတွက် သင်သည် {domain} တွင် အထူးအကောင့်တစ်ခုမလိုအပ်ကြောင်း ကျေးဇူးပြု၍ သတိရပါ။", + "closed_registrations_modal.find_another_server": "အခြားဆာဗာကိုရှာပါ။", + "closed_registrations_modal.preamble": "Mastodon ကို ဗဟိုချုပ်ကိုင်မှု လျှော့ချထားသောကြောင့် သင့်အကောင့်ကို မည်သည့်နေရာတွင်ပင် ဖန်တီးပါစေ၊ သင်သည် ဤဆာဗာပေါ်ရှိ မည်သူမဆိုနှင့် လိုက်လျောညီထွေ တုံ့ပြန်နိုင်မည်ဖြစ်သည်။ သင်ကိုယ်တိုင်ပင် လက်ခံဆောင်ရွက်ပေးနိုင်သည်။", + "closed_registrations_modal.title": "Mastodon တွင်အကောင့်ပြုလုပ်ပါ။\n", "column.about": "အကြောင်း", - "column.blocks": "Blocked users", - "column.bookmarks": "Bookmarks", - "column.community": "Local timeline", - "column.direct": "Direct messages", - "column.directory": "Browse profiles", - "column.domain_blocks": "Blocked domains", - "column.favourites": "Favourites", - "column.follow_requests": "Follow requests", - "column.home": "Home", - "column.lists": "Lists", - "column.mutes": "Muted users", + "column.blocks": "ဘလော့ထားသောအကောင့်များ", + "column.bookmarks": "မှတ်တမ်းများ", + "column.community": "ဒေသတွင်း အချိန်ဇယား", + "column.direct": "တိုက်ရိုက် မက်ဆေ့ခ်ျများ", + "column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n", + "column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်", + "column.favourites": "အကြိုက်ဆုံးများ", + "column.follow_requests": "တောင်းဆိုချက်များကိုလိုက်နာပါ။", + "column.home": "ပင်မစာမျက်နှာ", + "column.lists": "စာရင်းများ", + "column.mutes": "မပေါ်အောင်ပိတ်ထားသောအသုံးပြုသူများ", "column.notifications": "အသိပေးချက်များ", "column.pins": "Pinned post", - "column.public": "Federated timeline", - "column_back_button.label": "Back", - "column_header.hide_settings": "Hide settings", - "column_header.moveLeft_settings": "Move column to the left", - "column_header.moveRight_settings": "Move column to the right", - "column_header.pin": "Pin", - "column_header.show_settings": "Show settings", - "column_header.unpin": "Unpin", + "column.public": "အားလုံးဖတ်နိုင်သောအချိန်ဇယား", + "column_back_button.label": "နောက်သို့", + "column_header.hide_settings": "ဆက်တင်များကို ဖျောက်ပါ။", + "column_header.moveLeft_settings": "ကော်လံကို ဘယ်ဘက်သို့ ရွှေ့ပါ။", + "column_header.moveRight_settings": "ကော်လံကို ညာဘက်သို့ ရွှေ့ပါ။", + "column_header.pin": "ထိပ်တွင်တွဲထားမည်", + "column_header.show_settings": "ဆက်တင်များကို ပြပါ။", + "column_header.unpin": "မတွဲတော့ပါ", "column_subheading.settings": "ဆက်တင်များ", "community.column_settings.local_only": "Local only", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Remote only", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", - "compose_form.direct_message_warning_learn_more": "Learn more", + "compose.language.change": "ဘာသာစကား ပြောင်းမည်", + "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": "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.hashtag_warning": "ဤပို့စ်သည် အများသူငှာမဟုတ်သောကြောင့် မည်သည့် hashtag အောက်တွင် ဖော်ပြမည်မဟုတ်ပါ။ အများသူငှာ ပို့စ်များကိုသာ hashtag ဖြင့် ရှာဖွေနိုင်သည်။", + "compose_form.lock_disclaimer": "သင့်အကောင့်ကို {သော့ခတ်မထားပါ}။ သင့်နောက်လိုက်-သီးသန့်ပို့စ်များကို ကြည့်ရှုရန် မည်သူမဆို သင့်အား လိုက်ကြည့်နိုင်ပါသည်။", + "compose_form.lock_disclaimer.lock": "သော့ခတ်ထားမယ်", "compose_form.placeholder": "What is on your mind?", - "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", - "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", - "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.poll.add_option": "ရွေးချယ်မှုထပ်မံပေါင်းထည့်ပါ", + "compose_form.poll.duration": "စစ်တမ်းကြာချိန်", + "compose_form.poll.option_placeholder": "ရွေးချယ်မှု {number}\n", + "compose_form.poll.remove_option": "ဤရွေးချယ်မှုကို ဖယ်ထုတ်ပါ", + "compose_form.poll.switch_to_multiple": "စစ်တမ်းတွင်တစ်ခုထပ်ပိုသောဆန္ဒပြုချက်လက်ခံမည်", + "compose_form.poll.switch_to_single": "စစ်တမ်းတွင် တစ်ခုကိုသာရွေးချယ်ခွင့်ပြုမည်", + "compose_form.publish": "ပို့စ်တင်မည်", + "compose_form.publish_form": "ပို့စ်တင်မည်", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", - "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", - "confirmations.block.block_and_report": "Block & Report", - "confirmations.block.confirm": "Block", - "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", - "confirmations.delete.confirm": "Delete", + "compose_form.spoiler_placeholder": "သတိပေးစာကိုဤနေရာတွင်ရေးပါ", + "confirmation_modal.cancel": "ပယ်ဖျက်မည်", + "confirmations.block.block_and_report": "ဘလော့ပြီး တိုင်ကြားမည်", + "confirmations.block.confirm": "ဘလော့မည်", + "confirmations.block.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", + "confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်", + "confirmations.cancel_follow_request.message": "{name} ကိုဖော်လိုပယ်ဖျက်ရန် သေချာပါသလား။", + "confirmations.delete.confirm": "ဖျက်မည်", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", - "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", - "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.delete_list.confirm": "ဖျက်မည်", + "confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?", + "confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", - "confirmations.logout.confirm": "Log out", - "confirmations.logout.message": "Are you sure you want to log out?", - "confirmations.mute.confirm": "Mute", - "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", - "confirmations.mute.message": "Are you sure you want to mute {name}?", - "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.domain_block.message": "{domain} တစ်ခုလုံးကို ဘလော့လုပ်ရန် တကယ် သေချာပါသလား? များသောအားဖြင့် အနည်းစုကို ပစ်မှတ်ထား ဘလော့လုပ်ခြင်းသည် လုံလောက်ပါသည်။ ထို ဒိုမိန်းမှ အကြောင်းအရာ တစ်ခုမှ မြင်ရမည်မဟုတ်သည့်အပြင် ထို ဒိုမိန်းတွင်ရှိသော သင်၏ စောင့်ကြည့်သူများပါ ဖယ်ရှားပစ်မည်ဖြစ်သည်။", + "confirmations.logout.confirm": "အကောင့်မှထွက်မည်", + "confirmations.logout.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", + "confirmations.mute.confirm": "ပိတ်ထားရန်", + "confirmations.mute.explanation": "၎င်းသည် ၎င်းတို့ထံမှ ပို့စ်များနှင့် ၎င်းတို့ကို ဖော်ပြထားသော ပို့စ်များကို ဖျောက်ထားမည်ဖြစ်ပြီး၊ သို့သော် ၎င်းတို့သည် သင့်ပို့စ်များကို မြင်နိုင်ပြီး သင့်အား လိုက်ကြည့်နိုင်စေမည်ဖြစ်သည်။", + "confirmations.mute.message": "{name} ကို မမြင်လိုသည်မှာ သေချာပါသလား။ ", + "confirmations.redraft.confirm": "ဖျက်ပြီး ပြန်လည်ရေးမည်။", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.reply.confirm": "စာပြန်မည်", - "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", - "confirmations.unfollow.confirm": "Unfollow", - "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", - "conversation.delete": "Delete conversation", - "conversation.mark_as_read": "Mark as read", - "conversation.open": "View conversation", - "conversation.with": "With {names}", - "copypaste.copied": "Copied", - "copypaste.copy": "Copy", + "confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?", + "confirmations.unfollow.confirm": "ဖောလိုးဖြုတ်မည်", + "confirmations.unfollow.message": "{name}ကိုဖောလိုးဖြုတ်မည်", + "conversation.delete": "ဤစကားပြောဆိုမှုကို ဖျက်ပစ်မည်", + "conversation.mark_as_read": "ဖတ်ပြီးသားအဖြစ်မှတ်ထားပါ", + "conversation.open": "Conversation ကိုကြည့်မည်", + "conversation.with": "{အမည်များ} ဖြင့်", + "copypaste.copied": "ကူယူပြီးပါပြီ", + "copypaste.copy": "ကူးယူပါ", "directory.federated": "From known fediverse", - "directory.local": "From {domain} only", - "directory.new_arrivals": "New arrivals", - "directory.recently_active": "Recently active", - "disabled_account_banner.account_settings": "Account settings", - "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "directory.local": "{domain} မှသာလျှင်\n", + "directory.new_arrivals": "အသစ်ရောက်ရှိမှုများ", + "directory.recently_active": "မကြာသေးခင်က ဖွင့်ထားသော", + "disabled_account_banner.account_settings": "အကောင့်ဆက်တင်များ", + "disabled_account_banner.text": "{disabledAccount} သည်လတ်တလောပိတ်ခံထားရသည်", "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", - "dismissable_banner.dismiss": "Dismiss", - "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.dismiss": "ပယ်ရန်", + "dismissable_banner.explore_links": "ဤသတင်းများကို ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများမှ လူများက ပြောဆိုနေကြပါသည်။", + "dismissable_banner.explore_statuses": "ဤစာများနှင့် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်ရှိ အခြားဆာဗာများမှ ဤပို့စ်များသည် ယခုဆာဗာပေါ်တွင် ဆွဲဆောင်မှု ရှိလာပါသည်။", + "dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်", "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.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", - "emoji_button.clear": "Clear", + "emoji_button.clear": "ရှင်းလင်းမည်", "emoji_button.custom": "Custom", "emoji_button.flags": "Flags", "emoji_button.food": "Food & Drink", @@ -211,11 +211,11 @@ "empty_column.account_suspended": "Account suspended", "empty_column.account_timeline": "No posts found", "empty_column.account_unavailable": "Profile unavailable", - "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", - "empty_column.domain_blocks": "There are no blocked domains yet.", + "empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", @@ -224,11 +224,11 @@ "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", - "empty_column.home.suggestions": "See some suggestions", + "empty_column.home.suggestions": "ဆက်လက်ဖတ်ရှုမည်", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.lists": "သင့်တွင် List မရှိသေးပါ။ List အသစ်ဖွင့်လျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်မည်", + "empty_column.mutes": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", + "empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်", "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "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.", @@ -237,11 +237,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Search results", - "explore.suggested_follows": "For you", - "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.suggested_follows": "သင့်အတွက်", + "explore.title": "စူးစမ်းရန်", + "explore.trending_links": "သတင်းများ", + "explore.trending_statuses": "ပို့စ်တင်မယ်", + "explore.trending_tags": "ဟက်ရှ်တက်များ", "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.", @@ -252,7 +252,7 @@ "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", "filter_modal.added.title": "Filter added!", "filter_modal.select_filter.context_mismatch": "does not apply to this context", - "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.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", @@ -265,16 +265,16 @@ "follow_request.reject": "Reject", "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.", "followed_tags": "Followed hashtags", - "footer.about": "About", + "footer.about": "အကြောင်း", "footer.directory": "Profiles directory", "footer.get_app": "Get the app", "footer.invite": "Invite people", "footer.keyboard_shortcuts": "Keyboard shortcuts", "footer.privacy_policy": "Privacy policy", - "footer.source_code": "View source code", - "footer.status": "Status", - "generic.saved": "Saved", - "getting_started.heading": "Getting started", + "footer.source_code": "မူရင်းကုဒ်အားကြည့်ရှုမည်", + "footer.status": "အခြေအနေ", + "generic.saved": "သိမ်းဆည်းထားပြီး", + "getting_started.heading": "စတင်မည်", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -296,7 +296,7 @@ "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", "interaction_modal.on_another_server": "On a different server", - "interaction_modal.on_this_server": "On this server", + "interaction_modal.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.title.favourite": "Favourite {name}'s post", @@ -311,7 +311,7 @@ "keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.description": "ဖော်ပြချက်", "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", @@ -320,7 +320,7 @@ "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.hotkey": "သော့ချက်", "keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.mention": "to mention author", @@ -340,39 +340,39 @@ "keyboard_shortcuts.toot": "to start a brand new post", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "lightbox.close": "Close", + "lightbox.close": "ပိတ်ပါ", "lightbox.compress": "Compress image view box", - "lightbox.expand": "Expand image view box", - "lightbox.next": "Next", + "lightbox.expand": "ပုံကိုဖွင့်ပါ", + "lightbox.next": "ရှေ့သို့", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", - "lists.account.add": "Add to list", - "lists.account.remove": "Remove from list", - "lists.delete": "Delete list", - "lists.edit": "Edit list", - "lists.edit.submit": "Change title", - "lists.new.create": "Add list", - "lists.new.title_placeholder": "New list title", + "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", + "lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။", + "lists.delete": "စာရင်းကိုဖျက်ပါ", + "lists.edit": "စာရင်းကိုပြင်ဆင်ပါ", + "lists.edit.submit": "ခေါင်းစဥ် ပြောင်းလဲရန်", + "lists.new.create": "စာရင်းသွင်းပါ", + "lists.new.title_placeholder": "စာရင်းသစ်ခေါင်းစဥ်", "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", - "lists.replies_policy.none": "No one", + "lists.replies_policy.list": "စာရင်းထဲမှ အဖွဲ့ဝင်များ", + "lists.replies_policy.none": "တစ်ယောက်မှမရှိပါ", "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", + "lists.search": "မိမိဖောလိုးထားသူများမှရှာဖွေမည်", + "lists.subheading": "သင့်၏စာရင်းများ", "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", + "loading_indicator.label": "လုပ်ဆောင်နေသည်…", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", - "missing_indicator.label": "Not found", - "missing_indicator.sublabel": "This resource could not be found", - "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", - "mute_modal.duration": "Duration", - "mute_modal.hide_notifications": "Hide notifications from this user?", - "mute_modal.indefinite": "Indefinite", + "missing_indicator.label": "မတွေ့ပါ", + "missing_indicator.sublabel": "ရှာဖွေနေသည်ကိုမတွေ့ပါ", + "moved_to_account_banner.text": "{movedToAccount} အကောင့်သို့ပြောင်းလဲထားသဖြင့် {disabledAccount} အကောင့်မှာပိတ်ထားသည်", + "mute_modal.duration": "ကြာချိန်", + "mute_modal.hide_notifications": "ဤအကောင့်မှသတိပေးချက်များကိုပိတ်မလား?", + "mute_modal.indefinite": "ရေတွက်လို့မရပါ", "navigation_bar.about": "အကြောင်း", - "navigation_bar.blocks": "Blocked users", - "navigation_bar.bookmarks": "Bookmarks", - "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ", + "navigation_bar.bookmarks": "မှတ်ထားသည်များ", + "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်", "navigation_bar.compose": "Compose new post", "navigation_bar.direct": "Direct messages", "navigation_bar.discover": "Discover", @@ -400,24 +400,24 @@ "notification.follow": "{name} followed you", "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} mentioned you", - "notification.own_poll": "Your poll has ended", - "notification.poll": "A poll you have voted in has ended", + "notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ", + "notification.poll": "သင်ပါဝင်ခဲ့သော စစ်တမ်းပြီးပါပြီ", "notification.reblog": "{name} boosted your status", "notification.status": "{name} just posted", "notification.update": "{name} edited a post", - "notifications.clear": "Clear notifications", - "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ", + "notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်", "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", - "notifications.column_settings.alert": "Desktop notifications", - "notifications.column_settings.favourite": "Favourites:", - "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.alert": "Desktop သတိပေးချက်များ", + "notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ", + "notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ", "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show_bar": "Show filter bar", "notifications.column_settings.follow": "New followers:", "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mentions:", - "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.poll": "စစ်တမ်းရလဒ်", "notifications.column_settings.push": "Push notifications", "notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.show": "Show in column", @@ -426,14 +426,14 @@ "notifications.column_settings.unread_notifications.category": "Unread notifications", "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", "notifications.column_settings.update": "Edits:", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", + "notifications.filter.all": "အားလုံး", + "notifications.filter.boosts": "အားပေးမည်", + "notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ", + "notifications.filter.follows": "ဖောလိုးမည်", + "notifications.filter.mentions": " မန်းရှင်းမည်", + "notifications.filter.polls": "စစ်တမ်းရလဒ်", "notifications.filter.statuses": "Updates from people you follow", - "notifications.grant_permission": "Grant permission.", + "notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်", "notifications.group": "{count} notifications", "notifications.mark_as_read": "Mark every notification as read", "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", @@ -443,19 +443,19 @@ "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", "notifications_permission_banner.title": "Never miss a thing", "picture_in_picture.restore": "Put it back", - "poll.closed": "Closed", - "poll.refresh": "Refresh", + "poll.closed": "ပိတ်သွားပြီ", + "poll.refresh": "ပြန်ဖွင့်မည်", "poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", + "poll.vote": "မဲပေးမည်", + "poll.voted": "သင်ဤအဖြေကိုမဲပေးခဲ့သည်", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll_button.add_poll": "စစ်တမ်းကောက်မည်", + "poll_button.remove_poll": "စစ်တမ်းပယ်ဖျက်မည်", "privacy.change": "Adjust status privacy", - "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.long": "မန်းရှင်းခေါ်သူသီးသန့်", "privacy.direct.short": "Direct", - "privacy.private.long": "Visible for followers only", + "privacy.private.long": "ဖော်လိုးလုပ်သူသီးသန့်", "privacy.private.short": "Followers-only", "privacy.public.long": "Visible for all", "privacy.public.short": "Public", @@ -476,28 +476,28 @@ "relative_time.just_now": "now", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", - "relative_time.today": "today", - "reply_indicator.cancel": "Cancel", - "report.block": "Block", + "relative_time.today": "ယနေ့", + "reply_indicator.cancel": "ပယ်ဖျက်မည်", + "report.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.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", + "report.categories.other": "အခြား", + "report.categories.spam": "ပြင်ပစာများ", + "report.categories.violation": "ဤစာတွင် သတ်မှတ်ထားသောစည်းကမ်းများကို ဖောက်ဖျက်သောအကြောင်းအရာပါဝင်နေသည်", + "report.category.subtitle": "အကိုက်ညီဆုံးကိုရွေးချယ်ပါ", "report.category.title": "Tell us what's going on with this {type}", "report.category.title_account": "ကိုယ်ရေးမှတ်တမ်း", - "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", - "report.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "report.mute": "Mute", + "report.category.title_status": "ပို့စ်", + "report.close": "ပြီးပြီ", + "report.comment.title": "မိမိထင်မြင်ယူဆချက်များကိုဖော်ပြပေးပါ", + "report.forward": "{target} သို့တစ်ဆင့်ပို့ပေးမည်", + "report.forward_hint": "ဤအကောင့်မှာတစ်ခြားဆာဗာမှဖြစ်သည်။ အမည်မသိတိုင်းကြားချက်ဖွင့်လိုပါသလား?", + "report.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.next": "ရှေ့သို့", "report.placeholder": "Type or paste additional comments", - "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.dislike": "မကြိုက်ပါ", + "report.reasons.dislike_description": "ပိုမိုမြင်လိုသည်ရှိပါသလား", + "report.reasons.other": "တစ်ခုခုဖြစ်နေသည်", "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", @@ -520,19 +520,19 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", - "search.placeholder": "Search", - "search.search_or_paste": "Search or paste URL", + "search.placeholder": "ရှာဖွေရန်", + "search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ", "search_popout.search_format": "Advanced search format", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", + "search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်", + "search_popout.tips.status": "ပို့စ်", "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", - "search_results.all": "All", + "search_popout.tips.user": "အသုံးပြုသူ", + "search_results.accounts": "လူပုဂ္ဂိုလ်", + "search_results.all": "အားလုံး", "search_results.hashtags": "ဟက်ရှ်တက်များ", - "search_results.nothing_found": "Could not find anything for these search terms", - "search_results.statuses": "Posts", + "search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ", + "search_results.statuses": "ပို့စ်တင်မယ်", "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", @@ -548,7 +548,7 @@ "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.block": "@{name} ကိုဘလော့မည်", "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Unboost", "status.cannot_reblog": "This post cannot be boosted", @@ -560,10 +560,10 @@ "status.edited": "Edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", - "status.favourite": "Favourite", + "status.favourite": "ကြိုက်နှစ်သက်မှုများ", "status.filter": "Filter this post", "status.filtered": "Filtered", - "status.hide": "Hide post", + "status.hide": "ပို့စ်ကိုပိတ်ထားမည်", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -572,7 +572,7 @@ "status.more": "More", "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", - "status.open": "Expand this status", + "status.open": "ပို့စ်ကိုချဲ့ထွင်မည်", "status.pin": "Pin on profile", "status.pinned": "Pinned post", "status.read_more": "Read more", @@ -626,14 +626,14 @@ "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", - "upload_error.poll": "File upload not allowed with polls.", - "upload_form.audio_description": "Describe for people with hearing loss", - "upload_form.description": "Describe for the visually impaired", + "upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ", + "upload_form.audio_description": "အကြားအာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", + "upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", "upload_form.description_missing": "No description added", "upload_form.edit": "Edit", "upload_form.thumbnail": "Change thumbnail", "upload_form.undo": "Delete", - "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", "upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.apply": "Apply", "upload_modal.applying": "Applying…", @@ -644,7 +644,7 @@ "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_progress.label": "Uploading…", + "upload_progress.label": "တင်နေသည်...", "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 02804f0f66..f2e4a365e3 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -65,7 +65,7 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Dessilenciar @{name}", "account.unmute_notifications": "Mostrar notificações de @{name}", - "account.unmute_short": "Dessilenciar", + "account.unmute_short": "Desativar silêncio", "account_note.placeholder": "Nota pessoal sobre este perfil aqui", "admin.dashboard.daily_retention": "Taxa de retenção de usuários por dia, após a inscrição", "admin.dashboard.monthly_retention": "Taxa de retenção de usuários por mês, após a inscrição", @@ -82,7 +82,7 @@ "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pressione {combo} para pular isso na próxima vez", "bundle_column_error.copy_stacktrace": "Copiar relatório do erro", - "bundle_column_error.error.body": "A página solicitada não pode ser renderizada. Pode ser devido a um erro em nosso código ou um problema de compatibilidade do navegador.", + "bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Pode ser devido a um erro no nosso código, ou um problema de compatibilidade do seu navegador.", "bundle_column_error.error.title": "Ah, não!", "bundle_column_error.network.body": "Ocorreu um erro ao tentar carregar esta página. Isso pode ser devido a um problema temporário com sua conexão de internet ou deste servidor.", "bundle_column_error.network.title": "Erro de rede", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 683924c707..787727d56d 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Postări și răspunsuri", "account.report": "Raportează pe @{name}", "account.requested": "Se așteaptă aprobarea. Apasă pentru a anula cererea de urmărire", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} A cerut să vă urmărească", "account.share": "Distribuie profilul lui @{name}", "account.show_reblogs": "Arată impulsurile de la @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "Această postare nu va fi listată sub niciun hashtag, deoarece nu este publică. Doar postările publice pot fi căutate de 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?", @@ -221,7 +221,7 @@ "empty_column.favourites": "Momentan nimeni nu a adăugat această postare la favorite. Când cineva o va face, va apărea aici.", "empty_column.follow_recommendations": "Se pare că nu am putut genera nicio sugestie pentru tine. Poți încerca funcția de căutare pentru a căuta persoane pe care le cunoști, sau poți explora tendințele.", "empty_column.follow_requests": "Momentan nu ai nicio cerere de abonare. Când vei primi una, va apărea aici.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Încă nu urmăriți niciun harstag -uri. Când o vei face, vor apărea aici.", "empty_column.hashtag": "Acest hashtag încă nu a fost folosit.", "empty_column.home": "Nu există nimic în cronologia ta! Abonează-te la mai multe persoane pentru a o umple. {suggestions}", "empty_column.home.suggestions": "Vezi sugestiile", @@ -237,11 +237,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiere stacktrace în clipboard", "errors.unexpected_crash.report_issue": "Raportează o problemă", "explore.search_results": "Rezultatele căutării", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Pentru tine", "explore.title": "Explorează", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Noutăți", + "explore.trending_statuses": "Postări", + "explore.trending_tags": "Hastaguri", "filter_modal.added.context_mismatch_explanation": "Această categorie de filtre nu se aplică în contextul în care ați accesat acestă postare. Dacă doriți ca postarea să fie filtrată și în acest context, va trebui să editați filtrul.", "filter_modal.added.context_mismatch_title": "Nepotrivire contextuală!", "filter_modal.added.expired_explanation": "Această categorie de filtre a expirat, va trebui să modifici data de expirare pentru ca aceasta să se aplice.", @@ -264,7 +264,7 @@ "follow_request.authorize": "Acceptă", "follow_request.reject": "Respinge", "follow_requests.unlocked_explanation": "Chiar dacă contul tău nu este blocat, personalul {domain} a considerat că ai putea prefera să consulți manual cererile de abonare de la aceste conturi.", - "followed_tags": "Followed hashtags", + "followed_tags": "Hastaguri urmărite", "footer.about": "Despre", "footer.directory": "Catalogul de profiluri", "footer.get_app": "Obține aplicația", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Favorite", "navigation_bar.filters": "Cuvinte ignorate", "navigation_bar.follow_requests": "Cereri de abonare", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Hashtag-uri urmărite", "navigation_bar.follows_and_followers": "Abonamente și abonați", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Deconectare", @@ -544,7 +544,7 @@ "server_banner.server_stats": "Statisticile serverului:", "sign_in_banner.create_account": "Creează-ți un cont", "sign_in_banner.sign_in": "Conectează-te", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Conectează-te pentru a te abona la profiluri și haștaguri, pentru a aprecia, distribui și a răspunde postărilor, sau interacționează folosindu-ți contul de pe un alt server.", "status.admin_account": "Deschide interfața de moderare pentru @{name}", "status.admin_domain": "Open moderation interface for {domain}", "status.admin_status": "Deschide această stare în interfața de moderare", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index ba50e846a1..03c237a649 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -218,7 +218,7 @@ "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!", "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.", - "empty_column.favourites": "Tento toot si ešte nikto neobľúbil. Ten kto si ho obľúbi, bude zobrazený tu.", + "empty_column.favourites": "Ešte si tento príspevok nikto neobľúbil. Keď si ho niekto obľúbi, bude zobrazený tu.", "empty_column.follow_recommendations": "Zdá sa že pre Vás nemohli byť vygenerované žiadne návrhy. Môžete skúsiť použiť vyhľadávanie aby ste našli ľudi ktorých poznáte, alebo preskúmať trendujúce heštegy.", "empty_column.follow_requests": "Ešte nemáš žiadne požiadavky o následovanie. Keď nejaké dostaneš, budú tu zobrazené.", "empty_column.followed_tags": "Ešte nenasleduješ žiadne haštagy. Keď tak urobíš, zobrazia sa tu.", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 1e8dd80516..405e526bb8 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -152,7 +152,7 @@ "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "您確定要封鎖 {name} ?", - "confirmations.cancel_follow_request.confirm": "收回請求", + "confirmations.cancel_follow_request.confirm": "收回跟隨請求", "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "您確定要刪除這則嘟文?", diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml index 7e49ed1e16..fc46d09181 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: Begründung errors: @@ -43,12 +43,12 @@ de: 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 deine derzeitige Rolle sein user_role: attributes: permissions_as_keys: dangerous: enthält Berechtigungen, welche nicht sicher sind für die Basisrolle - elevated: kann nicht Berechtigungen beinhalten, die deine aktuelle Rolle nicht besitzt + elevated: kann keine Berechtigungen enthalten, 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.el.yml b/config/locales/activerecord.el.yml index b285e457a1..4eae3b6a00 100644 --- a/config/locales/activerecord.el.yml +++ b/config/locales/activerecord.el.yml @@ -21,6 +21,14 @@ el: username: invalid: μόνο γράμματα, αριθμοί και κάτω παύλες reserved: είναι δεσμευμένο + admin/webhook: + attributes: + url: + invalid: δεν είναι έγκυρο URL + doorkeeper/application: + attributes: + website: + invalid: δεν είναι έγκυρο URL import: attributes: data: @@ -34,9 +42,14 @@ el: email: blocked: χρησιμοποιεί μη επιτρεπόμενο πάροχο e-mail unreachable: δεν φαίνεται να υπάρχει + role_id: + elevated: δεν μπορεί να είναι μεγαλύτερο από τον τρέχοντα ρόλο σας user_role: attributes: permissions_as_keys: + dangerous: προσθήκη δικαιωμάτων που δεν είναι ασφαλή για τον βασικό ρόλο + elevated: δεν είναι δυνατή η προσθήκη δικαιωμάτων που ο τρέχων ρόλος σας δεν κατέχει own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας position: + elevated: δεν μπορεί να είναι μεγαλύτερο από τον τρέχοντα ρόλο σας own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας diff --git a/config/locales/activerecord.my.yml b/config/locales/activerecord.my.yml index 6aba9d49b9..d5044bb6cd 100644 --- a/config/locales/activerecord.my.yml +++ b/config/locales/activerecord.my.yml @@ -19,9 +19,37 @@ my: account: attributes: username: - invalid: အက္ခရာစာလုံး၊ ဂဏန်းနံပါတ်နှင့်underscores သာပါရမည် - reserved: အသုံးပြုပြီးဖြစ်သည် + invalid: တွင် အက္ခရာစာလုံး၊ ဂဏန်းနံပါတ်နှင့်underscores သာပါရမည် + reserved: သည် အသုံးပြုပြီးဖြစ်သည် + admin/webhook: + attributes: + url: + invalid: သည် မှန်ကန်သော URL မဟုတ်ပါ + doorkeeper/application: + attributes: + website: + invalid: သည် မှန်ကန်သော URL မဟုတ်ပါ + import: + attributes: + data: + malformed: သည် ပုံမှန်မဟုတ်ပါ + status: + attributes: + reblog: + taken: ပို့စ်တည်ရှိနှင့်ပြီးဖြစ်သည် user: attributes: email: - unreachable: တည်ရှိပုံ မပေါ်ပါ + blocked: တွင် ခွင့်မပြုထားသော အီးမေးလ်ထောက်ပံ့သူပါဝင်နေသည်။ + unreachable: သည် တည်ရှိပုံ မပေါ်ပါ + role_id: + elevated: သင့်လက်ရှိအခန်းကဏ္ဍထက်ပို၍ မမြှင့်တင်နိုင်ပါ + user_role: + attributes: + permissions_as_keys: + dangerous: အခြေခံအခန်းကဏ္ဍအတွက် လုံခြုံမှုမရှိသော ခွင့်ပြုချက်များပါဝင်နေသည် + elevated: သင့်လက်ရှိအခန်းကဏ္ဍမပိုင်ဆိုင်သော ခွင့်ပြုချက်များမပါဝင်ပါ + own_role: သင့်လက်ရှိအခန်းကဏ္ဍဖြင့် ပြောင်းလဲ၍မရနိုင်ပါ + position: + elevated: သင့်လက်ရှိအခန်းကဏ္ဍထက်ပို၍ မမြှင့်တင်နိုင်ပါ + own_role: သင့်လက်ရှိအခန်းကဏ္ဍဖြင့် ပြောင်းလဲ၍မရနိုင်ပါ diff --git a/config/locales/activerecord.zh-TW.yml b/config/locales/activerecord.zh-TW.yml index 002ca95194..4b8e5e4dea 100644 --- a/config/locales/activerecord.zh-TW.yml +++ b/config/locales/activerecord.zh-TW.yml @@ -4,7 +4,7 @@ zh-TW: attributes: poll: expires_at: 截止時間 - options: 選擇 + options: 選項 user: agreement: 服務同意書 email: 電子郵件地址 diff --git a/config/locales/ar.yml b/config/locales/ar.yml index ad2797592f..e9a7c3374a 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1,7 +1,7 @@ --- ar: about: - about_mastodon_html: 'شبكة التواصل الإجتماعية المستقبَليّة: مِن دون إعلانات ، غير خاضعة لرقابة الشركات ، تصميم أخلاقي ولامركزية! بياناتكم مِلك لكم مع ماستدون!' + about_mastodon_html: 'شبكة التواصل الاجتماعية المستقبَليّة: مِن دون إعلانات، وغير خاضعة لرقابة الشركات، ذات تصميم أخلاقي ولامركزية! بياناتكم مِلك لكم مع ماستدون!' contact_missing: لم يتم تعيينه contact_unavailable: غير متوفر hosted_on: ماستدون مُستضاف على %{domain} @@ -359,6 +359,13 @@ ar: other: "%{count} تقارير معلقة" two: "%{count} مستخدمين معلقين" zero: "%{count} وسماً معلقاً" + pending_reports_html: + few: "%{count} تقارير قيد الإنتظار" + many: "%{count} تقريرًا قيد الإنتظار" + one: "%{count} تقرير واحد قيد الإنتظار" + other: "%{count} تقرير قيد الانتظار" + two: "%{count} تقريران قيد الانتظار" + zero: "%{count} تقارير قيد الانتظار" resolved_reports: تقارير تم حلها software: البرنامج sources: مصادر التسجيل @@ -582,7 +589,9 @@ ar: mark_as_sensitive_description_html: سيتم تحديد الوسائط في المناشير المبلّغ عنها على أنها محتوى حساس وسيتم تسجيل إنذار لمساعدتك في التعامل المستقبلي مع أي مخالفة جديدة من نفس الحساب. other_description_html: عرض المزيد من الخيارات للتحكم في االحسابات وتخصيص التواصل مع الحسابات المُبلّغ عنها. resolve_description_html: ولن يُتخذ أي إجراء ضد الحساب المبلّغ عنه، ولن تسلَّط عليه أية عقوبة، وسوف يُغلق التقرير. + silence_description_html: الحساب سيظهر فقط لمن يتابعه أو قام بالبحث عنه بشكل مباشر مما يخفض إمكانية رؤيته بشكل شبه كامل. يمكنك دائما التراجع عن هذا الإجراء. تُغلَق كافة الإبلاغات عن هذا الحساب. actions_description_html: تحديد الإجراءات التي يتعين اتخاذها لحل هذا التبليغ. إذا اتخذت إجراء عقابيا ضد الحساب المبلغ عنه، فسيتم إرسال إشعار بالبريد الإلكتروني إليهم، إلا عندما يتم تحديد فئة البريد المزعج. + actions_description_remote_html: حدّد الإجراءات التي يتعين اتخاذها لحل هذا التقرير. هذا سيؤثر فقط على كيفية اتصال خادمك بهذا الحساب البعيد والتعامل مع محتوياته. add_to_report: أضف المزيد إلى التقرير are_you_sure: هل أنت متأكد ؟ assign_to_self: عين لي @@ -624,6 +633,8 @@ ar: statuses: المحتوى المبلغ عنه statuses_description_html: سيشار إلى المحتوى المخالف في الاتصال بالحساب المبلغ عنه summary: + action_preambles: + suspend_html: 'أنت على وشك تعليق حساب @%{acct}. هذا سوف:' actions: delete_html: إزالة المنشورات المُخالِفة mark_as_sensitive_html: تصنيف وسائط المنشورات المُخالفة كحساسة @@ -657,6 +668,13 @@ ar: edit: تعديل رتبة '%{name}' ' everyone: الصلاحيات الافتراضية everyone_full_description_html: هذا هو الدور الأساسي الذي يحمله جميع المستخدمين، حتى أولئك الذين ليس لديهم دور معين. جميع الأدوار الأخرى ترث الأذونات منه. + permissions_count: + few: "%{count} تصريحات" + many: "%{count} تصريحًا" + one: تصريح واحد %{count} + other: "%{count} تصريح" + two: تصريحان %{count} + zero: لا تصريح %{count} privileges: administrator: مدير administrator_description: المستخدمين الذين لديهم هذا التصريح سيتجاوزون جميع التصاريح @@ -716,7 +734,7 @@ ar: preamble: تخصيص واجهة الويب لماستدون. title: المظهر branding: - preamble: العلامة التجارية للخادم الخاص بك تميزه عن الخوادم الأخرى في الشبكة. يمكن عرض هذه المعلومات عبر مجموعة متنوعة من البيئات، مثل واجهة الويب لماستدون, التطبيقات الأصلية، في معاينات الرابط على مواقع الويب الأخرى وداخل تطبيقات الرسائل، وما إلى ذلك. ولهذا السبب، من الأفضل إبقاء هذه المعلومات واضحة وقصيرة وموجزة. + preamble: العلامة التجارية لخادمك الخاص تميزه عن الخوادم الأخرى في الشبكة. يمكن عرض هذه المعلومات عبر مجموعة متنوعة من البيئات، مثل واجهة الويب لماستدون، في التطبيقات الأصلية، في معاينات الروابط على مواقع الويب الأخرى وضمن تطبيقات الرسائل، وما إلى ذلك. ولهذا السبب، من الأفضل إبقاء هذه المعلومات واضحة وقصيرة وموجزة. title: العلامة content_retention: preamble: التحكم في كيفية تخزين المحتوى الذي ينشئه المستخدم في ماستدون. @@ -726,7 +744,7 @@ ar: title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين discovery: follow_recommendations: اتبع التوصيات - preamble: تصفح المحتوى المثير للاهتمام أمر مهم في إستقبال المستخدمين الجدد الذين قد لا يعرفون أي شخص ماستدون. التحكم في كيفية عمل ميزات الاكتشاف المختلفة على الخادم الخاص بك. + preamble: يُعد إتاحة رؤية المحتوى المثير للاهتمام أمرًا ضروريًا لجذب مستخدمين جدد قد لا يعرفون أي شخص في Mastodon. تحكم في كيفية عمل ميزات الاكتشاف المختلفة على خادمك الخاص. profile_directory: دليل الصفحات التعريفية public_timelines: الخيوط الزمنية العامة publish_discovered_servers: نشر الخوادم المكتشَفة @@ -953,7 +971,7 @@ ar: description: prefix_invited_by_user: يدعوك @%{name} للاتحاق بخادم ماستدون هذا! prefix_sign_up: أنشئ حسابًا على ماستدون اليوم! - suffix: بفضل حساب ، ستكون قادرا على متابعة الأشخاص ونشر تحديثات وتبادل رسائل مع مستخدمين مِن أي خادم Mastodon وأكثر! + suffix: بفضل حساب، ستكون قادرا على متابعة أشخاص ونشر تحديثات وتبادل رسائل مع مستخدمين مِن أي خادم Mastodon وأكثر! didnt_get_confirmation: لم تتلق تعليمات التأكيد ؟ dont_have_your_security_key: ليس لديك مفتاح الأمان الخاص بك؟ forgot_password: نسيت كلمة المرور ؟ @@ -1153,6 +1171,13 @@ ar: other: "%{count} كلمة مفتاحية" two: كلمتان مفتاحيتان %{count} zero: "%{count} كلمة مفتاحية" + statuses: + few: "%{count} منشورات" + many: "%{count} منشورًا" + one: "%{count} منشور واحد" + other: "%{count} منشور" + two: "%{count} منشوران اثنان" + zero: "%{count} منشورات" title: عوامل التصفية new: save: حفظ عامل التصفية الجديد diff --git a/config/locales/ast.yml b/config/locales/ast.yml index c7d09ddf08..d4e3fe20e9 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -18,11 +18,15 @@ ast: account_moderation_notes: create: Dexar la nota accounts: + add_email_domain_block: Bloquiar el dominiu de corréu electrónicu + approved_msg: Aprobóse correutamente la solicitú de rexistru de «%{username}» avatar: Avatar by_domain: Dominiu + confirming: En confirmación disabled: Conxelóse display_name: Nome visible domain: Dominiu + edit: Editar email: Direición de corréu electrónicu followers: Siguidores header: Testera @@ -32,15 +36,18 @@ ast: local: Llocal remote: Remotu title: Llugar + login_status: Estáu del aniciu de la sesión moderation: pending: Pendiente most_recent_activity: L'actividá más recién most_recent_ip: La IP más recién perform_full_suspension: Suspender protocol: Protocolu + rejected_msg: Refugóse correutamente la solicitú de rexistru de «%{username}» resend_confirmation: already_confirmed: Esti perfil xá ta confirmáu send: Volver unviar el mensaxe de confirmación + success: "¡El mensaxe de confirmación unvióse correutamente!" role: Rol search: Buscar search_same_email_domain: Otros perfiles col mesmu dominiu de corréu electrónicu @@ -60,6 +67,7 @@ ast: confirm_user_html: "%{name} confirmó la direición de corréu electrónicu del perfil %{target}" create_account_warning_html: "%{name} unvió una alvertencia a %{target}" create_announcement_html: "%{name} creó l'anunciu «%{target}»" + create_custom_emoji_html: "%{name} xubió un fustaxe nuevu «%{target}»" create_domain_allow_html: "%{name} permitió la federación col dominiu %{target}" create_domain_block_html: "%{name} bloquió'l dominiu %{target}" create_user_role_html: "%{name} creó'l rol «%{target}»" @@ -72,6 +80,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}" + resend_user_html: "%{name} volvió unviar el mensaxe de confirmación pa: %{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}»" @@ -138,6 +147,7 @@ ast: space: Usu del espaciu title: Panel top_languages: Les llingües más actives + top_servers: Los sirvidores más activos website: Sitiu web disputes: appeals: @@ -159,6 +169,7 @@ ast: export_domain_allows: no_file: Nun se seleicionó nengún ficheru follow_recommendations: + description_html: "La recomendación de cuentes ayuda a que los perfiles nuevos atopen aína conteníu interesante. Cuando una cuenta nun interactuó abondo con otros perfiles como pa formar recomendaciones personalizaes, estes cuentes van ser les que se recomienden. Recalcúlense caldía a partir d'un mecíu de cuentes con más actividá recién ya mayor númberu de siguidores llocales pa una llingua determinada." language: Pa la llingua status: Estáu title: Recomendación de cuentes @@ -173,6 +184,16 @@ ast: suspend: Suspender policy: Política reason: Motivu públicu + title: Polítiques del conteníu + dashboard: + instance_accounts_dimension: Les cuentes más siguíes + instance_accounts_measure: cuentes atroxaes + instance_followers_measure: siguidores de nueso ellí + instance_follows_measure: siguidores de so equí + instance_languages_dimension: Les llingües más usaes + instance_media_attachments_measure: ficheros multimedia atroxaos + instance_reports_measure: informes d'esa instancia + instance_statuses_measure: artículos atroxaos empty: Nun s'atopó nengún dominiu. known_accounts: one: "%{count} cuenta conocida" @@ -180,6 +201,10 @@ ast: private_comment: Comentariu priváu public_comment: Comentariu públicu title: Federación + total_reported: Informes d'esa instancia + invites: + deactivate_all: Desactivalo too + title: Invitaciones ip_blocks: expires_in: '1209600': 2 selmanes @@ -215,6 +240,7 @@ ast: quick_actions_description_html: 'Toma una aición rápida o baxa pa ver el conteníu del que s''informó:' report: 'Informe #%{id}' reported_by: Perfil qu'informó + resolved: Resolvióse resolved_msg: "¡L'informe resolvióse correutamente!" skip_to_actions: Saltar a les aiciones status: Estáu @@ -246,7 +272,7 @@ ast: manage_invites: Xestionar les invitaciones manage_reports: Xestionar los informes manage_roles: Xestionar los roles - manage_rules: Xestionar les regles + manage_rules: Xestionar les normes manage_settings: Xestionar la configuración manage_taxonomies: Xestionar les taxonomíes manage_users: Xestionar los perfiles @@ -255,11 +281,11 @@ ast: view_devops: DevOps title: Roles rules: - add_new: Amestar la regla - title: Regles del sirvidor + add_new: Amestar la norma + title: Normes del sirvidor settings: about: - manage_rules: Xestionar les regles del sirvidor + manage_rules: Xestionar les normes del sirvidor title: Tocante a appearance: preamble: Personaliza la interfaz web de Mastodon. @@ -271,7 +297,12 @@ ast: preamble: Controla cómo s'atroxa'l conteníu xeneráu polos perfiles en Mastodon. title: Retención del conteníu discovery: + follow_recommendations: Recomendación de cuentes + preamble: L'apaición de conteníu interesante ye fundamental p'atrayer persones nueves que nun conozan nada de Mastodon. Controla'l funcionamientu de delles funciones de descubrimientu d'esti sirvidor. + profile_directory: Direutoriu de perfiles public_timelines: Llinies de tiempu públiques + publish_discovered_servers: Espublizamientu de sirvidores descubiertos + publish_statistics: Espublizamientu d'estadístiques title: Descubrimientu trends: Tendencies domain_blocks: @@ -290,6 +321,7 @@ ast: site_uploads: delete: Desaniciar el ficheru xubíu statuses: + back_to_account: Volver a la páxina de la cuenta language: Llingua metadata: Metadatos original_status: Artículu orixinal @@ -307,18 +339,30 @@ ast: message_html: Nun se pudo conectar con Elasticsearch. Revisa que tea n'execución o desactiva la busca de testos completos title: Alministración trends: + allow: Permitir + disallow: Refugar links: + disallow: Refugar l'enllaz title: Enllaces en tendencia only_allowed: Namás lo permitío pending_review: Revisión pendiente + preview_card_providers: + title: Espublizadores statuses: + allow: Permitir l'artículu + disallow: Refugar l'artículu title: Artículos en tendencia tags: current_score: 'Puntuación total: %{score}' dashboard: tag_accounts_measure: usos únicos + tag_languages_dimension: Les llingües más usaes + tag_servers_dimension: Los sirvidores más destacaos + tag_servers_measure: sirvidores diferentes + tag_uses_measure: usos en total listable: Pue suxerise no_tag_selected: Nun camudó nenguna etiqueta darréu que nun se seleicionó nenguna + not_trendable: Nun apaez nes tendencies not_usable: Nun se pue usar title: Etiquetes en tendencia usable: Pue usase @@ -372,6 +416,8 @@ ast: guide_link_text: tol mundu pue collaborar. sensitive_content: Conteníu sensible toot_layout: Distribución de los artículos + application_mailer: + notification_preferences: Camudar les preferencies de los mensaxes de corréu electrónicu applications: created: L'aplicación creóse correutamente regenerate_token: Volver xenerar el pase d'accesu @@ -380,6 +426,8 @@ ast: your_token: El pase d'accesu auth: change_password: Contraseña + confirmations: + wrong_email_hint: Si la direición de corréu electrónicu nun ye correuta, pues camudala na configuración de la cuenta. delete_account: Desaniciu de la cuenta delete_account_html: Si quies desaniciar la cuenta, pues facelo equí. Va pidísete que confirmes l'aición. description: @@ -390,15 +438,19 @@ ast: login: Aniciar la sesión logout: Zarrar la sesión migrate_account: Cambéu de cuenta + migrate_account_html: Si quies redirixir esta cuenta a otra diferente, pues configurar esta opción equí. privacy_policy_agreement_html: Lleí ya acepto la política de privacidá providers: cas: CAS saml: SAML register: Rexistrase registration_closed: "%{instance} nun acepta cuentes nueves" + resend_confirmation: Volver unviar les instrucciones de confirmación security: Seguranza setup: + email_below_hint_html: Si la direición de corréu electrónicu ye incorreuta, pues camudala equí ya recibir un mensaxes de confirmación nuevu. email_settings_hint_html: Unvióse'l mensaxe de confirmación a %{email}. Si la direición de corréu electrónicu nun ye correuta, pues camudala na configuración de la cuenta. + title: Configuración sign_in: preamble_html: Anicia la sesión colos tos datos d'accesu en %{domain}. Si la cuenta ta agospiada n'otru sirvidor, nun vas ser a aniciar la sesión equí. title: Aniciu de la sesión en «%{domain}» @@ -512,6 +564,8 @@ ast: one: "%{count} artículu" other: "%{count} artículos" title: Peñeres + new: + title: Amestar una peñera footer: trending_now: En tendencia generic: @@ -522,6 +576,7 @@ ast: all_matching_items_selected_html: one: Seleicionóse %{count} elementu que concasa cola busca. other: Seleicionáronse %{count} elementos que concasen cola busca. + changes_saved_msg: "¡Los cambeos guardáronse correutamente!" copy: Copiar delete: Desaniciar deselect: Deseleicionar too @@ -529,6 +584,8 @@ ast: save_changes: Guardar los cambeos today: güei imports: + errors: + over_rows_processing_limit: contién más de %{count} fileres modes: merge: Mecíu merge_long: Caltién los rexistros esistentes ya amiesta otros nuevos @@ -537,8 +594,10 @@ ast: preface: Pues importar los datos qu'esportares dende otru sirvidor, como la llista de perfiles bloquiaos o que sigas. types: blocking: Llista de perfiles bloquiaos + bookmarks: Marcadores domain_blocking: Llista de dominios bloquiaos following: Llista de siguidores + muting: Llista de perfiles colos avisos desactivaos upload: Xubir invites: expired: Caducó @@ -555,8 +614,11 @@ ast: max_uses: one: 1 usu other: "%{count} usos" + prompt: Xenera ya comparti enllaces con otres persones pa conceder l'accesu a esti sirvidor table: expires_at: Data de caducidá + uses: Usos + title: Invitación lists: errors: limit: Algamesti la cantidá máxima de llistes @@ -564,6 +626,7 @@ ast: authentication_methods: password: contraseña webauthn: llaves de seguranza + successful_sign_in_html: Anicióse correutamente la sesión col métodu «%{method}» dende %{ip} (%{browser}) media_attachments: validations: images_and_video: Nun se pue axuntar nengún videu a un artículu que xá contién imáxenes @@ -572,6 +635,7 @@ ast: errors: missing_also_known_as: nun ye un nomatu d'esta cuenta move_to_self: nun pue ser la cuenta actual + incoming_migrations_html: Pa migrar d'otra cuenta a esta, primero tienes de crear un nomatu de cuenta. warning: followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva notification_mailer: @@ -583,6 +647,7 @@ ast: subject: "%{name} marcó'l to artículu como favoritu" follow: body: "¡Agora %{name} siguete!" + subject: "%{name} ta siguiéndote" follow_request: body: "%{name} solicitó siguite" title: Solicitú de siguimientu nueva @@ -596,6 +661,7 @@ ast: update: subject: "%{name} editó un artículu" notifications: + email_events: Unviu d'avisos per corréu electrónicu email_events_hint: 'Seleiciona los eventos de los que quies recibir avisos:' other_settings: Configuración d'otros avisos number: @@ -614,7 +680,7 @@ ast: instructions_html: "Escania esti códigu QR con Google Authenticator o otra aplicación asemeyada nel móvil. Dende agora, esa aplicación va xenerar los pases que tienes d'introducir cuando anicies la sesión." manual_instructions: 'Si nun pues escaniar el códigu QR ya tienes d''introducilu manualmente, equí tienes el secretu en testu ensin formatu:' setup: Configurar - wrong_code: "¡El códigu introducíu nun yera válidu! ¿La hora del sirvidor y la del preséu son correutes?" + wrong_code: "¡El códigu introducíu nun yera válidu! ¿La hora del sirvidor ya la del preséu son correutes?" pagination: next: Siguiente truncate: "…" @@ -625,6 +691,8 @@ ast: invalid_choice: La opción de votu escoyida nun esiste too_many_options: nun pue contener más de %{max} elementos preferences: + other: Otres preferencies + posting_defaults: Configuración predeterminada del espublizamientu d'artículos public_timelines: Llinies de tiempu públiques privacy_policy: title: Política de privacidá @@ -633,6 +701,8 @@ ast: followers: Siguidores last_active: Última actividá most_recent: Lo más recién + mutual: Mutua + primary: Principal relationship: Rellación remove_selected_follows: Dexar de siguir a los perfiles seleicionaos scheduled_statuses: @@ -726,6 +796,7 @@ ast: title: "%{name}: «%{quote}»" visibilities: direct: Mensaxe direutu + private: Namás siguidores public_long: Tol mundu pue velos unlisted_long: Tol mundu pue velos, mas nun apaecen nes llinies de tiempu públiques statuses_cleanup: @@ -777,7 +848,7 @@ ast: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil - edit_profile_step: Pues personalizar el perfil pente la xuba d'una semeya, el cambéu del nome visible y muncho más. Tamién, si lo prefieres, pues revisar los perfiles nuevos enantes de que puedan siguite. + edit_profile_step: Pues personalizar el perfil pente la xuba d'una semeya, el cambéu del nome visible ya muncho más. Tamién, si lo prefieres, pues revisar los perfiles nuevos enantes de que puedan siguite. explanation: Equí tienes dalgunos conseyos pa que comiences final_action: Comenzar a espublizar subject: Afáyate en Mastodon diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 9127790bc5..cdcf6158b0 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -441,6 +441,7 @@ bg: private_comment_description_html: 'За по-лесно проследяване откъде идват внесените блокирания, те ще се създадат със следния личен коментар: %{comment}' private_comment_template: Внесено от %{source} на %{date} title: Внос на блокирания на домейни + invalid_domain_block: 'Едно или повече блокирания на домейн са прескочени поради следнате грешки: %{error}' new: title: Внос на блокирания на домейни no_file: Няма избран файл @@ -589,6 +590,7 @@ bg: comment: none: Нищо comment_description_html: 'За да предостави повече информация, %{name} написа:' + confirm_action: Потвърждаване на модераторско действие срещу @%{acct} created_at: Докладвано delete_and_resolve: Изтриване на публикациите forwarded: Препратено @@ -617,9 +619,15 @@ bg: status: Състояние statuses: Докладвано съдържание statuses_description_html: Непристойно съдържание ще бъде цитирано в комуникацията с докладвания акаунт + summary: + actions: + delete_html: Премахване на обидните публикации + close_report: Отбелязване на доклад №%{id} като решен + warning_placeholder: Незадължителни допълнителни причини за модераторско действие. target_origin: Произход на докладвания акаунт title: Доклади unassign: Освобождаване + unknown_action_msg: 'Незнайно деяние: %{action}' unresolved: Неразрешено updated_at: Обновено view_profile: Преглед на профила @@ -943,6 +951,8 @@ bg: auth: apply_for_account: Заявка за акаунт change_password: Парола + confirmations: + wrong_email_hint: Ако този адрес на е-поща не е правилен, то може да го промените в настройки на акаунта. delete_account: Изтриване на акаунта delete_account_html: Ако желаете да изтриете акаунта си, може да сторите това тук. Ще ви се поиска потвърждение. description: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 52d1aa2029..f870413a5b 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -189,7 +189,7 @@ cy: create_account_warning: Creu Rhybydd create_announcement: Creu Cyhoeddiad create_canonical_email_block: Creu Bloc E-bost - create_custom_emoji: Creu Emoji Cyfaddas + create_custom_emoji: Creu Emoji Addasedig create_domain_allow: Creu Caniatáu Parth create_domain_block: Creu Gwaharddiad Parth create_email_domain_block: Creu Gwaharddiad Parth E-bost @@ -199,7 +199,7 @@ cy: demote_user: Diraddio Defnyddiwr destroy_announcement: Dileu Cyhoeddiad destroy_canonical_email_block: Dileu Bloc E-bost - destroy_custom_emoji: Dileu Emoji Cyfaddas + destroy_custom_emoji: Dileu Emoji Addasedig destroy_domain_allow: Dileu Caniatáu Parth destroy_domain_block: Dileu Gwaharddiad Parth destroy_email_domain_block: Dileu gwaharddiad parth e-bost @@ -209,10 +209,10 @@ cy: destroy_unavailable_domain: Dileu Parth Ddim ar Gael destroy_user_role: Dinistrio Rôl disable_2fa_user: Diffodd 2FA - disable_custom_emoji: Analluogi Emoji Cyfaddas + disable_custom_emoji: Analluogi Emoji Addasedig disable_sign_in_token_auth_user: Analluogi Dilysu Tocyn E-bost ar gyfer Defnyddiwr disable_user: Analluogi Defnyddiwr - enable_custom_emoji: Alluogi Emoji Cyfaddas + enable_custom_emoji: Galluogi Emoji Addasedig enable_sign_in_token_auth_user: Galluogi Dilysu Tocyn E-bost ar gyfer Defnyddiwr enable_user: Galluogi Defnyddiwr memorialize_account: Cofadeilio Cyfrif @@ -233,7 +233,7 @@ cy: unsilence_account: Dad-gyfyngu Cyfrif unsuspend_account: Tynnu Ataliad Cyfrif Dros Dro update_announcement: Diweddaru Cyhoeddiad - update_custom_emoji: Diweddaru Emoji Cyfaddas + update_custom_emoji: Diweddaru Emoji Addasedig update_domain_block: Diweddaru'r Blocio Parth update_ip_block: Diweddaru rheol IP update_status: Diweddaru Postiad @@ -1204,7 +1204,7 @@ cy: request: Gofynn am eich archif size: Maint blocks: Rydych chi'n blocio - bookmarks: Nodau Tudalen + bookmarks: Llyfrnodau csv: CSV domain_blocks: Blociau parth lists: Rhestrau @@ -1324,7 +1324,7 @@ cy: success: Llwythwyd eich data yn llwyddiannus a bydd yn cael ei brosesu mewn da bryd types: blocking: Rhestr blocio - bookmarks: Nodau Tudalen + bookmarks: Llyfrnodau domain_blocking: Rhestr rhwystro parth following: Rhestr ddilynion muting: Rhestr tewi @@ -1686,8 +1686,8 @@ cy: keep_pinned_hint: Nid yw'n dileu unrhyw un o'ch postiadau wedi'u pinio keep_polls: Cadw arolygon keep_polls_hint: Nid yw'n dileu unrhyw un o'ch arolygon - keep_self_bookmark: Cadw y postiadau wedi'u cadw fel nodau tudalen - keep_self_bookmark_hint: Nid yw'n dileu eich postiadau eich hun os ydych wedi rhoi nod tudalen arnyn nhw + keep_self_bookmark: Cadw y postiadau wedi'u cadw fel llyfrnodau + keep_self_bookmark_hint: Nid yw'n dileu eich postiadau eich hun os ydych wedi rhoi llyfrnodau arnyn nhw keep_self_fav: Cadw'r postiadau yr oeddech yn eu ffefrynnu keep_self_fav_hint: Nid yw'n dileu eich postiadau eich hun os ydych wedi eu ffefrynnu min_age: diff --git a/config/locales/de.yml b/config/locales/de.yml index 605eb8e736..6944b54e42 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -77,7 +77,7 @@ de: invite_request_text: Begründung für das Beitreten invited_by: Eingeladen von ip: IP-Adresse - joined: Beigetreten + joined: Registriert location: all: Alle local: Lokal @@ -392,7 +392,7 @@ de: create: Sperre einrichten hint: Die Domainsperre wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden, sondern rückwirkend und automatisch alle Moderationsmethoden auf diese Konten anwenden. severity: - desc_html: "Stummschaltung wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine Sperre wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende keine, um nur Mediendateien abzulehnen." + desc_html: "Stummschaltung wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine Sperre wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende keine, um nur Mediendateien abzulehnen." noop: Kein silence: Stummschaltung suspend: Sperren @@ -680,7 +680,7 @@ de: manage_custom_emojis: Eigene Emojis verwalten manage_custom_emojis_description: Erlaubt es Benutzer*innen, eigene Emojis auf dem Server zu verwalten manage_federation: Föderation verwalten - manage_federation_description: Erlaubt Nutzer*innen, Domains anderer Mastodon-Server zu sperren oder zuzulassen – und die Zustellbarkeit zu steuern + manage_federation_description: Erlaubt Benutzer*innen, Domains anderer Mastodon-Server zu sperren oder zuzulassen – und die Zustellbarkeit zu steuern manage_invites: Einladungen verwalten manage_invites_description: Erlaubt es Benutzer*innen, Einladungslinks zu durchsuchen und zu deaktivieren manage_reports: Meldungen verwalten diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml index 7b88207713..1d268a6d17 100644 --- a/config/locales/devise.ar.yml +++ b/config/locales/devise.ar.yml @@ -37,8 +37,8 @@ ar: title: تم تغيير كلمة السر reconfirmation_instructions: explanation: ندعوك لتأكيد العنوان الجديد قصد تعديله في بريدك. - extra: إن لم تكن صاحب هذا الطلب ، يُرجى عدم إعارة الاهتمام لهذه الرسالة. فعنوان البريد الإلكتروني المتعلق بحساب ماستدون سوف يبقى هو مِن غير أي تعديل إلّا و فقط إن قمت بالنقر على الرابط أعلاه قصد تعديله. - subject: 'ماستدون: تأكيد كلمة السر الخاصة بـ %{instance}' + extra: إن لم تكن صاحب هذا الطلب، يُرجى عدم إعارة الاهتمام لهذه الرسالة. فعنوان البريد الإلكتروني المتعلق بحساب ماستدون سوف يبقى هو مِن غير أي تعديل إلّا و فقط إن قمت بالنقر على الرابط أعلاه قصد تعديله. + subject: 'ماستدون: تأكيد عنوان البريد الإلكتروني الخاص بـ %{instance}' title: التحقق من عنوان البريد الإلكتروني reset_password_instructions: action: تغيير كلمة السر diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml index f48c70e2d4..2f84b51fb1 100644 --- a/config/locales/devise.ast.yml +++ b/config/locales/devise.ast.yml @@ -15,10 +15,12 @@ ast: unconfirmed: Tienes de confirmar la direición de corréu electrónicu enantes de siguir. mailer: confirmation_instructions: + action: Verificar la direición de corréu electrónicu explanation: Creesti una cuenta en %{host} con esta direición de corréu electrónicu ya tas a un calcu d'activala. Si nun fixesti esta aición, inora esti mensaxe. explanation_when_pending: Solicitesti una invitación a %{host} con esta direición de corréu electrónicu. Namás que confirmes la direición de corréu electrónicu, vamos revisar la solicitú. Entrín ya non, pues aniciar la sesión pa camudar los detalles o desaniciar la cuenta, mas nun pues acceder a la mayoría de funciones hasta que la cuenta nun tea aprobada. Si se refuga la solicitú, nun ye necesario que faigas nada más o si, per otra parte, tu nun fixesti esta aición, inora esti mensaxe. - extra_html: Revisa tamién les regles del sirvidor ya los nuesos términos del serviciu. + extra_html: Revisa tamién les normes del sirvidor ya los nuesos términos del serviciu. subject: 'Mastodon: instrucciones de confirmación de «%{instance}»' + title: Verificación de la direición de corréu electrónicu email_changed: explanation: 'La direición de corréu electrónicu de la cuenta camudó a:' extra: Si nun camudesti la direición de corréu electrónicu, ye probable que daquién accediere a la cuenta. Camuda la contraseña agora mesmo o ponte en contautu cola alministración del sirvidor si nun yes a acceder a la cuenta. diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml index 5e1fc6bee9..6ae910da0b 100644 --- a/config/locales/devise.my.yml +++ b/config/locales/devise.my.yml @@ -1 +1,58 @@ +--- my: + devise: + confirmations: + confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။ + failure: + invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ + not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ + mailer: + confirmation_instructions: + action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ + action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ + title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ + email_changed: + subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ' + title: အီးမေးလ်လိပ်စာအသစ် + password_change: + subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ' + title: စကားဝှက်ပြောင်းလဲသွားပြီ + reconfirmation_instructions: + explanation: သင်၏အီးမေးလ်လိပ်စာပြောင်းရန် လိပ်စာအသစ်အတည်ပြုပါ။ + subject: 'Mastodon: %{instance} အတွက်အီးမေးလ်အတည်ပြုပါ' + title: အီးမေးလ်လိပ်စာစစ်ဆေးပါ + reset_password_instructions: + action: စကားဝှက်ပြောင်းမည် + subject: 'Mastodon: စကားဝှက်ညွှန်ကြားချက် ပြန်လည်သတ်မှတ်မည်' + title: စကားဝှက်ပြန်လည်သတ်မှတ်မည် + two_factor_disabled: + subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်' + title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည် + two_factor_enabled: + subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်' + title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည် + two_factor_recovery_codes_changed: + title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် ပြန်လည်ရယူသည့်ကုဒ်နံပါတ်များ ပြောင်းလဲခဲ့သည် + webauthn_credential: + added: + explanation: ဖော်ပြပါလုံခြုံရေးသော့ချက်အား သင့်အကောင့်ထဲသို့ထည့်ပြီးပါပြီ + subject: 'Mastodon: လုံခြုံရေးသော့ချက်အသစ်' + title: လုံခြုံရေးသော့ချက်အသစ် ထည့်လိုက်ပါပြီ + deleted: + explanation: ဖော်ပြပါလုံခြုံရေးသော့ချက်အား သင့်အကောင့်ထဲမှဖျက်လိုက်ပါပြီ + subject: 'Mastodon: လုံခြုံရေးသော့ချက် ဖျက်လိုက်ပါပြီ' + title: လုံခြုံရေးသော့ချက်များထဲမှတစ်ခု ဖျက်လိုက်ပါပြီ + webauthn_disabled: + title: လုံခြုံရေးသော့ချက်များ ပိတ်ပြီးပါပြီ + webauthn_enabled: + title: လုံခြုံရေးသော့ချက်များ ဖွင့်ပြီးပါပြီ + registrations: + updated: သင့်အကောင့်အားအောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။ + sessions: + already_signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။ + signed_in: အောင်မြင်စွာအကောင့်ဝင်ပြီးပါပြီ။ + signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။ + errors: + messages: + expired: သည် သက်တမ်းကျော်လွန်သွားပြီ။ ကျေးဇူးပြု၍အသစ်တစ်ခု တောင်းဆိုပါ + not_found: ရှာမတွေ့ပါ diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index e500e1d9e8..e3f5dee2a9 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -49,15 +49,15 @@ zh-TW: two_factor_disabled: explanation: 您帳號的兩階段驗證已停用。現在只使用電子郵件及密碼登入。 subject: Mastodon:已停用兩階段驗證 - title: 已停用 2FA + title: 已停用兩階段驗證 two_factor_enabled: explanation: 已對您的帳號啟用兩階段驗證。登入時將需要已配對的 TOTP 應用程式所產生之 Token。 subject: Mastodon:已啟用兩階段驗證 - title: 已啟用 2FA + title: 已啟用兩階段驗證 two_factor_recovery_codes_changed: explanation: 之前的備用驗證碼已經失效,且已產生新的。 subject: Mastodon:兩階段驗證備用驗證碼已經重新產生 - title: 2FA 備用驗證碼已變更 + title: 兩階段驗證備用驗證碼已變更 unlock_instructions: subject: Mastodon:解鎖指引 webauthn_credential: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 861a63eb4d..b10f5dbeb3 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -122,6 +122,7 @@ ar: admin/accounts: إدارة الحسابات admin/all: جميع المهام الإدارية admin/reports: إدارة التقارير + all: وصول كامل إلى حساب ماستدون الخاص بك blocks: تم حجبها bookmarks: الفواصل المرجعية conversations: المحادثات diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index 695f9e4b04..628de6524a 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -23,6 +23,7 @@ ast: name: Nome new: Aplicación nueva scopes: Ámbitos + title: Les tos aplicaciones new: title: Aplicación nueva show: @@ -66,11 +67,22 @@ ast: write: Accesu de namás escritura title: accounts: Cuentes + admin/accounts: Alministración de cuentes admin/all: Toles funciones alministratives + admin/reports: Alministración d'informes + all: Accesu completu a la cuenta de Mastodon + bookmarks: Marcadores conversations: Conversaciones crypto: Cifráu de puntu a puntu + favourites: Favoritos filters: Peñeres + lists: Llistes + media: Elementos multimedia + mutes: Perfiles colos avisos desativaos notifications: Avisos + reports: Informes + search: Busca + statuses: Artículos layouts: admin: nav: @@ -97,6 +109,8 @@ ast: write: modifica los datos de les cuentes write:accounts: modifica los perfiles write:blocks: bloquia cuentes ya dominios + write:bookmarks: meter artículos en Marcadores + write:conversations: desaniciar ya desactivar los avisos de conversaciones write:favourites: artículos favoritos write:filters: crea peñeres write:follows: sigue a perfiles diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml index f3da378cf3..21a94acecc 100644 --- a/config/locales/doorkeeper.cy.yml +++ b/config/locales/doorkeeper.cy.yml @@ -124,7 +124,7 @@ cy: admin/reports: Gweinyddu adroddiadau all: Mynediad llawn i'ch cyfrif Mastodon blocks: Blociau - bookmarks: Nodau Tudalen + bookmarks: Llyfrnodau conversations: Sgyrsiau crypto: Amgryptio o ben i ben favourites: Ffefrynnau @@ -169,7 +169,7 @@ cy: read: darllen holl ddata eich cyfrif read:accounts: gweld gwybodaeth y cyfrif read:blocks: gweld eich blociau - read:bookmarks: gweld eich nodau tudalen + read:bookmarks: gweld eich llyfrnodau read:favourites: gweld eich ffefrynnau read:filters: gweld eich hidlwyr read:follows: gweld eich dilynwyr @@ -182,7 +182,7 @@ cy: write: addasu holl ddata eich cyfrif write:accounts: addasu eich proffil write:blocks: blocio cyfrifon a parthau - write:bookmarks: gosod nod tudalen postiadau + write:bookmarks: llyfrnodi postiadau write:conversations: anwybyddu a dileu sgyrsiau write:favourites: hoff bostiadau write:filters: creu hidlwyr diff --git a/config/locales/doorkeeper.el.yml b/config/locales/doorkeeper.el.yml index 8084bb5b3c..abb6ccd687 100644 --- a/config/locales/doorkeeper.el.yml +++ b/config/locales/doorkeeper.el.yml @@ -60,6 +60,8 @@ el: error: title: Εμφανίστηκε σφάλμα new: + prompt_html: Ο/Η %{client_name} θα ήθελε άδεια πρόσβασης στο λογαριασμό σας. Είναι μια εφαρμογή από τρίτους. Αν δεν το εμπιστεύεστε, τότε δεν πρέπει να το εξουσιοδοτήσετε. + review_permissions: Αναθεώρηση δικαιωμάτων title: Απαιτείται έγκριση show: title: Αντέγραψε αυτό τον κωδικό έγκρισης στην εφαρμογή. @@ -69,8 +71,12 @@ el: confirmations: revoke: Σίγουρα; index: + authorized_at: Εξουσιοδοτήθηκε στις %{date} + description_html: Αυτές είναι εφαρμογές που μπορούν να έχουν πρόσβαση στο λογαριασμό σας χρησιμοποιώντας το API. Αν υπάρχουν εφαρμογές που δεν αναγνωρίζετε εδώ ή μια εφαρμογή δεν συμπεριφέρεται σωστά, μπορείτε να ανακαλέσετε την πρόσβασή της. + last_used_at: Τελευταία χρήση στις %{date} never_used: Ποτέ σε χρήση scopes: Δικαιώματα + superapp: Εσωτερική title: Οι εφαρμογές που έχεις εγκρίνει errors: messages: @@ -117,11 +123,14 @@ el: admin/all: Όλες οι λειτουργίες διαχείρησης admin/reports: Διαχείριση αναφορών all: Πλήρης πρόσβαση στο λογαριασμό σας στο Mastodon + blocks: Αποκλεισμοί bookmarks: Σελιδοδείκτες conversations: Συνομιλίες crypto: Κρυπτογράφηση από άκρο σε άκρο favourites: Αγαπημένα filters: Φίλτρα + follow: Ακολουθείτε, σε Σίγαση και Αποκλεισμοί + follows: Ακολουθείτε lists: Λίστες media: Συνημμένα πολυμέσα mutes: Αποσιωπήσεις @@ -140,9 +149,19 @@ el: scopes: admin:read: ανάγνωση δεδομένων στον διακομιστή admin:read:accounts: ανάγνωση ευαίσθητων πληροφοριών όλων των λογαριασμών + admin:read:canonical_email_blocks: ανάγνωση ευαίσθητων πληροφοριών όλων των αποκλεισμένων email + admin:read:domain_allows: ανάγνωση ευαίσθητων πληροφοριών όλων των επιτρεπόμενων τομέων + admin:read:domain_blocks: ανάγνωση ευαίσθητων πληροφοριών όλων των αποκλεισμένων τομέων + admin:read:email_domain_blocks: ανάγνωση ευαίσθητων πληροφοριών όλων των αποκλεισμένων τομέων email + admin:read:ip_blocks: ανάγνωση ευαίσθητων πληροφοριών όλων των αποκλεισμένων IP admin:read:reports: ανάγνωση ευαίσθητων πληροφοριών όλων των καταγγελιών και των καταγγελλομένων λογαριασμών admin:write: αλλαγή δεδομένων στον διακομιστή admin:write:accounts: εκτέλεση διαχειριστικών ενεργειών σε λογαριασμούς + admin:write:canonical_email_blocks: εκτέλεση ενεργειών διαχείρισης σε αποκλεισμένα email + admin:write:domain_allows: εκτέλεση ενεργειών διαχείρισης σε επιτρεπτούς τομείς + admin:write:domain_blocks: εκτέλεση ενεργειών διαχείρισης σε αποκλεισμένους τομείς + admin:write:email_domain_blocks: εκτελέστε ενέργειες διαχείρισης σε αποκλεισμένους τομείς email + admin:write:ip_blocks: εκτέλεση ενεργειών διαχείρισης σε αποκλεισμένες IP admin:write:reports: εκτέλεση διαχειριστικών ενεργειών σε καταγγελίες crypto: χρήση κρυπτογράφησης από άκρο σε άκρο follow: να αλλάζει τις σχέσεις με λογαριασμούς diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index 84621d3009..f025a0c555 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -122,12 +122,14 @@ gd: admin/accounts: Rianachd nan cunntas admin/all: Gach gleus na rianachd admin/reports: Rianachd nan gearan + all: Làn-inntrigeadh dhan chunntas Mastodon agad blocks: Bacaidhean bookmarks: Comharran-lìn conversations: Còmhraidhean crypto: Crioptachadh o cheann gu ceann favourites: Annsachdan filters: Criathragan + follow: Leantainn, mùchaidhean is bacaidhean follows: Leantainn lists: Liostaichean media: Ceanglachain mheadhanan @@ -147,9 +149,19 @@ gd: scopes: admin:read: dàta sam bith a leughadh air an fhrithealaiche admin:read:accounts: fiosrachadh dìomhair air a h-uile cunntas a leughadh + admin:read:canonical_email_blocks: fiosrachadh dìomhair air a h-uile bacadh puist-d gnàthach a leughadh + admin:read:domain_allows: fiosrachadh dìomhair air a h-uile cead àrainne a leughadh + admin:read:domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainne a leughadh + admin:read:email_domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainn puist-d a leughadh + admin:read:ip_blocks: fiosrachadh dìomhair air a h-uile bacadh IP a leughadh admin:read:reports: fiosrachadh dìomhair air a h-uile gearan is cunntasan a chaidh a ghearan mun dèidhinn a leughadh admin:write: dàta sam bith atharrachadh air an fhrithealaiche admin:write:accounts: gnìomhan na maorsainneachd a ghabhail air cunntasan + admin:write:canonical_email_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean puist-d gnàthach + admin:write:domain_allows: gnìomhan na maorsainneachd a ghabhail air ceadan àrainn + admin:write:domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainne + admin:write:email_domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainn puist-d + admin:write:ip_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean IP admin:write:reports: gnìomhan na maorsainneachd a ghabhail air gearanan crypto: crioptachadh o cheann gu ceann a chleachdadh follow: dàimhean chunntasan atharrachadh diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml index 5e1fc6bee9..b7697074cb 100644 --- a/config/locales/doorkeeper.my.yml +++ b/config/locales/doorkeeper.my.yml @@ -1 +1,24 @@ +--- my: + activerecord: + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။ + secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။ + doorkeeper: + applications: + buttons: + cancel: ပယ်ဖျက်မည် + destroy: ဖျက်ဆီးမည် + edit: ပြင်မည် + submit: တင်သွင်းမည် + confirmations: + destroy: သေချာပါသလား? + help: + redirect_uri: URI တစ်ခုစီအတွက် လိုင်းတစ်ကြောင်းသုံးပါ + index: + delete: ဖျက်မည် + name: အမည် diff --git a/config/locales/el.yml b/config/locales/el.yml index d3ef048a98..903fcb8e19 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -12,6 +12,7 @@ el: one: Ακόλουθος other: Ακόλουθοι following: Ακολουθεί + instance_actor_flash: Αυτός ο λογαριασμός είναι εικονικός και χρησιμοποιείται για να αντιπροσωπεύει τον ίδιο τον εξυπηρετητή και όχι κάποιον μεμονωμένο χρήστη. Χρησιμοποιείται για ομοσπονδιακούς σκοπούς και δεν πρέπει να ανασταλεί. last_active: τελευταία ενεργός/ή link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date} nothing_here: Δεν υπάρχει τίποτα εδώ! @@ -37,23 +38,27 @@ el: avatar: Αβατάρ by_domain: Τομέας change_email: + changed_msg: Το email άλλαξε επιτυχώς! current_email: Τρέχον email label: Αλλαγή email new_email: Νέο email submit: Αλλαγή email title: Αλλαγή email για %{username} change_role: + changed_msg: Ο ρόλος άλλαξε επιτυχώς! label: Αλλαγή ρόλου no_role: Κανένας ρόλος title: Αλλαγή ρόλου για %{username} confirm: Επιβεβαίωση confirmed: Επιβεβαιώθηκε confirming: Προς επιβεβαίωση + custom: Προσαρμοσμένο delete: Διαγραφή δεδομένων deleted: Διαγραμμένοι demote: Υποβίβαση destroyed_msg: Τα δεδομένα του/της %{username} εκκρεμούν για άμεση διαγραφή disable: Απενεργοποίηση + disable_sign_in_token_auth: Απενεργοποίηση επαλήθευσης μέσω email disable_two_factor_authentication: Απενεργοποίηση 2FA disabled: Απενεργοποιημένο display_name: Όνομα εμφάνισης @@ -62,6 +67,7 @@ el: email: Email email_status: Κατάσταση email enable: Ενεργοποίηση + enable_sign_in_token_auth: Ενεργοποίηση ελέγχου ταυτότητας μέσω e-mail enabled: Ενεργοποιημένο enabled_msg: Επιτυχές ξεπάγωμα λογαριασμού του/της %{username} followers: Ακόλουθοι @@ -98,6 +104,10 @@ el: not_subscribed: Άνευ συνδρομής pending: Εκκρεμεί έγκριση perform_full_suspension: Αναστολή + previous_strikes: Προηγούμενα παραπτώματα + previous_strikes_description_html: + one: Αυτός ο λογαριασμός έχει ένα παράπτωμα. + other: Αυτός ο λογαριασμός έχει %{count} παραπτώματα. promote: Προβίβασε protocol: Πρωτόκολλο public: Δημόσιο @@ -123,6 +133,9 @@ el: search: Αναζήτηση search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP + security_measures: + only_password: Μόνο κωδικός πρόσβασης + password_and_2fa: Κωδικός πρόσβασης και 2FA sensitive: Ευαίσθητο sensitized: σήμανση ως ευαίσθητο shared_inbox_url: URL κοινόχρηστων εισερχομένων @@ -132,6 +145,7 @@ el: silence: Αποσιώπησε silenced: Αποσιωπημένοι statuses: Καταστάσεις + strikes: Προηγούμενα παραπτώματα subscribe: Εγγραφή suspend: Αναστολή suspended: Σε αναστολή @@ -162,14 +176,17 @@ el: confirm_user: Επιβεβαίωση Χρήστη create_account_warning: Δημιουργία Προειδοποίησης create_announcement: Δημιουργία Ανακοίνωσης + create_canonical_email_block: Δημιουργία αποκλεισμού e-mail create_custom_emoji: Δημιουργία Προσαρμοσμένου Emoji create_domain_allow: Δημιουργία Επιτρεπτού Τομέα create_domain_block: Δημιουργία Αποκλεισμένου Τομέα create_email_domain_block: Δημουργία Αποκλεισμένου Τομέα email create_ip_block: Δημιουργία κανόνα IP + create_unavailable_domain: Δημιουργία Μη Διαθέσιμου Τομέα create_user_role: Δημιουργία ρόλου demote_user: Υποβιβασμός Χρήστη destroy_announcement: Διαγραφή Ανακοίνωσης + destroy_canonical_email_block: Διαγραφή Αποκλεισμού email destroy_custom_emoji: Διαγραφή Προσαρμοσμένου Emoji destroy_domain_allow: Διαγραφή Επιτρεπτού Τομέα destroy_domain_block: Διαγραφή Αποκλεισμού Τομέα @@ -177,10 +194,14 @@ el: destroy_instance: Εκκαθάριση Τομέα destroy_ip_block: Διαγραφή κανόνα IP destroy_status: Διαγραφή Κατάστασης + destroy_unavailable_domain: Διαγραφή Μη Διαθέσιμου Τομέα + destroy_user_role: Καταστροφή Ρόλου disable_2fa_user: Απενεργοποίηση 2FA disable_custom_emoji: Απενεργοποίηση Προσαρμοσμένων Emoji + disable_sign_in_token_auth_user: Απενεργοποίηση Ελέγχου Ταυτότητας Μέσω E-mail για το Χρήστη disable_user: Απενεργοποίηση Χρήστη enable_custom_emoji: Ενεργοποίηση Προσαρμοσμένων Emoji + enable_sign_in_token_auth_user: Ενεργοποίηση Ελέγχου Ταυτότητας Μέσω E-mail για το Χρήστη enable_user: Ενεργοποίηση Χρήστη memorialize_account: Μετατροπή Λογαριασμού σε Αναμνηστικό promote_user: Προαγωγή Χρήστη @@ -201,10 +222,21 @@ el: unsuspend_account: Άρση Αναστολής Λογαριασμού update_announcement: Ενημέρωση Ανακοίνωσης update_custom_emoji: Ενημέρωση Προσαρμοσμένου Emoji + update_domain_block: Ενημέρωση Αποκλεισμού Τομέα + update_ip_block: Ενημέρωση κανόνα IP update_status: Ενημέρωση Κατάστασης 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} άλλαξε τη διεύθυνση email του χρήστη %{target} + change_role_user_html: Ο/Η %{name} άλλαξε ρόλο του/της %{target} + confirm_user_html: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target} + create_account_warning_html: Ο/Η %{name} έστειλε προειδοποίηση προς %{target} + create_announcement_html: Ο/Η %{name} δημιούργησε νέα ανακοίνωση %{target} + create_canonical_email_block_html: Ο/Η %{name} απέκλεισε e-mail με το hash %{target} + create_custom_emoji_html: Ο/Η %{name} ανέβασε νέο emoji %{target} destroy_email_domain_block_html: Ο/Η %{name} ξεμπλόκαρε το email domain %{target} destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target} destroy_ip_block_html: Ο/Η %{name} διέγραψε τον κανόνα για την IP %{target} diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 17fea72274..e624bb27ef 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -226,6 +226,28 @@ en-GB: update_ip_block: Update IP rule update_status: Update Post update_user_role: Update Role + actions: + approve_appeal_html: "%{name} approved moderation decision appeal from %{target}" + approve_user_html: "%{name} approved sign-up from %{target}" + assigned_to_self_report_html: "%{name} assigned report %{target} to themselves" + change_email_user_html: "%{name} changed the e-mail address of user %{target}" + change_role_user_html: "%{name} changed role of %{target}" + confirm_user_html: "%{name} confirmed e-mail address of user %{target}" + create_account_warning_html: "%{name} sent a warning to %{target}" + create_announcement_html: "%{name} created new announcement %{target}" + create_canonical_email_block_html: "%{name} blocked e-mail with the hash %{target}" + create_custom_emoji_html: "%{name} uploaded new emoji %{target}" + create_domain_allow_html: "%{name} allowed federation with domain %{target}" + create_domain_block_html: "%{name} blocked domain %{target}" + create_email_domain_block_html: "%{name} blocked e-mail domain %{target}" + create_ip_block_html: "%{name} created rule for IP %{target}" + create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}" + create_user_role_html: "%{name} created %{target} role" + demote_user_html: "%{name} demoted user %{target}" + destroy_announcement_html: "%{name} deleted announcement %{target}" + destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}" + destroy_custom_emoji_html: "%{name} deleted emoji %{target}" + destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}" roles: categories: devops: DevOps @@ -256,7 +278,20 @@ en-GB: explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing. subject: Your appeal from %{date} has been approved warning: + explanation: + disable: You can no longer use your account, but your profile and other data remains intact. You can request a backup of your data, change account settings or delete your account. + mark_statuses_as_sensitive: Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future. + sensitive: From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning. + silence: You can still use your account but only people who are already following you will see your posts on this server, and you may be excluded from various discovery features. However, others may still manually follow you. + suspend: You can no longer use your account, and your profile and other data are no longer accessible. You can still login to request a backup of your data until the data is fully removed in about 30 days, but we will retain some basic data to prevent you from evading the suspension. + reason: 'Reason:' + statuses: 'Posts cited:' subject: + delete_statuses: Your posts on %{acct} have been removed + disable: Your account %{acct} has been frozen + mark_statuses_as_sensitive: Your posts on %{acct} have been marked as sensitive + none: Warning for %{acct} + sensitive: Your posts on %{acct} will be marked as sensitive from now on silence: Your account %{acct} has been limited suspend: Your account %{acct} has been suspended title: @@ -283,7 +318,14 @@ en-GB: otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' + verification: + explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' + verification: Verification webauthn_credentials: + add: Add new security key + create: + error: There was a problem adding your security key. Please try again. + success: Your security key was successfully added. delete: Delete delete_confirmation: Are you sure you want to delete this security key? description_html: If you enable security key authentication, logging in will require you to use one of your security keys. diff --git a/config/locales/fi.yml b/config/locales/fi.yml index cbff5c237a..99011f819a 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -420,7 +420,7 @@ fi: delete: Poista dns: types: - mx: MX tietue + mx: MX-tietue domain: Verkkotunnus new: create: Lisää verkkotunnus @@ -785,7 +785,7 @@ fi: actions: delete_statuses: "%{name} poisti käyttäjän %{target} viestit" disable: "%{name} jäädytti %{target} tilin" - mark_statuses_as_sensitive: "%{name} merkitsi %{target} viestiä arkaluonteiseksi" + mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} viestit arkaluonteisiksi" none: "%{name} lähetti varoituksen henkilölle %{target}" sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi" silence: "%{name} rajoitti käyttäjän %{target} tilin" @@ -876,12 +876,12 @@ fi: add_new: Lisää uusi delete: Poista edit_preset: Muokkaa varoituksen esiasetusta - empty: Et ole vielä määrittänyt yhtään varoitusesiasetusta. - title: Hallinnoi varoitusesiasetuksia + empty: Et ole vielä määrittänyt yhtäkään varoitusten esiasetusta. + title: Hallinnoi varoitusten esiasetuksia webhooks: add_new: Lisää päätepiste delete: Poista - description_html: A webhook mahdollistaa Mastodonin työntää reaaliaikaisia ilmoituksia valituista tapahtumista omaan sovellukseesi, joten sovelluksesi voi laukaista automaattisesti reaktioita. + description_html: "Webhook mahdollistaa Mastodonin työntää reaaliaikaisia ilmoituksia valituista tapahtumista omaan sovellukseesi, joten sovelluksesi voi laukaista automaattisesti reaktioita." disable: Poista käytöstä disabled: Ei käytössä edit: Muokkaa päätepistettä @@ -976,7 +976,7 @@ fi: didnt_get_confirmation: Etkö saanut vahvistusohjeita? dont_have_your_security_key: Eikö sinulla ole suojausavainta? forgot_password: Unohditko salasanasi? - invalid_reset_password_token: Salasananpalautustunnus on virheellinen tai vanhentunut. Pyydä uusi. + invalid_reset_password_token: Salasanan palautustunnus on virheellinen tai vanhentunut. Pyydä uusi. link_to_otp: Syötä puhelimesi kaksivaiheinen koodi tai palautuskoodi link_to_webauth: Käytä suojausavaintasi log_in_with: Kirjaudu käyttäen @@ -1036,7 +1036,7 @@ fi: prompt: Vahvista salasanasi jatkaaksesi crypto: errors: - invalid_key: ei ole kelvollinen Ed25519- tai Curve25519 -avain + invalid_key: ei ole kelvollinen Ed25519- tai Curve25519-avain invalid_signature: ei ole kelvollinen Ed25519-allekirjoitus date: formats: @@ -1044,16 +1044,16 @@ fi: with_month_name: "%B %d, %Y" datetime: distance_in_words: - about_x_hours: "%{count} h" + about_x_hours: "%{count} t" about_x_months: "%{count} kk" about_x_years: "%{count} v" almost_x_years: "%{count} v" half_a_minute: Nyt - less_than_x_minutes: "%{count} m" + less_than_x_minutes: "%{count} min" less_than_x_seconds: Nyt over_x_years: "%{count} v" x_days: "%{count} pv" - x_minutes: "%{count} m" + x_minutes: "%{count} min" x_months: "%{count} kk" x_seconds: "%{count} s" deletes: @@ -1127,14 +1127,14 @@ fi: archive_takeout: date: Päiväys download: Lataa arkisto - hint_html: Voit pyytää arkistoa omista tuuttauksistasi ja mediastasi. Vientitiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. + hint_html: Voit pyytää arkistoa omista viesteistä ja mediasta. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa viikon välein. in_progress: Arkistoa kootaan... request: Pyydä arkisto size: Koko blocks: Estot bookmarks: Kirjanmerkit csv: CSV - domain_blocks: Verkkotunnus estetty + domain_blocks: Verkkotunnusten estot lists: Listat mutes: Mykistetyt storage: Media-arkisto @@ -1153,11 +1153,11 @@ fi: edit: add_keyword: Lisää avainsana keywords: Avainsanat - statuses: Yksittäiset postaukset - statuses_hint_html: Tämä suodatin koskee yksittäisten postausten valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. Tarkista tai poista viestit suodattimesta. + statuses: Yksittäiset viestit + statuses_hint_html: Tämä suodatin koskee yksittäisten viestien valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. Tarkista tai poista viestit suodattimesta. title: Muokkaa suodatinta errors: - deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai web-käyttöliittymää. + deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai selainkäyttöliittymää. invalid_context: Ei sisältöä tai se on virheellinen index: contexts: Suodattimet %{contexts} @@ -1193,7 +1193,7 @@ fi: one: "%{count} kohde tällä sivulla on valittu." other: Kaikki %{count} kohdetta tällä sivulla on valittu. all_matching_items_selected_html: - one: "%{count} tuotetta, joka vastaa hakuasi." + one: "%{count} kohde, joka vastaa hakuasi." other: Kaikki %{count} kohdetta, jotka vastaavat hakuasi. changes_saved_msg: Muutosten tallennus onnistui! copy: Kopioi @@ -1203,7 +1203,7 @@ fi: order_by: Järjestä save_changes: Tallenna muutokset select_all_matching_items: - one: Valitse %{count} kohdetta, joka vastaa hakuasi. + one: Valitse %{count} kohde, joka vastaa hakuasi. other: Valitse kaikki %{count} kohdetta, jotka vastaavat hakuasi. today: tänään validation_errors: @@ -1314,7 +1314,7 @@ fi: report: subject: "%{name} lähetti raportin" sign_up: - subject: "%{name} kirjautunut" + subject: "%{name} rekisteröityi" favourite: body: "%{name} tykkäsi tilastasi:" subject: "%{name} tykkäsi tilastasi" @@ -1384,7 +1384,7 @@ fi: too_many_options: ei voi sisältää enempää kuin %{max} kohdetta preferences: other: Muut - posting_defaults: Julkaisujen oletusasetukset + posting_defaults: Viestien oletusasetukset public_timelines: Julkiset aikajanat privacy_policy: title: Tietosuojakäytäntö @@ -1418,7 +1418,7 @@ fi: errors: invalid_rules: ei viittaa voimassa oleviin sääntöihin rss: - content_warning: 'Sisällön varoitus:' + content_warning: 'Sisältövaroitus:' descriptions: account: Julkiset viestit lähettäjältä @%{acct} tag: 'Julkiset viestit merkitty #%{hashtag}' @@ -1481,7 +1481,7 @@ fi: export: Vie tietoja featured_tags: Esitellyt aihetunnisteet import: Tuo - import_and_export: Tuo / Vie + import_and_export: Tuo ja vie migrate: Tilin muutto muualle notifications: Ilmoitukset preferences: Ominaisuudet @@ -1516,8 +1516,8 @@ fi: over_character_limit: merkkimäärän rajoitus %{max} ylitetty pin_errors: direct: Viestejä, jotka ovat näkyvissä vain mainituille käyttäjille, ei voi kiinnittää - limit: Olet jo kiinnittänyt suurimman mahdollisen määrän tuuttauksia - ownership: Muiden tuuttauksia ei voi kiinnittää + limit: Olet jo kiinnittänyt suurimman mahdollisen määrän viestejä + ownership: Muiden viestejä ei voi kiinnittää reblog: Tehostusta ei voi kiinnittää poll: total_people: @@ -1663,7 +1663,7 @@ fi: suspend: Tilin käyttäminen jäädytetty welcome: edit_profile_action: Aseta profiili - 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. + 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 aihetunnisteilla. Kannattaa myös esittäytyä! Käytä aihetunnistetta #esittely.' @@ -1676,7 +1676,7 @@ fi: invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyttä osoitteeseen %{email} seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. - signed_in_as: 'Kirjautunut henkilönä:' + signed_in_as: 'Kirjautunut tilillä:' verification: explanation_html: 'Voit vahvistaa olevasi profiilisi metatiedoissa olevien linkkien omistaja.. Tätä varten linkitetyn verkkosivuston täytyy sisältää linkki takaisin Mastodon-profiiliisi. Palauttavalla linkillä täytyy olla rel="me"-arvo. Linkin tekstisisällöllä ei ole merkitystä. Tässä on esimerkki:' verification: Vahvistus diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 147ee63517..1091c52e16 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -122,6 +122,8 @@ gd: redownloaded_msg: Chaidh a’ phròifil aig %{username} on tùs reject: Diùlt rejected_msg: Chaidh an t-iarrtas clàraidh aig %{username} a dhiùltadh + remote_suspension_irreversible: Chaidh dàta a’ chunntais seo a sguabadh às gu buan. + remote_suspension_reversible_hint_html: Chaidh an cunntas a chur à rèim air an fhrithealaiche aca agus thèid an dàta aige a sguabadh às gu buan %{date}. Gus an dig an t-àm ud, ’s urrainn dhan fhrithealaiche chèin an cunntas aiseag fhathast gun droch bhuaidh sam bith air. Nam bu toigh leat gach dàta a’ chunntais a thoirt air falbh sa bhad, ’s urrainn dhut sin a dhèanamh gu h-ìosal. remove_avatar: Thoir air falbh an t-avatar remove_header: Thoir air falbh am bann-cinn removed_avatar_msg: Chaidh dealbh an avatar aig %{username} a thoirt air falbh @@ -404,6 +406,7 @@ gd: create: Cruthaich bacadh hint: Cha chuir bacadh na h-àrainne crìoch air cruthachadh chunntasan san stòr-dàta ach cuiridh e dòighean maorsainneachd sònraichte an sàs gu fèin-obrachail air a h-uile dàta a tha aig na cunntasan ud. severity: + desc_html: Falaichidh an cuingeachadh postaichean o chunntasan na h-àrainne seo do dhuine sam bith nach ail a’ leantainn orra. Bheir an cur à rèim air falbh gach susbaint, meadhan is dàta pròifil aig cunntasan na h-àrainne seo on fhrithealaiche agad. Tagh Chan eil gin mur eil thu ach airson faidhlichean meadhain a dhiùltadh. noop: Chan eil gin silence: Cuingich suspend: Cuir à rèim @@ -449,9 +452,12 @@ gd: no_file: Cha deach faidhle a thaghadh export_domain_blocks: import: + description_html: Tha thu an impis bacaidhean àrainne ion-phortadh. Dèan lèirmheas glè chùramach air an liosta seo, gu h-àraidh mur an do chruinnich thu fhèin an liosta seo. existing_relationships_warning: Dàimhean leantainn làithreach + private_comment_description_html: 'Airson do chuideachadh ach an tracaich thu cò às a thàinig bacaidhean a chaidh ion-phortadh, thèid am beachd prìobhaideach seo a chur ris na bacaidhean air an ion-phortadh: %{comment}' private_comment_template: Chaidh ion-phortadh o %{source} %{date} title: Ion-phortaich bacaidhean àrainne + invalid_domain_block: 'Chaidh leum a ghearradh thar bacadh àrainne no dhà ri linn mearachd: %{error}' new: title: Ion-phortaich bacaidhean àrainne no_file: Cha deach faidhle a thaghadh @@ -594,7 +600,10 @@ gd: mark_as_sensitive_description_html: Thèid comharra an fhrionasachd a chur ris na meadhanan sna postaichean le gearan orra agus rabhadh a chlàradh gus do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on aon chunntas sam àm ri teachd. other_description_html: Seall barrachd roghainnean airson giùlan a’ chunntais a stiùireadh agus an conaltradh leis a’ chunntas a chaidh gearan a dhèanamh mu dhèidhinn a ghnàthachadh. resolve_description_html: Cha dèid gnìomh sam bith a ghabhail an aghaidh a’ chunntais le gearan air agus thèid an gearan a dhùnadh gun rabhadh a chlàradh. + silence_description_html: Chan fhaic ach an fheadhainn a tha ’ga leantainn mu thràth no a lorgas a làimh e an cunntas seo agus cuingichidh seo uiread nan daoine a ruigeas e gu mòr. Gabhaidh seo a neo-dhèanamh uair sam bith. Dùinidh seo gach gearan mun chunntas seo. + suspend_description_html: Cha ghabh an cunntas seo agus an t-susbaint gu leòr aige inntrigeadh gus an dèid a sguabadh às air deireadh na sgeòil agus cha ghabh eadar-ghabhail a dhèanamh leis. Gabhaidh seo a neo-dhèanamh am broinn 30 latha. Dùinidh seo gach gearan mun chunntas seo. actions_description_html: Socraich dè a nì thu airson an gearan seo fhuasgladh. Ma chuireas tu peanas air a’ chunntas le gearan air, gheibh iad brath air a’ phost-d mura tagh thu an roinn-seòrsa Spama. + actions_description_remote_html: Cuir romhad dè an gnìomh a ghabhas tu airson an gearan seo fhuasgladh. Cha bheir seo buaidh ach air mar a làimhsicheas am frithealaiche agadsa an cunntas cèin seo is mar a nì e conaltradh leis. add_to_report: Cuir barrachd ris a’ ghearan are_you_sure: A bheil thu cinnteach? assign_to_self: Iomruin dhomh-sa @@ -605,6 +614,7 @@ gd: comment: none: Chan eil gin comment_description_html: 'Airson barrachd fiosrachaidh a sholar, sgrìobh %{name}:' + confirm_action: Dearbh gnìomh na maorsainneachd an aghaidh @%{acct} created_at: Chaidh an gearan a dhèanamh delete_and_resolve: Sguab às na postaichean forwarded: Chaidh a shìneadh air adhart @@ -621,6 +631,7 @@ gd: placeholder: Mìnich dè na ghnìomhan a chaidh a ghabhail no naidheachd sam bith eile mu dhèidhinn… title: Nòtaichean notes_description_html: Seall is sgrìobh nòtaichean do mhaoir eile is dhut fhèin san àm ri teachd + processed_msg: 'Chaidh gearan #%{id} a phròiseasadh' quick_actions_description_html: 'Gabh gnìomh luath no sgrolaich sìos a dh’fhaicinn susbaint a’ ghearain:' remote_user_placeholder: cleachdaiche cèin o %{instance} reopen: Fosgail an gearan a-rithist @@ -633,9 +644,28 @@ gd: status: Staid statuses: Susbaint le gearan statuses_description_html: Thèid iomradh a thoirt air an t-susbaint oilbheumach sa chonaltradh leis a’ chunntas mun a chaidh an gearan a thogail + summary: + action_preambles: + delete_html: 'Tha thu an impis cuid de na postaichean aig @%{acct} a thoirt air falbh. Seo na thachras:' + mark_as_sensitive_html: 'Tha thu an impis comharra a chur gu bheil cuid de na postaichean aig @%{acct} frionasach. Seo na thachras:' + silence_html: 'Tha thu an impis an cunntas aig @%{acct} a chuingeachadh. Seo na thachras:' + suspend_html: 'Tha thu an impis an cunntas aig @%{acct} a chur à rèim. Seo na thachras:' + actions: + delete_html: Thoir air falbh na postaichean oilbheumach + mark_as_sensitive_html: Cuir comharra gu bheil meadhanan nam postaichean oilbheumach frionasach + silence_html: Thèid cò ruigeas @%{acct} a chuingeachadh gu mòr air sgàth ’s nach fhaic ach an fheadhainn a bheil ’ga leantainn mu thràth no a tha a’ lorg na pròifil aca a làimh a’ phròifil is an t-susbaint aca. + suspend_html: Thèid @%{acct} a chur à rèim agus cha ghabh a’ phròifil is an t-susbaint aca a ruigsinn no eadar-ghabhail + close_report: 'Cuir comharra gun deach gearan #%{id} fhuasgladh' + close_reports_html: Cuir comharra gun deach gach gearan an aghaidh @%{acct} fhuasgladh + delete_data_html: Sguab às a’ phròifil ’s an t-susbaint aig @%{acct} an ceann 30 latha mura dèid an cur an gnìomh a-rithist roimhe sin + preview_preamble_html: 'Gheibh @%{acct} rabhadh leis an t-susbaint seo:' + record_strike_html: Clàraich rabhadh an aghaidh @%{acct} airson do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on chunntas seo san àm ri teachd + send_email_html: Cuir post-d rabhaidh gu @%{acct} + warning_placeholder: Adhbharan roghainneil eile air gnìomh na maorsainneachd target_origin: Tùs cunntas a’ ghearain title: Gearanan unassign: Dì-iomruin + unknown_action_msg: 'Gnìomh nach aithne dhuinn: %{action}' unresolved: Gun fhuasgladh updated_at: Air ùrachadh view_profile: Seall a’ phròifil @@ -726,11 +756,16 @@ gd: content_retention: preamble: Stiùirich mar a tha susbaint an luchd-cleachdaidh ’ga stòradh ann am Mastodon. title: Glèidheadh na susbaint + default_noindex: + desc_html: Bidh buaidh air a h-uile cleachdaiche nach do dh’atharraich an roghainn seo dhaibh fhèin + title: Thoir air falbh ro-aonta nan cleachdaichean air inneacsadh le einnseanan-luirg mar a’ bhun-roghainn discovery: follow_recommendations: Molaidhean leantainn preamble: Tha tighinn an uachdar susbainte inntinniche fìor-chudromach airson toiseach-tòiseachaidh an luchd-cleachdaidh ùr nach eil eòlach air duine sam bith air Mastodon, ma dh’fhaoidte. Stiùirich mar a dh’obraicheas gleusan an rannsachaidh air an fhrithealaiche agad. profile_directory: Eòlaire nam pròifil public_timelines: Loidhnichean-ama poblach + publish_discovered_servers: Foillsich na frithealaichean a chaidh a lorg + publish_statistics: Foillsich an stadastaireachd title: Rùrachadh trends: Treandaichean domain_blocks: @@ -966,6 +1001,8 @@ gd: auth: apply_for_account: Iarr cunntas change_password: Facal-faire + confirmations: + wrong_email_hint: Mur eil an seòladh puist-d seo mar bu chòir, ’s urrainn dhut atharrachadh ann an roghainnean a’ chunntais. delete_account: Sguab às an cunntas delete_account_html: Nam bu mhiann leat an cunntas agad a sguabadh às, nì thu an-seo e. Thèid dearbhadh iarraidh ort. description: @@ -1001,6 +1038,9 @@ gd: email_below_hint_html: Mur eil am post-d gu h-ìosal mar bu chòir, ’s urrainn dhut atharrachadh an-seo agus gheibh thu post-d dearbhaidh ùr. email_settings_hint_html: Chaidh am post-d dearbhaidh a chur gu %{email}. Mur eil an seòladh puist-d seo mar bu chòir, ’s urrainn dhut atharrachadh ann an roghainnean a’ chunntais. title: Suidheachadh + sign_in: + preamble_html: Clàraich a-steach le do theisteas %{domain}. Ma tha an cunntas agad ’ga òstadh air frithealaiche eile, chan urrainn dhut clàradh a-steach an-seo. + title: Clàraich a-steach gu %{domain} sign_up: preamble: Le cunntas air an fhrithealaiche Mastodon seo, ’s urrainn dhut neach sam bith a leantainn air an lìonra, ge b’ e càit a bheil an cunntas aca-san ’ga òstadh. title: Suidhicheamaid %{domain} dhut. @@ -1406,6 +1446,9 @@ gd: unrecognized_emoji: "– chan aithne dhuinn an Emoji seo" relationships: activity: Gnìomhachd a’ chunntais + confirm_follow_selected_followers: A bheil thu cinnteach gu bheil thu airson an luchd-leantainn a thagh thu a leantainn? + confirm_remove_selected_followers: A bheil thu cinnteach gu bheil thu airson an luchd-leantainn a thagh thu a thoirt air falbh? + confirm_remove_selected_follows: A bheil thu cinnteach nach eil thu airson an fheadhainn a thagh thu a leantainn tuilleadh? dormant: Na thàmh follow_selected_followers: Lean an luchd-leantainn a thagh thu followers: Luchd-leantainn diff --git a/config/locales/he.yml b/config/locales/he.yml index bad6fd6fd3..6c213c5301 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -535,7 +535,7 @@ he: public_comment: תגובה פומבית purge: טיהור purge_description_html: אם יש יסוד להניח שדומיין זה מנותק לעד, ניתן למחוק את כל רשומות החשבונות והמידע המשוייך לדומיין זה משטח האפסון שלך. זה עשוי לקחת זמן מה. - title: שרתים מוכרים + title: שרתים בפדרציה total_blocked_by_us: חסום על ידינו total_followed_by_them: נעקב על ידם total_followed_by_us: נעקב על ידינו diff --git a/config/locales/my.yml b/config/locales/my.yml index 0a0826a65b..3a86851c9e 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -8,11 +8,18 @@ my: other: စောင့်ကြည့်သူ following: စောင့်ကြည့်နေသည် last_active: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် + nothing_here: ဤနေရာတွင် မည်သည့်အရာမျှမရှိပါ။ + pin_errors: + following: သင်ထောက်ခံလိုသောလူနောက်သို့ စောင့်ကြည့်ပြီးသားဖြစ်နေပါမည် posts: other: ပို့စ်တင်မယ် posts_tab_heading: ပို့စ်များ admin: + account_moderation_notes: + create: မှတ်စုမှထွက်ရန် accounts: + add_email_domain_block: ဒိုမိန်းကိုပိတ်မည် + approve: အတည်ပြုပါ are_you_sure: သေချာပါသလား။ avatar: ကိုယ်စားပြုရုပ်ပုံ by_domain: ဒိုမိန်း @@ -23,6 +30,10 @@ my: new_email: အီးမေးလ်အသစ် submit: အီးမေးလ်ပြောင်းပါ။ title: "%{username} အတွက် အီးမေးလ်ပြောင်းပါ" + change_role: + label: အခန်းကဏ္ဍ ပြောင်းလဲရန် + no_role: အခန်းကဏ္ဍမရှိ + title: "%{username} အတွက် အခန်းကဏ္ဍပြောင်းပါ" confirm: အတည်ပြု confirmed: အတည်ပြုပြီးပါပြီ confirming: အတည်ပြုနေသည် @@ -30,28 +41,63 @@ my: delete: အချက်အလက်များဖျက်ပါ deleted: ဖျက်ပြီးပါပြီ disable_two_factor_authentication: 2FA ကို ပိတ်ပါ + display_name: ဖော်ပြမည့်အမည် domain: ဒိုမိန်း edit: ပြင်ဆင်ရန် email: အီးမေးလ် + email_status: အီးမေးလ်အခြေအနေ + enable_sign_in_token_auth: အီးမေးတိုကင် စစ်မှန်ကြောင်းအတည်ပြုချက်ကို ဖွင့်ပါ enabled: ဖွင့်ထားသည် followers: စောင့်ကြည့်သူများ + follows: စောင့်ကြည့်မယ် + header: မျက်နှာဖုံးပုံ + invited_by: ဖိတ်ခေါ်ထားသည် ip: IP + joined: စတင်ဝင်ရောက်သည့်နေ့ location: all: အားလုံး + local: ပြည်တွင်း remote: အဝေးမှ title: တည်နေရာ login_status: အကောင့်ဝင်ရောက်မှုအခြေအနေ media_attachments: မီဒီယာ ပူးတွဲချက်များ + memorialize: အမှတ်တရအဖြစ် ပြောင်းပါ moderation: + active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း all: အားလုံး + pending: ဆိုင်းငံ့ထားခြင်း + silenced: ကန့်သတ်ထားသော + suspended: ရပ်ဆိုင်းထားခြင်း + title: စိစစ်ခြင်း + moderation_notes: စိစစ်ခြင်းဆိုင်ရာမှတ်စုများ + most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် + most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ + no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + perform_full_suspension: ရပ်ဆိုင်းရန် + promote: အထောက်အကူ + protocol: လုပ်ထုံးလုပ်နည်း public: အများမြင် + redownload: ပရိုဖိုင်ကို ပြန်လည်စတင်ရန် + redownloaded_msg: မူလမှစ၍ %{username} ၏ ပရိုဖိုင်ကို ပြန်လည်စတင်ပြီးပါပြီ reject: ဖယ်ရှားပါ remove_avatar: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ + remove_header: မျက်နှာဖုံးပုံ ဖယ်ရှားရန် + removed_avatar_msg: "%{username} ၏ ကိုယ်စားပြုရုပ်ပုံအား ဖယ်ရှားပြီးပါပြီ" + removed_header_msg: "%{username} ၏ မျက်နှာဖုံးပုံအား ဖယ်ရှားပြီးပါပြီ" + resend_confirmation: + already_confirmed: ဤအသုံးပြုသူကို အတည်ပြုပြီးပါပြီ + send: အတည်ပြုထားသောအီးမေးလ် ပြန်ပို့ပေးရန် + success: အတည်ပြုထားသောအီးမေးလ် ပို့ပြီးပါပြီ။ reset: ပြန်သတ်မှတ်မည် + role: အခန်းကဏ္ဍ search: ရှာရန် + search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ security_measures: only_password: စကားဝှက်ဖြင့်သာ password_and_2fa: စကားဝှက်နှင့် 2FA + show: + created_reports: ဆောင်ရွက်ခဲ့ပြီးသောအစီရင်ခံစာများ + targeted_reports: အခြားသူများမှဆောင်ရွက်ခဲ့သော အစီရင်ခံစာများ silence: ကန့်သတ် silenced: ကန့်သတ်ထားသည် statuses: ပို့စ်များ @@ -59,22 +105,48 @@ my: suspend: ရပ်ဆိုင်းပါ suspended: ရပ်ဆိုင်းထားသည် title: အကောင့်များ + unblock_email: အီးမေးလ်ကိုပြန်ဖွင့်မည် + unblocked_email_msg: " %{username} အီးမေးလ်ကိုပြန်ဖွင့်လိုက်ပါပြီ" unsubscribe: စာရင်းမှထွက်ရန် unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ" username: အသုံးပြုသူအမည် web: ဝဘ် action_logs: action_types: + approve_user: အသုံးပြုသူကို အတည်ပြုရန် + change_email_user: အသုံးပြုသူအတွက် အီးမေးလ်ပြောင်းရန် + change_role_user: အသုံးပြုသူ၏ အခန်းကဏ္ဍကို ပြောင်းလဲရန် + confirm_user: အသုံးပြုသူကို လက်ခံရန် create_announcement: ကြေညာချက်ဖန်တီးပါ create_custom_emoji: စိတ်ကြိုက်အီမိုဂျီ ဖန်တီးပါ + create_ip_block: IP စည်းမျဉ်း ဖန်တီးရန် + create_user_role: အခန်းကဏ္ဍဖန်တီးပါ + destroy_announcement: ကြေညာချက်ကို ဖျက်ပါ + destroy_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖျက်ရန် + destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ destroy_status: Post ကို ဖျက်ပါ + destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ disable_2fa_user: 2FA ကို ပိတ်ပါ disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ + disable_user: အသုံးပြုသူကို ပိတ်ပါ + enable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖွင့်ပါ + enable_user: အသုံးပြုသူကို ဖွင့်ပါ + memorialize_account: အမှတ်တရအကောင့် + promote_user: အသုံးပြုသူ မြှင့်တင်ရန် + reject_user: အသုံးပြုသူ ဖယ်ရှားရန် remove_avatar_user: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ silence_account: အကောင့် ကန့်သတ်ပါ suspend_account: အကောင့် ရပ်ဆိုင်းပါ + update_announcement: ကြေညာချက်ပြင်ဆင်ရန် + update_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပြင်ဆင်ရန် + update_ip_block: IP စည်းမျဉ်း ပြင်ဆင်ရန် update_status: ပို့စ်ပြင်ဆင်ရန် + update_user_role: အခန်းကဏ္ဍပြင်ဆင်ရန် + actions: + destroy_custom_emoji_html: "%{name} ဖျက်လိုက်သော အီမိုဂျီ %{target}" + disable_custom_emoji_html: "%{name} ပိတ်ထားသောအီမိုဂျီ %{target}" deleted_account: အကောင့်ဖျက်ပြီးပါပြီ + empty: မှတ်တမ်းများ မတွေ့ပါ။ announcements: destroyed_msg: ကြေညာချက် ဖျက်ပြီးပါပြီ edit: @@ -91,7 +163,10 @@ my: custom_emojis: by_domain: ဒိုမိန်း copy: ကူးယူပါ + create_new_category: အမျိုးအစားအသစ်ဖန်တီးရန် + created_msg: အီမိုဂျီ ဖန်တီးပြီးပါပြီ။ delete: ဖျက်ပါ + destroyed_msg: အီမိုဂျီ ဖျက်ပစ်လိုက်ပါပြီ။ disable: ပိတ်ပါ disabled: ပိတ်ပြီးပါပြီ emoji: အီမိုဂျီ @@ -103,11 +178,17 @@ my: new: title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ title: စိတ်ကြိုက်အီမိုဂျီများ + unlist: စာရင်းမသွင်းထားပါ unlisted: စာရင်းမသွင်းထားပါ update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ updated_msg: အီမိုဂျီကို ပြင်ဆင်ပြီးပါပြီ။ + upload: တင္ရန် dashboard: + active_users: လက်ရှိအသုံးပြုသူများ + media_storage: မီဒီယာသိုလှောင်မှု new_users: အသုံးပြုသူအသစ်များ + top_languages: လက်ရှိအသုံးများလျက်ရှိသည့် ဘာသာစကား + top_servers: လက်ရှိအသုံးများလျက်ရှိသည့် ဆာဗာများ website: ဝဘ်ဆိုဒ် domain_blocks: domain: ဒိုမိန်း @@ -116,8 +197,13 @@ my: silence: ကန့်သတ် suspend: ရပ်ဆိုင်းပါ private_comment: သီးသန့်မှတ်ချက် + public_comment: အများမြင်မှတ်ချက် email_domain_blocks: + add_new: အသစ် ထည့်ပါ delete: ဖျက်ပါ + dns: + types: + mx: MX မှတ်တမ်း domain: ဒိုမိန်း new: create: ဒိုမိန်းထည့်ပါ @@ -127,21 +213,29 @@ my: no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ follow_recommendations: language: ဘာသာစကားအတွက် + status: အခြေအနေ instances: back_to_all: အားလုံး back_to_limited: ကန့်သတ်ထားသည် + confirm_purge: ဤဒိုမိန်းမှ အချက်အလက်များကို အပြီးတိုင်ဖျက်လိုသည်မှာ သေချာပါသလား။ content_policies: policies: + reject_media: မီဒီယာဖယ်ရှားရန် + reject_reports: အစီရင်ခံစာများ ဖယ်ရှားရန် silence: ကန့်သတ် + suspend: ရပ်ဆိုင်းပါ policy: မူဝါဒ dashboard: instance_followers_measure: ကျွန်ုပ်တို့၏စောင့်ကြည့်သူများ အဲ့ဒီနေရာမှာပါ instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ + instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ delivery: all: အားလုံး + unavailable: မရရှိနိုင်ပါ moderation: all: အားလုံး limited: ကန့်သတ်ထားသော + title: စိစစ်ခြင်း private_comment: သီးသန့်မှတ်ချက် public_comment: အများမြင်မှတ်ချက် total_storage: မီဒီယာ ပူးတွဲချက်များ @@ -149,33 +243,72 @@ my: filter: all: အားလုံး available: ရရှိနိုင်သော + title: စစ်ထုတ်ခြင်း ip_blocks: + add_new: စည်းမျဉ်းဖန်တီးပါ + created_msg: IP စည်းမျဉ်းအသစ် ထည့်သွင်းပြီးပါပြီ delete: ဖျက်ပါ expires_in: - '1209600': 2 weeks - '15778476': 6 months - '2629746': 1 month - '31556952': 1 year - '86400': 1 day + '1209600': ၂ ပတ် + '15778476': ၆ လ + '2629746': ၁ လ + '31556952': ၁ နှစ် + '86400': ၁ ရက် '94670856': ၃ နှစ် + new: + title: IP စည်းမျဉ်းအသစ်ဖန်တီးပါ title: IP စည်းမျဉ်းများ + relationships: + title: "%{acct} နှင့် ပတ်သက်မှု" relays: delete: ဖျက်ပါ disable: ပိတ်ပါ disabled: ပိတ်ထားသည် enable: ဖွင့်ပါ enabled: ဖွင့်ထားသည် + status: အခြေအနေ reports: + account: + notes: + other: "%{count} မှတ်စု" + are_you_sure: သေချာပါသလား။ + assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန် + assigned: စိစစ်သူကို တာဝန်ပေးရန် + category: အမျိုးအစား delete_and_resolve: ပို့စ်များကို ဖျက်ပါ - view_profile: ပရိုဖိုင်ကိုကြည့်ရန် + notes: + create: မှတ်စုထည့်ရန် + create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန် + delete: ဖျက်ပါ + title: မှတ်စုများ + reopen: အစီရင်ခံစာပြန်ဖွင့်ရန် + report: "#%{id} အစီရင်ခံရန်" + resolved: ဖြေရှင်းပြီးပါပြီ + status: အခြေအနေ + summary: + actions: + suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း" + delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်" + updated_at: ပြင်ဆင်ပြီးပါပြီ + view_profile: ပရိုဖိုင်ကြည့်ရန် roles: + add_new: အခန်းကဏ္ဍထည့်ပါ categories: devops: DevOps + moderation: စိစစ်ခြင်း delete: ဖျက်ပါ permissions_count: other: "%{count} ခွင့်ပြုချက်" privileges: + administrator: စီမံသူ + delete_user_data: အသုံးပြုသူ၏အချက်အလက်ကို ဖျက်ပါ + invite_users: အသုံးပြုသူများကို ဖိတ်ခေါ်ရန် + invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန် manage_announcements: ကြေညာချက်များကို စီမံပါ + manage_announcements_description: ဆာဗာပေါ်တွင် ကြေညာချက်များစီမံရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန် + manage_reports: အစီရင်ခံစာများကို စီမံပါ + manage_roles: အခန်းကဏ္ဍများကို စီမံပါ + manage_rules: စည်းမျဉ်းများကို စီမံပါ manage_settings: သတ်မှတ်ချက်များကို စီမံပါ manage_users: အသုံးပြုသူများကို စီမံပါ view_devops: DevOps @@ -185,17 +318,44 @@ my: settings: about: title: အကြောင်း + appearance: + title: ပုံပန်းသဏ္ဌာန် + discovery: + profile_directory: ပရိုဖိုင်လမ်းညွှန် + domain_blocks: + all: လူတိုင်း + title: ဆာဗာသတ်မှတ်ချက်များ + site_uploads: + delete: တင်ထားသောဖိုင်ဖျက်ရန် statuses: account: ရေးသားသူ back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန် deleted: ဖျက်ပြီးပါပြီ + favourites: အကြိုက်ဆုံးများ language: ဘာသာစကား media: title: မီဒီယာ + original_status: မူရင်းပို့စ် + title: အကောင့်ပို့စ်များ + with_media: မီဒီယာနှင့်အတူ + system_checks: + rules_check: + action: ဆာဗာစည်းမျဉ်းများကို စီမံရန် trends: allow: ခွင့်ပြု + approved: အတည်ပြုပြီးပါပြီ disallow: ခွင့်မပြု + rejected: ဖယ်ရှားပြီးပါပြီ + statuses: + allow: ပို့စ်တင်ခွင့်ပြုရန် + disallow: ပို့စ်ကို တင်ခွင့်မပြုရန် tags: + dashboard: + tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ + tag_servers_dimension: အသုံးများသည့်ဆာဗာများ + tag_servers_measure: မတူညီသောဆာဗာများ + tag_uses_measure: စုစုပေါင်းအသုံးပြုမှု + listable: အကြံပြုနိုင်ပါသည် not_usable: အသုံးမပြုနိုင်ပါ usable: အသုံးပြုနိုင်သည် warning_presets: @@ -203,20 +363,38 @@ my: delete: ဖျက်ပါ webhooks: delete: ဖျက်ပါ + disable: ပိတ်ပါ + disabled: ပိတ်ထားသည် enable: ဖွင့်ပါ + enabled: လက်ရှိ + events: ပွဲအစီအစဉ်များ + status: အခြေအနေ appearance: localization: guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။ application_mailer: + salutation: "%{name}" + view: ကြည့်ရှုရန် - view_profile: ပရိုဖိုင်ကိုကြည့်ရန် view_status: ပို့စ်ကိုကြည့်ရန် + applications: + created: အက်ပလီကေးရှင်းကို ဖန်တီးပြီးပါပြီ auth: change_password: စကားဝှက် delete_account: အကောင့်ဖျက်ပါ + description: + prefix_sign_up: ယနေ့တွင် Mastodon ၌ စာရင်းသွင်းလိုက်ပါ။ + forgot_password: သင့်စကားဝှက် မေ့နေပါသလား။ + log_in_with: ဖြင့် ဝင်ရောက်ပါ + login: အကောင့်ဝင်ရန် logout: ထွက်မယ် + migrate_account: အခြားအကောင့်တစ်ခုသို့ ရွှေ့ရန် providers: cas: CAS saml: SAML + register: အကောင့်ဖွင့်ရန် + registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ" + security: လုံခြုံရေး set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။ status: account_status: အကောင့်အခြေအနေ @@ -224,6 +402,8 @@ my: follow: စောင့်ကြည့်မယ် follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်- post_follow: + close: သို့မဟုတ် သင်သည် ဤဝင်းဒိုးကို ပိတ်နိုင်သည် + return: အသုံးပြုသူ၏ ပရိုဖိုင်ကိုပြရန် web: ဝဘ်သို့ သွားပါ title: "%{acct} ကို စောင့်ကြည့်မယ်" challenge: @@ -240,6 +420,7 @@ my: about_x_years: "%{count}y" almost_x_years: "%{count}y" half_a_minute: အခုလေးတင် + less_than_x_minutes: "%{count}m" less_than_x_seconds: အခုလေးတင် over_x_years: "%{count}y" x_days: "%{count}y" @@ -253,6 +434,8 @@ my: strikes: status: "#%{id} ပို့စ်" title: "%{date} မှ %{action}" + title_actions: + none: သတိပေးချက် errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -265,19 +448,32 @@ my: archive_takeout: date: ရက်စွဲ size: အရွယ်အစား + blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း csv: CSV lists: စာရင်းများ + storage: မီဒီယာသိုလှောင်မှု featured_tags: add_new: အသစ် ထည့်ပါ filters: contexts: + account: ပရိုဖိုင်များ + home: ပင်မနှင့် စာရင်းများ notifications: အကြောင်းကြားချက်များ + thread: စကားဝိုင်းများ + edit: + statuses: တစ်ဦးချင်းတင်ထားသောပို့စ်များ + title: စစ်ထုတ်ခြင်းကို ပြင်ဆင်ရန် index: + contexts: "%{contexts} ရှိ စစ်ထုတ်ထားမှုများ" delete: ဖျက်ပါ + empty: သင့်တွင် စစ်ထုတ်ထားခြင်းများ မရှိပါ။ statuses: other: "%{count} ပို့စ်" + title: စစ်ထုတ်ခြင်းများ generic: all: အားလုံး + copy: ကူးယူပါ + delete: ဖျက်ပါ today: ယနေ့ invites: expires_in: @@ -287,6 +483,7 @@ my: '43200': ၁၂ နာရီ '604800': ၁ ပတ် '86400': ၁ ရက် + max_uses_prompt: အကန့်အသတ်မဲ့ login_activities: authentication_methods: otp: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အက်ပ် @@ -295,8 +492,13 @@ my: validations: images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ migrations: + acct: သို့ ပြောင်းရွှေ့ရန် errors: not_found: ရှာမတွေ့ပါ + proceed_with_move: စောင့်ကြည့်သူများကို ရွှေ့ရန် + warning: + only_redirect_html: တနည်းအားဖြင့် သင်သည် သင့်ပရိုဖိုင်ပေါ်တွင် ပြန်ညွှန်းခြင်းကိုသာ ပြုလုပ်နိုင်သည်။ + redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည် notification_mailer: follow: title: စောင့်ကြည့်သူအသစ် @@ -315,23 +517,75 @@ my: quadrillion: Q thousand: K trillion: T + otp_authentication: + enable: ဖွင့်ပါ + pagination: + truncate: "…" + polls: + errors: + already_voted: ဤစစ်တမ်းတွင် သင်ပါဝင်ပြီးဖြစ်သည် + duplicate_options: ထပ်တူညီသောအရာများပါဝင်နေသည် + duration_too_long: အလှမ်းဝေးလွန်းတယ် + duration_too_short: စောလွန်းတယ် + expired: စစ်တမ်းပြီးဆုံးသွားပါပြီ + invalid_choice: သင်ရွေးချယ်လိုသောအရာမှာ စစ်တမ်းတွင်မပါဝင်ပါ + over_character_limit: သတ်မှတ်ထားသောစာလုံးအရေအတွက် %{max} ထက်ပိုနေသည် + too_few_options: တစ်ခုထက်ပိုနေသည် + too_many_options: သတ်မှတ်ထားသောအရေအတွက် %{max} ကိုကျော်လွန်နေသည် privacy_policy: title: ကိုယ်ရေးအချက်အလက်မူဝါဒ relationships: followers: စောင့်ကြည့်သူများ following: စောင့်ကြည့်နေသည် + moved: ရွှေ့ပြီးပါပြီ mutual: အပြန်အလှန်စောင့်ကြည့်ထားခြင်း + status: အကောင့်အခြေအနေ sessions: + description: "%{platform} ပေါ်ရှိ %{browser}" platforms: ios: iOS linux: Linux mac: macOS + revoke: ပြန်ရုပ်သိမ်းရန် settings: + account: အကောင့် + account_settings: အကောင့်သတ်မှတ်ချက်များ + appearance: ပုံပန်းသဏ္ဌာန် + delete: အကောင့်ဖျက်သိမ်းခြင်း edit_profile: ပရိုဖိုင်ပြင်ဆင်ရန် + notifications: အသိပေးချက်များ + profile: ပရိုဖိုင် + relationships: စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း + statuses_cleanup: အလိုအလျောက်ပို့စ်ဖျက်ခြင်း + two_factor_authentication: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် statuses: + attached: + description: ပူးတွဲပါ- %{attached} + image: + other: "%{count} ပုံ" + video: + other: "%{count} ဗီဒီယို" + edited_at_html: "%{date} ကို ပြင်ဆင်ပြီးပါပြီ" + open_in_web: ဝဘ်တွင် ဖွင့်ပါ + poll: + total_people: + other: "%{count} ယောက်" + total_votes: + other: မဲအရေအတွက် %{count} မဲ + vote: မဲပေးမည် + show_more: ပိုမိုပြရန် + show_newer: ပို့စ်အသစ်များပြရန် + show_older: ပို့စ်အဟောင်းများပြရန် + title: '%{name}: "%{quote}"' visibilities: + direct: တိုက်ရိုက် + private: စောင့်ကြည့်သူများသာ + private_long: စောင့်ကြည့်သူများကိုသာ ပြရန် public: အများမြင် + public_long: လူတိုင်းမြင်နိုင်ပါသည် statuses_cleanup: + keep_polls: စစ်တမ်းကိုဆက်လက်ထားမည် + keep_polls_hint: သင့်မှတ်တမ်းတစ်ခုမှ မပျက်ပါ min_age: '1209600': ၂ ပတ် '15778476': ၆ လ @@ -341,11 +595,37 @@ my: '604800': ၁ ပတ် '63113904': ၂ နှစ် '7889238': ၃ လ + stream_entries: + pinned: ပင်တွဲထားသောပို့စ် + themes: + default: Mastodon (အနက်) time: formats: + default: "%b %d, %Y, %H:%M" month: "%b %Y" time: "%H:%M" two_factor_authentication: + add: ထည့်ရန် disable: 2FA ကို ပိတ်ပါ + edit: ပြင်ဆင်ရန် enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည် enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ + methods: နှစ်ဆင့်ခံလုံခြုံရေးနည်းလမ်းများ + user_mailer: + appeal_approved: + action: သင့်အကောင့်သို့ သွားပါ + suspicious_sign_in: + change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ + warning: + explanation: + disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။ + suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။ + reason: အကြောင်းပြချက် - + subject: + none: "%{acct} အတွက် သတိပေးချက်" + welcome: + edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန် + edit_profile_step: ပရိုဖိုင်ဓာတ်ပုံတစ်ပုံ တင်ခြင်း၊ ဖော်ပြမည့်အမည် ပြောင်းလဲခြင်းနှင့် အခြားအရာများပြုလုပ်ခြင်းတို့ဖြင့် သင့်ပရိုဖိုင်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။ စောင့်ကြည့်သူအသစ်များ သင့်ကိုစောင့်ကြည့်ခွင့်မပြုမီ ပြန်လည်သုံးသပ်ရန်အတွက် ဆုံးဖြတ်နိုင်ပါသည်။ + webauthn_credentials: + delete: ဖျက်ရန် + registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d293f75395..d49a9b684d 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1225,7 +1225,7 @@ nl: types: blocking: Blokkeerlijst bookmarks: Bladwijzers - domain_blocking: Lijst met genegeerde servers + domain_blocking: Lijst met geblokkeerde domeinen following: Volglijst muting: Negeerlijst upload: Uploaden diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index a34d77f98e..cbd35cd298 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -619,6 +619,8 @@ pt-BR: mark_as_sensitive_html: 'Você está prestes a marcar algumas das publicações de @%{acct} como sensíveis. Isso irá:' silence_html: 'Você está prestes a limitar a conta de @%{acct}. Isso irá:' suspend_html: 'Você está prestes a suspender a conta de @%{acct}. Isso irá:' + actions: + delete_html: Remover as publicações ofensivas close_report: 'Marcar denúncia #%{id} como resolvida' close_reports_html: Marcar todas as denúncias contra @%{acct} como resolvidas delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 21d9c277f1..267d2292cb 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -48,7 +48,7 @@ ar: phrase: سوف يتم العثور عليه مهما كان نوع النص أو حتى و إن كان داخل الويب فيه تحذير عن المحتوى scopes: ما هي المجالات المسموح بها في التطبيق ؟ إن قمت باختيار أعلى المجالات فيمكنك الاستغناء عن الخَيار اليدوي. setting_aggregate_reblogs: لا تقم بعرض المشارَكات الجديدة لمنشورات قد قُمتَ بمشاركتها سابقا (هذا الإجراء يعني المشاركات الجديدة فقط التي تلقيتَها) - setting_always_send_emails: عادة لن ترسل الإشعارات إلى بريدك الإلكتروني عندما تكون نشط على ماستدون + setting_always_send_emails: عادة لن تُرسَل إليك إشعارات البريد الإلكتروني عندما تكون نشطًا على ماستدون setting_default_sensitive: تُخفى الوسائط الحساسة تلقائيا ويمكن اظهارها عن طريق النقر عليها setting_display_media_default: إخفاء الوسائط المُعيَّنة كحساسة setting_display_media_hide_all: إخفاء كافة الوسائط دائمًا @@ -73,6 +73,7 @@ ar: hide: إخفاء المحتويات التي تم تصفيتها، والتصرف كما لو أنها غير موجودة warn: إخفاء المحتوى الذي تم تصفيته خلف تحذير يذكر عنوان الفلتر form_admin_settings: + activity_api_enabled: عدد المنشورات المحلية و المستخدمين الناشطين و التسجيلات الأسبوعية الجديدة backups_retention_period: الاحتفاظ بأرشيف المستخدم الذي تم إنشاؤه لعدد محدد من الأيام. bootstrap_timeline_accounts: سيتم تثبيت هذه الحسابات على قمة التوصيات للمستخدمين الجدد. closed_registrations_message: ما سيعرض عند إغلاق التسجيلات @@ -83,11 +84,12 @@ ar: profile_directory: دليل الملف الشخصي يسرد جميع المستخدمين الذين اختاروا الدخول ليكونوا قابلين للاكتشاف. require_invite_text: عندما تتطلب التسجيلات الموافقة اليدوية، اجعل إدخال النص "لماذا تريد الانضمام ؟" إلزاميا بدلا من اختياري site_contact_email: كيف يمكن للأشخاص أن يصلوا إليك للحصول على استفسارات قانونية أو استفسارات دعم. - site_contact_username: كيف يمكن للناس أن يصلوا إليك في ماستدون. + site_contact_username: كيف يمكن للناس أن يتصلوا بك في ماستدون. site_extended_description: أي معلومات إضافية قد تكون مفيدة للزوار والمستخدمين. يمكن تنظيمها مع بناء بنية Markdown. site_short_description: وصف قصير للمساعدة في التعرف على الخادم الخاص بك. من يقوم بتشغيله، ولمن ؟ site_terms: استخدم سياسة الخصوصية الخاصة بك أو اتركها فارغة لاستخدام الافتراضي. يمكن هيكلتها مع بناء الجملة المصغرة مارك داون. site_title: كيف يمكن للناس الرجوع إلى الخادم الخاص بك إلى جانب اسم النطاق. + status_page_url: العنوان التشعبي حيث يمكن للناس رؤية صفحة حالة هذا الخادم عند حدوث عطب ما theme: الشكل الذي يشاهده الزوار الجدد و الغير مسجلين الدخول. thumbnail: عرض حوالي 2:1 صورة إلى جانب معلومات الخادم الخاص بك. timeline_preview: الزوار الذين سجلوا خروجهم سيكونون قادرين على تصفح أحدث المشاركات العامة المتاحة على الخادم. @@ -247,11 +249,13 @@ ar: site_short_description: وصف الخادم site_terms: سياسة الخصوصية site_title: اسم الخادم + status_page_url: الرابط التشعبي لصفحة حالة الخادم theme: الحُلَّة الإفتراضية thumbnail: الصورة المصغرة للخادم timeline_preview: السماح بالوصول غير الموثق إلى الخيوط الزمنية العامة trendable_by_default: السماح للوسوم بالظهور على المتداوَلة دون مراجعة مسبقة trends: تمكين المتداوَلة + trends_as_landing_page: استخدام المُتداوَلة كصفحة ترحيب interactions: must_be_follower: حظر الإشعارات القادمة من حسابات لا تتبعك must_be_following: حظر الإشعارات القادمة من الحسابات التي لا تتابعها diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index 31501ed860..c17b3b8988 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -7,6 +7,7 @@ ast: announcement: all_day: Al marcar la opción, namás apaecen les dates del intervalu de tiempu ends_at: Opcional. L'anunciu dexa de tar espublizáu na data qu'indiques + scheduled_at: Dexa esti campu como ta pa espublizar l'anunciu nel intre starts_at: Opcional. En casu de que l'anunciu tea arreyáu a un intervalu de tiempu específicu text: Pues usar la sintaxis de los artículos. Ten en cuenta l'espaciu que l'anunciu va ocupar na pantalla del usuariu/a defaults: @@ -21,11 +22,16 @@ ast: locale: La llingua de la interfaz, los mensaxes per corréu electrónicu ya los avisos push locked: Controla manualmente quién pue siguite pente l'aprobación de les solicitúes de siguimientu password: Usa polo menos 8 caráuteres + setting_aggregate_reblogs: Nun amuesa los artículos compartíos nuevos que xá se compartieren de recién (namás afeuta a los artículos compartíos d'agora) + setting_always_send_emails: Los avisos nun se suelen unviar per corréu electrónicu si uses activamente Mastodon + setting_default_sensitive: El conteníu multimedia sensible anúbrese por defeutu ya pue amosase al calcar nelli setting_display_media_default: Anubrilu cuando se marque como sensible setting_display_media_hide_all: Anubrilu siempres setting_display_media_show_all: Amosalu siempres setting_hide_network: Les persones que sigas ya les que te sigan nun van apaecer nel to perfil + setting_noindex: Afeuta al perfil públicu ya a les páxines de los artículos setting_show_application: L'aplicación qu'uses pa espublizar apaez na vista detallada de los tos artículos + setting_use_blurhash: Los dilíos básense nos colores del conteníu multimedia anubríu mas desenfonca los detalles username: 'El nome d''usuariu va ser únicu en: %{domain}' featured_tag: name: 'Equí tán dalgunes de les etiquetes qu''usesti apocayá:' @@ -40,6 +46,7 @@ ast: site_extended_description: Cualesquier tipu d'información adicional que pueda ser útil pa visitantes ya pa perfiles rexistraos. El testu pue estructurase cola sintaxis de Mastodon. site_short_description: Un descripción curtia qu'ayuda a identificar de forma única al sirvidor. ¿Quién lu lleva?, ¿pa quién ye? theme: L'estilu que los visitantes ya los perfiles nuevos usen. + trends: Les tendencies amuesen artículos, etiquetes ya noticies que tean ganando popularidá nesti sirvidor. form_challenge: current_password: Tas entrando a una área segura imports: @@ -47,8 +54,10 @@ ast: invite_request: text: Esto va ayudanos a revisar la to solicitú ip_block: - comment: Opcional. Un recordatoriu de por qué amestesti esta regla. + comment: Opcional. Un recordatoriu de por qué amestesti esta norma. expires_in: Les direiciones IP son un recursu finitu, suelen compartise ya cambiar de manes. Por esti motivu, nun s'aconseyen los bloqueos indefiníos de direiciones IP. + user: + chosen_languages: Namás los artículos de les llingües que marques son los que van apaecer nes llinies de tiempu públiques labels: account: fields: @@ -93,18 +102,26 @@ ast: phrase: Pallabra clave o fras setting_advanced_layout: Activar la interfaz web avanzada setting_aggregate_reblogs: Agrupar los artículos compartíos nes llinies de tiempu + setting_always_send_emails: Unviar siempres los avisos per corréu electrónicu setting_auto_play_gif: Reproducir automáticamente los GIFs setting_boost_modal: Amosar el diálogu de confirmación enantes de compartir un artículu + setting_crop_images: Recortar les imáxenes de los artículos ensin espander a la proporción 16:9 setting_default_language: Llingua de los artículos setting_default_privacy: Privacidá de los artículos + setting_default_sensitive: Marcar siempres tol conteníu como sensible setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un artículu + setting_disable_swiping: Desactivar el movimientu de desplazamientu setting_display_media: Conteníu multimedia + setting_expand_spoilers: Espander siempres los artículos marcaos con alvertencies de conteníu + setting_hide_network: Anubrir les cuentes que sigas ya te sigan + setting_noindex: Arrenunciar a apaecer nos índices de los motores de busca setting_reduce_motion: Amenorgar el movimientu de les animaciones setting_show_application: Dicir les aplicaciones que s'usen pa unviar artículos setting_system_font_ui: Usar la fonte predeterminada del sistema setting_theme: Estilu del sitiu setting_trends: Amosar les tendencies de güei setting_unfollow_modal: Amosar el diálogu de confirmación enantes de dexar de siguir a daquién + setting_use_blurhash: Facer que'l conteníu multimedia anubríu tenga dilíos coloríos setting_use_pending_items: Mou lentu severity: Gravedá sign_in_token_attempt: Códigu de seguranza @@ -129,6 +146,9 @@ ast: site_title: Nome del sirvidor theme: Estilu predetermináu thumbnail: Miniatura del sirvidor + timeline_preview: Permitir l'accesu ensin autenticar a les llinies de tiempu públiques + trendable_by_default: Permitir tendencies ensin revisión previa + trends: Activar les tendencies interactions: must_be_follower: Bloquiar los avisos de los perfiles que nun te siguen must_be_following: Bloquiar los avisos de los perfiles que nun sigues @@ -146,15 +166,24 @@ ast: reblog: Daquién compartió'l to artículu report: Unvióse un informe nuevu trending_tag: Una tendencia rique una revisión + rule: + text: Norma tag: + listable: Permitir qu'esta etiqueta apaeza nes busques ya nes suxerencies name: Etiqueta + trendable: Permitir qu'esta etiqueta apaeza nes tendencies + usable: Permitir que los artículos usen esta etiqueta user: role: Rol user_role: name: Nome permissions_as_keys: Permisos position: Prioridá + webhook: + events: Eventos activos 'no': Non + not_recommended: Nun s'aconseya + recommended: Aconséyase required: mark: "*" 'yes': Sí diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index cdd1b34771..e5696a56f5 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -87,6 +87,7 @@ be: site_short_description: Кароткае апісанне, каб дапамагчы адназначна ідэнтыфікаваць ваш сервер. Хто яго падтрымлівае, для каго ён? site_terms: Апішыце ўласную палітыку прыватнасці альбо пакіньце поле пустым, калі хочаце скарыстацца прадвызначанай. Можна карыстацца сінтаксісам Markdown каб структураваць тэкст. site_title: Як людзі могуць звяртацца да вашага серверу акрамя яго даменнага імя. + status_page_url: URL старонкі, дзе людзі могуць бачыць стан гэтага сервера падчас збою theme: Тэма, што бачаць новыя карыстальнікі ды наведвальнікі, якія выйшлі. thumbnail: Выява памерамі прыкладна 2:1, якая паказваецца побач з інфармацыяй пра ваш сервер. timeline_preview: Наведвальнікі, якія выйшлі, змогуць праглядаць апошнія публічныя допісы на серверы. diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 94f7f5b3f1..3ec5e19e1c 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -40,7 +40,7 @@ bg: discoverable: Позволяване на странници да откриват вашия акаунт чрез препоръки, нашумели и други неща email: Ще ви се изпрати имейл за потвърждение fields: Може да добавите до 4 елемента в таблицата към профила си - header: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела + header: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно locale: Езикът на потребителския интерфейс, известиятата по имейл и насочените известия @@ -82,8 +82,8 @@ bg: custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon. mascot: Можете да заместите илюстрацията в разширения уеб интерфейс. media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване. - peers_api_enabled: Списък от домейни, с който сървърът се е свързал във fediverse. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали вашият сървър знае за него. Това се ползва от услуги, които събират статистики за федерацията в общия смисъл. - profile_directory: Указателят на профили съдържа всички потребители, които са се съгласили да бъдат откривани. + peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл. + profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми. require_invite_text: Когато регистрацията изисква ръчно одобрение, текстовото поле за това "Защо желаете да се присъедините?" ще бъде задължително, вместо по желание site_contact_email: Как могат хората да се свържат с вас относно правни запитвания или помощ. site_contact_username: Как хората могат да ви достигнат в Mastodon. @@ -91,11 +91,13 @@ bg: site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е? site_terms: Използвайте собствени правила за поверителност или оставете празно, за да използвате тези по подразбиране. Може да се структурира с Markdown синтаксис. site_title: Как могат хората да наричат вашия сървър, освен името на домейна. + status_page_url: Адресът на страницата, където хората могат да видят състоянието на този сървър по време на прекъсване theme: Темата, която нови и невлезли потребители ще виждат. thumbnail: Изображение в резолюция около 2:1, показвана до информацията за вашия сървър. timeline_preview: Невлезлите потребители ще могат да преглеждат най-новите публични публикации, налични на сървъра. trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие. - trends: В секцията Нашумели се показват публикации, хаштагове и новини, набрали популярност на вашия сървър. + trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви. + trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено. form_challenge: current_password: Влизате в сигурна зона imports: @@ -211,7 +213,7 @@ bg: setting_show_application: Разкриване на приложението, изпращащо публикации setting_system_font_ui: Употреба на стандартния шрифт на системата setting_theme: Тема на сайта - setting_trends: Показване на днешните нашумели + setting_trends: Показване на днешното налагащо се setting_unfollow_modal: Показване на прозорче за потвърждение преди прекратяване следването на някого setting_use_blurhash: Показване на цветни преливки за скрита мултимедия setting_use_pending_items: Бавен режим @@ -251,11 +253,13 @@ bg: site_short_description: Опис на сървъра site_terms: Политика за поверителност site_title: Име на сървъра + status_page_url: URL адрес на страница със състоянието theme: Стандартна тема thumbnail: Миниобраз на сървъра timeline_preview: Позволяване на неупълномощен достъп до публични часови оси - trendable_by_default: Без преглед на нашумели + trendable_by_default: Без преглед на налагащото се trends: Включване на налагащи се + trends_as_landing_page: Употреба на налагащото се като целева страница interactions: must_be_follower: Блокирай известия от не-последователи must_be_following: Блокиране на известия от неследваните diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 6829286538..b7baf6aff3 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -97,11 +97,11 @@ de: timeline_preview: Besucher*innen und ausgeloggte Benutzer*innen können die neuesten öffentlichen Beiträge dieses Servers aufrufen. 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. - trends_as_landing_page: Dies zeigt nicht angemeldeten Personen Trendinhalte anstelle einer Beschreibung des Servers an. Erfordert, dass Trends aktiviert sind. + trends_as_landing_page: Zeigt Trendinhalte abgemeldeter Benutzer und Besucher anstelle einer Beschreibung dieses Servers an. Erfordert, dass Trends aktiviert sind. form_challenge: current_password: Du betrittst einen gesicherten Bereich imports: - data: CSV-Datei, exportiert von einem anderen Mastodon-Server + data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde invite_request: text: Dies wird uns bei der Überprüfung deiner Anmeldung behilflich sein ip_block: @@ -138,9 +138,9 @@ de: name: Bezeichnung value: Inhalt account_alias: - acct: Betreiber des alten Kontos + acct: Adresse des alten Kontos account_migration: - acct: Betreiber des neuen Kontos + acct: Adresse des neuen Kontos account_warning_preset: text: Vorlagentext title: Titel @@ -163,9 +163,9 @@ de: starts_at: Beginn der Ankündigung text: Ankündigung appeal: - text: Teile mit, warum diese Entscheidung zurückgenommen werden soll + text: Erkläre, warum diese Entscheidung rückgängig gemacht werden soll defaults: - autofollow: Lade ein, um deinem Konto zu folgen + autofollow: Meinem Profil automatisch folgen avatar: Profilbild bot: Dies ist ein Bot-Konto chosen_languages: Sprachen einschränken @@ -183,16 +183,16 @@ de: honeypot: "%{label} (nicht ausfüllen)" inbox_url: Inbox-URL des Relais irreversible: Endgültig, nicht nur temporär ausblenden - locale: Sprache des Webinterface + locale: Sprache des Webinterfaces locked: Geschütztes Profil - max_uses: Maximale Anzahl der Nutzer + max_uses: Maximale Verwendungen 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: Boosts in der Timeline gruppieren + setting_aggregate_reblogs: Geteilte Beiträge in den Timelines gruppieren setting_always_send_emails: Benachrichtigungen immer senden setting_auto_play_gif: Animierte GIFs automatisch abspielen setting_boost_modal: Bestätigung vor dem Teilen einholen @@ -280,7 +280,7 @@ de: appeal: wenn jemand einer Moderationsentscheidung widerspricht digest: Zusammenfassung senden favourite: wenn jemand meinen Beitrag favorisiert - follow: wenn mir jemand folgt + follow: wenn mir jemand Neues gefolgt ist follow_request: wenn mir jemand folgen möchte mention: wenn mich jemand erwähnt pending_account: wenn ein neues Konto überprüft werden muss diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index fc8c332e08..593416aca2 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -91,12 +91,13 @@ es: site_short_description: Una breve descripción para ayudar a identificar su servidor de forma única. ¿Quién lo administra, a quién va dirigido? site_terms: Utiliza tu propia política de privacidad o déjala en blanco para usar la predeterminada Puede estructurarse con formato Markdown. site_title: Cómo puede referirse la gente a tu servidor además de por el nombre de dominio. - status_page_url: URL de la página donde la gente pueda ver el estado de este servidor durante la exclusión + status_page_url: URL de la página donde la gente puede ver el estado de este servidor durante una incidencia theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. + trends_as_landing_page: Mostrar contenido en tendencia para usuarios y visitantes en lugar de una descripción de este servidor. Requiere que las tendencias estén habilitadas. form_challenge: current_password: Estás entrando en un área segura imports: @@ -252,11 +253,13 @@ es: site_short_description: Descripción del servidor site_terms: Política de Privacidad site_title: Nombre del servidor + status_page_url: URL de página de estado theme: Tema por defecto thumbnail: Miniatura del servidor timeline_preview: Permitir el acceso no autenticado a las líneas de tiempo públicas trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias + trends_as_landing_page: Usar tendencias como la página de inicio interactions: must_be_follower: Bloquear notificaciones de personas que no te siguen must_be_following: Bloquear notificaciones de personas que no sigues diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 55df2370da..c86fc5a0c4 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -18,6 +18,8 @@ gd: disable: Bac an cleachdaiche o chleachdadh a’ chunntais aca ach na sguab às no falaich an t-susbaint aca. none: Cleachd seo airson rabhadh a chur dhan chleachdaiche gun ghnìomh eile a ghabhail. sensitive: Èignich comharra gu bheil e frionasach air a h-uile ceanglachan meadhain a’ chleachdaiche seo. + silence: Bac an cleachdaiche o bhith a’ postadh le faicsinneachd poblach, falaich na postaichean aca agus brathan o na daoine nach eil ’ga leantainn. Dùinidh seo gach gearan mun chunntas seo. + suspend: Bac eadar-ghnìomh sam bith leis a’ chunntas seo agus sguab às an t-susbaint aige. Gabhaidh seo a neo-dhèanamh am broinn 30 latha. Dùinidh seo gach gearan mun chunntas seo. warning_preset_id: Roghainneil. ’S urrainn dhut teacsa gnàthaichte a chur ri deireadh an ro-sheata fhathast announcement: all_day: Nuair a bhios cromag ris, cha nochd ach cinn-latha na rainse-ama @@ -72,6 +74,7 @@ gd: hide: Falaich an t-susbaint chriathraichte uile gu lèir mar nach robh i ann idir warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dh’innseas tiotal na criathraige form_admin_settings: + activity_api_enabled: Cunntasan nam postaichean a chaidh fhoillseachadh gu h-ionadail, nan cleachdaichean gnìomhach ’s nan clàraidhean ùra an am bucaidean seachdaineil backups_retention_period: Cùm na tasg-lannan a chaidh a ghintinn dhan luchd-cleachdaidh rè an àireamh de làithean a shònraich thu. bootstrap_timeline_accounts: Thèid na cunntasan seo a phrìneachadh air bàrr nam molaidhean leantainn dhan luchd-cleachdaidh ùr. closed_registrations_message: Thèid seo a shealltainn nuair a bhios an clàradh dùinte @@ -79,6 +82,7 @@ gd: custom_css: "’S urrainn dhut stoidhlean gnàthaichte a chur an sàs air an tionndadh-lìn de Mhastodon." mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach. media_cache_retention_period: Thèid na faidhlichean meadhain air an luchdadh a-nuas a sguabadh às às dèidh an àireamh de làithean a shònraich thu nuair a bhios luach dearbh air agus an ath-luachdadh nuair a thèid an iarraidh an uairsin. + peers_api_enabled: Seo liosta de dh’ainmean àrainne ris an do thachair am frithealaiche seo sa cho-shaoghal. Chan eil dàta sam bith ’ga ghabhail a-staigh an-seo mu a bheil thu co-naisgte ri frithealaiche sònraichte gus nach eil ach dìreach gu bheil am frithealaiche agad eòlach air. Thèid seo a chleachdadh le seirbheisean a chruinnicheas stadastaireachd air a’ cho-nasgadh san fharsaingeachd. profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dh’aontaich gun gabh an rùrachadh. require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil site_contact_email: Mar a ruigear thu le ceistean laghail no taice. @@ -87,11 +91,13 @@ gd: site_short_description: Tuairisgeul goirid a chuidicheas le aithneachadh sònraichte an fhrithealaiche agad. Cò leis is cò dha a tha e? site_terms: Cleachd am poileasaidh prìobhaideachd agad fhèin no fàg bàn e gus am fear bunaiteach a chleachdadh. ’S urrainn dhut structar a chur air le co-chàradh Markdown. site_title: An t-ainm a tha air an fhrithealaiche agad seach ainm àrainne. + status_page_url: URL duilleige far am faicear staid an fhrithealaiche seo nuair a bhios e sìos theme: An t-ùrlar a chì na h-aoighean gun chlàradh a-staigh agus an luchd-cleachdaidh ùr. thumbnail: Dealbh mu 2:1 a thèid a shealltainn ri taobh fiosrachadh an fhrithealaiche agad. timeline_preview: "’S urrainn dha na h-aoighean gun chlàradh a-staigh na postaichean poblach as ùire a tha ri fhaighinn air an fhrithealaiche a bhrabhsadh." trendable_by_default: Geàrr leum thar lèirmheas a làimh na susbainte a’ treandadh. Gabhaidh nithean fa leth a thoirt far nan treandaichean fhathast an uairsin. trends: Seallaidh na treandaichean na postaichean, tagaichean hais is naidheachdan a tha fèill mhòr orra air an fhrithealaiche agad. + trends_as_landing_page: Seall susbaint a’ treandadh dhan fheadhainn nach do chlàraich a-steach is do dh’aoighean seach tuairisgeul an fhrithealaiche seo. Feumaidh treandaichean a bhith an comas airson sin. form_challenge: current_password: Tha thu a’ tighinn a-steach gu raon tèarainte imports: @@ -101,7 +107,7 @@ gd: ip_block: comment: Roghainneil. Cùm an cuimhne carson an do chuir thu an riaghailt seo ris. expires_in: Tha an uiread de sheòlaidhean IP cuingichte is thèid an co-roinneadh aig amannan agus an gluasad do chuideigin eile gu tric. Air an adhbhar seo, cha mholamaid bacadh IP gun chrìoch. - ip: Cuir a-steach seòladh IPv4 no IPv6. ’S urrainn dhut rainsean gu lèir a bhacadh le co-chàradh CIDR. Thoir an aire nach gluais thu thu fhèin a-mach! + ip: Cuir a-steach seòladh IPv4 no IPv6. ’S urrainn dhut rainsean gu lèir a bhacadh le co-chàradh CIDR. Thoir an aire nach glais thu thu fhèin a-mach! severities: no_access: Bac inntrigeadh dha na goireasan uile sign_up_block: Cha bhi ùr-chlàradh ceadaichte @@ -227,6 +233,7 @@ gd: hide: Falaich uile gu lèir warn: Falaich le rabhadh form_admin_settings: + activity_api_enabled: Foillsich agragaid dhen stadastaireachd mu ghnìomhachd nan cleachdaichean san API backups_retention_period: Ùine glèidhidh aig tasg-lannan an luchd-cleachdaidh bootstrap_timeline_accounts: Mol na cunntasan seo do chleachdaichean ùra an-còmhnaidh closed_registrations_message: Teachdaireachd ghnàthaichte nuair nach eil clàradh ri fhaighinn @@ -234,6 +241,7 @@ gd: custom_css: CSS gnàthaichte mascot: Suaichnean gnàthaichte (dìleabach) media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan + peers_api_enabled: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API profile_directory: Cuir eòlaire nam pròifil an comas registrations_mode: Cò dh’fhaodas clàradh require_invite_text: Iarr adhbhar clàraidh @@ -245,11 +253,13 @@ gd: site_short_description: Tuairisgeul an fhrithealaiche site_terms: Poileasaidh prìobhaideachd site_title: Ainm an fhrithealaiche + status_page_url: URL duilleag na staide theme: An t-ùrlar bunaiteach thumbnail: Dealbhag an fhrithealaiche timeline_preview: Ceadaich inntrigeadh gun ùghdarrachadh air na loidhnichean-ama phoblach trendable_by_default: Ceadaich treandaichean gun lèirmheas ro làimh trends: Cuir na treandaichean an comas + trends_as_landing_page: Cleachd na treandaichean ’nan duilleag-laighe interactions: must_be_follower: Bac na brathan nach eil o luchd-leantainn must_be_following: Bac na brathan o dhaoine nach lean thu diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 02e317ab6e..92578cfd73 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -251,6 +251,7 @@ pt-BR: site_short_description: Descrição do servidor site_terms: Política de privacidade site_title: Nome do servidor + status_page_url: Endereço da página de status theme: Tema padrão thumbnail: Miniatura do servidor timeline_preview: Permitir acesso não autenticado às linhas do tempo públicas diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 855c402423..8c50b8e94f 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -181,7 +181,7 @@ zh-TW: fields: 個人檔案詮釋資料 header: 封面圖片 honeypot: "%{label} (請勿填寫)" - inbox_url: 中繼收件匣的 URL + inbox_url: 中繼收件匣 URL irreversible: 放棄而非隱藏 locale: 介面語言 locked: 鎖定帳號 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index c453ee125f..6ec3c0c7df 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -117,6 +117,7 @@ sk: redownloaded_msg: Úspešne obnovený profil %{username} z pôvodného reject: Zamietni rejected_msg: Úspešne zamietnutá prihláška %{username} + remote_suspension_irreversible: Údaje tohto účtu boli nenávratne zmazané. remove_avatar: Vymaž avatar remove_header: Vymaž záhlavie removed_avatar_msg: Úspešne odstránený obrázok avatara %{username} @@ -508,13 +509,19 @@ sk: moderation: Moderácia delete: Vymaž edit: Uprav postavenie %{name} + everyone: Východzie oprávnenia privileges: administrator: Správca delete_user_data: Vymaž užívateľské dáta invite_users: Pozvi užívateľov manage_announcements: Spravuj oboznámenia manage_appeals: Spravuj námietky + manage_blocks: Spravuj blokovania + manage_federation: Spravuj federáciu + manage_reports: Spravuj hlásenia manage_roles: Spravuj postavenia + manage_rules: Spravuj pravidlá + manage_settings: Spravuj nastavenia manage_users: Spravuj užívateľov title: Postavenia rules: @@ -1051,7 +1058,7 @@ sk: one: 'obsahoval nepovolený haštag: %{tags}' other: 'obsahoval nepovolené haštagy: %{tags}' errors: - in_reply_not_found: Príspevok, na ktorý sa snažíš odpovedať, už pravdepodobne neexistuje. + in_reply_not_found: Príspevok, na ktorý sa snažíš odpovedať, pravdepodobne neexistuje. open_in_web: Otvor v okne na webe over_character_limit: limit %{max} znakov bol presiahnutý pin_errors: diff --git a/config/locales/th.yml b/config/locales/th.yml index 8081559db8..a18385f596 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -709,7 +709,7 @@ th: preamble: ปรับแต่งส่วนติดต่อเว็บของ Mastodon title: ลักษณะที่ปรากฏ branding: - preamble: ตราสินค้าของเซิร์ฟเวอร์ของคุณสร้างความแตกต่างตราสินค้าของเซิร์ฟเวอร์ของคุณจากเซิร์ฟเวอร์อื่น ๆ ในเครือข่าย อาจแสดงข้อมูลนี้ข้ามสภาพแวดล้อมที่หลากหลาย เช่น ส่วนติดต่อเว็บของ Mastodon, แอปพลิเคชันเนทีฟ, ในการแสดงตัวอย่างลิงก์ในเว็บไซต์อื่น ๆ และภายในแอปการส่งข้อความ และอื่น ๆ ด้วยเหตุผลนี้ จึงเป็นการดีที่สุดที่จะทำให้ข้อมูลนี้ชัดเจน สั้น และกระชับ + preamble: ตราสินค้าของเซิร์ฟเวอร์ของคุณสร้างความแตกต่างของตราสินค้าจากเซิร์ฟเวอร์อื่น ๆ ในเครือข่าย อาจแสดงข้อมูลนี้ข้ามสภาพแวดล้อมที่หลากหลาย เช่น ส่วนติดต่อเว็บของ Mastodon, แอปพลิเคชันเนทีฟ, ในการแสดงตัวอย่างลิงก์ในเว็บไซต์อื่น ๆ และภายในแอปการส่งข้อความ และอื่น ๆ ด้วยเหตุผลนี้ จึงเป็นการดีที่สุดที่จะทำให้ข้อมูลนี้ชัดเจน สั้น และกระชับ title: ตราสินค้า content_retention: preamble: ควบคุมวิธีการจัดเก็บเนื้อหาที่ผู้ใช้สร้างขึ้นใน Mastodon diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 97169cfde2..c83dc27067 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -14,7 +14,7 @@ zh-TW: instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。 last_active: 上次活躍時間 link_verified_on: 此連結的所有權已在 %{date} 檢查過 - nothing_here: 暫時沒有內容可供顯示! + nothing_here: 暫時沒有內容可供顯示! pin_errors: following: 您只能推薦您正在跟隨的使用者。 posts: @@ -25,15 +25,15 @@ zh-TW: action: 執行動作 title: 對 %{acct} 執行站務動作 account_moderation_notes: - create: 記錄 - created_msg: 已新增管理備忘! - destroyed_msg: 成功刪除管理備忘! + create: 新增站務記錄 + created_msg: 已成功新增管理備註! + destroyed_msg: 已成功刪除管理備註! accounts: add_email_domain_block: 將電子郵件網域加入黑名單 approve: 批准 - approved_msg: 成功審核了%{username} 的新帳號申請 + approved_msg: 成功審核了 %{username} 的新帳號申請 are_you_sure: 您確定嗎? - avatar: 頭像 + avatar: 大頭貼 by_domain: 站點 change_email: changed_msg: 電子郵件已成功變更! @@ -71,7 +71,7 @@ zh-TW: followers: 跟隨者 follows: 正在跟隨 header: 開頭 - inbox_url: 收件箱 (Inbox) URL + inbox_url: 收件匣 (Inbox) URL invite_request_text: 加入原因 invited_by: 邀請者 ip: IP 位址 @@ -93,10 +93,10 @@ zh-TW: silenced: 受限的 suspended: 已停權 title: 站務 - moderation_notes: 管理備忘 + moderation_notes: 站務備註 most_recent_activity: 最近活動 most_recent_ip: 最近 IP 位址 - no_account_selected: 未選取任何帳號,因此未變更 + no_account_selected: 因未選取任何帳號,所以什麼事都沒發生 no_limits_imposed: 未受限制 no_role_assigned: 未指派角色 not_subscribed: 未訂閱 @@ -112,7 +112,7 @@ zh-TW: redownload: 重新整理個人檔案 redownloaded_msg: 成功重新載入%{username} 的個人檔案頁面 reject: 拒絕 - rejected_msg: 成功拒絕了%{username} 的新帳號申請 + rejected_msg: 成功婉拒了 %{username} 的新帳號申請 remote_suspension_irreversible: 此帳號之資料已被不可逆地刪除。 remote_suspension_reversible_hint_html: 這個帳號已於此伺服器被停權,所有資料將會於 %{date} 被刪除。在此之前,遠端伺服器可以完全回復此的帳號。如果您想即時刪除這個帳號的資料,您可以在下面進行操作。 remove_avatar: 取消大頭貼 @@ -122,7 +122,7 @@ zh-TW: resend_confirmation: already_confirmed: 此使用者已被確認 send: 重新發送驗證信 - success: 驗證信發送成功! + success: 驗證信發送成功! reset: 重設 reset_password: 重設密碼 resubscribe: 重新訂閱 @@ -132,10 +132,10 @@ zh-TW: search_same_ip: 其他有同個 IP 的使用者 security_measures: only_password: 僅使用密碼 - password_and_2fa: 密碼及二重因素驗證 + password_and_2fa: 密碼及兩階段驗證 (2FA) sensitive: 敏感内容 sensitized: 已標記為敏感內容 - shared_inbox_url: 共享收件箱網址 + shared_inbox_url: 共享收件匣 URL show: created_reports: 建立檢舉 targeted_reports: 由其他人檢舉 @@ -252,7 +252,7 @@ zh-TW: destroy_status_html: "%{name} 刪除了 %{target} 的嘟文" destroy_unavailable_domain_html: "%{name} 恢復了對網域 %{target} 的發送" destroy_user_role_html: "%{name} 刪除了 %{target} 角色" - disable_2fa_user_html: "%{name} 停用了使用者 %{target} 的兩階段認證" + disable_2fa_user_html: "%{name} 停用了使用者 %{target} 的兩階段認證 (2FA) " disable_custom_emoji_html: "%{name} 停用了自訂表情符號 %{target}" disable_sign_in_token_auth_user_html: "%{name} 停用了 %{target} 之使用者電子郵件 token 驗證" disable_user_html: "%{name} 將使用者 %{target} 設定為禁止登入" @@ -307,26 +307,26 @@ zh-TW: custom_emojis: assign_category: 指定分類 by_domain: 站點 - copied_msg: 成功將表情複製到本地 + copied_msg: 成功建立 emoji 表情符號之本地備份 copy: 複製 copy_failed_msg: 無法將表情複製到本地 create_new_category: 建立新分類 - created_msg: 已新增表情符號! + created_msg: 已新增表情符號! delete: 刪除 - destroyed_msg: 已刪除表情符號! + destroyed_msg: 已刪除表情符號! disable: 停用 disabled: 已停用 - disabled_msg: 已停用表情符號 + disabled_msg: 已停用該表情符號 emoji: 表情符號 enable: 啟用 enabled: 已啟用 - enabled_msg: 已啟用表情符號 + enabled_msg: 已啟用該表情符號 image_hint: 檔案大小最大至 %{size} 之 PNG 或 GIF list: 列表 listed: 已顯示 new: title: 加入新的自訂表情符號 - no_emoji_selected: 未選取任何 emoji,因此未變更 + no_emoji_selected: 未選取任何 emoji,所以什麼事都沒發生 not_permitted: 您無權執行此操作 overwrite: 覆蓋 shortcode: 短代碼 @@ -336,7 +336,7 @@ zh-TW: unlist: 不公開 unlisted: 已隱藏 update_failed_msg: 無法更新表情符號 - updated_msg: 已更新表情符號! + updated_msg: 已更新表情符號! upload: 上傳新的表情符號 dashboard: active_users: 活躍使用者 @@ -390,12 +390,12 @@ zh-TW: silence: 靜音 suspend: 停權 title: 新增封鎖站點 - no_domain_block_selected: 因未選取項目,而未更改網域黑名單 + no_domain_block_selected: 因未選取網域黑名單,所以什麼事都沒發生 not_permitted: 您無權執行此操作 obfuscate: 混淆網域名稱 obfuscate_hint: 若啟用網域廣告列表限制,於列表部份混淆網域名稱 private_comment: 私人留言 - private_comment_hint: 請提供更多有關此站台限制的資訊以供版主作內部參考。 + private_comment_hint: 請提供更多有關此站台限制的資訊以供管理員作內部參考。 public_comment: 公開留言 public_comment_hint: 如果您已經啟用站台限制列表的公告,請為一般大眾提供更多有關此站台限制的資訊。 reject_media: 拒絕媒體檔案 @@ -418,7 +418,7 @@ zh-TW: create: 新增網域 resolve: 解析網域 title: 新增電子郵件黑名單項目 - no_email_domain_block_selected: 因未選取項目,而未更改電子郵件網域黑名單 + no_email_domain_block_selected: 因未選取電子郵件網域黑名單,所以什麼事都沒發生 resolved_dns_records_hint_html: 網域名稱解析為以下 MX 網域,這些網域最終負責接收電子郵件。封鎖 MX 網域將會封鎖任何來自使用相同 MX 網域的電子郵件註冊,即便可見的域名是不同的也一樣。請注意,不要封鎖主要的電子郵件服務提供商。 resolved_through_html: 透過 %{domain} 解析 title: 電子郵件黑名單 @@ -439,7 +439,7 @@ zh-TW: no_file: 尚未選擇檔案 follow_recommendations: description_html: |- - 跟隨建議幫助新使用者們快速找到有趣的內容. 當使用者沒有與其他帳號有足夠多的互動以建立個人化跟隨建議時,這些帳號將會被推荐。這些帳號將基於某選定語言之高互動和高本地跟隨者數量帳號而 + 跟隨建議幫助新使用者們快速找到有趣的內容。當使用者沒有與其他帳號有足夠多的互動以建立個人化跟隨建議時,這些帳號將會被推薦。這些帳號將基於某選定語言之高互動和高本地跟隨者數量帳號而 每日重新更新。 language: 對於語言 status: 狀態 @@ -532,7 +532,7 @@ zh-TW: '94670856': 3 年 new: title: 建立新的 IP 規則 - no_ip_block_selected: 因為沒有選擇任何 IP 規則,所以什麼事都沒發生 + no_ip_block_selected: 因未選取任何 IP 規則,所以什麼事都沒發生 title: IP 規則 relationships: title: "%{acct} 的關係" @@ -545,7 +545,7 @@ zh-TW: enable: 啟用 enable_hint: 啟用後,您的伺服器將訂閱該中繼的所有公開文章,並將會此伺服器的公開文章發送給它。 enabled: 已啟用 - inbox_url: 中繼URL + inbox_url: 中繼 URL pending: 等待中繼站審核 save_and_enable: 儲存並啟用 setup: 設定中繼連結 @@ -553,8 +553,8 @@ zh-TW: status: 狀態 title: 中繼 report_notes: - created_msg: 檢舉記錄建立成功! - destroyed_msg: 檢舉記錄刪除成功! + created_msg: 檢舉備註建立成功! + destroyed_msg: 檢舉備註刪除成功! reports: account: notes: @@ -573,7 +573,7 @@ zh-TW: add_to_report: 加入更多至報告 are_you_sure: 您確定嗎? assign_to_self: 指派給自己 - assigned: 指派負責人 + assigned: 指派站務 by_target_domain: 檢舉帳號之網域 category: 分類 category_description_html: 此帳號及/或被檢舉內容之原因會被引用在檢舉帳號通知中 @@ -590,13 +590,13 @@ zh-TW: mark_as_unresolved: 標記為「未解決」 no_one_assigned: 沒有人 notes: - create: 建立記錄 - create_and_resolve: 建立記錄並標記為「已解決」 - create_and_unresolve: 建立記錄並標記「未解決」 + create: 新增備註 + create_and_resolve: 新增備註並標記為「已解決」 + create_and_unresolve: 新增備註並標記「未解決」 delete: 刪除 placeholder: 記錄已執行的動作,或其他相關的更新... - title: 註記 - notes_description_html: 檢視及留下些給其他管理員和未來的自己的註記 + title: 備註 + notes_description_html: 檢視及留下些給其他管理員和未來的自己的備註 processed_msg: '檢舉報告 #%{id} 已被成功處理' quick_actions_description_html: 採取一個快速行動,或者下捲以檢視檢舉內容: remote_user_placeholder: 來自 %{instance} 之遠端使用者 @@ -605,7 +605,7 @@ zh-TW: reported_account: 被檢舉使用者 reported_by: 檢舉人 resolved: 已解決 - resolved_msg: 檢舉已處理! + resolved_msg: 檢舉報告已處理完成! skip_to_actions: 跳過行動 status: 嘟文 statuses: 被檢舉的內容 @@ -760,7 +760,7 @@ zh-TW: media: title: 媒體檔案 metadata: 詮釋資料 - no_status_selected: 因未選擇嘟文而未變更。 + no_status_selected: 因未選取嘟文,所以什麼事都沒發生。 open: 公開嘟文 original_status: 原始嘟文 reblogs: 轉嘟 @@ -782,7 +782,7 @@ zh-TW: appeal_pending: 申訴待審中 system_checks: database_schema_check: - message_html: 有挂起的数据库迁移,请运行它们以确保应用程序按照预期运行。 + message_html: 發現尚待處理的資料庫遷移 (database migration)。請執行它們以確保應用程式如期運行。 elasticsearch_running_check: message_html: 無法連接 Elasticsearch。請檢查是否正在執行中,或者已關閉全文搜尋。 elasticsearch_version_check: @@ -807,9 +807,9 @@ zh-TW: description_html: 這些連結是正在被您伺服器上看到該嘟文之帳號大量分享。這些連結可以幫助您的使用者探索現在世界上正在發生的事情。除非您核准該發行者,連結將不被公開展示。您也可以核准或駁回個別連結。 disallow: 不允許連結 disallow_provider: 不允許發行者 - no_link_selected: 未選取任何鏈結,因此未變更 + no_link_selected: 因未選取任何鏈結,所以什麼事都沒發生 publishers: - no_publisher_selected: 未選取任何發行者,因此未變更 + no_publisher_selected: 因未選取任何發行者,所以什麼事都沒發生 shared_by_over_week: other: 上週被 %{count} 名使用者分享 title: 熱門連結 @@ -828,7 +828,7 @@ zh-TW: description_html: 這些是您伺服器上已知被正在大量分享及加入最愛之嘟文。這些嘟文能幫助您伺服器上舊雨新知發現更多帳號來跟隨。除非您核准該作者且作者允許他們的帳號被推薦至其他人,嘟文將不被公開展示。您可以核准或駁回個別嘟文。 disallow: 不允許嘟文 disallow_account: 不允許作者 - no_status_selected: 未選取任何熱門嘟文,因此未變更 + no_status_selected: 因未選取任何熱門嘟文,所以什麼事都沒發生 not_discoverable: 嘟文作者選擇不被發現 shared_by: other: 分享過或/及收藏過 %{friendly_count} 次 @@ -843,7 +843,7 @@ zh-TW: tag_uses_measure: 總使用次數 description_html: 這些主題標籤正在您的伺服器上大量嘟文中出現。這些主題標籤能幫助您的使用者發現人們正集中討論的內容。除非您核准,主題標籤將不被公開展示。 listable: 能被建議 - no_tag_selected: 未選取任何主題標籤,因此未變更 + no_tag_selected: 因未選取任何主題標籤,所以什麼事都沒發生 not_listable: 不能被建議 not_trendable: 不會登上熱門 not_usable: 不可被使用 @@ -936,15 +936,15 @@ zh-TW: notification_preferences: 變更電子郵件設定 salutation: "%{name}、" settings: 變更電子郵件設定︰%{link} - view: '進入瀏覽:' + view: 進入瀏覽: view_profile: 檢視個人檔案 view_status: 檢視嘟文 applications: - created: 已建立應用 - destroyed: 已刪除應用 - regenerate_token: 重設 token - token_regenerated: 已重設 token - warning: 警告,不要把它分享給任何人! + created: 已建立應用程式 + destroyed: 已刪除應用程式 + regenerate_token: 重新產生存取 token + token_regenerated: 已重新產生存取 token + warning: 警告,不要把它分享給任何人! your_token: 您的 access token auth: apply_for_account: 申請帳號 @@ -984,7 +984,7 @@ zh-TW: set_new_password: 設定新密碼 setup: email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。 - email_settings_hint_html: 請確認 e-mail 是否傳送到 %{email} 。如果不對的話,可以從帳號設定修改。 + email_settings_hint_html: 請確認 e-mail 是否傳送至 %{email} 。如果電子郵件地址不正確的話,可以從帳號設定修改。 title: 設定 sign_in: preamble_html: 請登入您於 %{domain} 之帳號密碼。若您的帳號託管於其他伺服器,您將無法於此登入。 @@ -1174,7 +1174,7 @@ zh-TW: other: 已選取此頁面上 %{count} 個項目。 all_matching_items_selected_html: other: 已選取符合您搜尋的 %{count} 個項目。 - changes_saved_msg: 已成功儲存修改! + changes_saved_msg: 已成功儲存變更! copy: 複製 delete: 刪除 deselect: 取消選擇全部 @@ -1198,7 +1198,7 @@ zh-TW: overwrite: 覆蓋 overwrite_long: 以新的紀錄覆蓋目前紀錄 preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括跟隨的使用者、封鎖的使用者名單。 - success: 資料檔上傳成功,正在匯入,請稍候 + success: 資料上傳成功,正在匯入,請稍候 types: blocking: 您封鎖的使用者名單 bookmarks: 書籤 @@ -1374,7 +1374,7 @@ zh-TW: confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎? confirm_remove_selected_follows: 您確定要移除這些選取的正在跟隨您的帳號嗎? dormant: 潛水中 - follow_selected_followers: 跟隨所選的跟隨者 + follow_selected_followers: 跟隨所選取的跟隨者 followers: 跟隨者 following: 跟隨中 invited: 已邀請 @@ -1384,9 +1384,9 @@ zh-TW: mutual: 跟隨彼此 primary: 主要 relationship: 關係 - remove_selected_domains: 從所選網域中移除所有跟隨者 - remove_selected_followers: 移除所選的跟隨者 - remove_selected_follows: 取消跟隨所選使用者 + remove_selected_domains: 從所選取網域中移除所有跟隨者 + remove_selected_followers: 移除所選取的跟隨者 + remove_selected_follows: 取消跟隨所選取使用者 status: 帳號狀態 remote_follow: missing_resource: 無法找到資源 @@ -1566,7 +1566,7 @@ zh-TW: time: "%H:%M" two_factor_authentication: add: 新增 - disable: 停用 + disable: 停用兩階段驗證 disabled_success: 已成功啟用兩階段驗證 edit: 編輯 enabled: 兩階段認證已啟用 diff --git a/yarn.lock b/yarn.lock index 09a319e8ae..9b2661f2c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,7 +1469,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.1", "@jest/types@^29.4.2": +"@jest/types@^29.4.2": version "29.4.2" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== @@ -6804,7 +6804,7 @@ jest-snapshot@^29.4.2: pretty-format "^29.4.2" semver "^7.3.5" -jest-util@^29.4.1, jest-util@^29.4.2: +jest-util@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== From 1f957c63253059e957231759fb6a7697b0a1f1b3 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Feb 2023 20:24:05 -0500 Subject: [PATCH 0423/1220] Use .nvmrc file for CI setup-node (#23562) --- .github/workflows/lint-css.yml | 1 + .github/workflows/lint-js.yml | 1 + .github/workflows/lint-json.yml | 1 + .github/workflows/lint-yml.yml | 1 + 4 files changed, 4 insertions(+) diff --git a/.github/workflows/lint-css.yml b/.github/workflows/lint-css.yml index 431b88e8de..e2571296aa 100644 --- a/.github/workflows/lint-css.yml +++ b/.github/workflows/lint-css.yml @@ -36,6 +36,7 @@ jobs: uses: actions/setup-node@v3 with: cache: yarn + node-version-file: '.nvmrc' - name: Install all yarn packages run: yarn --frozen-lockfile diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml index 49d989771c..c349f269d2 100644 --- a/.github/workflows/lint-js.yml +++ b/.github/workflows/lint-js.yml @@ -32,6 +32,7 @@ jobs: uses: actions/setup-node@v3 with: cache: yarn + node-version-file: '.nvmrc' - name: Install all yarn packages run: yarn --frozen-lockfile diff --git a/.github/workflows/lint-json.yml b/.github/workflows/lint-json.yml index 524ed083aa..b89d0a0f70 100644 --- a/.github/workflows/lint-json.yml +++ b/.github/workflows/lint-json.yml @@ -32,6 +32,7 @@ jobs: uses: actions/setup-node@v3 with: cache: yarn + node-version-file: '.nvmrc' - name: Install all yarn packages run: yarn --frozen-lockfile diff --git a/.github/workflows/lint-yml.yml b/.github/workflows/lint-yml.yml index 48f8170b3b..6865d73dde 100644 --- a/.github/workflows/lint-yml.yml +++ b/.github/workflows/lint-yml.yml @@ -34,6 +34,7 @@ jobs: uses: actions/setup-node@v3 with: cache: yarn + node-version-file: '.nvmrc' - name: Install all yarn packages run: yarn --frozen-lockfile From 29ec2c4fb513b54eec66606a7608a44e782986d5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Feb 2023 22:59:45 -0500 Subject: [PATCH 0424/1220] Trigger CI build on .nvmrc change (#23627) --- .github/workflows/lint-css.yml | 2 ++ .github/workflows/lint-js.yml | 2 ++ .github/workflows/lint-json.yml | 2 ++ .github/workflows/lint-yml.yml | 2 ++ 4 files changed, 8 insertions(+) diff --git a/.github/workflows/lint-css.yml b/.github/workflows/lint-css.yml index e2571296aa..e13d227bdb 100644 --- a/.github/workflows/lint-css.yml +++ b/.github/workflows/lint-css.yml @@ -6,6 +6,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - 'stylelint.config.js' - '**/*.css' @@ -17,6 +18,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - 'stylelint.config.js' - '**/*.css' diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml index c349f269d2..3e0d9d1a92 100644 --- a/.github/workflows/lint-js.yml +++ b/.github/workflows/lint-js.yml @@ -6,6 +6,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '.eslint*' - '**/*.js' @@ -15,6 +16,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '.eslint*' - '**/*.js' diff --git a/.github/workflows/lint-json.yml b/.github/workflows/lint-json.yml index b89d0a0f70..98f101ad95 100644 --- a/.github/workflows/lint-json.yml +++ b/.github/workflows/lint-json.yml @@ -6,6 +6,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '**/*.json' - '.github/workflows/lint-json.yml' @@ -15,6 +16,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '**/*.json' - '.github/workflows/lint-json.yml' diff --git a/.github/workflows/lint-yml.yml b/.github/workflows/lint-yml.yml index 6865d73dde..6f79babcfd 100644 --- a/.github/workflows/lint-yml.yml +++ b/.github/workflows/lint-yml.yml @@ -6,6 +6,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '**/*.yaml' - '**/*.yml' @@ -16,6 +17,7 @@ on: paths: - 'package.json' - 'yarn.lock' + - '.nvmrc' - '.prettier*' - '**/*.yaml' - '**/*.yml' From 5e1c0c3d946bef488f8e156ed3b5034740e731df Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 16 Feb 2023 01:30:56 -0500 Subject: [PATCH 0425/1220] Enable ESLint Promise plugin defaults (#22229) --- .eslintrc.js | 5 +++++ app/javascript/mastodon/utils/notifications.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 4d81aa47e0..b5ab511f8b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,6 +6,7 @@ module.exports = { 'plugin:react/recommended', 'plugin:jsx-a11y/recommended', 'plugin:import/recommended', + 'plugin:promise/recommended', ], env: { @@ -199,11 +200,15 @@ module.exports = { ], 'import/no-webpack-loader-syntax': 'error', + 'promise/always-return': 'off', 'promise/catch-or-return': [ 'error', { allowFinally: true, }, ], + 'promise/no-callback-in-promise': 'off', + 'promise/no-nesting': 'off', + 'promise/no-promise-in-callback': 'off', }, }; diff --git a/app/javascript/mastodon/utils/notifications.js b/app/javascript/mastodon/utils/notifications.js index 7634cac21f..3cdf7caea0 100644 --- a/app/javascript/mastodon/utils/notifications.js +++ b/app/javascript/mastodon/utils/notifications.js @@ -3,7 +3,7 @@ const checkNotificationPromise = () => { try { - // eslint-disable-next-line promise/catch-or-return + // eslint-disable-next-line promise/catch-or-return, promise/valid-params Notification.requestPermission().then(); } catch(e) { return false; From 68a92c81bfb1bc4703cd4974321b8cb168793541 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 16 Feb 2023 01:33:50 -0500 Subject: [PATCH 0426/1220] Generate minimimal Rubocop Todo file (#23629) --- .github/workflows/lint-ruby.yml | 35 +- .rubocop.yml | 418 +--- .rubocop_todo.yml | 4055 +++++++++++++++++++++++++++++++ 3 files changed, 4100 insertions(+), 408 deletions(-) create mode 100644 .rubocop_todo.yml diff --git a/.github/workflows/lint-ruby.yml b/.github/workflows/lint-ruby.yml index b834e3053f..54f45796c1 100644 --- a/.github/workflows/lint-ruby.yml +++ b/.github/workflows/lint-ruby.yml @@ -5,7 +5,8 @@ on: - 'dependabot/**' paths: - 'Gemfile*' - - '.rubocop.yml' + - '.rubocop*.yml' + - '.ruby-version' - '**/*.rb' - '**/*.rake' - '.github/workflows/lint-ruby.yml' @@ -13,7 +14,8 @@ on: pull_request: paths: - 'Gemfile*' - - '.rubocop.yml' + - '.rubocop*.yml' + - '.ruby-version' - '**/*.rb' - '**/*.rake' - '.github/workflows/lint-ruby.yml' @@ -21,21 +23,22 @@ on: jobs: lint: runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Set-up RuboCop Problem Mathcher + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: .ruby-version + bundler-cache: true + + - name: Set-up RuboCop Problem Matcher uses: r7kamura/rubocop-problem-matchers-action@v1 - name: Run rubocop - uses: github/super-linter@v4 - env: - DEFAULT_BRANCH: main - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - LINTER_RULES_PATH: . - RUBY_CONFIG_FILE: .rubocop.yml - VALIDATE_ALL_CODEBASE: false - VALIDATE_RUBY: true + run: bundle exec rubocop diff --git a/.rubocop.yml b/.rubocop.yml index 3c92234705..5278ee38ca 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,9 @@ +inherit_from: .rubocop_todo.yml + +inherit_mode: + merge: + - Exclude + require: - rubocop-rails - rubocop-rspec @@ -23,50 +29,19 @@ AllCops: - 'lib/json_ld/*' - 'lib/templates/**/*' -Bundler/OrderedGems: - Enabled: false - -Layout/AccessModifierIndentation: - EnforcedStyle: indent - -Layout/EmptyLineAfterMagicComment: - Enabled: false - -Layout/EmptyLineAfterGuardClause: - Enabled: false - -Layout/EmptyLineBetweenDefs: - AllowAdjacentOneLineDefs: true - -Layout/EmptyLinesAroundAttributeAccessor: - Enabled: true - Layout/FirstHashElementIndentation: EnforcedStyle: consistent -Layout/HashAlignment: - Enabled: false - -Layout/SpaceAroundMethodCallOperator: - Enabled: true - -Layout/SpaceInsideHashLiteralBraces: - EnforcedStyle: space - -Lint/DeprecatedOpenSSLConstant: - Enabled: true - -Lint/DuplicateElsifCondition: - Enabled: true - -Lint/MixedRegexpCaptureTypes: - Enabled: true - -Lint/RaiseException: - Enabled: true - -Lint/StructNewOverride: - Enabled: true +Layout/LineLength: + Max: 140 # RuboCop default 120 + AllowedPatterns: + # Allow comments to be long lines + - !ruby/regexp / \# .*$/ + - !ruby/regexp /^\# .*$/ + Exclude: + - lib/**/*cli*.rb + - db/*migrate/**/* + - db/seeds/**/* Lint/UselessAccessModifier: ContextCreatingMethods: @@ -77,403 +52,62 @@ Metrics/AbcSize: Exclude: - 'lib/**/*cli*.rb' - db/*migrate/**/* - - lib/paperclip/color_extractor.rb - - app/workers/scheduler/follow_recommendations_scheduler.rb - - app/services/activitypub/fetch*_service.rb - - lib/paperclip/**/* - CountRepeatedAttributes: false - AllowedMethods: - - update_media_attachments! - - account_link_to - - attempt_oembed - - build_crutches - - calculate_scores - - cc - - dump_actor! - - filter_from_home? - - hydrate - - import_bookmarks! - - import_relationships! - - initialize - - link_to_mention - - log_target - - matches_time_window? - - parse_metadata - - perform_statuses_search! - - privatize_media_attachments! - - process_update - - publish_media_attachments! - - remotable_attachment - - render_initial_state - - render_with_cache - - searchable_by - - self.cached_filters_for - - set_fetchable_attributes! - - signed_request_actor - - statuses_to_delete - - update_poll! Metrics/BlockLength: - Max: 55 + Max: 55 # Default 25 + CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' - CountComments: false - CountAsOne: [array, heredoc] - AllowedMethods: - - task - - namespace - - class_methods - - included Metrics/BlockNesting: - Max: 3 Exclude: - 'lib/mastodon/*_cli.rb' Metrics/ClassLength: - CountComments: false - Max: 500 + Max: 500 # Default 100 CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' Metrics/CyclomaticComplexity: - Max: 12 + Max: 12 # Default 7 Exclude: - lib/mastodon/*cli*.rb - db/*migrate/**/* - AllowedMethods: - - attempt_oembed - - blocked? - - build_crutches - - calculate_scores - - cc - - discover_endpoint! - - filter_from_home? - - hydrate - - klass - - link_to_mention - - log_target - - matches_time_window? - - patch_for_forwarding! - - preprocess_attributes! - - process_update - - remotable_attachment - - scan_text! - - self.cached_filters_for - - set_fetchable_attributes! - - setup_redis_env_url - - update_media_attachments! - -Layout/LineLength: - Max: 140 # RuboCop default 120 - AllowHeredoc: true - AllowURI: true - IgnoreCopDirectives: true - AllowedPatterns: - # Allow comments to be long lines - - !ruby/regexp / \# .*$/ - - !ruby/regexp /^\# .*$/ - Exclude: - - lib/**/*cli*.rb - - db/*migrate/**/* - - db/seeds/**/* Metrics/MethodLength: - CountComments: false - CountAsOne: [array, heredoc] Max: 25 # RuboCop default 10 + CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' - AllowedMethods: - - account_link_to - - attempt_oembed - - body_with_limit - - build_crutches - - cached_filters_for - - calculate_scores - - check_webfinger! - - clean_feeds! - - collection_items - - collection_presenter - - copy_account_notes! - - deduplicate_accounts! - - deduplicate_conversations! - - deduplicate_local_accounts! - - deduplicate_statuses! - - deduplicate_tags! - - deduplicate_users! - - discover_endpoint! - - extract_extra_uris_with_indices - - extract_hashtags_with_indices - - extract_mentions_or_lists_with_indices - - filter_from_home? - - from_elasticsearch - - handle_explicit_update! - - handle_mark_as_sensitive! - - hsl_to_rgb - - import_bookmarks! - - import_domain_blocks! - - import_relationships! - - ldap_options - - matches_time_window? - - outbox_presenter - - pam_get_user - - parallelize_with_progress - - parse_and_transform - - patch_for_forwarding! - - populate_home - - post_process_style - - preload_cache_collection_target_statuses - - privatize_media_attachments! - - provides_callback_for - - publish_media_attachments! - - relevant_account_timestamp - - remotable_attachment - - rgb_to_hsl - - rss_status_content_format - - set_fetchable_attributes! - - setup_redis_env_url - - signed_request_actor - - to_preview_card_attributes - - upgrade_storage_filesystem - - upgrade_storage_s3 - - user_settings_params - - hydrate - - cc - - self_destruct Metrics/ModuleLength: - CountComments: false - Max: 200 + Max: 200 # Default 100 CountAsOne: [array, heredoc] -Metrics/ParameterLists: - Max: 5 # RuboCop default 5 - CountKeywordArgs: true # RuboCop default true - MaxOptionalParameters: 3 # RuboCop default 3 - Exclude: - - app/models/concerns/account_interactions.rb - - app/services/activitypub/fetch_remote_account_service.rb - - app/services/activitypub/fetch_remote_actor_service.rb - Metrics/PerceivedComplexity: Max: 16 # RuboCop default 8 - AllowedMethods: - - attempt_oembed - - build_crutches - - calculate_scores - - deduplicate_users! - - discover_endpoint! - - filter_from_home? - - hydrate - - patch_for_forwarding! - - process_update - - remove_orphans - - update_media_attachments! - -Naming/MemoizedInstanceVariableName: - Enabled: false - -Naming/MethodParameterName: - Enabled: true - -Rails: - Enabled: true - -Rails/ApplicationController: - Enabled: false - Exclude: - - 'app/controllers/well_known/**/*.rb' - -Rails/BelongsTo: - Enabled: false - -Rails/ContentTag: - Enabled: false - -Rails/EnumHash: - Enabled: false Rails/Exit: Exclude: - - 'lib/mastodon/*' + - 'lib/mastodon/*_cli.rb' + - 'lib/mastodon/cli_helper.rb' - 'lib/cli.rb' -Rails/FilePath: - Enabled: false - -Rails/HasAndBelongsToMany: - Enabled: false - -Rails/HasManyOrHasOneDependent: - Enabled: false - -Rails/HelperInstanceVariable: - Enabled: false - -Rails/HttpStatus: - Enabled: false - -Rails/IndexBy: - Enabled: false - -Rails/InverseOf: - Enabled: false - -Rails/LexicallyScopedActionFilter: - Enabled: false - -Rails/OutputSafety: - Enabled: true - -Rails/RakeEnvironment: - Enabled: false - -Rails/RedundantForeignKey: - Enabled: false - -Rails/SkipsModelValidations: - Enabled: false - -Rails/UniqueValidationWithoutIndex: - Enabled: false - -Style/AccessorGrouping: - Enabled: true - -Style/AccessModifierDeclarations: - Enabled: false - -Style/ArrayCoercion: - Enabled: true - -Style/BisectedAttrAccessor: - Enabled: true - -Style/CaseLikeIf: - Enabled: false - -Style/ClassAndModuleChildren: - Enabled: false - -Style/CollectionMethods: - Enabled: true - PreferredMethods: - find_all: 'select' - -Style/Documentation: - Enabled: false - -Style/DoubleNegation: - Enabled: true - -Style/ExpandPathArguments: - Enabled: false - -Style/ExponentialNotation: - Enabled: true - -Style/FormatString: - Enabled: false - -Style/FormatStringToken: - Enabled: false - -Style/FrozenStringLiteralComment: - Enabled: true - -Style/GuardClause: - Enabled: false - -Style/HashAsLastArrayItem: - Enabled: false - -Style/HashEachMethods: - Enabled: true - -Style/HashLikeCase: - Enabled: true - -Style/HashTransformKeys: - Enabled: true - -Style/HashTransformValues: +Style/Copyright: Enabled: false + AutocorrectNotice: Style/HashSyntax: - Enabled: true EnforcedStyle: ruby19_no_mixed_keys -Style/IfUnlessModifier: - Enabled: false - -Style/InverseMethods: - Enabled: false - -Style/Lambda: - Enabled: false - -Style/MutableConstant: - Enabled: false - Style/PercentLiteralDelimiters: PreferredDelimiters: '%i': '()' '%w': '()' -Style/PerlBackrefs: - AutoCorrect: false - -Style/RedundantFetchBlock: - Enabled: true - -Style/RedundantFileExtensionInRequire: - Enabled: true - -Style/RedundantRegexpCharacterClass: - Enabled: false - -Style/RedundantRegexpEscape: - Enabled: false - -Style/RedundantReturn: - Enabled: true - -Style/RedundantBegin: - Enabled: false - -Style/RegexpLiteral: - Enabled: false - -Style/RescueStandardError: - Enabled: true - -Style/SignalException: - Enabled: false - -Style/SlicingWithRange: - Enabled: true - -Style/SymbolArray: - Enabled: false - Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: 'comma' Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: 'comma' - -Style/UnpackFirst: - Enabled: false - -RSpec/ScatteredSetup: - Enabled: false -RSpec/ImplicitExpect: - Enabled: false -RSpec/NamedSubject: - Enabled: false -RSpec/DescribeClass: - Enabled: false -RSpec/LetSetup: - Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 0000000000..d1d5e06122 --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,4055 @@ +# This configuration was generated by +# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit` +# on 2023-02-16 04:55:24 UTC using RuboCop version 1.45.1. +# The point is for the user to remove these configuration records +# one by one as the offenses are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of RuboCop, may require this file to be generated again. + +# Offense count: 15 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include. +# Include: **/*.gemfile, **/Gemfile, **/gems.rb +Bundler/OrderedGems: + Exclude: + - 'Gemfile' + +# Offense count: 5 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: with_first_argument, with_fixed_indentation +Layout/ArgumentAlignment: + Exclude: + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleAlignWith. +# SupportedStylesAlignWith: either, start_of_block, start_of_line +Layout/BlockAlignment: + Exclude: + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Layout/ClosingParenthesisIndentation: + Exclude: + - 'spec/controllers/auth/sessions_controller_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowForAlignment. +Layout/CommentIndentation: + Exclude: + - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + +# Offense count: 22 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: leading, trailing +Layout/DotPosition: + Exclude: + - 'lib/paperclip/attachment_extensions.rb' + - 'spec/routing/api_routing_spec.rb' + - 'spec/routing/well_known_routes_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Layout/ElseAlignment: + Exclude: + - 'db/migrate/20161006213403_rails_settings_migration.rb' + +# Offense count: 81 +# This cop supports safe autocorrection (--autocorrect). +Layout/EmptyLineAfterGuardClause: + Exclude: + - 'app/controllers/api/v1/tags_controller.rb' + - 'app/controllers/application_controller.rb' + - 'app/controllers/concerns/session_tracking_concern.rb' + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/application_helper.rb' + - 'app/lib/activitypub/activity.rb' + - 'app/lib/activitypub/tag_manager.rb' + - 'app/lib/request.rb' + - 'app/lib/settings/scoped_settings.rb' + - 'app/lib/status_filter.rb' + - 'app/lib/tag_manager.rb' + - 'app/lib/webfinger.rb' + - 'app/models/account.rb' + - 'app/models/account_conversation.rb' + - 'app/models/admin/import.rb' + - 'app/models/custom_filter.rb' + - 'app/models/favourite.rb' + - 'app/models/form/admin_settings.rb' + - 'app/models/poll.rb' + - 'app/models/session_activation.rb' + - 'app/models/setting.rb' + - 'app/models/status_edit.rb' + - 'app/models/user.rb' + - 'app/models/user_role.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/activitypub/fetch_replies_service.rb' + - 'app/services/activitypub/process_account_service.rb' + - 'app/services/favourite_service.rb' + - 'app/services/notify_service.rb' + - 'app/services/post_status_service.rb' + - 'app/services/vote_service.rb' + - 'app/validators/follow_limit_validator.rb' + - 'app/validators/unreserved_username_validator.rb' + - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' + - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb' + - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' + - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + - 'lib/mastodon/domains_cli.rb' + +# Offense count: 71 +# This cop supports safe autocorrection (--autocorrect). +Layout/EmptyLineAfterMagicComment: + Exclude: + - 'Capfile' + - 'app/helpers/languages_helper.rb' + - 'app/models/account.rb' + - 'app/models/account_conversation.rb' + - 'app/models/account_domain_block.rb' + - 'app/models/account_moderation_note.rb' + - 'app/models/account_note.rb' + - 'app/models/account_pin.rb' + - 'app/models/account_stat.rb' + - 'app/models/account_summary.rb' + - 'app/models/account_warning.rb' + - 'app/models/backup.rb' + - 'app/models/block.rb' + - 'app/models/bookmark.rb' + - 'app/models/canonical_email_block.rb' + - 'app/models/conversation.rb' + - 'app/models/conversation_mute.rb' + - 'app/models/custom_emoji.rb' + - 'app/models/custom_filter.rb' + - 'app/models/custom_filter_keyword.rb' + - 'app/models/custom_filter_status.rb' + - 'app/models/device.rb' + - 'app/models/domain_block.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/encrypted_message.rb' + - 'app/models/favourite.rb' + - 'app/models/featured_tag.rb' + - 'app/models/follow.rb' + - 'app/models/follow_recommendation.rb' + - 'app/models/follow_recommendation_suppression.rb' + - 'app/models/follow_request.rb' + - 'app/models/identity.rb' + - 'app/models/import.rb' + - 'app/models/instance.rb' + - 'app/models/invite.rb' + - 'app/models/ip_block.rb' + - 'app/models/list.rb' + - 'app/models/list_account.rb' + - 'app/models/login_activity.rb' + - 'app/models/media_attachment.rb' + - 'app/models/mention.rb' + - 'app/models/mute.rb' + - 'app/models/notification.rb' + - 'app/models/one_time_key.rb' + - 'app/models/poll.rb' + - 'app/models/poll_vote.rb' + - 'app/models/preview_card.rb' + - 'app/models/preview_card_provider.rb' + - 'app/models/relay.rb' + - 'app/models/report.rb' + - 'app/models/report_note.rb' + - 'app/models/session_activation.rb' + - 'app/models/setting.rb' + - 'app/models/site_upload.rb' + - 'app/models/status.rb' + - 'app/models/status_edit.rb' + - 'app/models/status_pin.rb' + - 'app/models/status_stat.rb' + - 'app/models/tag.rb' + - 'app/models/unavailable_domain.rb' + - 'app/models/user.rb' + - 'app/models/user_ip.rb' + - 'app/models/web/push_subscription.rb' + - 'app/models/web/setting.rb' + - 'app/models/webauthn_credential.rb' + - 'config.ru' + - 'db/migrate/20220613110834_add_action_to_custom_filters.rb' + - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb' + - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb' + - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb' + - 'spec/models/tag_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Layout/EmptyLines: + Exclude: + - 'spec/controllers/authorize_interactions_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + +# Offense count: 9 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: empty_lines, no_empty_lines +Layout/EmptyLinesAroundBlockBody: + Exclude: + - 'spec/fabricators/system_key_fabricator.rb' + - 'spec/models/account_alias_spec.rb' + - 'spec/models/device_spec.rb' + - 'spec/models/encrypted_message_spec.rb' + - 'spec/models/login_activity_spec.rb' + - 'spec/models/one_time_key_spec.rb' + - 'spec/models/system_key_spec.rb' + - 'spec/services/bootstrap_timeline_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleAlignWith, Severity. +# SupportedStylesAlignWith: keyword, variable, start_of_line +Layout/EndAlignment: + Exclude: + - 'db/migrate/20161006213403_rails_settings_migration.rb' + +# Offense count: 19 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment. +Layout/ExtraSpacing: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' + - 'spec/fabricators/custom_filter_keyword_fabricator.rb' + - 'spec/fabricators/poll_vote_fabricator.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/services/resolve_url_service_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + - 'spec/validators/unreserved_username_validator_spec.rb' + - 'spec/workers/activitypub/move_distribution_worker_spec.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses +Layout/FirstArgumentIndentation: + Exclude: + - 'spec/services/remove_status_service_spec.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: special_inside_parentheses, consistent, align_brackets +Layout/FirstArrayElementIndentation: + Exclude: + - 'spec/controllers/admin/dashboard_controller_spec.rb' + - 'spec/workers/activitypub/move_distribution_worker_spec.rb' + +# Offense count: 113 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle. +# SupportedHashRocketStyles: key, separator, table +# SupportedColonStyles: key, separator, table +# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit +Layout/HashAlignment: + Exclude: + - 'app/lib/activitypub/linked_data_signature.rb' + - 'app/lib/ostatus/tag_manager.rb' + - 'app/models/account/field.rb' + - 'app/models/account_warning.rb' + - 'app/models/media_attachment.rb' + - 'app/models/notification.rb' + - 'app/models/poll.rb' + - 'app/presenters/account_relationships_presenter.rb' + - 'app/services/keys/claim_service.rb' + - 'app/services/keys/query_service.rb' + - 'app/workers/web/push_notification_worker.rb' + - 'db/post_migrate/20200917193528_migrate_notifications_type.rb' + - 'lib/sanitize_ext/sanitize_config.rb' + - 'lib/tasks/auto_annotate_models.rake' + - 'lib/tasks/mastodon.rake' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Layout/HeredocIndentation: + Exclude: + - 'spec/controllers/well_known/host_meta_controller_spec.rb' + - 'spec/lib/link_details_extractor_spec.rb' + +# Offense count: 5 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: normal, indented_internal_methods +Layout/IndentationConsistency: + Exclude: + - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' + - 'spec/models/trends/statuses_spec.rb' + - 'spec/services/import_service_spec.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Width, AllowedPatterns. +Layout/IndentationWidth: + Exclude: + - 'db/migrate/20161006213403_rails_settings_migration.rb' + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + - 'spec/services/account_statuses_cleanup_service_spec.rb' + - 'spec/services/import_service_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment. +Layout/LeadingCommentSpace: + Exclude: + - 'lib/paperclip/attachment_extensions.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AutoCorrect, EnforcedStyle. +# SupportedStyles: space, no_space +Layout/LineContinuationSpacing: + Exclude: + - 'spec/support/stories/profile_stories.rb' + +# Offense count: 577 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. +# URISchemes: http, https +Layout/LineLength: + Enabled: false + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: symmetrical, new_line, same_line +Layout/MultilineMethodCallBraceLayout: + Exclude: + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator. +# SupportedStylesForExponentOperator: space, no_space +Layout/SpaceAroundOperators: + Exclude: + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. +# SupportedStyles: space, no_space +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceBeforeBlockBraces: + Exclude: + - 'spec/controllers/api/v1/reports_controller_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowForAlignment. +Layout/SpaceBeforeFirstArg: + Exclude: + - 'spec/fabricators/custom_filter_keyword_fabricator.rb' + - 'spec/fabricators/poll_vote_fabricator.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + +# Offense count: 24 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets. +# SupportedStyles: space, no_space, compact +# SupportedStylesForEmptyBrackets: space, no_space +Layout/SpaceInsideArrayLiteralBrackets: + Exclude: + - 'db/migrate/20161006213403_rails_settings_migration.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/lib/extractor_spec.rb' + - 'spec/models/export_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. +# SupportedStyles: space, no_space +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideBlockBraces: + Exclude: + - 'spec/lib/fast_ip_map_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/serializers/rest/account_serializer_spec.rb' + - 'spec/workers/activitypub/distribution_worker_spec.rb' + +# Offense count: 6 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. +# SupportedStyles: space, no_space, compact +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideHashLiteralBraces: + Exclude: + - 'app/lib/activitypub/activity/create.rb' + - 'app/services/activitypub/fetch_replies_service.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/update_status_service_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: space, compact, no_space +Layout/SpaceInsideParens: + Exclude: + - 'spec/validators/unreserved_username_validator_spec.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: space, no_space +Layout/SpaceInsideStringInterpolation: + Exclude: + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: final_newline, final_blank_line +Layout/TrailingEmptyLines: + Exclude: + - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' + - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' + - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb' + - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' + - 'db/migrate/20200628133322_create_account_notes.rb' + - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb' + - 'spec/fabricators/ip_block_fabricator.rb' + - 'spec/fabricators/status_edit_fabricator.rb' + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowInHeredoc. +Layout/TrailingWhitespace: + Exclude: + - 'app/models/concerns/expireable.rb' + - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb' + - 'lib/tasks/mastodon.rake' + - 'spec/models/account/field_spec.rb' + - 'spec/services/remove_from_follwers_service_spec.rb' + +# Offense count: 14 +# Configuration parameters: AllowedMethods, AllowedPatterns. +Lint/AmbiguousBlockAssociation: + Exclude: + - 'spec/controllers/admin/account_moderation_notes_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +Lint/AmbiguousOperator: + Exclude: + - 'spec/controllers/api/v1/suggestions_controller_spec.rb' + - 'spec/lib/request_spec.rb' + - 'spec/models/user_role_spec.rb' + +# Offense count: 17 +# This cop supports safe autocorrection (--autocorrect). +Lint/AmbiguousOperatorPrecedence: + Exclude: + - 'app/controllers/concerns/rate_limit_headers.rb' + - 'app/lib/rate_limiter.rb' + - 'app/models/system_key.rb' + - 'app/models/webauthn_credential.rb' + - 'app/workers/concerns/exponential_backoff.rb' + - 'lib/paperclip/color_extractor.rb' + +# Offense count: 15 +# Configuration parameters: AllowedMethods. +# AllowedMethods: enums +Lint/ConstantDefinitionInBlock: + Exclude: + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/concerns/accountable_concern_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' + - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' + - 'spec/lib/settings/extend_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + +# Offense count: 5 +# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches. +Lint/DuplicateBranch: + Exclude: + - 'app/lib/permalink_redirector.rb' + - 'app/models/account_statuses_filter.rb' + - 'app/validators/email_mx_validator.rb' + - 'app/validators/vote_validator.rb' + - 'lib/mastodon/maintenance_cli.rb' + +# Offense count: 42 +# Configuration parameters: AllowComments, AllowEmptyLambdas. +Lint/EmptyBlock: + Exclude: + - 'spec/controllers/api/v2/search_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/fabricators/access_token_fabricator.rb' + - 'spec/fabricators/conversation_fabricator.rb' + - 'spec/fabricators/conversation_mute_fabricator.rb' + - 'spec/fabricators/import_fabricator.rb' + - 'spec/fabricators/setting_fabricator.rb' + - 'spec/fabricators/system_key_fabricator.rb' + - 'spec/fabricators/web_setting_fabricator.rb' + - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/models/account_alias_spec.rb' + - 'spec/models/account_deletion_request_spec.rb' + - 'spec/models/account_moderation_note_spec.rb' + - 'spec/models/announcement_mute_spec.rb' + - 'spec/models/announcement_reaction_spec.rb' + - 'spec/models/announcement_spec.rb' + - 'spec/models/backup_spec.rb' + - 'spec/models/conversation_mute_spec.rb' + - 'spec/models/custom_filter_keyword_spec.rb' + - 'spec/models/custom_filter_spec.rb' + - 'spec/models/device_spec.rb' + - 'spec/models/encrypted_message_spec.rb' + - 'spec/models/featured_tag_spec.rb' + - 'spec/models/follow_recommendation_suppression_spec.rb' + - 'spec/models/list_account_spec.rb' + - 'spec/models/list_spec.rb' + - 'spec/models/login_activity_spec.rb' + - 'spec/models/mute_spec.rb' + - 'spec/models/one_time_key_spec.rb' + - 'spec/models/preview_card_spec.rb' + - 'spec/models/preview_card_trend_spec.rb' + - 'spec/models/relay_spec.rb' + - 'spec/models/scheduled_status_spec.rb' + - 'spec/models/status_stat_spec.rb' + - 'spec/models/status_trend_spec.rb' + - 'spec/models/system_key_spec.rb' + - 'spec/models/tag_follow_spec.rb' + - 'spec/models/unavailable_domain_spec.rb' + - 'spec/models/user_invite_request_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/models/web/setting_spec.rb' + +# Offense count: 1 +# Configuration parameters: AllowComments. +Lint/EmptyClass: + Exclude: + - 'spec/controllers/api/base_controller_spec.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +Lint/NonDeterministicRequireOrder: + Exclude: + - 'spec/rails_helper.rb' + +# Offense count: 1 +Lint/NonLocalExitFromIterator: + Exclude: + - 'app/helpers/jsonld_helper.rb' + +# Offense count: 2 +# This cop supports unsafe autocorrection (--autocorrect-all). +Lint/OrAssignmentToConstant: + Exclude: + - 'lib/sanitize_ext/sanitize_config.rb' + +# Offense count: 6 +# This cop supports safe autocorrection (--autocorrect). +Lint/ParenthesesAsGroupedExpression: + Exclude: + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' + - 'spec/lib/activitypub/activity/flag_spec.rb' + - 'spec/models/import_spec.rb' + +# Offense count: 35 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: strict, consistent +Lint/SymbolConversion: + Exclude: + - 'app/lib/translation_service/deepl.rb' + - 'app/services/backup_service.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. +Lint/UnusedBlockArgument: + Exclude: + - 'spec/lib/activitypub/activity/add_spec.rb' + - 'spec/lib/request_pool_spec.rb' + +# Offense count: 33 +Lint/UselessAssignment: + Exclude: + - 'app/services/activitypub/process_status_update_service.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' + - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/favourites_controller_spec.rb' + - 'spec/controllers/concerns/account_controller_concern_spec.rb' + - 'spec/helpers/jsonld_helper_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/domain_block_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/webauthn_credentials_spec.rb' + - 'spec/services/account_search_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + - 'spec/services/resolve_url_service_spec.rb' + - 'spec/views/statuses/show.html.haml_spec.rb' + +# Offense count: 3 +# Configuration parameters: CheckForMethodsWithNoSideEffects. +Lint/Void: + Exclude: + - 'spec/services/resolve_account_service_spec.rb' + +# Offense count: 65 +# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. +Metrics/AbcSize: + Enabled: false + +# Offense count: 11 +# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. +# AllowedMethods: refine +Metrics/BlockLength: + Exclude: + - 'app/models/concerns/account_interactions.rb' + - 'app/models/concerns/omniauthable.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + - 'lib/tasks/branding.rake' + - 'lib/tasks/mastodon.rake' + - 'lib/tasks/repo.rake' + - 'lib/tasks/tests.rake' + +# Offense count: 1 +# Configuration parameters: CountBlocks, Max. +Metrics/BlockNesting: + Exclude: + - 'lib/tasks/mastodon.rake' + +# Offense count: 39 +# Configuration parameters: AllowedMethods, AllowedPatterns. +Metrics/CyclomaticComplexity: + Enabled: false + +# Offense count: 40 +# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns. +Metrics/MethodLength: + Enabled: false + +# Offense count: 1 +# Configuration parameters: CountComments, Max, CountAsOne. +Metrics/ModuleLength: + Exclude: + - 'app/models/concerns/account_interactions.rb' + +# Offense count: 5 +# Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters. +Metrics/ParameterLists: + Exclude: + - 'app/models/concerns/account_interactions.rb' + - 'app/services/activitypub/fetch_remote_account_service.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + +# Offense count: 16 +# Configuration parameters: AllowedMethods, AllowedPatterns, Max. +Metrics/PerceivedComplexity: + Exclude: + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/status_cache_hydrator.rb' + - 'app/lib/user_settings_decorator.rb' + - 'app/models/trends/links.rb' + - 'app/services/activitypub/fetch_remote_key_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/activitypub/process_account_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/fetch_oembed_service.rb' + - 'app/services/process_mentions_service.rb' + - 'app/services/resolve_account_service.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/domains_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + +# Offense count: 1 +Naming/AccessorMethodName: + Exclude: + - 'app/controllers/auth/sessions_controller.rb' + +# Offense count: 7 +# Configuration parameters: EnforcedStyleForLeadingUnderscores. +# SupportedStylesForLeadingUnderscores: disallowed, required, optional +Naming/MemoizedInstanceVariableName: + Exclude: + - 'app/controllers/api/v1/bookmarks_controller.rb' + - 'app/controllers/api/v1/favourites_controller.rb' + - 'app/controllers/concerns/rate_limit_headers.rb' + - 'app/lib/activitypub/activity.rb' + - 'app/services/resolve_url_service.rb' + - 'app/services/search_service.rb' + +# Offense count: 50 +# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns. +# SupportedStyles: snake_case, normalcase, non_integer +# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339 +Naming/VariableNumber: + Exclude: + - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20190820003045_update_statuses_index.rb' + - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' + - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/domain_block_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + +# Offense count: 12 +# Configuration parameters: MinSize. +Performance/CollectionLiteralInLoop: + Exclude: + - 'app/models/admin/appeal_filter.rb' + - 'app/models/admin/status_filter.rb' + - 'app/models/relationship_filter.rb' + - 'app/models/trends/preview_card_filter.rb' + - 'app/models/trends/status_filter.rb' + - 'app/presenters/status_relationships_presenter.rb' + - 'app/services/fetch_resource_service.rb' + - 'app/services/suspend_account_service.rb' + - 'app/services/unsuspend_account_service.rb' + - 'lib/mastodon/media_cli.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +Performance/Count: + Exclude: + - 'app/lib/importer/accounts_index_importer.rb' + - 'app/lib/importer/tags_index_importer.rb' + +# Offense count: 10 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: SafeMultiline. +Performance/DeletePrefix: + Exclude: + - 'app/controllers/authorize_interactions_controller.rb' + - 'app/controllers/concerns/signature_verification.rb' + - 'app/controllers/intents_controller.rb' + - 'app/lib/activitypub/case_transform.rb' + - 'app/lib/permalink_redirector.rb' + - 'app/lib/webfinger_resource.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/backup_service.rb' + - 'app/services/resolve_account_service.rb' + - 'app/services/tag_search_service.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: SafeMultiline. +Performance/DeleteSuffix: + Exclude: + - 'lib/tasks/repo.rake' + +# Offense count: 19 +# This cop supports unsafe autocorrection (--autocorrect-all). +Performance/MapCompact: + Exclude: + - 'app/lib/admin/metrics/dimension.rb' + - 'app/lib/admin/metrics/measure.rb' + - 'app/lib/feed_manager.rb' + - 'app/models/account.rb' + - 'app/models/account_statuses_cleanup_policy.rb' + - 'app/models/account_suggestions/setting_source.rb' + - 'app/models/account_suggestions/source.rb' + - 'app/models/follow_recommendation_filter.rb' + - 'app/models/notification.rb' + - 'app/models/user_role.rb' + - 'app/models/webhook.rb' + - 'app/services/process_mentions_service.rb' + - 'app/validators/existing_username_validator.rb' + - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb' + - 'spec/presenters/status_relationships_presenter_spec.rb' + +# Offense count: 7 +Performance/MethodObjectAsBlock: + Exclude: + - 'app/models/account_suggestions/source.rb' + - 'spec/models/export_spec.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +Performance/RedundantEqualityComparisonBlock: + Exclude: + - 'spec/requests/link_headers_spec.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: SafeMultiline. +Performance/StartWith: + Exclude: + - 'app/lib/extractor.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: OnlySumOrWithInitialValue. +Performance/Sum: + Exclude: + - 'app/lib/activity_tracker.rb' + - 'app/models/trends/history.rb' + - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' + - 'lib/paperclip/color_extractor.rb' + +# Offense count: 15 +# This cop supports unsafe autocorrection (--autocorrect-all). +Performance/TimesMap: + Exclude: + - 'spec/controllers/api/v1/blocks_controller_spec.rb' + - 'spec/controllers/api/v1/mutes_controller_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/request_pool_spec.rb' + - 'spec/models/account_spec.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +Performance/UnfreezeString: + Exclude: + - 'app/lib/rss/builder.rb' + - 'app/lib/text_formatter.rb' + - 'app/validators/status_length_validator.rb' + - 'lib/tasks/mastodon.rake' + +# Offense count: 27 +RSpec/AnyInstance: + Exclude: + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/resets_controller_spec.rb' + - 'spec/controllers/admin/settings/branding_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb' + - 'spec/lib/request_spec.rb' + - 'spec/lib/status_filter_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + - 'spec/validators/follow_limit_validator_spec.rb' + - 'spec/workers/activitypub/delivery_worker_spec.rb' + - 'spec/workers/web/push_notification_worker_spec.rb' + +# Offense count: 139 +# This cop supports unsafe autocorrection (--autocorrect-all). +RSpec/BeEq: + Exclude: + - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/admin/reports_controller_spec.rb' + - 'spec/controllers/admin/users/two_factor_authentications_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/favourites_controller_spec.rb' + - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/statuses_cleanup_controller_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/helpers/jsonld_helper_spec.rb' + - 'spec/lib/activitypub/activity/add_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/tag_manager_spec.rb' + - 'spec/lib/user_settings_decorator_spec.rb' + - 'spec/models/account_domain_block_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/block_spec.rb' + - 'spec/models/domain_block_spec.rb' + - 'spec/models/favourite_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/support/examples/lib/settings/scoped_settings.rb' + - 'spec/workers/domain_block_worker_spec.rb' + - 'spec/workers/domain_clear_media_worker_spec.rb' + - 'spec/workers/feed_insert_worker_spec.rb' + - 'spec/workers/regeneration_worker_spec.rb' + +# Offense count: 22 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: be, be_nil +RSpec/BeNil: + Exclude: + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + - 'spec/controllers/api/v1/apps_controller_spec.rb' + - 'spec/controllers/api/v1/statuses_controller_spec.rb' + - 'spec/controllers/instance_actors_controller_spec.rb' + - 'spec/controllers/statuses_controller_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/user_spec.rb' + +# Offense count: 1 +RSpec/BeforeAfterAll: + Exclude: + - 'spec/requests/localization_spec.rb' + +# Offense count: 14 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnabledMethods. +RSpec/Capybara/FeatureMethods: + Exclude: + - 'spec/features/log_in_spec.rb' + - 'spec/features/profile_spec.rb' + +# Offense count: 32 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: be_a, be_kind_of +RSpec/ClassCheck: + Exclude: + - 'spec/lib/settings/extend_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/models/user_spec.rb' + +# Offense count: 558 +# Configuration parameters: Prefixes, AllowedPatterns. +# Prefixes: when, with, without +RSpec/ContextWording: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/admin/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/relationships_controller_spec.rb' + - 'spec/controllers/api/v1/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/emails/confirmations_controller_spec.rb' + - 'spec/controllers/api/v1/instances/activity_controller_spec.rb' + - 'spec/controllers/api/v1/instances/peers_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/api/v2/filters_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/concerns/cache_concern_spec.rb' + - 'spec/controllers/concerns/challengable_concern_spec.rb' + - 'spec/controllers/concerns/localized_spec.rb' + - 'spec/controllers/concerns/rate_limit_headers_spec.rb' + - 'spec/controllers/instance_actors_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/controllers/statuses_controller_spec.rb' + - 'spec/helpers/admin/account_moderation_notes_helper_spec.rb' + - 'spec/helpers/jsonld_helper_spec.rb' + - 'spec/helpers/routing_helper_spec.rb' + - 'spec/lib/activitypub/activity/accept_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/activitypub/activity/follow_spec.rb' + - 'spec/lib/activitypub/activity/reject_spec.rb' + - 'spec/lib/emoji_formatter_spec.rb' + - 'spec/lib/entity_cache_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/html_aware_formatter_spec.rb' + - 'spec/lib/link_details_extractor_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/plain_text_formatter_spec.rb' + - 'spec/lib/scope_transformer_spec.rb' + - 'spec/lib/status_cache_hydrator_spec.rb' + - 'spec/lib/status_reach_finder_spec.rb' + - 'spec/lib/text_formatter_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/custom_emoji_spec.rb' + - 'spec/models/email_domain_block_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/notification_spec.rb' + - 'spec/models/remote_follow_spec.rb' + - 'spec/models/report_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/policies/account_moderation_note_policy_spec.rb' + - 'spec/policies/account_policy_spec.rb' + - 'spec/policies/backup_policy_spec.rb' + - 'spec/policies/custom_emoji_policy_spec.rb' + - 'spec/policies/domain_block_policy_spec.rb' + - 'spec/policies/email_domain_block_policy_spec.rb' + - 'spec/policies/instance_policy_spec.rb' + - 'spec/policies/invite_policy_spec.rb' + - 'spec/policies/relay_policy_spec.rb' + - 'spec/policies/report_note_policy_spec.rb' + - 'spec/policies/report_policy_spec.rb' + - 'spec/policies/settings_policy_spec.rb' + - 'spec/policies/tag_policy_spec.rb' + - 'spec/policies/user_policy_spec.rb' + - 'spec/presenters/account_relationships_presenter_spec.rb' + - 'spec/presenters/status_relationships_presenter_spec.rb' + - 'spec/services/account_search_service_spec.rb' + - 'spec/services/account_statuses_cleanup_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/fetch_link_card_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/fetch_remote_status_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/notify_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + - 'spec/services/reblog_service_spec.rb' + - 'spec/services/report_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/services/resolve_url_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/verify_link_service_spec.rb' + - 'spec/validators/disallowed_hashtags_validator_spec.rb' + - 'spec/validators/email_mx_validator_spec.rb' + - 'spec/validators/follow_limit_validator_spec.rb' + - 'spec/validators/poll_validator_spec.rb' + - 'spec/validators/status_pin_validator_spec.rb' + - 'spec/validators/unreserved_username_validator_spec.rb' + - 'spec/validators/url_validator_spec.rb' + - 'spec/workers/move_worker_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 339 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: SkipBlocks, EnforcedStyle. +# SupportedStyles: described_class, explicit +RSpec/DescribedClass: + Exclude: + - 'spec/controllers/concerns/cache_concern_spec.rb' + - 'spec/controllers/concerns/challengable_concern_spec.rb' + - 'spec/lib/entity_cache_spec.rb' + - 'spec/lib/extractor_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/hash_object_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/request_spec.rb' + - 'spec/lib/tag_manager_spec.rb' + - 'spec/lib/webfinger_resource_spec.rb' + - 'spec/mailers/notification_mailer_spec.rb' + - 'spec/mailers/user_mailer_spec.rb' + - 'spec/models/account_conversation_spec.rb' + - 'spec/models/account_domain_block_spec.rb' + - 'spec/models/account_migration_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/block_spec.rb' + - 'spec/models/domain_block_spec.rb' + - 'spec/models/email_domain_block_spec.rb' + - 'spec/models/export_spec.rb' + - 'spec/models/favourite_spec.rb' + - 'spec/models/follow_spec.rb' + - 'spec/models/identity_spec.rb' + - 'spec/models/import_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/notification_spec.rb' + - 'spec/models/relationship_filter_spec.rb' + - 'spec/models/report_filter_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/models/site_upload_spec.rb' + - 'spec/models/status_pin_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/policies/account_moderation_note_policy_spec.rb' + - 'spec/presenters/account_relationships_presenter_spec.rb' + - 'spec/presenters/instance_presenter_spec.rb' + - 'spec/presenters/status_relationships_presenter_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/rest/account_serializer_spec.rb' + - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_key_service_spec.rb' + - 'spec/services/after_block_domain_from_account_service_spec.rb' + - 'spec/services/authorize_follow_service_spec.rb' + - 'spec/services/batched_remove_status_service_spec.rb' + - 'spec/services/block_domain_service_spec.rb' + - 'spec/services/block_service_spec.rb' + - 'spec/services/bootstrap_timeline_service_spec.rb' + - 'spec/services/clear_domain_media_service_spec.rb' + - 'spec/services/favourite_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + - 'spec/services/purge_domain_service_spec.rb' + - 'spec/services/reblog_service_spec.rb' + - 'spec/services/reject_follow_service_spec.rb' + - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/services/remove_status_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/unblock_service_spec.rb' + - 'spec/services/unfollow_service_spec.rb' + - 'spec/services/unmute_service_spec.rb' + - 'spec/services/update_account_service_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + +# Offense count: 32 +# This cop supports unsafe autocorrection (--autocorrect-all). +RSpec/EmptyExampleGroup: + Exclude: + - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/models/account_alias_spec.rb' + - 'spec/models/account_deletion_request_spec.rb' + - 'spec/models/account_moderation_note_spec.rb' + - 'spec/models/announcement_mute_spec.rb' + - 'spec/models/announcement_reaction_spec.rb' + - 'spec/models/announcement_spec.rb' + - 'spec/models/backup_spec.rb' + - 'spec/models/conversation_mute_spec.rb' + - 'spec/models/custom_filter_keyword_spec.rb' + - 'spec/models/custom_filter_spec.rb' + - 'spec/models/device_spec.rb' + - 'spec/models/encrypted_message_spec.rb' + - 'spec/models/featured_tag_spec.rb' + - 'spec/models/follow_recommendation_suppression_spec.rb' + - 'spec/models/list_account_spec.rb' + - 'spec/models/list_spec.rb' + - 'spec/models/login_activity_spec.rb' + - 'spec/models/mute_spec.rb' + - 'spec/models/one_time_key_spec.rb' + - 'spec/models/preview_card_spec.rb' + - 'spec/models/preview_card_trend_spec.rb' + - 'spec/models/relay_spec.rb' + - 'spec/models/scheduled_status_spec.rb' + - 'spec/models/status_stat_spec.rb' + - 'spec/models/status_trend_spec.rb' + - 'spec/models/system_key_spec.rb' + - 'spec/models/tag_follow_spec.rb' + - 'spec/models/unavailable_domain_spec.rb' + - 'spec/models/user_invite_request_spec.rb' + - 'spec/models/web/setting_spec.rb' + - 'spec/services/unmute_service_spec.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowConsecutiveOneLiners. +RSpec/EmptyLineAfterExample: + Exclude: + - 'spec/services/search_service_spec.rb' + +# Offense count: 25 +# This cop supports safe autocorrection (--autocorrect). +RSpec/EmptyLineAfterFinalLet: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/admin/reports_controller_spec.rb' + - 'spec/controllers/admin/resets_controller_spec.rb' + - 'spec/controllers/api/web/embeds_controller_spec.rb' + - 'spec/controllers/instance_actors_controller_spec.rb' + - 'spec/controllers/intents_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/sessions_controller_spec.rb' + - 'spec/controllers/shares_controller_spec.rb' + - 'spec/lib/status_filter_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + - 'spec/validators/poll_validator_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowConsecutiveOneLiners. +RSpec/EmptyLineAfterHook: + Exclude: + - 'spec/helpers/application_helper_spec.rb' + +# Offense count: 19 +# This cop supports safe autocorrection (--autocorrect). +RSpec/EmptyLineAfterSubject: + Exclude: + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/api/web/embeds_controller_spec.rb' + - 'spec/controllers/emojis_controller_spec.rb' + - 'spec/controllers/follower_accounts_controller_spec.rb' + - 'spec/controllers/following_accounts_controller_spec.rb' + - 'spec/controllers/relationships_controller_spec.rb' + - 'spec/lib/activitypub/activity/delete_spec.rb' + - 'spec/lib/activitypub/activity/flag_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/services/fetch_remote_status_service_spec.rb' + - 'spec/workers/refollow_worker_spec.rb' + +# Offense count: 178 +# Configuration parameters: CountAsOne. +RSpec/ExampleLength: + Max: 22 + +# Offense count: 10 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: CustomTransform, IgnoredWords, DisallowedExamples. +# DisallowedExamples: works +RSpec/ExampleWording: + Exclude: + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/models/custom_emoji_spec.rb' + - 'spec/models/user_spec.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +RSpec/ExcessiveDocstringSpacing: + Exclude: + - 'spec/controllers/settings/migrations_controller_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +RSpec/ExpectActual: + Exclude: + - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' + +# Offense count: 21 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: method_call, block +RSpec/ExpectChange: + Exclude: + - 'spec/controllers/admin/account_moderation_notes_controller_spec.rb' + - 'spec/controllers/admin/custom_emojis_controller_spec.rb' + - 'spec/controllers/admin/invites_controller_spec.rb' + - 'spec/controllers/admin/report_notes_controller_spec.rb' + - 'spec/controllers/concerns/accountable_concern_spec.rb' + - 'spec/controllers/invites_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 5 +RSpec/ExpectInHook: + Exclude: + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/lib/status_filter_spec.rb' + +# Offense count: 61 +# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly. +# Include: **/*_spec*rb*, **/spec/**/* +RSpec/FilePath: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/users/roles_controller.rb' + - 'spec/controllers/api/oembed_controller_spec.rb' + - 'spec/controllers/concerns/account_controller_concern_spec.rb' + - 'spec/controllers/concerns/export_controller_concern_spec.rb' + - 'spec/controllers/concerns/localized_spec.rb' + - 'spec/controllers/concerns/rate_limit_headers_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/controllers/concerns/user_tracking_concern_spec.rb' + - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' + - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/helpers/jsonld_helper_spec.rb' + - 'spec/lib/activitypub/activity/accept_spec.rb' + - 'spec/lib/activitypub/activity/add_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/block_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/activitypub/activity/delete_spec.rb' + - 'spec/lib/activitypub/activity/flag_spec.rb' + - 'spec/lib/activitypub/activity/follow_spec.rb' + - 'spec/lib/activitypub/activity/like_spec.rb' + - 'spec/lib/activitypub/activity/move_spec.rb' + - 'spec/lib/activitypub/activity/reject_spec.rb' + - 'spec/lib/activitypub/activity/remove_spec.rb' + - 'spec/lib/activitypub/activity/undo_spec.rb' + - 'spec/lib/activitypub/activity/update_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/lib/activitypub/dereferencer_spec.rb' + - 'spec/lib/activitypub/linked_data_signature_spec.rb' + - 'spec/lib/activitypub/tag_manager_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/sanitize_config_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_key_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/fetch_replies_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/activitypub/synchronize_followers_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/workers/activitypub/delivery_worker_spec.rb' + - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb' + - 'spec/workers/activitypub/distribution_worker_spec.rb' + - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' + - 'spec/workers/activitypub/move_distribution_worker_spec.rb' + - 'spec/workers/activitypub/processing_worker_spec.rb' + - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb' + - 'spec/workers/activitypub/update_distribution_worker_spec.rb' + +# Offense count: 16 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: implicit, each, example +RSpec/HookArgument: + Exclude: + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/helpers/instance_helper_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/rails_helper.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/spec_helper.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +RSpec/HooksBeforeExamples: + Exclude: + - 'spec/services/fetch_resource_service_spec.rb' + +# Offense count: 159 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: single_line_only, single_statement_only, disallow, require_implicit +RSpec/ImplicitSubject: + Exclude: + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/instances_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/home_controller_spec.rb' + - 'spec/controllers/relationships_controller_spec.rb' + - 'spec/controllers/settings/featured_tags_controller_spec.rb' + - 'spec/controllers/settings/migrations_controller_spec.rb' + - 'spec/controllers/settings/sessions_controller_spec.rb' + - 'spec/features/log_in_spec.rb' + - 'spec/features/profile_spec.rb' + - 'spec/lib/emoji_formatter_spec.rb' + - 'spec/lib/entity_cache_spec.rb' + - 'spec/lib/html_aware_formatter_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/plain_text_formatter_spec.rb' + - 'spec/lib/text_formatter_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/custom_emoji_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/notification_spec.rb' + - 'spec/models/remote_follow_spec.rb' + - 'spec/models/report_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + +# Offense count: 101 +# Configuration parameters: AssignmentOnly. +RSpec/InstanceVariable: + Exclude: + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/confirmations_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/concerns/export_controller_concern_spec.rb' + - 'spec/controllers/home_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/controllers/statuses_cleanup_controller_spec.rb' + - 'spec/models/concerns/account_finder_concern_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + - 'spec/models/public_feed_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/services/remove_status_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/services/unblock_domain_service_spec.rb' + +# Offense count: 118 +# This cop supports safe autocorrection (--autocorrect). +RSpec/LeadingSubject: + Exclude: + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/admin/invites_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/lib/activitypub/activity/accept_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/activitypub/activity/reject_spec.rb' + - 'spec/lib/activitypub/activity/undo_spec.rb' + - 'spec/lib/activitypub/activity/update_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/lib/activitypub/dereferencer_spec.rb' + - 'spec/lib/activitypub/linked_data_signature_spec.rb' + - 'spec/lib/link_details_extractor_spec.rb' + - 'spec/lib/status_filter_spec.rb' + - 'spec/lib/status_reach_finder_spec.rb' + - 'spec/lib/suspicious_sign_in_detector_spec.rb' + - 'spec/lib/text_formatter_spec.rb' + - 'spec/lib/vacuum/backups_vacuum_spec.rb' + - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' + - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' + - 'spec/lib/vacuum/statuses_vacuum_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/account_statuses_filter_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/custom_emoji_spec.rb' + - 'spec/models/home_feed_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/public_feed_spec.rb' + - 'spec/models/remote_follow_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/presenters/familiar_followers_presenter_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/rest/account_serializer_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/fetch_replies_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/activitypub/synchronize_followers_service_spec.rb' + - 'spec/services/after_block_domain_from_account_service_spec.rb' + - 'spec/services/app_sign_up_service_spec.rb' + - 'spec/services/authorize_follow_service_spec.rb' + - 'spec/services/block_domain_service_spec.rb' + - 'spec/services/block_service_spec.rb' + - 'spec/services/clear_domain_media_service_spec.rb' + - 'spec/services/delete_account_service_spec.rb' + - 'spec/services/fan_out_on_write_service_spec.rb' + - 'spec/services/favourite_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + - 'spec/services/purge_domain_service_spec.rb' + - 'spec/services/reblog_service_spec.rb' + - 'spec/services/reject_follow_service_spec.rb' + - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/services/report_service_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/unblock_service_spec.rb' + - 'spec/services/unfollow_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + - 'spec/workers/move_worker_spec.rb' + - 'spec/workers/unfollow_follow_worker_spec.rb' + +# Offense count: 15 +RSpec/LeakyConstantDeclaration: + Exclude: + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/concerns/accountable_concern_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' + - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' + - 'spec/lib/settings/extend_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +RSpec/LetBeforeExamples: + Exclude: + - 'spec/models/user_spec.rb' + +# Offense count: 108 +RSpec/LetSetup: + Exclude: + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/action_logs_controller_spec.rb' + - 'spec/controllers/admin/instances_controller_spec.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/admin/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/filters_controller_spec.rb' + - 'spec/controllers/api/v1/followed_tags_controller_spec.rb' + - 'spec/controllers/api/v1/tags_controller_spec.rb' + - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' + - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' + - 'spec/controllers/api/v2/filters_controller_spec.rb' + - 'spec/controllers/auth/confirmations_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/follower_accounts_controller_spec.rb' + - 'spec/controllers/following_accounts_controller_spec.rb' + - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' + - 'spec/controllers/oauth/tokens_controller_spec.rb' + - 'spec/controllers/tags_controller_spec.rb' + - 'spec/lib/activitypub/activity/delete_spec.rb' + - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/canonical_email_block_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/services/account_statuses_cleanup_service_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/batched_remove_status_service_spec.rb' + - 'spec/services/block_domain_service_spec.rb' + - 'spec/services/delete_account_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/notify_service_spec.rb' + - 'spec/services/remove_status_service_spec.rb' + - 'spec/services/report_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb' + +# Offense count: 7 +RSpec/MessageChain: + Exclude: + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + +# Offense count: 47 +# Configuration parameters: EnforcedStyle. +# SupportedStyles: have_received, receive +RSpec/MessageSpies: + Exclude: + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/helpers/admin/account_moderation_notes_helper_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/lib/status_finder_spec.rb' + - 'spec/lib/webfinger_resource_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + - 'spec/models/follow_request_spec.rb' + - 'spec/models/identity_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/services/activitypub/fetch_replies_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/spec_helper.rb' + - 'spec/validators/status_length_validator_spec.rb' + +# Offense count: 35 +RSpec/MissingExampleGroupArgument: + Exclude: + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/admin/statuses_controller_spec.rb' + - 'spec/controllers/admin/users/roles_controller.rb' + - 'spec/controllers/api/v1/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/api/v1/statuses_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/features/log_in_spec.rb' + - 'spec/lib/activitypub/activity/undo_spec.rb' + - 'spec/lib/status_reach_finder_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/email_domain_block_spec.rb' + - 'spec/models/trends/statuses_spec.rb' + - 'spec/models/trends/tags_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/services/fetch_link_card_service_spec.rb' + - 'spec/services/notify_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + +# Offense count: 1 +RSpec/MultipleDescribes: + Exclude: + - 'spec/routing/well_known_routes_spec.rb' + +# Offense count: 599 +RSpec/MultipleExpectations: + Max: 19 + +# Offense count: 443 +# Configuration parameters: AllowSubject. +RSpec/MultipleMemoizedHelpers: + Max: 21 + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +RSpec/MultipleSubjects: + Exclude: + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/api/web/embeds_controller_spec.rb' + - 'spec/controllers/emojis_controller_spec.rb' + - 'spec/controllers/follower_accounts_controller_spec.rb' + - 'spec/controllers/following_accounts_controller_spec.rb' + +# Offense count: 1252 +# Configuration parameters: EnforcedStyle, IgnoreSharedExamples. +# SupportedStyles: always, named_only +RSpec/NamedSubject: + Exclude: + - 'spec/controllers/admin/account_moderation_notes_controller_spec.rb' + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/confirmations_controller_spec.rb' + - 'spec/controllers/admin/custom_emojis_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/invites_controller_spec.rb' + - 'spec/controllers/admin/report_notes_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/invites_controller_spec.rb' + - 'spec/controllers/oauth/authorizations_controller_spec.rb' + - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' + - 'spec/controllers/relationships_controller_spec.rb' + - 'spec/controllers/settings/featured_tags_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' + - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/lib/activitypub/activity/accept_spec.rb' + - 'spec/lib/activitypub/activity/add_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/block_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/activitypub/activity/delete_spec.rb' + - 'spec/lib/activitypub/activity/flag_spec.rb' + - 'spec/lib/activitypub/activity/follow_spec.rb' + - 'spec/lib/activitypub/activity/like_spec.rb' + - 'spec/lib/activitypub/activity/move_spec.rb' + - 'spec/lib/activitypub/activity/reject_spec.rb' + - 'spec/lib/activitypub/activity/remove_spec.rb' + - 'spec/lib/activitypub/activity/undo_spec.rb' + - 'spec/lib/activitypub/activity/update_spec.rb' + - 'spec/lib/activitypub/adapter_spec.rb' + - 'spec/lib/activitypub/dereferencer_spec.rb' + - 'spec/lib/activitypub/linked_data_signature_spec.rb' + - 'spec/lib/activitypub/tag_manager_spec.rb' + - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' + - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' + - 'spec/lib/delivery_failure_tracker_spec.rb' + - 'spec/lib/emoji_formatter_spec.rb' + - 'spec/lib/fast_ip_map_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/hashtag_normalizer_spec.rb' + - 'spec/lib/link_details_extractor_spec.rb' + - 'spec/lib/request_pool_spec.rb' + - 'spec/lib/request_spec.rb' + - 'spec/lib/sanitize_config_spec.rb' + - 'spec/lib/status_finder_spec.rb' + - 'spec/lib/status_reach_finder_spec.rb' + - 'spec/lib/suspicious_sign_in_detector_spec.rb' + - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb' + - 'spec/lib/vacuum/backups_vacuum_spec.rb' + - 'spec/lib/vacuum/feeds_vacuum_spec.rb' + - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' + - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' + - 'spec/lib/vacuum/statuses_vacuum_spec.rb' + - 'spec/lib/vacuum/system_keys_vacuum_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/account_migration_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/account_statuses_filter_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/canonical_email_block_spec.rb' + - 'spec/models/concerns/account_interactions_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/follow_spec.rb' + - 'spec/models/home_feed_spec.rb' + - 'spec/models/notification_spec.rb' + - 'spec/models/public_feed_spec.rb' + - 'spec/models/relationship_filter_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/tag_spec.rb' + - 'spec/models/trends/statuses_spec.rb' + - 'spec/models/trends/tags_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/policies/account_moderation_note_policy_spec.rb' + - 'spec/policies/account_policy_spec.rb' + - 'spec/policies/backup_policy_spec.rb' + - 'spec/policies/custom_emoji_policy_spec.rb' + - 'spec/policies/domain_block_policy_spec.rb' + - 'spec/policies/email_domain_block_policy_spec.rb' + - 'spec/policies/instance_policy_spec.rb' + - 'spec/policies/invite_policy_spec.rb' + - 'spec/policies/relay_policy_spec.rb' + - 'spec/policies/report_note_policy_spec.rb' + - 'spec/policies/report_policy_spec.rb' + - 'spec/policies/settings_policy_spec.rb' + - 'spec/policies/status_policy_spec.rb' + - 'spec/policies/tag_policy_spec.rb' + - 'spec/policies/user_policy_spec.rb' + - 'spec/presenters/familiar_followers_presenter_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/rest/account_serializer_spec.rb' + - 'spec/services/account_search_service_spec.rb' + - 'spec/services/account_statuses_cleanup_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/fetch_replies_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/after_block_domain_from_account_service_spec.rb' + - 'spec/services/after_block_service_spec.rb' + - 'spec/services/app_sign_up_service_spec.rb' + - 'spec/services/authorize_follow_service_spec.rb' + - 'spec/services/batched_remove_status_service_spec.rb' + - 'spec/services/block_domain_service_spec.rb' + - 'spec/services/block_service_spec.rb' + - 'spec/services/bootstrap_timeline_service_spec.rb' + - 'spec/services/clear_domain_media_service_spec.rb' + - 'spec/services/delete_account_service_spec.rb' + - 'spec/services/fan_out_on_write_service_spec.rb' + - 'spec/services/favourite_service_spec.rb' + - 'spec/services/fetch_link_card_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/fetch_remote_status_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/mute_service_spec.rb' + - 'spec/services/notify_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + - 'spec/services/purge_domain_service_spec.rb' + - 'spec/services/reblog_service_spec.rb' + - 'spec/services/reject_follow_service_spec.rb' + - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/services/remove_status_service_spec.rb' + - 'spec/services/report_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/services/resolve_url_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/unblock_domain_service_spec.rb' + - 'spec/services/unblock_service_spec.rb' + - 'spec/services/unfollow_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/services/update_account_service_spec.rb' + - 'spec/services/update_status_service_spec.rb' + - 'spec/services/verify_link_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + - 'spec/validators/email_mx_validator_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + - 'spec/validators/reaction_validator_spec.rb' + - 'spec/validators/status_length_validator_spec.rb' + - 'spec/validators/status_pin_validator_spec.rb' + - 'spec/validators/unique_username_validator_spec.rb' + - 'spec/workers/activitypub/delivery_worker_spec.rb' + - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb' + - 'spec/workers/activitypub/distribution_worker_spec.rb' + - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' + - 'spec/workers/activitypub/move_distribution_worker_spec.rb' + - 'spec/workers/activitypub/processing_worker_spec.rb' + - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb' + - 'spec/workers/activitypub/update_distribution_worker_spec.rb' + - 'spec/workers/admin/domain_purge_worker_spec.rb' + - 'spec/workers/domain_block_worker_spec.rb' + - 'spec/workers/domain_clear_media_worker_spec.rb' + - 'spec/workers/feed_insert_worker_spec.rb' + - 'spec/workers/move_worker_spec.rb' + - 'spec/workers/publish_scheduled_announcement_worker_spec.rb' + - 'spec/workers/publish_scheduled_status_worker_spec.rb' + - 'spec/workers/refollow_worker_spec.rb' + - 'spec/workers/regeneration_worker_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb' + - 'spec/workers/unfollow_follow_worker_spec.rb' + - 'spec/workers/web/push_notification_worker_spec.rb' + +# Offense count: 552 +# Configuration parameters: AllowedGroups. +RSpec/NestedGroups: + Max: 6 + +# Offense count: 2 +# Configuration parameters: AllowedPatterns. +# AllowedPatterns: ^expect_, ^assert_ +RSpec/NoExpectationExample: + Exclude: + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/services/precompute_feed_service_spec.rb' + +# Offense count: 370 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: not_to, to_not +RSpec/NotToNot: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/roles_controller_spec.rb' + - 'spec/controllers/api/v1/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb' + - 'spec/controllers/api/v1/announcements_controller_spec.rb' + - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/apps_controller_spec.rb' + - 'spec/controllers/api/v1/filters_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/api/v1/notifications_controller_spec.rb' + - 'spec/controllers/api/v1/polls/votes_controller_spec.rb' + - 'spec/controllers/api/v1/reports_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb' + - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' + - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' + - 'spec/controllers/api/v2/filters_controller_spec.rb' + - 'spec/controllers/auth/challenges_controller_spec.rb' + - 'spec/controllers/auth/confirmations_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/concerns/challengable_concern_spec.rb' + - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' + - 'spec/controllers/oauth/tokens_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/controllers/statuses_controller_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/activitypub/activity/delete_spec.rb' + - 'spec/lib/activitypub/activity/flag_spec.rb' + - 'spec/lib/activitypub/dereferencer_spec.rb' + - 'spec/lib/activitypub/tag_manager_spec.rb' + - 'spec/lib/delivery_failure_tracker_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/lib/html_aware_formatter_spec.rb' + - 'spec/lib/request_pool_spec.rb' + - 'spec/lib/status_reach_finder_spec.rb' + - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb' + - 'spec/lib/vacuum/backups_vacuum_spec.rb' + - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' + - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' + - 'spec/lib/vacuum/statuses_vacuum_spec.rb' + - 'spec/lib/vacuum/system_keys_vacuum_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/account_conversation_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/account_statuses_filter_spec.rb' + - 'spec/models/concerns/remotable_spec.rb' + - 'spec/models/concerns/status_threading_concern_spec.rb' + - 'spec/models/follow_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/tag_feed_spec.rb' + - 'spec/models/trends/statuses_spec.rb' + - 'spec/models/trends/tags_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/webhook_spec.rb' + - 'spec/policies/account_moderation_note_policy_spec.rb' + - 'spec/policies/account_policy_spec.rb' + - 'spec/policies/backup_policy_spec.rb' + - 'spec/policies/custom_emoji_policy_spec.rb' + - 'spec/policies/domain_block_policy_spec.rb' + - 'spec/policies/email_domain_block_policy_spec.rb' + - 'spec/policies/instance_policy_spec.rb' + - 'spec/policies/invite_policy_spec.rb' + - 'spec/policies/relay_policy_spec.rb' + - 'spec/policies/report_note_policy_spec.rb' + - 'spec/policies/report_policy_spec.rb' + - 'spec/policies/settings_policy_spec.rb' + - 'spec/policies/status_policy_spec.rb' + - 'spec/policies/tag_policy_spec.rb' + - 'spec/policies/user_policy_spec.rb' + - 'spec/presenters/familiar_followers_presenter_spec.rb' + - 'spec/serializers/activitypub/note_spec.rb' + - 'spec/services/account_statuses_cleanup_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/app_sign_up_service_spec.rb' + - 'spec/services/batched_remove_status_service_spec.rb' + - 'spec/services/block_domain_service_spec.rb' + - 'spec/services/bootstrap_timeline_service_spec.rb' + - 'spec/services/fan_out_on_write_service_spec.rb' + - 'spec/services/favourite_service_spec.rb' + - 'spec/services/fetch_link_card_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/fetch_remote_status_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/mute_service_spec.rb' + - 'spec/services/notify_service_spec.rb' + - 'spec/services/remove_status_service_spec.rb' + - 'spec/services/report_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/services/suspend_account_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/services/unsuspend_account_service_spec.rb' + - 'spec/services/update_status_service_spec.rb' + - 'spec/support/examples/models/concerns/account_avatar.rb' + - 'spec/support/examples/models/concerns/account_header.rb' + - 'spec/validators/email_mx_validator_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + - 'spec/validators/reaction_validator_spec.rb' + - 'spec/validators/status_length_validator_spec.rb' + - 'spec/validators/unique_username_validator_spec.rb' + - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 3 +RSpec/PendingWithoutReason: + Exclude: + - 'spec/models/account_spec.rb' + - 'spec/support/examples/lib/settings/scoped_settings.rb' + +# Offense count: 9 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. +# SupportedStyles: inflected, explicit +RSpec/PredicateMatcher: + Exclude: + - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/services/post_status_service_spec.rb' + +# Offense count: 3 +# This cop supports unsafe autocorrection (--autocorrect-all). +RSpec/Rails/HaveHttpStatus: + Exclude: + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/requests/catch_all_route_request_spec.rb' + +# Offense count: 432 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: numeric, symbolic +RSpec/Rails/HttpStatus: + Exclude: + - 'spec/controllers/about_controller_spec.rb' + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/action_logs_controller_spec.rb' + - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/confirmations_controller_spec.rb' + - 'spec/controllers/admin/custom_emojis_controller_spec.rb' + - 'spec/controllers/admin/dashboard_controller_spec.rb' + - 'spec/controllers/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' + - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/instances_controller_spec.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/admin/reports_controller_spec.rb' + - 'spec/controllers/admin/settings/branding_controller_spec.rb' + - 'spec/controllers/admin/statuses_controller_spec.rb' + - 'spec/controllers/admin/tags_controller_spec.rb' + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/api/oembed_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/lists_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/relationships_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/search_controller_spec.rb' + - 'spec/controllers/api/v1/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/admin/reports_controller_spec.rb' + - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb' + - 'spec/controllers/api/v1/announcements_controller_spec.rb' + - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/apps_controller_spec.rb' + - 'spec/controllers/api/v1/blocks_controller_spec.rb' + - 'spec/controllers/api/v1/conversations_controller_spec.rb' + - 'spec/controllers/api/v1/custom_emojis_controller_spec.rb' + - 'spec/controllers/api/v1/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/endorsements_controller_spec.rb' + - 'spec/controllers/api/v1/filters_controller_spec.rb' + - 'spec/controllers/api/v1/follow_requests_controller_spec.rb' + - 'spec/controllers/api/v1/instances/activity_controller_spec.rb' + - 'spec/controllers/api/v1/instances/peers_controller_spec.rb' + - 'spec/controllers/api/v1/instances_controller_spec.rb' + - 'spec/controllers/api/v1/lists/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/lists_controller_spec.rb' + - 'spec/controllers/api/v1/markers_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/api/v1/mutes_controller_spec.rb' + - 'spec/controllers/api/v1/notifications_controller_spec.rb' + - 'spec/controllers/api/v1/polls/votes_controller_spec.rb' + - 'spec/controllers/api/v1/polls_controller_spec.rb' + - 'spec/controllers/api/v1/reports_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/favourites_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/histories_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/pins_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogs_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/sources_controller_spec.rb' + - 'spec/controllers/api/v1/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/controllers/api/v1/suggestions_controller_spec.rb' + - 'spec/controllers/api/v1/timelines/home_controller_spec.rb' + - 'spec/controllers/api/v1/timelines/list_controller_spec.rb' + - 'spec/controllers/api/v1/timelines/public_controller_spec.rb' + - 'spec/controllers/api/v1/timelines/tag_controller_spec.rb' + - 'spec/controllers/api/v1/trends/tags_controller_spec.rb' + - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' + - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' + - 'spec/controllers/api/v2/filters_controller_spec.rb' + - 'spec/controllers/api/v2/search_controller_spec.rb' + - 'spec/controllers/api/web/settings_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/confirmations_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/authorize_interactions_controller_spec.rb' + - 'spec/controllers/concerns/account_controller_concern_spec.rb' + - 'spec/controllers/concerns/export_controller_concern_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/controllers/emojis_controller_spec.rb' + - 'spec/controllers/follower_accounts_controller_spec.rb' + - 'spec/controllers/following_accounts_controller_spec.rb' + - 'spec/controllers/instance_actors_controller_spec.rb' + - 'spec/controllers/intents_controller_spec.rb' + - 'spec/controllers/invites_controller_spec.rb' + - 'spec/controllers/manifests_controller_spec.rb' + - 'spec/controllers/media_controller_spec.rb' + - 'spec/controllers/media_proxy_controller_spec.rb' + - 'spec/controllers/oauth/authorizations_controller_spec.rb' + - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' + - 'spec/controllers/relationships_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/deletes_controller_spec.rb' + - 'spec/controllers/settings/exports_controller_spec.rb' + - 'spec/controllers/settings/imports_controller_spec.rb' + - 'spec/controllers/settings/migrations_controller_spec.rb' + - 'spec/controllers/settings/preferences/notifications_controller_spec.rb' + - 'spec/controllers/settings/preferences/other_controller_spec.rb' + - 'spec/controllers/settings/profiles_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb' + - 'spec/controllers/statuses_cleanup_controller_spec.rb' + - 'spec/controllers/statuses_controller_spec.rb' + - 'spec/controllers/tags_controller_spec.rb' + - 'spec/controllers/well_known/host_meta_controller_spec.rb' + - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' + - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/requests/host_meta_request_spec.rb' + - 'spec/requests/webfinger_request_spec.rb' + +# Offense count: 180 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Inferences. +RSpec/Rails/InferredSpecType: + Exclude: + - 'spec/controllers/about_controller_spec.rb' + - 'spec/controllers/accounts_controller_spec.rb' + - 'spec/controllers/activitypub/collections_controller_spec.rb' + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/inboxes_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + - 'spec/controllers/admin/account_moderation_notes_controller_spec.rb' + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/action_logs_controller_spec.rb' + - 'spec/controllers/admin/base_controller_spec.rb' + - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/confirmations_controller_spec.rb' + - 'spec/controllers/admin/dashboard_controller_spec.rb' + - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' + - 'spec/controllers/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' + - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/instances_controller_spec.rb' + - 'spec/controllers/admin/settings/branding_controller_spec.rb' + - 'spec/controllers/admin/tags_controller_spec.rb' + - 'spec/controllers/api/oembed_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/search_controller_spec.rb' + - 'spec/controllers/api/v1/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/admin/reports_controller_spec.rb' + - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb' + - 'spec/controllers/api/v1/announcements_controller_spec.rb' + - 'spec/controllers/api/v1/apps_controller_spec.rb' + - 'spec/controllers/api/v1/blocks_controller_spec.rb' + - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/conversations_controller_spec.rb' + - 'spec/controllers/api/v1/custom_emojis_controller_spec.rb' + - 'spec/controllers/api/v1/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/emails/confirmations_controller_spec.rb' + - 'spec/controllers/api/v1/endorsements_controller_spec.rb' + - 'spec/controllers/api/v1/favourites_controller_spec.rb' + - 'spec/controllers/api/v1/filters_controller_spec.rb' + - 'spec/controllers/api/v1/follow_requests_controller_spec.rb' + - 'spec/controllers/api/v1/followed_tags_controller_spec.rb' + - 'spec/controllers/api/v1/instances/activity_controller_spec.rb' + - 'spec/controllers/api/v1/instances/peers_controller_spec.rb' + - 'spec/controllers/api/v1/instances_controller_spec.rb' + - 'spec/controllers/api/v1/lists_controller_spec.rb' + - 'spec/controllers/api/v1/markers_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/api/v1/mutes_controller_spec.rb' + - 'spec/controllers/api/v1/notifications_controller_spec.rb' + - 'spec/controllers/api/v1/polls/votes_controller_spec.rb' + - 'spec/controllers/api/v1/polls_controller_spec.rb' + - 'spec/controllers/api/v1/reports_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/suggestions_controller_spec.rb' + - 'spec/controllers/api/v1/tags_controller_spec.rb' + - 'spec/controllers/api/v1/trends/tags_controller_spec.rb' + - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' + - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' + - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' + - 'spec/controllers/api/v2/filters_controller_spec.rb' + - 'spec/controllers/api/v2/search_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/challenges_controller_spec.rb' + - 'spec/controllers/auth/confirmations_controller_spec.rb' + - 'spec/controllers/auth/passwords_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/concerns/account_controller_concern_spec.rb' + - 'spec/controllers/concerns/cache_concern_spec.rb' + - 'spec/controllers/concerns/challengable_concern_spec.rb' + - 'spec/controllers/concerns/export_controller_concern_spec.rb' + - 'spec/controllers/concerns/localized_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/controllers/concerns/user_tracking_concern_spec.rb' + - 'spec/controllers/disputes/appeals_controller_spec.rb' + - 'spec/controllers/disputes/strikes_controller_spec.rb' + - 'spec/controllers/home_controller_spec.rb' + - 'spec/controllers/instance_actors_controller_spec.rb' + - 'spec/controllers/intents_controller_spec.rb' + - 'spec/controllers/oauth/authorizations_controller_spec.rb' + - 'spec/controllers/oauth/tokens_controller_spec.rb' + - 'spec/controllers/settings/imports_controller_spec.rb' + - 'spec/controllers/settings/profiles_controller_spec.rb' + - 'spec/controllers/statuses_cleanup_controller_spec.rb' + - 'spec/controllers/tags_controller_spec.rb' + - 'spec/controllers/well_known/host_meta_controller_spec.rb' + - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' + - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/helpers/accounts_helper_spec.rb' + - 'spec/helpers/admin/account_moderation_notes_helper_spec.rb' + - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/helpers/flashes_helper_spec.rb' + - 'spec/helpers/formatting_helper_spec.rb' + - 'spec/helpers/home_helper_spec.rb' + - 'spec/helpers/routing_helper_spec.rb' + - 'spec/helpers/statuses_helper_spec.rb' + - 'spec/mailers/admin_mailer_spec.rb' + - 'spec/mailers/notification_mailer_spec.rb' + - 'spec/mailers/user_mailer_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/account_alias_spec.rb' + - 'spec/models/account_conversation_spec.rb' + - 'spec/models/account_deletion_request_spec.rb' + - 'spec/models/account_domain_block_spec.rb' + - 'spec/models/account_migration_spec.rb' + - 'spec/models/account_moderation_note_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/admin/account_action_spec.rb' + - 'spec/models/admin/action_log_spec.rb' + - 'spec/models/announcement_mute_spec.rb' + - 'spec/models/announcement_reaction_spec.rb' + - 'spec/models/announcement_spec.rb' + - 'spec/models/appeal_spec.rb' + - 'spec/models/backup_spec.rb' + - 'spec/models/block_spec.rb' + - 'spec/models/canonical_email_block_spec.rb' + - 'spec/models/conversation_mute_spec.rb' + - 'spec/models/conversation_spec.rb' + - 'spec/models/custom_emoji_category_spec.rb' + - 'spec/models/custom_emoji_spec.rb' + - 'spec/models/custom_filter_keyword_spec.rb' + - 'spec/models/custom_filter_spec.rb' + - 'spec/models/device_spec.rb' + - 'spec/models/domain_allow_spec.rb' + - 'spec/models/domain_block_spec.rb' + - 'spec/models/email_domain_block_spec.rb' + - 'spec/models/encrypted_message_spec.rb' + - 'spec/models/favourite_spec.rb' + - 'spec/models/featured_tag_spec.rb' + - 'spec/models/follow_recommendation_suppression_spec.rb' + - 'spec/models/follow_request_spec.rb' + - 'spec/models/follow_spec.rb' + - 'spec/models/home_feed_spec.rb' + - 'spec/models/identity_spec.rb' + - 'spec/models/import_spec.rb' + - 'spec/models/invite_spec.rb' + - 'spec/models/ip_block_spec.rb' + - 'spec/models/list_account_spec.rb' + - 'spec/models/list_spec.rb' + - 'spec/models/login_activity_spec.rb' + - 'spec/models/marker_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/mention_spec.rb' + - 'spec/models/mute_spec.rb' + - 'spec/models/notification_spec.rb' + - 'spec/models/one_time_key_spec.rb' + - 'spec/models/poll_spec.rb' + - 'spec/models/poll_vote_spec.rb' + - 'spec/models/preview_card_spec.rb' + - 'spec/models/preview_card_trend_spec.rb' + - 'spec/models/public_feed_spec.rb' + - 'spec/models/relay_spec.rb' + - 'spec/models/rule_spec.rb' + - 'spec/models/scheduled_status_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/models/site_upload_spec.rb' + - 'spec/models/status_edit_spec.rb' + - 'spec/models/status_pin_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/status_stat_spec.rb' + - 'spec/models/status_trend_spec.rb' + - 'spec/models/system_key_spec.rb' + - 'spec/models/tag_follow_spec.rb' + - 'spec/models/unavailable_domain_spec.rb' + - 'spec/models/user_invite_request_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/models/web/setting_spec.rb' + - 'spec/models/webauthn_credentials_spec.rb' + - 'spec/models/webhook_spec.rb' + +# Offense count: 6 +RSpec/RepeatedExample: + Exclude: + - 'spec/policies/status_policy_spec.rb' + +# Offense count: 6 +RSpec/RepeatedExampleGroupBody: + Exclude: + - 'spec/controllers/statuses_controller_spec.rb' + +# Offense count: 4 +RSpec/RepeatedExampleGroupDescription: + Exclude: + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/policies/report_note_policy_spec.rb' + +# Offense count: 6 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: and_return, block +RSpec/ReturnFromStub: + Exclude: + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses_controller_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + +# Offense count: 18 +# This cop supports safe autocorrection (--autocorrect). +RSpec/ScatteredLet: + Exclude: + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/fan_out_on_write_service_spec.rb' + - 'spec/services/import_service_spec.rb' + +# Offense count: 12 +RSpec/ScatteredSetup: + Exclude: + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/activitypub/outboxes_controller_spec.rb' + - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +RSpec/SharedContext: + Exclude: + - 'spec/services/unsuspend_account_service_spec.rb' + +# Offense count: 16 +RSpec/StubbedMock: + Exclude: + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/api/v1/media_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/lib/status_filter_spec.rb' + - 'spec/lib/status_finder_spec.rb' + - 'spec/lib/webfinger_resource_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + +# Offense count: 22 +RSpec/SubjectDeclaration: + Exclude: + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' + - 'spec/models/account_migration_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/relationship_filter_spec.rb' + - 'spec/models/user_role_spec.rb' + - 'spec/policies/account_moderation_note_policy_spec.rb' + - 'spec/policies/account_policy_spec.rb' + - 'spec/policies/backup_policy_spec.rb' + - 'spec/policies/custom_emoji_policy_spec.rb' + - 'spec/policies/domain_block_policy_spec.rb' + - 'spec/policies/email_domain_block_policy_spec.rb' + - 'spec/policies/instance_policy_spec.rb' + - 'spec/policies/invite_policy_spec.rb' + - 'spec/policies/relay_policy_spec.rb' + - 'spec/policies/report_note_policy_spec.rb' + - 'spec/policies/report_policy_spec.rb' + - 'spec/policies/settings_policy_spec.rb' + - 'spec/policies/tag_policy_spec.rb' + - 'spec/policies/user_policy_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + +# Offense count: 5 +RSpec/SubjectStub: + Exclude: + - 'spec/services/unallow_domain_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + +# Offense count: 119 +# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames. +RSpec/VerifiedDoubles: + Exclude: + - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/confirmations_controller_spec.rb' + - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' + - 'spec/controllers/admin/domain_allows_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/reports_controller_spec.rb' + - 'spec/controllers/api/web/embeds_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/disputes/appeals_controller_spec.rb' + - 'spec/controllers/settings/imports_controller_spec.rb' + - 'spec/helpers/statuses_helper_spec.rb' + - 'spec/lib/suspicious_sign_in_detector_spec.rb' + - 'spec/models/account/field_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' + - 'spec/services/account_search_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + - 'spec/validators/disallowed_hashtags_validator_spec.rb' + - 'spec/validators/email_mx_validator_spec.rb' + - 'spec/validators/follow_limit_validator_spec.rb' + - 'spec/validators/note_length_validator_spec.rb' + - 'spec/validators/poll_validator_spec.rb' + - 'spec/validators/status_length_validator_spec.rb' + - 'spec/validators/status_pin_validator_spec.rb' + - 'spec/validators/unique_username_validator_spec.rb' + - 'spec/validators/unreserved_username_validator_spec.rb' + - 'spec/validators/url_validator_spec.rb' + - 'spec/views/statuses/show.html.haml_spec.rb' + - 'spec/workers/activitypub/processing_worker_spec.rb' + - 'spec/workers/admin/domain_purge_worker_spec.rb' + - 'spec/workers/domain_block_worker_spec.rb' + - 'spec/workers/domain_clear_media_worker_spec.rb' + - 'spec/workers/feed_insert_worker_spec.rb' + - 'spec/workers/regeneration_worker_spec.rb' + +# Offense count: 19 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: ExpectedOrder, Include. +# ExpectedOrder: index, show, new, edit, create, update, destroy +# Include: app/controllers/**/*.rb +Rails/ActionOrder: + Exclude: + - 'app/controllers/admin/announcements_controller.rb' + - 'app/controllers/admin/roles_controller.rb' + - 'app/controllers/admin/rules_controller.rb' + - 'app/controllers/admin/warning_presets_controller.rb' + - 'app/controllers/admin/webhooks_controller.rb' + - 'app/controllers/api/v1/admin/domain_allows_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' + - 'app/controllers/api/v1/filters_controller.rb' + - 'app/controllers/api/v1/media_controller.rb' + - 'app/controllers/api/v1/push/subscriptions_controller.rb' + - 'app/controllers/api/v2/filters/keywords_controller.rb' + - 'app/controllers/api/v2/filters/statuses_controller.rb' + - 'app/controllers/api/v2/filters_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/filters_controller.rb' + - 'app/controllers/settings/applications_controller.rb' + - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/ActiveRecordCallbacksOrder: + Exclude: + - 'app/models/account.rb' + - 'app/models/account_conversation.rb' + - 'app/models/announcement_reaction.rb' + - 'app/models/block.rb' + - 'app/models/media_attachment.rb' + - 'app/models/session_activation.rb' + - 'app/models/status.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/ApplicationController: + Exclude: + - 'app/controllers/health_controller.rb' + - 'app/controllers/well_known/host_meta_controller.rb' + - 'app/controllers/well_known/nodeinfo_controller.rb' + - 'app/controllers/well_known/webfinger_controller.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent. +Rails/Blank: + Exclude: + - 'app/services/activitypub/fetch_remote_actor_service.rb' + +# Offense count: 35 +# Configuration parameters: Database, Include. +# SupportedDatabases: mysql, postgresql +# Include: db/migrate/*.rb +Rails/BulkChangeTable: + Exclude: + - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb' + - 'db/migrate/20160223162837_add_metadata_to_statuses.rb' + - 'db/migrate/20160305115639_add_devise_to_users.rb' + - 'db/migrate/20160314164231_add_owner_to_application.rb' + - 'db/migrate/20160926213048_remove_owner_from_application.rb' + - 'db/migrate/20161003142332_add_confirmable_to_users.rb' + - 'db/migrate/20170112154826_migrate_settings.rb' + - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb' + - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb' + - 'db/migrate/20170330021336_add_counter_caches.rb' + - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb' + - 'db/migrate/20170427011934_re_add_owner_to_application.rb' + - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb' + - 'db/migrate/20170624134742_add_description_to_session_activations.rb' + - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb' + - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb' + - 'db/migrate/20180812123222_change_relays_enabled.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/migrate/20190805123746_add_capabilities_to_tags.rb' + - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' + - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb' + - 'db/migrate/20190901035623_add_max_score_to_tags.rb' + - 'db/migrate/20200417125749_add_storage_schema_version.rb' + - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb' + - 'db/migrate/20211112011713_add_language_to_preview_cards.rb' + - 'db/migrate/20211231080958_add_category_to_reports.rb' + - 'db/migrate/20220202200743_add_trendable_to_accounts.rb' + - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb' + - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb' + - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' + - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' + +# Offense count: 7 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/CompactBlank: + Exclude: + - 'app/helpers/application_helper.rb' + - 'app/helpers/statuses_helper.rb' + - 'app/models/concerns/attachmentable.rb' + - 'app/models/poll.rb' + - 'app/models/user.rb' + - 'app/services/import_service.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Rails/ContentTag: + Exclude: + - 'app/helpers/application_helper.rb' + - 'app/helpers/branding_helper.rb' + +# Offense count: 8 +# Configuration parameters: Include. +# Include: db/migrate/*.rb +Rails/CreateTableWithTimestamps: + Exclude: + - 'db/migrate/20170508230434_create_conversation_mutes.rb' + - 'db/migrate/20170823162448_create_status_pins.rb' + - 'db/migrate/20171116161857_create_list_accounts.rb' + - 'db/migrate/20180929222014_create_account_conversations.rb' + - 'db/migrate/20181007025445_create_pghero_space_stats.rb' + - 'db/migrate/20190103124649_create_scheduled_statuses.rb' + - 'db/migrate/20220824233535_create_status_trends.rb' + - 'db/migrate/20221006061337_create_preview_card_trends.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/DeprecatedActiveModelErrorsMethods: + Exclude: + - 'app/validators/ed25519_key_validator.rb' + - 'app/validators/ed25519_signature_validator.rb' + - 'lib/mastodon/accounts_cli.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +Rails/DuplicateAssociation: + Exclude: + - 'app/serializers/activitypub/collection_serializer.rb' + - 'app/serializers/activitypub/note_serializer.rb' + +# Offense count: 12 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/EnumHash: + Exclude: + - 'app/models/account.rb' + - 'app/models/custom_filter.rb' + - 'app/models/domain_block.rb' + - 'app/models/import.rb' + - 'app/models/list.rb' + - 'app/models/media_attachment.rb' + - 'app/models/preview_card.rb' + - 'app/models/relay.rb' + - 'app/models/status.rb' + +# Offense count: 76 +# Configuration parameters: EnforcedStyle. +# SupportedStyles: slashes, arguments +Rails/FilePath: + Exclude: + - 'app/lib/themes.rb' + - 'app/models/setting.rb' + - 'app/validators/reaction_validator.rb' + - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' + - 'db/migrate/20170918125918_ids_to_bigints.rb' + - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' + - 'db/migrate/20171028221157_add_reblogs_to_follows.rb' + - 'db/migrate/20171107143332_add_memorial_to_accounts.rb' + - 'db/migrate/20171107143624_add_disabled_to_users.rb' + - 'db/migrate/20171109012327_add_moderator_to_accounts.rb' + - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb' + - 'db/migrate/20180615122121_add_autofollow_to_invites.rb' + - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb' + - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb' + - 'db/migrate/20181010141500_add_silent_to_mentions.rb' + - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb' + - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb' + - 'db/migrate/20181127130500_identity_id_to_bigint.rb' + - 'db/migrate/20181127165847_add_show_replies_to_lists.rb' + - 'db/migrate/20190201012802_add_overwrite_to_imports.rb' + - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' + - 'db/migrate/20190307234537_add_approved_to_users.rb' + - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb' + - 'db/migrate/20191212003415_increase_backup_size.rb' + - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb' + - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' + - 'db/migrate/20200917192924_add_notify_to_follows.rb' + - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb' + - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' + - 'db/migrate/20211231080958_add_category_to_reports.rb' + - 'db/migrate/20220613110834_add_action_to_custom_filters.rb' + - 'db/post_migrate/20220307083603_optimize_null_index_conversations_uri.rb' + - 'db/post_migrate/20220310060545_optimize_null_index_statuses_in_reply_to_account_id.rb' + - 'db/post_migrate/20220310060556_optimize_null_index_statuses_in_reply_to_id.rb' + - 'db/post_migrate/20220310060614_optimize_null_index_media_attachments_scheduled_status_id.rb' + - 'db/post_migrate/20220310060626_optimize_null_index_media_attachments_shortcode.rb' + - 'db/post_migrate/20220310060641_optimize_null_index_users_reset_password_token.rb' + - 'db/post_migrate/20220310060653_optimize_null_index_users_created_by_application_id.rb' + - 'db/post_migrate/20220310060706_optimize_null_index_statuses_uri.rb' + - 'db/post_migrate/20220310060722_optimize_null_index_accounts_moved_to_account_id.rb' + - 'db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb' + - 'db/post_migrate/20220310060750_optimize_null_index_accounts_url.rb' + - 'db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb' + - 'db/post_migrate/20220310060833_optimize_null_index_announcement_reactions_custom_emoji_id.rb' + - 'db/post_migrate/20220310060854_optimize_null_index_appeals_approved_by_account_id.rb' + - 'db/post_migrate/20220310060913_optimize_null_index_account_migrations_target_account_id.rb' + - 'db/post_migrate/20220310060926_optimize_null_index_appeals_rejected_by_account_id.rb' + - 'db/post_migrate/20220310060939_optimize_null_index_list_accounts_follow_id.rb' + - 'db/post_migrate/20220310060959_optimize_null_index_web_push_subscriptions_access_token_id.rb' + - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb' + - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb' + - 'db/post_migrate/20220617202502_migrate_roles.rb' + - 'db/seeds.rb' + - 'db/seeds/03_roles.rb' + - 'lib/tasks/branding.rake' + - 'lib/tasks/emojis.rake' + - 'lib/tasks/repo.rake' + - 'spec/controllers/admin/custom_emojis_controller_spec.rb' + - 'spec/fabricators/custom_emoji_fabricator.rb' + - 'spec/fabricators/site_upload_fabricator.rb' + - 'spec/rails_helper.rb' + - 'spec/spec_helper.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +Rails/FindById: + Exclude: + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/media_controller.rb' + +# Offense count: 6 +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/HasAndBelongsToMany: + Exclude: + - 'app/models/concerns/account_associations.rb' + - 'app/models/preview_card.rb' + - 'app/models/status.rb' + - 'app/models/tag.rb' + +# Offense count: 15 +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/HasManyOrHasOneDependent: + Exclude: + - 'app/models/concerns/account_counters.rb' + - 'app/models/conversation.rb' + - 'app/models/custom_emoji.rb' + - 'app/models/custom_emoji_category.rb' + - 'app/models/domain_block.rb' + - 'app/models/invite.rb' + - 'app/models/status.rb' + - 'app/models/user.rb' + - 'app/models/web/push_subscription.rb' + +# Offense count: 4 +# Configuration parameters: Include. +# Include: app/helpers/**/*.rb +Rails/HelperInstanceVariable: + Exclude: + - 'app/helpers/application_helper.rb' + - 'app/helpers/instance_helper.rb' + - 'app/helpers/jsonld_helper.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Include. +# Include: spec/**/*, test/**/* +Rails/HttpPositionalArguments: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + +# Offense count: 49 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: numeric, symbolic +Rails/HttpStatus: + Exclude: + - 'app/controllers/activitypub/inboxes_controller.rb' + - 'app/controllers/api/base_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/instances/activity_controller.rb' + - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' + - 'app/controllers/api/v1/instances/peers_controller.rb' + - 'app/controllers/api/v1/lists_controller.rb' + - 'app/controllers/api/v1/markers_controller.rb' + - 'app/controllers/api/v1/media_controller.rb' + - 'app/controllers/api/v1/statuses_controller.rb' + - 'app/controllers/api/v1/streaming_controller.rb' + - 'app/controllers/api/v2/media_controller.rb' + - 'app/controllers/api/v2/search_controller.rb' + - 'app/controllers/api/web/base_controller.rb' + - 'app/controllers/settings/pictures_controller.rb' + - 'app/controllers/well_known/webfinger_controller.rb' + - 'spec/controllers/api/base_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/concerns/account_controller_concern_spec.rb' + - 'spec/controllers/concerns/localized_spec.rb' + - 'spec/controllers/concerns/rate_limit_headers_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + +# Offense count: 7 +# Configuration parameters: Include. +# Include: spec/**/*.rb, test/**/*.rb +Rails/I18nLocaleAssignment: + Exclude: + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/requests/localization_spec.rb' + +# Offense count: 6 +Rails/I18nLocaleTexts: + Exclude: + - 'lib/tasks/mastodon.rake' + - 'spec/helpers/flashes_helper_spec.rb' + +# Offense count: 8 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/IgnoredColumnsAssignment: + Exclude: + - 'app/models/account.rb' + - 'app/models/account_stat.rb' + - 'app/models/admin/action_log.rb' + - 'app/models/custom_filter.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/report.rb' + - 'app/models/status_edit.rb' + - 'app/models/user.rb' + +# Offense count: 25 +# Configuration parameters: IgnoreScopes, Include. +# Include: app/models/**/*.rb +Rails/InverseOf: + Exclude: + - 'app/models/appeal.rb' + - 'app/models/concerns/account_interactions.rb' + - 'app/models/custom_emoji.rb' + - 'app/models/domain_block.rb' + - 'app/models/follow_recommendation.rb' + - 'app/models/instance.rb' + - 'app/models/notification.rb' + - 'app/models/status.rb' + - 'app/models/user_ip.rb' + +# Offense count: 13 +# Configuration parameters: Include. +# Include: app/controllers/**/*.rb, app/mailers/**/*.rb +Rails/LexicallyScopedActionFilter: + Exclude: + - 'app/controllers/admin/domain_blocks_controller.rb' + - 'app/controllers/admin/email_domain_blocks_controller.rb' + - 'app/controllers/auth/passwords_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/auth/sessions_controller.rb' + +# Offense count: 18 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/NegateInclude: + Exclude: + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/move.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/models/concerns/attachmentable.rb' + - 'app/models/concerns/remotable.rb' + - 'app/models/custom_filter.rb' + - 'app/models/webhook.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/search_service.rb' + - 'app/workers/web/push_notification_worker.rb' + - 'lib/paperclip/color_extractor.rb' + +# Offense count: 2 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Include. +# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb +Rails/Output: + Exclude: + - 'lib/mastodon/ip_blocks_cli.rb' + +# Offense count: 14 +# This cop supports safe autocorrection (--autocorrect). +Rails/Pluck: + Exclude: + - 'app/lib/importer/base_importer.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' + - 'spec/controllers/api/v1/notifications_controller_spec.rb' + - 'spec/controllers/api/v1/suggestions_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + +# Offense count: 9 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Include. +# Include: **/Rakefile, **/*.rake +Rails/RakeEnvironment: + Exclude: + - 'lib/tasks/auto_annotate_models.rake' + - 'lib/tasks/db.rake' + - 'lib/tasks/emojis.rake' + - 'lib/tasks/mastodon.rake' + - 'lib/tasks/repo.rake' + - 'lib/tasks/statistics.rake' + +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). +Rails/RedundantForeignKey: + Exclude: + - 'app/models/custom_filter.rb' + - 'app/models/follow_recommendation.rb' + - 'app/models/report.rb' + - 'app/models/status.rb' + - 'app/models/user_ip.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + +# Offense count: 29 +# Configuration parameters: Include. +# Include: db/**/*.rb +Rails/ReversibleMigration: + Exclude: + - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb' + - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' + - 'db/migrate/20170205175257_remove_devices.rb' + - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb' + - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb' + - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb' + - 'db/migrate/20170711225116_fix_null_booleans.rb' + - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' + - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' + - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' + - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180617162849_remove_unused_indexes.rb' + - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' + +# Offense count: 10 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/RootPathnameMethods: + Exclude: + - 'lib/mastodon/premailer_webpack_strategy.rb' + - 'lib/tasks/emojis.rake' + - 'lib/tasks/mastodon.rake' + - 'lib/tasks/repo.rake' + - 'spec/fabricators/custom_emoji_fabricator.rb' + - 'spec/fabricators/site_upload_fabricator.rb' + - 'spec/rails_helper.rb' + +# Offense count: 141 +# Configuration parameters: ForbiddenMethods, AllowedMethods. +# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all +Rails/SkipsModelValidations: + Exclude: + - 'app/controllers/admin/invites_controller.rb' + - 'app/controllers/concerns/session_tracking_concern.rb' + - 'app/models/concerns/account_merging.rb' + - 'app/models/concerns/expireable.rb' + - 'app/models/status.rb' + - 'app/models/trends/links.rb' + - 'app/models/trends/preview_card_batch.rb' + - 'app/models/trends/preview_card_provider_batch.rb' + - 'app/models/trends/status_batch.rb' + - 'app/models/trends/statuses.rb' + - 'app/models/trends/tag_batch.rb' + - 'app/models/trends/tags.rb' + - 'app/models/user.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/approve_appeal_service.rb' + - 'app/services/block_domain_service.rb' + - 'app/services/delete_account_service.rb' + - 'app/services/process_mentions_service.rb' + - 'app/services/unallow_domain_service.rb' + - 'app/services/unblock_domain_service.rb' + - 'app/services/update_status_service.rb' + - 'app/workers/activitypub/post_upgrade_worker.rb' + - 'app/workers/move_worker.rb' + - 'app/workers/scheduler/ip_cleanup_scheduler.rb' + - 'app/workers/scheduler/scheduled_statuses_scheduler.rb' + - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb' + - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb' + - 'db/migrate/20170209184350_add_reply_to_statuses.rb' + - 'db/migrate/20170304202101_add_type_to_media_attachments.rb' + - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' + - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb' + - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/migrate/20191007013357_update_pt_locales.rb' + - 'db/migrate/20220316233212_update_kurdish_locales.rb' + - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' + - 'db/post_migrate/20200917193528_migrate_notifications_type.rb' + - 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb' + - 'db/post_migrate/20220617202502_migrate_roles.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + - 'lib/cli.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' + - 'spec/lib/activitypub/activity/follow_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/update_account_service_spec.rb' + +# Offense count: 11 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/SquishedSQLHeredocs: + Exclude: + - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb' + - 'db/migrate/20180608213548_reject_following_blocked_users.rb' + - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb' + - 'lib/mastodon/snowflake.rb' + - 'lib/tasks/tests.rake' + +# Offense count: 7 +Rails/TransactionExitStatement: + Exclude: + - 'app/lib/activitypub/activity/announce.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/delete.rb' + - 'app/services/activitypub/process_account_service.rb' + +# Offense count: 4 +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/UniqueValidationWithoutIndex: + Exclude: + - 'app/models/account_alias.rb' + - 'app/models/custom_filter_status.rb' + - 'app/models/identity.rb' + - 'app/models/webauthn_credential.rb' + +# Offense count: 19 +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/UnusedIgnoredColumns: + Exclude: + - 'app/models/account.rb' + - 'app/models/account_stat.rb' + - 'app/models/admin/action_log.rb' + - 'app/models/custom_filter.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/report.rb' + - 'app/models/status_edit.rb' + - 'app/models/user.rb' + +# Offense count: 2 +# This cop supports unsafe autocorrection (--autocorrect-all). +Rails/WhereEquals: + Exclude: + - 'app/models/announcement.rb' + - 'app/models/status.rb' + +# Offense count: 61 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: exists, where +Rails/WhereExists: + Exclude: + - 'app/controllers/activitypub/inboxes_controller.rb' + - 'app/controllers/admin/email_domain_blocks_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/delivery_failure_tracker.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/status_cache_hydrator.rb' + - 'app/lib/suspicious_sign_in_detector.rb' + - 'app/models/concerns/account_interactions.rb' + - 'app/models/featured_tag.rb' + - 'app/models/poll.rb' + - 'app/models/session_activation.rb' + - 'app/models/status.rb' + - 'app/models/user.rb' + - 'app/policies/status_policy.rb' + - 'app/serializers/rest/announcement_serializer.rb' + - 'app/serializers/rest/tag_serializer.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/app_sign_up_service.rb' + - 'app/services/vote_service.rb' + - 'app/validators/reaction_validator.rb' + - 'app/validators/vote_validator.rb' + - 'app/workers/move_worker.rb' + - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' + - 'lib/mastodon/email_domain_blocks_cli.rb' + - 'lib/tasks/tests.rake' + - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' + - 'spec/controllers/api/v1/tags_controller_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/purge_domain_service_spec.rb' + - 'spec/services/unallow_domain_service_spec.rb' + +# Offense count: 3 +# This cop supports unsafe autocorrection (--autocorrect-all). +Security/IoMethods: + Exclude: + - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' + - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' + +# Offense count: 9 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods. +# SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces +# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object +# FunctionalMethods: let, let!, subject, watch +# AllowedMethods: lambda, proc, it +Style/BlockDelimiters: + Exclude: + - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/lib/webfinger_resource_spec.rb' + +# Offense count: 5 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/CaseLikeIf: + Exclude: + - 'app/controllers/authorize_interactions_controller.rb' + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/models/account.rb' + - 'app/services/resolve_url_service.rb' + +# Offense count: 445 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: nested, compact +Style/ClassAndModuleChildren: + Enabled: false + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowedMethods, AllowedPatterns. +# AllowedMethods: ==, equal?, eql? +Style/ClassEqualityComparison: + Exclude: + - 'app/helpers/jsonld_helper.rb' + - 'app/serializers/activitypub/outbox_serializer.rb' + +# Offense count: 7 +Style/CombinableLoops: + Exclude: + - 'app/models/form/custom_emoji_batch.rb' + - 'app/models/form/ip_block_batch.rb' + +# Offense count: 5 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/ConcatArrayLiterals: + Exclude: + - 'app/lib/feed_manager.rb' + +# Offense count: 1433 +# Configuration parameters: AllowedConstants. +Style/Documentation: + Enabled: false + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Style/EmptyLambdaParameter: + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: compact, expanded +Style/EmptyMethod: + Exclude: + - 'db/migrate/20181024224956_migrate_account_conversations.rb' + - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' + - 'db/migrate/20200510110808_reset_web_app_secret.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +Style/ExplicitBlockArgument: + Exclude: + - 'app/mailers/application_mailer.rb' + +# Offense count: 10 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowedVars. +Style/FetchEnvVar: + Exclude: + - 'app/helpers/application_helper.rb' + - 'app/lib/redis_configuration.rb' + - 'app/lib/translation_service.rb' + - 'lib/mastodon/premailer_webpack_strategy.rb' + - 'lib/mastodon/redis_config.rb' + - 'lib/tasks/repo.rake' + - 'spec/features/profile_spec.rb' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: format, sprintf, percent +Style/FormatString: + Exclude: + - 'app/serializers/rest/privacy_policy_serializer.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/paperclip/color_extractor.rb' + +# Offense count: 15 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns. +# SupportedStyles: annotated, template, unannotated +Style/FormatStringToken: + Exclude: + - 'app/models/privacy_policy.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/paperclip/color_extractor.rb' + +# Offense count: 713 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: always, always_true, never +Style/FrozenStringLiteralComment: + Enabled: false + +# Offense count: 69 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals. +Style/GuardClause: + Exclude: + - 'app/controllers/admin/confirmations_controller.rb' + - 'app/controllers/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/statuses_controller.rb' + - 'app/controllers/api/v1/blocks_controller.rb' + - 'app/controllers/api/v1/conversations_controller.rb' + - 'app/controllers/api/v1/domain_blocks_controller.rb' + - 'app/controllers/api/v1/endorsements_controller.rb' + - 'app/controllers/api/v1/favourites_controller.rb' + - 'app/controllers/api/v1/follow_requests_controller.rb' + - 'app/controllers/api/v1/lists/accounts_controller.rb' + - 'app/controllers/api/v1/mutes_controller.rb' + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/api/v1/scheduled_statuses_controller.rb' + - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' + - 'app/controllers/auth/confirmations_controller.rb' + - 'app/controllers/auth/passwords_controller.rb' + - 'app/controllers/filters/statuses_controller.rb' + - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' + - 'app/lib/activitypub/activity/block.rb' + - 'app/lib/activitypub/linked_data_signature.rb' + - 'app/lib/connection_pool/shared_connection_pool.rb' + - 'app/lib/request.rb' + - 'app/lib/request_pool.rb' + - 'app/lib/status_finder.rb' + - 'app/lib/webfinger.rb' + - 'app/lib/webfinger_resource.rb' + - 'app/models/account_statuses_cleanup_policy.rb' + - 'app/models/concerns/account_counters.rb' + - 'app/models/concerns/ldap_authenticable.rb' + - 'app/models/tag.rb' + - 'app/models/user.rb' + - 'app/serializers/rest/instance_serializer.rb' + - 'app/services/fan_out_on_write_service.rb' + - 'app/services/post_status_service.rb' + - 'app/services/process_hashtags_service.rb' + - 'app/workers/move_worker.rb' + - 'app/workers/redownload_avatar_worker.rb' + - 'app/workers/redownload_header_worker.rb' + - 'app/workers/redownload_media_worker.rb' + - 'app/workers/remote_account_refresh_worker.rb' + - 'db/migrate/20170901141119_truncate_preview_cards.rb' + - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb' + - 'lib/devise/two_factor_ldap_authenticatable.rb' + - 'lib/devise/two_factor_pam_authenticatable.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/mastodon/media_cli.rb' + - 'lib/paperclip/attachment_extensions.rb' + - 'lib/tasks/repo.rake' + +# Offense count: 13 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: braces, no_braces +Style/HashAsLastArrayItem: + Exclude: + - 'app/controllers/admin/statuses_controller.rb' + - 'app/controllers/api/v1/statuses_controller.rb' + - 'app/models/account.rb' + - 'app/models/concerns/account_counters.rb' + - 'app/models/concerns/status_threading_concern.rb' + - 'app/models/status.rb' + - 'app/services/batched_remove_status_service.rb' + - 'app/services/notify_service.rb' + - 'db/migrate/20181024224956_migrate_account_conversations.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowSplatArgument. +Style/HashConversion: + Exclude: + - 'app/services/import_service.rb' + +# Offense count: 12 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. +# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys +# SupportedShorthandSyntax: always, never, either, consistent +Style/HashSyntax: + Exclude: + - 'app/helpers/application_helper.rb' + - 'app/models/media_attachment.rb' + - 'lib/terrapin/multi_pipe_extensions.rb' + - 'spec/controllers/admin/reports/actions_controller_spec.rb' + - 'spec/controllers/admin/statuses_controller_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + +# Offense count: 3 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/HashTransformValues: + Exclude: + - 'app/serializers/rest/web_push_subscription_serializer.rb' + - 'app/services/import_service.rb' + +# Offense count: 176 +# This cop supports safe autocorrection (--autocorrect). +Style/IfUnlessModifier: + Exclude: + - 'app/controllers/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/statuses_controller.rb' + - 'app/controllers/api/v1/admin/accounts_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/blocks_controller.rb' + - 'app/controllers/api/v1/conversations_controller.rb' + - 'app/controllers/api/v1/domain_blocks_controller.rb' + - 'app/controllers/api/v1/emails/confirmations_controller.rb' + - 'app/controllers/api/v1/endorsements_controller.rb' + - 'app/controllers/api/v1/favourites_controller.rb' + - 'app/controllers/api/v1/filters_controller.rb' + - 'app/controllers/api/v1/follow_requests_controller.rb' + - 'app/controllers/api/v1/lists/accounts_controller.rb' + - 'app/controllers/api/v1/mutes_controller.rb' + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/api/v1/scheduled_statuses_controller.rb' + - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' + - 'app/controllers/api/v1/trends/links_controller.rb' + - 'app/controllers/api/v1/trends/statuses_controller.rb' + - 'app/controllers/api/v1/trends/tags_controller.rb' + - 'app/controllers/api/v2/admin/accounts_controller.rb' + - 'app/controllers/api/v2/search_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/auth/sessions_controller.rb' + - 'app/controllers/concerns/localized.rb' + - 'app/controllers/concerns/rate_limit_headers.rb' + - 'app/controllers/concerns/signature_verification.rb' + - 'app/controllers/filters/statuses_controller.rb' + - 'app/helpers/application_helper.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/activitypub/activity/announce.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/like.rb' + - 'app/lib/activitypub/linked_data_signature.rb' + - 'app/lib/activitypub/parser/media_attachment_parser.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/status_cache_hydrator.rb' + - 'app/lib/status_finder.rb' + - 'app/models/account.rb' + - 'app/models/account_migration.rb' + - 'app/models/account_statuses_cleanup_policy.rb' + - 'app/models/admin/import.rb' + - 'app/models/admin/status_batch_action.rb' + - 'app/models/concerns/account_avatar.rb' + - 'app/models/concerns/account_counters.rb' + - 'app/models/concerns/account_header.rb' + - 'app/models/concerns/account_interactions.rb' + - 'app/models/concerns/attachmentable.rb' + - 'app/models/concerns/ldap_authenticable.rb' + - 'app/models/concerns/omniauthable.rb' + - 'app/models/form/redirect.rb' + - 'app/models/media_attachment.rb' + - 'app/models/scheduled_status.rb' + - 'app/models/status.rb' + - 'app/models/trends.rb' + - 'app/models/trends/links.rb' + - 'app/models/trends/statuses.rb' + - 'app/models/user_role.rb' + - 'app/presenters/status_relationships_presenter.rb' + - 'app/serializers/initial_state_serializer.rb' + - 'app/serializers/rest/instance_serializer.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/activitypub/prepare_followers_synchronization_service.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/block_domain_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/fetch_resource_service.rb' + - 'app/services/notify_service.rb' + - 'app/services/post_status_service.rb' + - 'app/services/remove_from_followers_service.rb' + - 'app/services/report_service.rb' + - 'app/services/resolve_account_service.rb' + - 'app/services/search_service.rb' + - 'app/services/unblock_domain_service.rb' + - 'app/services/update_status_service.rb' + - 'app/validators/disallowed_hashtags_validator.rb' + - 'app/validators/existing_username_validator.rb' + - 'app/validators/follow_limit_validator.rb' + - 'app/validators/import_validator.rb' + - 'app/validators/note_length_validator.rb' + - 'app/validators/poll_validator.rb' + - 'app/validators/reaction_validator.rb' + - 'app/validators/registration_form_time_validator.rb' + - 'app/workers/activitypub/delivery_worker.rb' + - 'app/workers/move_worker.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' + - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' + - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' + - 'lib/cli.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/domains_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/mastodon/media_cli.rb' + - 'lib/mastodon/redis_config.rb' + - 'lib/mastodon/statuses_cli.rb' + - 'spec/support/matchers/model/model_have_error_on_field.rb' + +# Offense count: 3 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: InverseMethods, InverseBlocks. +Style/InverseMethods: + Exclude: + - 'app/models/custom_filter.rb' + - 'app/services/update_account_service.rb' + - 'spec/controllers/activitypub/replies_controller_spec.rb' + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: line_count_dependent, lambda, literal +Style/Lambda: + Exclude: + - 'app/models/concerns/paginable.rb' + - 'app/models/status.rb' + - 'app/models/tag.rb' + - 'lib/cli.rb' + - 'lib/mastodon/domains_cli.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/MapToHash: + Exclude: + - 'app/models/status.rb' + +# Offense count: 6 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowedMethods, AllowedPatterns. +Style/MethodCallWithoutArgsParentheses: + Exclude: + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + +# Offense count: 17 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: literals, strict +Style/MutableConstant: + Exclude: + - 'app/lib/link_details_extractor.rb' + - 'app/models/account.rb' + - 'app/models/custom_emoji.rb' + - 'app/models/tag.rb' + - 'app/services/account_search_service.rb' + - 'app/services/delete_account_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/resolve_url_service.rb' + - 'app/validators/html_validator.rb' + - 'lib/mastodon/snowflake.rb' + - 'spec/controllers/api/base_controller_spec.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowedMethods. +# AllowedMethods: be, be_a, be_an, be_between, be_falsey, be_kind_of, be_instance_of, be_truthy, be_within, eq, eql, end_with, include, match, raise_error, respond_to, start_with +Style/NestedParenthesizedCalls: + Exclude: + - 'spec/services/post_status_service_spec.rb' + +# Offense count: 7 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: MinDigits, Strict, AllowedNumbers, AllowedPatterns. +Style/NumericLiterals: + Exclude: + - 'db/migrate/20180812173710_copy_status_stats.rb' + - 'db/migrate/20181116173541_copy_account_stats.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'spec/controllers/api/v1/markers_controller_spec.rb' + +# Offense count: 10 +# Configuration parameters: AllowedMethods. +# AllowedMethods: respond_to_missing? +Style/OptionalBooleanParameter: + Exclude: + - 'app/helpers/admin/account_moderation_notes_helper.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/request.rb' + - 'app/lib/webfinger.rb' + - 'app/services/block_domain_service.rb' + - 'app/services/fetch_resource_service.rb' + - 'app/workers/domain_block_worker.rb' + - 'app/workers/unfollow_follow_worker.rb' + - 'lib/mastodon/redis_config.rb' + +# Offense count: 1 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Exclude: + - 'spec/lib/text_formatter_spec.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +Style/PerlBackrefs: + Exclude: + - 'app/lib/extractor.rb' + +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: short, verbose +Style/PreferredHashMethods: + Exclude: + - 'spec/support/matchers/model/model_have_error_on_field.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, AllowedCompactTypes. +# SupportedStyles: compact, exploded +Style/RaiseArgs: + Exclude: + - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' + - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' + +# Offense count: 5 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Methods. +Style/RedundantArgument: + Exclude: + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/application_helper.rb' + - 'lib/tasks/emojis.rake' + +# Offense count: 83 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantBegin: + Exclude: + - 'app/controllers/admin/dashboard_controller.rb' + - 'app/controllers/api/v1/announcements_controller.rb' + - 'app/controllers/api/v1/trends/links_controller.rb' + - 'app/controllers/api/v1/trends/statuses_controller.rb' + - 'app/controllers/api/v1/trends/tags_controller.rb' + - 'app/controllers/concerns/rate_limit_headers.rb' + - 'app/controllers/concerns/two_factor_authentication_concern.rb' + - 'app/helpers/admin/dashboard_helper.rb' + - 'app/helpers/admin/trends/statuses_helper.rb' + - 'app/helpers/branding_helper.rb' + - 'app/helpers/domain_control_helper.rb' + - 'app/helpers/formatting_helper.rb' + - 'app/helpers/instance_helper.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/activity_tracker.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/forwarder.rb' + - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' + - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' + - 'app/lib/extractor.rb' + - 'app/lib/importer/statuses_index_importer.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/lib/request.rb' + - 'app/models/account.rb' + - 'app/models/account/field.rb' + - 'app/models/admin/account_action.rb' + - 'app/models/announcement.rb' + - 'app/models/concerns/account_merging.rb' + - 'app/models/concerns/pam_authenticable.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/form/admin_settings.rb' + - 'app/models/form/custom_emoji_batch.rb' + - 'app/models/notification.rb' + - 'app/models/remote_follow.rb' + - 'app/models/status.rb' + - 'app/models/status_edit.rb' + - 'app/models/trends/links.rb' + - 'app/models/trends/statuses.rb' + - 'app/models/trends/tag_filter.rb' + - 'app/models/trends/tags.rb' + - 'app/models/web/push_subscription.rb' + - 'app/presenters/tag_relationships_presenter.rb' + - 'app/services/account_search_service.rb' + - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/process_mentions_service.rb' + - 'app/services/reblog_service.rb' + - 'app/services/resolve_account_service.rb' + - 'app/validators/domain_validator.rb' + - 'app/validators/existing_username_validator.rb' + - 'app/validators/import_validator.rb' + - 'app/workers/backup_worker.rb' + - 'app/workers/post_process_media_worker.rb' + - 'app/workers/scheduler/follow_recommendations_scheduler.rb' + - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' + - 'db/migrate/20180812173710_copy_status_stats.rb' + - 'db/migrate/20181116173541_copy_account_stats.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/cli_helper.rb' + - 'lib/mastodon/ip_blocks_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/mastodon/media_cli.rb' + - 'lib/mastodon/search_cli.rb' + - 'lib/mastodon/upgrade_cli.rb' + - 'lib/paperclip/color_extractor.rb' + - 'lib/sanitize_ext/sanitize_config.rb' + - 'lib/tasks/db.rake' + +# Offense count: 3 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantConstantBase: + Exclude: + - 'config.ru' + - 'lib/tasks/statistics.rake' + - 'spec/rails_helper.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantPercentQ: + Exclude: + - 'spec/lib/text_formatter_spec.rb' + +# Offense count: 16 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantRegexpCharacterClass: + Exclude: + - 'app/lib/link_details_extractor.rb' + - 'app/lib/tag_manager.rb' + - 'app/models/domain_allow.rb' + - 'app/models/domain_block.rb' + - 'app/services/fetch_oembed_service.rb' + - 'lib/tasks/emojis.rake' + - 'lib/tasks/mastodon.rake' + +# Offense count: 10 +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantRegexpEscape: + Exclude: + - 'app/lib/webfinger_resource.rb' + - 'app/models/account.rb' + - 'app/models/tag.rb' + - 'app/services/fetch_link_card_service.rb' + - 'lib/paperclip/color_extractor.rb' + - 'lib/tasks/mastodon.rake' + +# Offense count: 19 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, AllowInnerSlashes. +# SupportedStyles: slashes, percent_r, mixed +Style/RegexpLiteral: + Exclude: + - 'app/lib/link_details_extractor.rb' + - 'app/lib/permalink_redirector.rb' + - 'app/lib/plain_text_formatter.rb' + - 'app/lib/tag_manager.rb' + - 'app/lib/text_formatter.rb' + - 'app/models/account.rb' + - 'app/models/domain_allow.rb' + - 'app/models/domain_block.rb' + - 'app/models/site_upload.rb' + - 'app/models/tag.rb' + - 'app/services/backup_service.rb' + - 'app/services/fetch_oembed_service.rb' + - 'app/services/search_service.rb' + - 'lib/mastodon/premailer_webpack_strategy.rb' + - 'lib/tasks/mastodon.rake' + +# Offense count: 21 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: implicit, explicit +Style/RescueStandardError: + Exclude: + - 'app/lib/activitypub/activity/move.rb' + - 'app/lib/request.rb' + - 'app/models/account.rb' + - 'app/workers/move_worker.rb' + - 'app/workers/scheduler/vacuum_scheduler.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/cli_helper.rb' + - 'lib/mastodon/media_cli.rb' + - 'lib/mastodon/sidekiq_middleware.rb' + - 'lib/mastodon/statuses_cli.rb' + - 'lib/mastodon/upgrade_cli.rb' + +# Offense count: 2 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength. +# AllowedMethods: present?, blank?, presence, try, try! +Style/SafeNavigation: + Exclude: + - 'app/models/concerns/account_finder_concern.rb' + - 'app/models/status.rb' + +# Offense count: 5 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowAsExpressionSeparator. +Style/Semicolon: + Exclude: + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/validators/blacklisted_email_validator_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# Offense count: 2 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: only_raise, only_fail, semantic +Style/SignalException: + Exclude: + - 'lib/devise/two_factor_ldap_authenticatable.rb' + - 'lib/devise/two_factor_pam_authenticatable.rb' + +# Offense count: 3 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/SingleArgumentDig: + Exclude: + - 'lib/webpacker/manifest_extensions.rb' + +# Offense count: 14 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/SlicingWithRange: + Exclude: + - 'app/lib/emoji_formatter.rb' + - 'app/lib/text_formatter.rb' + - 'app/lib/toc_generator.rb' + - 'app/models/account_alias.rb' + - 'app/models/domain_block.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/preview_card_provider.rb' + - 'app/validators/status_length_validator.rb' + - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb' + - 'lib/active_record/batches.rb' + - 'lib/mastodon/premailer_webpack_strategy.rb' + - 'lib/tasks/repo.rake' + +# Offense count: 25 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Mode. +Style/StringConcatenation: + Exclude: + - 'app/lib/activitypub/case_transform.rb' + - 'app/lib/validation_error_formatter.rb' + - 'app/services/backup_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'lib/mastodon/emoji_cli.rb' + - 'lib/mastodon/redis_config.rb' + - 'lib/mastodon/snowflake.rb' + - 'lib/paperclip/gif_transcoder.rb' + - 'lib/paperclip/type_corrector.rb' + - 'spec/controllers/api/v1/apps_controller_spec.rb' + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/validators/disallowed_hashtags_validator_spec.rb' + - 'spec/workers/web/push_notification_worker_spec.rb' + +# Offense count: 297 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Exclude: + - 'app/lib/webfinger.rb' + - 'db/migrate/20160305115639_add_devise_to_users.rb' + - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' + - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb' + - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180617162849_remove_unused_indexes.rb' + - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb' + - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb' + - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb' + - 'lib/mastodon/emoji_cli.rb' + - 'lib/rails/engine_extensions.rb' + - 'lib/tasks/mastodon.rake' + - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/auth/sessions_controller_spec.rb' + - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' + - 'spec/controllers/settings/imports_controller_spec.rb' + - 'spec/controllers/settings/profiles_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + - 'spec/controllers/statuses_cleanup_controller_spec.rb' + - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' + - 'spec/fabricators/account_moderation_note_fabricator.rb' + - 'spec/fabricators/account_note_fabricator.rb' + - 'spec/fabricators/account_stat_fabricator.rb' + - 'spec/fabricators/account_tag_stat_fabricator.rb' + - 'spec/fabricators/account_warning_preset_fabricator.rb' + - 'spec/fabricators/admin_action_log_fabricator.rb' + - 'spec/fabricators/canonical_email_block_fabricator.rb' + - 'spec/fabricators/conversation_account_fabricator.rb' + - 'spec/fabricators/custom_emoji_category_fabricator.rb' + - 'spec/fabricators/domain_allow_fabricator.rb' + - 'spec/fabricators/encrypted_message_fabricator.rb' + - 'spec/fabricators/identity_fabricator.rb' + - 'spec/fabricators/ip_block_fabricator.rb' + - 'spec/fabricators/list_fabricator.rb' + - 'spec/fabricators/relay_fabricator.rb' + - 'spec/fabricators/report_fabricator.rb' + - 'spec/fabricators/report_note_fabricator.rb' + - 'spec/fabricators/session_activation_fabricator.rb' + - 'spec/fabricators/status_edit_fabricator.rb' + - 'spec/fabricators/status_fabricator.rb' + - 'spec/fabricators/status_stat_fabricator.rb' + - 'spec/fabricators/user_fabricator.rb' + - 'spec/fabricators/user_role_fabricator.rb' + - 'spec/features/log_in_spec.rb' + - 'spec/helpers/accounts_helper_spec.rb' + - 'spec/helpers/application_helper_spec.rb' + - 'spec/lib/feed_manager_spec.rb' + - 'spec/mailers/notification_mailer_spec.rb' + - 'spec/mailers/user_mailer_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/media_attachment_spec.rb' + - 'spec/models/web/push_subscription_spec.rb' + - 'spec/models/webauthn_credentials_spec.rb' + - 'spec/presenters/instance_presenter_spec.rb' + - 'spec/rails_helper.rb' + - 'spec/requests/catch_all_route_request_spec.rb' + - 'spec/requests/host_meta_request_spec.rb' + - 'spec/requests/localization_spec.rb' + - 'spec/services/account_search_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/delete_account_service_spec.rb' + - 'spec/services/favourite_service_spec.rb' + - 'spec/services/fetch_link_card_service_spec.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/fetch_remote_status_service_spec.rb' + - 'spec/services/follow_service_spec.rb' + - 'spec/services/import_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + - 'spec/services/process_mentions_service_spec.rb' + - 'spec/services/resolve_account_service_spec.rb' + - 'spec/spec_helper.rb' + +# Offense count: 272 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, MinSize. +# SupportedStyles: percent, brackets +Style/SymbolArray: + Exclude: + - 'app/controllers/accounts_controller.rb' + - 'app/controllers/activitypub/replies_controller.rb' + - 'app/controllers/admin/accounts_controller.rb' + - 'app/controllers/admin/announcements_controller.rb' + - 'app/controllers/admin/domain_blocks_controller.rb' + - 'app/controllers/admin/email_domain_blocks_controller.rb' + - 'app/controllers/admin/relationships_controller.rb' + - 'app/controllers/admin/relays_controller.rb' + - 'app/controllers/admin/roles_controller.rb' + - 'app/controllers/admin/rules_controller.rb' + - 'app/controllers/admin/statuses_controller.rb' + - 'app/controllers/admin/trends/statuses_controller.rb' + - 'app/controllers/admin/warning_presets_controller.rb' + - 'app/controllers/admin/webhooks_controller.rb' + - 'app/controllers/api/v1/accounts/credentials_controller.rb' + - 'app/controllers/api/v1/accounts_controller.rb' + - 'app/controllers/api/v1/admin/accounts_controller.rb' + - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' + - 'app/controllers/api/v1/admin/domain_allows_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' + - 'app/controllers/api/v1/admin/reports_controller.rb' + - 'app/controllers/api/v1/crypto/deliveries_controller.rb' + - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' + - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' + - 'app/controllers/api/v1/featured_tags_controller.rb' + - 'app/controllers/api/v1/filters_controller.rb' + - 'app/controllers/api/v1/lists_controller.rb' + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/api/v1/push/subscriptions_controller.rb' + - 'app/controllers/api/v1/scheduled_statuses_controller.rb' + - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses_controller.rb' + - 'app/controllers/api/v2/filters/keywords_controller.rb' + - 'app/controllers/api/v2/filters/statuses_controller.rb' + - 'app/controllers/api/v2/filters_controller.rb' + - 'app/controllers/api/web/push_subscriptions_controller.rb' + - 'app/controllers/application_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/filters_controller.rb' + - 'app/controllers/settings/applications_controller.rb' + - 'app/controllers/settings/featured_tags_controller.rb' + - 'app/controllers/settings/profiles_controller.rb' + - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' + - 'app/controllers/statuses_controller.rb' + - 'app/lib/feed_manager.rb' + - 'app/models/account.rb' + - 'app/models/account_filter.rb' + - 'app/models/admin/status_filter.rb' + - 'app/models/announcement.rb' + - 'app/models/concerns/ldap_authenticable.rb' + - 'app/models/concerns/status_threading_concern.rb' + - 'app/models/custom_filter.rb' + - 'app/models/domain_block.rb' + - 'app/models/import.rb' + - 'app/models/list.rb' + - 'app/models/media_attachment.rb' + - 'app/models/preview_card.rb' + - 'app/models/relay.rb' + - 'app/models/report.rb' + - 'app/models/site_upload.rb' + - 'app/models/status.rb' + - 'app/serializers/initial_state_serializer.rb' + - 'app/serializers/rest/notification_serializer.rb' + - 'db/migrate/20160220174730_create_accounts.rb' + - 'db/migrate/20160221003621_create_follows.rb' + - 'db/migrate/20160223171800_create_favourites.rb' + - 'db/migrate/20160224223247_create_mentions.rb' + - 'db/migrate/20160314164231_add_owner_to_application.rb' + - 'db/migrate/20160316103650_add_missing_indices.rb' + - 'db/migrate/20160926213048_remove_owner_from_application.rb' + - 'db/migrate/20161003145426_create_blocks.rb' + - 'db/migrate/20161006213403_rails_settings_migration.rb' + - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb' + - 'db/migrate/20161119211120_create_notifications.rb' + - 'db/migrate/20161128103007_create_subscriptions.rb' + - 'db/migrate/20161222204147_create_follow_requests.rb' + - 'db/migrate/20170112154826_migrate_settings.rb' + - 'db/migrate/20170301222600_create_mutes.rb' + - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb' + - 'db/migrate/20170424003227_create_account_domain_blocks.rb' + - 'db/migrate/20170427011934_re_add_owner_to_application.rb' + - 'db/migrate/20170507141759_optimize_index_subscriptions.rb' + - 'db/migrate/20170508230434_create_conversation_mutes.rb' + - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb' + - 'db/migrate/20170823162448_create_status_pins.rb' + - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb' + - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb' + - 'db/migrate/20170917153509_create_custom_emojis.rb' + - 'db/migrate/20170918125918_ids_to_bigints.rb' + - 'db/migrate/20171116161857_create_list_accounts.rb' + - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb' + - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb' + - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb' + - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' + - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' + - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180808175627_create_account_pins.rb' + - 'db/migrate/20180831171112_create_bookmarks.rb' + - 'db/migrate/20180929222014_create_account_conversations.rb' + - 'db/migrate/20181007025445_create_pghero_space_stats.rb' + - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb' + - 'db/migrate/20190316190352_create_account_identity_proofs.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/migrate/20190820003045_update_statuses_index.rb' + - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' + - 'db/migrate/20190904222339_create_markers.rb' + - 'db/migrate/20200113125135_create_announcement_mutes.rb' + - 'db/migrate/20200114113335_create_announcement_reactions.rb' + - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' + - 'db/migrate/20200628133322_create_account_notes.rb' + - 'db/migrate/20200917222316_add_index_notifications_on_type.rb' + - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb' + - 'db/migrate/20220714171049_create_tag_follows.rb' + - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb' + - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' + - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb' + - 'spec/controllers/api/v1/streaming_controller_spec.rb' + - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/fabricators/notification_fabricator.rb' + - 'spec/models/public_feed_spec.rb' + +# Offense count: 4 +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments. +# AllowedMethods: define_method, mail, respond_to +Style/SymbolProc: + Exclude: + - 'spec/lib/request_spec.rb' + +# Offense count: 8 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInArguments: + Exclude: + - 'app/controllers/tags_controller.rb' + - 'spec/services/fetch_oembed_service_spec.rb' + - 'spec/services/post_status_service_spec.rb' + +# Offense count: 10 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInArrayLiteral: + Exclude: + - 'spec/helpers/jsonld_helper_spec.rb' + - 'spec/lib/extractor_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/workers/activitypub/move_distribution_worker_spec.rb' + +# Offense count: 61 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInHashLiteral: + Exclude: + - 'spec/controllers/admin/accounts_controller_spec.rb' + - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' + - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb' + - 'spec/controllers/api/web/push_subscriptions_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/imports_controller_spec.rb' + - 'spec/controllers/settings/preferences/notifications_controller_spec.rb' + - 'spec/controllers/settings/preferences/other_controller_spec.rb' + - 'spec/lib/activitypub/activity/announce_spec.rb' + - 'spec/lib/activitypub/activity/create_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' + - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' + - 'spec/services/activitypub/fetch_replies_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/activitypub/process_collection_service_spec.rb' + - 'spec/services/activitypub/process_status_update_service_spec.rb' + - 'spec/services/activitypub/synchronize_followers_service_spec.rb' + - 'spec/services/fetch_resource_service_spec.rb' + - 'spec/spec_helper.rb' + +# Offense count: 4 +# This cop supports safe autocorrection (--autocorrect). +Style/UnpackFirst: + Exclude: + - 'app/models/concerns/account_interactions.rb' + - 'lib/paperclip/gif_transcoder.rb' + +# Offense count: 25 +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, MinSize, WordRegex. +# SupportedStyles: percent, brackets +Style/WordArray: + Exclude: + - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/tasks/statistics.rake' + - 'spec/controllers/api/v1/blocks_controller_spec.rb' + - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/favourites_controller_spec.rb' + - 'spec/controllers/api/v1/mutes_controller_spec.rb' + - 'spec/controllers/settings/applications_controller_spec.rb' + - 'spec/controllers/settings/preferences/other_controller_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' + - 'spec/services/activitypub/process_account_service_spec.rb' + - 'spec/services/delete_account_service_spec.rb' + - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' + +# don't clean out the manual directives overridden by generated file +Lint/RedundantCopDisableDirective: + Enabled: false From 6ef68d41067e07541f605807b62924ad05c319fc Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Feb 2023 00:29:06 +0100 Subject: [PATCH 0427/1220] Update and fix dependencies --- Gemfile | 2 +- Gemfile.lock | 9 ++++----- lib/mastodon/version.rb | 6 +++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 1ce7732e36..df5e871b86 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ end gem 'net-ldap', '~> 0.17' gem 'omniauth-cas', '~> 2.0' gem 'omniauth-saml', '~> 1.10' -gem 'gitlab-omniauth-openid-connect', '~>0.10.1', require: 'omniauth_openid_connect' +gem 'omniauth_openid_connect', '~> 0.6' gem 'omniauth', '~> 1.9' gem 'omniauth-rails_csrf_protection', '~> 0.1' diff --git a/Gemfile.lock b/Gemfile.lock index f9128de01b..574bb1929c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -279,10 +279,6 @@ GEM fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - gitlab-omniauth-openid-connect (0.10.1) - addressable (~> 2.7) - omniauth (>= 1.9, < 3) - openid_connect (~> 1.2) globalid (1.1.0) activesupport (>= 5.0) hamlit (3.0.3) @@ -449,6 +445,9 @@ GEM omniauth-saml (1.10.3) omniauth (~> 1.3, >= 1.3.2) ruby-saml (~> 1.9) + omniauth_openid_connect (0.6.0) + omniauth (>= 1.9, < 3) + openid_connect (~> 1.1) openid_connect (1.4.2) activemodel attr_required (>= 1.0.0) @@ -801,7 +800,6 @@ DEPENDENCIES fog-core (<= 2.4.0) fog-openstack (~> 0.3) fuubar (~> 2.5) - gitlab-omniauth-openid-connect (~> 0.10.1) hamlit-rails (~> 0.2) hcaptcha (~> 7.1) hiredis (~> 0.6) @@ -832,6 +830,7 @@ DEPENDENCIES omniauth-cas (~> 2.0) omniauth-rails_csrf_protection (~> 0.1) omniauth-saml (~> 1.10) + omniauth_openid_connect (~> 0.6) ox (~> 2.14) parslet pg (~> 1.4) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 62729b78f9..5a81520171 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,11 +9,11 @@ module Mastodon end def minor - 0 + 1 end def patch - 2 + 0 end def flags @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.1.9' + '+1.0.0' end def to_a From 2e938865378aa1b6ee014184dccb6f196f038c31 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 02:54:12 -0500 Subject: [PATCH 0428/1220] Enable Depependabot on Docker images (#23553) --- .github/dependabot.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c785d4a357..74d64620eb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -28,3 +28,18 @@ updates: open-pull-requests-limit: 99 allow: - dependency-type: direct + + - package-ecosystem: docker + directory: '/' + schedule: + interval: weekly + open-pull-requests-limit: 99 + ignore: + - dependency-name: 'moritzheiber/ruby-jemalloc' + update-types: + # only suggest patch releases for ruby and needs to sync with .ruby-version + - 'version-update:semver-minor' + - dependency-name: 'node' + update-types: + # only node minor releases allowed unless .nvmrc major is changed + - 'version-update:semver-major' From cde13349cb0ad8e280156cef7fc50692f943b0b2 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 17 Feb 2023 09:51:27 +0100 Subject: [PATCH 0429/1220] Fix bad type for spellCheck attribute (#23638) --- app/javascript/mastodon/components/autosuggest_input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.js index 8d2ddb411a..f9616c5817 100644 --- a/app/javascript/mastodon/components/autosuggest_input.js +++ b/app/javascript/mastodon/components/autosuggest_input.js @@ -51,7 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { searchTokens: PropTypes.arrayOf(PropTypes.string), maxLength: PropTypes.number, lang: PropTypes.string, - spellCheck: PropTypes.string, + spellCheck: PropTypes.bool, }; static defaultProps = { From ba8b57050d7adcf06794dc55d743d02b684c9405 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 09:52:30 +0100 Subject: [PATCH 0430/1220] Bump sass from 1.58.0 to 1.58.2 (#23658) 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 fc31d444c9..1c84611c3c 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^4.1.2", - "sass": "^1.58.0", + "sass": "^1.58.2", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index 9b2661f2c9..562e8d801e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9734,10 +9734,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.58.0: - version "1.58.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.0.tgz#ee8aea3ad5ea5c485c26b3096e2df6087d0bb1cc" - integrity sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg== +sass@^1.58.2: + version "1.58.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.2.tgz#ef3c5098a02dd006f09a2350b114f1ac445e38ce" + integrity sha512-2mbyOWOv/lhEXD6nVrQZQ4KT2DlwcODbTskM42EyqBAFUWOhiiYtAXZqjZz1ygzapYf+N+2GwfIH9M5FM4GUMg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 80ed656239b990b7f4566ba1c677913070e65bd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 09:54:14 +0100 Subject: [PATCH 0431/1220] Bump yargs from 17.6.2 to 17.7.0 (#23656) 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 1c84611c3c..36ef7f946e 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "stylelint": "^15.1.0", "stylelint-config-standard-scss": "^7.0.1", "webpack-dev-server": "^3.11.3", - "yargs": "^17.6.2" + "yargs": "^17.7.0" }, "resolutions": { "kind-of": "^6.0.3" diff --git a/yarn.lock b/yarn.lock index 562e8d801e..0b5b5de5ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11928,10 +11928,10 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^17.3.1, yargs@^17.6.2: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== +yargs@^17.3.1, yargs@^17.7.0: + version "17.7.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.0.tgz#b21e9af1e0a619a2a9c67b1133219b2975a07985" + integrity sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ== dependencies: cliui "^8.0.1" escalade "^3.1.1" From df3faecb4604503f4937ca5fb63e6c96343e8401 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 09:56:03 +0100 Subject: [PATCH 0432/1220] Bump jest from 29.4.2 to 29.4.3 (#23657) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 703 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 432 insertions(+), 273 deletions(-) diff --git a/package.json b/package.json index 36ef7f946e..73de3a8f68 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", - "jest": "^29.4.2", + "jest": "^29.4.3", "jest-environment-jsdom": "^29.4.2", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", diff --git a/yarn.lock b/yarn.lock index 0b5b5de5ca..09fbe7089d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1268,49 +1268,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.2.tgz#f78374905c2454764152904a344a2d5226b0ef09" - integrity sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg== +"@jest/console@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" + integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + jest-message-util "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" -"@jest/core@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.2.tgz#6e999b67bdc2df9d96ba9b142465bda71ee472c2" - integrity sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ== +"@jest/core@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" + integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== dependencies: - "@jest/console" "^29.4.2" - "@jest/reporters" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/reporters" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.4.2" - jest-config "^29.4.2" - jest-haste-map "^29.4.2" - jest-message-util "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-resolve-dependencies "^29.4.2" - jest-runner "^29.4.2" - jest-runtime "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" - jest-watcher "^29.4.2" + jest-changed-files "^29.4.3" + jest-config "^29.4.3" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-resolve-dependencies "^29.4.3" + jest-runner "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" + jest-watcher "^29.4.3" micromatch "^4.0.4" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" strip-ansi "^6.0.0" @@ -1324,20 +1324,30 @@ "@types/node" "*" jest-mock "^29.4.2" -"@jest/expect-utils@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.2.tgz#cd0065dfdd8e8a182aa350cc121db97b5eed7b3f" - integrity sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA== +"@jest/environment@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" + integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== dependencies: - jest-get-type "^29.4.2" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" + "@types/node" "*" + jest-mock "^29.4.3" -"@jest/expect@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.2.tgz#2d4a6a41b29380957c5094de19259f87f194578b" - integrity sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ== +"@jest/expect-utils@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" + integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== dependencies: - expect "^29.4.2" - jest-snapshot "^29.4.2" + jest-get-type "^29.4.3" + +"@jest/expect@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" + integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== + dependencies: + expect "^29.4.3" + jest-snapshot "^29.4.3" "@jest/fake-timers@^29.4.2": version "29.4.2" @@ -1351,26 +1361,38 @@ jest-mock "^29.4.2" jest-util "^29.4.2" -"@jest/globals@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.2.tgz#73f85f5db0e17642258b25fd0b9fc89ddedb50eb" - integrity sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg== +"@jest/fake-timers@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" + integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== dependencies: - "@jest/environment" "^29.4.2" - "@jest/expect" "^29.4.2" - "@jest/types" "^29.4.2" - jest-mock "^29.4.2" + "@jest/types" "^29.4.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-util "^29.4.3" -"@jest/reporters@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.2.tgz#6abfa923941daae0acc76a18830ee9e79a22042d" - integrity sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw== +"@jest/globals@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" + integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== + dependencies: + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/types" "^29.4.3" + jest-mock "^29.4.3" + +"@jest/reporters@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" + integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1383,9 +1405,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.2" - jest-util "^29.4.2" - jest-worker "^29.4.2" + jest-message-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1398,33 +1420,40 @@ dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.2.tgz#f9815d59e25cd3d6828e41489cd239271018d153" - integrity sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q== +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/source-map@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" + integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.2.tgz#34b0ba069f2e3072261e4884c8fb6bd15ed6fb8d" - integrity sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA== +"@jest/test-result@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" + integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== dependencies: - "@jest/console" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/types" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.2.tgz#8b48e5bc4af80b42edacaf2a733d4f295edf28fb" - integrity sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg== +"@jest/test-sequencer@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" + integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== dependencies: - "@jest/test-result" "^29.4.2" + "@jest/test-result" "^29.4.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" + jest-haste-map "^29.4.3" slash "^3.0.0" "@jest/transform@^29.4.2": @@ -1448,6 +1477,27 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/transform@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" + integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.4.3" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.4.3" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1469,12 +1519,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" - integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== +"@jest/types@^29.4.2", "@jest/types@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" + integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== dependencies: - "@jest/schemas" "^29.4.2" + "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -2584,6 +2634,19 @@ babel-jest@^29.4.2: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" + integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== + dependencies: + "@jest/transform" "^29.4.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.4.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-loader@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -2615,6 +2678,16 @@ babel-plugin-jest-hoist@^29.4.2: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" + integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -2722,6 +2795,14 @@ babel-preset-jest@^29.4.2: babel-plugin-jest-hoist "^29.4.2" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" + integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== + dependencies: + babel-plugin-jest-hoist "^29.4.3" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -4110,10 +4191,10 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff-sequences@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda" - integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw== +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== diffie-hellman@^5.0.0: version "5.0.3" @@ -4810,16 +4891,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.2.tgz#2ae34eb88de797c64a1541ad0f1e2ea8a7a7b492" - integrity sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ== +expect@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" + integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== dependencies: - "@jest/expect-utils" "^29.4.2" - jest-get-type "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + "@jest/expect-utils" "^29.4.3" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -6471,82 +6552,82 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376" - integrity sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw== +jest-changed-files@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" + integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.2.tgz#2d00c04baefd0ee2a277014cd494d4b5970663ed" - integrity sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg== +jest-circus@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" + integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== dependencies: - "@jest/environment" "^29.4.2" - "@jest/expect" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-runtime "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" + jest-each "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" p-limit "^3.1.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.2.tgz#94a2f913a0a7a49d11bee98ad88bf48baae941f4" - integrity sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q== +jest-cli@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" + integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== dependencies: - "@jest/core" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/core" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-config "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.2.tgz#15386dd9ed2f7059516915515f786b8836a98f07" - integrity sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA== +jest-config@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" + integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.2" - "@jest/types" "^29.4.2" - babel-jest "^29.4.2" + "@jest/test-sequencer" "^29.4.3" + "@jest/types" "^29.4.3" + babel-jest "^29.4.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.4.2" - jest-environment-node "^29.4.2" - jest-get-type "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-runner "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-circus "^29.4.3" + jest-environment-node "^29.4.3" + jest-get-type "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runner "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -6560,33 +6641,33 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871" - integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g== +jest-diff@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" + integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.2" - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-docblock@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.2.tgz#c78a95eedf9a24c0a6cc16cf2abdc4b8b0f2531b" - integrity sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag== +jest-docblock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" + integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== dependencies: detect-newline "^3.0.0" -jest-each@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.2.tgz#e1347aff1303f4c35470827a62c029d389c5d44a" - integrity sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA== +jest-each@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" + integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" chalk "^4.0.0" - jest-get-type "^29.4.2" - jest-util "^29.4.2" - pretty-format "^29.4.2" + jest-get-type "^29.4.3" + jest-util "^29.4.3" + pretty-format "^29.4.3" jest-environment-jsdom@^29.4.2: version "29.4.2" @@ -6602,27 +6683,27 @@ jest-environment-jsdom@^29.4.2: jest-util "^29.4.2" jsdom "^20.0.0" -jest-environment-node@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.2.tgz#0eab835b41e25fd0c1a72f62665fc8db08762ad2" - integrity sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w== +jest-environment-node@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" + integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== dependencies: - "@jest/environment" "^29.4.2" - "@jest/fake-timers" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-mock "^29.4.2" - jest-util "^29.4.2" + jest-mock "^29.4.3" + jest-util "^29.4.3" jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-get-type@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" - integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== jest-haste-map@^29.4.2: version "29.4.2" @@ -6643,23 +6724,42 @@ jest-haste-map@^29.4.2: optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.2.tgz#8f05c6680e0cb46a1d577c0d3da9793bed3ea97b" - integrity sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA== +jest-haste-map@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" + integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== dependencies: - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + "@jest/types" "^29.4.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" -jest-matcher-utils@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.2.tgz#08d0bf5abf242e3834bec92c7ef5071732839e85" - integrity sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg== +jest-leak-detector@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" + integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== + dependencies: + jest-get-type "^29.4.3" + pretty-format "^29.4.3" + +jest-matcher-utils@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" + integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== dependencies: chalk "^4.0.0" - jest-diff "^29.4.2" - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" jest-message-util@^29.4.2: version "29.4.2" @@ -6676,6 +6776,21 @@ jest-message-util@^29.4.2: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" + integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.4.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.4.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" @@ -6685,6 +6800,15 @@ jest-mock@^29.4.2: "@types/node" "*" jest-util "^29.4.2" +jest-mock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" + integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== + dependencies: + "@jest/types" "^29.4.3" + "@types/node" "*" + jest-util "^29.4.3" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -6695,89 +6819,93 @@ jest-regex-util@^29.4.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig== -jest-resolve-dependencies@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.2.tgz#6359db606f5967b68ca8bbe9dbc07a4306c12bf7" - integrity sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg== - dependencies: - jest-regex-util "^29.4.2" - jest-snapshot "^29.4.2" +jest-regex-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" + integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.2.tgz#8831f449671d08d161fe493003f61dc9b55b808e" - integrity sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw== +jest-resolve-dependencies@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" + integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== + dependencies: + jest-regex-util "^29.4.3" + jest-snapshot "^29.4.3" + +jest-resolve@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" + integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" + jest-haste-map "^29.4.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-util "^29.4.3" + jest-validate "^29.4.3" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.2.tgz#2bcecf72303369df4ef1e6e983c22a89870d5125" - integrity sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg== +jest-runner@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" + integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== dependencies: - "@jest/console" "^29.4.2" - "@jest/environment" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/environment" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.2" - jest-environment-node "^29.4.2" - jest-haste-map "^29.4.2" - jest-leak-detector "^29.4.2" - jest-message-util "^29.4.2" - jest-resolve "^29.4.2" - jest-runtime "^29.4.2" - jest-util "^29.4.2" - jest-watcher "^29.4.2" - jest-worker "^29.4.2" + jest-docblock "^29.4.3" + jest-environment-node "^29.4.3" + jest-haste-map "^29.4.3" + jest-leak-detector "^29.4.3" + jest-message-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runtime "^29.4.3" + jest-util "^29.4.3" + jest-watcher "^29.4.3" + jest-worker "^29.4.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.2.tgz#d86b764c5b95d76cb26ed1f32644e99de5d5c134" - integrity sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw== +jest-runtime@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" + integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== dependencies: - "@jest/environment" "^29.4.2" - "@jest/fake-timers" "^29.4.2" - "@jest/globals" "^29.4.2" - "@jest/source-map" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/globals" "^29.4.3" + "@jest/source-map" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" - jest-message-util "^29.4.2" - jest-mock "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" - semver "^7.3.5" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.2.tgz#ba1fb9abb279fd2c85109ff1757bc56b503bbb3a" - integrity sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw== +jest-snapshot@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" + integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6785,23 +6913,23 @@ jest-snapshot@^29.4.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/expect-utils" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.2" + expect "^29.4.3" graceful-fs "^4.2.9" - jest-diff "^29.4.2" - jest-get-type "^29.4.2" - jest-haste-map "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + jest-haste-map "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" natural-compare "^1.4.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" semver "^7.3.5" jest-util@^29.4.2: @@ -6816,30 +6944,42 @@ jest-util@^29.4.2: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.2.tgz#3b3f8c4910ab9a3442d2512e2175df6b3f77b915" - integrity sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q== +jest-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" + integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" + integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== + dependencies: + "@jest/types" "^29.4.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.2" + jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" -jest-watcher@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.2.tgz#09c0f4c9a9c7c0807fcefb1445b821c6f7953b7c" - integrity sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w== +jest-watcher@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" + integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== dependencies: - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.2" + jest-util "^29.4.3" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -6861,15 +7001,25 @@ jest-worker@^29.4.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.2.tgz#4c2127d03a71dc187f386156ef155dbf323fb7be" - integrity sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg== +jest-worker@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" + integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== dependencies: - "@jest/core" "^29.4.2" - "@jest/types" "^29.4.2" + "@types/node" "*" + jest-util "^29.4.3" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" + integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== + dependencies: + "@jest/core" "^29.4.3" + "@jest/types" "^29.4.3" import-local "^3.0.2" - jest-cli "^29.4.2" + jest-cli "^29.4.3" js-sdsl@^4.1.4: version "4.3.0" @@ -8824,6 +8974,15 @@ pretty-format@^29.4.2: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" + integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" From 7cf3430e631b5a5a4fd747162248004543d5c00e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 10:06:24 +0100 Subject: [PATCH 0433/1220] Bump webauthn from 2.5.2 to 3.0.0 (#23659) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 3a1f3a8c4d..2ff32b6993 100644 --- a/Gemfile +++ b/Gemfile @@ -94,7 +94,7 @@ gem 'twitter-text', '~> 3.1.0' gem 'tzinfo-data', '~> 1.2022' gem 'webpacker', '~> 5.4' gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9' -gem 'webauthn', '~> 2.5' +gem 'webauthn', '~> 3.0' gem 'json-ld' gem 'json-ld-preloaded', '~> 3.2' diff --git a/Gemfile.lock b/Gemfile.lock index fbe09b290a..b28525bf45 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -137,7 +137,7 @@ GEM erubi (~> 1.4) parser (>= 2.4) smart_properties - bindata (2.4.14) + bindata (2.4.15) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) blurhash (0.1.7) @@ -195,7 +195,7 @@ GEM color_diff (0.1) concurrent-ruby (1.2.0) connection_pool (2.3.0) - cose (1.2.1) + cose (1.3.0) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) crack (0.4.5) @@ -364,7 +364,7 @@ GEM json-schema (3.0.0) addressable (>= 2.8) jsonapi-renderer (0.2.2) - jwt (2.5.0) + jwt (2.7.0) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -472,9 +472,9 @@ GEM validate_email validate_url webfinger (~> 1.2) - openssl (3.0.0) - openssl-signature_algorithm (1.2.1) - openssl (> 2.0, < 3.1) + openssl (3.1.0) + openssl-signature_algorithm (1.3.0) + openssl (> 2.0) orm_adapter (0.5.0) ox (2.14.14) parallel (1.22.1) @@ -703,9 +703,9 @@ GEM thor (1.2.1) tilt (2.0.11) timeout (0.3.1) - tpm-key_attestation (0.11.0) + tpm-key_attestation (0.12.0) bindata (~> 2.4) - openssl (> 2.0, < 3.1) + openssl (> 2.0) openssl-signature_algorithm (~> 1.0) tty-color (0.6.0) tty-cursor (0.7.1) @@ -738,15 +738,15 @@ GEM public_suffix warden (1.2.9) rack (>= 2.0.9) - webauthn (2.5.2) + webauthn (3.0.0) android_key_attestation (~> 0.3.0) awrence (~> 1.1) bindata (~> 2.4) cbor (~> 0.5.9) cose (~> 1.1) - openssl (>= 2.2, < 3.1) + openssl (>= 2.2) safety_net_attestation (~> 0.4.0) - tpm-key_attestation (~> 0.11.0) + tpm-key_attestation (~> 0.12.0) webfinger (1.2.0) activesupport httpclient (>= 2.4) @@ -895,7 +895,7 @@ DEPENDENCIES tty-prompt (~> 0.23) twitter-text (~> 3.1.0) tzinfo-data (~> 1.2022) - webauthn (~> 2.5) + webauthn (~> 3.0) webmock (~> 3.18) webpacker (~> 5.4) webpush! From 640d1aec1fbb11ae1e0310c13ab2957a5a8a5c86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 10:19:23 +0100 Subject: [PATCH 0434/1220] Bump jest-environment-jsdom from 29.4.2 to 29.4.3 (#23655) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 94 ++++++---------------------------------------------- 2 files changed, 11 insertions(+), 85 deletions(-) diff --git a/package.json b/package.json index 73de3a8f68..3a2c9016cd 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", "jest": "^29.4.3", - "jest-environment-jsdom": "^29.4.2", + "jest-environment-jsdom": "^29.4.3", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", "raf": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index 09fbe7089d..2ae1241609 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1314,16 +1314,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" - integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ== - dependencies: - "@jest/fake-timers" "^29.4.2" - "@jest/types" "^29.4.2" - "@types/node" "*" - jest-mock "^29.4.2" - "@jest/environment@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" @@ -1349,18 +1339,6 @@ expect "^29.4.3" jest-snapshot "^29.4.3" -"@jest/fake-timers@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" - integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ== - dependencies: - "@jest/types" "^29.4.2" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.4.2" - jest-mock "^29.4.2" - jest-util "^29.4.2" - "@jest/fake-timers@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" @@ -1413,13 +1391,6 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" - integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g== - dependencies: - "@sinclair/typebox" "^0.25.16" - "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -6669,18 +6640,18 @@ jest-each@^29.4.3: jest-util "^29.4.3" pretty-format "^29.4.3" -jest-environment-jsdom@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz#0cf95ad846949280dd58bc91a9ca463b6b232dd8" - integrity sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg== +jest-environment-jsdom@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.3.tgz#bd8ed3808e6d3f616403fbaf8354f77019613d90" + integrity sha512-rFjf8JXrw3OjUzzmSE5l0XjMj0/MSVEUMCSXBGPDkfwb1T03HZI7iJSL0cGctZApPSyJxbjyKDVxkZuyhHkuTw== dependencies: - "@jest/environment" "^29.4.2" - "@jest/fake-timers" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.4.2" - jest-util "^29.4.2" + jest-mock "^29.4.3" + jest-util "^29.4.3" jsdom "^20.0.0" jest-environment-node@^29.4.3: @@ -6761,21 +6732,6 @@ jest-matcher-utils@^29.4.3: jest-get-type "^29.4.3" pretty-format "^29.4.3" -jest-message-util@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717" - integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.4.2" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" @@ -6791,15 +6747,6 @@ jest-message-util@^29.4.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" - integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g== - dependencies: - "@jest/types" "^29.4.2" - "@types/node" "*" - jest-util "^29.4.2" - jest-mock@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" @@ -6932,19 +6879,7 @@ jest-snapshot@^29.4.3: pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" - integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== - dependencies: - "@jest/types" "^29.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.4.3: +jest-util@^29.4.2, jest-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== @@ -8965,15 +8900,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" - integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg== - dependencies: - "@jest/schemas" "^29.4.2" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-format@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" From 4a1bad2fd8bb267f57fb81ee2e9d29a3cc5f612d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 10:26:16 +0100 Subject: [PATCH 0435/1220] Bump babel-jest from 29.4.2 to 29.4.3 (#23654) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 86 ---------------------------------------------------- 2 files changed, 1 insertion(+), 87 deletions(-) diff --git a/package.json b/package.json index 3a2c9016cd..8641c197c2 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "@babel/eslint-parser": "^7.19.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", - "babel-jest": "^29.4.2", + "babel-jest": "^29.4.3", "eslint": "^8.33.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", diff --git a/yarn.lock b/yarn.lock index 2ae1241609..e499d90ffd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1427,27 +1427,6 @@ jest-haste-map "^29.4.3" slash "^3.0.0" -"@jest/transform@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81" - integrity sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.4.2" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" - jest-regex-util "^29.4.2" - jest-util "^29.4.2" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - "@jest/transform@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" @@ -2592,19 +2571,6 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" -babel-jest@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" - integrity sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ== - dependencies: - "@jest/transform" "^29.4.2" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.2" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" @@ -2639,16 +2605,6 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc" - integrity sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" @@ -2758,14 +2714,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38" - integrity sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ== - dependencies: - babel-plugin-jest-hoist "^29.4.2" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" @@ -6676,25 +6624,6 @@ jest-get-type@^29.4.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a" - integrity sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw== - dependencies: - "@jest/types" "^29.4.2" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.4.2" - jest-util "^29.4.2" - jest-worker "^29.4.2" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-haste-map@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" @@ -6761,11 +6690,6 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" - integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig== - jest-regex-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" @@ -6926,16 +6850,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f" - integrity sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw== - dependencies: - "@types/node" "*" - jest-util "^29.4.2" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" From 37914c8757062194c8da2ede28927fdc177dc140 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 07:36:14 -0500 Subject: [PATCH 0436/1220] Autofix Rubocop Style/MethodCallWithoutArgsParentheses (#23645) --- .rubocop_todo.yml | 8 -------- .../activitypub/process_collection_service_spec.rb | 8 ++++---- spec/services/fetch_resource_service_spec.rb | 4 ++-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d1d5e06122..1a8bd9471d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3432,14 +3432,6 @@ Style/MapToHash: Exclude: - 'app/models/status.rb' -# Offense count: 6 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowedMethods, AllowedPatterns. -Style/MethodCallWithoutArgsParentheses: - Exclude: - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - # Offense count: 17 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index 093a188a21..a308cede76 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -212,8 +212,8 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do 'id' => 'https://example.com/users/bob/fake-status' ) ), - anything(), - anything() + anything, + anything ) expect(ActivityPub::Activity).not_to receive(:factory).with( @@ -222,8 +222,8 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do 'content' => '

    puck was here

    ' ) ), - anything(), - anything() + anything, + anything ) subject.call(json, forwarder) diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index c0c96ab69c..0c0c306fe1 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -21,7 +21,7 @@ RSpec.describe FetchResourceService, type: :service do context 'when OpenSSL::SSL::SSLError is raised' do before do - request = double() + request = double allow(Request).to receive(:new).and_return(request) allow(request).to receive(:add_headers) allow(request).to receive(:on_behalf_of) @@ -33,7 +33,7 @@ RSpec.describe FetchResourceService, type: :service do context 'when HTTP::ConnectionError is raised' do before do - request = double() + request = double allow(Request).to receive(:new).and_return(request) allow(request).to receive(:add_headers) allow(request).to receive(:on_behalf_of) From 936204b9eae85829c368e5877e4166faa5861fab Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 07:43:10 -0500 Subject: [PATCH 0437/1220] Autofix Rubocop Style/NestedParenthesizedCalls (#23646) --- .rubocop_todo.yml | 8 -------- spec/services/post_status_service_spec.rb | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1a8bd9471d..34143a6791 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3450,14 +3450,6 @@ Style/MutableConstant: - 'lib/mastodon/snowflake.rb' - 'spec/controllers/api/base_controller_spec.rb' -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowedMethods. -# AllowedMethods: be, be_a, be_an, be_between, be_falsey, be_kind_of, be_instance_of, be_truthy, be_within, eq, eql, end_with, include, match, raise_error, respond_to, start_with -Style/NestedParenthesizedCalls: - Exclude: - - 'spec/services/post_status_service_spec.rb' - # Offense count: 7 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: MinDigits, Strict, AllowedNumbers, AllowedPatterns. diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 28f20e9c70..76114a59c0 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -148,7 +148,7 @@ RSpec.describe PostStatusService, type: :service do expect do subject.call(account, text: '@alice hm, @bob is really annoying lately', allowed_mentions: [mentioned_account.id]) - end.to raise_error(an_instance_of(PostStatusService::UnexpectedMentionsError).and having_attributes(accounts: [unexpected_mentioned_account])) + end.to raise_error(an_instance_of(PostStatusService::UnexpectedMentionsError).and(having_attributes(accounts: [unexpected_mentioned_account]))) end it 'processes duplicate mentions correctly' do From 68b1071f8634de1c15877215df73a7c006aa6222 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 07:45:27 -0500 Subject: [PATCH 0438/1220] Autofix Rubocop RSpec/BeNil (#23653) --- .rubocop_todo.yml | 19 ------------------ spec/controllers/accounts_controller_spec.rb | 2 +- .../collections_controller_spec.rb | 2 +- .../activitypub/outboxes_controller_spec.rb | 2 +- .../activitypub/replies_controller_spec.rb | 2 +- .../api/v1/apps_controller_spec.rb | 2 +- .../api/v1/statuses_controller_spec.rb | 2 +- .../instance_actors_controller_spec.rb | 2 +- spec/controllers/statuses_controller_spec.rb | 2 +- .../account_statuses_cleanup_policy_spec.rb | 20 +++++++++---------- .../concerns/account_interactions_spec.rb | 2 +- spec/models/session_activation_spec.rb | 4 ++-- spec/models/user_spec.rb | 2 +- 13 files changed, 22 insertions(+), 41 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 34143a6791..a990e9d18d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -914,25 +914,6 @@ RSpec/BeEq: - 'spec/workers/feed_insert_worker_spec.rb' - 'spec/workers/regeneration_worker_spec.rb' -# Offense count: 22 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: be, be_nil -RSpec/BeNil: - Exclude: - - 'spec/controllers/accounts_controller_spec.rb' - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/activitypub/replies_controller_spec.rb' - - 'spec/controllers/api/v1/apps_controller_spec.rb' - - 'spec/controllers/api/v1/statuses_controller_spec.rb' - - 'spec/controllers/instance_actors_controller_spec.rb' - - 'spec/controllers/statuses_controller_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - - 'spec/models/session_activation_spec.rb' - - 'spec/models/user_spec.rb' - # Offense count: 1 RSpec/BeforeAfterAll: Exclude: diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb index defa8b2d38..db588156cb 100644 --- a/spec/controllers/accounts_controller_spec.rb +++ b/spec/controllers/accounts_controller_spec.rb @@ -8,7 +8,7 @@ RSpec.describe AccountsController, type: :controller do shared_examples 'cacheable response' do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index f78d9abbf0..4e35938dba 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -10,7 +10,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do shared_examples 'cacheable response' do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb index 74bf46a5eb..d8d42b7ae0 100644 --- a/spec/controllers/activitypub/outboxes_controller_spec.rb +++ b/spec/controllers/activitypub/outboxes_controller_spec.rb @@ -6,7 +6,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do shared_examples 'cacheable response' do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb index aee1a8b1ad..394d4baabe 100644 --- a/spec/controllers/activitypub/replies_controller_spec.rb +++ b/spec/controllers/activitypub/replies_controller_spec.rb @@ -11,7 +11,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do shared_examples 'cacheable response' do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb index 70cd62d482..9ac7880a4a 100644 --- a/spec/controllers/api/v1/apps_controller_spec.rb +++ b/spec/controllers/api/v1/apps_controller_spec.rb @@ -28,7 +28,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do end it 'creates an OAuth app' do - expect(Doorkeeper::Application.find_by(name: client_name)).to_not be nil + expect(Doorkeeper::Application.find_by(name: client_name)).to_not be_nil end it 'returns client ID and client secret' do diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb index bd8b8013a6..e4e6e172ac 100644 --- a/spec/controllers/api/v1/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/statuses_controller_spec.rb @@ -195,7 +195,7 @@ RSpec.describe Api::V1::StatusesController, type: :controller do end it 'removes the status' do - expect(Status.find_by(id: status.id)).to be nil + expect(Status.find_by(id: status.id)).to be_nil end end diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index f64a7d2ca3..833539a76d 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -20,7 +20,7 @@ RSpec.describe InstanceActorsController, type: :controller do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb index 6ed5d4bbb6..c8b503d683 100644 --- a/spec/controllers/statuses_controller_spec.rb +++ b/spec/controllers/statuses_controller_spec.rb @@ -8,7 +8,7 @@ describe StatusesController do shared_examples 'cacheable response' do it 'does not set cookies' do expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be nil + expect(response.headers['Set-Cookies']).to be_nil end it 'does not set sessions' do diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index b01321a205..684a1aa412 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -35,61 +35,61 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do it 'invalidates last_inspected when widened because of keep_direct' do account_statuses_cleanup_policy.keep_direct = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of keep_pinned' do account_statuses_cleanup_policy.keep_pinned = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of keep_polls' do account_statuses_cleanup_policy.keep_polls = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of keep_media' do account_statuses_cleanup_policy.keep_media = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of keep_self_fav' do account_statuses_cleanup_policy.keep_self_fav = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of keep_self_bookmark' do account_statuses_cleanup_policy.keep_self_bookmark = false account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of higher min_favs' do account_statuses_cleanup_policy.min_favs = 5 account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of disabled min_favs' do account_statuses_cleanup_policy.min_favs = nil account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of higher min_reblogs' do account_statuses_cleanup_policy.min_reblogs = 5 account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end it 'invalidates last_inspected when widened because of disable min_reblogs' do account_statuses_cleanup_policy.min_reblogs = nil account_statuses_cleanup_policy.save - expect(account_statuses_cleanup_policy.last_inspected).to be nil + expect(account_statuses_cleanup_policy.last_inspected).to be_nil end end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index 1d1898ab0c..5cb4a83f71 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -317,7 +317,7 @@ describe AccountInteractions do context 'not muting the conversation' do it 'returns nil' do - is_expected.to be nil + is_expected.to be_nil end end end diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb index 8db06c6227..5c3d285cb2 100644 --- a/spec/models/session_activation_spec.rb +++ b/spec/models/session_activation_spec.rb @@ -44,7 +44,7 @@ RSpec.describe SessionActivation, type: :model do let(:id) { nil } it 'returns nil' do - is_expected.to be nil + is_expected.to be_nil end end @@ -89,7 +89,7 @@ RSpec.describe SessionActivation, type: :model do let(:id) { nil } it 'returns nil' do - expect(described_class.deactivate(id)).to be nil + expect(described_class.deactivate(id)).to be_nil end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 4b3d6101fd..1f2ab77dc7 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -285,7 +285,7 @@ RSpec.describe User, type: :model do it 'saves nil for otp_secret' do user = Fabricate.build(:user, otp_secret: 'oldotpcode') user.disable_two_factor! - expect(user.reload.otp_secret).to be nil + expect(user.reload.otp_secret).to be_nil end it 'saves cleared otp_backup_codes' do From 6ed6c41724e9a80c9cbb068d7a59271b583d671c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 07:46:00 -0500 Subject: [PATCH 0439/1220] Autofix Rubocop RSpec/EmptyLineAfterExample (#23661) --- .rubocop_todo.yml | 7 ------- spec/services/search_service_spec.rb | 2 ++ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a990e9d18d..4340d43c1f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1164,13 +1164,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowConsecutiveOneLiners. -RSpec/EmptyLineAfterExample: - Exclude: - - 'spec/services/search_service_spec.rb' - # Offense count: 25 # This cop supports safe autocorrection (--autocorrect). RSpec/EmptyLineAfterFinalLet: diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 5b52662ba0..6f32007e83 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -83,6 +83,7 @@ describe SearchService, type: :service do expect(Tag).to have_received(:search_for).with('tag', 10, 0, exclude_unreviewed: nil) expect(results).to eq empty_results.merge(hashtags: [tag]) end + it 'does not include tag when starts with @ character' do query = '@username' allow(Tag).to receive(:search_for) @@ -91,6 +92,7 @@ describe SearchService, type: :service do expect(Tag).not_to have_received(:search_for) expect(results).to eq empty_results end + it 'does not include account when starts with # character' do query = '#tag' allow(AccountSearchService).to receive(:new) From 593bb8ce99b31f85a1c8f9bfbe34bd87b079581c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 08:47:23 -0500 Subject: [PATCH 0440/1220] Autofix Rubocop Style/RaiseArgs (#23650) --- .rubocop_todo.yml | 9 --------- ...200620164023_add_fixed_lowercase_index_to_accounts.rb | 2 +- ...421121431_add_case_insensitive_btree_index_to_tags.rb | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4340d43c1f..e3a42da5b6 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3470,15 +3470,6 @@ Style/PreferredHashMethods: Exclude: - 'spec/support/matchers/model/model_have_error_on_field.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, AllowedCompactTypes. -# SupportedStyles: compact, exploded -Style/RaiseArgs: - Exclude: - - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' - - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Methods. diff --git a/db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb b/db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb index 652ce97522..b350ee9f28 100644 --- a/db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb +++ b/db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb @@ -16,7 +16,7 @@ class AddFixedLowercaseIndexToAccounts < ActiveRecord::Migration[5.2] add_index :accounts, "lower (username), COALESCE(lower(domain), '')", name: 'index_accounts_on_username_and_domain_lower', unique: true, algorithm: :concurrently rescue ActiveRecord::RecordNotUnique remove_index :accounts, name: 'index_accounts_on_username_and_domain_lower' - raise CorruptionError.new('index_accounts_on_username_and_domain_lower') + raise CorruptionError, 'index_accounts_on_username_and_domain_lower' end remove_index :accounts, name: 'old_index_accounts_on_username_and_domain_lower' if index_name_exists?(:accounts, 'old_index_accounts_on_username_and_domain_lower') diff --git a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb index b3ee11d09e..7f6a2c6dd4 100644 --- a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb +++ b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb @@ -10,7 +10,7 @@ class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2] safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)' } rescue ActiveRecord::StatementInvalid => e remove_index :tags, name: 'index_tags_on_name_lower_btree' - raise CorruptionError.new('index_tags_on_name_lower_btree') if e.is_a?(ActiveRecord::RecordNotUnique) + raise CorruptionError, 'index_tags_on_name_lower_btree' if e.is_a?(ActiveRecord::RecordNotUnique) raise e end From 669f6d2c0af969268c76e389ed626bce0cc9f998 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 16:56:20 -0500 Subject: [PATCH 0441/1220] Run rubocop formatting except line length (#23632) --- .rubocop_todo.yml | 277 +----------------- app/lib/activitypub/activity/create.rb | 4 +- app/models/concerns/expireable.rb | 2 +- .../activitypub/fetch_replies_service.rb | 2 +- ...20161006213403_rails_settings_migration.rb | 10 +- ...for_api_v1_accounts_account_id_statuses.rb | 8 +- ...0190306145741_add_lock_version_to_polls.rb | 1 - ...807135426_add_comments_to_domain_blocks.rb | 1 - ...2162302_add_status_ids_to_announcements.rb | 1 - ...181721_remove_duplicated_indexes_pghero.rb | 1 - .../20200628133322_create_account_notes.rb | 1 - ...reate_account_statuses_cleanup_policies.rb | 1 - ...71123_fix_custom_filter_keywords_id_seq.rb | 2 +- lib/paperclip/attachment_extensions.rb | 10 +- lib/tasks/mastodon.rake | 4 +- spec/config/initializers/rack_attack_spec.rb | 10 +- .../admin/dashboard_controller_spec.rb | 8 +- .../accounts/credentials_controller_spec.rb | 2 +- .../api/v1/reports_controller_spec.rb | 2 +- .../favourited_by_accounts_controller_spec.rb | 2 +- .../reblogged_by_accounts_controller_spec.rb | 2 +- .../v2/filters/statuses_controller_spec.rb | 4 +- .../auth/sessions_controller_spec.rb | 6 +- .../authorize_interactions_controller_spec.rb | 1 - .../settings/applications_controller_spec.rb | 2 +- .../confirmations_controller_spec.rb | 1 - .../webauthn_credentials_controller_spec.rb | 2 +- .../well_known/host_meta_controller_spec.rb | 12 +- .../custom_filter_keyword_fabricator.rb | 2 +- spec/fabricators/ip_block_fabricator.rb | 2 +- spec/fabricators/poll_vote_fabricator.rb | 2 +- spec/fabricators/status_edit_fabricator.rb | 2 +- spec/fabricators/system_key_fabricator.rb | 1 - spec/lib/activitypub/activity/create_spec.rb | 1 - spec/lib/extractor_spec.rb | 8 +- spec/lib/fast_ip_map_spec.rb | 2 +- spec/lib/link_details_extractor_spec.rb | 124 ++++---- spec/models/account/field_spec.rb | 4 +- spec/models/account_alias_spec.rb | 1 - .../account_statuses_cleanup_policy_spec.rb | 40 ++- .../concerns/account_interactions_spec.rb | 2 +- spec/models/device_spec.rb | 1 - spec/models/encrypted_message_spec.rb | 1 - spec/models/export_spec.rb | 2 +- spec/models/login_activity_spec.rb | 1 - spec/models/one_time_key_spec.rb | 1 - spec/models/system_key_spec.rb | 1 - spec/models/trends/statuses_spec.rb | 2 +- spec/models/user_role_spec.rb | 2 +- spec/routing/api_routing_spec.rb | 72 ++--- spec/routing/well_known_routes_spec.rb | 8 +- .../rest/account_serializer_spec.rb | 2 +- .../account_statuses_cleanup_service_spec.rb | 4 +- .../fetch_remote_status_service_spec.rb | 2 +- .../process_account_service_spec.rb | 4 +- .../process_collection_service_spec.rb | 12 +- .../process_status_update_service_spec.rb | 42 ++- .../bootstrap_timeline_service_spec.rb | 1 - spec/services/fetch_oembed_service_spec.rb | 1 - spec/services/import_service_spec.rb | 4 +- .../remove_from_follwers_service_spec.rb | 2 +- spec/services/remove_status_service_spec.rb | 68 ++--- spec/services/resolve_account_service_spec.rb | 2 +- spec/services/resolve_url_service_spec.rb | 2 +- spec/services/update_status_service_spec.rb | 2 +- spec/support/stories/profile_stories.rb | 4 +- spec/validators/note_length_validator_spec.rb | 4 +- .../unreserved_username_validator_spec.rb | 6 +- .../activitypub/distribution_worker_spec.rb | 2 +- .../move_distribution_worker_spec.rb | 8 +- ...ccounts_statuses_cleanup_scheduler_spec.rb | 2 +- 71 files changed, 269 insertions(+), 566 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e3a42da5b6..e24ce7e327 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit` -# on 2023-02-16 04:55:24 UTC using RuboCop version 1.45.1. +# on 2023-02-16 05:53:07 UTC using RuboCop version 1.45.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -14,53 +14,6 @@ Bundler/OrderedGems: Exclude: - 'Gemfile' -# Offense count: 5 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, IndentationWidth. -# SupportedStyles: with_first_argument, with_fixed_indentation -Layout/ArgumentAlignment: - Exclude: - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyleAlignWith. -# SupportedStylesAlignWith: either, start_of_block, start_of_line -Layout/BlockAlignment: - Exclude: - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -Layout/ClosingParenthesisIndentation: - Exclude: - - 'spec/controllers/auth/sessions_controller_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowForAlignment. -Layout/CommentIndentation: - Exclude: - - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - -# Offense count: 22 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: leading, trailing -Layout/DotPosition: - Exclude: - - 'lib/paperclip/attachment_extensions.rb' - - 'spec/routing/api_routing_spec.rb' - - 'spec/routing/well_known_routes_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -Layout/ElseAlignment: - Exclude: - - 'db/migrate/20161006213403_rails_settings_migration.rb' - # Offense count: 81 # This cop supports safe autocorrection (--autocorrect). Layout/EmptyLineAfterGuardClause: @@ -183,73 +136,6 @@ Layout/EmptyLineAfterMagicComment: - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb' - 'spec/models/tag_spec.rb' -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -Layout/EmptyLines: - Exclude: - - 'spec/controllers/authorize_interactions_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - -# Offense count: 9 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: empty_lines, no_empty_lines -Layout/EmptyLinesAroundBlockBody: - Exclude: - - 'spec/fabricators/system_key_fabricator.rb' - - 'spec/models/account_alias_spec.rb' - - 'spec/models/device_spec.rb' - - 'spec/models/encrypted_message_spec.rb' - - 'spec/models/login_activity_spec.rb' - - 'spec/models/one_time_key_spec.rb' - - 'spec/models/system_key_spec.rb' - - 'spec/services/bootstrap_timeline_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyleAlignWith, Severity. -# SupportedStylesAlignWith: keyword, variable, start_of_line -Layout/EndAlignment: - Exclude: - - 'db/migrate/20161006213403_rails_settings_migration.rb' - -# Offense count: 19 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment. -Layout/ExtraSpacing: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' - - 'spec/fabricators/custom_filter_keyword_fabricator.rb' - - 'spec/fabricators/poll_vote_fabricator.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/import_service_spec.rb' - - 'spec/services/resolve_account_service_spec.rb' - - 'spec/services/resolve_url_service_spec.rb' - - 'spec/validators/note_length_validator_spec.rb' - - 'spec/validators/unreserved_username_validator_spec.rb' - - 'spec/workers/activitypub/move_distribution_worker_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, IndentationWidth. -# SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses -Layout/FirstArgumentIndentation: - Exclude: - - 'spec/services/remove_status_service_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, IndentationWidth. -# SupportedStyles: special_inside_parentheses, consistent, align_brackets -Layout/FirstArrayElementIndentation: - Exclude: - - 'spec/controllers/admin/dashboard_controller_spec.rb' - - 'spec/workers/activitypub/move_distribution_worker_spec.rb' - # Offense count: 113 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle. @@ -276,49 +162,6 @@ Layout/HashAlignment: - 'spec/models/admin/account_action_spec.rb' - 'spec/models/concerns/account_interactions_spec.rb' -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -Layout/HeredocIndentation: - Exclude: - - 'spec/controllers/well_known/host_meta_controller_spec.rb' - - 'spec/lib/link_details_extractor_spec.rb' - -# Offense count: 5 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: normal, indented_internal_methods -Layout/IndentationConsistency: - Exclude: - - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' - - 'spec/models/trends/statuses_spec.rb' - - 'spec/services/import_service_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: Width, AllowedPatterns. -Layout/IndentationWidth: - Exclude: - - 'db/migrate/20161006213403_rails_settings_migration.rb' - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - - 'spec/services/account_statuses_cleanup_service_spec.rb' - - 'spec/services/import_service_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment. -Layout/LeadingCommentSpace: - Exclude: - - 'lib/paperclip/attachment_extensions.rb' - -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AutoCorrect, EnforcedStyle. -# SupportedStyles: space, no_space -Layout/LineContinuationSpacing: - Exclude: - - 'spec/support/stories/profile_stories.rb' - # Offense count: 577 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. @@ -326,124 +169,6 @@ Layout/LineContinuationSpacing: Layout/LineLength: Enabled: false -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: symmetrical, new_line, same_line -Layout/MultilineMethodCallBraceLayout: - Exclude: - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator. -# SupportedStylesForExponentOperator: space, no_space -Layout/SpaceAroundOperators: - Exclude: - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/validators/note_length_validator_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. -# SupportedStyles: space, no_space -# SupportedStylesForEmptyBraces: space, no_space -Layout/SpaceBeforeBlockBraces: - Exclude: - - 'spec/controllers/api/v1/reports_controller_spec.rb' - -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowForAlignment. -Layout/SpaceBeforeFirstArg: - Exclude: - - 'spec/fabricators/custom_filter_keyword_fabricator.rb' - - 'spec/fabricators/poll_vote_fabricator.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - -# Offense count: 24 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets. -# SupportedStyles: space, no_space, compact -# SupportedStylesForEmptyBrackets: space, no_space -Layout/SpaceInsideArrayLiteralBrackets: - Exclude: - - 'db/migrate/20161006213403_rails_settings_migration.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/lib/extractor_spec.rb' - - 'spec/models/export_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. -# SupportedStyles: space, no_space -# SupportedStylesForEmptyBraces: space, no_space -Layout/SpaceInsideBlockBraces: - Exclude: - - 'spec/lib/fast_ip_map_spec.rb' - - 'spec/models/user_role_spec.rb' - - 'spec/serializers/rest/account_serializer_spec.rb' - - 'spec/workers/activitypub/distribution_worker_spec.rb' - -# Offense count: 6 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. -# SupportedStyles: space, no_space, compact -# SupportedStylesForEmptyBraces: space, no_space -Layout/SpaceInsideHashLiteralBraces: - Exclude: - - 'app/lib/activitypub/activity/create.rb' - - 'app/services/activitypub/fetch_replies_service.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/update_status_service_spec.rb' - -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: space, compact, no_space -Layout/SpaceInsideParens: - Exclude: - - 'spec/validators/unreserved_username_validator_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: space, no_space -Layout/SpaceInsideStringInterpolation: - Exclude: - - 'spec/controllers/auth/sessions_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - -# Offense count: 8 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: final_newline, final_blank_line -Layout/TrailingEmptyLines: - Exclude: - - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' - - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' - - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb' - - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' - - 'db/migrate/20200628133322_create_account_notes.rb' - - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb' - - 'spec/fabricators/ip_block_fabricator.rb' - - 'spec/fabricators/status_edit_fabricator.rb' - -# Offense count: 7 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowInHeredoc. -Layout/TrailingWhitespace: - Exclude: - - 'app/models/concerns/expireable.rb' - - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb' - - 'lib/tasks/mastodon.rake' - - 'spec/models/account/field_spec.rb' - - 'spec/services/remove_from_follwers_service_spec.rb' - # Offense count: 14 # Configuration parameters: AllowedMethods, AllowedPatterns. Lint/AmbiguousBlockAssociation: diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 487b652237..f82112c02d 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -327,7 +327,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity def resolve_thread(status) return unless status.reply? && status.thread.nil? && Request.valid_url?(in_reply_to_uri) - ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id]}) + ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id] }) end def fetch_replies(status) @@ -338,7 +338,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return unless replies.nil? uri = value_or_id(collection) - ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id]}) unless uri.nil? + ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id] }) unless uri.nil? end def conversation_from_uri(uri) diff --git a/app/models/concerns/expireable.rb b/app/models/concerns/expireable.rb index 4d902abcba..c64fc7d807 100644 --- a/app/models/concerns/expireable.rb +++ b/app/models/concerns/expireable.rb @@ -17,7 +17,7 @@ module Expireable end def expires_in=(interval) - self.expires_at = interval.present? ? interval.to_i.seconds.from_now : nil + self.expires_at = interval.present? ? interval.to_i.seconds.from_now : nil @expires_in = interval end diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb index 18a27e851d..4128df9ca7 100644 --- a/app/services/activitypub/fetch_replies_service.rb +++ b/app/services/activitypub/fetch_replies_service.rb @@ -10,7 +10,7 @@ class ActivityPub::FetchRepliesService < BaseService @items = collection_items(collection_or_uri) return if @items.nil? - FetchReplyWorker.push_bulk(filtered_replies) { |reply_uri| [reply_uri, { 'request_id' => request_id}] } + FetchReplyWorker.push_bulk(filtered_replies) { |reply_uri| [reply_uri, { 'request_id' => request_id }] } @items end diff --git a/db/migrate/20161006213403_rails_settings_migration.rb b/db/migrate/20161006213403_rails_settings_migration.rb index 9d565cb5c6..02932610c2 100644 --- a/db/migrate/20161006213403_rails_settings_migration.rb +++ b/db/migrate/20161006213403_rails_settings_migration.rb @@ -1,8 +1,8 @@ MIGRATION_BASE_CLASS = if ActiveRecord::VERSION::MAJOR >= 5 - ActiveRecord::Migration[5.0] -else - ActiveRecord::Migration[4.2] -end + ActiveRecord::Migration[5.0] + else + ActiveRecord::Migration[4.2] + end class RailsSettingsMigration < MIGRATION_BASE_CLASS def self.up @@ -12,7 +12,7 @@ class RailsSettingsMigration < MIGRATION_BASE_CLASS t.references :target, null: false, polymorphic: true, index: { name: 'index_settings_on_target_type_and_target_id' } t.timestamps null: true end - add_index :settings, [ :target_type, :target_id, :var ], unique: true + add_index :settings, [:target_type, :target_id, :var], unique: true end def self.down diff --git a/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb index b29e62803c..a3f883fcb6 100644 --- a/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -4,9 +4,9 @@ class ImproveIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Mi disable_ddl_transaction! def change - # These changes ware reverted by migration 20180514140000. - # add_index :statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently - # add_index :statuses, [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently - # remove_index :statuses, column: [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 + # These changes ware reverted by migration 20180514140000. + # add_index :statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently + # add_index :statuses, [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently + # remove_index :statuses, column: [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 end end diff --git a/db/migrate/20190306145741_add_lock_version_to_polls.rb b/db/migrate/20190306145741_add_lock_version_to_polls.rb index 5bb8cd3b48..c9fa471ad9 100644 --- a/db/migrate/20190306145741_add_lock_version_to_polls.rb +++ b/db/migrate/20190306145741_add_lock_version_to_polls.rb @@ -21,4 +21,3 @@ class AddLockVersionToPolls < ActiveRecord::Migration[5.2] remove_column :polls, :lock_version end end - diff --git a/db/migrate/20190807135426_add_comments_to_domain_blocks.rb b/db/migrate/20190807135426_add_comments_to_domain_blocks.rb index b660a71adb..79b9f02125 100644 --- a/db/migrate/20190807135426_add_comments_to_domain_blocks.rb +++ b/db/migrate/20190807135426_add_comments_to_domain_blocks.rb @@ -4,4 +4,3 @@ class AddCommentsToDomainBlocks < ActiveRecord::Migration[5.2] add_column :domain_blocks, :public_comment, :text end end - diff --git a/db/migrate/20200312162302_add_status_ids_to_announcements.rb b/db/migrate/20200312162302_add_status_ids_to_announcements.rb index 42aa6513de..704d3773e7 100644 --- a/db/migrate/20200312162302_add_status_ids_to_announcements.rb +++ b/db/migrate/20200312162302_add_status_ids_to_announcements.rb @@ -3,4 +3,3 @@ class AddStatusIdsToAnnouncements < ActiveRecord::Migration[5.2] add_column :announcements, :status_ids, :bigint, array: true end end - diff --git a/db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb b/db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb index 1d6ba1fe98..59bb1b9e2a 100644 --- a/db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb +++ b/db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb @@ -19,4 +19,3 @@ class RemoveDuplicatedIndexesPghero < ActiveRecord::Migration[5.2] add_index :markers, :user_id, name: :index_markers_on_user_id unless index_exists?(:markers, :user_id, name: :index_markers_on_user_id) end end - diff --git a/db/migrate/20200628133322_create_account_notes.rb b/db/migrate/20200628133322_create_account_notes.rb index 664727e60b..022e0ff3aa 100644 --- a/db/migrate/20200628133322_create_account_notes.rb +++ b/db/migrate/20200628133322_create_account_notes.rb @@ -10,4 +10,3 @@ class CreateAccountNotes < ActiveRecord::Migration[5.2] end end end - diff --git a/db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb b/db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb index 28cfb6ef52..db168676a1 100644 --- a/db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb +++ b/db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb @@ -17,4 +17,3 @@ class CreateAccountStatusesCleanupPolicies < ActiveRecord::Migration[6.1] end end end - diff --git a/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb b/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb index 7ed34a3efc..eb437c86c5 100644 --- a/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb +++ b/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb @@ -5,7 +5,7 @@ class FixCustomFilterKeywordsIdSeq < ActiveRecord::Migration[6.1] def up # 20220613110711 manually inserts items with set `id` in the database, but - # we also need to bump the sequence number, otherwise + # we also need to bump the sequence number, otherwise safety_assured do execute <<-SQL.squish BEGIN; diff --git a/lib/paperclip/attachment_extensions.rb b/lib/paperclip/attachment_extensions.rb index d66a176235..7f82138aa8 100644 --- a/lib/paperclip/attachment_extensions.rb +++ b/lib/paperclip/attachment_extensions.rb @@ -8,7 +8,7 @@ module Paperclip # monkey-patch to avoid unlinking too avoid unlinking source file too early # see https://github.com/kreeti/kt-paperclip/issues/64 - def post_process_style(name, style) #:nodoc: + def post_process_style(name, style) # :nodoc: raise "Style #{name} has no processors defined." if style.processors.blank? intermediate_files = [] @@ -16,16 +16,16 @@ module Paperclip # if we're processing the original, close + unlink the source tempfile intermediate_files << original if name == :original - @queued_for_write[name] = style.processors. - inject(original) do |file, processor| + @queued_for_write[name] = style.processors + .inject(original) do |file, processor| file = Paperclip.processor(processor).make(file, style.processor_options, self) intermediate_files << file unless file == original file end unadapted_file = @queued_for_write[name] - @queued_for_write[name] = Paperclip.io_adapters. - for(@queued_for_write[name], @options[:adapter_options]) + @queued_for_write[name] = Paperclip.io_adapters + .for(@queued_for_write[name], @options[:adapter_options]) unadapted_file.close if unadapted_file.respond_to?(:close) @queued_for_write[name] rescue Paperclip::Errors::NotIdentifiedByImageMagickError => e diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 1184e52739..477daa01b8 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -286,13 +286,13 @@ namespace :mastodon do q.required true q.modify :strip end - + linksharing_access_key = prompt.ask('Storj Linksharing access key (uplink share --register --public --readonly=true --disallow-lists --not-after=none sj://bucket):') do |q| q.required true q.modify :strip end env['S3_ALIAS_HOST'] = "link.storjshare.io/raw/#{linksharing_access_key}/#{env['S3_BUCKET']}" - + when 'Google Cloud Storage' env['S3_ENABLED'] = 'true' env['S3_PROTOCOL'] = 'https' diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 581021cb90..03695f5fd2 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -35,12 +35,12 @@ describe Rack::Attack do let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do - let(:path) { '/auth' } + let(:path) { '/auth' } it_behaves_like 'throttled endpoint' end context 'for path with format' do - let(:path) { '/auth.html' } + let(:path) { '/auth.html' } it_behaves_like 'throttled endpoint' end end @@ -50,7 +50,7 @@ describe Rack::Attack do let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do - let(:path) { '/api/v1/accounts' } + let(:path) { '/api/v1/accounts' } it_behaves_like 'throttled endpoint' end @@ -70,12 +70,12 @@ describe Rack::Attack do let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do - let(:path) { '/auth/sign_in' } + let(:path) { '/auth/sign_in' } it_behaves_like 'throttled endpoint' end context 'for path with format' do - let(:path) { '/auth/sign_in.html' } + let(:path) { '/auth/sign_in.html' } it_behaves_like 'throttled endpoint' end end diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb index 6231a09a24..ab3738fcd7 100644 --- a/spec/controllers/admin/dashboard_controller_spec.rb +++ b/spec/controllers/admin/dashboard_controller_spec.rb @@ -8,10 +8,10 @@ describe Admin::DashboardController, type: :controller do describe 'GET #index' do before do allow(Admin::SystemCheck).to receive(:perform).and_return([ - Admin::SystemCheck::Message.new(:database_schema_check), - Admin::SystemCheck::Message.new(:rules_check, nil, admin_rules_path), - Admin::SystemCheck::Message.new(:sidekiq_process_check, 'foo, bar'), - ]) + Admin::SystemCheck::Message.new(:database_schema_check), + Admin::SystemCheck::Message.new(:rules_check, nil, admin_rules_path), + Admin::SystemCheck::Message.new(:sidekiq_process_check, 'foo, bar'), + ]) sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')) end diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index b2557d9575..89cc8acadb 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -70,7 +70,7 @@ describe Api::V1::Accounts::CredentialsController do it 'returns http success' do expect(response).to have_http_status(200) end - end + end describe 'with invalid data' do before do diff --git a/spec/controllers/api/v1/reports_controller_spec.rb b/spec/controllers/api/v1/reports_controller_spec.rb index dbc64e7047..78a72b95b2 100644 --- a/spec/controllers/api/v1/reports_controller_spec.rb +++ b/spec/controllers/api/v1/reports_controller_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Api::V1::ReportsController, type: :controller do let(:target_account) { status.account } let(:category) { nil } let(:forward) { nil } - let(:rule_ids){ nil } + let(:rule_ids) { nil } before do allow(AdminMailer).to receive(:new_report).and_return(double('email', deliver_later: nil)) diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb index 7cc77f4308..4dcaba6bdc 100644 --- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb @@ -31,7 +31,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control it 'returns accounts who favorited the status' do get :index, params: { status_id: status.id, limit: 2 } expect(body_as_json.size).to eq 2 - expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) end it 'does not return blocked users' do diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb index 8d4a6f91ca..dc36d4ca08 100644 --- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb @@ -31,7 +31,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll it 'returns accounts who reblogged the status' do get :index, params: { status_id: status.id, limit: 2 } expect(body_as_json.size).to eq 2 - expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) end it 'does not return blocked users' do diff --git a/spec/controllers/api/v2/filters/statuses_controller_spec.rb b/spec/controllers/api/v2/filters/statuses_controller_spec.rb index 9740c1eb30..969b2ea739 100644 --- a/spec/controllers/api/v2/filters/statuses_controller_spec.rb +++ b/spec/controllers/api/v2/filters/statuses_controller_spec.rb @@ -64,7 +64,7 @@ RSpec.describe Api::V2::Filters::StatusesController, type: :controller do end describe 'GET #show' do - let(:scopes) { 'read:filters' } + let(:scopes) { 'read:filters' } let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } before do @@ -90,7 +90,7 @@ RSpec.describe Api::V2::Filters::StatusesController, type: :controller do end describe 'DELETE #destroy' do - let(:scopes) { 'write:filters' } + let(:scopes) { 'write:filters' } let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } before do diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index d3db7aa1ab..64433ddf45 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -339,11 +339,11 @@ RSpec.describe Auth::SessionsController, type: :controller do external_id: public_key_credential.id, public_key: public_key_credential.public_key, sign_count: '1000' - ) + ) user.webauthn_credentials.take end - let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" } + let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" } let(:fake_client) { WebAuthn::FakeClient.new(domain) } @@ -400,7 +400,7 @@ RSpec.describe Auth::SessionsController, type: :controller do describe 'GET #webauthn_options' do context 'with WebAuthn and OTP enabled as second factor' do - let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" } + let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" } let(:fake_client) { WebAuthn::FakeClient.new(domain) } diff --git a/spec/controllers/authorize_interactions_controller_spec.rb b/spec/controllers/authorize_interactions_controller_spec.rb index 44f52df69f..e521039410 100644 --- a/spec/controllers/authorize_interactions_controller_spec.rb +++ b/spec/controllers/authorize_interactions_controller_spec.rb @@ -99,7 +99,6 @@ describe AuthorizeInteractionsController do allow(ResolveAccountService).to receive(:new).and_return(service) allow(service).to receive(:call).with('user@hostname').and_return(target_account) - post :create, params: { acct: 'acct:user@hostname' } expect(account.following?(target_account)).to be true diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 1292e9ff83..9074574e40 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -73,7 +73,7 @@ describe Settings::ApplicationsController do name: 'My New App', redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', website: 'http://google.com', - scopes: [ 'read', 'write', 'follow' ] + scopes: ['read', 'write', 'follow'] } } response diff --git a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb index 569c8322bd..0b807b280f 100644 --- a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb @@ -5,7 +5,6 @@ require 'rails_helper' describe Settings::TwoFactorAuthentication::ConfirmationsController do render_views - shared_examples 'renders :new' do it 'renders the new view' do subject diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb index fe53b4dfc2..06989ffd2d 100644 --- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb @@ -7,7 +7,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do render_views let(:user) { Fabricate(:user) } - let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" } + let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" } let(:fake_client) { WebAuthn::FakeClient.new(domain) } def add_webauthn_credential(user) diff --git a/spec/controllers/well_known/host_meta_controller_spec.rb b/spec/controllers/well_known/host_meta_controller_spec.rb index c02aa0d596..654bad4067 100644 --- a/spec/controllers/well_known/host_meta_controller_spec.rb +++ b/spec/controllers/well_known/host_meta_controller_spec.rb @@ -9,12 +9,12 @@ describe WellKnown::HostMetaController, type: :controller do expect(response).to have_http_status(200) expect(response.media_type).to eq 'application/xrd+xml' - expect(response.body).to eq < - - - -XML + expect(response.body).to eq <<~XML + + + + + XML end end end diff --git a/spec/fabricators/custom_filter_keyword_fabricator.rb b/spec/fabricators/custom_filter_keyword_fabricator.rb index 0f101dcd1a..201566cbe3 100644 --- a/spec/fabricators/custom_filter_keyword_fabricator.rb +++ b/spec/fabricators/custom_filter_keyword_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:custom_filter_keyword) do custom_filter - keyword 'discourse' + keyword 'discourse' end diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb index 31dc336e64..1797f68776 100644 --- a/spec/fabricators/ip_block_fabricator.rb +++ b/spec/fabricators/ip_block_fabricator.rb @@ -3,4 +3,4 @@ Fabricator(:ip_block) do severity "" expires_at "2020-10-08 22:20:37" comment "MyText" -end \ No newline at end of file +end diff --git a/spec/fabricators/poll_vote_fabricator.rb b/spec/fabricators/poll_vote_fabricator.rb index 51f9b006e6..c06e61f673 100644 --- a/spec/fabricators/poll_vote_fabricator.rb +++ b/spec/fabricators/poll_vote_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:poll_vote) do account poll - choice 0 + choice 0 end diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb index 21b793747e..3141759e5c 100644 --- a/spec/fabricators/status_edit_fabricator.rb +++ b/spec/fabricators/status_edit_fabricator.rb @@ -4,4 +4,4 @@ Fabricator(:status_edit) do text "MyText" spoiler_text "MyText" media_attachments_changed false -end \ No newline at end of file +end diff --git a/spec/fabricators/system_key_fabricator.rb b/spec/fabricators/system_key_fabricator.rb index f808495e07..c744bb2867 100644 --- a/spec/fabricators/system_key_fabricator.rb +++ b/spec/fabricators/system_key_fabricator.rb @@ -1,3 +1,2 @@ Fabricator(:system_key) do - end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index 1a25395fad..cd0f2df6e5 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -408,7 +408,6 @@ RSpec.describe ActivityPub::Activity::Create do end end - context 'with media attachments with long description' do let(:object_json) do { diff --git a/spec/lib/extractor_spec.rb b/spec/lib/extractor_spec.rb index dba4bd0bbc..9c9f5ef046 100644 --- a/spec/lib/extractor_spec.rb +++ b/spec/lib/extractor_spec.rb @@ -20,7 +20,7 @@ describe Extractor do text = '@screen_name' extracted = Extractor.extract_mentions_or_lists_with_indices(text) expect(extracted).to eq [ - { screen_name: 'screen_name', indices: [ 0, 12 ] } + { screen_name: 'screen_name', indices: [0, 12] } ] end @@ -44,19 +44,19 @@ describe Extractor do it 'does not exclude normal hash text before ://' do text = '#hashtag://' extracted = Extractor.extract_hashtags_with_indices(text) - expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ] + expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }] end it 'excludes http://' do text = '#hashtaghttp://' extracted = Extractor.extract_hashtags_with_indices(text) - expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ] + expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }] end it 'excludes https://' do text = '#hashtaghttps://' extracted = Extractor.extract_hashtags_with_indices(text) - expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ] + expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }] end it 'yields hashtags if a block is given' do diff --git a/spec/lib/fast_ip_map_spec.rb b/spec/lib/fast_ip_map_spec.rb index c66f64828a..78b3ddb054 100644 --- a/spec/lib/fast_ip_map_spec.rb +++ b/spec/lib/fast_ip_map_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe FastIpMap do describe '#include?' do - subject { described_class.new([IPAddr.new('20.4.0.0/16'), IPAddr.new('145.22.30.0/24'), IPAddr.new('189.45.86.3')])} + subject { described_class.new([IPAddr.new('20.4.0.0/16'), IPAddr.new('145.22.30.0/24'), IPAddr.new('189.45.86.3')]) } it 'returns true for an exact match' do expect(subject.include?(IPAddr.new('189.45.86.3'))).to be true diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index 7ea867c614..7eb15ced3a 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -39,17 +39,17 @@ RSpec.describe LinkDetailsExtractor do let(:original_url) { 'https://example.com/page.html' } context 'and is wrapped in CDATA tags' do - let(:html) { <<-HTML } - - - - - - + let(:html) { <<~HTML } + + + + + + HTML describe '#title' do @@ -78,57 +78,57 @@ RSpec.describe LinkDetailsExtractor do end context 'but the first tag is invalid JSON' do - let(:html) { <<-HTML } - - - - - - - + let(:html) { <<~HTML } + + + + + + + HTML describe '#title' do diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb index 0ac9769bcc..40bbee025f 100644 --- a/spec/models/account/field_spec.rb +++ b/spec/models/account/field_spec.rb @@ -97,7 +97,7 @@ RSpec.describe Account::Field, type: :model do expect(subject.verifiable?).to be false end end - + context 'for text which is blank' do let(:value) { '' } @@ -149,7 +149,7 @@ RSpec.describe Account::Field, type: :model do expect(subject.verifiable?).to be false end end - + context 'for text which is blank' do let(:value) { '' } diff --git a/spec/models/account_alias_spec.rb b/spec/models/account_alias_spec.rb index 27ec215aa4..c48b804b27 100644 --- a/spec/models/account_alias_spec.rb +++ b/spec/models/account_alias_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe AccountAlias, type: :model do - end diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index 684a1aa412..f116845162 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -16,16 +16,15 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do context 'when widening a policy' do let!(:account_statuses_cleanup_policy) do Fabricate(:account_statuses_cleanup_policy, - account: account, - keep_direct: true, - keep_pinned: true, - keep_polls: true, - keep_media: true, - keep_self_fav: true, - keep_self_bookmark: true, - min_favs: 1, - min_reblogs: 1 - ) + account: account, + keep_direct: true, + keep_pinned: true, + keep_polls: true, + keep_media: true, + keep_self_fav: true, + keep_self_bookmark: true, + min_favs: 1, + min_reblogs: 1) end before do @@ -96,16 +95,15 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do context 'when narrowing a policy' do let!(:account_statuses_cleanup_policy) do Fabricate(:account_statuses_cleanup_policy, - account: account, - keep_direct: false, - keep_pinned: false, - keep_polls: false, - keep_media: false, - keep_self_fav: false, - keep_self_bookmark: false, - min_favs: nil, - min_reblogs: nil - ) + account: account, + keep_direct: false, + keep_pinned: false, + keep_polls: false, + keep_media: false, + keep_self_fav: false, + keep_self_bookmark: false, + min_favs: nil, + min_reblogs: nil) end it 'does not unnecessarily invalidate last_inspected' do @@ -232,7 +230,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end describe '#compute_cutoff_id' do - let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) } + let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) } let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } subject { account_statuses_cleanup_policy.compute_cutoff_id } diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index 5cb4a83f71..e628384d0c 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -400,7 +400,7 @@ describe AccountInteractions do subject { account.domain_blocking?(domain) } context 'blocking the domain' do - it' returns true' do + it ' returns true' do account_domain_block = Fabricate(:account_domain_block, domain: domain) account.domain_blocks << account_domain_block is_expected.to be true diff --git a/spec/models/device_spec.rb b/spec/models/device_spec.rb index f56fbf9785..307552e913 100644 --- a/spec/models/device_spec.rb +++ b/spec/models/device_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe Device, type: :model do - end diff --git a/spec/models/encrypted_message_spec.rb b/spec/models/encrypted_message_spec.rb index 1238d57b68..64f9c6912a 100644 --- a/spec/models/encrypted_message_spec.rb +++ b/spec/models/encrypted_message_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe EncryptedMessage, type: :model do - end diff --git a/spec/models/export_spec.rb b/spec/models/export_spec.rb index 135d7a36ba..5202ae9e17 100644 --- a/spec/models/export_spec.rb +++ b/spec/models/export_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe Export do let(:account) { Fabricate(:account) } let(:target_accounts) do - [ {}, { username: 'one', domain: 'local.host' } ].map(&method(:Fabricate).curry(2).call(:account)) + [{}, { username: 'one', domain: 'local.host' }].map(&method(:Fabricate).curry(2).call(:account)) end describe 'to_csv' do diff --git a/spec/models/login_activity_spec.rb b/spec/models/login_activity_spec.rb index ba2d207c91..12d8c43638 100644 --- a/spec/models/login_activity_spec.rb +++ b/spec/models/login_activity_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe LoginActivity, type: :model do - end diff --git a/spec/models/one_time_key_spec.rb b/spec/models/one_time_key_spec.rb index 34598334cc..4b231c600c 100644 --- a/spec/models/one_time_key_spec.rb +++ b/spec/models/one_time_key_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe OneTimeKey, type: :model do - end diff --git a/spec/models/system_key_spec.rb b/spec/models/system_key_spec.rb index a138bc1313..86f07f964d 100644 --- a/spec/models/system_key_spec.rb +++ b/spec/models/system_key_spec.rb @@ -1,5 +1,4 @@ require 'rails_helper' RSpec.describe SystemKey, type: :model do - end diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb index 5f338a65e8..98a8c7264d 100644 --- a/spec/models/trends/statuses_spec.rb +++ b/spec/models/trends/statuses_spec.rb @@ -76,7 +76,7 @@ RSpec.describe Trends::Statuses do before do 13.times { reblog(status1, today) } 13.times { reblog(status2, today) } - 4.times { reblog(status3, today) } + 4.times { reblog(status3, today) } end context do diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index 28019593e5..abf7d0e27c 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -58,7 +58,7 @@ RSpec.describe UserRole, type: :model do end describe '#permissions_as_keys=' do - let(:input) { } + let(:input) {} before do subject.permissions_as_keys = input diff --git a/spec/routing/api_routing_spec.rb b/spec/routing/api_routing_spec.rb index 2683ccb8d1..a822fba4c5 100644 --- a/spec/routing/api_routing_spec.rb +++ b/spec/routing/api_routing_spec.rb @@ -5,99 +5,99 @@ require 'rails_helper' describe 'API routes' do describe 'Credentials routes' do it 'routes to verify credentials' do - expect(get('/api/v1/accounts/verify_credentials')). - to route_to('api/v1/accounts/credentials#show') + expect(get('/api/v1/accounts/verify_credentials')) + .to route_to('api/v1/accounts/credentials#show') end it 'routes to update credentials' do - expect(patch('/api/v1/accounts/update_credentials')). - to route_to('api/v1/accounts/credentials#update') + expect(patch('/api/v1/accounts/update_credentials')) + .to route_to('api/v1/accounts/credentials#update') end end describe 'Account routes' do it 'routes to statuses' do - expect(get('/api/v1/accounts/user/statuses')). - to route_to('api/v1/accounts/statuses#index', account_id: 'user') + expect(get('/api/v1/accounts/user/statuses')) + .to route_to('api/v1/accounts/statuses#index', account_id: 'user') end it 'routes to followers' do - expect(get('/api/v1/accounts/user/followers')). - to route_to('api/v1/accounts/follower_accounts#index', account_id: 'user') + expect(get('/api/v1/accounts/user/followers')) + .to route_to('api/v1/accounts/follower_accounts#index', account_id: 'user') end it 'routes to following' do - expect(get('/api/v1/accounts/user/following')). - to route_to('api/v1/accounts/following_accounts#index', account_id: 'user') + expect(get('/api/v1/accounts/user/following')) + .to route_to('api/v1/accounts/following_accounts#index', account_id: 'user') end it 'routes to search' do - expect(get('/api/v1/accounts/search')). - to route_to('api/v1/accounts/search#show') + expect(get('/api/v1/accounts/search')) + .to route_to('api/v1/accounts/search#show') end it 'routes to relationships' do - expect(get('/api/v1/accounts/relationships')). - to route_to('api/v1/accounts/relationships#index') + expect(get('/api/v1/accounts/relationships')) + .to route_to('api/v1/accounts/relationships#index') end end describe 'Statuses routes' do it 'routes reblogged_by' do - expect(get('/api/v1/statuses/123/reblogged_by')). - to route_to('api/v1/statuses/reblogged_by_accounts#index', status_id: '123') + expect(get('/api/v1/statuses/123/reblogged_by')) + .to route_to('api/v1/statuses/reblogged_by_accounts#index', status_id: '123') end it 'routes favourited_by' do - expect(get('/api/v1/statuses/123/favourited_by')). - to route_to('api/v1/statuses/favourited_by_accounts#index', status_id: '123') + expect(get('/api/v1/statuses/123/favourited_by')) + .to route_to('api/v1/statuses/favourited_by_accounts#index', status_id: '123') end it 'routes reblog' do - expect(post('/api/v1/statuses/123/reblog')). - to route_to('api/v1/statuses/reblogs#create', status_id: '123') + expect(post('/api/v1/statuses/123/reblog')) + .to route_to('api/v1/statuses/reblogs#create', status_id: '123') end it 'routes unreblog' do - expect(post('/api/v1/statuses/123/unreblog')). - to route_to('api/v1/statuses/reblogs#destroy', status_id: '123') + expect(post('/api/v1/statuses/123/unreblog')) + .to route_to('api/v1/statuses/reblogs#destroy', status_id: '123') end it 'routes favourite' do - expect(post('/api/v1/statuses/123/favourite')). - to route_to('api/v1/statuses/favourites#create', status_id: '123') + expect(post('/api/v1/statuses/123/favourite')) + .to route_to('api/v1/statuses/favourites#create', status_id: '123') end it 'routes unfavourite' do - expect(post('/api/v1/statuses/123/unfavourite')). - to route_to('api/v1/statuses/favourites#destroy', status_id: '123') + expect(post('/api/v1/statuses/123/unfavourite')) + .to route_to('api/v1/statuses/favourites#destroy', status_id: '123') end it 'routes mute' do - expect(post('/api/v1/statuses/123/mute')). - to route_to('api/v1/statuses/mutes#create', status_id: '123') + expect(post('/api/v1/statuses/123/mute')) + .to route_to('api/v1/statuses/mutes#create', status_id: '123') end it 'routes unmute' do - expect(post('/api/v1/statuses/123/unmute')). - to route_to('api/v1/statuses/mutes#destroy', status_id: '123') + expect(post('/api/v1/statuses/123/unmute')) + .to route_to('api/v1/statuses/mutes#destroy', status_id: '123') end end describe 'Timeline routes' do it 'routes to home timeline' do - expect(get('/api/v1/timelines/home')). - to route_to('api/v1/timelines/home#show') + expect(get('/api/v1/timelines/home')) + .to route_to('api/v1/timelines/home#show') end it 'routes to public timeline' do - expect(get('/api/v1/timelines/public')). - to route_to('api/v1/timelines/public#show') + expect(get('/api/v1/timelines/public')) + .to route_to('api/v1/timelines/public#show') end it 'routes to tag timeline' do - expect(get('/api/v1/timelines/tag/test')). - to route_to('api/v1/timelines/tag#show', id: 'test') + expect(get('/api/v1/timelines/tag/test')) + .to route_to('api/v1/timelines/tag#show', id: 'test') end end end diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb index 2e25605c2e..03a562843c 100644 --- a/spec/routing/well_known_routes_spec.rb +++ b/spec/routing/well_known_routes_spec.rb @@ -2,14 +2,14 @@ require 'rails_helper' describe 'the host-meta route' do it 'routes to correct place with xml format' do - expect(get('/.well-known/host-meta')). - to route_to('well_known/host_meta#show', format: 'xml') + expect(get('/.well-known/host-meta')) + .to route_to('well_known/host_meta#show', format: 'xml') end end describe 'the webfinger route' do it 'routes to correct place with json format' do - expect(get('/.well-known/webfinger')). - to route_to('well_known/webfinger#show') + expect(get('/.well-known/webfinger')) + .to route_to('well_known/webfinger#show') end end diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb index 5b08d5aca6..3bca06b73f 100644 --- a/spec/serializers/rest/account_serializer_spec.rb +++ b/spec/serializers/rest/account_serializer_spec.rb @@ -5,7 +5,7 @@ require 'rails_helper' describe REST::AccountSerializer do let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } let(:user) { Fabricate(:user, role: role) } - let(:account) { user.account} + let(:account) { user.account } subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) } diff --git a/spec/services/account_statuses_cleanup_service_spec.rb b/spec/services/account_statuses_cleanup_service_spec.rb index 257655c41b..a30e14ab6f 100644 --- a/spec/services/account_statuses_cleanup_service_spec.rb +++ b/spec/services/account_statuses_cleanup_service_spec.rb @@ -42,8 +42,8 @@ describe AccountStatusesCleanupService, type: :service do context 'when called repeatedly with a budget of 2' do it 'reports 2 then 1 deleted statuses' do - expect(subject.call(account_policy, 2)).to eq 2 - expect(subject.call(account_policy, 2)).to eq 1 + expect(subject.call(account_policy, 2)).to eq 2 + expect(subject.call(account_policy, 2)).to eq 1 end it 'actually deletes the statuses in the expected order' do diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index a81dcad818..d6145c9b8d 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -298,7 +298,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do first: { type: 'CollectionPage', partOf: "https://foo.bar/@foo/#{i}/replies", - items: ["https://foo.bar/@foo/#{i+1}"], + items: ["https://foo.bar/@foo/#{i + 1}"], }, }, attributedTo: ActivityPub::TagManager.instance.uri_for(sender), diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 2b20d17b1b..40caa6eb0c 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -172,10 +172,10 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do { type: 'Mention', href: "https://foo.test/users/#{i + 1}", - name: "@user#{i + 1 }", + name: "@user#{i + 1}", } ], - to: [ 'as:Public', "https://foo.test/users/#{i + 1}" ] + to: ['as:Public', "https://foo.test/users/#{i + 1}"] }.with_indifferent_access featured_json = { '@context': ['https://www.w3.org/ns/activitystreams'], diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index a308cede76..cb60e1cb8b 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -95,11 +95,11 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do context 'when receiving a fabricated status' do let!(:actor) do Fabricate(:account, - username: 'bob', - domain: 'example.com', - uri: 'https://example.com/users/bob', - public_key: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuYyoyfsRkYnXRotMsId\nW3euBDDfiv9oVqOxUVC7bhel8KednIMrMCRWFAkgJhbrlzbIkjVr68o1MP9qLcn7\nCmH/BXHp7yhuFTr4byjdJKpwB+/i2jNEsvDH5jR8WTAeTCe0x/QHg21V3F7dSI5m\nCCZ/1dSIyOXLRTWVlfDlm3rE4ntlCo+US3/7oSWbg/4/4qEnt1HC32kvklgScxua\n4LR5ATdoXa5bFoopPWhul7MJ6NyWCyQyScUuGdlj8EN4kmKQJvphKHrI9fvhgOuG\nTvhTR1S5InA4azSSchY0tXEEw/VNxraeX0KPjbgr6DPcwhPd/m0nhVDq0zVyVBBD\nMwIDAQAB\n-----END PUBLIC KEY-----\n", - private_key: nil) + username: 'bob', + domain: 'example.com', + uri: 'https://example.com/users/bob', + public_key: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuYyoyfsRkYnXRotMsId\nW3euBDDfiv9oVqOxUVC7bhel8KednIMrMCRWFAkgJhbrlzbIkjVr68o1MP9qLcn7\nCmH/BXHp7yhuFTr4byjdJKpwB+/i2jNEsvDH5jR8WTAeTCe0x/QHg21V3F7dSI5m\nCCZ/1dSIyOXLRTWVlfDlm3rE4ntlCo+US3/7oSWbg/4/4qEnt1HC32kvklgScxua\n4LR5ATdoXa5bFoopPWhul7MJ6NyWCyQyScUuGdlj8EN4kmKQJvphKHrI9fvhgOuG\nTvhTR1S5InA4azSSchY0tXEEw/VNxraeX0KPjbgr6DPcwhPd/m0nhVDq0zVyVBBD\nMwIDAQAB\n-----END PUBLIC KEY-----\n", + private_key: nil) end let(:payload) do @@ -107,7 +107,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do '@context': [ 'https://www.w3.org/ns/activitystreams', nil, - {'object': 'https://www.w3.org/ns/activitystreams#object'} + { 'object': 'https://www.w3.org/ns/activitystreams#object' } ], 'id': 'https://example.com/users/bob/fake-status/activity', 'type': 'Create', diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 750369d57f..04292c5079 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -104,20 +104,19 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do end context 'when the status has not been explicitly edited and features a poll' do - let(:account) { Fabricate(:account, domain: 'example.com') } + let(:account) { Fabricate(:account, domain: 'example.com') } let!(:expiration) { 10.days.from_now.utc } let!(:status) do Fabricate(:status, - text: 'Hello world', - account: account, - poll_attributes: { - options: %w(Foo Bar), - account: account, - multiple: false, - hide_totals: false, - expires_at: expiration - } - ) + text: 'Hello world', + account: account, + poll_attributes: { + options: %w(Foo Bar), + account: account, + multiple: false, + hide_totals: false, + expires_at: expiration + }) end let(:payload) do @@ -156,20 +155,19 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do end context 'when the status changes a poll despite being not explicitly marked as updated' do - let(:account) { Fabricate(:account, domain: 'example.com') } + let(:account) { Fabricate(:account, domain: 'example.com') } let!(:expiration) { 10.days.from_now.utc } let!(:status) do Fabricate(:status, - text: 'Hello world', - account: account, - poll_attributes: { - options: %w(Foo Bar), - account: account, - multiple: false, - hide_totals: false, - expires_at: expiration - } - ) + text: 'Hello world', + account: account, + poll_attributes: { + options: %w(Foo Bar), + account: account, + multiple: false, + hide_totals: false, + expires_at: expiration + }) end let(:payload) do diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb index 16f3e9962e..149f6e6dfc 100644 --- a/spec/services/bootstrap_timeline_service_spec.rb +++ b/spec/services/bootstrap_timeline_service_spec.rb @@ -32,6 +32,5 @@ RSpec.describe BootstrapTimelineService, type: :service do expect(service).to_not have_received(:call) end end - end end diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb index 88f0113edd..da2a8d0d1f 100644 --- a/spec/services/fetch_oembed_service_spec.rb +++ b/spec/services/fetch_oembed_service_spec.rb @@ -151,7 +151,6 @@ describe FetchOEmbedService, type: :service do expect(subject.format).to eq :json end end - end context 'when endpoint is cached' do diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index e2d182920e..217d0ee244 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -178,7 +178,7 @@ RSpec.describe ImportService, type: :service do context 'utf-8 encoded domains' do subject { ImportService.new } - let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') } + let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') } # Make sure to not actually go to the remote server before do @@ -189,7 +189,7 @@ RSpec.describe ImportService, type: :service do let(:import) { Import.create(account: account, type: 'following', data: csv) } it 'follows the listed account' do - expect(account.follow_requests.count).to eq 0 + expect(account.follow_requests.count).to eq 0 subject.call(import) expect(account.follow_requests.count).to eq 1 end diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb index a83f6f49ab..9b9c846cfe 100644 --- a/spec/services/remove_from_follwers_service_spec.rb +++ b/spec/services/remove_from_follwers_service_spec.rb @@ -7,7 +7,7 @@ RSpec.describe RemoveFromFollowersService, type: :service do describe 'local' do let(:sender) { Fabricate(:account, username: 'alice') } - + before do Follow.create(account: sender, target_account: bob) subject.call(bob, sender) diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb index 482068d58f..e253052f36 100644 --- a/spec/services/remove_status_service_spec.rb +++ b/spec/services/remove_status_service_spec.rb @@ -37,29 +37,29 @@ RSpec.describe RemoveStatusService, type: :service do it 'sends Delete activity to followers' do subject.call(@status) expect(a_request(:post, 'http://example.com/inbox').with( - body: hash_including({ - 'type' => 'Delete', - 'object' => { - 'type' => 'Tombstone', - 'id' => ActivityPub::TagManager.instance.uri_for(@status), - 'atomUri' => OStatus::TagManager.instance.uri_for(@status), - }, - }) - )).to have_been_made.once + body: hash_including({ + 'type' => 'Delete', + 'object' => { + 'type' => 'Tombstone', + 'id' => ActivityPub::TagManager.instance.uri_for(@status), + 'atomUri' => OStatus::TagManager.instance.uri_for(@status), + }, + }) + )).to have_been_made.once end it 'sends Delete activity to rebloggers' do subject.call(@status) expect(a_request(:post, 'http://example2.com/inbox').with( - body: hash_including({ - 'type' => 'Delete', - 'object' => { - 'type' => 'Tombstone', - 'id' => ActivityPub::TagManager.instance.uri_for(@status), - 'atomUri' => OStatus::TagManager.instance.uri_for(@status), - }, - }) - )).to have_been_made.once + body: hash_including({ + 'type' => 'Delete', + 'object' => { + 'type' => 'Tombstone', + 'id' => ActivityPub::TagManager.instance.uri_for(@status), + 'atomUri' => OStatus::TagManager.instance.uri_for(@status), + }, + }) + )).to have_been_made.once end it 'remove status from notifications' do @@ -78,14 +78,14 @@ RSpec.describe RemoveStatusService, type: :service do it 'sends Undo activity to followers' do subject.call(@status) expect(a_request(:post, 'http://example.com/inbox').with( - body: hash_including({ - 'type' => 'Undo', - 'object' => hash_including({ - 'type' => 'Announce', - 'object' => ActivityPub::TagManager.instance.uri_for(@original_status), - }), - }) - )).to have_been_made.once + body: hash_including({ + 'type' => 'Undo', + 'object' => hash_including({ + 'type' => 'Announce', + 'object' => ActivityPub::TagManager.instance.uri_for(@original_status), + }), + }) + )).to have_been_made.once end end @@ -98,14 +98,14 @@ RSpec.describe RemoveStatusService, type: :service do it 'sends Undo activity to followers' do subject.call(@status) expect(a_request(:post, 'http://example.com/inbox').with( - body: hash_including({ - 'type' => 'Undo', - 'object' => hash_including({ - 'type' => 'Announce', - 'object' => ActivityPub::TagManager.instance.uri_for(@original_status), - }), - }) - )).to have_been_made.once + body: hash_including({ + 'type' => 'Undo', + 'object' => hash_including({ + 'type' => 'Announce', + 'object' => ActivityPub::TagManager.instance.uri_for(@original_status), + }), + }) + )).to have_been_made.once end end end diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index 654606beab..1df30ea575 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -190,7 +190,7 @@ RSpec.describe ResolveAccountService, type: :service do context 'with an already-known acct: URI changing ActivityPub id' do let!(:old_account) { Fabricate(:account, username: 'foo', domain: 'ap.example.com', uri: 'https://old.example.com/users/foo', last_webfingered_at: nil) } - let!(:status) { Fabricate(:status, account: old_account, text: 'foo') } + let!(:status) { Fabricate(:status, account: old_account, text: 'foo') } it 'returns new remote account' do account = subject.call('foo@ap.example.com') diff --git a/spec/services/resolve_url_service_spec.rb b/spec/services/resolve_url_service_spec.rb index b3e3defbff..3598311ee0 100644 --- a/spec/services/resolve_url_service_spec.rb +++ b/spec/services/resolve_url_service_spec.rb @@ -133,7 +133,7 @@ describe ResolveURLService, type: :service do let!(:status) { Fabricate(:status, account: poster, visibility: :public) } let(:url) { 'https://link.to/foobar' } let(:status_url) { ActivityPub::TagManager.instance.url_for(status) } - let(:uri) { ActivityPub::TagManager.instance.uri_for(status) } + let(:uri) { ActivityPub::TagManager.instance.uri_for(status) } before do stub_request(:get, url).to_return(status: 302, headers: { 'Location' => status_url }) diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb index 16e981d2be..a7364ca8b0 100644 --- a/spec/services/update_status_service_spec.rb +++ b/spec/services/update_status_service_spec.rb @@ -111,7 +111,7 @@ RSpec.describe UpdateStatusService, type: :service do context 'when poll changes' do let(:account) { Fabricate(:account) } - let!(:status) { Fabricate(:status, text: 'Foo', account: account, poll_attributes: {options: %w(Foo Bar), account: account, multiple: false, hide_totals: false, expires_at: 7.days.from_now }) } + let!(:status) { Fabricate(:status, text: 'Foo', account: account, poll_attributes: { options: %w(Foo Bar), account: account, multiple: false, hide_totals: false, expires_at: 7.days.from_now }) } let!(:poll) { status.poll } let!(:voter) { Fabricate(:account) } diff --git a/spec/support/stories/profile_stories.rb b/spec/support/stories/profile_stories.rb index 0c4a14d1c9..de7ae17e63 100644 --- a/spec/support/stories/profile_stories.rb +++ b/spec/support/stories/profile_stories.rb @@ -20,8 +20,8 @@ module ProfileStories end def with_alice_as_local_user - @alice_bio = '@alice and @bob are fictional characters commonly used as'\ - 'placeholder names in #cryptology, as well as #science and'\ + @alice_bio = '@alice and @bob are fictional characters commonly used as' \ + 'placeholder names in #cryptology, as well as #science and' \ 'engineering 📖 literature. Not affiliated with @pepe.' @alice = Fabricate( diff --git a/spec/validators/note_length_validator_spec.rb b/spec/validators/note_length_validator_spec.rb index 6e9b4e132f..390ac8d904 100644 --- a/spec/validators/note_length_validator_spec.rb +++ b/spec/validators/note_length_validator_spec.rb @@ -15,7 +15,7 @@ describe NoteLengthValidator do end it 'counts URLs as 23 characters flat' do - text = ('a' * 476) + " http://#{'b' * 30}.com/example" + text = ('a' * 476) + " http://#{'b' * 30}.com/example" account = double(note: text, errors: double(add: nil)) subject.validate_each(account, 'note', text) @@ -23,7 +23,7 @@ describe NoteLengthValidator do end it 'does not count non-autolinkable URLs as 23 characters flat' do - text = ('a' * 476) + "http://#{'b' * 30}.com/example" + text = ('a' * 476) + "http://#{'b' * 30}.com/example" account = double(note: text, errors: double(add: nil)) subject.validate_each(account, 'note', text) diff --git a/spec/validators/unreserved_username_validator_spec.rb b/spec/validators/unreserved_username_validator_spec.rb index 746b3866c8..e2f051b086 100644 --- a/spec/validators/unreserved_username_validator_spec.rb +++ b/spec/validators/unreserved_username_validator_spec.rb @@ -11,10 +11,10 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do let(:validator) { described_class.new } let(:account) { double(username: username, errors: errors) } - let(:errors ) { double(add: nil) } + let(:errors) { double(add: nil) } context '@username.blank?' do - let(:username) { nil } + let(:username) { nil } it 'not calls errors.add' do expect(errors).not_to have_received(:add).with(:username, any_args) @@ -22,7 +22,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do end context '!@username.blank?' do - let(:username) { 'f' } + let(:username) { 'f' } context 'reserved_username?' do let(:reserved_username) { true } diff --git a/spec/workers/activitypub/distribution_worker_spec.rb b/spec/workers/activitypub/distribution_worker_spec.rb index 3a5900d9b8..7f63e197bf 100644 --- a/spec/workers/activitypub/distribution_worker_spec.rb +++ b/spec/workers/activitypub/distribution_worker_spec.rb @@ -34,7 +34,7 @@ describe ActivityPub::DistributionWorker do end context 'with direct status' do - let(:mentioned_account) { Fabricate(:account, protocol: :activitypub, inbox_url: 'https://foo.bar/inbox')} + let(:mentioned_account) { Fabricate(:account, protocol: :activitypub, inbox_url: 'https://foo.bar/inbox') } before do status.update(visibility: :direct) diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb index af8c44cc01..57941065a7 100644 --- a/spec/workers/activitypub/move_distribution_worker_spec.rb +++ b/spec/workers/activitypub/move_distribution_worker_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe ActivityPub::MoveDistributionWorker do subject { described_class.new } - let(:migration) { Fabricate(:account_migration) } + let(:migration) { Fabricate(:account_migration) } let(:follower) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example.com') } let(:blocker) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example2.com') } @@ -15,9 +15,9 @@ describe ActivityPub::MoveDistributionWorker do it 'delivers to followers and known blockers' do expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [ - [kind_of(String), migration.account.id, 'http://example.com'], - [kind_of(String), migration.account.id, 'http://example2.com'] - ]) + [kind_of(String), migration.account.id, 'http://example.com'], + [kind_of(String), migration.account.id, 'http://example2.com'] + ]) subject.perform(migration.id) end end diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index 8f20725c87..8faf048367 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -82,7 +82,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do describe '#get_budget' do context 'on a single thread' do - let(:process_set_stub) { [ { 'concurrency' => 1, 'queues' => ['push', 'default'] } ] } + let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => ['push', 'default'] }] } it 'returns a low value' do expect(subject.compute_budget).to be < 10 From ac59d6f19f00f1503343cd587c4238dc0038127a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:05:57 -0500 Subject: [PATCH 0442/1220] Enable Rubocop Style/NumericLiterals (#23647) --- .rubocop.yml | 4 ++++ .rubocop_todo.yml | 10 ---------- .../20180812173710_copy_status_stats.rb | 2 +- .../20181116173541_copy_account_stats.rb | 2 +- lib/mastodon/maintenance_cli.rb | 20 +++++++++---------- .../api/v1/markers_controller_spec.rb | 4 ++-- 6 files changed, 18 insertions(+), 24 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 5278ee38ca..eb3fcba43a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -101,6 +101,10 @@ Style/Copyright: Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys +Style/NumericLiterals: + AllowedPatterns: + - \d{4}_\d{2}_\d{2}_\d{6} # For DB migration date version number readability + Style/PercentLiteralDelimiters: PreferredDelimiters: '%i': '()' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e24ce7e327..12e4f14ec9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3149,16 +3149,6 @@ Style/MutableConstant: - 'lib/mastodon/snowflake.rb' - 'spec/controllers/api/base_controller_spec.rb' -# Offense count: 7 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: MinDigits, Strict, AllowedNumbers, AllowedPatterns. -Style/NumericLiterals: - Exclude: - - 'db/migrate/20180812173710_copy_status_stats.rb' - - 'db/migrate/20181116173541_copy_account_stats.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'spec/controllers/api/v1/markers_controller_spec.rb' - # Offense count: 10 # Configuration parameters: AllowedMethods. # AllowedMethods: respond_to_missing? diff --git a/db/migrate/20180812173710_copy_status_stats.rb b/db/migrate/20180812173710_copy_status_stats.rb index ff10c18d9d..9b2971bebc 100644 --- a/db/migrate/20180812173710_copy_status_stats.rb +++ b/db/migrate/20180812173710_copy_status_stats.rb @@ -19,7 +19,7 @@ class CopyStatusStats < ActiveRecord::Migration[5.2] def supports_upsert? version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i - version >= 90500 + version >= 90_500 end def up_fast diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb index 8e27eb11b5..20dc851957 100644 --- a/db/migrate/20181116173541_copy_account_stats.rb +++ b/db/migrate/20181116173541_copy_account_stats.rb @@ -19,7 +19,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] def supports_upsert? version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i - version >= 90500 + version >= 90_500 end def up_fast diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb index 85937da812..a86a4f2f62 100644 --- a/lib/mastodon/maintenance_cli.rb +++ b/lib/mastodon/maintenance_cli.rb @@ -13,8 +13,8 @@ module Mastodon true end - MIN_SUPPORTED_VERSION = 2019_10_01_213028 # rubocop:disable Style/NumericLiterals - MAX_SUPPORTED_VERSION = 2022_11_04_133904 # rubocop:disable Style/NumericLiterals + MIN_SUPPORTED_VERSION = 2019_10_01_213028 + MAX_SUPPORTED_VERSION = 2022_11_04_133904 # Stubs to enjoy ActiveRecord queries while not depending on a particular # version of the code/database @@ -209,7 +209,7 @@ module Mastodon end @prompt.say 'Restoring index_accounts_on_username_and_domain_lower…' - if ActiveRecord::Migrator.current_version < 20200620164023 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2020_06_20_164023 ActiveRecord::Base.connection.add_index :accounts, 'lower (username), lower(domain)', name: 'index_accounts_on_username_and_domain_lower', unique: true else ActiveRecord::Base.connection.add_index :accounts, "lower (username), COALESCE(lower(domain), '')", name: 'index_accounts_on_username_and_domain_lower', unique: true @@ -252,7 +252,7 @@ module Mastodon end end - if ActiveRecord::Migrator.current_version < 20220118183010 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2022_01_18_183010 ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE remember_token IS NOT NULL GROUP BY remember_token HAVING count(*) > 1").each do |row| users = User.where(id: row['ids'].split(',')).sort_by(&:updated_at).reverse.drop(1) @prompt.warn "Unsetting remember token for those accounts: #{users.map(&:account).map(&:acct).join(', ')}" @@ -275,9 +275,9 @@ module Mastodon @prompt.say 'Restoring users indexes…' ActiveRecord::Base.connection.add_index :users, ['confirmation_token'], name: 'index_users_on_confirmation_token', unique: true ActiveRecord::Base.connection.add_index :users, ['email'], name: 'index_users_on_email', unique: true - ActiveRecord::Base.connection.add_index :users, ['remember_token'], name: 'index_users_on_remember_token', unique: true if ActiveRecord::Migrator.current_version < 20220118183010 + ActiveRecord::Base.connection.add_index :users, ['remember_token'], name: 'index_users_on_remember_token', unique: true if ActiveRecord::Migrator.current_version < 2022_01_18_183010 - if ActiveRecord::Migrator.current_version < 20220310060641 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2022_03_10_060641 ActiveRecord::Base.connection.add_index :users, ['reset_password_token'], name: 'index_users_on_reset_password_token', unique: true else ActiveRecord::Base.connection.add_index :users, ['reset_password_token'], name: 'index_users_on_reset_password_token', unique: true, where: 'reset_password_token IS NOT NULL', opclass: :text_pattern_ops @@ -340,7 +340,7 @@ module Mastodon end @prompt.say 'Restoring conversations indexes…' - if ActiveRecord::Migrator.current_version < 20220307083603 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2022_03_07_083603 ActiveRecord::Base.connection.add_index :conversations, ['uri'], name: 'index_conversations_on_uri', unique: true else ActiveRecord::Base.connection.add_index :conversations, ['uri'], name: 'index_conversations_on_uri', unique: true, where: 'uri IS NOT NULL', opclass: :text_pattern_ops @@ -457,7 +457,7 @@ module Mastodon end @prompt.say 'Restoring media_attachments indexes…' - if ActiveRecord::Migrator.current_version < 20220310060626 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2022_03_10_060626 ActiveRecord::Base.connection.add_index :media_attachments, ['shortcode'], name: 'index_media_attachments_on_shortcode', unique: true else ActiveRecord::Base.connection.add_index :media_attachments, ['shortcode'], name: 'index_media_attachments_on_shortcode', unique: true, where: 'shortcode IS NOT NULL', opclass: :text_pattern_ops @@ -490,7 +490,7 @@ module Mastodon end @prompt.say 'Restoring statuses indexes…' - if ActiveRecord::Migrator.current_version < 20220310060706 # rubocop:disable Style/NumericLiterals + if ActiveRecord::Migrator.current_version < 2022_03_10_060706 ActiveRecord::Base.connection.add_index :statuses, ['uri'], name: 'index_statuses_on_uri', unique: true else ActiveRecord::Base.connection.add_index :statuses, ['uri'], name: 'index_statuses_on_uri', unique: true, where: 'uri IS NOT NULL', opclass: :text_pattern_ops @@ -512,7 +512,7 @@ module Mastodon end @prompt.say 'Restoring tags indexes…' - if ActiveRecord::Migrator.current_version < 20210421121431 + if ActiveRecord::Migrator.current_version < 2021_04_21_121431 ActiveRecord::Base.connection.add_index :tags, 'lower((name)::text)', name: 'index_tags_on_name_lower', unique: true else ActiveRecord::Base.connection.execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)' diff --git a/spec/controllers/api/v1/markers_controller_spec.rb b/spec/controllers/api/v1/markers_controller_spec.rb index ba0f3c3221..64ec18e590 100644 --- a/spec/controllers/api/v1/markers_controller_spec.rb +++ b/spec/controllers/api/v1/markers_controller_spec.rb @@ -42,7 +42,7 @@ RSpec.describe Api::V1::MarkersController, type: :controller do it 'creates a marker' do expect(user.markers.first.timeline).to eq 'home' - expect(user.markers.first.last_read_id).to eq 69420 + expect(user.markers.first.last_read_id).to eq 69_420 end end @@ -58,7 +58,7 @@ RSpec.describe Api::V1::MarkersController, type: :controller do it 'updates a marker' do expect(user.markers.first.timeline).to eq 'home' - expect(user.markers.first.last_read_id).to eq 70120 + expect(user.markers.first.last_read_id).to eq 70_120 end end end From 6d42820e5df4a2282af1194a98789b45027aabce Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:22:01 -0500 Subject: [PATCH 0443/1220] Autofix Rubocop Lint/AmbiguousOperator (#23680) --- .rubocop_todo.yml | 8 -------- spec/controllers/api/v1/suggestions_controller_spec.rb | 2 +- spec/lib/request_spec.rb | 8 ++++---- spec/models/user_role_spec.rb | 4 ++-- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 12e4f14ec9..ddfe5c36b3 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -183,14 +183,6 @@ Lint/AmbiguousBlockAssociation: - 'spec/services/unsuspend_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 7 -# This cop supports safe autocorrection (--autocorrect). -Lint/AmbiguousOperator: - Exclude: - - 'spec/controllers/api/v1/suggestions_controller_spec.rb' - - 'spec/lib/request_spec.rb' - - 'spec/models/user_role_spec.rb' - # Offense count: 17 # This cop supports safe autocorrection (--autocorrect). Lint/AmbiguousOperatorPrecedence: diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb index 17f10b04fe..7805b6b4fe 100644 --- a/spec/controllers/api/v1/suggestions_controller_spec.rb +++ b/spec/controllers/api/v1/suggestions_controller_spec.rb @@ -29,7 +29,7 @@ RSpec.describe Api::V1::SuggestionsController, type: :controller do json = body_as_json expect(json.size).to be >= 1 - expect(json.map { |i| i[:id] }).to include *[bob, jeff].map { |i| i.id.to_s } + expect(json.map { |i| i[:id] }).to include(*[bob, jeff].map { |i| i.id.to_s }) end end end diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb index 8539944e28..e555a8b5a1 100644 --- a/spec/lib/request_spec.rb +++ b/spec/lib/request_spec.rb @@ -43,7 +43,7 @@ describe Request do before { stub_request(:get, 'http://example.com') } it 'executes a HTTP request' do - expect { |block| subject.perform &block }.to yield_control + expect { |block| subject.perform(&block) }.to yield_control expect(a_request(:get, 'http://example.com')).to have_been_made.once end @@ -54,18 +54,18 @@ describe Request do allow(resolver).to receive(:timeouts=).and_return(nil) allow(Resolv::DNS).to receive(:open).and_yield(resolver) - expect { |block| subject.perform &block }.to yield_control + expect { |block| subject.perform(&block) }.to yield_control expect(a_request(:get, 'http://example.com')).to have_been_made.once end it 'sets headers' do - expect { |block| subject.perform &block }.to yield_control + expect { |block| subject.perform(&block) }.to yield_control expect(a_request(:get, 'http://example.com').with(headers: subject.headers)).to have_been_made end it 'closes underlying connection' do expect_any_instance_of(HTTP::Client).to receive(:close) - expect { |block| subject.perform &block }.to yield_control + expect { |block| subject.perform(&block) }.to yield_control end it 'returns response which implements body_with_limit' do diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index abf7d0e27c..7294d14fea 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -139,7 +139,7 @@ RSpec.describe UserRole, type: :model do end it 'has negative position' do - expect(subject.position).to eq -1 + expect(subject.position).to eq(-1) end end @@ -159,7 +159,7 @@ RSpec.describe UserRole, type: :model do end it 'has negative position' do - expect(subject.position).to eq -1 + expect(subject.position).to eq(-1) end end From 634368c491c8e89d93b54dd2dc170f0873beafcb Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:23:49 -0500 Subject: [PATCH 0444/1220] Autofix Rubocop Lint/SymbolConversion (#23683) --- .rubocop_todo.yml | 14 ------ app/lib/translation_service/deepl.rb | 2 +- app/services/backup_service.rb | 2 +- .../auth/registrations_controller_spec.rb | 4 +- .../auth/sessions_controller_spec.rb | 2 +- .../lib/activitypub/activity/announce_spec.rb | 6 +-- spec/lib/activitypub/activity/create_spec.rb | 6 +-- .../process_collection_service_spec.rb | 48 +++++++++---------- 8 files changed, 35 insertions(+), 49 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ddfe5c36b3..b9971a6106 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -298,20 +298,6 @@ Lint/ParenthesesAsGroupedExpression: - 'spec/lib/activitypub/activity/flag_spec.rb' - 'spec/models/import_spec.rb' -# Offense count: 35 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: strict, consistent -Lint/SymbolConversion: - Exclude: - - 'app/lib/translation_service/deepl.rb' - - 'app/services/backup_service.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/auth/sessions_controller_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - # Offense count: 3 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index 537fd24c08..151d33d909 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -29,7 +29,7 @@ class TranslationService::DeepL < TranslationService def request(text, source_language, target_language) req = Request.new(:post, endpoint_url, form: { text: text, source_lang: source_language&.upcase, target_lang: target_language, tag_handling: 'html' }) - req.add_headers('Authorization': "DeepL-Auth-Key #{@api_key}") + req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}") req end diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index 037f519d3e..b880dfbe71 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -23,7 +23,7 @@ class BackupService < BaseService account.statuses.with_includes.reorder(nil).find_in_batches do |statuses| statuses.each do |status| item = serialize_payload(ActivityPub::ActivityPresenter.from_status(status), ActivityPub::ActivitySerializer, signer: @account) - item.delete(:'@context') + item.delete(:@context) unless item[:type] == 'Announce' || item[:object][:attachment].blank? item[:object][:attachment].each do |attachment| diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index 0ebf6641fa..38c003b534 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -178,7 +178,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do Setting.registrations_mode = 'approved' request.headers["Accept-Language"] = accept_language invite = Fabricate(:invite, max_uses: nil, expires_at: 1.hour.ago) - post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', 'invite_code': invite.code, agreement: 'true' } } + post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end it 'redirects to setup' do @@ -210,7 +210,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do Setting.require_invite_text = true request.headers["Accept-Language"] = accept_language invite = Fabricate(:invite, user: inviter, max_uses: nil, expires_at: 1.hour.from_now) - post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', 'invite_code': invite.code, agreement: 'true' } } + post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end it 'redirects to setup' do diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 64433ddf45..8f898ad1f6 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -127,7 +127,7 @@ RSpec.describe Auth::SessionsController, type: :controller do before do allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip).and_return(current_ip) - allow(UserMailer).to receive(:suspicious_sign_in).and_return(double('email', 'deliver_later!': nil)) + allow(UserMailer).to receive(:suspicious_sign_in).and_return(double('email', deliver_later!: nil)) user.update(current_sign_in_at: 1.month.ago) post :create, params: { user: { email: user.email, password: user.password } } end diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index e9cd6c68c1..1b34853843 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -82,9 +82,9 @@ RSpec.describe ActivityPub::Activity::Announce do content: 'Lorem ipsum', attributedTo: 'https://example.com/actor', to: { - 'type': 'OrderedCollection', - 'id': 'http://example.com/followers', - 'first': 'http://example.com/followers?page=true', + type: 'OrderedCollection', + id: 'http://example.com/followers', + first: 'http://example.com/followers?page=true', } } end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index cd0f2df6e5..074aa54caa 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -252,9 +252,9 @@ RSpec.describe ActivityPub::Activity::Create do type: 'Note', content: 'Lorem ipsum', to: { - 'type': 'OrderedCollection', - 'id': 'http://example.com/followers', - 'first': 'http://example.com/followers?page=true', + type: 'OrderedCollection', + id: 'http://example.com/followers', + first: 'http://example.com/followers?page=true', } } end diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index cb60e1cb8b..cb7deb6265 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -107,23 +107,23 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do '@context': [ 'https://www.w3.org/ns/activitystreams', nil, - { 'object': 'https://www.w3.org/ns/activitystreams#object' } + { object: 'https://www.w3.org/ns/activitystreams#object' } ], - 'id': 'https://example.com/users/bob/fake-status/activity', - 'type': 'Create', - 'actor': 'https://example.com/users/bob', - 'published': '2022-01-22T15:00:00Z', - 'to': [ + id: 'https://example.com/users/bob/fake-status/activity', + type: 'Create', + actor: 'https://example.com/users/bob', + published: '2022-01-22T15:00:00Z', + to: [ 'https://www.w3.org/ns/activitystreams#Public' ], - 'cc': [ + cc: [ 'https://example.com/users/bob/followers' ], - 'signature': { - 'type': 'RsaSignature2017', - 'creator': 'https://example.com/users/bob#main-key', - 'created': '2022-03-09T21:57:25Z', - 'signatureValue': 'WculK0LelTQ0MvGwU9TPoq5pFzFfGYRDCJqjZ232/Udj4CHqDTGOSw5UTDLShqBOyycCkbZGrQwXG+dpyDpQLSe1UVPZ5TPQtc/9XtI57WlS2nMNpdvRuxGnnb2btPdesXZ7n3pCxo0zjaXrJMe0mqQh5QJO22mahb4bDwwmfTHgbD3nmkD+fBfGi+UV2qWwqr+jlV4L4JqNkh0gWljF5KTePLRRZCuWiQ/FAt7c67636cdIPf7fR+usjuZltTQyLZKEGuK8VUn2Gkfsx5qns7Vcjvlz1JqlAjyO8HPBbzTTHzUG2nUOIgC3PojCSWv6mNTmRGoLZzOscCAYQA6cKw==' + signature: { + type: 'RsaSignature2017', + creator: 'https://example.com/users/bob#main-key', + created: '2022-03-09T21:57:25Z', + signatureValue: 'WculK0LelTQ0MvGwU9TPoq5pFzFfGYRDCJqjZ232/Udj4CHqDTGOSw5UTDLShqBOyycCkbZGrQwXG+dpyDpQLSe1UVPZ5TPQtc/9XtI57WlS2nMNpdvRuxGnnb2btPdesXZ7n3pCxo0zjaXrJMe0mqQh5QJO22mahb4bDwwmfTHgbD3nmkD+fBfGi+UV2qWwqr+jlV4L4JqNkh0gWljF5KTePLRRZCuWiQ/FAt7c67636cdIPf7fR+usjuZltTQyLZKEGuK8VUn2Gkfsx5qns7Vcjvlz1JqlAjyO8HPBbzTTHzUG2nUOIgC3PojCSWv6mNTmRGoLZzOscCAYQA6cKw==' }, '@id': 'https://example.com/users/bob/statuses/107928807471117876/activity', '@type': 'https://www.w3.org/ns/activitystreams#Create', @@ -133,22 +133,22 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do 'https://www.w3.org/ns/activitystreams#cc': { '@id': 'https://example.com/users/bob/followers' }, - 'object': { - 'id': 'https://example.com/users/bob/fake-status', - 'type': 'Note', - 'published': '2022-01-22T15:00:00Z', - 'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=puck-was-here', - 'attributedTo': 'https://example.com/users/bob', - 'to': [ + object: { + id: 'https://example.com/users/bob/fake-status', + type: 'Note', + published: '2022-01-22T15:00:00Z', + url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=puck-was-here', + attributedTo: 'https://example.com/users/bob', + to: [ 'https://www.w3.org/ns/activitystreams#Public' ], - 'cc': [ + cc: [ 'https://example.com/users/bob/followers' ], - 'sensitive': false, - 'atomUri': 'https://example.com/users/bob/fake-status', - 'conversation': 'tag:example.com,2022-03-09:objectId=15:objectType=Conversation', - 'content': '

    puck was here

    ', + sensitive: false, + atomUri: 'https://example.com/users/bob/fake-status', + conversation: 'tag:example.com,2022-03-09:objectId=15:objectType=Conversation', + content: '

    puck was here

    ', '@id': 'https://example.com/users/bob/statuses/107928807471117876', '@type': 'https://www.w3.org/ns/activitystreams#Note', From 54318dcd6d4a22a24c5d8afb7c950bed43df3964 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:24:16 -0500 Subject: [PATCH 0445/1220] Autofix Rubocop RSpec/ClassCheck (#23685) --- .rubocop_todo.yml | 14 -------- spec/lib/settings/extend_spec.rb | 2 +- .../concerns/account_interactions_spec.rb | 36 +++++++++---------- spec/models/custom_emoji_filter_spec.rb | 10 +++--- spec/models/session_activation_spec.rb | 4 +-- spec/models/setting_spec.rb | 6 ++-- spec/models/user_role_spec.rb | 4 +-- spec/models/user_spec.rb | 2 +- 8 files changed, 32 insertions(+), 46 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b9971a6106..66890b3d70 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -630,20 +630,6 @@ RSpec/Capybara/FeatureMethods: - 'spec/features/log_in_spec.rb' - 'spec/features/profile_spec.rb' -# Offense count: 32 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: be_a, be_kind_of -RSpec/ClassCheck: - Exclude: - - 'spec/lib/settings/extend_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - - 'spec/models/custom_emoji_filter_spec.rb' - - 'spec/models/session_activation_spec.rb' - - 'spec/models/setting_spec.rb' - - 'spec/models/user_role_spec.rb' - - 'spec/models/user_spec.rb' - # Offense count: 558 # Configuration parameters: Prefixes, AllowedPatterns. # Prefixes: when, with, without diff --git a/spec/lib/settings/extend_spec.rb b/spec/lib/settings/extend_spec.rb index 83ced4230c..ea623137b4 100644 --- a/spec/lib/settings/extend_spec.rb +++ b/spec/lib/settings/extend_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Settings::Extend do describe '#settings' do it 'sets @settings as an instance of Settings::ScopedSettings' do user = Fabricate(:user) - expect(user.settings).to be_kind_of Settings::ScopedSettings + expect(user.settings).to be_a Settings::ScopedSettings end end end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index e628384d0c..755c713141 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -94,7 +94,7 @@ describe AccountInteractions do describe '#follow!' do it 'creates and returns Follow' do expect do - expect(account.follow!(target_account)).to be_kind_of Follow + expect(account.follow!(target_account)).to be_a Follow end.to change { account.following.count }.by 1 end end @@ -102,7 +102,7 @@ describe AccountInteractions do describe '#block' do it 'creates and returns Block' do expect do - expect(account.block!(target_account)).to be_kind_of Block + expect(account.block!(target_account)).to be_a Block end.to change { account.block_relationships.count }.by 1 end end @@ -116,7 +116,7 @@ describe AccountInteractions do it 'creates Mute, and returns Mute' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { account.mute_relationships.count }.by 1 end end @@ -126,7 +126,7 @@ describe AccountInteractions do it 'creates Mute, and returns Mute' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { account.mute_relationships.count }.by 1 end end @@ -136,7 +136,7 @@ describe AccountInteractions do it 'creates Mute, and returns Mute' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { account.mute_relationships.count }.by 1 end end @@ -162,7 +162,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.not_to change { mute.reload.hide_notifications? }.from(true) end end @@ -172,7 +172,7 @@ describe AccountInteractions do it 'returns Mute, and updates mute.hide_notifications false' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { mute.reload.hide_notifications? }.from(true).to(false) end end @@ -182,7 +182,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.not_to change { mute.reload.hide_notifications? }.from(true) end end @@ -196,7 +196,7 @@ describe AccountInteractions do it 'returns Mute, and updates mute.hide_notifications true' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { mute.reload.hide_notifications? }.from(false).to(true) end end @@ -206,7 +206,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.not_to change { mute.reload.hide_notifications? }.from(false) end end @@ -216,7 +216,7 @@ describe AccountInteractions do it 'returns Mute, and updates mute.hide_notifications true' do expect do - expect(subject).to be_kind_of Mute + expect(subject).to be_a Mute end.to change { mute.reload.hide_notifications? }.from(false).to(true) end end @@ -231,7 +231,7 @@ describe AccountInteractions do it 'creates and returns ConversationMute' do expect do - is_expected.to be_kind_of ConversationMute + is_expected.to be_a ConversationMute end.to change { account.conversation_mutes.count }.by 1 end end @@ -243,7 +243,7 @@ describe AccountInteractions do it 'creates and returns AccountDomainBlock' do expect do - is_expected.to be_kind_of AccountDomainBlock + is_expected.to be_a AccountDomainBlock end.to change { account.domain_blocks.count }.by 1 end end @@ -254,7 +254,7 @@ describe AccountInteractions do context 'following target_account' do it 'returns destroyed Follow' do account.active_relationships.create(target_account: target_account) - is_expected.to be_kind_of Follow + is_expected.to be_a Follow expect(subject).to be_destroyed end end @@ -272,7 +272,7 @@ describe AccountInteractions do context 'blocking target_account' do it 'returns destroyed Block' do account.block_relationships.create(target_account: target_account) - is_expected.to be_kind_of Block + is_expected.to be_a Block expect(subject).to be_destroyed end end @@ -290,7 +290,7 @@ describe AccountInteractions do context 'muting target_account' do it 'returns destroyed Mute' do account.mute_relationships.create(target_account: target_account) - is_expected.to be_kind_of Mute + is_expected.to be_a Mute expect(subject).to be_destroyed end end @@ -310,7 +310,7 @@ describe AccountInteractions do context 'muting the conversation' do it 'returns destroyed ConversationMute' do account.conversation_mutes.create(conversation: conversation) - is_expected.to be_kind_of ConversationMute + is_expected.to be_a ConversationMute expect(subject).to be_destroyed end end @@ -331,7 +331,7 @@ describe AccountInteractions do it 'returns destroyed AccountDomainBlock' do account_domain_block = Fabricate(:account_domain_block, domain: domain) account.domain_blocks << account_domain_block - is_expected.to be_kind_of AccountDomainBlock + is_expected.to be_a AccountDomainBlock expect(subject).to be_destroyed end end diff --git a/spec/models/custom_emoji_filter_spec.rb b/spec/models/custom_emoji_filter_spec.rb index 2b1b5dc542..515c0a7156 100644 --- a/spec/models/custom_emoji_filter_spec.rb +++ b/spec/models/custom_emoji_filter_spec.rb @@ -15,7 +15,7 @@ RSpec.describe CustomEmojiFilter do let(:params) { { local: true } } it 'returns ActiveRecord::Relation' do - expect(subject).to be_kind_of(ActiveRecord::Relation) + expect(subject).to be_a(ActiveRecord::Relation) expect(subject).to match_array([custom_emoji_2]) end end @@ -24,7 +24,7 @@ RSpec.describe CustomEmojiFilter do let(:params) { { remote: true } } it 'returns ActiveRecord::Relation' do - expect(subject).to be_kind_of(ActiveRecord::Relation) + expect(subject).to be_a(ActiveRecord::Relation) expect(subject).to match_array([custom_emoji_0, custom_emoji_1]) end end @@ -33,7 +33,7 @@ RSpec.describe CustomEmojiFilter do let(:params) { { by_domain: 'a' } } it 'returns ActiveRecord::Relation' do - expect(subject).to be_kind_of(ActiveRecord::Relation) + expect(subject).to be_a(ActiveRecord::Relation) expect(subject).to match_array([custom_emoji_0]) end end @@ -42,7 +42,7 @@ RSpec.describe CustomEmojiFilter do let(:params) { { shortcode: 'hoge' } } it 'returns ActiveRecord::Relation' do - expect(subject).to be_kind_of(ActiveRecord::Relation) + expect(subject).to be_a(ActiveRecord::Relation) expect(subject).to match_array([custom_emoji_2]) end end @@ -62,7 +62,7 @@ RSpec.describe CustomEmojiFilter do let(:params) { { hoge: nil } } it 'returns ActiveRecord::Relation' do - expect(subject).to be_kind_of(ActiveRecord::Relation) + expect(subject).to be_a(ActiveRecord::Relation) expect(subject).to match_array([custom_emoji_0, custom_emoji_1, custom_emoji_2]) end end diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb index 5c3d285cb2..26f2b561a1 100644 --- a/spec/models/session_activation_spec.rb +++ b/spec/models/session_activation_spec.rb @@ -7,7 +7,7 @@ RSpec.describe SessionActivation, type: :model do let(:session_activation) { Fabricate(:session_activation, user_agent: 'Chrome/62.0.3202.89') } it 'sets a Browser instance as detection' do - expect(session_activation.detection).to be_kind_of Browser::Chrome + expect(session_activation.detection).to be_a Browser::Chrome end end @@ -80,7 +80,7 @@ RSpec.describe SessionActivation, type: :model do end it 'returns an instance of SessionActivation' do - expect(described_class.activate(**options)).to be_kind_of SessionActivation + expect(described_class.activate(**options)).to be_a SessionActivation end end diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 3ccc21d6c4..83ba415a81 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -127,7 +127,7 @@ RSpec.describe Setting, type: :model do let(:records) { [original_setting] } it 'returns a Hash' do - expect(described_class.all_as_records).to be_kind_of Hash + expect(described_class.all_as_records).to be_a Hash end context 'records includes Setting with var as the key' do @@ -146,7 +146,7 @@ RSpec.describe Setting, type: :model do it 'includes Setting with value of default_value' do setting = described_class.all_as_records[key] - expect(setting).to be_kind_of Setting + expect(setting).to be_a Setting expect(setting).to have_attributes(var: key) expect(setting).to have_attributes(value: 'default_value') end @@ -181,7 +181,7 @@ RSpec.describe Setting, type: :model do let(:enabled) { true } it 'returns instance of RailsSettings::Default' do - is_expected.to be_kind_of RailsSettings::Default + is_expected.to be_a RailsSettings::Default end end end diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index 7294d14fea..52a8622f99 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -127,7 +127,7 @@ RSpec.describe UserRole, type: :model do subject { described_class.everyone } it 'returns a role' do - expect(subject).to be_kind_of(described_class) + expect(subject).to be_a(described_class) end it 'is identified as the everyone role' do @@ -147,7 +147,7 @@ RSpec.describe UserRole, type: :model do subject { described_class.nobody } it 'returns a role' do - expect(subject).to be_kind_of(described_class) + expect(subject).to be_a(described_class) end it 'is identified as the nobody role' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 1f2ab77dc7..139d8784b9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -313,7 +313,7 @@ RSpec.describe User, type: :model do describe 'settings' do it 'is instance of Settings::ScopedSettings' do user = Fabricate(:user) - expect(user.settings).to be_kind_of Settings::ScopedSettings + expect(user.settings).to be_a Settings::ScopedSettings end end From 7a3d4c3d4b2efa2df3f6238b7c9da240c29c8c54 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:25:47 -0500 Subject: [PATCH 0446/1220] Enable Rubocop RSpec/MultipleDescribes (#23672) --- .rubocop_todo.yml | 5 ----- spec/routing/well_known_routes_spec.rb | 20 +++++++++++--------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 66890b3d70..aa47a05fb1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1309,11 +1309,6 @@ RSpec/MissingExampleGroupArgument: - 'spec/services/notify_service_spec.rb' - 'spec/services/process_mentions_service_spec.rb' -# Offense count: 1 -RSpec/MultipleDescribes: - Exclude: - - 'spec/routing/well_known_routes_spec.rb' - # Offense count: 599 RSpec/MultipleExpectations: Max: 19 diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb index 03a562843c..7474633515 100644 --- a/spec/routing/well_known_routes_spec.rb +++ b/spec/routing/well_known_routes_spec.rb @@ -1,15 +1,17 @@ require 'rails_helper' -describe 'the host-meta route' do - it 'routes to correct place with xml format' do - expect(get('/.well-known/host-meta')) - .to route_to('well_known/host_meta#show', format: 'xml') +describe 'Well Known routes' do + describe 'the host-meta route' do + it 'routes to correct place with xml format' do + expect(get('/.well-known/host-meta')) + .to route_to('well_known/host_meta#show', format: 'xml') + end end -end -describe 'the webfinger route' do - it 'routes to correct place with json format' do - expect(get('/.well-known/webfinger')) - .to route_to('well_known/webfinger#show') + describe 'the webfinger route' do + it 'routes to correct place with json format' do + expect(get('/.well-known/webfinger')) + .to route_to('well_known/webfinger#show') + end end end From c0a645f6474749fede8371c4dd778fbc22e3c797 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:26:20 -0500 Subject: [PATCH 0447/1220] Autofix Rubocop RSpec/ExampleWording (#23667) --- .rubocop_todo.yml | 10 ---------- .../settings/applications_controller_spec.rb | 4 ++-- spec/models/custom_emoji_spec.rb | 2 +- spec/models/user_spec.rb | 14 +++++++------- 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index aa47a05fb1..b296c810e9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -907,16 +907,6 @@ RSpec/EmptyLineAfterSubject: RSpec/ExampleLength: Max: 22 -# Offense count: 10 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: CustomTransform, IgnoredWords, DisallowedExamples. -# DisallowedExamples: works -RSpec/ExampleWording: - Exclude: - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/models/custom_emoji_spec.rb' - - 'spec/models/user_spec.rb' - # Offense count: 2 # This cop supports safe autocorrection (--autocorrect). RSpec/ExcessiveDocstringSpacing: diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 9074574e40..b79a38ea19 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -37,7 +37,7 @@ describe Settings::ApplicationsController do end describe 'GET #new' do - it 'works' do + it 'returns http success' do get :new expect(response).to have_http_status(200) end @@ -180,7 +180,7 @@ describe Settings::ApplicationsController do post :regenerate, params: { id: app.id } end - it 'should create new token' do + it 'creates new token' do expect(user.token_for_app(app)).to_not eql(token) end end diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb index 9de218b4fe..f9e1099c60 100644 --- a/spec/models/custom_emoji_spec.rb +++ b/spec/models/custom_emoji_spec.rb @@ -79,7 +79,7 @@ RSpec.describe CustomEmoji, type: :model do describe 'pre_validation' do let(:custom_emoji) { Fabricate(:custom_emoji, domain: 'wWw.MaStOdOn.CoM') } - it 'should downcase' do + it 'downcases' do custom_emoji.valid? expect(custom_emoji.domain).to eq('www.mastodon.com') end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 139d8784b9..368165f16c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -110,19 +110,19 @@ RSpec.describe User, type: :model do Rails.configuration.x.email_domains_blacklist = old_blacklist end - it 'should allow a non-blacklisted user to be created' do + it 'allows a non-blacklisted user to be created' do user = User.new(email: 'foo@example.com', account: account, password: password, agreement: true) expect(user.valid?).to be_truthy end - it 'should not allow a blacklisted user to be created' do + it 'does not allow a blacklisted user to be created' do user = User.new(email: 'foo@mvrht.com', account: account, password: password, agreement: true) expect(user.valid?).to be_falsey end - it 'should not allow a subdomain blacklisted user to be created' do + it 'does not allow a subdomain blacklisted user to be created' do user = User.new(email: 'foo@mvrht.com.topdomain.tld', account: account, password: password, agreement: true) expect(user.valid?).to be_falsey @@ -346,17 +346,17 @@ RSpec.describe User, type: :model do Rails.configuration.x.email_domains_whitelist = old_whitelist end - it 'should not allow a user to be created unless they are whitelisted' do + it 'does not allow a user to be created unless they are whitelisted' do user = User.new(email: 'foo@example.com', account: account, password: password, agreement: true) expect(user.valid?).to be_falsey end - it 'should allow a user to be created if they are whitelisted' do + it 'allows a user to be created if they are whitelisted' do user = User.new(email: 'foo@mastodon.space', account: account, password: password, agreement: true) expect(user.valid?).to be_truthy end - it 'should not allow a user with a whitelisted top domain as subdomain in their email address to be created' do + it 'does not allow a user with a whitelisted top domain as subdomain in their email address to be created' do user = User.new(email: 'foo@mastodon.space.userdomain.com', account: account, password: password, agreement: true) expect(user.valid?).to be_falsey end @@ -368,7 +368,7 @@ RSpec.describe User, type: :model do Rails.configuration.x.email_domains_blacklist = old_blacklist end - it 'should not allow a user to be created with a specific blacklisted subdomain even if the top domain is whitelisted' do + it 'does not allow a user to be created with a specific blacklisted subdomain even if the top domain is whitelisted' do Rails.configuration.x.email_domains_blacklist = 'blacklisted.mastodon.space' user = User.new(email: 'foo@blacklisted.mastodon.space', account: account, password: password) From 7a941b42d399e571bce8782b7a2e31cb49214a8e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:26:41 -0500 Subject: [PATCH 0448/1220] Remove Style/Copyright Rubocop (#23665) --- .rubocop.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index eb3fcba43a..3783ccf48a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -94,10 +94,6 @@ Rails/Exit: - 'lib/mastodon/cli_helper.rb' - 'lib/cli.rb' -Style/Copyright: - Enabled: false - AutocorrectNotice: - Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys From efd424506accea3ddc21ff77a3ca5b7946e00211 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:32:57 -0500 Subject: [PATCH 0449/1220] Autofix Rubocop Style/RedundantPercentQ (#23651) --- .rubocop_todo.yml | 13 ------------- spec/lib/text_formatter_spec.rb | 4 ++-- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b296c810e9..c785dccd68 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3113,13 +3113,6 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: PreferredDelimiters. -Style/PercentLiteralDelimiters: - Exclude: - - 'spec/lib/text_formatter_spec.rb' - # Offense count: 2 # This cop supports safe autocorrection (--autocorrect). Style/PerlBackrefs: @@ -3224,12 +3217,6 @@ Style/RedundantConstantBase: - 'lib/tasks/statistics.rake' - 'spec/rails_helper.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -Style/RedundantPercentQ: - Exclude: - - 'spec/lib/text_formatter_spec.rb' - # Offense count: 16 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb index 52a9d24988..d4a3a6b594 100644 --- a/spec/lib/text_formatter_spec.rb +++ b/spec/lib/text_formatter_spec.rb @@ -223,7 +223,7 @@ RSpec.describe TextFormatter do end context 'given a URL containing unsafe code (XSS attack, visible part)' do - let(:text) { %q{http://example.com/bb} } + let(:text) { 'http://example.com/bb' } it 'does not include the HTML in the URL' do is_expected.to include '"http://example.com/b"' @@ -235,7 +235,7 @@ RSpec.describe TextFormatter do end context 'given a URL containing unsafe code (XSS attack, invisible part)' do - let(:text) { %q{http://example.com/blahblahblahblah/a} } + let(:text) { 'http://example.com/blahblahblahblah/a' } it 'does not include the HTML in the URL' do is_expected.to include '"http://example.com/blahblahblahblah/a"' From e5cf23cf3a45cee0abe2e3ad4de1b8c03bcb6f73 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 21:59:57 -0500 Subject: [PATCH 0450/1220] Enable Rubocop RSpec/HooksBeforeExamples (#23668) --- .rubocop_todo.yml | 6 ------ spec/services/fetch_resource_service_spec.rb | 6 +----- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c785dccd68..91d6004979 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1028,12 +1028,6 @@ RSpec/HookArgument: - 'spec/services/import_service_spec.rb' - 'spec/spec_helper.rb' -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -RSpec/HooksBeforeExamples: - Exclude: - - 'spec/services/fetch_resource_service_spec.rb' - # Offense count: 159 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 0c0c306fe1..8cd4a3bfb5 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -62,6 +62,7 @@ RSpec.describe FetchResourceService, type: :service do before do stub_request(:get, url).to_return(status: 200, body: body, headers: headers) + stub_request(:get, 'http://example.com/foo').to_return(status: 200, body: json, headers: { 'Content-Type' => 'application/activity+json' }) end it 'signs request' do @@ -89,11 +90,6 @@ RSpec.describe FetchResourceService, type: :service do it { is_expected.to eq [1, { prefetched_body: body, id: true }] } end - before do - stub_request(:get, url).to_return(status: 200, body: body, headers: headers) - stub_request(:get, 'http://example.com/foo').to_return(status: 200, body: json, headers: { 'Content-Type' => 'application/activity+json' }) - end - context 'when link header is present' do let(:headers) { { 'Link' => '; rel="alternate"; type="application/activity+json"', } } From a7db0b41cdb2e7ab50e638ec546b2c5dd2d633c7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 22:00:05 -0500 Subject: [PATCH 0451/1220] Autofix Rubocop Lint/ParenthesesAsGroupedExpression (#23682) --- .rubocop_todo.yml | 9 --------- .../controllers/api/v1/admin/accounts_controller_spec.rb | 2 +- .../controllers/api/v2/admin/accounts_controller_spec.rb | 2 +- spec/lib/activitypub/activity/flag_spec.rb | 2 +- spec/models/import_spec.rb | 6 +++--- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 91d6004979..5319d6ace1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -289,15 +289,6 @@ Lint/OrAssignmentToConstant: Exclude: - 'lib/sanitize_ext/sanitize_config.rb' -# Offense count: 6 -# This cop supports safe autocorrection (--autocorrect). -Lint/ParenthesesAsGroupedExpression: - Exclude: - - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' - - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' - - 'spec/lib/activitypub/activity/flag_spec.rb' - - 'spec/models/import_spec.rb' - # Offense count: 3 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb index 8d35b86cb2..a4c509c601 100644 --- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb @@ -65,7 +65,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do it "returns the correct accounts (#{expected_results.inspect})" do json = body_as_json - expect(json.map { |a| a[:id].to_i }).to eq (expected_results.map { |symbol| send(symbol).id }) + expect(json.map { |a| a[:id].to_i }).to eq(expected_results.map { |symbol| send(symbol).id }) end end end diff --git a/spec/controllers/api/v2/admin/accounts_controller_spec.rb b/spec/controllers/api/v2/admin/accounts_controller_spec.rb index 2508a9e055..1477049a1e 100644 --- a/spec/controllers/api/v2/admin/accounts_controller_spec.rb +++ b/spec/controllers/api/v2/admin/accounts_controller_spec.rb @@ -65,7 +65,7 @@ RSpec.describe Api::V2::Admin::AccountsController, type: :controller do it "returns the correct accounts (#{expected_results.inspect})" do json = body_as_json - expect(json.map { |a| a[:id].to_i }).to eq (expected_results.map { |symbol| send(symbol).id }) + expect(json.map { |a| a[:id].to_i }).to eq(expected_results.map { |symbol| send(symbol).id }) end end end diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb index 2f2d138767..7890fd1e8c 100644 --- a/spec/lib/activitypub/activity/flag_spec.rb +++ b/spec/lib/activitypub/activity/flag_spec.rb @@ -110,7 +110,7 @@ RSpec.describe ActivityPub::Activity::Flag do describe '#perform with a defined uri' do subject { described_class.new(json, sender) } - let (:flag_id) { 'http://example.com/reports/1' } + let(:flag_id) { 'http://example.com/reports/1' } before do subject.perform diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index a5eec17226..4280b3237a 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -1,9 +1,9 @@ require 'rails_helper' RSpec.describe Import, type: :model do - let (:account) { Fabricate(:account) } - let (:type) { 'following' } - let (:data) { attachment_fixture('imports.txt') } + let(:account) { Fabricate(:account) } + let(:type) { 'following' } + let(:data) { attachment_fixture('imports.txt') } describe 'validations' do it 'has a valid parameters' do From e4f37fad98778b95738a771f720ca0b0eeb6cee8 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 22:25:31 -0500 Subject: [PATCH 0452/1220] Only run latest for PR Rebase job (#23688) --- .github/workflows/rebase-needed.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index 6f903ee610..553f6c3290 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -8,6 +8,11 @@ on: jobs: label-rebase-needed: runs-on: ubuntu-latest + + concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + steps: - name: Check for merge conflicts uses: eps1lon/actions-label-merge-conflict@releases/2.x From d65b2c1924d8ff63c6e8c1b79d678e78e9126df9 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 22:30:03 -0500 Subject: [PATCH 0453/1220] Apply Rubocop Style/RedundantConstantBase (#23463) --- .rubocop_todo.yml | 8 -------- config.ru | 2 +- lib/tasks/statistics.rake | 2 +- spec/rails_helper.rb | 2 +- 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 5319d6ace1..5235706074 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3194,14 +3194,6 @@ Style/RedundantBegin: - 'lib/sanitize_ext/sanitize_config.rb' - 'lib/tasks/db.rake' -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -Style/RedundantConstantBase: - Exclude: - - 'config.ru' - - 'lib/tasks/statistics.rake' - - 'spec/rails_helper.rb' - # Offense count: 16 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: diff --git a/config.ru b/config.ru index d7295e4767..5e071f530f 100644 --- a/config.ru +++ b/config.ru @@ -1,5 +1,5 @@ # frozen_string_literal: true # This file is used by Rack-based servers to start the application. -require ::File.expand_path('config/environment', __dir__) +require File.expand_path('config/environment', __dir__) run Rails.application diff --git a/lib/tasks/statistics.rake b/lib/tasks/statistics.rake index 82f2b54162..440c309ce3 100644 --- a/lib/tasks/statistics.rake +++ b/lib/tasks/statistics.rake @@ -13,7 +13,7 @@ namespace :mastodon do %w(Validators app/validators), %w(Workers app/workers), ].each do |name, dir| - ::STATS_DIRECTORIES << [name, Rails.root.join(dir)] + STATS_DIRECTORIES << [name, Rails.root.join(dir)] end end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c197bc0075..20e48b9a39 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -33,7 +33,7 @@ Devise::Test::ControllerHelpers.module_eval do end RSpec.configure do |config| - config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_path = "#{Rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.order = 'random' config.infer_spec_type_from_file_location! From e2567df86063b537e4a3ab2afd5c28a54140f720 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 22:30:14 -0500 Subject: [PATCH 0454/1220] Enable Lint/RedundantCopDisableDirective (#23687) --- .rubocop_todo.yml | 4 ---- app/serializers/initial_state_serializer.rb | 1 - lib/mastodon/migration_helpers.rb | 4 +--- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 5235706074..68d3f2bd7d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3626,7 +3626,3 @@ Style/WordArray: - 'spec/services/activitypub/process_account_service_spec.rb' - 'spec/services/delete_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - -# don't clean out the manual directives overridden by generated file -Lint/RedundantCopDisableDirective: - Enabled: false diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 24417bca77..95b28fa15f 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -10,7 +10,6 @@ class InitialStateSerializer < ActiveModel::Serializer has_one :push_subscription, serializer: REST::WebPushSubscriptionSerializer has_one :role, serializer: REST::RoleSerializer - # rubocop:disable Metrics/AbcSize def meta store = { streaming_api_base_url: Rails.configuration.x.streaming_api_base_url, diff --git a/lib/mastodon/migration_helpers.rb b/lib/mastodon/migration_helpers.rb index 2ab8150ec9..5a252b3512 100644 --- a/lib/mastodon/migration_helpers.rb +++ b/lib/mastodon/migration_helpers.rb @@ -289,8 +289,6 @@ module Mastodon # determines this method to be too complex while there's no way to make it # less "complex" without introducing extra methods (which actually will # make things _more_ complex). - # - # rubocop: disable Metrics/AbcSize def update_column_in_batches(table_name, column, value) if transaction_open? raise 'update_column_in_batches can not be run inside a transaction, ' \ @@ -573,7 +571,7 @@ module Mastodon o.conname as name, o.confdeltype as on_delete from pg_constraint o - left join pg_class f on f.oid = o.confrelid + left join pg_class f on f.oid = o.confrelid left join pg_class c on c.oid = o.conrelid left join pg_class m on m.oid = o.conrelid where o.contype = 'f' From a6f77aa28ae805e89b0a38c468b7193050174df4 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Feb 2023 22:30:23 -0500 Subject: [PATCH 0455/1220] Autofix Rubocop Lint/AmbiguousOperatorPrecedence (#23681) --- .rubocop_todo.yml | 11 ---------- .../concerns/rate_limit_headers.rb | 2 +- app/lib/rate_limiter.rb | 2 +- app/models/system_key.rb | 2 +- app/models/webauthn_credential.rb | 2 +- app/workers/concerns/exponential_backoff.rb | 2 +- lib/paperclip/color_extractor.rb | 22 +++++++++---------- 7 files changed, 16 insertions(+), 27 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 68d3f2bd7d..0fe77521d9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -183,17 +183,6 @@ Lint/AmbiguousBlockAssociation: - 'spec/services/unsuspend_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 17 -# This cop supports safe autocorrection (--autocorrect). -Lint/AmbiguousOperatorPrecedence: - Exclude: - - 'app/controllers/concerns/rate_limit_headers.rb' - - 'app/lib/rate_limiter.rb' - - 'app/models/system_key.rb' - - 'app/models/webauthn_credential.rb' - - 'app/workers/concerns/exponential_backoff.rb' - - 'lib/paperclip/color_extractor.rb' - # Offense count: 15 # Configuration parameters: AllowedMethods. # AllowedMethods: enums diff --git a/app/controllers/concerns/rate_limit_headers.rb b/app/controllers/concerns/rate_limit_headers.rb index b8696df736..b21abfb033 100644 --- a/app/controllers/concerns/rate_limit_headers.rb +++ b/app/controllers/concerns/rate_limit_headers.rb @@ -67,6 +67,6 @@ module RateLimitHeaders end def reset_period_offset - api_throttle_data[:period] - request_time.to_i % api_throttle_data[:period] + api_throttle_data[:period] - (request_time.to_i % api_throttle_data[:period]) end end diff --git a/app/lib/rate_limiter.rb b/app/lib/rate_limiter.rb index 0e2c9a8943..4a0b35b081 100644 --- a/app/lib/rate_limiter.rb +++ b/app/lib/rate_limiter.rb @@ -48,7 +48,7 @@ class RateLimiter { 'X-RateLimit-Limit' => @limit.to_s, 'X-RateLimit-Remaining' => (@limit - (redis.get(key) || 0).to_i).to_s, - 'X-RateLimit-Reset' => (now + (@period - now.to_i % @period)).iso8601(6), + 'X-RateLimit-Reset' => (now + (@period - (now.to_i % @period))).iso8601(6), } end diff --git a/app/models/system_key.rb b/app/models/system_key.rb index f17db7c2d0..1be399dd68 100644 --- a/app/models/system_key.rb +++ b/app/models/system_key.rb @@ -14,7 +14,7 @@ class SystemKey < ApplicationRecord before_validation :set_key - scope :expired, ->(now = Time.now.utc) { where(arel_table[:created_at].lt(now - ROTATION_PERIOD * 3)) } + scope :expired, ->(now = Time.now.utc) { where(arel_table[:created_at].lt(now - (ROTATION_PERIOD * 3))) } class << self def current_key diff --git a/app/models/webauthn_credential.rb b/app/models/webauthn_credential.rb index 7d423e38d7..48abfc1d45 100644 --- a/app/models/webauthn_credential.rb +++ b/app/models/webauthn_credential.rb @@ -18,5 +18,5 @@ class WebauthnCredential < ApplicationRecord validates :external_id, uniqueness: true validates :nickname, uniqueness: { scope: :user_id } validates :sign_count, - numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: 2**63 - 1 } + numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: (2**63) - 1 } end diff --git a/app/workers/concerns/exponential_backoff.rb b/app/workers/concerns/exponential_backoff.rb index f2b931e331..7626b21519 100644 --- a/app/workers/concerns/exponential_backoff.rb +++ b/app/workers/concerns/exponential_backoff.rb @@ -5,7 +5,7 @@ module ExponentialBackoff included do sidekiq_retry_in do |count| - 15 + 10 * (count**4) + rand(10 * (count**4)) + 15 + (10 * (count**4)) + rand(10 * (count**4)) end end end diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb index d3b8e10229..d8a042c90f 100644 --- a/lib/paperclip/color_extractor.rb +++ b/lib/paperclip/color_extractor.rb @@ -79,8 +79,8 @@ module Paperclip private def w3c_contrast(color1, color2) - luminance1 = color1.to_xyz.y * 0.01 + 0.05 - luminance2 = color2.to_xyz.y * 0.01 + 0.05 + luminance1 = (color1.to_xyz.y * 0.01) + 0.05 + luminance2 = (color2.to_xyz.y * 0.01) + 0.05 if luminance1 > luminance2 luminance1 / luminance2 @@ -109,11 +109,11 @@ module Paperclip case max when r - h = (g - b) / d + (g < b ? 6.0 : 0) + h = ((g - b) / d) + (g < b ? 6.0 : 0) when g - h = (b - r) / d + 2.0 + h = ((b - r) / d) + 2.0 when b - h = (r - g) / d + 4.0 + h = ((r - g) / d) + 4.0 end h /= 6.0 @@ -126,9 +126,9 @@ module Paperclip t += 1 if t.negative? t -= 1 if t > 1 - return (p + (q - p) * 6 * t) if t < 1 / 6.0 + return (p + ((q - p) * 6 * t)) if t < 1 / 6.0 return q if t < 1 / 2.0 - return (p + (q - p) * (2 / 3.0 - t) * 6) if t < 2 / 3.0 + return (p + ((q - p) * ((2 / 3.0) - t) * 6)) if t < 2 / 3.0 p end @@ -147,11 +147,11 @@ module Paperclip g = l.to_f b = l.to_f # achromatic else - q = l < 0.5 ? l * (s + 1) : l + s - l * s - p = 2 * l - q - r = hue_to_rgb(p, q, h + 1 / 3.0) + q = l < 0.5 ? l * (s + 1) : l + s - (l * s) + p = (2 * l) - q + r = hue_to_rgb(p, q, h + (1 / 3.0)) g = hue_to_rgb(p, q, h) - b = hue_to_rgb(p, q, h - 1 / 3.0) + b = hue_to_rgb(p, q, h - (1 / 3.0)) end [(r * 255).round, (g * 255).round, (b * 255).round] From 8aee4de034a115ec85b3ef2b68ea1c35d9130139 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 00:20:20 -0500 Subject: [PATCH 0456/1220] Autofix Rubocop Style/PerlBackrefs (#23649) --- .rubocop_todo.yml | 6 ------ app/lib/extractor.rb | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0fe77521d9..9a9c420df7 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3087,12 +3087,6 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -Style/PerlBackrefs: - Exclude: - - 'app/lib/extractor.rb' - # Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. diff --git a/app/lib/extractor.rb b/app/lib/extractor.rb index ead4cdddde..1eba689ef1 100644 --- a/app/lib/extractor.rb +++ b/app/lib/extractor.rb @@ -29,7 +29,7 @@ module Extractor text.scan(Account::MENTION_RE) do |screen_name, _| match_data = $LAST_MATCH_INFO - after = $' + after = ::Regexp.last_match.post_match unless Twitter::TwitterText::Regex[:end_mention_match].match?(after) _, domain = screen_name.split('@') @@ -64,7 +64,7 @@ module Extractor match_data = $LAST_MATCH_INFO start_position = match_data.char_begin(1) - 1 end_position = match_data.char_end(1) - after = $' + after = ::Regexp.last_match.post_match if %r{\A://}.match?(after) hash_text.match(/(.+)(https?\Z)/) do |matched| From 49b9ef0c1e5190990784b0515962945f10791203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Feb 2023 14:21:10 +0900 Subject: [PATCH 0457/1220] Bump oj from 3.13.23 to 3.14.2 (#23560) 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 2ff32b6993..0fca82cea3 100644 --- a/Gemfile +++ b/Gemfile @@ -62,7 +62,7 @@ gem 'link_header', '~> 0.0' gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar' gem 'nokogiri', '~> 1.14' gem 'nsa', '~> 0.2' -gem 'oj', '~> 3.13' +gem 'oj', '~> 3.14' gem 'ox', '~> 2.14' gem 'parslet' gem 'posix-spawn' diff --git a/Gemfile.lock b/Gemfile.lock index b28525bf45..6e4c4cdc3e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -444,7 +444,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.13.23) + oj (3.14.2) omniauth (1.9.2) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) @@ -836,7 +836,7 @@ DEPENDENCIES net-ldap (~> 0.17) nokogiri (~> 1.14) nsa (~> 0.2) - oj (~> 3.13) + oj (~> 3.14) omniauth (~> 1.9) omniauth-cas (~> 2.0) omniauth-rails_csrf_protection (~> 0.1) From 9ab2a775c9a832fe6320f95e5b405feb93f9eaf3 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 00:56:16 -0500 Subject: [PATCH 0458/1220] Set CI concurrency at the job level (#23689) --- .github/workflows/build-image.yml | 2 +- .github/workflows/rebase-needed.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 9962bbde62..c567cd9c3a 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest concurrency: - group: ${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index 553f6c3290..a5899e0f08 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest concurrency: - group: ${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: From 2be88d1930433f55e5ae17174f3711cefb3d5158 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 18 Feb 2023 11:16:30 +0100 Subject: [PATCH 0459/1220] New Crowdin updates (#2111) * New translations en.json (Korean) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.json (Portuguese) [ci skip] * Fix root key name in pt-PT translation file * Fix normalization issue with ES translation * Fix issue with `no` locale in glitch-soc --- .../flavours/glitch/locales/ko.json | 2 +- .../flavours/glitch/locales/pt-BR.json | 2 +- .../flavours/glitch/locales/pt-PT.json | 19 +++++++++++++++++++ config/locales-glitch/es.yml | 4 ++-- config/locales-glitch/no.yml | 3 ++- config/locales-glitch/pt-PT.yml | 17 ++++++++++++++++- config/locales-glitch/simple_form.no.yml | 3 ++- 7 files changed, 43 insertions(+), 7 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json index 045a3894b5..ceaccf8b41 100644 --- a/app/javascript/flavours/glitch/locales/ko.json +++ b/app/javascript/flavours/glitch/locales/ko.json @@ -103,7 +103,7 @@ "settings.auto_collapse_all": "모두", "settings.auto_collapse_lengthy": "긴 글", "settings.auto_collapse_media": "미디어 포함 글", - "settings.auto_collapse_height": "길이가 긴 것으로 간주할 툿이 높이 (픽셀 단위)", + "settings.auto_collapse_height": "길이가 긴 것으로 간주할 툿의 높이 (픽셀 단위)", "settings.auto_collapse_notifications": "알림", "settings.auto_collapse_reblogs": "부스트", "settings.auto_collapse_replies": "답글", diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json index f658d3bdc8..c739478196 100644 --- a/app/javascript/flavours/glitch/locales/pt-BR.json +++ b/app/javascript/flavours/glitch/locales/pt-BR.json @@ -2,7 +2,7 @@ "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.follows": "Segue", "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", diff --git a/app/javascript/flavours/glitch/locales/pt-PT.json b/app/javascript/flavours/glitch/locales/pt-PT.json index 4d243f94c2..fc3cdc6218 100644 --- a/app/javascript/flavours/glitch/locales/pt-PT.json +++ b/app/javascript/flavours/glitch/locales/pt-PT.json @@ -1,4 +1,23 @@ { + "about.fork_disclaimer": "O Glitch-soc é um software livre de código aberto, derivado (fork) do Mastodon.", + "account.add_account_note": "Juntar uma nota sobre @{name}", + "account.disclaimer_full": "As informações abaixo podem não refletir completamente o perfil do utilizador.", + "account.follows": "A seguir", + "account.joined": "Juntou-se em {date}", + "account.suspended_disclaimer_full": "Este utilizador foi suspenso por um elemento da moderação.", + "account.view_full_profile": "Ver o perfil completo", + "account_note.cancel": "Cancelar", + "account_note.edit": "Editar", + "account_note.glitch_placeholder": "Nenhum comentário dado", + "account_note.save": "Gravar", + "advanced_options.icon_title": "Opções avançadas", + "advanced_options.local-only.long": "Não publicar noutras instâncias", + "advanced_options.local-only.short": "Apenas local", + "advanced_options.local-only.tooltip": "Este post é apenas local", + "advanced_options.threaded_mode.long": "Abrir automaticamente uma resposta ao publicar", + "advanced_options.threaded_mode.short": "Modo de fio", + "advanced_options.threaded_mode.tooltip": "Modo de fio ativado", + "boost_modal.missing_description": "Este post contém alguns media sem descrição", "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.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}.", "settings.content_warnings": "Content warnings", diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index f7f068faa0..c03cea6c6f 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -2,8 +2,8 @@ es: admin: custom_emojis: - batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}' - batch_error: 'Ocurrió un error %{message}' + batch_copy_error: Se produjo un error cuando se copian algunos emojis seleccionados %{message} + batch_error: Ocurrió un error %{message} settings: hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix diff --git a/config/locales-glitch/no.yml b/config/locales-glitch/no.yml index d2a4697e5d..1dcec34b6e 100644 --- a/config/locales-glitch/no.yml +++ b/config/locales-glitch/no.yml @@ -1 +1,2 @@ -no: +--- +'no': diff --git a/config/locales-glitch/pt-PT.yml b/config/locales-glitch/pt-PT.yml index 6af5de0a74..18e41a0564 100644 --- a/config/locales-glitch/pt-PT.yml +++ b/config/locales-glitch/pt-PT.yml @@ -1,5 +1,5 @@ --- -pt: +pt-PT: admin: custom_emojis: batch_copy_error: 'Houve um erro ao copiar alguns dos emoji selecionados: %{message}' @@ -25,3 +25,18 @@ pt: show_replies_in_public_timelines: desc_html: Além de auto-respostas públicas (fios), mostrar as respostas públicas em linhas de tempo locais e públicas. title: Mostrar respostas nas linhas de tempo públicas + trending_status_cw: + desc_html: Quando os posts em tendência estão ativados, permitir que posts com Avisos de Conteúdo também possam aparecer. As alterações nesta opção não são retroativas. + title: Permitir que posts com Avisos de Conteúdo possam aparecer nos posts em tendência + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: E também para o glitch-soc! + auth: + captcha_confirmation: + hint_html: Só mais um passo! Para confirmares a tua conta, este servidor exige que resolvas um CAPTCHA. Podes entrar em contacto com o administrador do servidor se tiveres dúvidas ou precisares de ajuda. + title: Verificação + generic: + use_this: Usar isto + settings: + flavours: Sabores diff --git a/config/locales-glitch/simple_form.no.yml b/config/locales-glitch/simple_form.no.yml index d2a4697e5d..1dcec34b6e 100644 --- a/config/locales-glitch/simple_form.no.yml +++ b/config/locales-glitch/simple_form.no.yml @@ -1 +1,2 @@ -no: +--- +'no': From e2a3ebb271017d800a448ad3ef3e8324ac1fab3b Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:37:47 -0500 Subject: [PATCH 0460/1220] Autofix Rubocop Style/IfUnlessModifier (#23697) --- .rubocop_todo.yml | 106 ------------------ .../admin/domain_blocks_controller.rb | 4 +- .../accounts/follower_accounts_controller.rb | 8 +- .../accounts/following_accounts_controller.rb | 8 +- .../api/v1/accounts/statuses_controller.rb | 8 +- .../api/v1/admin/accounts_controller.rb | 4 +- app/controllers/api/v1/blocks_controller.rb | 8 +- .../api/v1/conversations_controller.rb | 8 +- .../api/v1/domain_blocks_controller.rb | 8 +- .../api/v1/endorsements_controller.rb | 8 +- .../api/v1/favourites_controller.rb | 8 +- .../api/v1/follow_requests_controller.rb | 8 +- .../api/v1/lists/accounts_controller.rb | 8 +- app/controllers/api/v1/mutes_controller.rb | 8 +- .../api/v1/notifications_controller.rb | 8 +- .../api/v1/scheduled_statuses_controller.rb | 8 +- .../favourited_by_accounts_controller.rb | 8 +- .../reblogged_by_accounts_controller.rb | 8 +- .../api/v2/admin/accounts_controller.rb | 4 +- .../auth/registrations_controller.rb | 4 +- app/controllers/auth/sessions_controller.rb | 4 +- .../filters/statuses_controller.rb | 4 +- app/helpers/application_helper.rb | 4 +- app/lib/activitypub/linked_data_signature.rb | 4 +- .../parser/media_attachment_parser.rb | 4 +- app/lib/status_finder.rb | 4 +- app/models/account.rb | 4 +- app/models/account_statuses_cleanup_policy.rb | 8 +- app/models/concerns/account_interactions.rb | 4 +- app/models/concerns/omniauthable.rb | 4 +- app/serializers/initial_state_serializer.rb | 4 +- app/serializers/rest/instance_serializer.rb | 4 +- .../activitypub/fetch_remote_actor_service.rb | 4 +- .../process_status_update_service.rb | 4 +- app/services/remove_from_followers_service.rb | 4 +- app/services/resolve_account_service.rb | 4 +- app/services/search_service.rb | 4 +- lib/mastodon/media_cli.rb | 4 +- lib/mastodon/redis_config.rb | 4 +- .../model/model_have_error_on_field.rb | 4 +- 40 files changed, 55 insertions(+), 271 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9a9c420df7..0e94741ae3 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2921,112 +2921,6 @@ Style/HashTransformValues: - 'app/serializers/rest/web_push_subscription_serializer.rb' - 'app/services/import_service.rb' -# Offense count: 176 -# This cop supports safe autocorrection (--autocorrect). -Style/IfUnlessModifier: - Exclude: - - 'app/controllers/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/statuses_controller.rb' - - 'app/controllers/api/v1/admin/accounts_controller.rb' - - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/blocks_controller.rb' - - 'app/controllers/api/v1/conversations_controller.rb' - - 'app/controllers/api/v1/domain_blocks_controller.rb' - - 'app/controllers/api/v1/emails/confirmations_controller.rb' - - 'app/controllers/api/v1/endorsements_controller.rb' - - 'app/controllers/api/v1/favourites_controller.rb' - - 'app/controllers/api/v1/filters_controller.rb' - - 'app/controllers/api/v1/follow_requests_controller.rb' - - 'app/controllers/api/v1/lists/accounts_controller.rb' - - 'app/controllers/api/v1/mutes_controller.rb' - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/api/v1/scheduled_statuses_controller.rb' - - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' - - 'app/controllers/api/v1/trends/links_controller.rb' - - 'app/controllers/api/v1/trends/statuses_controller.rb' - - 'app/controllers/api/v1/trends/tags_controller.rb' - - 'app/controllers/api/v2/admin/accounts_controller.rb' - - 'app/controllers/api/v2/search_controller.rb' - - 'app/controllers/auth/registrations_controller.rb' - - 'app/controllers/auth/sessions_controller.rb' - - 'app/controllers/concerns/localized.rb' - - 'app/controllers/concerns/rate_limit_headers.rb' - - 'app/controllers/concerns/signature_verification.rb' - - 'app/controllers/filters/statuses_controller.rb' - - 'app/helpers/application_helper.rb' - - 'app/helpers/jsonld_helper.rb' - - 'app/lib/activitypub/activity/announce.rb' - - 'app/lib/activitypub/activity/create.rb' - - 'app/lib/activitypub/activity/like.rb' - - 'app/lib/activitypub/linked_data_signature.rb' - - 'app/lib/activitypub/parser/media_attachment_parser.rb' - - 'app/lib/feed_manager.rb' - - 'app/lib/status_cache_hydrator.rb' - - 'app/lib/status_finder.rb' - - 'app/models/account.rb' - - 'app/models/account_migration.rb' - - 'app/models/account_statuses_cleanup_policy.rb' - - 'app/models/admin/import.rb' - - 'app/models/admin/status_batch_action.rb' - - 'app/models/concerns/account_avatar.rb' - - 'app/models/concerns/account_counters.rb' - - 'app/models/concerns/account_header.rb' - - 'app/models/concerns/account_interactions.rb' - - 'app/models/concerns/attachmentable.rb' - - 'app/models/concerns/ldap_authenticable.rb' - - 'app/models/concerns/omniauthable.rb' - - 'app/models/form/redirect.rb' - - 'app/models/media_attachment.rb' - - 'app/models/scheduled_status.rb' - - 'app/models/status.rb' - - 'app/models/trends.rb' - - 'app/models/trends/links.rb' - - 'app/models/trends/statuses.rb' - - 'app/models/user_role.rb' - - 'app/presenters/status_relationships_presenter.rb' - - 'app/serializers/initial_state_serializer.rb' - - 'app/serializers/rest/instance_serializer.rb' - - 'app/services/activitypub/fetch_remote_actor_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/activitypub/prepare_followers_synchronization_service.rb' - - 'app/services/activitypub/process_status_update_service.rb' - - 'app/services/block_domain_service.rb' - - 'app/services/fetch_link_card_service.rb' - - 'app/services/fetch_resource_service.rb' - - 'app/services/notify_service.rb' - - 'app/services/post_status_service.rb' - - 'app/services/remove_from_followers_service.rb' - - 'app/services/report_service.rb' - - 'app/services/resolve_account_service.rb' - - 'app/services/search_service.rb' - - 'app/services/unblock_domain_service.rb' - - 'app/services/update_status_service.rb' - - 'app/validators/disallowed_hashtags_validator.rb' - - 'app/validators/existing_username_validator.rb' - - 'app/validators/follow_limit_validator.rb' - - 'app/validators/import_validator.rb' - - 'app/validators/note_length_validator.rb' - - 'app/validators/poll_validator.rb' - - 'app/validators/reaction_validator.rb' - - 'app/validators/registration_form_time_validator.rb' - - 'app/workers/activitypub/delivery_worker.rb' - - 'app/workers/move_worker.rb' - - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' - - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' - - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' - - 'lib/cli.rb' - - 'lib/mastodon/accounts_cli.rb' - - 'lib/mastodon/domains_cli.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'lib/mastodon/media_cli.rb' - - 'lib/mastodon/redis_config.rb' - - 'lib/mastodon/statuses_cli.rb' - - 'spec/support/matchers/model/model_have_error_on_field.rb' - # Offense count: 3 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: InverseMethods, InverseBlocks. diff --git a/app/controllers/admin/domain_blocks_controller.rb b/app/controllers/admin/domain_blocks_controller.rb index 74764640b8..060db11bbd 100644 --- a/app/controllers/admin/domain_blocks_controller.rb +++ b/app/controllers/admin/domain_blocks_controller.rb @@ -90,9 +90,7 @@ module Admin end def action_from_button - if params[:save] - 'save' - end + 'save' if params[:save] end end end diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index b61de13b91..68952de893 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -45,15 +45,11 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController end def next_path - if records_continue? - api_v1_account_followers_url pagination_params(max_id: pagination_max_id) - end + api_v1_account_followers_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @accounts.empty? - api_v1_account_followers_url pagination_params(since_id: pagination_since_id) - end + api_v1_account_followers_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index 37d3c2d783..0a4d2ae7b3 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -45,15 +45,11 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController end def next_path - if records_continue? - api_v1_account_following_index_url pagination_params(max_id: pagination_max_id) - end + api_v1_account_following_index_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @accounts.empty? - api_v1_account_following_index_url pagination_params(since_id: pagination_since_id) - end + api_v1_account_following_index_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/accounts/statuses_controller.rb b/app/controllers/api/v1/accounts/statuses_controller.rb index 38c9f5a20d..7ed48cf658 100644 --- a/app/controllers/api/v1/accounts/statuses_controller.rb +++ b/app/controllers/api/v1/accounts/statuses_controller.rb @@ -39,15 +39,11 @@ class Api::V1::Accounts::StatusesController < Api::BaseController end def next_path - if records_continue? - api_v1_account_statuses_url pagination_params(max_id: pagination_max_id) - end + api_v1_account_statuses_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @statuses.empty? - api_v1_account_statuses_url pagination_params(min_id: pagination_since_id) - end + api_v1_account_statuses_url pagination_params(min_id: pagination_since_id) unless @statuses.empty? end def records_continue? diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb index f483000728..ff9cae6398 100644 --- a/app/controllers/api/v1/admin/accounts_controller.rb +++ b/app/controllers/api/v1/admin/accounts_controller.rb @@ -120,9 +120,7 @@ class Api::V1::Admin::AccountsController < Api::BaseController translated_params[:status] = status.to_s if params[status].present? end - if params[:staff].present? - translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) - end + translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) if params[:staff].present? translated_params end diff --git a/app/controllers/api/v1/blocks_controller.rb b/app/controllers/api/v1/blocks_controller.rb index a65e762c9f..06a8bfa891 100644 --- a/app/controllers/api/v1/blocks_controller.rb +++ b/app/controllers/api/v1/blocks_controller.rb @@ -33,15 +33,11 @@ class Api::V1::BlocksController < Api::BaseController end def next_path - if records_continue? - api_v1_blocks_url pagination_params(max_id: pagination_max_id) - end + api_v1_blocks_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless paginated_blocks.empty? - api_v1_blocks_url pagination_params(since_id: pagination_since_id) - end + api_v1_blocks_url pagination_params(since_id: pagination_since_id) unless paginated_blocks.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/conversations_controller.rb b/app/controllers/api/v1/conversations_controller.rb index 6c75834037..9034e8a2f4 100644 --- a/app/controllers/api/v1/conversations_controller.rb +++ b/app/controllers/api/v1/conversations_controller.rb @@ -40,15 +40,11 @@ class Api::V1::ConversationsController < Api::BaseController end def next_path - if records_continue? - api_v1_conversations_url pagination_params(max_id: pagination_max_id) - end + api_v1_conversations_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @conversations.empty? - api_v1_conversations_url pagination_params(min_id: pagination_since_id) - end + api_v1_conversations_url pagination_params(min_id: pagination_since_id) unless @conversations.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/domain_blocks_controller.rb b/app/controllers/api/v1/domain_blocks_controller.rb index 1891261b9c..34def3c44a 100644 --- a/app/controllers/api/v1/domain_blocks_controller.rb +++ b/app/controllers/api/v1/domain_blocks_controller.rb @@ -43,15 +43,11 @@ class Api::V1::DomainBlocksController < Api::BaseController end def next_path - if records_continue? - api_v1_domain_blocks_url pagination_params(max_id: pagination_max_id) - end + api_v1_domain_blocks_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @blocks.empty? - api_v1_domain_blocks_url pagination_params(since_id: pagination_since_id) - end + api_v1_domain_blocks_url pagination_params(since_id: pagination_since_id) unless @blocks.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/endorsements_controller.rb b/app/controllers/api/v1/endorsements_controller.rb index 9e80f468a7..46e3fcd647 100644 --- a/app/controllers/api/v1/endorsements_controller.rb +++ b/app/controllers/api/v1/endorsements_controller.rb @@ -35,17 +35,13 @@ class Api::V1::EndorsementsController < Api::BaseController def next_path return if unlimited? - if records_continue? - api_v1_endorsements_url pagination_params(max_id: pagination_max_id) - end + api_v1_endorsements_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path return if unlimited? - unless @accounts.empty? - api_v1_endorsements_url pagination_params(since_id: pagination_since_id) - end + api_v1_endorsements_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/favourites_controller.rb b/app/controllers/api/v1/favourites_controller.rb index 2a873696c0..bd7f3d775e 100644 --- a/app/controllers/api/v1/favourites_controller.rb +++ b/app/controllers/api/v1/favourites_controller.rb @@ -36,15 +36,11 @@ class Api::V1::FavouritesController < Api::BaseController end def next_path - if records_continue? - api_v1_favourites_url pagination_params(max_id: pagination_max_id) - end + api_v1_favourites_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless results.empty? - api_v1_favourites_url pagination_params(min_id: pagination_since_id) - end + api_v1_favourites_url pagination_params(min_id: pagination_since_id) unless results.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/follow_requests_controller.rb b/app/controllers/api/v1/follow_requests_controller.rb index 54ff0e11d0..7c197ce6ba 100644 --- a/app/controllers/api/v1/follow_requests_controller.rb +++ b/app/controllers/api/v1/follow_requests_controller.rb @@ -53,15 +53,11 @@ class Api::V1::FollowRequestsController < Api::BaseController end def next_path - if records_continue? - api_v1_follow_requests_url pagination_params(max_id: pagination_max_id) - end + api_v1_follow_requests_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @accounts.empty? - api_v1_follow_requests_url pagination_params(since_id: pagination_since_id) - end + api_v1_follow_requests_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/lists/accounts_controller.rb b/app/controllers/api/v1/lists/accounts_controller.rb index b66ea9bfe6..8e12cb7b65 100644 --- a/app/controllers/api/v1/lists/accounts_controller.rb +++ b/app/controllers/api/v1/lists/accounts_controller.rb @@ -62,17 +62,13 @@ class Api::V1::Lists::AccountsController < Api::BaseController def next_path return if unlimited? - if records_continue? - api_v1_list_accounts_url pagination_params(max_id: pagination_max_id) - end + api_v1_list_accounts_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path return if unlimited? - unless @accounts.empty? - api_v1_list_accounts_url pagination_params(since_id: pagination_since_id) - end + api_v1_list_accounts_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/mutes_controller.rb b/app/controllers/api/v1/mutes_controller.rb index 6cde53a2a7..555485823c 100644 --- a/app/controllers/api/v1/mutes_controller.rb +++ b/app/controllers/api/v1/mutes_controller.rb @@ -33,15 +33,11 @@ class Api::V1::MutesController < Api::BaseController end def next_path - if records_continue? - api_v1_mutes_url pagination_params(max_id: pagination_max_id) - end + api_v1_mutes_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless paginated_mutes.empty? - api_v1_mutes_url pagination_params(since_id: pagination_since_id) - end + api_v1_mutes_url pagination_params(since_id: pagination_since_id) unless paginated_mutes.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 41f7f93af1..2024d521ca 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -58,15 +58,11 @@ class Api::V1::NotificationsController < Api::BaseController end def next_path - unless @notifications.empty? - api_v1_notifications_url pagination_params(max_id: pagination_max_id) - end + api_v1_notifications_url pagination_params(max_id: pagination_max_id) unless @notifications.empty? end def prev_path - unless @notifications.empty? - api_v1_notifications_url pagination_params(min_id: pagination_since_id) - end + api_v1_notifications_url pagination_params(min_id: pagination_since_id) unless @notifications.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/scheduled_statuses_controller.rb b/app/controllers/api/v1/scheduled_statuses_controller.rb index f90642a738..2220b6d22e 100644 --- a/app/controllers/api/v1/scheduled_statuses_controller.rb +++ b/app/controllers/api/v1/scheduled_statuses_controller.rb @@ -52,15 +52,11 @@ class Api::V1::ScheduledStatusesController < Api::BaseController end def next_path - if records_continue? - api_v1_scheduled_statuses_url pagination_params(max_id: pagination_max_id) - end + api_v1_scheduled_statuses_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @statuses.empty? - api_v1_scheduled_statuses_url pagination_params(min_id: pagination_since_id) - end + api_v1_scheduled_statuses_url pagination_params(min_id: pagination_since_id) unless @statuses.empty? end def records_continue? diff --git a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb index 2b614a8375..b138fa2650 100644 --- a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb @@ -41,15 +41,11 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::BaseController end def next_path - if records_continue? - api_v1_status_favourited_by_index_url pagination_params(max_id: pagination_max_id) - end + api_v1_status_favourited_by_index_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @accounts.empty? - api_v1_status_favourited_by_index_url pagination_params(since_id: pagination_since_id) - end + api_v1_status_favourited_by_index_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb index 24db30fcc0..4b545f9826 100644 --- a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb @@ -37,15 +37,11 @@ class Api::V1::Statuses::RebloggedByAccountsController < Api::BaseController end def next_path - if records_continue? - api_v1_status_reblogged_by_index_url pagination_params(max_id: pagination_max_id) - end + api_v1_status_reblogged_by_index_url pagination_params(max_id: pagination_max_id) if records_continue? end def prev_path - unless @accounts.empty? - api_v1_status_reblogged_by_index_url pagination_params(since_id: pagination_since_id) - end + api_v1_status_reblogged_by_index_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end def pagination_max_id diff --git a/app/controllers/api/v2/admin/accounts_controller.rb b/app/controllers/api/v2/admin/accounts_controller.rb index b25831aa09..0c451f778c 100644 --- a/app/controllers/api/v2/admin/accounts_controller.rb +++ b/app/controllers/api/v2/admin/accounts_controller.rb @@ -25,9 +25,7 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController def translated_filter_params translated_params = filter_params.slice(*AccountFilter::KEYS) - if params[:permissions] == 'staff' - translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) - end + translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) if params[:permissions] == 'staff' translated_params end diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 71c0cd8271..c5418ba0ce 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -30,9 +30,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController def update super do |resource| - if resource.saved_change_to_encrypted_password? - resource.clear_other_sessions(current_session.session_id) - end + resource.clear_other_sessions(current_session.session_id) if resource.saved_change_to_encrypted_password? end end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index afcf8b24b8..3ce7426384 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -110,9 +110,7 @@ class Auth::SessionsController < Devise::SessionsController def home_paths(resource) paths = [about_path] - if single_user_mode? && resource.is_a?(User) - paths << short_account_path(username: resource.account) - end + paths << short_account_path(username: resource.account) if single_user_mode? && resource.is_a?(User) paths end diff --git a/app/controllers/filters/statuses_controller.rb b/app/controllers/filters/statuses_controller.rb index cc493c22c6..7779c6d95b 100644 --- a/app/controllers/filters/statuses_controller.rb +++ b/app/controllers/filters/statuses_controller.rb @@ -38,9 +38,7 @@ class Filters::StatusesController < ApplicationController end def action_from_button - if params[:remove] - 'remove' - end + 'remove' if params[:remove] end def set_body_classes diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index b2687eddd9..1f93b33f5b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -216,9 +216,7 @@ module ApplicationHelper state_params[:moved_to_account] = current_account.moved_to_account end - if single_user_mode? - state_params[:owner] = Account.local.without_suspended.where('id > 0').first - end + state_params[:owner] = Account.local.without_suspended.where('id > 0').first if single_user_mode? json = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(state_params), serializer: InitialStateSerializer).to_json # rubocop:disable Rails/OutputSafety diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb index f90adaf6c5..61759649ab 100644 --- a/app/lib/activitypub/linked_data_signature.rb +++ b/app/lib/activitypub/linked_data_signature.rb @@ -27,9 +27,7 @@ class ActivityPub::LinkedDataSignature document_hash = hash(@json.without('signature')) to_be_verified = options_hash + document_hash - if creator.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), Base64.decode64(signature), to_be_verified) - creator - end + creator if creator.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), Base64.decode64(signature), to_be_verified) end def sign!(creator, sign_with: nil) diff --git a/app/lib/activitypub/parser/media_attachment_parser.rb b/app/lib/activitypub/parser/media_attachment_parser.rb index 656be84b73..56b8b23f84 100644 --- a/app/lib/activitypub/parser/media_attachment_parser.rb +++ b/app/lib/activitypub/parser/media_attachment_parser.rb @@ -50,9 +50,7 @@ class ActivityPub::Parser::MediaAttachmentParser components = begin blurhash = @json['blurhash'] - if blurhash.present? && /^[\w#$%*+,-.:;=?@\[\]^{|}~]+$/.match?(blurhash) - Blurhash.components(blurhash) - end + Blurhash.components(blurhash) if blurhash.present? && /^[\w#$%*+,-.:;=?@\[\]^{|}~]+$/.match?(blurhash) end components.present? && components.none? { |comp| comp > 5 } diff --git a/app/lib/status_finder.rb b/app/lib/status_finder.rb index 22ced8bf82..1a7f2fe69e 100644 --- a/app/lib/status_finder.rb +++ b/app/lib/status_finder.rb @@ -27,8 +27,6 @@ class StatusFinder end def verify_action! - unless recognized_params[:action] == 'show' - raise ActiveRecord::RecordNotFound - end + raise ActiveRecord::RecordNotFound unless recognized_params[:action] == 'show' end end diff --git a/app/models/account.rb b/app/models/account.rb index 262285a09e..a96e204fab 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -313,9 +313,7 @@ class Account < ApplicationRecord previous = old_fields.find { |item| item['value'] == attr[:value] } - if previous && previous['verified_at'].present? - attr[:verified_at] = previous['verified_at'] - end + attr[:verified_at] = previous['verified_at'] if previous && previous['verified_at'].present? fields << attr end diff --git a/app/models/account_statuses_cleanup_policy.rb b/app/models/account_statuses_cleanup_policy.rb index 49adc6ad05..14ce00abbc 100644 --- a/app/models/account_statuses_cleanup_policy.rb +++ b/app/models/account_statuses_cleanup_policy.rb @@ -122,9 +122,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord # may need to be deleted, so we'll have to start again. redis.del("account_cleanup:#{account.id}") end - if EXCEPTION_THRESHOLDS.map { |name| attribute_change_to_be_saved(name) }.compact.any? { |old, new| old.present? && (new.nil? || new > old) } - redis.del("account_cleanup:#{account.id}") - end + redis.del("account_cleanup:#{account.id}") if EXCEPTION_THRESHOLDS.map { |name| attribute_change_to_be_saved(name) }.compact.any? { |old, new| old.present? && (new.nil? || new > old) } end def validate_local_account @@ -141,9 +139,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord # has switched to snowflake IDs significantly over 2 years ago anyway. snowflake_id = Mastodon::Snowflake.id_at(min_status_age.seconds.ago, with_random: false) - if max_id.nil? || snowflake_id < max_id - max_id = snowflake_id - end + max_id = snowflake_id if max_id.nil? || snowflake_id < max_id Status.where(Status.arel_table[:id].lteq(max_id)) end diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index de8bf338f2..325619774a 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -151,9 +151,7 @@ module AccountInteractions remove_potential_friendship(other_account) # When toggling a mute between hiding and allowing notifications, the mute will already exist, so the find_or_create_by! call will return the existing Mute without updating the hide_notifications attribute. Therefore, we check that hide_notifications? is what we want and set it if it isn't. - if mute.hide_notifications? != notifications - mute.update!(hide_notifications: notifications) - end + mute.update!(hide_notifications: notifications) if mute.hide_notifications? != notifications mute end diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb index 7d54e9d6de..b0aa5be6f1 100644 --- a/app/models/concerns/omniauthable.rb +++ b/app/models/concerns/omniauthable.rb @@ -56,9 +56,7 @@ module Omniauthable user = User.new(user_params_from_auth(email, auth)) 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 + user.account.avatar_remote_url = auth.info.image if /\A#{URI::DEFAULT_PARSER.make_regexp(%w(http https))}\z/.match?(auth.info.image) rescue Mastodon::UnexpectedResponseError user.account.avatar_remote_url = nil end diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 95b28fa15f..fa1ddc6d39 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -61,9 +61,7 @@ class InitialStateSerializer < ActiveModel::Serializer store[:disabled_account_id] = object.disabled_account.id.to_s if object.disabled_account store[:moved_to_account_id] = object.moved_to_account.id.to_s if object.moved_to_account - if Rails.configuration.x.single_user_mode - store[:owner] = object.owner&.id&.to_s - end + store[:owner] = object.owner&.id&.to_s if Rails.configuration.x.single_user_mode store end diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index e280f8eb63..a07840f0ca 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -95,9 +95,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer end def registrations_message - if Setting.closed_registrations_message.present? - markdown.render(Setting.closed_registrations_message) - end + markdown.render(Setting.closed_registrations_message) if Setting.closed_registrations_message.present? end def markdown diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index 8908d21e2e..e8992b845d 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -56,9 +56,7 @@ class ActivityPub::FetchRemoteActorService < BaseService webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}") @username, @domain = split_acct(webfinger.subject) - unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero? - raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{@uri} (stopped at #{@username}@#{@domain})" - end + raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{@uri} (stopped at #{@username}@#{@domain})" unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero? raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri rescue Webfinger::RedirectError => e diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index 1dc393e28e..ac7372f745 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -80,9 +80,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService # If a previously existing media attachment was significantly updated, mark # media attachments as changed even if none were added or removed - if media_attachment_parser.significantly_changes?(media_attachment) - @media_attachments_changed = true - end + @media_attachments_changed = true if media_attachment_parser.significantly_changes?(media_attachment) media_attachment.description = media_attachment_parser.description media_attachment.focus = media_attachment_parser.focus diff --git a/app/services/remove_from_followers_service.rb b/app/services/remove_from_followers_service.rb index 3dac5467fb..007d5b1fdd 100644 --- a/app/services/remove_from_followers_service.rb +++ b/app/services/remove_from_followers_service.rb @@ -7,9 +7,7 @@ class RemoveFromFollowersService < BaseService source_account.passive_relationships.where(account_id: target_accounts).find_each do |follow| follow.destroy - if source_account.local? && !follow.account.local? && follow.account.activitypub? - create_notification(follow) - end + create_notification(follow) if source_account.local? && !follow.account.local? && follow.account.activitypub? end end diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index 1ba372cd6d..c76df5a0e4 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -96,9 +96,7 @@ class ResolveAccountService < BaseService @webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}") @username, @domain = split_acct(@webfinger.subject) - unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero? - raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{uri} (stopped at #{@username}@#{@domain})" - end + raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{uri} (stopped at #{@username}@#{@domain})" unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero? rescue Webfinger::GoneError @gone = true end diff --git a/app/services/search_service.rb b/app/services/search_service.rb index 1a76cbb388..93b72fa0c4 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -37,9 +37,7 @@ class SearchService < BaseService def perform_statuses_search! definition = parsed_query.apply(StatusesIndex.filter(term: { searchable_by: @account.id })) - if @options[:account_id].present? - definition = definition.filter(term: { account_id: @options[:account_id] }) - end + definition = definition.filter(term: { account_id: @options[:account_id] }) if @options[:account_id].present? if @options[:min_id].present? || @options[:max_id].present? range = {} diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index 24cc989646..a901a6ab98 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -277,9 +277,7 @@ module Mastodon exit(1) end - if options[:days].present? - scope = scope.where('media_attachments.id > ?', Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false)) - end + scope = scope.where('media_attachments.id > ?', Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false)) if options[:days].present? processed, aggregate = parallelize_with_progress(scope) do |media_attachment| next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?) diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb index 3522fa11e3..037ca5edc9 100644 --- a/lib/mastodon/redis_config.rb +++ b/lib/mastodon/redis_config.rb @@ -46,6 +46,4 @@ REDIS_SIDEKIQ_PARAMS = { namespace: sidekiq_namespace, }.freeze -if Rails.env.test? - ENV['REDIS_NAMESPACE'] = "mastodon_test#{ENV['TEST_ENV_NUMBER']}" -end +ENV['REDIS_NAMESPACE'] = "mastodon_test#{ENV['TEST_ENV_NUMBER']}" if Rails.env.test? diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb index 85bdd82159..d85db2fcad 100644 --- a/spec/support/matchers/model/model_have_error_on_field.rb +++ b/spec/support/matchers/model/model_have_error_on_field.rb @@ -1,8 +1,6 @@ RSpec::Matchers.define :model_have_error_on_field do |expected| match do |record| - if record.errors.empty? - record.valid? - end + record.valid? if record.errors.empty? record.errors.has_key?(expected) end From ab7816a4141e88cf7e05ba49638ee95fcc6f71ff Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:39:00 -0500 Subject: [PATCH 0461/1220] Autofix Rubocop Style/Lambda (#23696) --- .rubocop_todo.yml | 12 ------------ app/models/concerns/paginable.rb | 4 ++-- app/models/status.rb | 4 ++-- app/models/tag.rb | 2 +- lib/cli.rb | 2 +- lib/mastodon/domains_cli.rb | 2 +- 6 files changed, 7 insertions(+), 19 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0e94741ae3..2ec33fd305 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2930,18 +2930,6 @@ Style/InverseMethods: - 'app/services/update_account_service.rb' - 'spec/controllers/activitypub/replies_controller_spec.rb' -# Offense count: 7 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: line_count_dependent, lambda, literal -Style/Lambda: - Exclude: - - 'app/models/concerns/paginable.rb' - - 'app/models/status.rb' - - 'app/models/tag.rb' - - 'lib/cli.rb' - - 'lib/mastodon/domains_cli.rb' - # Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). Style/MapToHash: diff --git a/app/models/concerns/paginable.rb b/app/models/concerns/paginable.rb index 62e39f6714..b76e78c1e7 100644 --- a/app/models/concerns/paginable.rb +++ b/app/models/concerns/paginable.rb @@ -4,7 +4,7 @@ module Paginable extend ActiveSupport::Concern included do - scope :paginate_by_max_id, ->(limit, max_id = nil, since_id = nil) { + scope :paginate_by_max_id, lambda { |limit, max_id = nil, since_id = nil| query = order(arel_table[:id].desc).limit(limit) query = query.where(arel_table[:id].lt(max_id)) if max_id.present? query = query.where(arel_table[:id].gt(since_id)) if since_id.present? @@ -14,7 +14,7 @@ module Paginable # Differs from :paginate_by_max_id in that it gives the results immediately following min_id, # whereas since_id gives the items with largest id, but with since_id as a cutoff. # Results will be in ascending order by id. - scope :paginate_by_min_id, ->(limit, min_id = nil, max_id = nil) { + scope :paginate_by_min_id, lambda { |limit, min_id = nil, max_id = nil| query = reorder(arel_table[:id]).limit(limit) query = query.where(arel_table[:id].gt(min_id)) if min_id.present? query = query.where(arel_table[:id].lt(max_id)) if max_id.present? diff --git a/app/models/status.rb b/app/models/status.rb index b1c49e99a4..a924a985ff 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -101,12 +101,12 @@ class Status < ApplicationRecord scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).where('accounts.domain IS NULL OR accounts.domain NOT IN (?)', account.excluded_from_timeline_domains) } - scope :tagged_with_all, ->(tag_ids) { + scope :tagged_with_all, lambda { |tag_ids| Array(tag_ids).map(&:to_i).reduce(self) do |result, id| result.joins("INNER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}") end } - scope :tagged_with_none, ->(tag_ids) { + scope :tagged_with_none, lambda { |tag_ids| where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids) } diff --git a/app/models/tag.rb b/app/models/tag.rb index 47a05d00a1..98001d60a5 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -49,7 +49,7 @@ 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) { + scope :recently_used, lambda { |account| joins(:statuses) .where(statuses: { id: account.statuses.select(:id).limit(1000) }) .group(:id).order(Arel.sql('count(*) desc')) diff --git a/lib/cli.rb b/lib/cli.rb index 35c00e736f..157465c4b5 100644 --- a/lib/cli.rb +++ b/lib/cli.rb @@ -121,7 +121,7 @@ module Mastodon prompt.warn('Do NOT interrupt this process...') - delete_account = ->(account) do + delete_account = lambda do |account| payload = ActiveModelSerializers::SerializableResource.new( account, serializer: ActivityPub::DeleteActorSerializer, diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index 81ee53c18e..f24a54e7e8 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -139,7 +139,7 @@ module Mastodon pool = Concurrent::ThreadPoolExecutor.new(min_threads: 0, max_threads: options[:concurrency], idletime: 10, auto_terminate: true, max_queue: 0) - work_unit = ->(domain) do + work_unit = lambda do |domain| next if stats.key?(domain) next if options[:exclude_suspended] && domain.match?(blocked_domains) From c38bd17657483013ed189eccf8262557e4d0c465 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:39:58 -0500 Subject: [PATCH 0462/1220] Autofix Rubocop Style/TrailingCommaInArguments (#23694) --- .rubocop_todo.yml | 10 ---------- app/controllers/tags_controller.rb | 2 +- spec/services/fetch_oembed_service_spec.rb | 2 +- spec/services/post_status_service_spec.rb | 12 ++++++------ 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 2ec33fd305..e7be628ef0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3412,16 +3412,6 @@ Style/SymbolProc: Exclude: - 'spec/lib/request_spec.rb' -# Offense count: 8 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyleForMultiline. -# SupportedStylesForMultiline: comma, consistent_comma, no_comma -Style/TrailingCommaInArguments: - Exclude: - - 'app/controllers/tags_controller.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/post_status_service_spec.rb' - # Offense count: 10 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyleForMultiline. diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 750e15fa31..4b747c9add 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -58,7 +58,7 @@ class TagsController < ApplicationController def collection_presenter ActivityPub::CollectionPresenter.new( id: tag_url(@tag), - type: :ordered, + type: :ordered ) end end diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb index da2a8d0d1f..dcd0f80de5 100644 --- a/spec/services/fetch_oembed_service_spec.rb +++ b/spec/services/fetch_oembed_service_spec.rb @@ -18,7 +18,7 @@ describe FetchOEmbedService, type: :service do stub_request(:get, 'https://www.youtube.com/watch?v=IPSbNdBmWKE').to_return( status: 200, headers: { 'Content-Type': 'text/html' }, - body: request_fixture('oembed_youtube.html'), + body: request_fixture('oembed_youtube.html') ) stub_request(:get, 'https://www.youtube.com/oembed?format=json&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIPSbNdBmWKE').to_return( status: 200, diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 76114a59c0..7bb7dfb1f9 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -200,7 +200,7 @@ RSpec.describe PostStatusService, type: :service do status = subject.call( account, text: "test status update", - media_ids: [media.id], + media_ids: [media.id] ) expect(media.reload.status).to eq status @@ -213,7 +213,7 @@ RSpec.describe PostStatusService, type: :service do status = subject.call( account, text: "test status update", - media_ids: [media.id], + media_ids: [media.id] ) expect(media.reload.status).to eq nil @@ -232,11 +232,11 @@ RSpec.describe PostStatusService, type: :service do Fabricate(:media_attachment, account: account), Fabricate(:media_attachment, account: account), Fabricate(:media_attachment, account: account), - ].map(&:id), + ].map(&:id) ) end.to raise_error( Mastodon::ValidationError, - I18n.t('media_attachments.validations.too_many'), + I18n.t('media_attachments.validations.too_many') ) end @@ -254,11 +254,11 @@ RSpec.describe PostStatusService, type: :service do media_ids: [ video, image, - ].map(&:id), + ].map(&:id) ) end.to raise_error( Mastodon::ValidationError, - I18n.t('media_attachments.validations.images_and_video'), + I18n.t('media_attachments.validations.images_and_video') ) end From b4df632ca187ff9fe136e47134b36a16f724b0df Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:44:45 -0500 Subject: [PATCH 0463/1220] Run prettier on full repo with ignored extensions (#23538) --- .prettierignore | 20 +++++++++++--------- package.json | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.prettierignore b/.prettierignore index 8279ac1a45..b3b5f06ed1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -51,15 +51,8 @@ *~ *.swp -# Ignore npm debug log -npm-debug.log - -# Ignore yarn log files -yarn-error.log -yarn-debug.log - -# Ignore vagrant log files -*-cloudimg-console.log +# Ignore log files +*.log # Ignore Docker option files docker-compose.override.yml @@ -73,3 +66,12 @@ docker-compose.override.yml # Ignore vendored CSS reset app/javascript/styles/mastodon/reset.scss + +# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631 +*.js + +# Ignore Markdownlint pending https://github.com/mastodon/mastodon/pull/21972 +*.md + +# Ignore HTML till cleaned and included in CI +*.html diff --git a/package.json b/package.json index 8641c197c2..57ee85b716 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives", "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", - "format": "prettier --write \"**/*.{json,yml}\"", - "format-check": "prettier --check \"**/*.{json,yml}\"" + "format": "prettier --write .", + "format-check": "prettier --check ." }, "repository": { "type": "git", From 7e215b3bda546d1a85fea0fec7fcb55f4c8f6e3e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:46:44 -0500 Subject: [PATCH 0464/1220] Check for missing i18n strings in CI (#23368) Co-authored-by: Claire --- .github/workflows/check-i18n.yml | 11 +++++++++++ config/locales/en.yml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml index aa2ec03940..aa8f1f5844 100644 --- a/.github/workflows/check-i18n.yml +++ b/.github/workflows/check-i18n.yml @@ -18,20 +18,31 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y libicu-dev libidn11-dev + - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: .ruby-version bundler-cache: true + - name: Check locale file normalization run: bundle exec i18n-tasks check-normalized + - name: Check for unused strings run: bundle exec i18n-tasks unused + + - name: Check for missing strings in English + run: | + bundle exec i18n-tasks add-missing -l en + git diff --exit-code + - name: Check for wrong string interpolations run: bundle exec i18n-tasks check-consistent-interpolations + - name: Check that all required locale files exist run: bundle exec rake repo:check_locales_files diff --git a/config/locales/en.yml b/config/locales/en.yml index 39ff4236a1..0a9c325c20 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -91,6 +91,7 @@ en: moderation: active: Active all: All + disabled: Disabled pending: Pending silenced: Limited suspended: Suspended @@ -133,6 +134,7 @@ en: search: Search search_same_email_domain: Other users with the same e-mail domain search_same_ip: Other users with the same IP + security: Security security_measures: only_password: Only password password_and_2fa: Password and 2FA @@ -427,6 +429,7 @@ en: resolve: Resolve domain title: Block new e-mail domain no_email_domain_block_selected: No e-mail domain blocks were changed as none were selected + not_permitted: Not permitted resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting e-mail. Blocking an MX domain will block sign-ups from any e-mail address which uses the same MX domain, even if the visible domain name is different. Be careful not to block major e-mail providers. resolved_through_html: Resolved through %{domain} title: Blocked e-mail domains @@ -473,6 +476,7 @@ en: content_policies: comment: Internal note description_html: You can define content policies that will be applied to all accounts from this domain and any of its subdomains. + limited_federation_mode_description_html: You can chose whether to allow federation with this domain. policies: reject_media: Reject media reject_reports: Reject reports @@ -585,11 +589,13 @@ en: assign_to_self: Assign to me assigned: Assigned moderator by_target_domain: Domain of reported account + cancel: Cancel category: Category category_description_html: The reason this account and/or content was reported will be cited in communication with the reported account comment: none: None comment_description_html: 'To provide more information, %{name} wrote:' + confirm: Confirm confirm_action: Confirm moderation action against @%{acct} created_at: Reported delete_and_resolve: Delete posts @@ -792,6 +798,7 @@ en: suspend: "%{name} suspended %{target}'s account" appeal_approved: Appealed appeal_pending: Appeal pending + appeal_rejected: Appeal rejected system_checks: database_schema_check: message_html: There are pending database migrations. Please run them to ensure the application behaves as expected @@ -827,6 +834,7 @@ en: other: Shared by %{count} people over the last week title: Trending links usage_comparison: Shared %{today} times today, compared to %{yesterday} yesterday + not_allowed_to_trend: Not allowed to trend only_allowed: Only allowed pending_review: Pending review preview_card_providers: @@ -958,6 +966,7 @@ en: applications: created: Application successfully created destroyed: Application successfully deleted + logout: Logout regenerate_token: Regenerate access token token_regenerated: Access token successfully regenerated warning: Be very careful with this data. Never share it with anyone! @@ -994,6 +1003,8 @@ en: resend_confirmation: Resend confirmation instructions reset_password: Reset password rules: + accept: Accept + back: Back preamble: These are set and enforced by the %{domain} moderators. title: Some ground rules. security: Security From b4cbfff3ebf0da3ab0fd76686c71887854a8de87 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:47:37 -0500 Subject: [PATCH 0465/1220] Autofix Rubocop RSpec/ExcessiveDocstringSpacing (#23666) --- .rubocop_todo.yml | 7 ------- spec/controllers/settings/migrations_controller_spec.rb | 2 +- spec/models/concerns/account_interactions_spec.rb | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e7be628ef0..f353363327 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -887,13 +887,6 @@ RSpec/EmptyLineAfterSubject: RSpec/ExampleLength: Max: 22 -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -RSpec/ExcessiveDocstringSpacing: - Exclude: - - 'spec/controllers/settings/migrations_controller_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - # Offense count: 1 # This cop supports safe autocorrection (--autocorrect). RSpec/ExpectActual: diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb index 35c5747a06..4ce153c9df 100644 --- a/spec/controllers/settings/migrations_controller_spec.rb +++ b/spec/controllers/settings/migrations_controller_spec.rb @@ -90,7 +90,7 @@ describe Settings::MigrationsController do end end - context 'when a recent migration already exists ' do + context 'when a recent migration already exists' do let(:acct) { Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(user.account)]) } before do diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index 755c713141..b79c445948 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -400,7 +400,7 @@ describe AccountInteractions do subject { account.domain_blocking?(domain) } context 'blocking the domain' do - it ' returns true' do + it 'returns true' do account_domain_block = Fabricate(:account_domain_block, domain: domain) account.domain_blocks << account_domain_block is_expected.to be true From de4b8224c09a5d868c02a550022485e14245cb0a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 06:49:09 -0500 Subject: [PATCH 0466/1220] Run bundler-audit on PRs (#23514) --- .bundler-audit.yml | 3 +++ .codeclimate.yml | 2 +- .github/workflows/lint-ruby.yml | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .bundler-audit.yml diff --git a/.bundler-audit.yml b/.bundler-audit.yml new file mode 100644 index 0000000000..f84ec80872 --- /dev/null +++ b/.bundler-audit.yml @@ -0,0 +1,3 @@ +--- +ignore: + - CVE-2015-9284 # Mitigation following https://github.com/omniauth/omniauth/wiki/Resolving-CVE-2015-9284#mitigating-in-rails-applications diff --git a/.codeclimate.yml b/.codeclimate.yml index 59051aae7a..00469df005 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -24,7 +24,7 @@ plugins: brakeman: enabled: true bundler-audit: - enabled: true + enabled: false eslint: enabled: false rubocop: diff --git a/.github/workflows/lint-ruby.yml b/.github/workflows/lint-ruby.yml index 54f45796c1..de54fe9ae5 100644 --- a/.github/workflows/lint-ruby.yml +++ b/.github/workflows/lint-ruby.yml @@ -7,6 +7,7 @@ on: - 'Gemfile*' - '.rubocop*.yml' - '.ruby-version' + - '.bundler-audit.yml' - '**/*.rb' - '**/*.rake' - '.github/workflows/lint-ruby.yml' @@ -16,6 +17,7 @@ on: - 'Gemfile*' - '.rubocop*.yml' - '.ruby-version' + - '.bundler-audit.yml' - '**/*.rb' - '**/*.rake' - '.github/workflows/lint-ruby.yml' @@ -42,3 +44,6 @@ jobs: - name: Run rubocop run: bundle exec rubocop + + - name: Run bundler-audit + run: bundle exec bundler-audit From 5069769cbe7295268e8b87ce34fa0a753bfbb233 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 09:33:41 -0500 Subject: [PATCH 0467/1220] Autofix Rubocop Style/TrailingCommaInHashLiteral (#23693) --- .rubocop_todo.yml | 28 --------------- .../admin/accounts_controller_spec.rb | 2 +- .../admin/domain_blocks_controller_spec.rb | 6 ++-- .../accounts/credentials_controller_spec.rb | 2 +- .../v1/push/subscriptions_controller_spec.rb | 6 ++-- .../web/push_subscriptions_controller_spec.rb | 6 ++-- .../settings/applications_controller_spec.rb | 20 +++++------ .../settings/imports_controller_spec.rb | 8 ++--- .../notifications_controller_spec.rb | 2 +- .../preferences/other_controller_spec.rb | 2 +- .../lib/activitypub/activity/announce_spec.rb | 2 +- spec/lib/activitypub/activity/create_spec.rb | 8 ++--- .../fetch_featured_collection_service_spec.rb | 2 +- ...h_featured_tags_collection_service_spec.rb | 2 +- .../fetch_remote_status_service_spec.rb | 2 +- .../activitypub/fetch_replies_service_spec.rb | 2 +- .../process_account_service_spec.rb | 2 +- .../process_collection_service_spec.rb | 34 +++++++++---------- .../process_status_update_service_spec.rb | 8 ++--- .../synchronize_followers_service_spec.rb | 2 +- spec/services/fetch_resource_service_spec.rb | 2 +- spec/spec_helper.rb | 2 +- 22 files changed, 61 insertions(+), 89 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f353363327..ca2b085c9c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3417,34 +3417,6 @@ Style/TrailingCommaInArrayLiteral: - 'spec/services/activitypub/process_collection_service_spec.rb' - 'spec/workers/activitypub/move_distribution_worker_spec.rb' -# Offense count: 61 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyleForMultiline. -# SupportedStylesForMultiline: comma, consistent_comma, no_comma -Style/TrailingCommaInHashLiteral: - Exclude: - - 'spec/controllers/admin/accounts_controller_spec.rb' - - 'spec/controllers/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb' - - 'spec/controllers/api/web/push_subscriptions_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/imports_controller_spec.rb' - - 'spec/controllers/settings/preferences/notifications_controller_spec.rb' - - 'spec/controllers/settings/preferences/other_controller_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/activitypub/fetch_replies_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/activitypub/synchronize_followers_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/spec_helper.rb' - # Offense count: 4 # This cop supports safe autocorrection (--autocorrect). Style/UnpackFirst: diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index 81d592dddd..48204b7b6e 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -39,7 +39,7 @@ RSpec.describe Admin::AccountsController, type: :controller do username: 'username', display_name: 'display name', email: 'local-part@domain', - ip: '0.0.0.42' + ip: '0.0.0.42', } end diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb index f432060d98..3b2fd6c5dc 100644 --- a/spec/controllers/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/domain_blocks_controller_spec.rb @@ -26,9 +26,9 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do domain_blocks_attributes: { '0' => { enabled: '1', domain: 'example.com', severity: 'silence' }, '1' => { enabled: '0', domain: 'mastodon.social', severity: 'suspend' }, - '2' => { enabled: '1', domain: 'mastodon.online', severity: 'suspend' } - } - } + '2' => { enabled: '1', domain: 'mastodon.online', severity: 'suspend' }, + }, + }, } expect(DomainBlockWorker).to have_received(:perform_async).exactly(2).times diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index 89cc8acadb..d8aa00a075 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -35,7 +35,7 @@ describe Api::V1::Accounts::CredentialsController do source: { privacy: 'unlisted', sensitive: true, - } + }, } end diff --git a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb index 9487251e16..67f09da2dc 100644 --- a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb +++ b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb @@ -20,7 +20,7 @@ describe Api::V1::Push::SubscriptionsController do p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=', auth: 'eH_C8rq2raXqlcBVDa1gLg==', }, - } + }, }.with_indifferent_access end @@ -37,8 +37,8 @@ describe Api::V1::Push::SubscriptionsController do mention: false, poll: true, status: false, - } - } + }, + }, }.with_indifferent_access end diff --git a/spec/controllers/api/web/push_subscriptions_controller_spec.rb b/spec/controllers/api/web/push_subscriptions_controller_spec.rb index bda4a76614..9f027ede90 100644 --- a/spec/controllers/api/web/push_subscriptions_controller_spec.rb +++ b/spec/controllers/api/web/push_subscriptions_controller_spec.rb @@ -15,7 +15,7 @@ describe Api::Web::PushSubscriptionsController do p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=', auth: 'eH_C8rq2raXqlcBVDa1gLg==', }, - } + }, } end @@ -32,8 +32,8 @@ describe Api::Web::PushSubscriptionsController do mention: false, poll: true, status: false, - } - } + }, + }, } end diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index b79a38ea19..75d3240f9c 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -51,8 +51,8 @@ describe Settings::ApplicationsController do name: 'My New App', redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', website: 'http://google.com', - scopes: 'read write follow' - } + scopes: 'read write follow', + }, } response end @@ -73,8 +73,8 @@ describe Settings::ApplicationsController do name: 'My New App', redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', website: 'http://google.com', - scopes: ['read', 'write', 'follow'] - } + scopes: ['read', 'write', 'follow'], + }, } response end @@ -95,8 +95,8 @@ describe Settings::ApplicationsController do name: '', redirect_uri: '', website: '', - scopes: [] - } + scopes: [], + }, } end @@ -114,14 +114,14 @@ describe Settings::ApplicationsController do context 'success' do let(:opts) { { - website: 'https://foo.bar/' + website: 'https://foo.bar/', } } def call_update patch :update, params: { id: app.id, - doorkeeper_application: opts + doorkeeper_application: opts, } response end @@ -144,8 +144,8 @@ describe Settings::ApplicationsController do name: '', redirect_uri: '', website: '', - scopes: [] - } + scopes: [], + }, } end diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index b8caf59413..8070a35db6 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -21,8 +21,8 @@ RSpec.describe Settings::ImportsController, type: :controller do post :create, params: { import: { type: 'following', - data: fixture_file_upload('imports.txt') - } + data: fixture_file_upload('imports.txt'), + }, } expect(response).to redirect_to(settings_import_path) @@ -34,8 +34,8 @@ RSpec.describe Settings::ImportsController, type: :controller do post :create, params: { import: { type: 'blocking', - data: fixture_file_upload('imports.txt') - } + data: fixture_file_upload('imports.txt'), + }, } expect(response).to redirect_to(settings_import_path) diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb index 02180b3832..a821052edf 100644 --- a/spec/controllers/settings/preferences/notifications_controller_spec.rb +++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb @@ -25,7 +25,7 @@ describe Settings::Preferences::NotificationsController do user: { notification_emails: { follow: '1' }, interactions: { must_be_follower: '0' }, - } + }, } expect(response).to redirect_to(settings_preferences_notifications_path) diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb index 960378a018..dd7f01847c 100644 --- a/spec/controllers/settings/preferences/other_controller_spec.rb +++ b/spec/controllers/settings/preferences/other_controller_spec.rb @@ -34,7 +34,7 @@ describe Settings::Preferences::OtherController do user: { setting_boost_modal: '1', setting_delete_modal: '0', - } + }, } expect(response).to redirect_to(settings_preferences_other_path) diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index 1b34853843..461c3757b3 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -85,7 +85,7 @@ RSpec.describe ActivityPub::Activity::Announce do type: 'OrderedCollection', id: 'http://example.com/followers', first: 'http://example.com/followers?page=true', - } + }, } end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index 074aa54caa..132e0c31cd 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -255,7 +255,7 @@ RSpec.describe ActivityPub::Activity::Create do type: 'OrderedCollection', id: 'http://example.com/followers', first: 'http://example.com/followers?page=true', - } + }, } end @@ -686,7 +686,7 @@ RSpec.describe ActivityPub::Activity::Create do replies: { type: 'Collection', totalItems: 3, - } + }, }, ], } @@ -716,7 +716,7 @@ RSpec.describe ActivityPub::Activity::Create do id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', name: 'Yellow', - inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status) + inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status), } end @@ -741,7 +741,7 @@ RSpec.describe ActivityPub::Activity::Create do id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, type: 'Note', name: 'Yellow', - inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status) + inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status), } end diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb index e6336dc1b1..23d90a9a2b 100644 --- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb @@ -109,7 +109,7 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do type: 'CollectionPage', partOf: actor.featured_collection_url, items: items, - } + }, }.with_indifferent_access end diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb index 6ca22c9fc6..692866bce9 100644 --- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb @@ -81,7 +81,7 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d type: 'CollectionPage', partOf: collection_url, items: items, - } + }, }.with_indifferent_access end diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index d6145c9b8d..e02054672e 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -115,7 +115,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do id: "https://foo.bar/@foo/1234", type: 'Event', name: "Let's change the world", - attributedTo: ActivityPub::TagManager.instance.uri_for(sender) + attributedTo: ActivityPub::TagManager.instance.uri_for(sender), } end diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb index fe49b18c19..5741e0c3fe 100644 --- a/spec/services/activitypub/fetch_replies_service_spec.rb +++ b/spec/services/activitypub/fetch_replies_service_spec.rb @@ -90,7 +90,7 @@ RSpec.describe ActivityPub::FetchRepliesService, type: :service do type: 'CollectionPage', partOf: collection_uri, items: items, - } + }, }.with_indifferent_access end diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 40caa6eb0c..8e6ed178e0 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -175,7 +175,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do name: "@user#{i + 1}", } ], - to: ['as:Public', "https://foo.test/users/#{i + 1}"] + to: ['as:Public', "https://foo.test/users/#{i + 1}"], }.with_indifferent_access featured_json = { '@context': ['https://www.w3.org/ns/activitystreams'], diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index cb7deb6265..0fa5321bc7 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -123,15 +123,15 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do type: 'RsaSignature2017', creator: 'https://example.com/users/bob#main-key', created: '2022-03-09T21:57:25Z', - signatureValue: 'WculK0LelTQ0MvGwU9TPoq5pFzFfGYRDCJqjZ232/Udj4CHqDTGOSw5UTDLShqBOyycCkbZGrQwXG+dpyDpQLSe1UVPZ5TPQtc/9XtI57WlS2nMNpdvRuxGnnb2btPdesXZ7n3pCxo0zjaXrJMe0mqQh5QJO22mahb4bDwwmfTHgbD3nmkD+fBfGi+UV2qWwqr+jlV4L4JqNkh0gWljF5KTePLRRZCuWiQ/FAt7c67636cdIPf7fR+usjuZltTQyLZKEGuK8VUn2Gkfsx5qns7Vcjvlz1JqlAjyO8HPBbzTTHzUG2nUOIgC3PojCSWv6mNTmRGoLZzOscCAYQA6cKw==' + signatureValue: 'WculK0LelTQ0MvGwU9TPoq5pFzFfGYRDCJqjZ232/Udj4CHqDTGOSw5UTDLShqBOyycCkbZGrQwXG+dpyDpQLSe1UVPZ5TPQtc/9XtI57WlS2nMNpdvRuxGnnb2btPdesXZ7n3pCxo0zjaXrJMe0mqQh5QJO22mahb4bDwwmfTHgbD3nmkD+fBfGi+UV2qWwqr+jlV4L4JqNkh0gWljF5KTePLRRZCuWiQ/FAt7c67636cdIPf7fR+usjuZltTQyLZKEGuK8VUn2Gkfsx5qns7Vcjvlz1JqlAjyO8HPBbzTTHzUG2nUOIgC3PojCSWv6mNTmRGoLZzOscCAYQA6cKw==', }, '@id': 'https://example.com/users/bob/statuses/107928807471117876/activity', '@type': 'https://www.w3.org/ns/activitystreams#Create', 'https://www.w3.org/ns/activitystreams#actor': { - '@id': 'https://example.com/users/bob' + '@id': 'https://example.com/users/bob', }, 'https://www.w3.org/ns/activitystreams#cc': { - '@id': 'https://example.com/users/bob/followers' + '@id': 'https://example.com/users/bob/followers', }, object: { id: 'https://example.com/users/bob/fake-status', @@ -156,21 +156,21 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do 'http://ostatus.org#conversation': 'tag:example.com,2022-03-09:objectId=15:objectType=Conversation', 'https://www.w3.org/ns/activitystreams#attachment': [], 'https://www.w3.org/ns/activitystreams#attributedTo': { - '@id': 'https://example.com/users/bob' + '@id': 'https://example.com/users/bob', }, 'https://www.w3.org/ns/activitystreams#cc': { - '@id': 'https://example.com/users/bob/followers' + '@id': 'https://example.com/users/bob/followers', }, 'https://www.w3.org/ns/activitystreams#content': [ '

    hello world

    ', { '@value': '

    hello world

    ', - '@language': 'en' + '@language': 'en', } ], 'https://www.w3.org/ns/activitystreams#published': { '@type': 'http://www.w3.org/2001/XMLSchema#dateTime', - '@value': '2022-03-09T21:55:07Z' + '@value': '2022-03-09T21:55:07Z', }, 'https://www.w3.org/ns/activitystreams#replies': { '@id': 'https://example.com/users/bob/statuses/107928807471117876/replies', @@ -179,29 +179,29 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do '@type': 'https://www.w3.org/ns/activitystreams#CollectionPage', 'https://www.w3.org/ns/activitystreams#items': [], 'https://www.w3.org/ns/activitystreams#next': { - '@id': 'https://example.com/users/bob/statuses/107928807471117876/replies?only_other_accounts=true&page=true' + '@id': 'https://example.com/users/bob/statuses/107928807471117876/replies?only_other_accounts=true&page=true', }, 'https://www.w3.org/ns/activitystreams#partOf': { - '@id': 'https://example.com/users/bob/statuses/107928807471117876/replies' - } - } + '@id': 'https://example.com/users/bob/statuses/107928807471117876/replies', + }, + }, }, 'https://www.w3.org/ns/activitystreams#sensitive': false, 'https://www.w3.org/ns/activitystreams#tag': [], 'https://www.w3.org/ns/activitystreams#to': { - '@id': 'https://www.w3.org/ns/activitystreams#Public' + '@id': 'https://www.w3.org/ns/activitystreams#Public', }, 'https://www.w3.org/ns/activitystreams#url': { - '@id': 'https://example.com/@bob/107928807471117876' - } + '@id': 'https://example.com/@bob/107928807471117876', + }, }, 'https://www.w3.org/ns/activitystreams#published': { '@type': 'http://www.w3.org/2001/XMLSchema#dateTime', - '@value': '2022-03-09T21:55:07Z' + '@value': '2022-03-09T21:55:07Z', }, 'https://www.w3.org/ns/activitystreams#to': { - '@id': 'https://www.w3.org/ns/activitystreams#Public' - } + '@id': 'https://www.w3.org/ns/activitystreams#Public', + }, } end diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 04292c5079..5d15f6ffeb 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -115,7 +115,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do account: account, multiple: false, hide_totals: false, - expires_at: expiration + expires_at: expiration, }) end @@ -166,7 +166,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do account: account, multiple: false, hide_totals: false, - expires_at: expiration + expires_at: expiration, }) end @@ -342,7 +342,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do updated: '2021-09-08T22:39:25Z', attachment: [ { type: 'Image', mediaType: 'image/png', url: 'https://example.com/foo.png' }, - ] + ], } end @@ -374,7 +374,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do updated: '2021-09-08T22:39:25Z', attachment: [ { type: 'Image', mediaType: 'image/png', url: 'https://example.com/foo.png', name: 'A picture' }, - ] + ], } end diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb index 75dcf204b7..5a37f07333 100644 --- a/spec/services/activitypub/synchronize_followers_service_spec.rb +++ b/spec/services/activitypub/synchronize_followers_service_spec.rb @@ -91,7 +91,7 @@ RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do type: 'CollectionPage', partOf: collection_uri, items: items, - } + }, }.with_indifferent_access end diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 8cd4a3bfb5..6f24e64187 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -91,7 +91,7 @@ RSpec.describe FetchResourceService, type: :service do end context 'when link header is present' do - let(:headers) { { 'Link' => '; rel="alternate"; type="application/activity+json"', } } + let(:headers) { { 'Link' => '; rel="alternate"; type="application/activity+json"' } } it { is_expected.to eq [1, { prefetched_body: json, id: true }] } end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0414ba9ed6..72c9ce8ae1 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -61,6 +61,6 @@ end def expect_push_bulk_to_match(klass, matcher) expect(Sidekiq::Client).to receive(:push_bulk).with(hash_including({ "class" => klass, - "args" => matcher + "args" => matcher, })) end From 587f6b3b066360da37066063d659194d43fd7a59 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 13 Feb 2023 20:09:01 +0100 Subject: [PATCH 0468/1220] [Glitch] Enable ESLint import recommended rules Port eddfb33dfea6a17e71377d95498b557dd0194477 to glitch-soc --- .../flavours/glitch/features/audio/index.js | 6 ++--- .../compose/containers/poll_form_container.js | 5 ++++- .../compose/containers/upload_container.js | 3 +-- .../flavours/glitch/features/compose/index.js | 3 +-- .../components/announcements.js | 3 +-- .../containers/column_settings_container.js | 3 +-- .../flavours/glitch/features/status/index.js | 22 +++++++++---------- .../ui/components/focal_point_modal.js | 3 +-- 8 files changed, 22 insertions(+), 26 deletions(-) diff --git a/app/javascript/flavours/glitch/features/audio/index.js b/app/javascript/flavours/glitch/features/audio/index.js index 1a1d438c0c..c4aa989628 100644 --- a/app/javascript/flavours/glitch/features/audio/index.js +++ b/app/javascript/flavours/glitch/features/audio/index.js @@ -1,12 +1,10 @@ import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; -import { formatTime } from 'flavours/glitch/features/video'; +import { formatTime, getPointerPosition, fileNameFromURL } from 'flavours/glitch/features/video'; import Icon from 'flavours/glitch/components/icon'; import classNames from 'classnames'; -import { throttle } from 'lodash'; -import { getPointerPosition, fileNameFromURL } from 'flavours/glitch/features/video'; -import { debounce } from 'lodash'; +import { throttle, debounce } from 'lodash'; import Visualizer from './visualizer'; import { displayMedia, useBlurhash } from 'flavours/glitch/initial_state'; import Blurhash from 'flavours/glitch/components/blurhash'; diff --git a/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js b/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js index 1e0058341c..14038b3e8c 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js @@ -1,7 +1,10 @@ import { connect } from 'react-redux'; import PollForm from '../components/poll_form'; -import { addPollOption, removePollOption, changePollOption, changePollSettings } from 'flavours/glitch/actions/compose'; import { + addPollOption, + removePollOption, + changePollOption, + changePollSettings, clearComposeSuggestions, fetchComposeSuggestions, selectComposeSuggestion, diff --git a/app/javascript/flavours/glitch/features/compose/containers/upload_container.js b/app/javascript/flavours/glitch/features/compose/containers/upload_container.js index f3ca4ce7bb..2189c870b1 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/upload_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/upload_container.js @@ -1,7 +1,6 @@ import { connect } from 'react-redux'; import Upload from '../components/upload'; -import { undoUploadCompose, initMediaEditModal } from 'flavours/glitch/actions/compose'; -import { submitCompose } from 'flavours/glitch/actions/compose'; +import { undoUploadCompose, initMediaEditModal, submitCompose } from 'flavours/glitch/actions/compose'; const mapStateToProps = (state, { id }) => ({ media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id), diff --git a/app/javascript/flavours/glitch/features/compose/index.js b/app/javascript/flavours/glitch/features/compose/index.js index 68eb05e2c9..241caa03b3 100644 --- a/app/javascript/flavours/glitch/features/compose/index.js +++ b/app/javascript/flavours/glitch/features/compose/index.js @@ -4,7 +4,7 @@ import NavigationContainer from './containers/navigation_container'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { connect } from 'react-redux'; -import { mountCompose, unmountCompose } from 'flavours/glitch/actions/compose'; +import { mountCompose, unmountCompose, cycleElefriendCompose } from 'flavours/glitch/actions/compose'; import { injectIntl, defineMessages } from 'react-intl'; import classNames from 'classnames'; import SearchContainer from './containers/search_container'; @@ -12,7 +12,6 @@ import Motion from '../ui/util/optional_motion'; import spring from 'react-motion/lib/spring'; import SearchResultsContainer from './containers/search_results_container'; import { me, mascot } from 'flavours/glitch/initial_state'; -import { cycleElefriendCompose } from 'flavours/glitch/actions/compose'; import HeaderContainer from './containers/header_container'; import Column from 'flavours/glitch/components/column'; import { Helmet } from 'react-helmet'; diff --git a/app/javascript/flavours/glitch/features/getting_started/components/announcements.js b/app/javascript/flavours/glitch/features/getting_started/components/announcements.js index 5ff4f0523d..fb90244473 100644 --- a/app/javascript/flavours/glitch/features/getting_started/components/announcements.js +++ b/app/javascript/flavours/glitch/features/getting_started/components/announcements.js @@ -6,9 +6,8 @@ import PropTypes from 'prop-types'; import IconButton from 'flavours/glitch/components/icon_button'; import Icon from 'flavours/glitch/components/icon'; import { defineMessages, injectIntl, FormattedMessage, FormattedDate } from 'react-intl'; -import { autoPlayGif, reduceMotion, disableSwiping } from 'flavours/glitch/initial_state'; +import { autoPlayGif, reduceMotion, disableSwiping, mascot } from 'flavours/glitch/initial_state'; import elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg'; -import { mascot } from 'flavours/glitch/initial_state'; import unicodeMapping from 'flavours/glitch/features/emoji/emoji_unicode_mapping_light'; import classNames from 'classnames'; import EmojiPickerDropdown from 'flavours/glitch/features/compose/containers/emoji_picker_dropdown_container'; diff --git a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js index c2564f44ea..27c2f96fe4 100644 --- a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js +++ b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js @@ -2,8 +2,7 @@ import { connect } from 'react-redux'; import { defineMessages, injectIntl } from 'react-intl'; import ColumnSettings from '../components/column_settings'; import { changeSetting } from 'flavours/glitch/actions/settings'; -import { setFilter } from 'flavours/glitch/actions/notifications'; -import { clearNotifications, requestBrowserPermission } from 'flavours/glitch/actions/notifications'; +import { setFilter, clearNotifications, requestBrowserPermission } from 'flavours/glitch/actions/notifications'; import { changeAlerts as changePushNotifications } from 'flavours/glitch/actions/push_notifications'; import { openModal } from 'flavours/glitch/actions/modal'; import { showAlert } from 'flavours/glitch/actions/alerts'; diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index 9b49d41e4a..cbab90e81f 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -5,7 +5,17 @@ import PropTypes from 'prop-types'; import classNames from 'classnames'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { createSelector } from 'reselect'; -import { fetchStatus } from 'flavours/glitch/actions/statuses'; +import { + fetchStatus, + muteStatus, + unmuteStatus, + deleteStatus, + editStatus, + hideStatus, + revealStatus, + translateStatus, + undoStatusTranslation, +} from 'flavours/glitch/actions/statuses'; import MissingIndicator from 'flavours/glitch/components/missing_indicator'; import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; import DetailedStatus from './components/detailed_status'; @@ -27,16 +37,6 @@ import { directCompose, } from 'flavours/glitch/actions/compose'; import { changeLocalSetting } from 'flavours/glitch/actions/local_settings'; -import { - muteStatus, - unmuteStatus, - deleteStatus, - editStatus, - hideStatus, - revealStatus, - translateStatus, - undoStatusTranslation, -} from 'flavours/glitch/actions/statuses'; import { initMuteModal } from 'flavours/glitch/actions/mutes'; import { initBlockModal } from 'flavours/glitch/actions/blocks'; import { initReport } from 'flavours/glitch/actions/reports'; 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 e36657fabc..8e624adb3e 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 @@ -5,11 +5,10 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; import classNames from 'classnames'; import { changeUploadCompose, uploadThumbnail, onChangeMediaDescription, onChangeMediaFocus } from 'flavours/glitch/actions/compose'; -import { getPointerPosition } from 'flavours/glitch/features/video'; +import Video, { getPointerPosition } from 'flavours/glitch/features/video'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import IconButton from 'flavours/glitch/components/icon_button'; import Button from 'flavours/glitch/components/button'; -import Video from 'flavours/glitch/features/video'; import Audio from 'flavours/glitch/features/audio'; import Textarea from 'react-textarea-autosize'; import UploadProgress from 'flavours/glitch/features/compose/components/upload_progress'; From 7e64eef73b62fcb1537181e66bcd3e5e25fcc665 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 13 Feb 2023 09:12:14 -0500 Subject: [PATCH 0469/1220] [Glitch] Enable ESLint no-useless-escape Port db2c58d47ae0db8490a30cd3846f30e615c382b5 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/push_notifications/registerer.js | 2 +- .../glitch/features/compose/containers/warning_container.js | 2 +- app/javascript/flavours/glitch/features/compose/util/counter.js | 2 +- app/javascript/flavours/glitch/features/emoji/emoji_utils.js | 2 +- .../features/follow_recommendations/components/account.js | 2 +- app/javascript/flavours/glitch/utils/hashtag.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/push_notifications/registerer.js b/app/javascript/flavours/glitch/actions/push_notifications/registerer.js index 762fe260c7..bc5634233f 100644 --- a/app/javascript/flavours/glitch/actions/push_notifications/registerer.js +++ b/app/javascript/flavours/glitch/actions/push_notifications/registerer.js @@ -6,7 +6,7 @@ import { setBrowserSupport, setSubscription, clearSubscription } from './setter' const urlBase64ToUint8Array = (base64String) => { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding) - .replace(/\-/g, '+') + .replace(/-/g, '+') .replace(/_/g, '/'); const rawData = window.atob(base64); diff --git a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js index 9402601f85..5b48c45e43 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js @@ -25,7 +25,7 @@ const buildHashtagRE = () => { '))', 'iu', ); } catch { - return /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i; + return /(?:^|[^/)\w])#(\w*[a-zA-Z·]\w*)/i; } }; diff --git a/app/javascript/flavours/glitch/features/compose/util/counter.js b/app/javascript/flavours/glitch/features/compose/util/counter.js index 5a68bad992..ec2431096b 100644 --- a/app/javascript/flavours/glitch/features/compose/util/counter.js +++ b/app/javascript/flavours/glitch/features/compose/util/counter.js @@ -5,5 +5,5 @@ const urlPlaceholder = '$2xxxxxxxxxxxxxxxxxxxxxxx'; export function countableText(inputText) { return inputText .replace(urlRegex, urlPlaceholder) - .replace(/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/ig, '$1@$3'); + .replace(/(^|[^/\w])@(([a-z0-9_]+)@[a-z0-9.-]+[a-z0-9]+)/ig, '$1@$3'); } diff --git a/app/javascript/flavours/glitch/features/emoji/emoji_utils.js b/app/javascript/flavours/glitch/features/emoji/emoji_utils.js index 571907a509..be793526d0 100644 --- a/app/javascript/flavours/glitch/features/emoji/emoji_utils.js +++ b/app/javascript/flavours/glitch/features/emoji/emoji_utils.js @@ -73,7 +73,7 @@ const stringFromCodePoint = _String.fromCodePoint || function () { const _JSON = JSON; -const COLONS_REGEX = /^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/; +const COLONS_REGEX = /^(?::([^:]+):)(?::skin-tone-(\d):)?$/; const SKINS = [ '1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF', diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js index 7c8a71879d..81d39bd49b 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js +++ b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js @@ -27,7 +27,7 @@ const makeMapStateToProps = () => { }; const getFirstSentence = str => { - const arr = str.split(/(([\.\?!]+\s)|[.。?!\n•])/); + const arr = str.split(/(([.?!]+\s)|[.。?!\n•])/); return arr[0]; }; diff --git a/app/javascript/flavours/glitch/utils/hashtag.js b/app/javascript/flavours/glitch/utils/hashtag.js index 8f5665c466..d91cd5591a 100644 --- a/app/javascript/flavours/glitch/utils/hashtag.js +++ b/app/javascript/flavours/glitch/utils/hashtag.js @@ -1,6 +1,6 @@ export function recoverHashtags (recognizedTags, text) { return recognizedTags.map(tag => { - const re = new RegExp(`(?:^|[^\/)\w])#(${tag.name})`, 'i'); + const re = new RegExp(`(?:^|[^/)\w])#(${tag.name})`, 'i'); const matched_hashtag = text.match(re); return matched_hashtag ? matched_hashtag[1] : null; }, From ea9a1d79df60749eb21fb592c608dcaa4c935c75 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Feb 2023 22:57:03 -0500 Subject: [PATCH 0470/1220] [Glitch] Upgrade to Stylelint 15 with Prettier Port 0c9d455ea5540e854c2d879cd1df015ea493f622 to glitch-soc Signed-off-by: Claire --- .prettierignore | 10 +- .../flavours/glitch/styles/_mixins.scss | 5 +- .../flavours/glitch/styles/accessibility.scss | 7 +- .../flavours/glitch/styles/admin.scss | 25 +++-- .../flavours/glitch/styles/basics.scss | 10 +- .../glitch/styles/components/accounts.scss | 34 ++++--- .../styles/components/announcements.scss | 6 +- .../glitch/styles/components/columns.scss | 17 ++-- .../styles/components/compose_form.scss | 99 ++++++++++++++----- .../glitch/styles/components/directory.scss | 10 +- .../glitch/styles/components/doodle.scss | 12 ++- .../glitch/styles/components/drawer.scss | 41 ++++++-- .../glitch/styles/components/emoji.scss | 2 +- .../styles/components/emoji_picker.scss | 8 +- .../glitch/styles/components/index.scss | 36 ++++--- .../styles/components/local_settings.scss | 11 ++- .../glitch/styles/components/media.scss | 18 ++-- .../glitch/styles/components/modal.scss | 12 ++- .../styles/components/privacy_policy.scss | 4 +- .../glitch/styles/components/sensitive.scss | 8 +- .../styles/components/single_column.scss | 2 +- .../glitch/styles/components/status.scss | 73 ++++++++++---- .../glitch/styles/contrast/variables.scss | 2 +- .../flavours/glitch/styles/forms.scss | 48 +++++---- .../glitch/styles/mastodon-light/diff.scss | 43 +++++--- .../flavours/glitch/styles/modal.scss | 4 +- .../flavours/glitch/styles/polls.scss | 12 ++- .../flavours/glitch/styles/rtl.scss | 18 ++-- .../flavours/glitch/styles/statuses.scss | 2 +- .../flavours/glitch/styles/variables.scss | 31 +++--- .../flavours/glitch/styles/widgets.scss | 2 +- 31 files changed, 406 insertions(+), 206 deletions(-) diff --git a/.prettierignore b/.prettierignore index d04207d394..e55c284164 100644 --- a/.prettierignore +++ b/.prettierignore @@ -74,9 +74,15 @@ docker-compose.override.yml # Ignore vendored CSS reset app/javascript/styles/mastodon/reset.scss +# Ignore glitch-soc emoji map file +/app/javascript/flavours/glitch/features/emoji/emoji_map.json + # 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 +# Ignore glitch-soc vendored CSS reset +app/javascript/flavours/glitch/styles/reset.scss + +# Ignore win95 theme +app/javascript/styles/win95.scss diff --git a/app/javascript/flavours/glitch/styles/_mixins.scss b/app/javascript/flavours/glitch/styles/_mixins.scss index 9f6314f3f4..90f748c51d 100644 --- a/app/javascript/flavours/glitch/styles/_mixins.scss +++ b/app/javascript/flavours/glitch/styles/_mixins.scss @@ -4,7 +4,7 @@ background-clip: padding-box; } -@mixin avatar-size($size:48px) { +@mixin avatar-size($size: 48px) { width: $size; height: $size; background-size: $size $size; @@ -22,7 +22,8 @@ } @mixin limited-single-column($media, $parent: '&') { - .auto-columns #{$parent}, .single-column #{$parent} { + .auto-columns #{$parent}, + .single-column #{$parent} { @media #{$media} { @content; } diff --git a/app/javascript/flavours/glitch/styles/accessibility.scss b/app/javascript/flavours/glitch/styles/accessibility.scss index 7bffb2e264..fb2376abfd 100644 --- a/app/javascript/flavours/glitch/styles/accessibility.scss +++ b/app/javascript/flavours/glitch/styles/accessibility.scss @@ -1,4 +1,7 @@ -$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on' 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default; +$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' + 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' + 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on' + 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default; %emoji-color-inversion { filter: invert(1); @@ -19,7 +22,7 @@ $emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' &.active::after { position: absolute; - content: "\F00C"; + content: '\F00C'; font-size: 50%; font-family: FontAwesome; right: -0.55em; diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 9aa2318ce5..61036fc70c 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -1,4 +1,4 @@ -@use "sass:math"; +@use 'sass:math'; $no-columns-breakpoint: 600px; $sidebar-width: 240px; @@ -350,7 +350,7 @@ $content-width: 840px; width: 100%; height: 0; border: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, .6); + border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6); margin: 20px 0; &.spacer { @@ -1147,7 +1147,10 @@ a.name-tag, @for $i from 0 through 10 { &--#{10 * $i} { - background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10))); + background-color: rgba( + $ui-highlight-color, + 1 * (math.div(max(1, $i), 10)) + ); } } } @@ -1236,7 +1239,12 @@ a.sparkline { .skeleton { background-color: lighten($ui-base-color, 8%); - background-image: linear-gradient(90deg, lighten($ui-base-color, 8%), lighten($ui-base-color, 12%), lighten($ui-base-color, 8%)); + background-image: linear-gradient( + 90deg, + lighten($ui-base-color, 8%), + lighten($ui-base-color, 12%), + lighten($ui-base-color, 8%) + ); background-size: 200px 100%; background-repeat: no-repeat; border-radius: 4px; @@ -1285,7 +1293,10 @@ a.sparkline { @for $i from 0 through 10 { &--#{10 * $i} { - background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10))); + background-color: rgba( + $ui-highlight-color, + 1 * (math.div(max(1, $i), 10)) + ); } } } @@ -1431,7 +1442,7 @@ a.sparkline { &::after { display: block; - content: ""; + content: ''; width: 50px; height: 21px; position: absolute; @@ -1825,7 +1836,7 @@ a.sparkline { &::after { position: absolute; - content: ""; + content: ''; width: 1px; background: $highlight-text-color; bottom: 0; diff --git a/app/javascript/flavours/glitch/styles/basics.scss b/app/javascript/flavours/glitch/styles/basics.scss index a00b2936f0..25aa68f7e2 100644 --- a/app/javascript/flavours/glitch/styles/basics.scss +++ b/app/javascript/flavours/glitch/styles/basics.scss @@ -2,7 +2,7 @@ @if type-of($color) == 'color' { $color: str-slice(ie-hex-str($color), 4); } - @return '%23' + unquote($color) + @return '%23' + unquote($color); } body { @@ -13,9 +13,9 @@ body { font-weight: 400; color: $primary-text-color; text-rendering: optimizelegibility; - font-feature-settings: "kern"; + font-feature-settings: 'kern'; text-size-adjust: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-tap-highlight-color: transparent; &.system-font { @@ -30,7 +30,9 @@ body { // Droid Sans => Older Androids (<4.0) // Helvetica Neue => Older macOS <10.11 // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0) - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', + 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', + 'Helvetica Neue', $font-sans-serif, sans-serif; } &.app-body { diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss index c2a6593b1a..89faaae6ad 100644 --- a/app/javascript/flavours/glitch/styles/components/accounts.scss +++ b/app/javascript/flavours/glitch/styles/components/accounts.scss @@ -30,7 +30,9 @@ border: 0; padding: 0; - & > .account__avatar-wrapper { margin: 0 8px 0 0 } + & > .account__avatar-wrapper { + margin: 0 8px 0 0; + } & > .display-name { height: 24px; @@ -379,7 +381,7 @@ &::before, &::after { display: block; - content: ""; + content: ''; position: absolute; bottom: 0; left: 50%; @@ -710,22 +712,22 @@ padding: 2px 6px; color: $darker-text-color; - &:hover, - &:active, - &:focus { - color: lighten($darker-text-color, 7%); - background-color: rgba($darker-text-color, 0.15); - } + &:hover, + &:active, + &:focus { + color: lighten($darker-text-color, 7%); + background-color: rgba($darker-text-color, 0.15); + } - &:focus { - background-color: rgba($darker-text-color, 0.3); - } + &:focus { + background-color: rgba($darker-text-color, 0.3); + } - &[disabled] { - color: darken($darker-text-color, 13%); - background-color: transparent; - cursor: default; - } + &[disabled] { + color: darken($darker-text-color, 13%); + background-color: transparent; + cursor: default; + } } .flex-spacer { diff --git a/app/javascript/flavours/glitch/styles/components/announcements.scss b/app/javascript/flavours/glitch/styles/components/announcements.scss index 85af9afc83..feaff81f52 100644 --- a/app/javascript/flavours/glitch/styles/components/announcements.scss +++ b/app/javascript/flavours/glitch/styles/components/announcements.scss @@ -181,7 +181,11 @@ &.active { transition: all 100ms ease-in; transition-property: background-color, color; - background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%); + background-color: mix( + lighten($ui-base-color, 12%), + $ui-highlight-color, + 80% + ); .reactions-bar__item__count { color: lighten($highlight-text-color, 8%); diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss index 42a5919319..263a9ce785 100644 --- a/app/javascript/flavours/glitch/styles/components/columns.scss +++ b/app/javascript/flavours/glitch/styles/components/columns.scss @@ -286,7 +286,7 @@ $ui-header-height: 55px; &::before { display: block; - content: ""; + content: ''; position: absolute; bottom: -13px; left: 0; @@ -296,7 +296,11 @@ $ui-header-height: 55px; pointer-events: none; height: 28px; z-index: 1; - background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%); + background: radial-gradient( + ellipse, + rgba($ui-highlight-color, 0.23) 0%, + rgba($ui-highlight-color, 0) 60% + ); } } @@ -435,10 +439,10 @@ $ui-header-height: 55px; } } - .layout-single-column .column-header__notif-cleaning-buttons { @media screen and (min-width: $no-gap-breakpoint) { - b, i { + b, + i { margin-right: 5px; } @@ -622,7 +626,8 @@ $ui-header-height: 55px; flex: 1 1 auto; align-items: center; justify-content: center; - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: strict; } @@ -916,7 +921,7 @@ $ui-header-height: 55px; p { font-size: 16px; - line-height: 24px; + line-height: 24px; font-weight: 400; color: $darker-text-color; } diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss index 40adf28c9d..4b800dcd8f 100644 --- a/app/javascript/flavours/glitch/styles/components/compose_form.scss +++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss @@ -32,12 +32,12 @@ .spoiler-input { height: 0; transform-origin: bottom; - opacity: 0.0; + opacity: 0; &.spoiler-input--visible { height: 36px; margin-bottom: 11px; - opacity: 1.0; + opacity: 1; } input { @@ -59,8 +59,12 @@ color: $dark-text-color; } - &:focus { outline: 0 } - @include single-column('screen and (max-width: 630px)') { font-size: 16px } + &:focus { + outline: 0; + } + @include single-column('screen and (max-width: 630px)') { + font-size: 16px; + } } } @@ -98,7 +102,7 @@ color: $highlight-text-color; } - input[type=checkbox] { + input[type='checkbox'] { display: none; } @@ -118,7 +122,9 @@ &.active { border-color: $highlight-text-color; - background: $highlight-text-color url("data:image/svg+xml;utf8,") center center no-repeat; + background: $highlight-text-color + url("data:image/svg+xml;utf8,") + center center no-repeat; } } } @@ -137,7 +143,9 @@ margin-bottom: 5px; overflow: hidden; - & > .account.small { color: $inverted-text-color; } + & > .account.small { + color: $inverted-text-color; + } } .reply-indicator__cancel { @@ -159,7 +167,9 @@ padding-top: 5px; overflow: hidden; - p, pre, blockquote { + p, + pre, + blockquote { margin-bottom: 20px; white-space: pre-wrap; @@ -168,12 +178,17 @@ } } - h1, h2, h3, h4, h5 { + h1, + h2, + h3, + h4, + h5 { margin-top: 20px; margin-bottom: 20px; } - h1, h2 { + h1, + h2 { font-weight: 700; font-size: 18px; } @@ -182,7 +197,9 @@ font-size: 16px; } - h3, h4, h5 { + h3, + h4, + h5 { font-weight: 500; } @@ -197,11 +214,13 @@ } } - b, strong { + b, + strong { font-weight: 700; } - em, i { + em, + i { font-style: italic; } @@ -215,7 +234,8 @@ vertical-align: super; } - ul, ol { + ul, + ol { margin-left: 1em; p { @@ -235,13 +255,17 @@ color: $lighter-text-color; text-decoration: none; - &:hover { text-decoration: underline } + &:hover { + text-decoration: underline; + } &.mention { &:hover { text-decoration: none; - span { text-decoration: underline } + span { + text-decoration: underline; + } } } } @@ -321,7 +345,7 @@ font-size: 18px; line-height: 24px; text-align: center; - opacity: .8; + opacity: 0.8; } } @@ -358,7 +382,9 @@ &:hover, &:focus, &:active, - &.selected { background: darken($ui-secondary-color, 10%) } + &.selected { + background: darken($ui-secondary-color, 10%); + } > .account, > .emoji, @@ -396,7 +422,9 @@ & > .account.small { .display-name { - & > span { color: $lighter-text-color } + & > span { + color: $lighter-text-color; + } } } } @@ -430,7 +458,9 @@ background-repeat: no-repeat; overflow: hidden; - & > .close { mix-blend-mode: difference } + & > .close { + mix-blend-mode: difference; + } } .icon-button { @@ -455,12 +485,22 @@ left: 0; right: 0; box-sizing: border-box; - background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent); + background: linear-gradient( + 0deg, + rgba($base-shadow-color, 0.8) 0, + rgba($base-shadow-color, 0.35) 80%, + transparent + ); } } .compose-form__upload__actions { - background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent); + background: linear-gradient( + 180deg, + rgba($base-shadow-color, 0.8) 0, + rgba($base-shadow-color, 0.35) 80%, + transparent + ); display: flex; align-items: flex-start; justify-content: space-between; @@ -543,7 +583,8 @@ margin: 0 3px; border-width: 0 0 0 1px; border-style: none none none solid; - border-color: transparent transparent transparent darken($simple-background-color, 24%); + border-color: transparent transparent transparent + darken($simple-background-color, 24%); padding: 0; width: 0; height: 27px; @@ -604,7 +645,9 @@ flex: 1 1 auto; color: $lighter-text-color; - &:not(:first-child) { margin-left: 10px } + &:not(:first-child) { + margin-left: 10px; + } strong { display: block; @@ -621,11 +664,15 @@ .privacy-dropdown__option__content { color: $primary-text-color; - strong { color: $primary-text-color } + strong { + color: $primary-text-color; + } } } - &.active:hover { background: lighten($ui-highlight-color, 4%) } + &.active:hover { + background: lighten($ui-highlight-color, 4%); + } } .compose-form__publish { diff --git a/app/javascript/flavours/glitch/styles/components/directory.scss b/app/javascript/flavours/glitch/styles/components/directory.scss index 803e075c9e..4c914f1638 100644 --- a/app/javascript/flavours/glitch/styles/components/directory.scss +++ b/app/javascript/flavours/glitch/styles/components/directory.scss @@ -11,7 +11,11 @@ } .scrollable .account-card__bio::after { - background: linear-gradient(to left, lighten($ui-base-color, 8%), transparent); + background: linear-gradient( + to left, + lighten($ui-base-color, 8%), + transparent + ); } .filter-form { @@ -39,8 +43,8 @@ text-overflow: ellipsis; cursor: pointer; - input[type=radio], - input[type=checkbox] { + input[type='radio'], + input[type='checkbox'] { display: none; } diff --git a/app/javascript/flavours/glitch/styles/components/doodle.scss b/app/javascript/flavours/glitch/styles/components/doodle.scss index a4a1cfc84d..eddc1a2a81 100644 --- a/app/javascript/flavours/glitch/styles/components/doodle.scss +++ b/app/javascript/flavours/glitch/styles/components/doodle.scss @@ -38,7 +38,8 @@ $doodleBg: #d9e1e8; margin-right: 2px; } - input[type="number"],input[type="text"] { + input[type='number'], + input[type='text'] { width: 40px; } span.val { @@ -52,7 +53,7 @@ $doodleBg: #d9e1e8; .doodle-palette { padding-right: 0 !important; border: 1px solid black; - line-height: .2rem; + line-height: 0.2rem; flex-grow: 0; background: white; @@ -60,14 +61,15 @@ $doodleBg: #d9e1e8; appearance: none; width: 1rem; height: 1rem; - margin: 0; padding: 0; + margin: 0; + padding: 0; text-align: center; color: black; text-shadow: 0 0 1px white; cursor: pointer; - box-shadow: inset 0 0 1px rgba(white, .5); + box-shadow: inset 0 0 1px rgba(white, 0.5); border: 1px solid black; - outline-offset:-1px; + outline-offset: -1px; &.foreground { outline: 1px dashed white; diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss index cf996fb71c..2c2f251683 100644 --- a/app/javascript/flavours/glitch/styles/components/drawer.scss +++ b/app/javascript/flavours/glitch/styles/components/drawer.scss @@ -34,7 +34,8 @@ } @include single-column('screen and (max-width: 630px)') { - :root & { // Overrides `.wide` for single-column view + :root & { + // Overrides `.wide` for single-column view flex: auto; width: 100%; min-width: 0; @@ -43,7 +44,9 @@ } } - .react-swipeable-view-container & { height: 100% } + .react-swipeable-view-container & { + height: 100%; + } } .drawer--header { @@ -84,8 +87,14 @@ margin-bottom: 10px; flex: none; - @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 } - @include single-column('screen and (max-width: 630px)') { font-size: 16px } + @include limited-single-column( + 'screen and (max-width: #{$no-gap-breakpoint})' + ) { + margin-bottom: 0; + } + @include single-column('screen and (max-width: 630px)') { + font-size: 16px; + } } .search-popout { @@ -192,7 +201,9 @@ } .drawer__inner__mastodon { - background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; + background: lighten($ui-base-color, 13%) + url('data:image/svg+xml;utf8,') + no-repeat bottom / 100% auto; flex: 1; min-height: 47px; display: none; @@ -240,13 +251,27 @@ @for $i from 0 through 3 { .mbstobon-#{$i} .drawer__inner__mastodon { @if $i == 3 { - background: url('~flavours/glitch/images/wave-drawer.png') no-repeat bottom / 100% auto, lighten($ui-base-color, 13%); + background: url('~flavours/glitch/images/wave-drawer.png') + no-repeat + bottom / + 100% + auto, + lighten($ui-base-color, 13%); } @else { - background: url('~flavours/glitch/images/wave-drawer-glitched.png') no-repeat bottom / 100% auto, lighten($ui-base-color, 13%); + background: url('~flavours/glitch/images/wave-drawer-glitched.png') + no-repeat + bottom / + 100% + auto, + lighten($ui-base-color, 13%); } & > .mastodon { - background: url("~flavours/glitch/images/mbstobon-ui-#{$i}.png") no-repeat left bottom / contain; + background: url('~flavours/glitch/images/mbstobon-ui-#{$i}.png') + no-repeat + left + bottom / + contain; @if $i != 3 { filter: contrast(50%) brightness(50%); diff --git a/app/javascript/flavours/glitch/styles/components/emoji.scss b/app/javascript/flavours/glitch/styles/components/emoji.scss index c037e03f97..4427f2080d 100644 --- a/app/javascript/flavours/glitch/styles/components/emoji.scss +++ b/app/javascript/flavours/glitch/styles/components/emoji.scss @@ -2,7 +2,7 @@ font-size: inherit; vertical-align: middle; object-fit: contain; - margin: -.2ex .15em .2ex; + margin: -0.2ex 0.15em 0.2ex; width: 16px; height: 16px; diff --git a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss index 790650cfa3..6bb9827b3a 100644 --- a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss +++ b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss @@ -46,7 +46,7 @@ text-align: center; padding: 12px 4px; overflow: hidden; - transition: color .1s ease-out; + transition: color 0.1s ease-out; cursor: pointer; background: transparent; border: 0; @@ -174,7 +174,7 @@ &:hover::before { z-index: 0; - content: ""; + content: ''; position: absolute; top: 0; left: 0; @@ -246,8 +246,8 @@ padding: 5px 6px; padding-top: 70px; - .emoji-mart-no-results-label { - margin-top: .2em; + .emoji-mart-no-results-label { + margin-top: 0.2em; } .emoji-mart-emoji:hover::before { diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index d4c0d77c84..c52f395120 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -370,7 +370,7 @@ body > [data-popper-placement] { .ellipsis { &::after { - content: "…"; + content: '…'; } } @@ -480,11 +480,11 @@ body > [data-popper-placement] { justify-content: center; flex-direction: column; scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ + -ms-overflow-style: none; /* IE 10+ */ * { scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ + -ms-overflow-style: none; /* IE 10+ */ } &::-webkit-scrollbar, @@ -950,7 +950,8 @@ body > [data-popper-placement] { overflow-y: auto; } - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: strict; } @@ -971,7 +972,8 @@ body > [data-popper-placement] { } .scrollable.fullscreen { - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { + // hack to fix Chrome <57 contain: none; } } @@ -1014,7 +1016,8 @@ body > [data-popper-placement] { transition: background-color 0.2s ease; } -.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track { +.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { background-color: darken($ui-base-color, 10%); } @@ -1022,7 +1025,8 @@ body > [data-popper-placement] { background-color: darken($ui-highlight-color, 2%); } -.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track { +.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { background-color: $ui-highlight-color; } @@ -1654,8 +1658,8 @@ button.icon-button.active i.fa-retweet { .icon-badge { position: absolute; display: block; - right: -.25em; - top: -.25em; + right: -0.25em; + top: -0.25em; background-color: $ui-highlight-color; border-radius: 50%; font-size: 75%; @@ -1688,7 +1692,7 @@ button.icon-button.active i.fa-retweet { border-radius: 50%; width: 0.625rem; height: 0.625rem; - margin: -.1ex .15em .1ex; + margin: -0.1ex 0.15em 0.1ex; } &__content { @@ -1797,9 +1801,15 @@ noscript { } @keyframes flicker { - 0% { opacity: 1; } - 30% { opacity: 0.75; } - 100% { opacity: 1; } + 0% { + opacity: 1; + } + 30% { + opacity: 0.75; + } + 100% { + opacity: 1; + } } @import 'boost'; diff --git a/app/javascript/flavours/glitch/styles/components/local_settings.scss b/app/javascript/flavours/glitch/styles/components/local_settings.scss index f36b21e1cd..cd441a0c03 100644 --- a/app/javascript/flavours/glitch/styles/components/local_settings.scss +++ b/app/javascript/flavours/glitch/styles/components/local_settings.scss @@ -11,12 +11,14 @@ max-height: 450px; overflow: hidden; - label, legend { + label, + legend { display: block; font-size: 14px; } - .boolean label, .radio_buttons label { + .boolean label, + .radio_buttons label { position: relative; padding-left: 28px; padding-top: 3px; @@ -58,7 +60,7 @@ cursor: pointer; text-decoration: none; outline: none; - transition: background .3s; + transition: background 0.3s; .text-icon-button { color: inherit; @@ -74,7 +76,8 @@ color: $primary-text-color; } - &.close, &.close:hover { + &.close, + &.close:hover { background: $error-value-color; color: $primary-text-color; } diff --git a/app/javascript/flavours/glitch/styles/components/media.scss b/app/javascript/flavours/glitch/styles/components/media.scss index 9776e22659..0216daa127 100644 --- a/app/javascript/flavours/glitch/styles/components/media.scss +++ b/app/javascript/flavours/glitch/styles/components/media.scss @@ -348,7 +348,7 @@ padding: 0; border: 0; font-size: 0; - transition: opacity .2s ease-in-out; + transition: opacity 0.2s ease-in-out; &.active { opacity: 1; @@ -372,7 +372,6 @@ .video-player__volume__handle { bottom: 23px; } - } .audio-player { @@ -506,10 +505,15 @@ left: 0; right: 0; box-sizing: border-box; - background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent); + background: linear-gradient( + 0deg, + rgba($base-shadow-color, 0.85) 0, + rgba($base-shadow-color, 0.45) 60%, + transparent + ); padding: 0 15px; opacity: 0; - transition: opacity .1s ease; + transition: opacity 0.1s ease; &.active { opacity: 1; @@ -655,7 +659,7 @@ } &::before { - content: ""; + content: ''; width: 50px; background: rgba($white, 0.35); border-radius: 4px; @@ -725,7 +729,7 @@ position: relative; &::before { - content: ""; + content: ''; width: 100%; background: rgba($white, 0.35); border-radius: 4px; @@ -762,7 +766,7 @@ box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); .no-reduce-motion & { - transition: opacity .1s ease; + transition: opacity 0.1s ease; } &.active { diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss index 69d237dec6..fc9ba3a189 100644 --- a/app/javascript/flavours/glitch/styles/components/modal.scss +++ b/app/javascript/flavours/glitch/styles/components/modal.scss @@ -269,7 +269,8 @@ } .onboarding-modal__page__wrapper-0 { - background: url('~images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px; + background: url('~images/elephant_ui_greeting.svg') no-repeat left bottom / + auto 250px; height: 100%; padding: 0; } @@ -989,7 +990,8 @@ font-size: 14px; - label, input { + label, + input { vertical-align: middle; } } @@ -1020,7 +1022,9 @@ width: auto; outline: 0; font-family: inherit; - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; @@ -1280,7 +1284,7 @@ text-decoration: none; &:hover { - text-decoration: underline + text-decoration: underline; } } } diff --git a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss index 96cf067422..c99e99131d 100644 --- a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss +++ b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss @@ -85,14 +85,14 @@ counter-increment: list-counter; &::before { - content: counter(list-counter) "."; + content: counter(list-counter) '.'; position: absolute; left: 0; } } ul > li::before { - content: ""; + content: ''; position: absolute; background-color: $darker-text-color; border-radius: 50%; diff --git a/app/javascript/flavours/glitch/styles/components/sensitive.scss b/app/javascript/flavours/glitch/styles/components/sensitive.scss index 67b01c886a..490951fb4c 100644 --- a/app/javascript/flavours/glitch/styles/components/sensitive.scss +++ b/app/javascript/flavours/glitch/styles/components/sensitive.scss @@ -17,8 +17,10 @@ font-size: 12px; line-height: 18px; text-transform: uppercase; - opacity: .9; - transition: opacity .1s ease; + opacity: 0.9; + transition: opacity 0.1s ease; - .media-gallery:hover & { opacity: 1 } + .media-gallery:hover & { + opacity: 1; + } } diff --git a/app/javascript/flavours/glitch/styles/components/single_column.scss b/app/javascript/flavours/glitch/styles/components/single_column.scss index 74e5d0884c..036b3f6ef1 100644 --- a/app/javascript/flavours/glitch/styles/components/single_column.scss +++ b/app/javascript/flavours/glitch/styles/components/single_column.scss @@ -140,7 +140,7 @@ .scrollable { overflow: visible; - @supports(display: grid) { + @supports (display: grid) { contain: content; } } diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss index bb5bbc0ac6..9280ef8365 100644 --- a/app/javascript/flavours/glitch/styles/components/status.scss +++ b/app/javascript/flavours/glitch/styles/components/status.scss @@ -67,7 +67,9 @@ margin: -3px 0 0; } - p, pre, blockquote { + p, + pre, + blockquote { margin-bottom: 20px; white-space: pre-wrap; unicode-bidi: plaintext; @@ -86,12 +88,17 @@ margin-bottom: 20px; } - h1, h2, h3, h4, h5 { + h1, + h2, + h3, + h4, + h5 { margin-top: 20px; margin-bottom: 20px; } - h1, h2 { + h1, + h2 { font-weight: 700; font-size: 1.2em; } @@ -100,7 +107,9 @@ font-size: 1.1em; } - h3, h4, h5 { + h3, + h4, + h5 { font-weight: 500; } @@ -115,11 +124,13 @@ } } - b, strong { + b, + strong { font-weight: 700; } - em, i { + em, + i { font-style: italic; } @@ -133,7 +144,8 @@ vertical-align: super; } - ul, ol { + ul, + ol { margin-left: 2em; p { @@ -317,8 +329,12 @@ } @keyframes fade { - 0% { opacity: 0; } - 100% { opacity: 1; } + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } } opacity: 1; @@ -381,9 +397,14 @@ right: 0; top: 0; bottom: 0; - background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8)); + background-image: linear-gradient( + to bottom, + rgba($base-shadow-color, 0.75), + rgba($base-shadow-color, 0.65) 24px, + rgba($base-shadow-color, 0.8) + ); pointer-events: none; - content: ""; + content: ''; } .display-name:hover .display-name__html { @@ -397,25 +418,34 @@ padding-top: 0; &:after { - content: ""; + content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; - background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1)); + background: linear-gradient( + rgba($ui-base-color, 0), + rgba($ui-base-color, 1) + ); pointer-events: none; } - + a:hover { text-decoration: none; } } &:focus > .status__content:after { - background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1)); + background: linear-gradient( + rgba(lighten($ui-base-color, 4%), 0), + rgba(lighten($ui-base-color, 4%), 1) + ); } &.status-direct > .status__content:after { - background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1)); + background: linear-gradient( + rgba(lighten($ui-base-color, 8%), 0), + rgba(lighten($ui-base-color, 8%), 1) + ); } .notification__message { @@ -832,7 +862,8 @@ a.status__display-name, bottom: -1px; } - a .fa, a:hover .fa { + a .fa, + a:hover .fa { color: inherit; } } @@ -850,9 +881,9 @@ a.status-card { cursor: zoom-in; display: block; text-decoration: none; - width: 100%; - height: auto; - margin: 0; + width: 100%; + height: auto; + margin: 0; } .status-card-video { @@ -1063,7 +1094,7 @@ a.status-card.compact:hover { &.unread { &::before { - content: ""; + content: ''; position: absolute; top: 0; left: 0; diff --git a/app/javascript/flavours/glitch/styles/contrast/variables.scss b/app/javascript/flavours/glitch/styles/contrast/variables.scss index e272b6ca3f..e38d24b271 100644 --- a/app/javascript/flavours/glitch/styles/contrast/variables.scss +++ b/app/javascript/flavours/glitch/styles/contrast/variables.scss @@ -18,5 +18,5 @@ $highlight-text-color: lighten($ui-highlight-color, 10%) !default; $action-button-color: lighten($ui-base-color, 50%); $inverted-text-color: $black !default; -$lighter-text-color: darken($ui-base-color,6%) !default; +$lighter-text-color: darken($ui-base-color, 6%) !default; $light-text-color: darken($ui-primary-color, 40%) !default; diff --git a/app/javascript/flavours/glitch/styles/forms.scss b/app/javascript/flavours/glitch/styles/forms.scss index 6a73b3a2ce..602de9002e 100644 --- a/app/javascript/flavours/glitch/styles/forms.scss +++ b/app/javascript/flavours/glitch/styles/forms.scss @@ -300,7 +300,7 @@ code { max-width: 100%; height: auto; border-radius: 4px; - background: url("images/void.png"); + background: url('images/void.png'); &:last-child { margin-bottom: 0; @@ -385,7 +385,7 @@ code { flex: 1 1 auto; } - input[type=checkbox] { + input[type='checkbox'] { position: absolute; left: 0; top: 5px; @@ -401,12 +401,12 @@ code { border-radius: 4px; } - input[type=text], - input[type=number], - input[type=email], - input[type=password], - input[type=url], - input[type=datetime-local], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='url'], + input[type='datetime-local'], textarea { box-sizing: border-box; font-size: 16px; @@ -444,11 +444,11 @@ code { } } - input[type=text], - input[type=number], - input[type=email], - input[type=password], - input[type=datetime-local] { + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='datetime-local'] { &:focus:invalid:not(:placeholder-shown), &:required:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); @@ -460,11 +460,11 @@ code { color: lighten($error-red, 12%); } - input[type=text], - input[type=number], - input[type=email], - input[type=password], - input[type=datetime-local], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], + input[type='datetime-local'], textarea, select { border-color: lighten($error-red, 12%); @@ -568,7 +568,9 @@ code { outline: 0; font-family: inherit; resize: vertical; - background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: darken($ui-base-color, 10%) + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($ui-base-color, 14%); border-radius: 4px; padding-left: 10px; @@ -608,7 +610,11 @@ code { right: 0; bottom: 1px; width: 5px; - background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%)); + background-image: linear-gradient( + to right, + rgba(darken($ui-base-color, 10%), 0), + darken($ui-base-color, 10%) + ); } } } @@ -996,7 +1002,7 @@ code { flex: 1 1 auto; } - input[type=text] { + input[type='text'] { background: transparent; border: 0; padding: 10px; diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index b97c6c5ad6..bb97ecb5f4 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -152,7 +152,7 @@ html { } .compose-form__autosuggest-wrapper, -.poll__option input[type="text"], +.poll__option input[type='text'], .compose-form .spoiler-input__input, .compose-form__poll-wrapper select, .search__input, @@ -179,7 +179,9 @@ html { } .compose-form__poll-wrapper select { - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; } .compose-form__poll-wrapper, @@ -205,7 +207,9 @@ html { } .drawer__inner__mastodon { - background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; + background: $white + url('data:image/svg+xml;utf8,') + no-repeat bottom / 100% auto; } // Change the colors used in compose-form @@ -332,11 +336,13 @@ html { color: $white; } -.language-dropdown__dropdown__results__item .language-dropdown__dropdown__results__item__common-name { +.language-dropdown__dropdown__results__item + .language-dropdown__dropdown__results__item__common-name { color: lighten($ui-base-color, 8%); } -.language-dropdown__dropdown__results__item.active .language-dropdown__dropdown__results__item__common-name { +.language-dropdown__dropdown__results__item.active + .language-dropdown__dropdown__results__item__common-name { color: darken($ui-base-color, 12%); } @@ -490,7 +496,8 @@ html { background: darken($ui-secondary-color, 10%); } -.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track { +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) + .react-toggle-track { background: lighten($ui-highlight-color, 10%); } @@ -522,10 +529,10 @@ html { } .simple_form { - input[type="text"], - input[type="number"], - input[type="email"], - input[type="password"], + input[type='text'], + input[type='number'], + input[type='email'], + input[type='password'], textarea { &:hover { border-color: lighten($ui-base-color, 12%); @@ -682,7 +689,9 @@ html { .mute-modal select { border: 1px solid lighten($ui-base-color, 8%); - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; } // Glitch-soc-specific changes @@ -729,7 +738,8 @@ html { color: $white; } - &.close, &.close:hover { + &.close, + &.close:hover { background: $error-value-color; color: $primary-text-color; } @@ -746,11 +756,16 @@ html { } .status.collapsed .status__content:after { - background: linear-gradient(rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1)); + background: linear-gradient( + rgba(darken($ui-base-color, 13%), 0), + rgba(darken($ui-base-color, 13%), 1) + ); } .drawer__inner__mastodon { - background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto !important; + background: $white + url('data:image/svg+xml;utf8,') + no-repeat bottom / 100% auto !important; .mastodon { filter: contrast(75%) brightness(75%) !important; diff --git a/app/javascript/flavours/glitch/styles/modal.scss b/app/javascript/flavours/glitch/styles/modal.scss index a333926dd1..6170877b22 100644 --- a/app/javascript/flavours/glitch/styles/modal.scss +++ b/app/javascript/flavours/glitch/styles/modal.scss @@ -1,5 +1,7 @@ .modal-layout { - background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed; + background: $ui-base-color + url('data:image/svg+xml;utf8,') + repeat-x bottom fixed; display: flex; flex-direction: column; height: 100vh; diff --git a/app/javascript/flavours/glitch/styles/polls.scss b/app/javascript/flavours/glitch/styles/polls.scss index 407d718880..5b40aaebee 100644 --- a/app/javascript/flavours/glitch/styles/polls.scss +++ b/app/javascript/flavours/glitch/styles/polls.scss @@ -70,8 +70,8 @@ max-width: calc(100% - 45px - 25px); } - input[type=radio], - input[type=checkbox] { + input[type='radio'], + input[type='checkbox'] { display: none; } @@ -79,7 +79,7 @@ flex: 1 1 auto; } - input[type=text] { + input[type='text'] { display: block; box-sizing: border-box; width: 100%; @@ -205,7 +205,7 @@ &:active, &:focus { - background-color: rgba($dark-text-color, .1); + background-color: rgba($dark-text-color, 0.1); } } @@ -273,7 +273,9 @@ width: auto; outline: 0; font-family: inherit; - background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; + background: $simple-background-color + url("data:image/svg+xml;utf8,") + no-repeat right 8px center / auto 16px; border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; diff --git a/app/javascript/flavours/glitch/styles/rtl.scss b/app/javascript/flavours/glitch/styles/rtl.scss index c14c07cb90..64a5c2c03d 100644 --- a/app/javascript/flavours/glitch/styles/rtl.scss +++ b/app/javascript/flavours/glitch/styles/rtl.scss @@ -255,8 +255,8 @@ body.rtl { padding-right: 0; } - .simple_form .check_boxes .checkbox input[type="checkbox"], - .simple_form .input.boolean input[type="checkbox"] { + .simple_form .check_boxes .checkbox input[type='checkbox'], + .simple_form .input.boolean input[type='checkbox'] { left: auto; right: 0; } @@ -294,12 +294,18 @@ body.rtl { &::after { right: auto; left: 0; - background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%)); + background-image: linear-gradient( + to left, + rgba(darken($ui-base-color, 10%), 0), + darken($ui-base-color, 10%) + ); } } .simple_form select { - background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,") no-repeat left 8px center / auto 16px; + background: darken($ui-base-color, 10%) + url("data:image/svg+xml;utf8,") + no-repeat left 8px center / auto 16px; } .table th, @@ -346,11 +352,11 @@ body.rtl { } .fa-chevron-left::before { - content: "\F054"; + content: '\F054'; } .fa-chevron-right::before { - content: "\F053"; + content: '\F053'; } .column-back-button__icon { diff --git a/app/javascript/flavours/glitch/styles/statuses.scss b/app/javascript/flavours/glitch/styles/statuses.scss index 88fa3ffa07..f7037d9dc5 100644 --- a/app/javascript/flavours/glitch/styles/statuses.scss +++ b/app/javascript/flavours/glitch/styles/statuses.scss @@ -134,7 +134,7 @@ a.button.logo-button { } .embed { - .status__content[data-spoiler=folded] { + .status__content[data-spoiler='folded'] { .e-content { display: none; } diff --git a/app/javascript/flavours/glitch/styles/variables.scss b/app/javascript/flavours/glitch/styles/variables.scss index b865b5a2d1..25658bb0c8 100644 --- a/app/javascript/flavours/glitch/styles/variables.scss +++ b/app/javascript/flavours/glitch/styles/variables.scss @@ -1,18 +1,18 @@ // Commonly used web colors -$black: #000000; // Black -$white: #ffffff; // White -$success-green: #79bd9a; // Padua -$error-red: #df405a; // Cerise -$warning-red: #ff5050; // Sunset Orange -$gold-star: #ca8f04; // Dark Goldenrod +$black: #000000; // Black +$white: #ffffff; // White +$success-green: #79bd9a; // Padua +$error-red: #df405a; // Cerise +$warning-red: #ff5050; // Sunset Orange +$gold-star: #ca8f04; // Dark Goldenrod $red-bookmark: $warning-red; // Values from the classic Mastodon UI -$classic-base-color: #282c37; // Midnight Express -$classic-primary-color: #9baec8; // Echo Blue -$classic-secondary-color: #d9e1e8; // Pattens Blue -$classic-highlight-color: #6364ff; // Brand purple +$classic-base-color: #282c37; // Midnight Express +$classic-primary-color: #9baec8; // Echo Blue +$classic-secondary-color: #d9e1e8; // Pattens Blue +$classic-highlight-color: #6364ff; // Brand purple // Variables for defaults in UI $base-shadow-color: $black !default; @@ -23,10 +23,13 @@ $valid-value-color: $success-green !default; $error-value-color: $error-red !default; // Tell UI to use selected colors -$ui-base-color: $classic-base-color !default; // Darkest -$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest -$ui-primary-color: $classic-primary-color !default; // Lighter -$ui-secondary-color: $classic-secondary-color !default; // Lightest +$ui-base-color: $classic-base-color !default; // Darkest +$ui-base-lighter-color: lighten( + $ui-base-color, + 26% +) !default; // Lighter darkest +$ui-primary-color: $classic-primary-color !default; // Lighter +$ui-secondary-color: $classic-secondary-color !default; // Lightest $ui-highlight-color: $classic-highlight-color !default; // Variables for texts diff --git a/app/javascript/flavours/glitch/styles/widgets.scss b/app/javascript/flavours/glitch/styles/widgets.scss index fd091ee894..0f2b7ac5b3 100644 --- a/app/javascript/flavours/glitch/styles/widgets.scss +++ b/app/javascript/flavours/glitch/styles/widgets.scss @@ -1,4 +1,4 @@ -@use "sass:math"; +@use 'sass:math'; .hero-widget { margin-bottom: 10px; From 08289a38fa787694cb1c94292bd60b119a906315 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 16:54:30 -0500 Subject: [PATCH 0471/1220] Autofix Rubocop Style/TrailingCommaInArrayLiteral (#23692) --- .rubocop_todo.yml | 12 ------------ spec/helpers/jsonld_helper_spec.rb | 2 +- spec/lib/extractor_spec.rb | 2 +- .../activitypub/process_account_service_spec.rb | 2 +- .../activitypub/process_collection_service_spec.rb | 12 ++++++------ .../activitypub/move_distribution_worker_spec.rb | 2 +- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ca2b085c9c..5f03f3b783 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3405,18 +3405,6 @@ Style/SymbolProc: Exclude: - 'spec/lib/request_spec.rb' -# Offense count: 10 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyleForMultiline. -# SupportedStylesForMultiline: comma, consistent_comma, no_comma -Style/TrailingCommaInArrayLiteral: - Exclude: - - 'spec/helpers/jsonld_helper_spec.rb' - - 'spec/lib/extractor_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/workers/activitypub/move_distribution_worker_spec.rb' - # Offense count: 4 # This cop supports safe autocorrection (--autocorrect). Style/UnpackFirst: diff --git a/spec/helpers/jsonld_helper_spec.rb b/spec/helpers/jsonld_helper_spec.rb index 744a14f260..debee17f0f 100644 --- a/spec/helpers/jsonld_helper_spec.rb +++ b/spec/helpers/jsonld_helper_spec.rb @@ -113,7 +113,7 @@ describe JsonLdHelper do { 'type' => 'Mention', 'href' => ['foo'], - } + }, ], }, 'signature' => { diff --git a/spec/lib/extractor_spec.rb b/spec/lib/extractor_spec.rb index 9c9f5ef046..560617ed7d 100644 --- a/spec/lib/extractor_spec.rb +++ b/spec/lib/extractor_spec.rb @@ -20,7 +20,7 @@ describe Extractor do text = '@screen_name' extracted = Extractor.extract_mentions_or_lists_with_indices(text) expect(extracted).to eq [ - { screen_name: 'screen_name', indices: [0, 12] } + { screen_name: 'screen_name', indices: [0, 12] }, ] end diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 8e6ed178e0..d0af7de769 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -173,7 +173,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do type: 'Mention', href: "https://foo.test/users/#{i + 1}", name: "@user#{i + 1}", - } + }, ], to: ['as:Public', "https://foo.test/users/#{i + 1}"], }.with_indifferent_access diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index 0fa5321bc7..fbfa6d6c6b 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -107,17 +107,17 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do '@context': [ 'https://www.w3.org/ns/activitystreams', nil, - { object: 'https://www.w3.org/ns/activitystreams#object' } + { object: 'https://www.w3.org/ns/activitystreams#object' }, ], id: 'https://example.com/users/bob/fake-status/activity', type: 'Create', actor: 'https://example.com/users/bob', published: '2022-01-22T15:00:00Z', to: [ - 'https://www.w3.org/ns/activitystreams#Public' + 'https://www.w3.org/ns/activitystreams#Public', ], cc: [ - 'https://example.com/users/bob/followers' + 'https://example.com/users/bob/followers', ], signature: { type: 'RsaSignature2017', @@ -140,10 +140,10 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=puck-was-here', attributedTo: 'https://example.com/users/bob', to: [ - 'https://www.w3.org/ns/activitystreams#Public' + 'https://www.w3.org/ns/activitystreams#Public', ], cc: [ - 'https://example.com/users/bob/followers' + 'https://example.com/users/bob/followers', ], sensitive: false, atomUri: 'https://example.com/users/bob/fake-status', @@ -166,7 +166,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do { '@value': '

    hello world

    ', '@language': 'en', - } + }, ], 'https://www.w3.org/ns/activitystreams#published': { '@type': 'http://www.w3.org/2001/XMLSchema#dateTime', diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb index 57941065a7..482fa9db44 100644 --- a/spec/workers/activitypub/move_distribution_worker_spec.rb +++ b/spec/workers/activitypub/move_distribution_worker_spec.rb @@ -16,7 +16,7 @@ describe ActivityPub::MoveDistributionWorker do it 'delivers to followers and known blockers' do expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [ [kind_of(String), migration.account.id, 'http://example.com'], - [kind_of(String), migration.account.id, 'http://example2.com'] + [kind_of(String), migration.account.id, 'http://example2.com'], ]) subject.perform(migration.id) end From c0d7c855b3f6865f16c909e803093cebbc3bd709 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 16:59:00 -0500 Subject: [PATCH 0472/1220] Autofix Rubocop RSpec/Capybara/FeatureMethods (#23708) --- .rubocop_todo.yml | 8 -------- spec/features/log_in_spec.rb | 22 +++++++++++----------- spec/features/profile_spec.rb | 14 +++++++------- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 5f03f3b783..77c4f012cf 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -602,14 +602,6 @@ RSpec/BeforeAfterAll: Exclude: - 'spec/requests/localization_spec.rb' -# Offense count: 14 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnabledMethods. -RSpec/Capybara/FeatureMethods: - Exclude: - - 'spec/features/log_in_spec.rb' - - 'spec/features/profile_spec.rb' - # Offense count: 558 # Configuration parameters: Prefixes, AllowedPatterns. # Prefixes: when, with, without diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index de1a6de031..329cdf34cb 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -2,21 +2,21 @@ require 'rails_helper' -feature 'Log in' do +describe 'Log in' do include ProfileStories - given(:email) { "test@example.com" } - given(:password) { "password" } - given(:confirmed_at) { Time.zone.now } + subject { page } - background do + let(:email) { "test@example.com" } + let(:password) { "password" } + let(:confirmed_at) { Time.zone.now } + + before do as_a_registered_user visit new_user_session_path end - subject { page } - - scenario 'A valid email and password user is able to log in' do + it 'A valid email and password user is able to log in' do fill_in 'user_email', with: email fill_in 'user_password', with: password click_on I18n.t('auth.login') @@ -24,7 +24,7 @@ feature 'Log in' do is_expected.to have_css('div.app-holder') end - scenario 'A invalid email and password user is not able to log in' do + it 'A invalid email and password user is not able to log in' do fill_in 'user_email', with: 'invalid_email' fill_in 'user_password', with: 'invalid_password' click_on I18n.t('auth.login') @@ -33,9 +33,9 @@ feature 'Log in' do end context do - given(:confirmed_at) { nil } + let(:confirmed_at) { nil } - scenario 'A unconfirmed user is able to log in' do + it 'A unconfirmed user is able to log in' do fill_in 'user_email', with: email fill_in 'user_password', with: password click_on I18n.t('auth.login') diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index ec4f9a53fe..d1c6919c1a 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -2,25 +2,25 @@ require 'rails_helper' -feature 'Profile' do +describe 'Profile' do include ProfileStories - given(:local_domain) { ENV['LOCAL_DOMAIN'] } + subject { page } - background do + let(:local_domain) { ENV['LOCAL_DOMAIN'] } + + before do as_a_logged_in_user with_alice_as_local_user end - subject { page } - - scenario 'I can view Annes public account' do + it 'I can view Annes public account' do visit account_path('alice') is_expected.to have_title("alice (@alice@#{local_domain})") end - scenario 'I can change my account' do + it 'I can change my account' do visit settings_profile_path fill_in 'Display name', with: 'Bob' From 167709f6b0731c163619c58afcb0ca11bb393e54 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:00:17 -0500 Subject: [PATCH 0473/1220] Autofix Rubocop Style/BlockDelimiters (#23706) --- .rubocop_todo.yml | 13 --------- ...8_add_visible_in_picker_to_custom_emoji.rb | 4 +-- .../settings/applications_controller_spec.rb | 4 +-- spec/lib/webfinger_resource_spec.rb | 28 +++++++++---------- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 77c4f012cf..73dae59c54 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2686,19 +2686,6 @@ Security/IoMethods: - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' -# Offense count: 9 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods. -# SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces -# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object -# FunctionalMethods: let, let!, subject, watch -# AllowedMethods: lambda, proc, it -Style/BlockDelimiters: - Exclude: - - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/lib/webfinger_resource_spec.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). Style/CaseLikeIf: diff --git a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb index 60a2871015..946e26ff2c 100644 --- a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb +++ b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb @@ -1,7 +1,7 @@ class AddVisibleInPickerToCustomEmoji < ActiveRecord::Migration[5.1] def change - safety_assured { + safety_assured do add_column :custom_emojis, :visible_in_picker, :boolean, default: true, null: false - } + end end end diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 75d3240f9c..a882a6fb8c 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -112,11 +112,11 @@ describe Settings::ApplicationsController do describe 'PATCH #update' do context 'success' do - let(:opts) { + let(:opts) do { website: 'https://foo.bar/', } - } + end def call_update patch :update, params: { diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb index 5c7f475d69..ee007da70a 100644 --- a/spec/lib/webfinger_resource_spec.rb +++ b/spec/lib/webfinger_resource_spec.rb @@ -14,9 +14,9 @@ describe WebfingerResource do it 'raises with a route whose controller is not AccountsController' do resource = 'https://example.com/users/alice/other' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(ActiveRecord::RecordNotFound) + end.to raise_error(ActiveRecord::RecordNotFound) end it 'raises with a route whose action is not show' do @@ -29,17 +29,17 @@ describe WebfingerResource do expect(Rails.application.routes).to receive(:recognize_path).with(resource).and_return(recognized).at_least(:once) - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(ActiveRecord::RecordNotFound) + end.to raise_error(ActiveRecord::RecordNotFound) end it 'raises with a string that doesnt start with URL' do resource = 'website for http://example.com/users/alice/other' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(WebfingerResource::InvalidRequest) + end.to raise_error(WebfingerResource::InvalidRequest) end it 'finds the username in a valid https route' do @@ -68,9 +68,9 @@ describe WebfingerResource do it 'raises on a non-local domain' do resource = 'user@remote-host.com' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(ActiveRecord::RecordNotFound) + end.to raise_error(ActiveRecord::RecordNotFound) end it 'finds username for a local domain' do @@ -94,17 +94,17 @@ describe WebfingerResource do it 'raises on a non-local domain' do resource = 'acct:user@remote-host.com' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(ActiveRecord::RecordNotFound) + end.to raise_error(ActiveRecord::RecordNotFound) end it 'raises on a nonsense domain' do resource = 'acct:user@remote-host@remote-hostess.remote.local@remote' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(ActiveRecord::RecordNotFound) + end.to raise_error(ActiveRecord::RecordNotFound) end it 'finds the username for a local account if the domain is the local one' do @@ -128,9 +128,9 @@ describe WebfingerResource do it 'raises InvalidRequest' do resource = 'df/:dfkj' - expect { + expect do WebfingerResource.new(resource).username - }.to raise_error(WebfingerResource::InvalidRequest) + end.to raise_error(WebfingerResource::InvalidRequest) end end end From 2177daeae92b77be6797ba8f2ab6ebe1e641e078 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:09:40 -0500 Subject: [PATCH 0474/1220] Autofix Rubocop Style/RedundantBegin (#23703) --- .rubocop_todo.yml | 73 ------------------- app/controllers/admin/dashboard_controller.rb | 12 ++- .../api/v1/announcements_controller.rb | 4 +- .../api/v1/trends/links_controller.rb | 12 ++- .../api/v1/trends/statuses_controller.rb | 12 ++- .../api/v1/trends/tags_controller.rb | 12 ++- .../concerns/rate_limit_headers.rb | 12 ++- .../two_factor_authentication_concern.rb | 12 ++- app/helpers/admin/dashboard_helper.rb | 24 +++--- app/helpers/admin/trends/statuses_helper.rb | 12 ++- app/helpers/branding_helper.rb | 14 ++-- app/helpers/domain_control_helper.rb | 12 ++- app/helpers/formatting_helper.rb | 40 +++++----- app/helpers/instance_helper.rb | 12 ++- app/helpers/jsonld_helper.rb | 16 ++-- app/lib/activity_tracker.rb | 14 ++-- app/lib/activitypub/activity/create.rb | 38 +++++----- app/lib/activitypub/forwarder.rb | 12 ++- .../dimension/software_versions_dimension.rb | 12 ++- .../dimension/space_usage_dimension.rb | 12 ++- app/lib/extractor.rb | 10 +-- app/lib/importer/statuses_index_importer.rb | 12 ++- app/lib/link_details_extractor.rb | 30 ++++---- app/lib/request.rb | 34 ++++----- app/models/account.rb | 13 ++-- app/models/account/field.rb | 12 ++- app/models/admin/account_action.rb | 12 ++- app/models/announcement.rb | 12 ++- app/models/concerns/account_merging.rb | 16 ++-- app/models/concerns/pam_authenticable.rb | 12 ++- app/models/email_domain_block.rb | 12 ++- app/models/form/admin_settings.rb | 12 ++- app/models/form/custom_emoji_batch.rb | 12 ++- app/models/notification.rb | 12 ++- app/models/remote_follow.rb | 12 ++- app/models/status.rb | 13 ++-- app/models/status_edit.rb | 14 ++-- app/models/trends/links.rb | 24 +++--- app/models/trends/statuses.rb | 24 +++--- app/models/trends/tag_filter.rb | 12 ++- app/models/trends/tags.rb | 12 ++- app/models/web/push_subscription.rb | 24 +++--- app/presenters/tag_relationships_presenter.rb | 12 ++- app/services/account_search_service.rb | 16 ++-- .../fetch_featured_tags_collection_service.rb | 14 ++-- .../fetch_remote_status_service.rb | 12 ++- app/services/fetch_link_card_service.rb | 16 ++-- app/services/process_mentions_service.rb | 12 ++- app/services/reblog_service.rb | 12 ++- app/services/resolve_account_service.rb | 12 ++- app/validators/domain_validator.rb | 12 ++- app/validators/existing_username_validator.rb | 14 ++-- app/validators/import_validator.rb | 12 ++- app/workers/backup_worker.rb | 10 +-- app/workers/post_process_media_worker.rb | 12 ++- .../follow_recommendations_scheduler.rb | 12 ++- ...0180528141303_fix_accounts_unique_index.rb | 16 ++-- .../20180812173710_copy_status_stats.rb | 10 +-- .../20181116173541_copy_account_stats.rb | 10 +-- lib/mastodon/accounts_cli.rb | 28 +++---- lib/mastodon/cli_helper.rb | 42 +++++------ lib/mastodon/ip_blocks_cli.rb | 12 ++- lib/mastodon/maintenance_cli.rb | 64 ++++++---------- lib/mastodon/media_cli.rb | 12 ++- lib/mastodon/search_cli.rb | 12 ++- lib/mastodon/upgrade_cli.rb | 18 ++--- lib/paperclip/color_extractor.rb | 12 ++- lib/sanitize_ext/sanitize_config.rb | 12 ++- lib/tasks/db.rake | 14 ++-- 69 files changed, 458 insertions(+), 695 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 73dae59c54..7620025cfd 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2958,79 +2958,6 @@ Style/RedundantArgument: - 'app/helpers/application_helper.rb' - 'lib/tasks/emojis.rake' -# Offense count: 83 -# This cop supports safe autocorrection (--autocorrect). -Style/RedundantBegin: - Exclude: - - 'app/controllers/admin/dashboard_controller.rb' - - 'app/controllers/api/v1/announcements_controller.rb' - - 'app/controllers/api/v1/trends/links_controller.rb' - - 'app/controllers/api/v1/trends/statuses_controller.rb' - - 'app/controllers/api/v1/trends/tags_controller.rb' - - 'app/controllers/concerns/rate_limit_headers.rb' - - 'app/controllers/concerns/two_factor_authentication_concern.rb' - - 'app/helpers/admin/dashboard_helper.rb' - - 'app/helpers/admin/trends/statuses_helper.rb' - - 'app/helpers/branding_helper.rb' - - 'app/helpers/domain_control_helper.rb' - - 'app/helpers/formatting_helper.rb' - - 'app/helpers/instance_helper.rb' - - 'app/helpers/jsonld_helper.rb' - - 'app/lib/activity_tracker.rb' - - 'app/lib/activitypub/activity/create.rb' - - 'app/lib/activitypub/forwarder.rb' - - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' - - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' - - 'app/lib/extractor.rb' - - 'app/lib/importer/statuses_index_importer.rb' - - 'app/lib/link_details_extractor.rb' - - 'app/lib/request.rb' - - 'app/models/account.rb' - - 'app/models/account/field.rb' - - 'app/models/admin/account_action.rb' - - 'app/models/announcement.rb' - - 'app/models/concerns/account_merging.rb' - - 'app/models/concerns/pam_authenticable.rb' - - 'app/models/email_domain_block.rb' - - 'app/models/form/admin_settings.rb' - - 'app/models/form/custom_emoji_batch.rb' - - 'app/models/notification.rb' - - 'app/models/remote_follow.rb' - - 'app/models/status.rb' - - 'app/models/status_edit.rb' - - 'app/models/trends/links.rb' - - 'app/models/trends/statuses.rb' - - 'app/models/trends/tag_filter.rb' - - 'app/models/trends/tags.rb' - - 'app/models/web/push_subscription.rb' - - 'app/presenters/tag_relationships_presenter.rb' - - 'app/services/account_search_service.rb' - - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/fetch_link_card_service.rb' - - 'app/services/process_mentions_service.rb' - - 'app/services/reblog_service.rb' - - 'app/services/resolve_account_service.rb' - - 'app/validators/domain_validator.rb' - - 'app/validators/existing_username_validator.rb' - - 'app/validators/import_validator.rb' - - 'app/workers/backup_worker.rb' - - 'app/workers/post_process_media_worker.rb' - - 'app/workers/scheduler/follow_recommendations_scheduler.rb' - - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' - - 'db/migrate/20180812173710_copy_status_stats.rb' - - 'db/migrate/20181116173541_copy_account_stats.rb' - - 'lib/mastodon/accounts_cli.rb' - - 'lib/mastodon/cli_helper.rb' - - 'lib/mastodon/ip_blocks_cli.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'lib/mastodon/media_cli.rb' - - 'lib/mastodon/search_cli.rb' - - 'lib/mastodon/upgrade_cli.rb' - - 'lib/paperclip/color_extractor.rb' - - 'lib/sanitize_ext/sanitize_config.rb' - - 'lib/tasks/db.rake' - # Offense count: 16 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb index 924b623ad8..099512248f 100644 --- a/app/controllers/admin/dashboard_controller.rb +++ b/app/controllers/admin/dashboard_controller.rb @@ -18,13 +18,11 @@ module Admin private def redis_info - @redis_info ||= begin - if redis.is_a?(Redis::Namespace) - redis.redis.info - else - redis.info - end - end + @redis_info ||= if redis.is_a?(Redis::Namespace) + redis.redis.info + else + redis.info + end end end end diff --git a/app/controllers/api/v1/announcements_controller.rb b/app/controllers/api/v1/announcements_controller.rb index ee79fc19f1..82e9cf7de4 100644 --- a/app/controllers/api/v1/announcements_controller.rb +++ b/app/controllers/api/v1/announcements_controller.rb @@ -18,9 +18,7 @@ class Api::V1::AnnouncementsController < Api::BaseController private def set_announcements - @announcements = begin - Announcement.published.chronological - end + @announcements = Announcement.published.chronological end def set_announcement diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb index 8ff3b364e2..3ce20fb786 100644 --- a/app/controllers/api/v1/trends/links_controller.rb +++ b/app/controllers/api/v1/trends/links_controller.rb @@ -18,13 +18,11 @@ class Api::V1::Trends::LinksController < Api::BaseController end def set_links - @links = begin - if enabled? - links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT)) - else - [] - end - end + @links = if enabled? + links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT)) + else + [] + end end def links_from_trends diff --git a/app/controllers/api/v1/trends/statuses_controller.rb b/app/controllers/api/v1/trends/statuses_controller.rb index c275d5fc81..3aab92477d 100644 --- a/app/controllers/api/v1/trends/statuses_controller.rb +++ b/app/controllers/api/v1/trends/statuses_controller.rb @@ -16,13 +16,11 @@ class Api::V1::Trends::StatusesController < Api::BaseController end def set_statuses - @statuses = begin - if enabled? - cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status) - else - [] - end - end + @statuses = if enabled? + cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status) + else + [] + end end def statuses_from_trends diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb index 21adfa2a1f..75c3ed218b 100644 --- a/app/controllers/api/v1/trends/tags_controller.rb +++ b/app/controllers/api/v1/trends/tags_controller.rb @@ -18,13 +18,11 @@ class Api::V1::Trends::TagsController < Api::BaseController end def set_tags - @tags = begin - if enabled? - tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT)) - else - [] - end - end + @tags = if enabled? + tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT)) + else + [] + end end def tags_from_trends diff --git a/app/controllers/concerns/rate_limit_headers.rb b/app/controllers/concerns/rate_limit_headers.rb index b21abfb033..30702f00e7 100644 --- a/app/controllers/concerns/rate_limit_headers.rb +++ b/app/controllers/concerns/rate_limit_headers.rb @@ -6,13 +6,11 @@ module RateLimitHeaders class_methods do def override_rate_limit_headers(method_name, options = {}) around_action(only: method_name, if: :current_account) do |_controller, block| - begin - block.call - ensure - rate_limiter = RateLimiter.new(current_account, options) - rate_limit_headers = rate_limiter.to_headers - response.headers.merge!(rate_limit_headers) unless response.headers['X-RateLimit-Remaining'].present? && rate_limit_headers['X-RateLimit-Remaining'].to_i > response.headers['X-RateLimit-Remaining'].to_i - end + block.call + ensure + rate_limiter = RateLimiter.new(current_account, options) + rate_limit_headers = rate_limiter.to_headers + response.headers.merge!(rate_limit_headers) unless response.headers['X-RateLimit-Remaining'].present? && rate_limit_headers['X-RateLimit-Remaining'].to_i > response.headers['X-RateLimit-Remaining'].to_i end end end diff --git a/app/controllers/concerns/two_factor_authentication_concern.rb b/app/controllers/concerns/two_factor_authentication_concern.rb index 27f2367a8e..e69b67a795 100644 --- a/app/controllers/concerns/two_factor_authentication_concern.rb +++ b/app/controllers/concerns/two_factor_authentication_concern.rb @@ -79,13 +79,11 @@ module TwoFactorAuthenticationConcern @body_classes = 'lighter' @webauthn_enabled = user.webauthn_enabled? - @scheme_type = begin - if user.webauthn_enabled? && user_params[:otp_attempt].blank? - 'webauthn' - else - 'totp' - end - end + @scheme_type = if user.webauthn_enabled? && user_params[:otp_attempt].blank? + 'webauthn' + else + 'totp' + end set_locale { render :two_factor } end diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb index c21d413419..6096ff1381 100644 --- a/app/helpers/admin/dashboard_helper.rb +++ b/app/helpers/admin/dashboard_helper.rb @@ -19,19 +19,17 @@ module Admin::DashboardHelper end def relevant_account_timestamp(account) - timestamp, exact = begin - if account.user_current_sign_in_at && account.user_current_sign_in_at < 24.hours.ago - [account.user_current_sign_in_at, true] - elsif account.user_current_sign_in_at - [account.user_current_sign_in_at, false] - elsif account.user_pending? - [account.user_created_at, true] - elsif account.last_status_at.present? - [account.last_status_at, true] - else - [nil, false] - end - end + timestamp, exact = if account.user_current_sign_in_at && account.user_current_sign_in_at < 24.hours.ago + [account.user_current_sign_in_at, true] + elsif account.user_current_sign_in_at + [account.user_current_sign_in_at, false] + elsif account.user_pending? + [account.user_created_at, true] + elsif account.last_status_at.present? + [account.last_status_at, true] + else + [nil, false] + end return '-' if timestamp.nil? return t('generic.today') unless exact diff --git a/app/helpers/admin/trends/statuses_helper.rb b/app/helpers/admin/trends/statuses_helper.rb index 214c1e2a68..79fee44dc4 100644 --- a/app/helpers/admin/trends/statuses_helper.rb +++ b/app/helpers/admin/trends/statuses_helper.rb @@ -2,13 +2,11 @@ module Admin::Trends::StatusesHelper def one_line_preview(status) - text = begin - if status.local? - status.text.split("\n").first - else - Nokogiri::HTML(status.text).css('html > body > *').first&.text - end - end + text = if status.local? + status.text.split("\n").first + else + Nokogiri::HTML(status.text).css('html > body > *').first&.text + end return '' if text.blank? diff --git a/app/helpers/branding_helper.rb b/app/helpers/branding_helper.rb index ad7702aea7..548c954110 100644 --- a/app/helpers/branding_helper.rb +++ b/app/helpers/branding_helper.rb @@ -23,14 +23,12 @@ module BrandingHelper end def render_symbol(version = :icon) - path = begin - case version - when :icon - 'logo-symbol-icon.svg' - when :wordmark - 'logo-symbol-wordmark.svg' - end - end + path = case version + when :icon + 'logo-symbol-icon.svg' + when :wordmark + 'logo-symbol-wordmark.svg' + end render(file: Rails.root.join('app', 'javascript', 'images', path)).html_safe # rubocop:disable Rails/OutputSafety end diff --git a/app/helpers/domain_control_helper.rb b/app/helpers/domain_control_helper.rb index ac60cad295..ffcf375ea7 100644 --- a/app/helpers/domain_control_helper.rb +++ b/app/helpers/domain_control_helper.rb @@ -4,13 +4,11 @@ module DomainControlHelper def domain_not_allowed?(uri_or_domain) return if uri_or_domain.blank? - domain = begin - if uri_or_domain.include?('://') - Addressable::URI.parse(uri_or_domain).host - else - uri_or_domain - end - end + domain = if uri_or_domain.include?('://') + Addressable::URI.parse(uri_or_domain).host + else + uri_or_domain + end if whitelist_mode? !DomainAllow.allowed?(domain) diff --git a/app/helpers/formatting_helper.rb b/app/helpers/formatting_helper.rb index c709314897..d390b9bc96 100644 --- a/app/helpers/formatting_helper.rb +++ b/app/helpers/formatting_helper.rb @@ -21,30 +21,26 @@ module FormattingHelper def rss_status_content_format(status) html = status_content_format(status) - before_html = begin - if status.spoiler_text? - tag.p do - tag.strong do - I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale) - end + before_html = if status.spoiler_text? + tag.p do + tag.strong do + I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale) + end - status.spoiler_text - end + tag.hr - end - end + status.spoiler_text + end + tag.hr + end - after_html = begin - if status.preloadable_poll - tag.p do - safe_join( - status.preloadable_poll.options.map do |o| - tag.send(status.preloadable_poll.multiple? ? 'checkbox' : 'radio', o, disabled: true) - end, - tag.br - ) - end - end - end + after_html = if status.preloadable_poll + tag.p do + safe_join( + status.preloadable_poll.options.map do |o| + tag.send(status.preloadable_poll.multiple? ? 'checkbox' : 'radio', o, disabled: true) + end, + tag.br + ) + end + end prerender_custom_emojis( safe_join([before_html, html, after_html]), diff --git a/app/helpers/instance_helper.rb b/app/helpers/instance_helper.rb index daacb535b6..bedfe6f304 100644 --- a/app/helpers/instance_helper.rb +++ b/app/helpers/instance_helper.rb @@ -10,13 +10,11 @@ module InstanceHelper end def description_for_sign_up - prefix = begin - if @invite.present? - I18n.t('auth.description.prefix_invited_by_user', name: @invite.user.account.username) - else - I18n.t('auth.description.prefix_sign_up') - end - end + prefix = if @invite.present? + I18n.t('auth.description.prefix_invited_by_user', name: @invite.user.account.username) + else + I18n.t('auth.description.prefix_sign_up') + end safe_join([prefix, I18n.t('auth.description.suffix')], ' ') end diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index e5787fd471..24362b61e7 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -26,15 +26,13 @@ module JsonLdHelper # The url attribute can be a string, an array of strings, or an array of objects. # The objects could include a mimeType. Not-included mimeType means it's text/html. def url_to_href(value, preferred_type = nil) - single_value = begin - if value.is_a?(Array) && !value.first.is_a?(String) - value.find { |link| preferred_type.nil? || ((link['mimeType'].presence || 'text/html') == preferred_type) } - elsif value.is_a?(Array) - value.first - else - value - end - end + single_value = if value.is_a?(Array) && !value.first.is_a?(String) + value.find { |link| preferred_type.nil? || ((link['mimeType'].presence || 'text/html') == preferred_type) } + elsif value.is_a?(Array) + value.first + else + value + end if single_value.nil? || single_value.is_a?(String) single_value diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb index 6d3401b37b..8829d8605f 100644 --- a/app/lib/activity_tracker.rb +++ b/app/lib/activity_tracker.rb @@ -27,14 +27,12 @@ class ActivityTracker (start_at.to_date...end_at.to_date).map do |date| key = key_at(date.to_time(:utc)) - value = begin - case @type - when :basic - redis.get(key).to_i - when :unique - redis.pfcount(key) - end - end + value = case @type + when :basic + redis.get(key).to_i + when :unique + redis.pfcount(key) + end [date, value] end diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index f82112c02d..e2355bfbcc 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -108,26 +108,24 @@ class ActivityPub::Activity::Create < ActivityPub::Activity def process_status_params @status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: @account.followers_url) - @params = begin - { - uri: @status_parser.uri, - url: @status_parser.url || @status_parser.uri, - account: @account, - text: converted_object_type? ? converted_text : (@status_parser.text || ''), - language: @status_parser.language, - spoiler_text: converted_object_type? ? '' : (@status_parser.spoiler_text || ''), - created_at: @status_parser.created_at, - edited_at: @status_parser.edited_at && @status_parser.edited_at != @status_parser.created_at ? @status_parser.edited_at : nil, - override_timestamps: @options[:override_timestamps], - reply: @status_parser.reply, - sensitive: @account.sensitized? || @status_parser.sensitive || false, - visibility: @status_parser.visibility, - thread: replied_to_status, - conversation: conversation_from_uri(@object['conversation']), - media_attachment_ids: process_attachments.take(4).map(&:id), - poll: process_poll, - } - end + @params = { + uri: @status_parser.uri, + url: @status_parser.url || @status_parser.uri, + account: @account, + text: converted_object_type? ? converted_text : (@status_parser.text || ''), + language: @status_parser.language, + spoiler_text: converted_object_type? ? '' : (@status_parser.spoiler_text || ''), + created_at: @status_parser.created_at, + edited_at: @status_parser.edited_at && @status_parser.edited_at != @status_parser.created_at ? @status_parser.edited_at : nil, + override_timestamps: @options[:override_timestamps], + reply: @status_parser.reply, + sensitive: @account.sensitized? || @status_parser.sensitive || false, + visibility: @status_parser.visibility, + thread: replied_to_status, + conversation: conversation_from_uri(@object['conversation']), + media_attachment_ids: process_attachments.take(4).map(&:id), + poll: process_poll, + } end def process_audience diff --git a/app/lib/activitypub/forwarder.rb b/app/lib/activitypub/forwarder.rb index 4206b9d822..b01d63e586 100644 --- a/app/lib/activitypub/forwarder.rb +++ b/app/lib/activitypub/forwarder.rb @@ -28,13 +28,11 @@ class ActivityPub::Forwarder end def signature_account_id - @signature_account_id ||= begin - if in_reply_to_local? - in_reply_to.account_id - else - reblogged_by_account_ids.first - end - end + @signature_account_id ||= if in_reply_to_local? + in_reply_to.account_id + else + reblogged_by_account_ids.first + end end def inboxes diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb index 816615f992..9ab3776c91 100644 --- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb +++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb @@ -58,12 +58,10 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim end def redis_info - @redis_info ||= begin - if redis.is_a?(Redis::Namespace) - redis.redis.info - else - redis.info - end - end + @redis_info ||= if redis.is_a?(Redis::Namespace) + redis.redis.info + else + redis.info + end end end diff --git a/app/lib/admin/metrics/dimension/space_usage_dimension.rb b/app/lib/admin/metrics/dimension/space_usage_dimension.rb index 5867c5bab6..cc85608904 100644 --- a/app/lib/admin/metrics/dimension/space_usage_dimension.rb +++ b/app/lib/admin/metrics/dimension/space_usage_dimension.rb @@ -59,12 +59,10 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension end def redis_info - @redis_info ||= begin - if redis.is_a?(Redis::Namespace) - redis.redis.info - else - redis.info - end - end + @redis_info ||= if redis.is_a?(Redis::Namespace) + redis.redis.info + else + redis.info + end end end diff --git a/app/lib/extractor.rb b/app/lib/extractor.rb index 1eba689ef1..540bbe1a92 100644 --- a/app/lib/extractor.rb +++ b/app/lib/extractor.rb @@ -8,12 +8,10 @@ module Extractor module_function def extract_entities_with_indices(text, options = {}, &block) - entities = begin - extract_urls_with_indices(text, options) + - extract_hashtags_with_indices(text, check_url_overlap: false) + - extract_mentions_or_lists_with_indices(text) + - extract_extra_uris_with_indices(text) - end + entities = extract_urls_with_indices(text, options) + + extract_hashtags_with_indices(text, check_url_overlap: false) + + extract_mentions_or_lists_with_indices(text) + + extract_extra_uris_with_indices(text) return [] if entities.empty? diff --git a/app/lib/importer/statuses_index_importer.rb b/app/lib/importer/statuses_index_importer.rb index 5b5153d5c8..b0721c2e02 100644 --- a/app/lib/importer/statuses_index_importer.rb +++ b/app/lib/importer/statuses_index_importer.rb @@ -24,13 +24,11 @@ class Importer::StatusesIndexImporter < Importer::BaseImporter # is called before rendering the data and we need to filter based # on the results of the filter, so this filtering happens here instead bulk.map! do |entry| - new_entry = begin - if entry[:index] && entry.dig(:index, :data, 'searchable_by').blank? - { delete: entry[:index].except(:data) } - else - entry - end - end + new_entry = if entry[:index] && entry.dig(:index, :data, 'searchable_by').blank? + { delete: entry[:index].except(:data) } + else + entry + end if new_entry[:index] indexed += 1 diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 2e0672abe1..74a7d0f3bc 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -232,26 +232,24 @@ class LinkDetailsExtractor end def structured_data - @structured_data ||= begin - # Some publications have more than one JSON-LD definition on the page, - # and some of those definitions aren't valid JSON either, so we have - # to loop through here until we find something that is the right type - # and doesn't break - document.xpath('//script[@type="application/ld+json"]').filter_map do |element| - json_ld = element.content&.gsub(CDATA_JUNK_PATTERN, '') + # Some publications have more than one JSON-LD definition on the page, + # and some of those definitions aren't valid JSON either, so we have + # to loop through here until we find something that is the right type + # and doesn't break + @structured_data ||= document.xpath('//script[@type="application/ld+json"]').filter_map do |element| + json_ld = element.content&.gsub(CDATA_JUNK_PATTERN, '') - next if json_ld.blank? + next if json_ld.blank? - structured_data = StructuredData.new(html_entities.decode(json_ld)) + structured_data = StructuredData.new(html_entities.decode(json_ld)) - next unless structured_data.valid? + next unless structured_data.valid? - structured_data - rescue Oj::ParseError, EncodingError - Rails.logger.debug { "Invalid JSON-LD in #{@original_url}" } - next - end.first - end + structured_data + rescue Oj::ParseError, EncodingError + Rails.logger.debug { "Invalid JSON-LD in #{@original_url}" } + next + end.first end def document diff --git a/app/lib/request.rb b/app/lib/request.rb index 0508169dcb..be6a69b3ff 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -215,26 +215,24 @@ class Request addr_by_socket = {} addresses.each do |address| - begin - check_private_address(address, host) + check_private_address(address, host) - sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0) - sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s) + sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0) + sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s) - sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1) + sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1) - sock.connect_nonblock(sockaddr) + sock.connect_nonblock(sockaddr) - # If that hasn't raised an exception, we somehow managed to connect - # immediately, close pending sockets and return immediately - socks.each(&:close) - return sock - rescue IO::WaitWritable - socks << sock - addr_by_socket[sock] = sockaddr - rescue => e - outer_e = e - end + # If that hasn't raised an exception, we somehow managed to connect + # immediately, close pending sockets and return immediately + socks.each(&:close) + return sock + rescue IO::WaitWritable + socks << sock + addr_by_socket[sock] = sockaddr + rescue => e + outer_e = e end until socks.empty? @@ -279,9 +277,7 @@ class Request end def private_address_exceptions - @private_address_exceptions = begin - (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(',').map { |addr| IPAddr.new(addr) } - end + @private_address_exceptions = (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(',').map { |addr| IPAddr.new(addr) } end end end diff --git a/app/models/account.rb b/app/models/account.rb index a96e204fab..2c0cd577e6 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -459,13 +459,12 @@ class Account < ApplicationRecord return [] if text.blank? text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.filter_map do |(username, domain)| - domain = begin - if TagManager.instance.local_domain?(domain) - nil - else - TagManager.instance.normalize_domain(domain) - end - end + domain = if TagManager.instance.local_domain?(domain) + nil + else + TagManager.instance.normalize_domain(domain) + end + EntityCache.instance.mention(username, domain) end end diff --git a/app/models/account/field.rb b/app/models/account/field.rb index 4db4cac301..98c29726df 100644 --- a/app/models/account/field.rb +++ b/app/models/account/field.rb @@ -25,13 +25,11 @@ class Account::Field < ActiveModelSerializers::Model end def value_for_verification - @value_for_verification ||= begin - if account.local? - value - else - extract_url_from_html - end - end + @value_for_verification ||= if account.local? + value + else + extract_url_from_html + end end def verifiable? diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb index bce0d6e179..1ce28f5c82 100644 --- a/app/models/admin/account_action.rb +++ b/app/models/admin/account_action.rb @@ -166,13 +166,11 @@ class Admin::AccountAction end def reports - @reports ||= begin - if type == 'none' - with_report? ? [report] : [] - else - Report.where(target_account: target_account).unresolved - end - end + @reports ||= if type == 'none' + with_report? ? [report] : [] + else + Report.where(target_account: target_account).unresolved + end end def warning_preset diff --git a/app/models/announcement.rb b/app/models/announcement.rb index 4b2cb4c6d0..898bf3efa9 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -54,13 +54,11 @@ class Announcement < ApplicationRecord end def statuses - @statuses ||= begin - if status_ids.nil? - [] - else - Status.where(id: status_ids, visibility: [:public, :unlisted]) - end - end + @statuses ||= if status_ids.nil? + [] + else + Status.where(id: status_ids, visibility: [:public, :unlisted]) + end end def tags diff --git a/app/models/concerns/account_merging.rb b/app/models/concerns/account_merging.rb index 8161761fb5..41071633db 100644 --- a/app/models/concerns/account_merging.rb +++ b/app/models/concerns/account_merging.rb @@ -21,11 +21,9 @@ module AccountMerging owned_classes.each do |klass| klass.where(account_id: other_account.id).find_each do |record| - begin - record.update_attribute(:account_id, id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:account_id, id) + rescue ActiveRecord::RecordNotUnique + next end end @@ -36,11 +34,9 @@ module AccountMerging target_classes.each do |klass| klass.where(target_account_id: other_account.id).find_each do |record| - begin - record.update_attribute(:target_account_id, id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:target_account_id, id) + rescue ActiveRecord::RecordNotUnique + next end end diff --git a/app/models/concerns/pam_authenticable.rb b/app/models/concerns/pam_authenticable.rb index 6169d4dfaa..f97f986a41 100644 --- a/app/models/concerns/pam_authenticable.rb +++ b/app/models/concerns/pam_authenticable.rb @@ -42,13 +42,11 @@ module PamAuthenticable def self.pam_get_user(attributes = {}) return nil unless attributes[:email] - resource = begin - if Devise.check_at_sign && !attributes[:email].index('@') - joins(:account).find_by(accounts: { username: attributes[:email] }) - else - find_by(email: attributes[:email]) - end - end + resource = if Devise.check_at_sign && !attributes[:email].index('@') + joins(:account).find_by(accounts: { username: attributes[:email] }) + else + find_by(email: attributes[:email]) + end if resource.nil? resource = new(email: attributes[:email], agreement: true) diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb index 10a0e51020..3a56e4f2aa 100644 --- a/app/models/email_domain_block.rb +++ b/app/models/email_domain_block.rb @@ -69,13 +69,11 @@ class EmailDomainBlock < ApplicationRecord def extract_uris(domain_or_domains) Array(domain_or_domains).map do |str| - domain = begin - if str.include?('@') - str.split('@', 2).last - else - str - end - end + domain = if str.include?('@') + str.split('@', 2).last + else + str + end Addressable::URI.new.tap { |u| u.host = domain.strip } if domain.present? rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 070478e8ee..95c53084a7 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -76,13 +76,11 @@ class Form::AdminSettings define_method(key) do return instance_variable_get("@#{key}") if instance_variable_defined?("@#{key}") - stored_value = begin - if UPLOAD_KEYS.include?(key) - SiteUpload.where(var: key).first_or_initialize(var: key) - else - Setting.public_send(key) - end - end + stored_value = if UPLOAD_KEYS.include?(key) + SiteUpload.where(var: key).first_or_initialize(var: key) + else + Setting.public_send(key) + end instance_variable_set("@#{key}", stored_value) end diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb index f4fa84c102..484415f902 100644 --- a/app/models/form/custom_emoji_batch.rb +++ b/app/models/form/custom_emoji_batch.rb @@ -36,13 +36,11 @@ class Form::CustomEmojiBatch def update! custom_emojis.each { |custom_emoji| authorize(custom_emoji, :update?) } - category = begin - if category_id.present? - CustomEmojiCategory.find(category_id) - elsif category_name.present? - CustomEmojiCategory.find_or_create_by!(name: category_name) - end - end + category = if category_id.present? + CustomEmojiCategory.find(category_id) + elsif category_name.present? + CustomEmojiCategory.find_or_create_by!(name: category_name) + end custom_emojis.each do |custom_emoji| custom_emoji.update(category_id: category&.id) diff --git a/app/models/notification.rb b/app/models/notification.rb index bbc63c1c05..01155c363e 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -87,13 +87,11 @@ class Notification < ApplicationRecord class << self def browserable(types: [], exclude_types: [], from_account_id: nil) - requested_types = begin - if types.empty? - TYPES - else - types.map(&:to_sym) & TYPES - end - end + requested_types = if types.empty? + TYPES + else + types.map(&:to_sym) & TYPES + end requested_types -= exclude_types.map(&:to_sym) diff --git a/app/models/remote_follow.rb b/app/models/remote_follow.rb index 911c067133..10715ac97d 100644 --- a/app/models/remote_follow.rb +++ b/app/models/remote_follow.rb @@ -36,13 +36,11 @@ class RemoteFollow username, domain = value.strip.gsub(/\A@/, '').split('@') - domain = begin - if TagManager.instance.local_domain?(domain) - nil - else - TagManager.instance.normalize_domain(domain) - end - end + domain = if TagManager.instance.local_domain?(domain) + nil + else + TagManager.instance.normalize_domain(domain) + end [username, domain].compact.join('@') rescue Addressable::URI::InvalidURIError diff --git a/app/models/status.rb b/app/models/status.rb index a924a985ff..102dfa9942 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -368,13 +368,12 @@ class Status < ApplicationRecord return [] if text.blank? text.scan(FetchLinkCardService::URL_PATTERN).map(&:second).uniq.filter_map do |url| - status = begin - if TagManager.instance.local_url?(url) - ActivityPub::TagManager.instance.uri_to_resource(url, Status) - else - EntityCache.instance.status(url) - end - end + status = if TagManager.instance.local_url?(url) + ActivityPub::TagManager.instance.uri_to_resource(url, Status) + else + EntityCache.instance.status(url) + end + status&.distributable? ? status : nil end end diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb index e334702260..dd2d5fc1ec 100644 --- a/app/models/status_edit.rb +++ b/app/models/status_edit.rb @@ -51,14 +51,12 @@ class StatusEdit < ApplicationRecord def ordered_media_attachments return @ordered_media_attachments if defined?(@ordered_media_attachments) - @ordered_media_attachments = begin - if ordered_media_attachment_ids.nil? - [] - else - map = status.media_attachments.index_by(&:id) - ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) } - end - end + @ordered_media_attachments = if ordered_media_attachment_ids.nil? + [] + else + map = status.media_attachments.index_by(&:id) + ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) } + end end def proper diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb index 8808b3ab6f..c94f7c0237 100644 --- a/app/models/trends/links.rb +++ b/app/models/trends/links.rb @@ -113,13 +113,11 @@ class Trends::Links < Trends::Base max_score = preview_card.max_score max_score = 0 if max_time.nil? || max_time < (at_time - options[:max_score_cooldown]) - score = begin - if expected > observed || observed < options[:threshold] - 0 - else - ((observed - expected)**2) / expected - end - end + score = if expected > observed || observed < options[:threshold] + 0 + else + ((observed - expected)**2) / expected + end if score > max_score max_score = score @@ -129,13 +127,11 @@ class Trends::Links < Trends::Base preview_card.update_columns(max_score: max_score, max_score_at: max_time) end - decaying_score = begin - if max_score.zero? || !valid_locale?(preview_card.language) - 0 - else - max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f)) - end - end + decaying_score = if max_score.zero? || !valid_locale?(preview_card.language) + 0 + else + max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f)) + end [decaying_score, preview_card] end diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb index c9ef7c8f2e..84bff9c027 100644 --- a/app/models/trends/statuses.rb +++ b/app/models/trends/statuses.rb @@ -99,21 +99,17 @@ class Trends::Statuses < Trends::Base expected = 1.0 observed = (status.reblogs_count + status.favourites_count).to_f - score = begin - if expected > observed || observed < options[:threshold] - 0 - else - ((observed - expected)**2) / expected - end - end + score = if expected > observed || observed < options[:threshold] + 0 + else + ((observed - expected)**2) / expected + end - decaying_score = begin - if score.zero? || !eligible?(status) - 0 - else - score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f)) - end - end + decaying_score = if score.zero? || !eligible?(status) + 0 + else + score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f)) + end [decaying_score, status] end diff --git a/app/models/trends/tag_filter.rb b/app/models/trends/tag_filter.rb index 3b142efc45..46b747819e 100644 --- a/app/models/trends/tag_filter.rb +++ b/app/models/trends/tag_filter.rb @@ -13,13 +13,11 @@ class Trends::TagFilter end def results - scope = begin - if params[:status] == 'pending_review' - Tag.unscoped - else - trending_scope - end - end + scope = if params[:status] == 'pending_review' + Tag.unscoped + else + trending_scope + end params.each do |key, value| next if key.to_s == 'page' diff --git a/app/models/trends/tags.rb b/app/models/trends/tags.rb index 19ade52ba4..9315329906 100644 --- a/app/models/trends/tags.rb +++ b/app/models/trends/tags.rb @@ -63,13 +63,11 @@ class Trends::Tags < Trends::Base max_score = tag.max_score max_score = 0 if max_time.nil? || max_time < (at_time - options[:max_score_cooldown]) - score = begin - if expected > observed || observed < options[:threshold] - 0 - else - ((observed - expected)**2) / expected - end - end + score = if expected > observed || observed < options[:threshold] + 0 + else + ((observed - expected)**2) / expected + end if score > max_score max_score = score diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb index 6e46573ae0..dfaadf5cca 100644 --- a/app/models/web/push_subscription.rb +++ b/app/models/web/push_subscription.rb @@ -53,25 +53,21 @@ class Web::PushSubscription < ApplicationRecord def associated_user return @associated_user if defined?(@associated_user) - @associated_user = begin - if user_id.nil? - session_activation.user - else - user - end - end + @associated_user = if user_id.nil? + session_activation.user + else + user + end end def associated_access_token return @associated_access_token if defined?(@associated_access_token) - @associated_access_token = begin - if access_token_id.nil? - find_or_create_access_token.token - else - access_token.token - end - end + @associated_access_token = if access_token_id.nil? + find_or_create_access_token.token + else + access_token.token + end end class << self diff --git a/app/presenters/tag_relationships_presenter.rb b/app/presenters/tag_relationships_presenter.rb index c3bdbaf071..52e24314be 100644 --- a/app/presenters/tag_relationships_presenter.rb +++ b/app/presenters/tag_relationships_presenter.rb @@ -4,12 +4,10 @@ class TagRelationshipsPresenter attr_reader :following_map def initialize(tags, current_account_id = nil, **options) - @following_map = begin - if current_account_id.nil? - {} - else - TagFollow.select(:tag_id).where(tag_id: tags.map(&:id), account_id: current_account_id).each_with_object({}) { |f, h| h[f.tag_id] = true }.merge(options[:following_map] || {}) - end - end + @following_map = if current_account_id.nil? + {} + else + TagFollow.select(:tag_id).where(tag_id: tags.map(&:id), account_id: current_account_id).each_with_object({}) { |f, h| h[f.tag_id] = true }.merge(options[:following_map] || {}) + end end end diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index 85538870bf..dfc3a45f8f 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -32,15 +32,13 @@ class AccountSearchService < BaseService return @exact_match if defined?(@exact_match) - match = begin - if options[:resolve] - ResolveAccountService.new.call(query) - elsif domain_is_local? - Account.find_local(query_username) - else - Account.find_remote(query_username, query_domain) - end - end + match = if options[:resolve] + ResolveAccountService.new.call(query) + elsif domain_is_local? + Account.find_local(query_username) + else + Account.find_remote(query_username, query_domain) + end match = nil if !match.nil? && !account.nil? && options[:following] && !account.following?(match) diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb index ab047a0f8b..ff1a88aa1e 100644 --- a/app/services/activitypub/fetch_featured_tags_collection_service.rb +++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb @@ -22,14 +22,12 @@ class ActivityPub::FetchFeaturedTagsCollectionService < BaseService collection = fetch_collection(collection['first']) if collection['first'].present? while collection.is_a?(Hash) - items = begin - case collection['type'] - when 'Collection', 'CollectionPage' - collection['items'] - when 'OrderedCollection', 'OrderedCollectionPage' - collection['orderedItems'] - end - end + items = case collection['type'] + when 'Collection', 'CollectionPage' + collection['items'] + when 'OrderedCollection', 'OrderedCollectionPage' + collection['orderedItems'] + end break if items.blank? diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index 936737bf66..aea80f078a 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -9,13 +9,11 @@ class ActivityPub::FetchRemoteStatusService < BaseService # Should be called when uri has already been checked for locality def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil) @request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}" - @json = begin - if prefetched_body.nil? - fetch_resource(uri, id, on_behalf_of) - else - body_to_json(prefetched_body, compare_id: id ? uri : nil) - end - end + @json = if prefetched_body.nil? + fetch_resource(uri, id, on_behalf_of) + else + body_to_json(prefetched_body, compare_id: id ? uri : nil) + end return unless supported_context? diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 4d55aa5e23..d5fa9af541 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -69,16 +69,14 @@ class FetchLinkCardService < BaseService end def parse_urls - urls = begin - if @status.local? - @status.text.scan(URL_PATTERN).map { |array| Addressable::URI.parse(array[1]).normalize } - else - document = Nokogiri::HTML(@status.text) - links = document.css('a') + urls = if @status.local? + @status.text.scan(URL_PATTERN).map { |array| Addressable::URI.parse(array[1]).normalize } + else + document = Nokogiri::HTML(@status.text) + links = document.css('a') - links.filter_map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.filter_map(&:normalize) - end - end + links.filter_map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.filter_map(&:normalize) + end urls.reject { |uri| bad_url?(uri) }.first end diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index 93a96667e0..b3b279147d 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -28,13 +28,11 @@ class ProcessMentionsService < BaseService @status.text = @status.text.gsub(Account::MENTION_RE) do |match| username, domain = Regexp.last_match(1).split('@') - domain = begin - if TagManager.instance.local_domain?(domain) - nil - else - TagManager.instance.normalize_domain(domain) - end - end + domain = if TagManager.instance.local_domain?(domain) + nil + else + TagManager.instance.normalize_domain(domain) + end mentioned_account = Account.find_remote(username, domain) diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb index 7d2981709b..6ec0944744 100644 --- a/app/services/reblog_service.rb +++ b/app/services/reblog_service.rb @@ -20,13 +20,11 @@ class ReblogService < BaseService return reblog unless reblog.nil? - visibility = begin - if reblogged_status.hidden? - reblogged_status.visibility - else - options[:visibility] || account.user&.setting_default_privacy - end - end + visibility = if reblogged_status.hidden? + reblogged_status.visibility + else + options[:visibility] || account.user&.setting_default_privacy + end reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility, rate_limit: options[:with_rate_limit]) diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index c76df5a0e4..abe1534a55 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -71,13 +71,11 @@ class ResolveAccountService < BaseService @username, @domain = uri.strip.gsub(/\A@/, '').split('@') end - @domain = begin - if TagManager.instance.local_domain?(@domain) - nil - else - TagManager.instance.normalize_domain(@domain) - end - end + @domain = if TagManager.instance.local_domain?(@domain) + nil + else + TagManager.instance.normalize_domain(@domain) + end @uri = [@username, @domain].compact.join('@') end diff --git a/app/validators/domain_validator.rb b/app/validators/domain_validator.rb index 6e4a854ff2..3a951f9a7e 100644 --- a/app/validators/domain_validator.rb +++ b/app/validators/domain_validator.rb @@ -4,13 +4,11 @@ class DomainValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) return if value.blank? - domain = begin - if options[:acct] - value.split('@').last - else - value - end - end + domain = if options[:acct] + value.split('@').last + else + value + end record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(domain) end diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb index 1c55968216..45de4f4a44 100644 --- a/app/validators/existing_username_validator.rb +++ b/app/validators/existing_username_validator.rb @@ -4,16 +4,14 @@ class ExistingUsernameValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) return if value.blank? - usernames_and_domains = begin - value.split(',').map do |str| - username, domain = str.strip.gsub(/\A@/, '').split('@', 2) - domain = nil if TagManager.instance.local_domain?(domain) + usernames_and_domains = value.split(',').map do |str| + username, domain = str.strip.gsub(/\A@/, '').split('@', 2) + domain = nil if TagManager.instance.local_domain?(domain) - next if username.blank? + next if username.blank? - [str, username, domain] - end.compact - end + [str, username, domain] + end.compact usernames_with_no_accounts = usernames_and_domains.filter_map do |(str, username, domain)| str unless Account.find_remote(username, domain) diff --git a/app/validators/import_validator.rb b/app/validators/import_validator.rb index cbad56df63..782baf5d6b 100644 --- a/app/validators/import_validator.rb +++ b/app/validators/import_validator.rb @@ -35,13 +35,11 @@ class ImportValidator < ActiveModel::Validator def validate_following_import(import, row_count) base_limit = FollowLimitValidator.limit_for_account(import.account) - limit = begin - if import.overwrite? - base_limit - else - base_limit - import.account.following_count - end - end + limit = if import.overwrite? + base_limit + else + base_limit - import.account.following_count + end import.errors.add(:data, I18n.t('users.follow_limit_reached', limit: base_limit)) if row_count > limit end diff --git a/app/workers/backup_worker.rb b/app/workers/backup_worker.rb index 7b0b52844d..df933142ae 100644 --- a/app/workers/backup_worker.rb +++ b/app/workers/backup_worker.rb @@ -9,12 +9,10 @@ class BackupWorker backup_id = msg['args'].first ActiveRecord::Base.connection_pool.with_connection do - begin - backup = Backup.find(backup_id) - backup.destroy - rescue ActiveRecord::RecordNotFound - true - end + backup = Backup.find(backup_id) + backup.destroy + rescue ActiveRecord::RecordNotFound + true end end diff --git a/app/workers/post_process_media_worker.rb b/app/workers/post_process_media_worker.rb index 24201101c3..996d5def91 100644 --- a/app/workers/post_process_media_worker.rb +++ b/app/workers/post_process_media_worker.rb @@ -9,13 +9,11 @@ class PostProcessMediaWorker media_attachment_id = msg['args'].first ActiveRecord::Base.connection_pool.with_connection do - begin - media_attachment = MediaAttachment.find(media_attachment_id) - media_attachment.processing = :failed - media_attachment.save - rescue ActiveRecord::RecordNotFound - true - end + media_attachment = MediaAttachment.find(media_attachment_id) + media_attachment.processing = :failed + media_attachment.save + rescue ActiveRecord::RecordNotFound + true end Sidekiq.logger.error("Processing media attachment #{media_attachment_id} failed with #{msg['error_message']}") diff --git a/app/workers/scheduler/follow_recommendations_scheduler.rb b/app/workers/scheduler/follow_recommendations_scheduler.rb index 57f78170e4..04008a9d99 100644 --- a/app/workers/scheduler/follow_recommendations_scheduler.rb +++ b/app/workers/scheduler/follow_recommendations_scheduler.rb @@ -19,13 +19,11 @@ class Scheduler::FollowRecommendationsScheduler fallback_recommendations = FollowRecommendation.order(rank: :desc).limit(SET_SIZE) Trends.available_locales.each do |locale| - recommendations = begin - if AccountSummary.safe.filtered.localized(locale).exists? # We can skip the work if no accounts with that language exist - FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.account_id, recommendation.rank] } - else - [] - end - end + recommendations = if AccountSummary.safe.filtered.localized(locale).exists? # We can skip the work if no accounts with that language exist + FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.account_id, recommendation.rank] } + else + [] + end # Use language-agnostic results if there are not enough language-specific ones missing = SET_SIZE - recommendations.size diff --git a/db/migrate/20180528141303_fix_accounts_unique_index.rb b/db/migrate/20180528141303_fix_accounts_unique_index.rb index 3e33e2cac4..0b39f71079 100644 --- a/db/migrate/20180528141303_fix_accounts_unique_index.rb +++ b/db/migrate/20180528141303_fix_accounts_unique_index.rb @@ -106,21 +106,17 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2] # to check for (and skip past) uniqueness errors [Favourite, Follow, FollowRequest, Block, Mute].each do |klass| klass.where(account_id: duplicate_account.id).find_each do |record| - begin - record.update_attribute(:account_id, main_account.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:account_id, main_account.id) + rescue ActiveRecord::RecordNotUnique + next end end [Follow, FollowRequest, Block, Mute].each do |klass| klass.where(target_account_id: duplicate_account.id).find_each do |record| - begin - record.update_attribute(:target_account_id, main_account.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:target_account_id, main_account.id) + rescue ActiveRecord::RecordNotUnique + next end end end diff --git a/db/migrate/20180812173710_copy_status_stats.rb b/db/migrate/20180812173710_copy_status_stats.rb index 9b2971bebc..45eb9501ce 100644 --- a/db/migrate/20180812173710_copy_status_stats.rb +++ b/db/migrate/20180812173710_copy_status_stats.rb @@ -43,12 +43,10 @@ class CopyStatusStats < ActiveRecord::Migration[5.2] # We cannot use bulk INSERT or overarching transactions here because of possible # uniqueness violations that we need to skip over Status.unscoped.select('id, reblogs_count, favourites_count, created_at, updated_at').find_each do |status| - begin - params = [[nil, status.id], [nil, status.reblogs_count], [nil, status.favourites_count], [nil, status.created_at], [nil, status.updated_at]] - exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params) - rescue ActiveRecord::RecordNotUnique - next - end + params = [[nil, status.id], [nil, status.reblogs_count], [nil, status.favourites_count], [nil, status.created_at], [nil, status.updated_at]] + exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params) + rescue ActiveRecord::RecordNotUnique + next end end end diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb index 20dc851957..f908575cb1 100644 --- a/db/migrate/20181116173541_copy_account_stats.rb +++ b/db/migrate/20181116173541_copy_account_stats.rb @@ -43,12 +43,10 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] # We cannot use bulk INSERT or overarching transactions here because of possible # uniqueness violations that we need to skip over Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account| - begin - params = [[nil, account.id], [nil, account[:statuses_count]], [nil, account[:following_count]], [nil, account[:followers_count]], [nil, account.created_at], [nil, account.updated_at]] - exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params) - rescue ActiveRecord::RecordNotUnique - next - end + params = [[nil, account.id], [nil, account[:statuses_count]], [nil, account[:following_count]], [nil, account[:followers_count]], [nil, account.created_at], [nil, account.updated_at]] + exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params) + rescue ActiveRecord::RecordNotUnique + next end end end diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 34afbc699d..db379eb853 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -490,14 +490,12 @@ module Mastodon scope = Account.where(id: ::Follow.where(account: account).select(:target_account_id)) scope.find_each do |target_account| - begin - UnfollowService.new.call(account, target_account) - rescue => e - progress.log pastel.red("Error processing #{target_account.id}: #{e}") - ensure - progress.increment - processed += 1 - end + UnfollowService.new.call(account, target_account) + rescue => e + progress.log pastel.red("Error processing #{target_account.id}: #{e}") + ensure + progress.increment + processed += 1 end BootstrapTimelineWorker.perform_async(account.id) @@ -507,14 +505,12 @@ module Mastodon scope = Account.where(id: ::Follow.where(target_account: account).select(:account_id)) scope.find_each do |target_account| - begin - UnfollowService.new.call(target_account, account) - rescue => e - progress.log pastel.red("Error processing #{target_account.id}: #{e}") - ensure - progress.increment - processed += 1 - end + UnfollowService.new.call(target_account, account) + rescue => e + progress.log pastel.red("Error processing #{target_account.id}: #{e}") + ensure + progress.increment + processed += 1 end end diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb index a78a28e273..8704edd75e 100644 --- a/lib/mastodon/cli_helper.rb +++ b/lib/mastodon/cli_helper.rb @@ -42,30 +42,28 @@ module Mastodon items.each do |item| futures << Concurrent::Future.execute(executor: pool) do - begin - if !progress.total.nil? && progress.progress + 1 > progress.total - # The number of items has changed between start and now, - # since there is no good way to predict the final count from - # here, just change the progress bar to an indeterminate one + if !progress.total.nil? && progress.progress + 1 > progress.total + # The number of items has changed between start and now, + # since there is no good way to predict the final count from + # here, just change the progress bar to an indeterminate one - progress.total = nil - end - - progress.log("Processing #{item.id}") if options[:verbose] - - result = ActiveRecord::Base.connection_pool.with_connection do - yield(item) - ensure - RedisConfiguration.pool.checkin if Thread.current[:redis] - Thread.current[:redis] = nil - end - - aggregate.increment(result) if result.is_a?(Integer) - rescue => e - progress.log pastel.red("Error processing #{item.id}: #{e}") - ensure - progress.increment + progress.total = nil end + + progress.log("Processing #{item.id}") if options[:verbose] + + result = ActiveRecord::Base.connection_pool.with_connection do + yield(item) + ensure + RedisConfiguration.pool.checkin if Thread.current[:redis] + Thread.current[:redis] = nil + end + + aggregate.increment(result) if result.is_a?(Integer) + rescue => e + progress.log pastel.red("Error processing #{item.id}: #{e}") + ensure + progress.increment end end diff --git a/lib/mastodon/ip_blocks_cli.rb b/lib/mastodon/ip_blocks_cli.rb index 5c38c1aca0..08939c0926 100644 --- a/lib/mastodon/ip_blocks_cli.rb +++ b/lib/mastodon/ip_blocks_cli.rb @@ -79,13 +79,11 @@ module Mastodon skipped = 0 addresses.each do |address| - ip_blocks = begin - if options[:force] - IpBlock.where('ip >>= ?', address) - else - IpBlock.where('ip <<= ?', address) - end - end + ip_blocks = if options[:force] + IpBlock.where('ip >>= ?', address) + else + IpBlock.where('ip <<= ?', address) + end if ip_blocks.empty? say("#{address} is not yet blocked", :yellow) diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb index a86a4f2f62..bb3802f564 100644 --- a/lib/mastodon/maintenance_cli.rb +++ b/lib/mastodon/maintenance_cli.rb @@ -98,11 +98,9 @@ module Mastodon owned_classes.each do |klass| klass.where(account_id: other_account.id).find_each do |record| - begin - record.update_attribute(:account_id, id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:account_id, id) + rescue ActiveRecord::RecordNotUnique + next end end @@ -111,11 +109,9 @@ module Mastodon target_classes.each do |klass| klass.where(target_account_id: other_account.id).find_each do |record| - begin - record.update_attribute(:target_account_id, id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:target_account_id, id) + rescue ActiveRecord::RecordNotUnique + next end end @@ -601,11 +597,9 @@ module Mastodon owned_classes = [ConversationMute, AccountConversation] owned_classes.each do |klass| klass.where(conversation_id: duplicate_conv.id).find_each do |record| - begin - record.update_attribute(:account_id, main_conv.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:account_id, main_conv.id) + rescue ActiveRecord::RecordNotUnique + next end end end @@ -629,47 +623,37 @@ module Mastodon owned_classes << Bookmark if ActiveRecord::Base.connection.table_exists?(:bookmarks) owned_classes.each do |klass| klass.where(status_id: duplicate_status.id).find_each do |record| - begin - record.update_attribute(:status_id, main_status.id) - rescue ActiveRecord::RecordNotUnique - next - end - end - end - - StatusPin.where(account_id: main_status.account_id, status_id: duplicate_status.id).find_each do |record| - begin record.update_attribute(:status_id, main_status.id) rescue ActiveRecord::RecordNotUnique next end end + StatusPin.where(account_id: main_status.account_id, status_id: duplicate_status.id).find_each do |record| + record.update_attribute(:status_id, main_status.id) + rescue ActiveRecord::RecordNotUnique + next + end + Status.where(in_reply_to_id: duplicate_status.id).find_each do |record| - begin - record.update_attribute(:in_reply_to_id, main_status.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:in_reply_to_id, main_status.id) + rescue ActiveRecord::RecordNotUnique + next end Status.where(reblog_of_id: duplicate_status.id).find_each do |record| - begin - record.update_attribute(:reblog_of_id, main_status.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:reblog_of_id, main_status.id) + rescue ActiveRecord::RecordNotUnique + next end end def merge_tags!(main_tag, duplicate_tag) [FeaturedTag].each do |klass| klass.where(tag_id: duplicate_tag.id).find_each do |record| - begin - record.update_attribute(:tag_id, main_tag.id) - rescue ActiveRecord::RecordNotUnique - next - end + record.update_attribute(:tag_id, main_tag.id) + rescue ActiveRecord::RecordNotUnique + next end end end diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index a901a6ab98..fc70c8785a 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -116,13 +116,11 @@ module Mastodon loop do objects = begin - begin - bucket.objects(start_after: last_key, prefix: prefix).limit(1000).map { |x| x } - rescue => e - progress.log(pastel.red("Error fetching list of files: #{e}")) - progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key - break - end + bucket.objects(start_after: last_key, prefix: prefix).limit(1000).map { |x| x } + rescue => e + progress.log(pastel.red("Error fetching list of files: #{e}")) + progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key + break end break if objects.empty? diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb index b206854ab3..31e9a3d5af 100644 --- a/lib/mastodon/search_cli.rb +++ b/lib/mastodon/search_cli.rb @@ -43,13 +43,11 @@ module Mastodon exit(1) end - indices = begin - if options[:only] - options[:only].map { |str| "#{str.camelize}Index".constantize } - else - INDICES - end - end + indices = if options[:only] + options[:only].map { |str| "#{str.camelize}Index".constantize } + else + INDICES + end pool = Concurrent::FixedThreadPool.new(options[:concurrency], max_queue: options[:concurrency] * 10) importers = indices.index_with { |index| "Importer::#{index.name}Importer".constantize.new(batch_size: options[:batch_size], executor: pool) } diff --git a/lib/mastodon/upgrade_cli.rb b/lib/mastodon/upgrade_cli.rb index 570b7e6fa8..2b60f9eee5 100644 --- a/lib/mastodon/upgrade_cli.rb +++ b/lib/mastodon/upgrade_cli.rb @@ -50,16 +50,14 @@ module Mastodon styles << :original unless styles.include?(:original) styles.each do |style| - success = begin - case Paperclip::Attachment.default_options[:storage] - when :s3 - upgrade_storage_s3(progress, attachment, style) - when :fog - upgrade_storage_fog(progress, attachment, style) - when :filesystem - upgrade_storage_filesystem(progress, attachment, style) - end - end + success = case Paperclip::Attachment.default_options[:storage] + when :s3 + upgrade_storage_s3(progress, attachment, style) + when :fog + upgrade_storage_fog(progress, attachment, style) + when :filesystem + upgrade_storage_filesystem(progress, attachment, style) + end upgraded = true if style == :original && success diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb index d8a042c90f..733dcba80b 100644 --- a/lib/paperclip/color_extractor.rb +++ b/lib/paperclip/color_extractor.rb @@ -161,13 +161,11 @@ module Paperclip def lighten_or_darken(color, by) hue, saturation, light = rgb_to_hsl(color.r, color.g, color.b) - light = begin - if light < 50 - [100, light + by].min - else - [0, light - by].max - end - end + light = if light < 50 + [100, light + by].min + else + [0, light - by].max + end ColorDiff::Color::RGB.new(*hsl_to_rgb(hue, saturation, light)) end diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index baf6526626..d5e62897ff 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -41,13 +41,11 @@ class Sanitize current_node = env[:node] - scheme = begin - if current_node['href'] =~ Sanitize::REGEX_PROTOCOL - Regexp.last_match(1).downcase - else - :relative - end - end + scheme = if current_node['href'] =~ Sanitize::REGEX_PROTOCOL + Regexp.last_match(1).downcase + else + :relative + end current_node.replace(Nokogiri::XML::Text.new(current_node.text, current_node.document)) unless LINK_PROTOCOLS.include?(scheme) end diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake index ca939fd1f0..e8a64b8fb2 100644 --- a/lib/tasks/db.rake +++ b/lib/tasks/db.rake @@ -4,16 +4,14 @@ namespace :db do namespace :migrate do desc 'Setup the db or migrate depending on state of db' task setup: :environment do - begin - if ActiveRecord::Migrator.current_version.zero? - Rake::Task['db:migrate'].invoke - Rake::Task['db:seed'].invoke - end - rescue ActiveRecord::NoDatabaseError - Rake::Task['db:setup'].invoke - else + if ActiveRecord::Migrator.current_version.zero? Rake::Task['db:migrate'].invoke + Rake::Task['db:seed'].invoke end + rescue ActiveRecord::NoDatabaseError + Rake::Task['db:setup'].invoke + else + Rake::Task['db:migrate'].invoke end end From 3680e032b43e9701c0bc1f3ed5238e58cd6b7ac8 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:10:19 -0500 Subject: [PATCH 0475/1220] Autofix Rubocop RSpec/EmptyLineAfterFinalLet (#23707) --- .rubocop_todo.yml | 21 ------------------- spec/config/initializers/rack_attack_spec.rb | 5 +++++ .../admin/reports_controller_spec.rb | 1 + .../admin/resets_controller_spec.rb | 1 + .../api/web/embeds_controller_spec.rb | 1 + .../instance_actors_controller_spec.rb | 2 ++ spec/controllers/intents_controller_spec.rb | 1 + .../settings/applications_controller_spec.rb | 1 + .../settings/sessions_controller_spec.rb | 1 + spec/controllers/shares_controller_spec.rb | 1 + spec/lib/status_filter_spec.rb | 1 + spec/models/account_spec.rb | 1 + .../account_statuses_cleanup_policy_spec.rb | 1 + spec/services/fetch_resource_service_spec.rb | 1 + spec/services/import_service_spec.rb | 5 +++++ spec/services/precompute_feed_service_spec.rb | 1 + spec/validators/poll_validator_spec.rb | 1 + 17 files changed, 25 insertions(+), 21 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7620025cfd..03de56a2a5 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -825,27 +825,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 25 -# This cop supports safe autocorrection (--autocorrect). -RSpec/EmptyLineAfterFinalLet: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - - 'spec/controllers/admin/reports_controller_spec.rb' - - 'spec/controllers/admin/resets_controller_spec.rb' - - 'spec/controllers/api/web/embeds_controller_spec.rb' - - 'spec/controllers/instance_actors_controller_spec.rb' - - 'spec/controllers/intents_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/sessions_controller_spec.rb' - - 'spec/controllers/shares_controller_spec.rb' - - 'spec/lib/status_filter_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/services/import_service_spec.rb' - - 'spec/services/precompute_feed_service_spec.rb' - - 'spec/validators/poll_validator_spec.rb' - # Offense count: 1 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowConsecutiveOneLiners. diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 03695f5fd2..6d603caa94 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -36,11 +36,13 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/auth' } + it_behaves_like 'throttled endpoint' end context 'for path with format' do let(:path) { '/auth.html' } + it_behaves_like 'throttled endpoint' end end @@ -51,6 +53,7 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/api/v1/accounts' } + it_behaves_like 'throttled endpoint' end @@ -71,11 +74,13 @@ describe Rack::Attack do context 'for exact path' do let(:path) { '/auth/sign_in' } + it_behaves_like 'throttled endpoint' end context 'for path with format' do let(:path) { '/auth/sign_in.html' } + it_behaves_like 'throttled endpoint' end end diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index 4cd1524bf7..4dcc277d99 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -4,6 +4,7 @@ describe Admin::ReportsController do render_views let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + before do sign_in user, scope: :user end diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb index aeb172318b..64fe027fda 100644 --- a/spec/controllers/admin/resets_controller_spec.rb +++ b/spec/controllers/admin/resets_controller_spec.rb @@ -4,6 +4,7 @@ describe Admin::ResetsController do render_views let(:account) { Fabricate(:account) } + before do sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user end diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb index a8fc1718f6..345c317ba6 100644 --- a/spec/controllers/api/web/embeds_controller_spec.rb +++ b/spec/controllers/api/web/embeds_controller_spec.rb @@ -6,6 +6,7 @@ describe Api::Web::EmbedsController do render_views let(:user) { Fabricate(:user) } + before { sign_in user } describe 'POST #create' do diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index 833539a76d..d6b4c793b8 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -43,11 +43,13 @@ RSpec.describe InstanceActorsController, type: :controller do context 'without authorized fetch mode' do let(:authorized_fetch_mode) { false } + it_behaves_like 'shared behavior' end context 'with authorized fetch mode' do let(:authorized_fetch_mode) { true } + it_behaves_like 'shared behavior' end end diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb index ddfd5ea365..394f7d512b 100644 --- a/spec/controllers/intents_controller_spec.rb +++ b/spec/controllers/intents_controller_spec.rb @@ -4,6 +4,7 @@ RSpec.describe IntentsController, type: :controller do render_views let(:user) { Fabricate(:user) } + before { sign_in user, scope: :user } describe 'GET #show' do diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index a882a6fb8c..35ad4b2e7a 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -175,6 +175,7 @@ describe Settings::ApplicationsController do describe 'regenerate' do let(:token) { user.token_for_app(app) } + before do expect(token).to_not be_nil post :regenerate, params: { id: app.id } diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb index 52b204a6a3..0e312c5a68 100644 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ b/spec/controllers/settings/sessions_controller_spec.rb @@ -5,6 +5,7 @@ describe Settings::SessionsController do let(:user) { Fabricate(:user) } let(:session_activation) { Fabricate(:session_activation, user: user) } + before { sign_in user, scope: :user } describe 'DELETE #destroy' do diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb index d6de3016ae..e365b356e1 100644 --- a/spec/controllers/shares_controller_spec.rb +++ b/spec/controllers/shares_controller_spec.rb @@ -4,6 +4,7 @@ describe SharesController do render_views let(:user) { Fabricate(:user) } + before { sign_in user } describe 'GTE #show' do diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb index a851014d9c..287fe00de6 100644 --- a/spec/lib/status_filter_spec.rb +++ b/spec/lib/status_filter_spec.rb @@ -32,6 +32,7 @@ describe StatusFilter do context 'with real account' do let(:account) { Fabricate(:account) } + subject { described_class.new(status, account) } context 'when there are no connections' do diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 6cd769dc84..694432a1e5 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -3,6 +3,7 @@ require 'rails_helper' RSpec.describe Account, type: :model do context do let(:bob) { Fabricate(:account, username: 'bob') } + subject { Fabricate(:account) } describe '#suspend!' do diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index f116845162..d3c011b3a2 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -134,6 +134,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do describe '#invalidate_last_inspected' do let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } let(:status) { Fabricate(:status, id: 10, account: account) } + subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) } before do diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 6f24e64187..c39f526328 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -8,6 +8,7 @@ RSpec.describe FetchResourceService, type: :service do context 'with blank url' do let(:url) { '' } + it { is_expected.to be_nil } end diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 217d0ee244..399a43036a 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -18,6 +18,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are muted' do let(:import) { Import.create(account: account, type: 'muting', data: csv) } + it 'mutes the listed accounts, including notifications' do subject.call(import) expect(account.muting.count).to eq 2 @@ -55,6 +56,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are muted' do let(:import) { Import.create(account: account, type: 'muting', data: csv) } + it 'mutes the listed accounts, respecting notifications' do subject.call(import) expect(account.muting.count).to eq 2 @@ -95,6 +97,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are followed' do let(:import) { Import.create(account: account, type: 'following', data: csv) } + it 'follows the listed accounts, including boosts' do subject.call(import) @@ -136,6 +139,7 @@ RSpec.describe ImportService, type: :service do describe 'when no accounts are followed' do let(:import) { Import.create(account: account, type: 'following', data: csv) } + it 'follows the listed accounts, respecting boosts' do subject.call(import) expect(account.following.count).to eq 1 @@ -224,6 +228,7 @@ RSpec.describe ImportService, type: :service do describe 'when no bookmarks are set' do let(:import) { Import.create(account: account, type: 'bookmarks', data: csv) } + it 'adds the toots the user has access to to bookmarks' do local_status = Fabricate(:status, account: local_account, uri: 'https://local.com/users/foo/statuses/42', id: 42, local: true) subject.call(import) diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb index 86b93b5d2f..b28824f9a2 100644 --- a/spec/services/precompute_feed_service_spec.rb +++ b/spec/services/precompute_feed_service_spec.rb @@ -7,6 +7,7 @@ RSpec.describe PrecomputeFeedService, type: :service do describe 'call' do let(:account) { Fabricate(:account) } + it 'fills a user timeline with statuses' do account = Fabricate(:account) status = Fabricate(:status, account: account) diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb index 941b83401f..a76c63ccc2 100644 --- a/spec/validators/poll_validator_spec.rb +++ b/spec/validators/poll_validator_spec.rb @@ -20,6 +20,7 @@ RSpec.describe PollValidator, type: :validator do context 'expires just 5 min ago' do let(:expires_at) { 5.minutes.from_now } + it 'not calls errors add' do expect(errors).not_to have_received(:add) end From 1a021011009607283cc8e602a8d0ebe3ecd73d92 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:12:06 -0500 Subject: [PATCH 0476/1220] Autofix Rubocop Style/EmptyLambdaParameter (#23705) --- .rubocop_todo.yml | 6 ------ spec/config/initializers/rack_attack_spec.rb | 6 +++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 03de56a2a5..83b2a37aaf 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2708,12 +2708,6 @@ Style/ConcatArrayLiterals: Style/Documentation: Enabled: false -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -Style/EmptyLambdaParameter: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - # Offense count: 3 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 6d603caa94..50d4505b70 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -32,7 +32,7 @@ describe Rack::Attack do describe 'throttle excessive sign-up requests by IP address' do context 'through the website' do let(:limit) { 25 } - let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } + let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do let(:path) { '/auth' } @@ -49,7 +49,7 @@ describe Rack::Attack do context 'through the API' do let(:limit) { 5 } - let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } + let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do let(:path) { '/api/v1/accounts' } @@ -70,7 +70,7 @@ describe Rack::Attack do describe 'throttle excessive sign-in requests by IP address' do let(:limit) { 25 } - let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } } + let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do let(:path) { '/auth/sign_in' } From ac3561098e9cd1fd1ccee558295eb9f3430099d6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:17:59 -0500 Subject: [PATCH 0477/1220] Autofix Rubocop RSpec/LetBeforeExamples (#23671) --- .rubocop_todo.yml | 6 ------ spec/models/user_spec.rb | 6 +++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 83b2a37aaf..1c22c440b9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1121,12 +1121,6 @@ RSpec/LeakyConstantDeclaration: - 'spec/lib/settings/extend_spec.rb' - 'spec/models/concerns/remotable_spec.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -RSpec/LetBeforeExamples: - Exclude: - - 'spec/models/user_spec.rb' - # Offense count: 108 RSpec/LetSetup: Exclude: diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 368165f16c..dde1503c0d 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -2,6 +2,9 @@ require 'rails_helper' require 'devise_two_factor/spec_helpers' RSpec.describe User, type: :model do + let(:password) { 'abcd1234' } + let(:account) { Fabricate(:account, username: 'alice') } + it_behaves_like 'two_factor_backupable' describe 'otp_secret' do @@ -96,9 +99,6 @@ RSpec.describe User, type: :model do end end - let(:account) { Fabricate(:account, username: 'alice') } - let(:password) { 'abcd1234' } - describe 'blacklist' do around(:each) do |example| old_blacklist = Rails.configuration.x.email_blacklist From 81ad6c2e39393ff20450385cb37dd9bf6e6651e5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Feb 2023 17:38:14 -0500 Subject: [PATCH 0478/1220] Autofix Rubocop Style/StringLiterals (#23695) --- .rubocop_todo.yml | 82 ------------------- app/lib/webfinger.rb | 4 +- .../20160305115639_add_devise_to_users.rb | 2 +- .../20161122163057_remove_unneeded_indexes.rb | 6 +- ...0125145934_add_spoiler_text_to_statuses.rb | 2 +- ...95226_remove_duplicate_indexes_in_lists.rb | 4 +- ...for_api_v1_accounts_account_id_statuses.rb | 4 +- .../20180617162849_remove_unused_indexes.rb | 6 +- ..._encrypted_message_ids_to_timestamp_ids.rb | 2 +- ...5_media_attachment_ids_to_timestamp_ids.rb | 2 +- ...0306164523_account_ids_to_timestamp_ids.rb | 2 +- lib/mastodon/emoji_cli.rb | 2 +- lib/rails/engine_extensions.rb | 2 +- lib/tasks/mastodon.rake | 2 +- .../admin/change_email_controller_spec.rb | 8 +- .../api/v1/streaming_controller_spec.rb | 2 +- .../application_controller_spec.rb | 4 +- .../auth/registrations_controller_spec.rb | 20 ++--- .../auth/sessions_controller_spec.rb | 28 +++---- ...authorized_applications_controller_spec.rb | 2 +- .../settings/imports_controller_spec.rb | 4 +- .../settings/profiles_controller_spec.rb | 4 +- .../webauthn_credentials_controller_spec.rb | 2 +- .../statuses_cleanup_controller_spec.rb | 4 +- .../well_known/nodeinfo_controller_spec.rb | 4 +- .../account_moderation_note_fabricator.rb | 2 +- spec/fabricators/account_note_fabricator.rb | 2 +- spec/fabricators/account_stat_fabricator.rb | 6 +- .../account_tag_stat_fabricator.rb | 2 +- .../account_warning_preset_fabricator.rb | 2 +- .../admin_action_log_fabricator.rb | 2 +- .../canonical_email_block_fabricator.rb | 2 +- .../conversation_account_fabricator.rb | 2 +- .../custom_emoji_category_fabricator.rb | 2 +- spec/fabricators/domain_allow_fabricator.rb | 2 +- .../encrypted_message_fabricator.rb | 4 +- spec/fabricators/identity_fabricator.rb | 4 +- spec/fabricators/ip_block_fabricator.rb | 8 +- spec/fabricators/list_fabricator.rb | 2 +- spec/fabricators/relay_fabricator.rb | 2 +- spec/fabricators/report_fabricator.rb | 2 +- spec/fabricators/report_note_fabricator.rb | 2 +- .../session_activation_fabricator.rb | 2 +- spec/fabricators/status_edit_fabricator.rb | 4 +- spec/fabricators/status_fabricator.rb | 2 +- spec/fabricators/status_stat_fabricator.rb | 6 +- spec/fabricators/user_fabricator.rb | 2 +- spec/fabricators/user_role_fabricator.rb | 4 +- spec/features/log_in_spec.rb | 4 +- spec/helpers/accounts_helper_spec.rb | 8 +- spec/helpers/application_helper_spec.rb | 10 +-- spec/lib/feed_manager_spec.rb | 2 +- spec/mailers/notification_mailer_spec.rb | 44 +++++----- spec/mailers/user_mailer_spec.rb | 2 +- spec/models/account_spec.rb | 58 ++++++------- spec/models/media_attachment_spec.rb | 22 ++--- spec/models/web/push_subscription_spec.rb | 2 +- spec/models/webauthn_credentials_spec.rb | 4 +- spec/presenters/instance_presenter_spec.rb | 30 +++---- spec/rails_helper.rb | 2 +- spec/requests/catch_all_route_request_spec.rb | 20 ++--- spec/requests/host_meta_request_spec.rb | 10 +-- spec/requests/localization_spec.rb | 6 +- spec/services/account_search_service_spec.rb | 2 +- .../fetch_remote_status_service_spec.rb | 40 ++++----- spec/services/delete_account_service_spec.rb | 12 +-- spec/services/favourite_service_spec.rb | 4 +- spec/services/fetch_link_card_service_spec.rb | 8 +- spec/services/fetch_oembed_service_spec.rb | 6 +- .../fetch_remote_status_service_spec.rb | 2 +- spec/services/follow_service_spec.rb | 2 +- spec/services/import_service_spec.rb | 4 +- spec/services/post_status_service_spec.rb | 28 +++---- .../services/process_mentions_service_spec.rb | 8 +- spec/services/resolve_account_service_spec.rb | 18 ++-- spec/spec_helper.rb | 6 +- 76 files changed, 277 insertions(+), 359 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1c22c440b9..e997478192 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -3057,88 +3057,6 @@ Style/StringConcatenation: - 'spec/validators/disallowed_hashtags_validator_spec.rb' - 'spec/workers/web/push_notification_worker_spec.rb' -# Offense count: 297 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. -# SupportedStyles: single_quotes, double_quotes -Style/StringLiterals: - Exclude: - - 'app/lib/webfinger.rb' - - 'db/migrate/20160305115639_add_devise_to_users.rb' - - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' - - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb' - - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' - - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180617162849_remove_unused_indexes.rb' - - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb' - - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb' - - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb' - - 'lib/mastodon/emoji_cli.rb' - - 'lib/rails/engine_extensions.rb' - - 'lib/tasks/mastodon.rake' - - 'spec/controllers/admin/change_email_controller_spec.rb' - - 'spec/controllers/api/v1/streaming_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/auth/sessions_controller_spec.rb' - - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' - - 'spec/controllers/settings/imports_controller_spec.rb' - - 'spec/controllers/settings/profiles_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' - - 'spec/controllers/statuses_cleanup_controller_spec.rb' - - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' - - 'spec/fabricators/account_moderation_note_fabricator.rb' - - 'spec/fabricators/account_note_fabricator.rb' - - 'spec/fabricators/account_stat_fabricator.rb' - - 'spec/fabricators/account_tag_stat_fabricator.rb' - - 'spec/fabricators/account_warning_preset_fabricator.rb' - - 'spec/fabricators/admin_action_log_fabricator.rb' - - 'spec/fabricators/canonical_email_block_fabricator.rb' - - 'spec/fabricators/conversation_account_fabricator.rb' - - 'spec/fabricators/custom_emoji_category_fabricator.rb' - - 'spec/fabricators/domain_allow_fabricator.rb' - - 'spec/fabricators/encrypted_message_fabricator.rb' - - 'spec/fabricators/identity_fabricator.rb' - - 'spec/fabricators/ip_block_fabricator.rb' - - 'spec/fabricators/list_fabricator.rb' - - 'spec/fabricators/relay_fabricator.rb' - - 'spec/fabricators/report_fabricator.rb' - - 'spec/fabricators/report_note_fabricator.rb' - - 'spec/fabricators/session_activation_fabricator.rb' - - 'spec/fabricators/status_edit_fabricator.rb' - - 'spec/fabricators/status_fabricator.rb' - - 'spec/fabricators/status_stat_fabricator.rb' - - 'spec/fabricators/user_fabricator.rb' - - 'spec/fabricators/user_role_fabricator.rb' - - 'spec/features/log_in_spec.rb' - - 'spec/helpers/accounts_helper_spec.rb' - - 'spec/helpers/application_helper_spec.rb' - - 'spec/lib/feed_manager_spec.rb' - - 'spec/mailers/notification_mailer_spec.rb' - - 'spec/mailers/user_mailer_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/web/push_subscription_spec.rb' - - 'spec/models/webauthn_credentials_spec.rb' - - 'spec/presenters/instance_presenter_spec.rb' - - 'spec/rails_helper.rb' - - 'spec/requests/catch_all_route_request_spec.rb' - - 'spec/requests/host_meta_request_spec.rb' - - 'spec/requests/localization_spec.rb' - - 'spec/services/account_search_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/delete_account_service_spec.rb' - - 'spec/services/favourite_service_spec.rb' - - 'spec/services/fetch_link_card_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/fetch_remote_status_service_spec.rb' - - 'spec/services/follow_service_spec.rb' - - 'spec/services/import_service_spec.rb' - - 'spec/services/post_status_service_spec.rb' - - 'spec/services/process_mentions_service_spec.rb' - - 'spec/services/resolve_account_service_spec.rb' - - 'spec/spec_helper.rb' - # Offense count: 272 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, MinSize. diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb index 7c0c10c338..42ddef47b4 100644 --- a/app/lib/webfinger.rb +++ b/app/lib/webfinger.rb @@ -99,7 +99,7 @@ class Webfinger end def standard_url - if @domain.end_with? ".onion" + if @domain.end_with? '.onion' "http://#{@domain}/.well-known/webfinger?resource=#{@uri}" else "https://#{@domain}/.well-known/webfinger?resource=#{@uri}" @@ -107,7 +107,7 @@ class Webfinger end def host_meta_url - if @domain.end_with? ".onion" + if @domain.end_with? '.onion' "http://#{@domain}/.well-known/host-meta" else "https://#{@domain}/.well-known/host-meta" diff --git a/db/migrate/20160305115639_add_devise_to_users.rb b/db/migrate/20160305115639_add_devise_to_users.rb index 0e12e60536..fa1e521b2c 100644 --- a/db/migrate/20160305115639_add_devise_to_users.rb +++ b/db/migrate/20160305115639_add_devise_to_users.rb @@ -2,7 +2,7 @@ class AddDeviseToUsers < ActiveRecord::Migration[4.2] def self.up change_table(:users) do |t| ## Database authenticatable - t.string :encrypted_password, null: false, default: "" + t.string :encrypted_password, null: false, default: '' ## Recoverable t.string :reset_password_token diff --git a/db/migrate/20161122163057_remove_unneeded_indexes.rb b/db/migrate/20161122163057_remove_unneeded_indexes.rb index 3832b878d4..12cc9c5b23 100644 --- a/db/migrate/20161122163057_remove_unneeded_indexes.rb +++ b/db/migrate/20161122163057_remove_unneeded_indexes.rb @@ -1,7 +1,7 @@ class RemoveUnneededIndexes < ActiveRecord::Migration[5.0] def change - remove_index :notifications, name: "index_notifications_on_account_id" - remove_index :settings, name: "index_settings_on_target_type_and_target_id" - remove_index :statuses_tags, name: "index_statuses_tags_on_tag_id" + remove_index :notifications, name: 'index_notifications_on_account_id' + remove_index :settings, name: 'index_settings_on_target_type_and_target_id' + remove_index :statuses_tags, name: 'index_statuses_tags_on_tag_id' end end diff --git a/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb b/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb index 2c43210bab..39cd41c00f 100644 --- a/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb +++ b/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb @@ -1,5 +1,5 @@ class AddSpoilerTextToStatuses < ActiveRecord::Migration[5.0] def change - add_column :statuses, :spoiler_text, :text, default: "", null: false + add_column :statuses, :spoiler_text, :text, default: '', null: false end end diff --git a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb index 03f2591a88..ba67eee86e 100644 --- a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb +++ b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb @@ -1,6 +1,6 @@ class RemoveDuplicateIndexesInLists < ActiveRecord::Migration[5.1] def change - remove_index :list_accounts, name: "index_list_accounts_on_account_id" - remove_index :list_accounts, name: "index_list_accounts_on_list_id" + remove_index :list_accounts, name: 'index_list_accounts_on_account_id' + remove_index :list_accounts, name: 'index_list_accounts_on_list_id' end end diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb index ccd2ec7eac..e23880bf51 100644 --- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -5,11 +5,11 @@ class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecor def change safety_assured do - add_index :statuses, [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 unless index_name_exists?(:statuses, "index_statuses_20180106") + add_index :statuses, [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 unless index_name_exists?(:statuses, 'index_statuses_20180106') end # These index may not exists (see migration 20180514130000) remove_index :statuses, column: [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently if index_exists?(:statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)') - remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ["account_id", "id"], where: "(visibility = 3)") + remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ['account_id', 'id'], where: '(visibility = 3)') end end diff --git a/db/migrate/20180617162849_remove_unused_indexes.rb b/db/migrate/20180617162849_remove_unused_indexes.rb index 61add63855..9cd6b91648 100644 --- a/db/migrate/20180617162849_remove_unused_indexes.rb +++ b/db/migrate/20180617162849_remove_unused_indexes.rb @@ -1,7 +1,7 @@ class RemoveUnusedIndexes < ActiveRecord::Migration[5.2] def change - remove_index :statuses, name: "index_statuses_on_conversation_id" - remove_index :users, name: "index_users_on_filtered_languages" - remove_index :backups, name: "index_backups_on_user_id" + remove_index :statuses, name: 'index_statuses_on_conversation_id' + remove_index :users, name: 'index_users_on_filtered_languages' + remove_index :backups, name: 'index_backups_on_user_id' end end diff --git a/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb b/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb index 24d43a0bfd..c5c80b7953 100644 --- a/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb +++ b/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb @@ -6,7 +6,7 @@ class EncryptedMessageIdsToTimestampIds < ActiveRecord::Migration[5.2] end def down - execute("LOCK encrypted_messages") + execute('LOCK encrypted_messages') execute("SELECT setval('encrypted_messages_id_seq', (SELECT MAX(id) FROM encrypted_messages))") execute("ALTER TABLE encrypted_messages ALTER COLUMN id SET DEFAULT nextval('encrypted_messages_id_seq')") end diff --git a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb index 5c6865b927..ccd65bf53f 100644 --- a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb +++ b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb @@ -10,7 +10,7 @@ class MediaAttachmentIdsToTimestampIds < ActiveRecord::Migration[5.1] end def down - execute("LOCK media_attachments") + execute('LOCK media_attachments') execute("SELECT setval('media_attachments_id_seq', (SELECT MAX(id) FROM media_attachments))") execute("ALTER TABLE media_attachments ALTER COLUMN id SET DEFAULT nextval('media_attachments_id_seq')") end diff --git a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb index 39cd4cdea4..40c582842b 100644 --- a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb +++ b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb @@ -10,7 +10,7 @@ class AccountIdsToTimestampIds < ActiveRecord::Migration[5.1] end def down - execute("LOCK accounts") + execute('LOCK accounts') execute("SELECT setval('accounts_id_seq', (SELECT MAX(id) FROM accounts))") execute("ALTER TABLE accounts ALTER COLUMN id SET DEFAULT nextval('accounts_id_seq')") end diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb index a3e9479098..feb77107fb 100644 --- a/lib/mastodon/emoji_cli.rb +++ b/lib/mastodon/emoji_cli.rb @@ -49,7 +49,7 @@ module Mastodon next if filename.start_with?('._') shortcode = [options[:prefix], filename, options[:suffix]].compact.join - custom_emoji = CustomEmoji.local.find_by("LOWER(shortcode) = ?", shortcode.downcase) + custom_emoji = CustomEmoji.local.find_by('LOWER(shortcode) = ?', shortcode.downcase) if custom_emoji && !options[:overwrite] skipped += 1 diff --git a/lib/rails/engine_extensions.rb b/lib/rails/engine_extensions.rb index 4e3767db9e..1f5c2cd6cd 100644 --- a/lib/rails/engine_extensions.rb +++ b/lib/rails/engine_extensions.rb @@ -3,7 +3,7 @@ module Rails # Rewrite task loading code to filter digitalocean.rake task def run_tasks_blocks(app) Railtie.instance_method(:run_tasks_blocks).bind_call(self, app) - paths["lib/tasks"].existent.reject { |ext| ext.end_with?('digitalocean.rake') }.sort.each { |ext| load(ext) } + paths['lib/tasks'].existent.reject { |ext| ext.end_with?('digitalocean.rake') }.sort.each { |ext| load(ext) } end end end diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 477daa01b8..179a730bc5 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -264,7 +264,7 @@ namespace :mastodon do env['S3_ENDPOINT'] = prompt.ask('Storj DCS endpoint URL:') do |q| q.required true - q.default "https://gateway.storjshare.io" + q.default 'https://gateway.storjshare.io' q.modify :strip end diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb index cf8a27d394..0814f327d8 100644 --- a/spec/controllers/admin/change_email_controller_spec.rb +++ b/spec/controllers/admin/change_email_controller_spec.rb @@ -9,8 +9,8 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do sign_in admin end - describe "GET #show" do - it "returns http success" do + describe 'GET #show' do + it 'returns http success' do user = Fabricate(:user) get :show, params: { account_id: user.account.id } @@ -19,12 +19,12 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do end end - describe "GET #update" do + describe 'GET #update' do before do allow(UserMailer).to receive(:confirmation_instructions).and_return(double('email', deliver_later: nil)) end - it "returns http success" do + it 'returns http success' do user = Fabricate(:user) previous_email = user.email diff --git a/spec/controllers/api/v1/streaming_controller_spec.rb b/spec/controllers/api/v1/streaming_controller_spec.rb index 4ab409a541..9dbca01785 100644 --- a/spec/controllers/api/v1/streaming_controller_spec.rb +++ b/spec/controllers/api/v1/streaming_controller_spec.rb @@ -38,7 +38,7 @@ describe Api::V1::StreamingController do [:scheme, :path, :query, :fragment].each do |part| expect(redirect_to_uri.send(part)).to eq(request_uri.send(part)), "redirect target #{part}" end - expect(redirect_to_uri.host).to eq(@streaming_host), "redirect target host" + expect(redirect_to_uri.host).to eq(@streaming_host), 'redirect target host' end end end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 1b002e01cb..f14c451de1 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -27,7 +27,7 @@ describe ApplicationController, type: :controller do expect(response).to have_http_status(code) end - it "renders template for http" do + it 'renders template for http' do is_expected.to render_template("errors/#{code}", layout: 'error') end end @@ -146,7 +146,7 @@ describe ApplicationController, type: :controller do end it 'does not store location for user if it is devise controller' do - @request.env["devise.mapping"] = Devise.mappings[:user] + @request.env['devise.mapping'] = Devise.mappings[:user] get 'create' expect(controller.stored_location_for(:user)).to be_nil end diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index 38c003b534..7298bde003 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -32,7 +32,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do describe 'GET #edit' do it 'returns http success' do - request.env["devise.mapping"] = Devise.mappings[:user] + request.env['devise.mapping'] = Devise.mappings[:user] sign_in(Fabricate(:user)) get :edit expect(response).to have_http_status(200) @@ -41,7 +41,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do describe 'GET #update' do it 'returns http success' do - request.env["devise.mapping"] = Devise.mappings[:user] + request.env['devise.mapping'] = Devise.mappings[:user] sign_in(Fabricate(:user), scope: :user) post :update expect(response).to have_http_status(200) @@ -49,7 +49,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do context 'when suspended' do it 'returns http forbidden' do - request.env["devise.mapping"] = Devise.mappings[:user] + request.env['devise.mapping'] = Devise.mappings[:user] sign_in(Fabricate(:user, account_attributes: { username: 'test', suspended_at: Time.now.utc }), scope: :user) post :update expect(response).to have_http_status(403) @@ -59,7 +59,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do describe 'GET #new' do before do - request.env["devise.mapping"] = Devise.mappings[:user] + request.env['devise.mapping'] = Devise.mappings[:user] end context do @@ -92,7 +92,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do I18n.locale = current_locale end - before { request.env["devise.mapping"] = Devise.mappings[:user] } + before { request.env['devise.mapping'] = Devise.mappings[:user] } context do around do |example| @@ -103,7 +103,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do subject do Setting.registrations_mode = 'open' - request.headers["Accept-Language"] = accept_language + request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } } end @@ -129,7 +129,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do subject do Setting.registrations_mode = 'open' - request.headers["Accept-Language"] = accept_language + request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'false' } } end @@ -149,7 +149,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do subject do Setting.registrations_mode = 'approved' - request.headers["Accept-Language"] = accept_language + request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } } end @@ -176,7 +176,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do subject do Setting.registrations_mode = 'approved' - request.headers["Accept-Language"] = accept_language + request.headers['Accept-Language'] = accept_language invite = Fabricate(:invite, max_uses: nil, expires_at: 1.hour.ago) post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end @@ -208,7 +208,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do inviter = Fabricate(:user, confirmed_at: 2.days.ago) Setting.registrations_mode = 'approved' Setting.require_invite_text = true - request.headers["Accept-Language"] = accept_language + request.headers['Accept-Language'] = accept_language invite = Fabricate(:invite, user: inviter, max_uses: nil, expires_at: 1.hour.from_now) post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 8f898ad1f6..eb03dff500 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -54,7 +54,7 @@ RSpec.describe Auth::SessionsController, type: :controller do context 'using PAM authentication', if: ENV['PAM_ENABLED'] == 'true' do context 'using a valid password' do before do - post :create, params: { user: { email: "pam_user1", password: '123456' } } + post :create, params: { user: { email: 'pam_user1', password: '123456' } } end it 'redirects to home' do @@ -68,7 +68,7 @@ RSpec.describe Auth::SessionsController, type: :controller do context 'using an invalid password' do before do - post :create, params: { user: { email: "pam_user1", password: 'WRONGPW' } } + post :create, params: { user: { email: 'pam_user1', password: 'WRONGPW' } } end it 'shows a login error' do @@ -194,7 +194,7 @@ RSpec.describe Auth::SessionsController, type: :controller do post :create, params: { user: { email: user.email, password: user.password } } end - context "in single user mode" do + context 'in single user mode' do let(:single_user_mode) { true } it 'redirects to home' do @@ -202,7 +202,7 @@ RSpec.describe Auth::SessionsController, type: :controller do end end - context "in non-single user mode" do + context 'in non-single user mode' do let(:single_user_mode) { false } it "redirects back to the user's page" do @@ -230,8 +230,8 @@ RSpec.describe Auth::SessionsController, type: :controller do end it 'renders two factor authentication page' do - expect(controller).to render_template("two_factor") - expect(controller).to render_template(partial: "_otp_authentication_form") + expect(controller).to render_template('two_factor') + expect(controller).to render_template(partial: '_otp_authentication_form') end end @@ -246,8 +246,8 @@ RSpec.describe Auth::SessionsController, type: :controller do end it 'renders two factor authentication page' do - expect(controller).to render_template("two_factor") - expect(controller).to render_template(partial: "_otp_authentication_form") + expect(controller).to render_template('two_factor') + expect(controller).to render_template(partial: '_otp_authentication_form') end end @@ -257,8 +257,8 @@ RSpec.describe Auth::SessionsController, type: :controller do end it 'renders two factor authentication page' do - expect(controller).to render_template("two_factor") - expect(controller).to render_template(partial: "_otp_authentication_form") + expect(controller).to render_template('two_factor') + expect(controller).to render_template(partial: '_otp_authentication_form') end end @@ -359,8 +359,8 @@ RSpec.describe Auth::SessionsController, type: :controller do end it 'renders webauthn authentication page' do - expect(controller).to render_template("two_factor") - expect(controller).to render_template(partial: "_webauthn_form") + expect(controller).to render_template('two_factor') + expect(controller).to render_template(partial: '_webauthn_form') end end @@ -370,8 +370,8 @@ RSpec.describe Auth::SessionsController, type: :controller do end it 'renders webauthn authentication page' do - expect(controller).to render_template("two_factor") - expect(controller).to render_template(partial: "_webauthn_form") + expect(controller).to render_template('two_factor') + expect(controller).to render_template(partial: '_webauthn_form') end end diff --git a/spec/controllers/oauth/authorized_applications_controller_spec.rb b/spec/controllers/oauth/authorized_applications_controller_spec.rb index 901e538e95..885bfa35b3 100644 --- a/spec/controllers/oauth/authorized_applications_controller_spec.rb +++ b/spec/controllers/oauth/authorized_applications_controller_spec.rb @@ -13,7 +13,7 @@ describe Oauth::AuthorizedApplicationsController do shared_examples 'stores location for user' do it 'stores location for user' do subject - expect(controller.stored_location_for(:user)).to eq "/oauth/authorized_applications" + expect(controller.stored_location_for(:user)).to eq '/oauth/authorized_applications' end end diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index 8070a35db6..e50504cc5b 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -7,8 +7,8 @@ RSpec.describe Settings::ImportsController, type: :controller do sign_in Fabricate(:user), scope: :user end - describe "GET #show" do - it "returns http success" do + describe 'GET #show' do + it 'returns http success' do get :show expect(response).to have_http_status(200) end diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb index ee3aec8156..fbbca8bb92 100644 --- a/spec/controllers/settings/profiles_controller_spec.rb +++ b/spec/controllers/settings/profiles_controller_spec.rb @@ -10,8 +10,8 @@ RSpec.describe Settings::ProfilesController, type: :controller do sign_in user, scope: :user end - describe "GET #show" do - it "returns http success" do + describe 'GET #show' do + it 'returns http success' do get :show expect(response).to have_http_status(200) end diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb index 06989ffd2d..c3156c4e95 100644 --- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb @@ -137,7 +137,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do expect { get :options }.to_not change { user.webauthn_id } end - it "includes existing credentials in list of excluded credentials" do + it 'includes existing credentials in list of excluded credentials' do get :options excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].map { |credential| credential['id'] } diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb index 9247092603..347fe4027e 100644 --- a/spec/controllers/statuses_cleanup_controller_spec.rb +++ b/spec/controllers/statuses_cleanup_controller_spec.rb @@ -8,8 +8,8 @@ RSpec.describe StatusesCleanupController, type: :controller do sign_in @user, scope: :user end - describe "GET #show" do - it "returns http success" do + describe 'GET #show' do + it 'returns http success' do get :show expect(response).to have_http_status(200) end diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb index 36e85f20d1..964a14706b 100644 --- a/spec/controllers/well_known/nodeinfo_controller_spec.rb +++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb @@ -27,8 +27,8 @@ describe WellKnown::NodeInfoController, type: :controller do json = body_as_json - expect({ "foo" => 0 }).not_to match_json_schema("nodeinfo_2.0") - expect(json).to match_json_schema("nodeinfo_2.0") + expect({ 'foo' => 0 }).not_to match_json_schema('nodeinfo_2.0') + expect(json).to match_json_schema('nodeinfo_2.0') expect(json[:version]).to eq '2.0' expect(json[:usage]).to be_a Hash expect(json[:software]).to be_a Hash diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb index 9277af1655..343a41fb1a 100644 --- a/spec/fabricators/account_moderation_note_fabricator.rb +++ b/spec/fabricators/account_moderation_note_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:account_moderation_note) do - content "MyText" + content 'MyText' account nil end diff --git a/spec/fabricators/account_note_fabricator.rb b/spec/fabricators/account_note_fabricator.rb index 1b061745a3..285703b38c 100644 --- a/spec/fabricators/account_note_fabricator.rb +++ b/spec/fabricators/account_note_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:account_note) do account target_account { Fabricate(:account) } - comment "User note text" + comment 'User note text' end diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb index 2b06b47909..b1b47ffef4 100644 --- a/spec/fabricators/account_stat_fabricator.rb +++ b/spec/fabricators/account_stat_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:account_stat) do account nil - statuses_count "" - following_count "" - followers_count "" + statuses_count '' + following_count '' + followers_count '' end diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb index 9edb550bec..7a4de07f62 100644 --- a/spec/fabricators/account_tag_stat_fabricator.rb +++ b/spec/fabricators/account_tag_stat_fabricator.rb @@ -1,3 +1,3 @@ Fabricator(:account_tag_stat) do - accounts_count "" + accounts_count '' end diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb index 6c0b87e7cd..7e7c03cb81 100644 --- a/spec/fabricators/account_warning_preset_fabricator.rb +++ b/spec/fabricators/account_warning_preset_fabricator.rb @@ -1,3 +1,3 @@ Fabricator(:account_warning_preset) do - text "MyText" + text 'MyText' end diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb index 2f44e953d9..474bef1bce 100644 --- a/spec/fabricators/admin_action_log_fabricator.rb +++ b/spec/fabricators/admin_action_log_fabricator.rb @@ -1,5 +1,5 @@ Fabricator('Admin::ActionLog') do account nil - action "MyString" + action 'MyString' target nil end diff --git a/spec/fabricators/canonical_email_block_fabricator.rb b/spec/fabricators/canonical_email_block_fabricator.rb index a0b6e0d221..61afde3de2 100644 --- a/spec/fabricators/canonical_email_block_fabricator.rb +++ b/spec/fabricators/canonical_email_block_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:canonical_email_block) do - email "test@example.com" + email 'test@example.com' reference_account { Fabricate(:account) } end diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb index f57ffd5359..0fe7a494ef 100644 --- a/spec/fabricators/conversation_account_fabricator.rb +++ b/spec/fabricators/conversation_account_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:conversation_account) do account nil conversation nil - participant_account_ids "" + participant_account_ids '' last_status nil end diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb index f593b95ed4..119c343cf0 100644 --- a/spec/fabricators/custom_emoji_category_fabricator.rb +++ b/spec/fabricators/custom_emoji_category_fabricator.rb @@ -1,3 +1,3 @@ Fabricator(:custom_emoji_category) do - name "MyString" + name 'MyString' end diff --git a/spec/fabricators/domain_allow_fabricator.rb b/spec/fabricators/domain_allow_fabricator.rb index 6226b1e20b..6f62ce3b8c 100644 --- a/spec/fabricators/domain_allow_fabricator.rb +++ b/spec/fabricators/domain_allow_fabricator.rb @@ -1,3 +1,3 @@ Fabricator(:domain_allow) do - domain "MyString" + domain 'MyString' end diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb index e65f663024..4de0d7add2 100644 --- a/spec/fabricators/encrypted_message_fabricator.rb +++ b/spec/fabricators/encrypted_message_fabricator.rb @@ -3,6 +3,6 @@ Fabricator(:encrypted_message) do from_account from_device_id { Faker::Number.number(digits: 5) } type 0 - body "" - message_franking "" + body '' + message_franking '' end diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb index bc832df9f7..fcfb15518f 100644 --- a/spec/fabricators/identity_fabricator.rb +++ b/spec/fabricators/identity_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:identity) do user nil - provider "MyString" - uid "MyString" + provider 'MyString' + uid 'MyString' end diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb index 1797f68776..5bd018f9c2 100644 --- a/spec/fabricators/ip_block_fabricator.rb +++ b/spec/fabricators/ip_block_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:ip_block) do - ip "" - severity "" - expires_at "2020-10-08 22:20:37" - comment "MyText" + ip '' + severity '' + expires_at '2020-10-08 22:20:37' + comment 'MyText' end diff --git a/spec/fabricators/list_fabricator.rb b/spec/fabricators/list_fabricator.rb index c3db690fa4..4ad29a386e 100644 --- a/spec/fabricators/list_fabricator.rb +++ b/spec/fabricators/list_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:list) do account - title "MyString" + title 'MyString' end diff --git a/spec/fabricators/relay_fabricator.rb b/spec/fabricators/relay_fabricator.rb index 488913f772..d6255866cf 100644 --- a/spec/fabricators/relay_fabricator.rb +++ b/spec/fabricators/relay_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:relay) do - inbox_url "https://example.com/inbox" + inbox_url 'https://example.com/inbox' state :idle end diff --git a/spec/fabricators/report_fabricator.rb b/spec/fabricators/report_fabricator.rb index 2c7101e094..3011c49c6f 100644 --- a/spec/fabricators/report_fabricator.rb +++ b/spec/fabricators/report_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:report) do account target_account { Fabricate(:account) } - comment "You nasty" + comment 'You nasty' action_taken_at nil end diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb index e139efffbc..33f3840746 100644 --- a/spec/fabricators/report_note_fabricator.rb +++ b/spec/fabricators/report_note_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:report_note) do report account { Fabricate(:account) } - content "Test Content" + content 'Test Content' end diff --git a/spec/fabricators/session_activation_fabricator.rb b/spec/fabricators/session_activation_fabricator.rb index 526faaec2b..a7fc3b017d 100644 --- a/spec/fabricators/session_activation_fabricator.rb +++ b/spec/fabricators/session_activation_fabricator.rb @@ -1,4 +1,4 @@ Fabricator(:session_activation) do user - session_id "MyString" + session_id 'MyString' end diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb index 3141759e5c..0e5796b232 100644 --- a/spec/fabricators/status_edit_fabricator.rb +++ b/spec/fabricators/status_edit_fabricator.rb @@ -1,7 +1,7 @@ Fabricator(:status_edit) do status nil account nil - text "MyText" - spoiler_text "MyText" + text 'MyText' + spoiler_text 'MyText' media_attachments_changed false end diff --git a/spec/fabricators/status_fabricator.rb b/spec/fabricators/status_fabricator.rb index 04bbbcf4b0..8a0a8aa557 100644 --- a/spec/fabricators/status_fabricator.rb +++ b/spec/fabricators/status_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:status) do account - text "Lorem ipsum dolor sit amet" + text 'Lorem ipsum dolor sit amet' after_build do |status| status.uri = Faker::Internet.device_token if !status.account.local? && status.uri.nil? diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb index 9c67fd404a..feba9fbcab 100644 --- a/spec/fabricators/status_stat_fabricator.rb +++ b/spec/fabricators/status_stat_fabricator.rb @@ -1,6 +1,6 @@ Fabricator(:status_stat) do status_id nil - replies_count "" - reblogs_count "" - favourites_count "" + replies_count '' + reblogs_count '' + favourites_count '' end diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb index 10ad2c53a3..93ce07a74d 100644 --- a/spec/fabricators/user_fabricator.rb +++ b/spec/fabricators/user_fabricator.rb @@ -1,7 +1,7 @@ Fabricator(:user) do account { Fabricate.build(:account, user: nil) } email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } } - password "123456789" + password '123456789' confirmed_at { Time.zone.now } agreement true end diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb index ed0a7dc1f3..592b4edcaa 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 "" + name 'MyString' + color '' permissions 0 end diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index 329cdf34cb..5ae738ee26 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -7,8 +7,8 @@ describe 'Log in' do subject { page } - let(:email) { "test@example.com" } - let(:password) { "password" } + let(:email) { 'test@example.com' } + let(:password) { 'password' } let(:confirmed_at) { Time.zone.now } before do diff --git a/spec/helpers/accounts_helper_spec.rb b/spec/helpers/accounts_helper_spec.rb index 2b35b23b79..1f412a39ff 100644 --- a/spec/helpers/accounts_helper_spec.rb +++ b/spec/helpers/accounts_helper_spec.rb @@ -13,15 +13,15 @@ RSpec.describe AccountsHelper, type: :helper do describe '#display_name' do it 'uses the display name when it exists' do - account = Account.new(display_name: "Display", username: "Username") + account = Account.new(display_name: 'Display', username: 'Username') - expect(helper.display_name(account)).to eq "Display" + expect(helper.display_name(account)).to eq 'Display' end it 'uses the username when display name is nil' do - account = Account.new(display_name: nil, username: "Username") + account = Account.new(display_name: nil, username: 'Username') - expect(helper.display_name(account)).to eq "Username" + expect(helper.display_name(account)).to eq 'Username' end end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 1dbd985bf4..b335a5e45e 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -5,8 +5,8 @@ describe ApplicationHelper do it 'returns active when on the current page' do allow(helper).to receive(:current_page?).and_return(true) - result = helper.active_nav_class("/test") - expect(result).to eq "active" + result = helper.active_nav_class('/test') + expect(result).to eq 'active' end it 'returns active when on a current page' do @@ -14,14 +14,14 @@ describe ApplicationHelper do allow(helper).to receive(:current_page?).with('/test').and_return(true) result = helper.active_nav_class('/foo', '/test') - expect(result).to eq "active" + expect(result).to eq 'active' end it 'returns empty string when not on current page' do allow(helper).to receive(:current_page?).and_return(false) - result = helper.active_nav_class("/test") - expect(result).to eq "" + result = helper.active_nav_class('/test') + expect(result).to eq '' end end diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index eb55c3983c..7195cec064 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -416,7 +416,7 @@ RSpec.describe FeedManager do FeedManager.instance.merge_into_home(account, reblog.account) - expect(redis.zscore("feed:home:0", reblog.id)).to eq nil + expect(redis.zscore('feed:home:0', reblog.id)).to eq nil end end diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb index 29bdc349b8..6746871a3d 100644 --- a/spec/mailers/notification_mailer_spec.rb +++ b/spec/mailers/notification_mailer_spec.rb @@ -1,4 +1,4 @@ -require "rails_helper" +require 'rails_helper' RSpec.describe NotificationMailer, type: :mailer do let(:receiver) { Fabricate(:user) } @@ -19,69 +19,69 @@ RSpec.describe NotificationMailer, type: :mailer do end end - describe "mention" do + describe 'mention' do let(:mention) { Mention.create!(account: receiver.account, status: foreign_status) } let(:mail) { NotificationMailer.mention(receiver.account, Notification.create!(account: receiver.account, activity: mention)) } include_examples 'localized subject', 'notification_mailer.mention.subject', name: 'bob' - it "renders the headers" do - expect(mail.subject).to eq("You were mentioned by bob") + it 'renders the headers' do + expect(mail.subject).to eq('You were mentioned by bob') expect(mail.to).to eq([receiver.email]) end - it "renders the body" do - expect(mail.body.encoded).to match("You were mentioned by bob") + it 'renders the body' do + expect(mail.body.encoded).to match('You were mentioned by bob') expect(mail.body.encoded).to include 'The body of the foreign status' end end - describe "follow" do + describe 'follow' do let(:follow) { sender.follow!(receiver.account) } let(:mail) { NotificationMailer.follow(receiver.account, Notification.create!(account: receiver.account, activity: follow)) } include_examples 'localized subject', 'notification_mailer.follow.subject', name: 'bob' - it "renders the headers" do - expect(mail.subject).to eq("bob is now following you") + it 'renders the headers' do + expect(mail.subject).to eq('bob is now following you') expect(mail.to).to eq([receiver.email]) end - it "renders the body" do - expect(mail.body.encoded).to match("bob is now following you") + it 'renders the body' do + expect(mail.body.encoded).to match('bob is now following you') end end - describe "favourite" do + describe 'favourite' do let(:favourite) { Favourite.create!(account: sender, status: own_status) } let(:mail) { NotificationMailer.favourite(own_status.account, Notification.create!(account: receiver.account, activity: favourite)) } include_examples 'localized subject', 'notification_mailer.favourite.subject', name: 'bob' - it "renders the headers" do - expect(mail.subject).to eq("bob favourited your post") + it 'renders the headers' do + expect(mail.subject).to eq('bob favourited your post') expect(mail.to).to eq([receiver.email]) end - it "renders the body" do - expect(mail.body.encoded).to match("Your post was favourited by bob") + it 'renders the body' do + expect(mail.body.encoded).to match('Your post was favourited by bob') expect(mail.body.encoded).to include 'The body of the own status' end end - describe "reblog" do + describe 'reblog' do let(:reblog) { Status.create!(account: sender, reblog: own_status) } let(:mail) { NotificationMailer.reblog(own_status.account, Notification.create!(account: receiver.account, activity: reblog)) } include_examples 'localized subject', 'notification_mailer.reblog.subject', name: 'bob' - it "renders the headers" do - expect(mail.subject).to eq("bob boosted your post") + it 'renders the headers' do + expect(mail.subject).to eq('bob boosted your post') expect(mail.to).to eq([receiver.email]) end - it "renders the body" do - expect(mail.body.encoded).to match("Your post was boosted by bob") + it 'renders the body' do + expect(mail.body.encoded).to match('Your post was boosted by bob') expect(mail.body.encoded).to include 'The body of the own status' end end @@ -98,7 +98,7 @@ RSpec.describe NotificationMailer, type: :mailer do end it 'renders the body' do - expect(mail.body.encoded).to match("bob has requested to follow you") + expect(mail.body.encoded).to match('bob has requested to follow you') end end end diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 2ed33c1e4a..9c22f60f1d 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -90,7 +90,7 @@ describe UserMailer, type: :mailer do it 'renders warning notification' do receiver.update!(locale: nil) - expect(mail.body.encoded).to include I18n.t("user_mailer.warning.title.suspend", acct: receiver.account.acct) + expect(mail.body.encoded).to include I18n.t('user_mailer.warning.title.suspend', acct: receiver.account.acct) expect(mail.body.encoded).to include strike.text end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 694432a1e5..7638356181 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -345,9 +345,9 @@ RSpec.describe Account, type: :model do before do _missing = Fabricate( :account, - display_name: "Missing", - username: "missing", - domain: "missing.com" + display_name: 'Missing', + username: 'missing', + domain: 'missing.com' ) end @@ -405,58 +405,58 @@ RSpec.describe Account, type: :model do it 'finds accounts with matching display_name' do match = Fabricate( :account, - display_name: "Display Name", - username: "username", - domain: "example.com" + display_name: 'Display Name', + username: 'username', + domain: 'example.com' ) - results = Account.search_for("display") + results = Account.search_for('display') expect(results).to eq [match] end it 'finds accounts with matching username' do match = Fabricate( :account, - display_name: "Display Name", - username: "username", - domain: "example.com" + display_name: 'Display Name', + username: 'username', + domain: 'example.com' ) - results = Account.search_for("username") + results = Account.search_for('username') expect(results).to eq [match] end it 'finds accounts with matching domain' do match = Fabricate( :account, - display_name: "Display Name", - username: "username", - domain: "example.com" + display_name: 'Display Name', + username: 'username', + domain: 'example.com' ) - results = Account.search_for("example") + results = Account.search_for('example') expect(results).to eq [match] end it 'limits by 10 by default' do - 11.times.each { Fabricate(:account, display_name: "Display Name") } - results = Account.search_for("display") + 11.times.each { Fabricate(:account, display_name: 'Display Name') } + results = Account.search_for('display') expect(results.size).to eq 10 end it 'accepts arbitrary limits' do - 2.times.each { Fabricate(:account, display_name: "Display Name") } - results = Account.search_for("display", limit: 1) + 2.times.each { Fabricate(:account, display_name: 'Display Name') } + results = Account.search_for('display', limit: 1) expect(results.size).to eq 1 end it 'ranks multiple matches higher' do matches = [ - { username: "username", display_name: "username" }, - { display_name: "Display Name", username: "username", domain: "example.com" }, + { username: 'username', display_name: 'username' }, + { display_name: 'Display Name', username: 'username', domain: 'example.com' }, ].map(&method(:Fabricate).curry(2).call(:account)) - results = Account.search_for("username") + results = Account.search_for('username') expect(results).to eq matches end end @@ -582,23 +582,23 @@ RSpec.describe Account, type: :model do end it 'limits by 10 by default' do - 11.times { Fabricate(:account, display_name: "Display Name") } - results = Account.advanced_search_for("display", account) + 11.times { Fabricate(:account, display_name: 'Display Name') } + results = Account.advanced_search_for('display', account) expect(results.size).to eq 10 end it 'accepts arbitrary limits' do - 2.times { Fabricate(:account, display_name: "Display Name") } - results = Account.advanced_search_for("display", account, limit: 1) + 2.times { Fabricate(:account, display_name: 'Display Name') } + results = Account.advanced_search_for('display', account, limit: 1) expect(results.size).to eq 1 end it 'ranks followed accounts higher' do - match = Fabricate(:account, username: "Matching") - followed_match = Fabricate(:account, username: "Matcher") + match = Fabricate(:account, username: 'Matching') + followed_match = Fabricate(:account, username: 'Matcher') Fabricate(:follow, account: account, target_account: followed_match) - results = Account.advanced_search_for("match", account) + results = Account.advanced_search_for('match', account) expect(results).to eq [followed_match, match] expect(results.first.rank).to be > results.last.rank end diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 29fd313aec..d1a94d41a1 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -94,8 +94,8 @@ RSpec.describe MediaAttachment, type: :model do end it 'sets meta' do - expect(media.file.meta["original"]["width"]).to eq 128 - expect(media.file.meta["original"]["height"]).to eq 128 + expect(media.file.meta['original']['width']).to eq 128 + expect(media.file.meta['original']['height']).to eq 128 end end @@ -118,9 +118,9 @@ RSpec.describe MediaAttachment, type: :model do end it 'sets meta' do - expect(media.file.meta["original"]["width"]).to eq fixture[:width] - expect(media.file.meta["original"]["height"]).to eq fixture[:height] - expect(media.file.meta["original"]["aspect"]).to eq fixture[:aspect] + expect(media.file.meta['original']['width']).to eq fixture[:width] + expect(media.file.meta['original']['height']).to eq fixture[:height] + expect(media.file.meta['original']['aspect']).to eq fixture[:aspect] end end end @@ -154,12 +154,12 @@ RSpec.describe MediaAttachment, type: :model do let(:media) { MediaAttachment.create(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) } it 'sets meta for different style' do - expect(media.file.meta["original"]["width"]).to eq 600 - expect(media.file.meta["original"]["height"]).to eq 400 - expect(media.file.meta["original"]["aspect"]).to eq 1.5 - expect(media.file.meta["small"]["width"]).to eq 588 - expect(media.file.meta["small"]["height"]).to eq 392 - expect(media.file.meta["small"]["aspect"]).to eq 1.5 + expect(media.file.meta['original']['width']).to eq 600 + expect(media.file.meta['original']['height']).to eq 400 + expect(media.file.meta['original']['aspect']).to eq 1.5 + expect(media.file.meta['small']['width']).to eq 588 + expect(media.file.meta['small']['height']).to eq 392 + expect(media.file.meta['small']['aspect']).to eq 1.5 end it 'gives the file a random name' do diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb index bd57195937..eeadbb71c2 100644 --- a/spec/models/web/push_subscription_spec.rb +++ b/spec/models/web/push_subscription_spec.rb @@ -29,7 +29,7 @@ RSpec.describe Web::PushSubscription, type: :model do context "when notification is a #{type}" do let(:notification_type) { type } - it "returns boolean corresponding to alert setting" do + it 'returns boolean corresponding to alert setting' do expect(subject.pushable?(notification)).to eq data[:alerts][type] end end diff --git a/spec/models/webauthn_credentials_spec.rb b/spec/models/webauthn_credentials_spec.rb index a63ae6cd24..e070a6b60e 100644 --- a/spec/models/webauthn_credentials_spec.rb +++ b/spec/models/webauthn_credentials_spec.rb @@ -35,8 +35,8 @@ RSpec.describe WebauthnCredential, type: :model do end it 'is invalid if already exist a webauthn credential with the same external id' do - existing_webauthn_credential = Fabricate(:webauthn_credential, external_id: "_Typ0ygudDnk9YUVWLQayw") - new_webauthn_credential = Fabricate.build(:webauthn_credential, external_id: "_Typ0ygudDnk9YUVWLQayw") + existing_webauthn_credential = Fabricate(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw') + new_webauthn_credential = Fabricate.build(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw') new_webauthn_credential.valid? diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index 659c2cc2ff..a451b5cba4 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -10,9 +10,9 @@ describe InstancePresenter do Setting.site_short_description = site_description end - it "delegates site_description to Setting" do - Setting.site_short_description = "Site desc" - expect(instance_presenter.description).to eq "Site desc" + it 'delegates site_description to Setting' do + Setting.site_short_description = 'Site desc' + expect(instance_presenter.description).to eq 'Site desc' end end @@ -23,9 +23,9 @@ describe InstancePresenter do Setting.site_extended_description = site_extended_description end - it "delegates site_extended_description to Setting" do - Setting.site_extended_description = "Extended desc" - expect(instance_presenter.extended_description).to eq "Extended desc" + it 'delegates site_extended_description to Setting' do + Setting.site_extended_description = 'Extended desc' + expect(instance_presenter.extended_description).to eq 'Extended desc' end end @@ -36,9 +36,9 @@ describe InstancePresenter do Setting.site_contact_email = site_contact_email end - it "delegates contact_email to Setting" do - Setting.site_contact_email = "admin@example.com" - expect(instance_presenter.contact.email).to eq "admin@example.com" + it 'delegates contact_email to Setting' do + Setting.site_contact_email = 'admin@example.com' + expect(instance_presenter.contact.email).to eq 'admin@example.com' end end @@ -49,15 +49,15 @@ describe InstancePresenter do Setting.site_contact_username = site_contact_username end - it "returns the account for the site contact username" do - Setting.site_contact_username = "aaa" - account = Fabricate(:account, username: "aaa") + it 'returns the account for the site contact username' do + Setting.site_contact_username = 'aaa' + account = Fabricate(:account, username: 'aaa') expect(instance_presenter.contact.account).to eq(account) end end describe '#user_count' do - it "returns the number of site users" do + it 'returns the number of site users' do Rails.cache.write 'user_count', 123 expect(instance_presenter.user_count).to eq(123) @@ -65,7 +65,7 @@ describe InstancePresenter do end describe '#status_count' do - it "returns the number of local statuses" do + it 'returns the number of local statuses' do Rails.cache.write 'local_status_count', 234 expect(instance_presenter.status_count).to eq(234) @@ -73,7 +73,7 @@ describe InstancePresenter do end describe '#domain_count' do - it "returns the number of known domains" do + it 'returns the number of known domains' do Rails.cache.write 'distinct_domain_count', 345 expect(instance_presenter.domain_count).to eq(345) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 20e48b9a39..9a14fc3b1d 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,7 +1,7 @@ ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../config/environment', __dir__) -abort("The Rails environment is running in production mode!") if Rails.env.production? +abort('The Rails environment is running in production mode!') if Rails.env.production? require 'spec_helper' require 'rspec/rails' diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb index f965f55221..fb18965d85 100644 --- a/spec/requests/catch_all_route_request_spec.rb +++ b/spec/requests/catch_all_route_request_spec.rb @@ -1,21 +1,21 @@ -require "rails_helper" +require 'rails_helper' -describe "The catch all route" do - describe "with a simple value" do - it "returns a 404 page as html" do - get "/test" +describe 'The catch all route' do + describe 'with a simple value' do + it 'returns a 404 page as html' do + get '/test' expect(response.status).to eq 404 - expect(response.media_type).to eq "text/html" + expect(response.media_type).to eq 'text/html' end end - describe "with an implied format" do - it "returns a 404 page as html" do - get "/test.test" + describe 'with an implied format' do + it 'returns a 404 page as html' do + get '/test.test' expect(response.status).to eq 404 - expect(response.media_type).to eq "text/html" + expect(response.media_type).to eq 'text/html' end end end diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb index 0ca6414613..60153ba8c9 100644 --- a/spec/requests/host_meta_request_spec.rb +++ b/spec/requests/host_meta_request_spec.rb @@ -1,12 +1,12 @@ -require "rails_helper" +require 'rails_helper' -describe "The host_meta route" do - describe "requested without accepts headers" do - it "returns an xml response" do +describe 'The host_meta route' do + describe 'requested without accepts headers' do + it 'returns an xml response' do get host_meta_url expect(response).to have_http_status(200) - expect(response.media_type).to eq "application/xrd+xml" + expect(response.media_type).to eq 'application/xrd+xml' end end end diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb index 0bc2786ac4..39eeee5f01 100644 --- a/spec/requests/localization_spec.rb +++ b/spec/requests/localization_spec.rb @@ -10,7 +10,7 @@ describe 'Localization' do it 'uses a specific region when provided' do headers = { 'Accept-Language' => 'zh-HK' } - get "/auth/sign_in", headers: headers + get '/auth/sign_in', headers: headers expect(response.body).to include( I18n.t('auth.login', locale: 'zh-HK') @@ -20,7 +20,7 @@ describe 'Localization' do it 'falls back to a locale when region missing' do headers = { 'Accept-Language' => 'es-FAKE' } - get "/auth/sign_in", headers: headers + get '/auth/sign_in', headers: headers expect(response.body).to include( I18n.t('auth.login', locale: 'es') @@ -30,7 +30,7 @@ describe 'Localization' do it 'falls back to english when locale is missing' do headers = { 'Accept-Language' => '12-FAKE' } - get "/auth/sign_in", headers: headers + get '/auth/sign_in', headers: headers expect(response.body).to include( I18n.t('auth.login', locale: 'en') diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb index 81cbc175e5..d3b5baad62 100644 --- a/spec/services/account_search_service_spec.rb +++ b/spec/services/account_search_service_spec.rb @@ -76,7 +76,7 @@ describe AccountSearchService, type: :service do expect(results).to eq [partial] end - it "does not return suspended remote accounts" do + it 'does not return suspended remote accounts' do remote = Fabricate(:account, username: 'a', domain: 'remote', display_name: 'e', suspended: true) results = subject.call('a@example.com', nil, limit: 2) diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index e02054672e..4f3503ac2d 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -11,7 +11,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:note) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234", + id: 'https://foo.bar/@foo/1234', type: 'Note', content: 'Lorem ipsum', attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -46,7 +46,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234", + id: 'https://foo.bar/@foo/1234', type: 'Video', name: 'Nyan Cat 10 hours remix', attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -54,13 +54,13 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do { type: 'Link', mimeType: 'application/x-bittorrent', - href: "https://foo.bar/12345.torrent", + href: 'https://foo.bar/12345.torrent', }, { type: 'Link', mimeType: 'text/html', - href: "https://foo.bar/watch?v=12345", + href: 'https://foo.bar/watch?v=12345', }, ], } @@ -70,8 +70,8 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do status = sender.statuses.first expect(status).to_not be_nil - expect(status.url).to eq "https://foo.bar/watch?v=12345" - expect(strip_tags(status.text)).to eq "Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345" + expect(status.url).to eq 'https://foo.bar/watch?v=12345' + expect(strip_tags(status.text)).to eq 'Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345' end end @@ -79,7 +79,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234", + id: 'https://foo.bar/@foo/1234', type: 'Audio', name: 'Nyan Cat 10 hours remix', attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -87,13 +87,13 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do { type: 'Link', mimeType: 'application/x-bittorrent', - href: "https://foo.bar/12345.torrent", + href: 'https://foo.bar/12345.torrent', }, { type: 'Link', mimeType: 'text/html', - href: "https://foo.bar/watch?v=12345", + href: 'https://foo.bar/watch?v=12345', }, ], } @@ -103,8 +103,8 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do status = sender.statuses.first expect(status).to_not be_nil - expect(status.url).to eq "https://foo.bar/watch?v=12345" - expect(strip_tags(status.text)).to eq "Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345" + expect(status.url).to eq 'https://foo.bar/watch?v=12345' + expect(strip_tags(status.text)).to eq 'Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345' end end @@ -112,7 +112,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234", + id: 'https://foo.bar/@foo/1234', type: 'Event', name: "Let's change the world", attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -123,7 +123,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do status = sender.statuses.first expect(status).to_not be_nil - expect(status.url).to eq "https://foo.bar/@foo/1234" + expect(status.url).to eq 'https://foo.bar/@foo/1234' expect(strip_tags(status.text)).to eq "Let's change the worldhttps://foo.bar/@foo/1234" end end @@ -132,7 +132,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:note) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://real.address/@foo/1234", + id: 'https://real.address/@foo/1234', type: 'Note', content: 'Lorem ipsum', attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -154,7 +154,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234/create", + id: 'https://foo.bar/@foo/1234/create', type: 'Create', actor: ActivityPub::TagManager.instance.uri_for(sender), object: note, @@ -174,11 +174,11 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234/create", + id: 'https://foo.bar/@foo/1234/create', type: 'Create', actor: ActivityPub::TagManager.instance.uri_for(sender), object: { - id: "https://real.address/@foo/1234", + id: 'https://real.address/@foo/1234', type: 'Note', content: 'Lorem ipsum', attributedTo: ActivityPub::TagManager.instance.uri_for(sender), @@ -208,7 +208,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1234/create", + id: 'https://foo.bar/@foo/1234/create', type: 'Create', actor: ActivityPub::TagManager.instance.uri_for(sender), object: note.merge(updated: '2021-09-08T22:39:25Z'), @@ -233,7 +233,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1", + id: 'https://foo.bar/@foo/1', type: 'Note', content: 'Lorem ipsum', inReplyTo: 'https://foo.bar/@foo/2', @@ -269,7 +269,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do let(:object) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://foo.bar/@foo/1", + id: 'https://foo.bar/@foo/1', type: 'Note', content: 'Lorem ipsum', replies: { diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb index 1fbe4d07c2..cc4b168fcd 100644 --- a/spec/services/delete_account_service_spec.rb +++ b/spec/services/delete_account_service_spec.rb @@ -59,8 +59,8 @@ RSpec.describe DeleteAccountService, type: :service do describe '#call on local account' do before do - stub_request(:post, "https://alice.com/inbox").to_return(status: 201) - stub_request(:post, "https://bob.com/inbox").to_return(status: 201) + stub_request(:post, 'https://alice.com/inbox').to_return(status: 201) + stub_request(:post, 'https://bob.com/inbox').to_return(status: 201) end let!(:remote_alice) { Fabricate(:account, inbox_url: 'https://alice.com/inbox', protocol: :activitypub) } @@ -72,16 +72,16 @@ RSpec.describe DeleteAccountService, type: :service do it 'sends a delete actor activity to all known inboxes' do subject - expect(a_request(:post, "https://alice.com/inbox")).to have_been_made.once - expect(a_request(:post, "https://bob.com/inbox")).to have_been_made.once + expect(a_request(:post, 'https://alice.com/inbox')).to have_been_made.once + expect(a_request(:post, 'https://bob.com/inbox')).to have_been_made.once end end end describe '#call on remote account' do before do - stub_request(:post, "https://alice.com/inbox").to_return(status: 201) - stub_request(:post, "https://bob.com/inbox").to_return(status: 201) + stub_request(:post, 'https://alice.com/inbox').to_return(status: 201) + stub_request(:post, 'https://bob.com/inbox').to_return(status: 201) end include_examples 'common behavior' do diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb index 9781f0d78b..8703c2af8f 100644 --- a/spec/services/favourite_service_spec.rb +++ b/spec/services/favourite_service_spec.rb @@ -23,7 +23,7 @@ RSpec.describe FavouriteService, type: :service do let(:status) { Fabricate(:status, account: bob) } before do - stub_request(:post, "http://example.com/inbox").to_return(status: 200, body: "", headers: {}) + stub_request(:post, 'http://example.com/inbox').to_return(status: 200, body: '', headers: {}) subject.call(sender, status) end @@ -32,7 +32,7 @@ RSpec.describe FavouriteService, type: :service do end it 'sends a like activity' do - expect(a_request(:post, "http://example.com/inbox")).to have_been_made.once + expect(a_request(:post, 'http://example.com/inbox')).to have_been_made.once end end end diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb index 4914c27532..458473c39e 100644 --- a/spec/services/fetch_link_card_service_spec.rb +++ b/spec/services/fetch_link_card_service_spec.rb @@ -30,7 +30,7 @@ RSpec.describe FetchLinkCardService, type: :service do it 'works with SJIS' do expect(a_request(:get, 'http://example.com/sjis')).to have_been_made.at_least_once - expect(status.preview_cards.first.title).to eq("SJISのページ") + expect(status.preview_cards.first.title).to eq('SJISのページ') end end @@ -39,7 +39,7 @@ RSpec.describe FetchLinkCardService, type: :service do it 'works with SJIS even with wrong charset header' do expect(a_request(:get, 'http://example.com/sjis_with_wrong_charset')).to have_been_made.at_least_once - expect(status.preview_cards.first.title).to eq("SJISのページ") + expect(status.preview_cards.first.title).to eq('SJISのページ') end end @@ -48,7 +48,7 @@ RSpec.describe FetchLinkCardService, type: :service do it 'works with koi8-r' do expect(a_request(:get, 'http://example.com/koi8-r')).to have_been_made.at_least_once - expect(status.preview_cards.first.title).to eq("Московя начинаетъ только въ XVI ст. привлекать внимане иностранцевъ.") + expect(status.preview_cards.first.title).to eq('Московя начинаетъ только въ XVI ст. привлекать внимане иностранцевъ.') end end @@ -66,7 +66,7 @@ RSpec.describe FetchLinkCardService, type: :service do it 'works with Japanese path string' do expect(a_request(:get, 'http://example.com/日本語')).to have_been_made.at_least_once - expect(status.preview_cards.first.title).to eq("SJISのページ") + expect(status.preview_cards.first.title).to eq('SJISのページ') end end diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb index dcd0f80de5..cf46f2d390 100644 --- a/spec/services/fetch_oembed_service_spec.rb +++ b/spec/services/fetch_oembed_service_spec.rb @@ -6,9 +6,9 @@ describe FetchOEmbedService, type: :service do subject { described_class.new } before do - stub_request(:get, "https://host.test/provider.json").to_return(status: 404) - stub_request(:get, "https://host.test/provider.xml").to_return(status: 404) - stub_request(:get, "https://host.test/empty_provider.json").to_return(status: 200) + stub_request(:get, 'https://host.test/provider.json').to_return(status: 404) + stub_request(:get, 'https://host.test/provider.xml').to_return(status: 404) + stub_request(:get, 'https://host.test/empty_provider.json').to_return(status: 200) end describe 'discover_provider' do diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index 4f6ad64967..02c62f8d60 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -7,7 +7,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do let(:note) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: "https://example.org/@foo/1234", + id: 'https://example.org/@foo/1234', type: 'Note', content: 'Lorem ipsum', attributedTo: ActivityPub::TagManager.instance.uri_for(account), diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb index 412c04d76b..59073c27f2 100644 --- a/spec/services/follow_service_spec.rb +++ b/spec/services/follow_service_spec.rb @@ -140,7 +140,7 @@ RSpec.describe FollowService, type: :service do let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', protocol: :activitypub, inbox_url: 'http://example.com/inbox') } before do - stub_request(:post, "http://example.com/inbox").to_return(status: 200, body: "", headers: {}) + stub_request(:post, 'http://example.com/inbox').to_return(status: 200, body: '', headers: {}) subject.call(sender, bob) end diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 399a43036a..a12148833d 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -8,7 +8,7 @@ RSpec.describe ImportService, type: :service do let!(:eve) { Fabricate(:account, username: 'eve', domain: 'example.com', locked: false, protocol: :activitypub, inbox_url: 'https://example.com/inbox') } before do - stub_request(:post, "https://example.com/inbox").to_return(status: 200) + stub_request(:post, 'https://example.com/inbox').to_return(status: 200) end context 'import old-style list of muted users' do @@ -186,7 +186,7 @@ RSpec.describe ImportService, type: :service do # Make sure to not actually go to the remote server before do - stub_request(:post, "https://թութ.հայ/inbox").to_return(status: 200) + stub_request(:post, 'https://թութ.հայ/inbox').to_return(status: 200) end let(:csv) { attachment_fixture('utf8-followers.txt') } diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 7bb7dfb1f9..0b72253a5a 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe PostStatusService, type: :service do it 'creates a new status' do account = Fabricate(:account) - text = "test status update" + text = 'test status update' status = subject.call(account, text: text) @@ -16,7 +16,7 @@ RSpec.describe PostStatusService, type: :service do it 'creates a new response status' do in_reply_to_status = Fabricate(:status) account = Fabricate(:account) - text = "test status update" + text = 'test status update' status = subject.call(account, text: text, thread: in_reply_to_status) @@ -58,7 +58,7 @@ RSpec.describe PostStatusService, type: :service do boosted_status = Fabricate(:status) in_reply_to_status = Fabricate(:status, reblog: boosted_status) account = Fabricate(:account) - text = "test status update" + text = 'test status update' status = subject.call(account, text: text, thread: in_reply_to_status) @@ -75,7 +75,7 @@ RSpec.describe PostStatusService, type: :service do end it 'creates a status with spoiler text' do - spoiler_text = "spoiler text" + spoiler_text = 'spoiler text' status = create_status_with_options(spoiler_text: spoiler_text) @@ -101,14 +101,14 @@ RSpec.describe PostStatusService, type: :service do status = create_status_with_options(visibility: :private) expect(status).to be_persisted - expect(status.visibility).to eq "private" + expect(status.visibility).to eq 'private' end it 'creates a status with limited visibility for silenced users' do status = subject.call(Fabricate(:account, silenced: true), text: 'test', visibility: :public) expect(status).to be_persisted - expect(status.visibility).to eq "unlisted" + expect(status.visibility).to eq 'unlisted' end it 'creates a status for the given application' do @@ -135,7 +135,7 @@ RSpec.describe PostStatusService, type: :service do allow(ProcessMentionsService).to receive(:new).and_return(mention_service) account = Fabricate(:account) - status = subject.call(account, text: "test status update") + status = subject.call(account, text: 'test status update') expect(ProcessMentionsService).to have_received(:new) expect(mention_service).to have_received(:call).with(status, save_records: false) @@ -166,7 +166,7 @@ RSpec.describe PostStatusService, type: :service do allow(ProcessHashtagsService).to receive(:new).and_return(hashtags_service) account = Fabricate(:account) - status = subject.call(account, text: "test status update") + status = subject.call(account, text: 'test status update') expect(ProcessHashtagsService).to have_received(:new) expect(hashtags_service).to have_received(:call).with(status) @@ -178,7 +178,7 @@ RSpec.describe PostStatusService, type: :service do account = Fabricate(:account) - status = subject.call(account, text: "test status update") + status = subject.call(account, text: 'test status update') expect(DistributionWorker).to have_received(:perform_async).with(status.id) expect(ActivityPub::DistributionWorker).to have_received(:perform_async).with(status.id) @@ -188,7 +188,7 @@ RSpec.describe PostStatusService, type: :service do allow(LinkCrawlWorker).to receive(:perform_async) account = Fabricate(:account) - status = subject.call(account, text: "test status update") + status = subject.call(account, text: 'test status update') expect(LinkCrawlWorker).to have_received(:perform_async).with(status.id) end @@ -199,7 +199,7 @@ RSpec.describe PostStatusService, type: :service do status = subject.call( account, - text: "test status update", + text: 'test status update', media_ids: [media.id] ) @@ -212,7 +212,7 @@ RSpec.describe PostStatusService, type: :service do status = subject.call( account, - text: "test status update", + text: 'test status update', media_ids: [media.id] ) @@ -225,7 +225,7 @@ RSpec.describe PostStatusService, type: :service do expect do subject.call( account, - text: "test status update", + text: 'test status update', media_ids: [ Fabricate(:media_attachment, account: account), Fabricate(:media_attachment, account: account), @@ -250,7 +250,7 @@ RSpec.describe PostStatusService, type: :service do expect do subject.call( account, - text: "test status update", + text: 'test status update', media_ids: [ video, image, diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index 0dd62c8070..6a16928e02 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -62,7 +62,7 @@ RSpec.describe ProcessMentionsService, type: :service do context 'with an IDN domain' do let!(:remote_user) { Fabricate(:account, username: 'sneak', protocol: :activitypub, domain: 'xn--hresiar-mxa.ch', inbox_url: 'http://example.com/inbox') } - let!(:status) { Fabricate(:status, account: account, text: "Hello @sneak@hæresiar.ch") } + let!(:status) { Fabricate(:status, account: account, text: 'Hello @sneak@hæresiar.ch') } before do subject.call(status) @@ -75,7 +75,7 @@ RSpec.describe ProcessMentionsService, type: :service do context 'with an IDN TLD' do let!(:remote_user) { Fabricate(:account, username: 'foo', protocol: :activitypub, domain: 'xn--y9a3aq.xn--y9a3aq', inbox_url: 'http://example.com/inbox') } - let!(:status) { Fabricate(:status, account: account, text: "Hello @foo@հայ.հայ") } + let!(:status) { Fabricate(:status, account: account, text: 'Hello @foo@հայ.հայ') } before do subject.call(status) @@ -91,8 +91,8 @@ RSpec.describe ProcessMentionsService, type: :service do let!(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox', last_webfingered_at: nil) } before do - stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404) - stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com").to_return(status: 500) + stub_request(:get, 'https://example.com/.well-known/host-meta').to_return(status: 404) + stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com').to_return(status: 500) subject.call(status) end diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index 1df30ea575..192225229d 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -4,11 +4,11 @@ RSpec.describe ResolveAccountService, type: :service do subject { described_class.new } before do - stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404) - stub_request(:get, "https://quitter.no/avatar/7477-300-20160211190340.png").to_return(request_fixture('avatar.txt')) - stub_request(:get, "https://ap.example.com/.well-known/webfinger?resource=acct:foo@ap.example.com").to_return(request_fixture('activitypub-webfinger.txt')) - stub_request(:get, "https://ap.example.com/users/foo").to_return(request_fixture('activitypub-actor.txt')) - stub_request(:get, "https://ap.example.com/users/foo.atom").to_return(request_fixture('activitypub-feed.txt')) + stub_request(:get, 'https://example.com/.well-known/host-meta').to_return(status: 404) + stub_request(:get, 'https://quitter.no/avatar/7477-300-20160211190340.png').to_return(request_fixture('avatar.txt')) + stub_request(:get, 'https://ap.example.com/.well-known/webfinger?resource=acct:foo@ap.example.com').to_return(request_fixture('activitypub-webfinger.txt')) + stub_request(:get, 'https://ap.example.com/users/foo').to_return(request_fixture('activitypub-actor.txt')) + stub_request(:get, 'https://ap.example.com/users/foo.atom').to_return(request_fixture('activitypub-feed.txt')) stub_request(:get, %r{https://ap.example.com/users/foo/\w+}).to_return(status: 404) stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:hoge@example.com').to_return(status: 410) end @@ -56,8 +56,8 @@ RSpec.describe ResolveAccountService, type: :service do context 'when there is an LRDD endpoint but no resolvable account' do before do - stub_request(:get, "https://quitter.no/.well-known/host-meta").to_return(request_fixture('.host-meta.txt')) - stub_request(:get, "https://quitter.no/.well-known/webfinger?resource=acct:catsrgr8@quitter.no").to_return(status: 404) + stub_request(:get, 'https://quitter.no/.well-known/host-meta').to_return(request_fixture('.host-meta.txt')) + stub_request(:get, 'https://quitter.no/.well-known/webfinger?resource=acct:catsrgr8@quitter.no').to_return(status: 404) end it 'returns nil' do @@ -67,7 +67,7 @@ RSpec.describe ResolveAccountService, type: :service do context 'when there is no LRDD endpoint nor resolvable account' do before do - stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:catsrgr8@example.com").to_return(status: 404) + stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:catsrgr8@example.com').to_return(status: 404) end it 'returns nil' do @@ -153,7 +153,7 @@ RSpec.describe ResolveAccountService, type: :service do context 'with multiple types' do before do - stub_request(:get, "https://ap.example.com/users/foo").to_return(request_fixture('activitypub-actor-individual.txt')) + stub_request(:get, 'https://ap.example.com/users/foo').to_return(request_fixture('activitypub-actor-individual.txt')) end it 'returns new remote account' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 72c9ce8ae1..97b8d83c57 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -12,7 +12,7 @@ end gc_counter = -1 RSpec.configure do |config| - config.example_status_persistence_file_path = "tmp/rspec/examples.txt" + config.example_status_persistence_file_path = 'tmp/rspec/examples.txt' config.expect_with :rspec do |expectations| expectations.include_chain_clauses_in_custom_matcher_descriptions = true end @@ -60,7 +60,7 @@ end def expect_push_bulk_to_match(klass, matcher) expect(Sidekiq::Client).to receive(:push_bulk).with(hash_including({ - "class" => klass, - "args" => matcher, + 'class' => klass, + 'args' => matcher, })) end From e0e63b73ee906abea5e359e695bff4276e6c3276 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 00:54:34 -0500 Subject: [PATCH 0479/1220] Autofix Rubocop RSpec/EmptyLineAfterHook (#23718) --- .rubocop_todo.yml | 7 ------- spec/helpers/application_helper_spec.rb | 1 + 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e997478192..c3a62c2d99 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -825,13 +825,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowConsecutiveOneLiners. -RSpec/EmptyLineAfterHook: - Exclude: - - 'spec/helpers/application_helper_spec.rb' - # Offense count: 19 # This cop supports safe autocorrection (--autocorrect). RSpec/EmptyLineAfterSubject: diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index b335a5e45e..6502cfebf2 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -82,6 +82,7 @@ describe ApplicationHelper do before do allow(helper).to receive(:user_signed_in?).and_return(true) end + it 'does not show landing strip' do expect(helper.show_landing_strip?).to eq false end From 77779ddebc9cad0aecb859f222c3ab6151c6267e Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Sun, 19 Feb 2023 15:02:46 +0900 Subject: [PATCH 0480/1220] Fix devcontainer.json format (#23715) --- .devcontainer/devcontainer.json | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b98f6a21e0..6ac6993ee9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,16 +4,22 @@ "service": "app", "workspaceFolder": "/mastodon", - // Set *default* container specific settings.json values on container create. - "settings": {}, + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": {}, - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "EditorConfig.EditorConfig", - "dbaeumer.vscode-eslint", - "rebornix.Ruby", - "webben.browserslist" - ], + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "EditorConfig.EditorConfig", + "dbaeumer.vscode-eslint", + "rebornix.Ruby", + "webben.browserslist" + ] + } + }, "features": { "ghcr.io/devcontainers/features/sshd:1": { From 1d9ed916437609e7c5343ed3f96261e907dc5659 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 01:06:34 -0500 Subject: [PATCH 0481/1220] Move db migration CI to GitHub Actions (#23624) --- .circleci/config.yml | 91 --------------- .../workflows/test-migrations-one-step.yml | 100 ++++++++++++++++ .../workflows/test-migrations-two-step.yml | 108 ++++++++++++++++++ 3 files changed, 208 insertions(+), 91 deletions(-) create mode 100644 .github/workflows/test-migrations-one-step.yml create mode 100644 .github/workflows/test-migrations-two-step.yml diff --git a/.circleci/config.yml b/.circleci/config.yml index 183ad9048e..3913a6b0f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -110,91 +110,6 @@ jobs: name: Load database schema - ruby/rspec-test - test-migrations: - executor: - name: default - ruby-version: '3.2' - steps: - - checkout - - install-system-dependencies - - install-ruby-dependencies: - ruby-version: '3.2' - - wait-db - - run: - command: ./bin/rails db:create - name: Create database - - run: - command: ./bin/rails db:migrate VERSION=20171010025614 - name: Run migrations up to v2.0.0 - - run: - command: ./bin/rails tests:migrations:populate_v2 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate VERSION=20180514140000 - name: Run migrations up to v2.4.0 - - run: - command: ./bin/rails tests:migrations:populate_v2_4 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate VERSION=20180707154237 - name: Run migrations up to v2.4.3 - - run: - command: ./bin/rails tests:migrations:populate_v2_4_3 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate - name: Run all remaining migrations - - run: - command: ./bin/rails tests:migrations:check_database - name: Check migration result - - test-two-step-migrations: - executor: - name: default - ruby-version: '3.2' - steps: - - checkout - - install-system-dependencies - - install-ruby-dependencies: - ruby-version: '3.2' - - wait-db - - run: - command: ./bin/rails db:create - name: Create database - - run: - command: ./bin/rails db:migrate VERSION=20171010025614 - name: Run migrations up to v2.0.0 - - run: - command: ./bin/rails tests:migrations:populate_v2 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate VERSION=20180514140000 - name: Run pre-deployment migrations up to v2.4.0 - environment: - SKIP_POST_DEPLOYMENT_MIGRATIONS: true - - run: - command: ./bin/rails tests:migrations:populate_v2_4 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate VERSION=20180707154237 - name: Run migrations up to v2.4.3 - environment: - SKIP_POST_DEPLOYMENT_MIGRATIONS: true - - run: - command: ./bin/rails tests:migrations:populate_v2_4_3 - name: Populate database with test data - - run: - command: ./bin/rails db:migrate - name: Run all remaining pre-deployment migrations - environment: - SKIP_POST_DEPLOYMENT_MIGRATIONS: true - - run: - command: ./bin/rails db:migrate - name: Run all post-deployment migrations - - run: - command: ./bin/rails tests:migrations:check_database - name: Check migration result - workflows: version: 2 build-and-test: @@ -211,9 +126,3 @@ workflows: name: test-ruby<< matrix.ruby-version >> requires: - build - - test-migrations: - requires: - - build - - test-two-step-migrations: - requires: - - build diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml new file mode 100644 index 0000000000..8f070697ca --- /dev/null +++ b/.github/workflows/test-migrations-one-step.yml @@ -0,0 +1,100 @@ +name: Test one step migrations +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + +jobs: + pre_job: + runs-on: ubuntu-latest + + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml"]' + + test: + runs-on: ubuntu-latest + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + + services: + postgres: + image: postgres:14.5 + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + redis: + image: redis:7.0 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + env: + CONTINUOUS_INTEGRATION: true + DB_HOST: localhost + DB_USER: postgres + DB_PASS: postgres + DISABLE_SIMPLECOV: true + RAILS_ENV: test + BUNDLE_CLEAN: true + BUNDLE_FROZEN: true + BUNDLE_WITHOUT: 'development production' + BUNDLE_JOBS: 3 + BUNDLE_RETRY: 3 + + steps: + - uses: actions/checkout@v3 + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Set up bundler cache + uses: ruby/setup-ruby@v1 + with: + ruby-version: .ruby-version + bundler-cache: true + + - name: Create database + run: './bin/rails db:create' + + - name: Run migrations up to v2.0.0 + run: './bin/rails db:migrate VERSION=20171010025614' + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2' + + - name: Run migrations up to v2.4.0 + run: './bin/rails db:migrate VERSION=20180514140000' + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2_4' + + - name: Run migrations up to v2.4.3 + run: './bin/rails db:migrate VERSION=20180707154237' + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2_4_3' + + - name: Run all remaining migrations + run: './bin/rails db:migrate' + + - name: Check migration result + run: './bin/rails tests:migrations:check_database' diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml new file mode 100644 index 0000000000..2fdce80254 --- /dev/null +++ b/.github/workflows/test-migrations-two-step.yml @@ -0,0 +1,108 @@ +name: Test two step migrations +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + +jobs: + pre_job: + runs-on: ubuntu-latest + + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml"]' + + test: + runs-on: ubuntu-latest + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + + services: + postgres: + image: postgres:14.5 + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + redis: + image: redis:7.0 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + env: + CONTINUOUS_INTEGRATION: true + DB_HOST: localhost + DB_USER: postgres + DB_PASS: postgres + DISABLE_SIMPLECOV: true + RAILS_ENV: test + BUNDLE_CLEAN: true + BUNDLE_FROZEN: true + BUNDLE_WITHOUT: 'development production' + BUNDLE_JOBS: 3 + BUNDLE_RETRY: 3 + + steps: + - uses: actions/checkout@v3 + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Set up bundler cache + uses: ruby/setup-ruby@v1 + with: + ruby-version: .ruby-version + bundler-cache: true + + - name: Create database + run: './bin/rails db:create' + + - name: Run migrations up to v2.0.0 + run: './bin/rails db:migrate VERSION=20171010025614' + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2' + + - name: Run pre-deployment migrations up to v2.4.0 + run: './bin/rails db:migrate VERSION=20180514140000' + env: + SKIP_POST_DEPLOYMENT_MIGRATIONS: true + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2_4' + + - name: Run migrations up to v2.4.3 + run: './bin/rails db:migrate VERSION=20180707154237' + env: + SKIP_POST_DEPLOYMENT_MIGRATIONS: true + + - name: Populate database with test data + run: './bin/rails tests:migrations:populate_v2_4_3' + + - name: Run all remaining pre-deployment migrations + run: './bin/rails db:migrate' + env: + SKIP_POST_DEPLOYMENT_MIGRATIONS: true + + - name: Run all post-deployment migrations + run: './bin/rails db:migrate' + + - name: Check migration result + run: './bin/rails tests:migrations:check_database' From b2283b68388bf5ec03da1ed367566a21a5e957f2 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 19 Feb 2023 07:11:18 +0100 Subject: [PATCH 0482/1220] Fix focus point of already-attached media not saving after edit (#23566) --- app/javascript/mastodon/actions/compose.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 72e5929358..3756a975b7 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -165,11 +165,19 @@ export function submitCompose(routerHistory) { // 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'), - })); + media_attributes = media.map(item => { + let focus; + + if (item.getIn(['meta', 'focus'])) { + focus = `${item.getIn(['meta', 'focus', 'x']).toFixed(2)},${item.getIn(['meta', 'focus', 'y']).toFixed(2)}`; + } + + return { + id: item.get('id'), + description: item.get('description'), + focus, + }; + }); } api(getState).request({ From fef6c59b3abe349132dbe910b6aa243e59b732bb Mon Sep 17 00:00:00 2001 From: AcesFullOfKings <6105690+theonefoster@users.noreply.github.com> Date: Sun, 19 Feb 2023 06:12:32 +0000 Subject: [PATCH 0483/1220] Grammar fix (#23634) --- config/locales/en.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 0a9c325c20..594a030b90 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1152,7 +1152,7 @@ en: featured_tags: add_new: Add new errors: - limit: You have already featured the maximum amount of hashtags + limit: You have already featured the maximum number of hashtags hint_html: "What are featured hashtags? They are displayed prominently on your public profile and allow people to browse your public posts specifically under those hashtags. They are a great tool for keeping track of creative works or long-term projects." filters: contexts: @@ -1264,7 +1264,7 @@ en: title: Invite people lists: errors: - limit: You have reached the maximum amount of lists + limit: You have reached the maximum number of lists login_activities: authentication_methods: otp: two-factor authentication app @@ -1585,7 +1585,7 @@ en: '7889238': 3 months min_age_label: Age threshold min_favs: Keep posts favourited at least - min_favs_hint: Doesn't delete any of your posts that has received at least this amount of favourites. Leave blank to delete posts regardless of their number of favourites + min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites min_reblogs: Keep posts boosted at least min_reblogs_hint: Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts stream_entries: From 6fdd596cc88622abc585ef3da96699f8f987dfb5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 16 Feb 2023 01:30:56 -0500 Subject: [PATCH 0484/1220] [Glitch] Enable ESLint Promise plugin defaults Port 5e1c0c3d946bef488f8e156ed3b5034740e731df to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/utils/notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/utils/notifications.js b/app/javascript/flavours/glitch/utils/notifications.js index 7634cac21f..3cdf7caea0 100644 --- a/app/javascript/flavours/glitch/utils/notifications.js +++ b/app/javascript/flavours/glitch/utils/notifications.js @@ -3,7 +3,7 @@ const checkNotificationPromise = () => { try { - // eslint-disable-next-line promise/catch-or-return + // eslint-disable-next-line promise/catch-or-return, promise/valid-params Notification.requestPermission().then(); } catch(e) { return false; From 229ab559dc96f53d05600514dc9f93d1cdc006bd Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 17 Feb 2023 09:51:27 +0100 Subject: [PATCH 0485/1220] [Glitch] Fix bad type for spellCheck attribute Port cde13349cb0ad8e280156cef7fc50692f943b0b2 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/components/autosuggest_input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/components/autosuggest_input.js b/app/javascript/flavours/glitch/components/autosuggest_input.js index 1a030fb858..90ff298c0d 100644 --- a/app/javascript/flavours/glitch/components/autosuggest_input.js +++ b/app/javascript/flavours/glitch/components/autosuggest_input.js @@ -51,7 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { searchTokens: PropTypes.arrayOf(PropTypes.string), maxLength: PropTypes.number, lang: PropTypes.string, - spellCheck: PropTypes.string, + spellCheck: PropTypes.bool, }; static defaultProps = { From 8c8358b3cf514ee4f56f6273948d36bb92c99ac1 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 19 Feb 2023 07:11:18 +0100 Subject: [PATCH 0486/1220] [Glitch] Fix focus point of already-attached media not saving after edit Port b2283b68388bf5ec03da1ed367566a21a5e957f2 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/compose.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/compose.js b/app/javascript/flavours/glitch/actions/compose.js index 01f0f36668..9c0ef83df5 100644 --- a/app/javascript/flavours/glitch/actions/compose.js +++ b/app/javascript/flavours/glitch/actions/compose.js @@ -186,11 +186,19 @@ export function submitCompose(routerHistory) { // 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'), - })); + media_attributes = media.map(item => { + let focus; + + if (item.getIn(['meta', 'focus'])) { + focus = `${item.getIn(['meta', 'focus', 'x']).toFixed(2)},${item.getIn(['meta', 'focus', 'y']).toFixed(2)}`; + } + + return { + id: item.get('id'), + description: item.get('description'), + focus, + }; + }); } api(getState).request({ From dc0cc5a57d224b4c53bc58dad919b727055bd9a3 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 19 Feb 2023 11:02:27 +0100 Subject: [PATCH 0487/1220] Fix incorrect translation string in glitch-soc captcha feature --- app/views/auth/confirmations/captcha.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/auth/confirmations/captcha.html.haml b/app/views/auth/confirmations/captcha.html.haml index 0fae367dbe..642f190623 100644 --- a/app/views/auth/confirmations/captcha.html.haml +++ b/app/views/auth/confirmations/captcha.html.haml @@ -11,4 +11,4 @@ = render_captcha .actions - %button.button= t('challenge.continue') + %button.button= t('challenge.confirm') From 8ef09813a2b46d99fe9c7e39beba2a68052c17d1 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:18:54 -0500 Subject: [PATCH 0488/1220] Autofix Rubocop Style/EmptyMethod (#23732) --- .rubocop_todo.yml | 10 ---------- .../20181024224956_migrate_account_conversations.rb | 3 +-- ...529143559_preserve_old_layout_for_existing_users.rb | 3 +-- db/migrate/20200510110808_reset_web_app_secret.rb | 3 +-- 4 files changed, 3 insertions(+), 16 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c3a62c2d99..6fb4716004 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2695,16 +2695,6 @@ Style/ConcatArrayLiterals: Style/Documentation: Enabled: false -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: compact, expanded -Style/EmptyMethod: - Exclude: - - 'db/migrate/20181024224956_migrate_account_conversations.rb' - - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' - - 'db/migrate/20200510110808_reset_web_app_secret.rb' - # Offense count: 1 # This cop supports safe autocorrection (--autocorrect). Style/ExplicitBlockArgument: diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb index 9e6497d81f..aca6638e18 100644 --- a/db/migrate/20181024224956_migrate_account_conversations.rb +++ b/db/migrate/20181024224956_migrate_account_conversations.rb @@ -100,8 +100,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end end - def down - end + def down; end private diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb index 72b7c609d1..19e86fbfe1 100644 --- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb +++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb @@ -12,6 +12,5 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2] end end - def down - end + def down; end end diff --git a/db/migrate/20200510110808_reset_web_app_secret.rb b/db/migrate/20200510110808_reset_web_app_secret.rb index b274844c58..8c0c06a83e 100644 --- a/db/migrate/20200510110808_reset_web_app_secret.rb +++ b/db/migrate/20200510110808_reset_web_app_secret.rb @@ -10,6 +10,5 @@ class ResetWebAppSecret < ActiveRecord::Migration[5.2] web_app.save! end - def down - end + def down; end end From 597767a9f7ca846be9fbca826aba362f8387a60f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:19:40 -0500 Subject: [PATCH 0489/1220] Autofix Rubocop Rails/RedundantForeignKey (#23731) --- .rubocop_todo.yml | 12 ------------ app/models/custom_filter.rb | 4 ++-- app/models/follow_recommendation.rb | 2 +- app/models/report.rb | 2 +- app/models/status.rb | 2 +- app/models/user_ip.rb | 2 +- .../20221101190723_backfill_admin_action_logs.rb | 2 +- ...0221206114142_backfill_admin_action_logs_again.rb | 2 +- 8 files changed, 8 insertions(+), 20 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6fb4716004..1a524e6fdd 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2459,18 +2459,6 @@ Rails/RakeEnvironment: - 'lib/tasks/repo.rake' - 'lib/tasks/statistics.rake' -# Offense count: 8 -# This cop supports safe autocorrection (--autocorrect). -Rails/RedundantForeignKey: - Exclude: - - 'app/models/custom_filter.rb' - - 'app/models/follow_recommendation.rb' - - 'app/models/report.rb' - - 'app/models/status.rb' - - 'app/models/user_ip.rb' - - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' - - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - # Offense count: 29 # Configuration parameters: Include. # Include: db/**/*.rb diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index 5a4a974be4..b70e53bd53 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -33,8 +33,8 @@ class CustomFilter < ApplicationRecord enum action: [:warn, :hide], _suffix: :action belongs_to :account - has_many :keywords, class_name: 'CustomFilterKeyword', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy - has_many :statuses, class_name: 'CustomFilterStatus', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy + has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy + has_many :statuses, class_name: 'CustomFilterStatus', inverse_of: :custom_filter, dependent: :destroy accepts_nested_attributes_for :keywords, reject_if: :all_blank, allow_destroy: true validates :title, :context, presence: true diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb index e552b5a88d..501f8ecb6e 100644 --- a/app/models/follow_recommendation.rb +++ b/app/models/follow_recommendation.rb @@ -12,7 +12,7 @@ class FollowRecommendation < ApplicationRecord self.primary_key = :account_id belongs_to :account_summary, foreign_key: :account_id - belongs_to :account, foreign_key: :account_id + belongs_to :account scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) } diff --git a/app/models/report.rb b/app/models/report.rb index 525d22ad5d..fe6c292c5b 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -32,7 +32,7 @@ class Report < ApplicationRecord belongs_to :action_taken_by_account, class_name: 'Account', optional: true belongs_to :assigned_account, class_name: 'Account', optional: true - has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy + has_many :notes, class_name: 'ReportNote', inverse_of: :report, dependent: :destroy has_many :notifications, as: :activity, dependent: :destroy scope :unresolved, -> { where(action_taken_at: nil) } diff --git a/app/models/status.rb b/app/models/status.rb index 102dfa9942..e0ad291035 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -53,7 +53,7 @@ class Status < ApplicationRecord belongs_to :application, class_name: 'Doorkeeper::Application', optional: true belongs_to :account, inverse_of: :statuses - belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account', optional: true + belongs_to :in_reply_to_account, class_name: 'Account', optional: true belongs_to :conversation, optional: true belongs_to :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', optional: true diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb index a8e802e136..1da6157629 100644 --- a/app/models/user_ip.rb +++ b/app/models/user_ip.rb @@ -11,7 +11,7 @@ class UserIp < ApplicationRecord self.primary_key = :user_id - belongs_to :user, foreign_key: :user_id + belongs_to :user def readonly? true diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb index 48ef1e6e31..6ab76a8f75 100644 --- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb +++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb @@ -62,7 +62,7 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1] # Cannot use usual polymorphic support because of namespacing issues belongs_to :status, foreign_key: :target_id belongs_to :account, foreign_key: :target_id - belongs_to :user, foreign_key: :user_id + belongs_to :user belongs_to :domain_block, foreign_key: :target_id belongs_to :domain_allow, foreign_key: :target_id belongs_to :email_domain_block, foreign_key: :target_id diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb index 279053ab94..42b7f3625b 100644 --- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb +++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb @@ -62,7 +62,7 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1] # Cannot use usual polymorphic support because of namespacing issues belongs_to :status, foreign_key: :target_id belongs_to :account, foreign_key: :target_id - belongs_to :user, foreign_key: :user_id + belongs_to :user belongs_to :domain_block, foreign_key: :target_id belongs_to :domain_allow, foreign_key: :target_id belongs_to :email_domain_block, foreign_key: :target_id From 21bf32635687770bc0026d769a69f49b89f8a0a2 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:28:40 -0500 Subject: [PATCH 0490/1220] Autofix Rubocop Rails/Pluck (#23730) --- .rubocop_todo.yml | 11 ----------- app/lib/importer/base_importer.rb | 2 +- app/lib/link_details_extractor.rb | 8 ++++---- .../scheduler/accounts_statuses_cleanup_scheduler.rb | 2 +- .../api/v1/notifications_controller_spec.rb | 12 ++++++------ .../api/v1/suggestions_controller_spec.rb | 2 +- .../webauthn_credentials_controller_spec.rb | 2 +- 7 files changed, 14 insertions(+), 25 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1a524e6fdd..954e42f9eb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2435,17 +2435,6 @@ Rails/Output: Exclude: - 'lib/mastodon/ip_blocks_cli.rb' -# Offense count: 14 -# This cop supports safe autocorrection (--autocorrect). -Rails/Pluck: - Exclude: - - 'app/lib/importer/base_importer.rb' - - 'app/lib/link_details_extractor.rb' - - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' - - 'spec/controllers/api/v1/notifications_controller_spec.rb' - - 'spec/controllers/api/v1/suggestions_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' - # Offense count: 9 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Include. diff --git a/app/lib/importer/base_importer.rb b/app/lib/importer/base_importer.rb index ea522c600c..0cd1d34227 100644 --- a/app/lib/importer/base_importer.rb +++ b/app/lib/importer/base_importer.rb @@ -45,7 +45,7 @@ class Importer::BaseImporter # Remove documents from the index that no longer exist in the database def clean_up! index.scroll_batches do |documents| - ids = documents.map { |doc| doc['_id'] } + ids = documents.pluck('_id') existence_map = index.adapter.target.where(id: ids).pluck(:id).each_with_object({}) { |id, map| map[id.to_s] = true } tmp = ids.reject { |id| existence_map[id] } diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 74a7d0f3bc..f8a0be636e 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -188,7 +188,7 @@ class LinkDetailsExtractor end def language - valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').map { |element| element['lang'] }.first) + valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').pick('lang')) end def icon @@ -220,15 +220,15 @@ class LinkDetailsExtractor end def link_tag(name) - document.xpath("//link[@rel=\"#{name}\"]").map { |link| link['href'] }.first + document.xpath("//link[@rel=\"#{name}\"]").pick('href') end def opengraph_tag(name) - document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").map { |meta| meta['content'] }.first + document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").pick('content') end def meta_tag(name) - document.xpath("//meta[@name=\"#{name}\"]").map { |meta| meta['content'] }.first + document.xpath("//meta[@name=\"#{name}\"]").pick('content') end def structured_data diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb index bd92fe32c4..cc5b6e137a 100644 --- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb +++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb @@ -67,7 +67,7 @@ class Scheduler::AccountsStatusesCleanupScheduler end def compute_budget - threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.map { |x| x['concurrency'] }.sum + threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.pluck('concurrency').sum [PER_THREAD_BUDGET * threads, MAX_BUDGET].min end diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb index 46e177c0ec..22ebfa3dda 100644 --- a/spec/controllers/api/v1/notifications_controller_spec.rb +++ b/spec/controllers/api/v1/notifications_controller_spec.rb @@ -70,19 +70,19 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do end it 'includes reblog' do - expect(body_as_json.map { |x| x[:type] }).to include 'reblog' + expect(body_as_json.pluck(:type)).to include 'reblog' end it 'includes mention' do - expect(body_as_json.map { |x| x[:type] }).to include 'mention' + expect(body_as_json.pluck(:type)).to include 'mention' end it 'includes favourite' do - expect(body_as_json.map { |x| x[:type] }).to include 'favourite' + expect(body_as_json.pluck(:type)).to include 'favourite' end it 'includes follow' do - expect(body_as_json.map { |x| x[:type] }).to include 'follow' + expect(body_as_json.pluck(:type)).to include 'follow' end end @@ -125,7 +125,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do it 'returns everything but excluded type' do expect(body_as_json.size).to_not eq 0 - expect(body_as_json.map { |x| x[:type] }.uniq).to_not include 'mention' + expect(body_as_json.pluck(:type).uniq).to_not include 'mention' end end @@ -139,7 +139,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do end it 'returns only requested type' do - expect(body_as_json.map { |x| x[:type] }.uniq).to eq ['mention'] + expect(body_as_json.pluck(:type).uniq).to eq ['mention'] end end end diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb index 7805b6b4fe..35ba155e74 100644 --- a/spec/controllers/api/v1/suggestions_controller_spec.rb +++ b/spec/controllers/api/v1/suggestions_controller_spec.rb @@ -29,7 +29,7 @@ RSpec.describe Api::V1::SuggestionsController, type: :controller do json = body_as_json expect(json.size).to be >= 1 - expect(json.map { |i| i[:id] }).to include(*[bob, jeff].map { |i| i.id.to_s }) + expect(json.pluck(:id)).to include(*[bob, jeff].map { |i| i.id.to_s }) end end end diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb index c3156c4e95..f060c3a4bd 100644 --- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb @@ -140,7 +140,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do it 'includes existing credentials in list of excluded credentials' do get :options - excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].map { |credential| credential['id'] } + excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].pluck('id') expect(excluded_credentials_ids).to match_array(user.webauthn_credentials.pluck(:external_id)) end end From a2fdb388eb412f3f90ec48bc990c7c2c24b8c072 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:32:10 -0500 Subject: [PATCH 0491/1220] Autofix Rubocop RSpec/ReturnFromStub (#23724) --- .rubocop_todo.yml | 13 ------------- .../api/v1/accounts/credentials_controller_spec.rb | 2 +- .../api/v1/apps/credentials_controller_spec.rb | 2 +- .../favourited_by_accounts_controller_spec.rb | 2 +- .../reblogged_by_accounts_controller_spec.rb | 2 +- spec/controllers/api/v1/statuses_controller_spec.rb | 2 +- spec/validators/blacklisted_email_validator_spec.rb | 2 +- 7 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 954e42f9eb..73ebdbfd81 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1923,19 +1923,6 @@ RSpec/RepeatedExampleGroupDescription: - 'spec/controllers/admin/reports/actions_controller_spec.rb' - 'spec/policies/report_note_policy_spec.rb' -# Offense count: 6 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: and_return, block -RSpec/ReturnFromStub: - Exclude: - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/statuses_controller_spec.rb' - - 'spec/validators/blacklisted_email_validator_spec.rb' - # Offense count: 18 # This cop supports safe autocorrection (--autocorrect). RSpec/ScatteredLet: diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index d8aa00a075..a56b9d8fa7 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -86,7 +86,7 @@ describe Api::V1::Accounts::CredentialsController do context 'without an oauth token' do before do - allow(controller).to receive(:doorkeeper_token) { nil } + allow(controller).to receive(:doorkeeper_token).and_return(nil) end describe 'GET #show' do diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb index 0f811d5f37..470093c3c6 100644 --- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb @@ -30,7 +30,7 @@ describe Api::V1::Apps::CredentialsController do context 'without an oauth token' do before do - allow(controller).to receive(:doorkeeper_token) { nil } + allow(controller).to receive(:doorkeeper_token).and_return(nil) end describe 'GET #show' do diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb index 4dcaba6bdc..c1c6f5f12c 100644 --- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb @@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control context 'without an oauth token' do before do - allow(controller).to receive(:doorkeeper_token) { nil } + allow(controller).to receive(:doorkeeper_token).and_return(nil) end context 'with a private status' do diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb index dc36d4ca08..90187a5858 100644 --- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb @@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll context 'without an oauth token' do before do - allow(controller).to receive(:doorkeeper_token) { nil } + allow(controller).to receive(:doorkeeper_token).and_return(nil) end context 'with a private status' do diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb index e4e6e172ac..e839c8494f 100644 --- a/spec/controllers/api/v1/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/statuses_controller_spec.rb @@ -219,7 +219,7 @@ RSpec.describe Api::V1::StatusesController, type: :controller do context 'without an oauth token' do before do - allow(controller).to receive(:doorkeeper_token) { nil } + allow(controller).to receive(:doorkeeper_token).and_return(nil) end context 'with a private status' do diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb index 351de07076..f9ee3b932a 100644 --- a/spec/validators/blacklisted_email_validator_spec.rb +++ b/spec/validators/blacklisted_email_validator_spec.rb @@ -8,7 +8,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do let(:errors) { double(add: nil) } before do - allow(user).to receive(:valid_invitation?) { false } + allow(user).to receive(:valid_invitation?).and_return(false) allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email } end From 65ba0d92ef78f82a3cf5bf04f13b3d7393da015d Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:33:27 -0500 Subject: [PATCH 0492/1220] Enable Rubocop RSpec/NotToNot (#23723) --- .rubocop.yml | 3 + .rubocop_todo.yml | 123 ------------------ .../collections_controller_spec.rb | 4 +- .../activitypub/inboxes_controller_spec.rb | 6 +- ...ccount_moderation_notes_controller_spec.rb | 2 +- .../admin/accounts_controller_spec.rb | 12 +- .../admin/change_email_controller_spec.rb | 2 +- .../admin/confirmations_controller_spec.rb | 2 +- .../admin/domain_blocks_controller_spec.rb | 2 +- .../admin/report_notes_controller_spec.rb | 4 +- .../settings/profiles_controller_spec.rb | 2 +- .../well_known/nodeinfo_controller_spec.rb | 2 +- .../lib/activitypub/activity/announce_spec.rb | 2 +- spec/lib/request_spec.rb | 2 +- spec/lib/status_filter_spec.rb | 4 +- spec/lib/text_formatter_spec.rb | 2 +- spec/models/account_spec.rb | 10 +- .../concerns/account_interactions_spec.rb | 6 +- spec/models/concerns/remotable_spec.rb | 4 +- spec/models/public_feed_spec.rb | 28 ++-- spec/models/setting_spec.rb | 4 +- spec/models/tag_spec.rb | 6 +- spec/models/user_spec.rb | 4 +- spec/services/account_search_service_spec.rb | 2 +- .../process_collection_service_spec.rb | 10 +- .../process_status_update_service_spec.rb | 4 +- spec/services/block_domain_service_spec.rb | 6 +- .../clear_domain_media_service_spec.rb | 6 +- spec/services/import_service_spec.rb | 2 +- spec/services/post_status_service_spec.rb | 4 +- spec/services/search_service_spec.rb | 6 +- .../blacklisted_email_validator_spec.rb | 2 +- .../disallowed_hashtags_validator_spec.rb | 4 +- spec/validators/email_mx_validator_spec.rb | 2 +- .../validators/follow_limit_validator_spec.rb | 4 +- spec/validators/poll_validator_spec.rb | 4 +- .../status_length_validator_spec.rb | 4 +- .../unreserved_username_validator_spec.rb | 4 +- spec/validators/url_validator_spec.rb | 2 +- spec/workers/feed_insert_worker_spec.rb | 6 +- 40 files changed, 94 insertions(+), 214 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 3783ccf48a..fc1969a645 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -94,6 +94,9 @@ Rails/Exit: - 'lib/mastodon/cli_helper.rb' - 'lib/cli.rb' +RSpec/NotToNot: + EnforcedStyle: to_not + Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 73ebdbfd81..9076891e2b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1440,129 +1440,6 @@ RSpec/NoExpectationExample: - 'spec/controllers/auth/registrations_controller_spec.rb' - 'spec/services/precompute_feed_service_spec.rb' -# Offense count: 370 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: not_to, to_not -RSpec/NotToNot: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - - 'spec/controllers/accounts_controller_spec.rb' - - 'spec/controllers/admin/accounts_controller_spec.rb' - - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb' - - 'spec/controllers/admin/roles_controller_spec.rb' - - 'spec/controllers/api/v1/accounts_controller_spec.rb' - - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' - - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb' - - 'spec/controllers/api/v1/announcements_controller_spec.rb' - - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/apps_controller_spec.rb' - - 'spec/controllers/api/v1/filters_controller_spec.rb' - - 'spec/controllers/api/v1/media_controller_spec.rb' - - 'spec/controllers/api/v1/notifications_controller_spec.rb' - - 'spec/controllers/api/v1/polls/votes_controller_spec.rb' - - 'spec/controllers/api/v1/reports_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb' - - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' - - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' - - 'spec/controllers/api/v2/filters_controller_spec.rb' - - 'spec/controllers/auth/challenges_controller_spec.rb' - - 'spec/controllers/auth/confirmations_controller_spec.rb' - - 'spec/controllers/auth/passwords_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/concerns/challengable_concern_spec.rb' - - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' - - 'spec/controllers/oauth/tokens_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' - - 'spec/controllers/statuses_controller_spec.rb' - - 'spec/helpers/application_helper_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/activitypub/activity/delete_spec.rb' - - 'spec/lib/activitypub/activity/flag_spec.rb' - - 'spec/lib/activitypub/dereferencer_spec.rb' - - 'spec/lib/activitypub/tag_manager_spec.rb' - - 'spec/lib/delivery_failure_tracker_spec.rb' - - 'spec/lib/feed_manager_spec.rb' - - 'spec/lib/html_aware_formatter_spec.rb' - - 'spec/lib/request_pool_spec.rb' - - 'spec/lib/status_reach_finder_spec.rb' - - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb' - - 'spec/lib/vacuum/backups_vacuum_spec.rb' - - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' - - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' - - 'spec/lib/vacuum/statuses_vacuum_spec.rb' - - 'spec/lib/vacuum/system_keys_vacuum_spec.rb' - - 'spec/models/account/field_spec.rb' - - 'spec/models/account_conversation_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/models/account_statuses_filter_spec.rb' - - 'spec/models/concerns/remotable_spec.rb' - - 'spec/models/concerns/status_threading_concern_spec.rb' - - 'spec/models/follow_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/status_spec.rb' - - 'spec/models/tag_feed_spec.rb' - - 'spec/models/trends/statuses_spec.rb' - - 'spec/models/trends/tags_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/models/webhook_spec.rb' - - 'spec/policies/account_moderation_note_policy_spec.rb' - - 'spec/policies/account_policy_spec.rb' - - 'spec/policies/backup_policy_spec.rb' - - 'spec/policies/custom_emoji_policy_spec.rb' - - 'spec/policies/domain_block_policy_spec.rb' - - 'spec/policies/email_domain_block_policy_spec.rb' - - 'spec/policies/instance_policy_spec.rb' - - 'spec/policies/invite_policy_spec.rb' - - 'spec/policies/relay_policy_spec.rb' - - 'spec/policies/report_note_policy_spec.rb' - - 'spec/policies/report_policy_spec.rb' - - 'spec/policies/settings_policy_spec.rb' - - 'spec/policies/status_policy_spec.rb' - - 'spec/policies/tag_policy_spec.rb' - - 'spec/policies/user_policy_spec.rb' - - 'spec/presenters/familiar_followers_presenter_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/services/account_statuses_cleanup_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/app_sign_up_service_spec.rb' - - 'spec/services/batched_remove_status_service_spec.rb' - - 'spec/services/block_domain_service_spec.rb' - - 'spec/services/bootstrap_timeline_service_spec.rb' - - 'spec/services/fan_out_on_write_service_spec.rb' - - 'spec/services/favourite_service_spec.rb' - - 'spec/services/fetch_link_card_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/fetch_remote_status_service_spec.rb' - - 'spec/services/follow_service_spec.rb' - - 'spec/services/mute_service_spec.rb' - - 'spec/services/notify_service_spec.rb' - - 'spec/services/remove_status_service_spec.rb' - - 'spec/services/report_service_spec.rb' - - 'spec/services/resolve_account_service_spec.rb' - - 'spec/services/search_service_spec.rb' - - 'spec/services/suspend_account_service_spec.rb' - - 'spec/services/unallow_domain_service_spec.rb' - - 'spec/services/unsuspend_account_service_spec.rb' - - 'spec/services/update_status_service_spec.rb' - - 'spec/support/examples/models/concerns/account_avatar.rb' - - 'spec/support/examples/models/concerns/account_header.rb' - - 'spec/validators/email_mx_validator_spec.rb' - - 'spec/validators/note_length_validator_spec.rb' - - 'spec/validators/reaction_validator_spec.rb' - - 'spec/validators/status_length_validator_spec.rb' - - 'spec/validators/unique_username_validator_spec.rb' - - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' - - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - # Offense count: 3 RSpec/PendingWithoutReason: Exclude: diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index 4e35938dba..bf81cdb93c 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -60,7 +60,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do end it 'does not include contents of private pinned status' do - expect(response.body).not_to include(private_pinned.text) + expect(response.body).to_not include(private_pinned.text) end context 'when account is permanently suspended' do @@ -115,7 +115,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do end it 'does not include contents of private pinned status' do - expect(response.body).not_to include(private_pinned.text) + expect(response.body).to_not include(private_pinned.text) end end diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb index 2f023197be..7f4d6b2d3e 100644 --- a/spec/controllers/activitypub/inboxes_controller_spec.rb +++ b/spec/controllers/activitypub/inboxes_controller_spec.rb @@ -68,7 +68,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do let(:synchronization_collection) { 'https://example.com/followers2' } it 'does not start a synchronization job' do - expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async) + expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async) end end @@ -76,13 +76,13 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do let(:synchronization_url) { 'https://example.org/followers' } it 'does not start a synchronization job' do - expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async) + expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async) end end context 'with matching digest' do it 'does not start a synchronization job' do - expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async) + expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async) end end diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb index d3f3263f88..b8d6063227 100644 --- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb +++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb @@ -26,7 +26,7 @@ RSpec.describe Admin::AccountModerationNotesController, type: :controller do let(:params) { { account_moderation_note: { target_account_id: target_account.id, content: '' } } } it 'falls to create a note' do - expect { subject }.not_to change { AccountModerationNote.count } + expect { subject }.to_not change { AccountModerationNote.count } expect(subject).to render_template 'admin/accounts/show' end end diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index 48204b7b6e..35d79740ac 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -84,7 +84,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to memorialize account' do is_expected.to have_http_status :forbidden - expect(account.reload).not_to be_memorial + expect(account.reload).to_not be_memorial end end @@ -106,7 +106,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to memorialize account' do is_expected.to have_http_status :forbidden - expect(account.reload).not_to be_memorial + expect(account.reload).to_not be_memorial end end @@ -115,7 +115,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to memorialize account' do is_expected.to have_http_status :forbidden - expect(account.reload).not_to be_memorial + expect(account.reload).to_not be_memorial end end end @@ -133,7 +133,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'succeeds in enabling account' do is_expected.to redirect_to admin_account_path(account.id) - expect(user.reload).not_to be_disabled + expect(user.reload).to_not be_disabled end end @@ -183,7 +183,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to approve account' do is_expected.to have_http_status :forbidden - expect(user.reload).not_to be_approved + expect(user.reload).to_not be_approved end end end @@ -223,7 +223,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to reject account' do is_expected.to have_http_status :forbidden - expect(user.reload).not_to be_approved + expect(user.reload).to_not be_approved end end end diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb index 0814f327d8..520842a19f 100644 --- a/spec/controllers/admin/change_email_controller_spec.rb +++ b/spec/controllers/admin/change_email_controller_spec.rb @@ -35,7 +35,7 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do expect(user.email).to eq previous_email expect(user.unconfirmed_email).to eq 'test@example.com' - expect(user.confirmation_token).not_to be_nil + expect(user.confirmation_token).to_not be_nil expect(UserMailer).to have_received(:confirmation_instructions).with(user, user.confirmation_token, { to: 'test@example.com' }) diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb index 6268903c4e..7ca90f3e12 100644 --- a/spec/controllers/admin/confirmations_controller_spec.rb +++ b/spec/controllers/admin/confirmations_controller_spec.rb @@ -55,7 +55,7 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do it 'does not resend confirmation mail' do expect(subject).to redirect_to admin_accounts_path expect(flash[:error]).to eq I18n.t('admin.accounts.resend_confirmation.already_confirmed') - expect(UserMailer).not_to have_received(:confirmation_instructions) + expect(UserMailer).to_not have_received(:confirmation_instructions) end end end diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb index 3b2fd6c5dc..92fc19efac 100644 --- a/spec/controllers/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/domain_blocks_controller_spec.rb @@ -54,7 +54,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } } - expect(DomainBlockWorker).not_to have_received(:perform_async) + expect(DomainBlockWorker).to_not have_received(:perform_async) expect(response).to render_template :new end diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb index fa7572d186..8a2603611c 100644 --- a/spec/controllers/admin/report_notes_controller_spec.rb +++ b/spec/controllers/admin/report_notes_controller_spec.rb @@ -34,7 +34,7 @@ describe Admin::ReportNotesController do it 'creates a report note and does not resolve report' do expect { subject }.to change { ReportNote.count }.by(1) - expect(report.reload).not_to be_action_taken + expect(report.reload).to_not be_action_taken expect(subject).to redirect_to admin_report_path(report) end end @@ -49,7 +49,7 @@ describe Admin::ReportNotesController do it 'creates a report note and unresolves report' do expect { subject }.to change { ReportNote.count }.by(1) - expect(report.reload).not_to be_action_taken + expect(report.reload).to_not be_action_taken expect(subject).to redirect_to admin_report_path(report) end end diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb index fbbca8bb92..c7a6ad6643 100644 --- a/spec/controllers/settings/profiles_controller_spec.rb +++ b/spec/controllers/settings/profiles_controller_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Settings::ProfilesController, type: :controller do put :update, params: { account: { avatar: fixture_file_upload('avatar.gif', 'image/gif') } } expect(response).to redirect_to(settings_profile_path) - expect(account.reload.avatar.instance.avatar_file_name).not_to be_nil + expect(account.reload.avatar.instance.avatar_file_name).to_not be_nil expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id) end end diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb index 964a14706b..e9436cd262 100644 --- a/spec/controllers/well_known/nodeinfo_controller_spec.rb +++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb @@ -27,7 +27,7 @@ describe WellKnown::NodeInfoController, type: :controller do json = body_as_json - expect({ 'foo' => 0 }).not_to match_json_schema('nodeinfo_2.0') + expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0') expect(json).to match_json_schema('nodeinfo_2.0') expect(json[:version]).to eq '2.0' expect(json[:usage]).to be_a Hash diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index 461c3757b3..adb13acc21 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -139,7 +139,7 @@ RSpec.describe ActivityPub::Activity::Announce do end it 'does not fetch the remote status' do - expect(a_request(:get, 'https://example.com/actor/hello-world')).not_to have_been_made + expect(a_request(:get, 'https://example.com/actor/hello-world')).to_not have_been_made expect(Status.find_by(uri: 'https://example.com/actor/hello-world')).to be_nil end diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb index e555a8b5a1..f63a836de4 100644 --- a/spec/lib/request_spec.rb +++ b/spec/lib/request_spec.rb @@ -102,7 +102,7 @@ describe Request do it 'accepts body less than 1 megabyte by default' do stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes)) - expect { subject.perform { |response| response.body_with_limit } }.not_to raise_error + expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error end it 'rejects body by given size' do diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb index 287fe00de6..cdb4820590 100644 --- a/spec/lib/status_filter_spec.rb +++ b/spec/lib/status_filter_spec.rb @@ -10,7 +10,7 @@ describe StatusFilter do subject { described_class.new(status, nil) } context 'when there are no connections' do - it { is_expected.not_to be_filtered } + it { is_expected.to_not be_filtered } end context 'when status account is silenced' do @@ -36,7 +36,7 @@ describe StatusFilter do subject { described_class.new(status, account) } context 'when there are no connections' do - it { is_expected.not_to be_filtered } + it { is_expected.to_not be_filtered } end context 'when status account is blocked' do diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb index d4a3a6b594..cc742b65e6 100644 --- a/spec/lib/text_formatter_spec.rb +++ b/spec/lib/text_formatter_spec.rb @@ -18,7 +18,7 @@ RSpec.describe TextFormatter do let(:text) { "line\nfeed" } it 'removes line feeds' do - is_expected.not_to include "\n" + is_expected.to_not include "\n" end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 7638356181..03ed12d780 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -31,7 +31,7 @@ RSpec.describe Account, type: :model do end it 'does not raise an error' do - expect { subject.suspend! }.not_to raise_error + expect { subject.suspend! }.to_not raise_error end end end @@ -206,7 +206,7 @@ RSpec.describe Account, type: :model do end it 'calls not ResolveAccountService#call' do - expect_any_instance_of(ResolveAccountService).not_to receive(:call).with(acct) + expect_any_instance_of(ResolveAccountService).to_not receive(:call).with(acct) account.refresh! end end @@ -811,19 +811,19 @@ RSpec.describe Account, type: :model do it 'is valid even if the username is longer than 30 characters' do account = Fabricate.build(:account, domain: 'domain', username: Faker::Lorem.characters(number: 31)) account.valid? - expect(account).not_to model_have_error_on_field(:username) + expect(account).to_not model_have_error_on_field(:username) end it 'is valid even if the display name is longer than 30 characters' do account = Fabricate.build(:account, domain: 'domain', display_name: Faker::Lorem.characters(number: 31)) account.valid? - expect(account).not_to model_have_error_on_field(:display_name) + expect(account).to_not model_have_error_on_field(:display_name) end it 'is valid even if the note is longer than 500 characters' do account = Fabricate.build(:account, domain: 'domain', note: Faker::Lorem.characters(number: 501)) account.valid? - expect(account).not_to model_have_error_on_field(:note) + expect(account).to_not model_have_error_on_field(:note) end end end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index b79c445948..b2d84308b5 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -163,7 +163,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do expect(subject).to be_a Mute - end.not_to change { mute.reload.hide_notifications? }.from(true) + end.to_not change { mute.reload.hide_notifications? }.from(true) end end @@ -183,7 +183,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do expect(subject).to be_a Mute - end.not_to change { mute.reload.hide_notifications? }.from(true) + end.to_not change { mute.reload.hide_notifications? }.from(true) end end end @@ -207,7 +207,7 @@ describe AccountInteractions do it 'returns Mute without updating mute.hide_notifications' do expect do expect(subject).to be_a Mute - end.not_to change { mute.reload.hide_notifications? }.from(false) + end.to_not change { mute.reload.hide_notifications? }.from(false) end end diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb index ca2d65d2d1..9645204276 100644 --- a/spec/models/concerns/remotable_spec.rb +++ b/spec/models/concerns/remotable_spec.rb @@ -147,8 +147,8 @@ RSpec.describe Remotable do let(:code) { 500 } it 'does not assign file' do - expect(foo).not_to receive(:public_send).with("#{hoge}=", any_args) - expect(foo).not_to receive(:public_send).with("#{hoge}_file_name=", any_args) + expect(foo).to_not receive(:public_send).with("#{hoge}=", any_args) + expect(foo).to_not receive(:public_send).with("#{hoge}_file_name=", any_args) foo.hoge_remote_url = url end diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb index 0ffc343f17..be46639c52 100644 --- a/spec/models/public_feed_spec.rb +++ b/spec/models/public_feed_spec.rb @@ -11,7 +11,7 @@ RSpec.describe PublicFeed, type: :model do private_status = Fabricate(:status, visibility: :private) expect(subject).to include(public_status.id) - expect(subject).not_to include(private_status.id) + expect(subject).to_not include(private_status.id) end it 'does not include replies' do @@ -19,7 +19,7 @@ RSpec.describe PublicFeed, type: :model do reply = Fabricate(:status, in_reply_to_id: status.id) expect(subject).to include(status.id) - expect(subject).not_to include(reply.id) + expect(subject).to_not include(reply.id) end it 'does not include boosts' do @@ -27,7 +27,7 @@ RSpec.describe PublicFeed, type: :model do boost = Fabricate(:status, reblog_of_id: status.id) expect(subject).to include(status.id) - expect(subject).not_to include(boost.id) + expect(subject).to_not include(boost.id) end it 'filters out silenced accounts' do @@ -36,7 +36,7 @@ RSpec.describe PublicFeed, type: :model do silenced_status = Fabricate(:status, account: silenced_account) expect(subject).to include(status.id) - expect(subject).not_to include(silenced_status.id) + expect(subject).to_not include(silenced_status.id) end context 'without local_only option' do @@ -87,7 +87,7 @@ RSpec.describe PublicFeed, type: :model do it 'does not include remote instances statuses' do expect(subject).to include(local_status.id) - expect(subject).not_to include(remote_status.id) + expect(subject).to_not include(remote_status.id) end end @@ -96,13 +96,13 @@ RSpec.describe PublicFeed, type: :model do it 'does not include remote instances statuses' do expect(subject).to include(local_status.id) - expect(subject).not_to include(remote_status.id) + expect(subject).to_not include(remote_status.id) end it 'is not affected by personal domain blocks' do viewer.block_domain!('test.com') expect(subject).to include(local_status.id) - expect(subject).not_to include(remote_status.id) + expect(subject).to_not include(remote_status.id) end end end @@ -119,7 +119,7 @@ RSpec.describe PublicFeed, type: :model do let(:viewer) { nil } it 'does not include local instances statuses' do - expect(subject).not_to include(local_status.id) + expect(subject).to_not include(local_status.id) expect(subject).to include(remote_status.id) end end @@ -128,7 +128,7 @@ RSpec.describe PublicFeed, type: :model do let(:viewer) { Fabricate(:account, username: 'viewer') } it 'does not include local instances statuses' do - expect(subject).not_to include(local_status.id) + expect(subject).to_not include(local_status.id) expect(subject).to include(remote_status.id) end end @@ -146,7 +146,7 @@ RSpec.describe PublicFeed, type: :model do @account.block!(blocked) blocked_status = Fabricate(:status, account: blocked) - expect(subject).not_to include(blocked_status.id) + expect(subject).to_not include(blocked_status.id) end it 'excludes statuses from accounts who have blocked the account' do @@ -154,7 +154,7 @@ RSpec.describe PublicFeed, type: :model do blocker.block!(@account) blocked_status = Fabricate(:status, account: blocker) - expect(subject).not_to include(blocked_status.id) + expect(subject).to_not include(blocked_status.id) end it 'excludes statuses from accounts muted by the account' do @@ -162,7 +162,7 @@ RSpec.describe PublicFeed, type: :model do @account.mute!(muted) muted_status = Fabricate(:status, account: muted) - expect(subject).not_to include(muted_status.id) + expect(subject).to_not include(muted_status.id) end it 'excludes statuses from accounts from personally blocked domains' do @@ -170,7 +170,7 @@ RSpec.describe PublicFeed, type: :model do @account.block_domain!(blocked.domain) blocked_status = Fabricate(:status, account: blocked) - expect(subject).not_to include(blocked_status.id) + expect(subject).to_not include(blocked_status.id) end context 'with language preferences' do @@ -182,7 +182,7 @@ RSpec.describe PublicFeed, type: :model do expect(subject).to include(en_status.id) expect(subject).to include(es_status.id) - expect(subject).not_to include(fr_status.id) + expect(subject).to_not include(fr_status.id) end it 'includes all languages when user does not have a setting' do diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 83ba415a81..0772230943 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Setting, type: :model do let(:cache_value) { 'cache-value' } it 'calls not RailsSettings::Base#[]' do - expect(RailsSettings::Base).not_to receive(:[]).with(key) + expect(RailsSettings::Base).to_not receive(:[]).with(key) described_class[key] end @@ -104,7 +104,7 @@ RSpec.describe Setting, type: :model do ActiveSupport::Notifications.subscribed callback, 'sql.active_record' do described_class[key] end - expect(callback).not_to have_received(:call) + expect(callback).to_not have_received(:call) end it 'returns the cached value' do diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index 102d2f6251..7043449c5e 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -4,15 +4,15 @@ require 'rails_helper' RSpec.describe Tag do describe 'validations' do it 'invalid with #' do - expect(described_class.new(name: '#hello_world')).not_to be_valid + expect(described_class.new(name: '#hello_world')).to_not be_valid end it 'invalid with .' do - expect(described_class.new(name: '.abcdef123')).not_to be_valid + expect(described_class.new(name: '.abcdef123')).to_not be_valid end it 'invalid with spaces' do - expect(described_class.new(name: 'hello world')).not_to be_valid + expect(described_class.new(name: 'hello world')).to_not be_valid end it 'valid with aesthetic' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index dde1503c0d..c2f7e99ac6 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -159,7 +159,7 @@ RSpec.describe User, type: :model do 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) + expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id) end end @@ -270,7 +270,7 @@ RSpec.describe User, type: :model do 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) + expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id) end end end diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb index d3b5baad62..45e19d1ef7 100644 --- a/spec/services/account_search_service_spec.rb +++ b/spec/services/account_search_service_spec.rb @@ -63,7 +63,7 @@ describe AccountSearchService, type: :service do allow(ResolveAccountService).to receive(:new).and_return(service) results = subject.call('newuser@remote.com', nil, limit: 10, resolve: false) - expect(service).not_to have_received(:call) + expect(service).to_not have_received(:call) end end diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index fbfa6d6c6b..d35d9596df 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -39,7 +39,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do end it 'does not process payload' do - expect(ActivityPub::Activity).not_to receive(:factory) + expect(ActivityPub::Activity).to_not receive(:factory) subject.call(json, actor) end end @@ -69,7 +69,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do it 'does not process payload if no signature exists' do expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil) - expect(ActivityPub::Activity).not_to receive(:factory) + expect(ActivityPub::Activity).to_not receive(:factory) subject.call(json, forwarder) end @@ -87,7 +87,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do payload['signature'] = { 'type' => 'RsaSignature2017' } expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil) - expect(ActivityPub::Activity).not_to receive(:factory) + expect(ActivityPub::Activity).to_not receive(:factory) subject.call(json, forwarder) end @@ -206,7 +206,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do end it 'does not process forged payload' do - expect(ActivityPub::Activity).not_to receive(:factory).with( + expect(ActivityPub::Activity).to_not receive(:factory).with( hash_including( 'object' => hash_including( 'id' => 'https://example.com/users/bob/fake-status' @@ -216,7 +216,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do anything ) - expect(ActivityPub::Activity).not_to receive(:factory).with( + expect(ActivityPub::Activity).to_not receive(:factory).with( hash_including( 'object' => hash_including( 'content' => '

    puck was here

    ' diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 5d15f6ffeb..ae7db88bf1 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -214,11 +214,11 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do end it 'does not create any edits' do - expect { subject.call(status, json) }.not_to change { status.reload.edits.pluck(&:id) } + expect { subject.call(status, json) }.to_not change { status.reload.edits.pluck(&:id) } end it 'does not update the text, spoiler_text or edited_at' do - expect { subject.call(status, json) }.not_to change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] } + expect { subject.call(status, json) }.to_not change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] } end end diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb index 242b02fff7..e24e48d415 100644 --- a/spec/services/block_domain_service_spec.rb +++ b/spec/services/block_domain_service_spec.rb @@ -67,9 +67,9 @@ RSpec.describe BlockDomainService, type: :service do end it 'leaves the domains status and attachments, but clears media' do - expect { bad_status1.reload }.not_to raise_error - expect { bad_status2.reload }.not_to raise_error - expect { bad_attachment.reload }.not_to raise_error + expect { bad_status1.reload }.to_not raise_error + expect { bad_status2.reload }.to_not raise_error + expect { bad_attachment.reload }.to_not raise_error expect(bad_attachment.file.exists?).to be false end end diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb index 45b92e2c94..e90faf84d9 100644 --- a/spec/services/clear_domain_media_service_spec.rb +++ b/spec/services/clear_domain_media_service_spec.rb @@ -14,9 +14,9 @@ RSpec.describe ClearDomainMediaService, type: :service do end it 'leaves the domains status and attachments, but clears media' do - expect { bad_status1.reload }.not_to raise_error - expect { bad_status2.reload }.not_to raise_error - expect { bad_attachment.reload }.not_to raise_error + expect { bad_status1.reload }.to_not raise_error + expect { bad_status2.reload }.to_not raise_error + expect { bad_attachment.reload }.to_not raise_error expect(bad_attachment.file.exists?).to be false end end diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index a12148833d..2b1516ff08 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -234,7 +234,7 @@ RSpec.describe ImportService, type: :service do subject.call(import) expect(account.bookmarks.map(&:status).map(&:id)).to include(local_status.id) expect(account.bookmarks.map(&:status).map(&:id)).to include(remote_status.id) - expect(account.bookmarks.map(&:status).map(&:id)).not_to include(direct_status.id) + expect(account.bookmarks.map(&:status).map(&:id)).to_not include(direct_status.id) expect(account.bookmarks.count).to eq 3 end end diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 0b72253a5a..2148f18197 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -50,7 +50,7 @@ RSpec.describe PostStatusService, type: :service do end it 'does not change statuses count' do - expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.not_to change { [account.statuses_count, previous_status.replies_count] } + expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.to_not change { [account.statuses_count, previous_status.replies_count] } end end @@ -157,7 +157,7 @@ RSpec.describe PostStatusService, type: :service do expect do subject.call(account, text: '@alice @alice @alice hey @alice') - end.not_to raise_error + end.to_not raise_error end it 'processes hashtags' do diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 6f32007e83..7ec334a56c 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -13,8 +13,8 @@ describe SearchService, type: :service do results = subject.call('', nil, 10) expect(results).to eq(empty_results) - expect(AccountSearchService).not_to have_received(:new) - expect(Tag).not_to have_received(:search_for) + expect(AccountSearchService).to_not have_received(:new) + expect(Tag).to_not have_received(:search_for) end end @@ -89,7 +89,7 @@ describe SearchService, type: :service do allow(Tag).to receive(:search_for) results = subject.call(query, nil, 10) - expect(Tag).not_to have_received(:search_for) + expect(Tag).to_not have_received(:search_for) expect(results).to eq empty_results end diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb index f9ee3b932a..cb807fe24c 100644 --- a/spec/validators/blacklisted_email_validator_spec.rb +++ b/spec/validators/blacklisted_email_validator_spec.rb @@ -26,7 +26,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do let(:blocked_email) { false } it 'does not add errors' do - expect(subject).not_to have_received(:add).with(:email, :blocked) + expect(subject).to_not have_received(:add).with(:email, :blocked) end context 'when canonical e-mail is blocked' do diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb index 9deec0bb90..2c4ebc4f25 100644 --- a/spec/validators/disallowed_hashtags_validator_spec.rb +++ b/spec/validators/disallowed_hashtags_validator_spec.rb @@ -19,7 +19,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do let(:reblog) { true } it 'does not add errors' do - expect(errors).not_to have_received(:add).with(:text, any_args) + expect(errors).to_not have_received(:add).with(:text, any_args) end end @@ -31,7 +31,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do let(:disallowed_tags) { [] } it 'does not add errors' do - expect(errors).not_to have_received(:add).with(:text, any_args) + expect(errors).to_not have_received(:add).with(:text, any_args) end end diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb index 6640d6058e..ffb6851d09 100644 --- a/spec/validators/email_mx_validator_spec.rb +++ b/spec/validators/email_mx_validator_spec.rb @@ -38,7 +38,7 @@ describe EmailMxValidator do allow(Resolv::DNS).to receive(:open).and_yield(resolver) subject.validate(user) - expect(user.errors).not_to have_received(:add) + expect(user.errors).to_not have_received(:add) end it 'adds an error if the email domain name contains empty labels' do diff --git a/spec/validators/follow_limit_validator_spec.rb b/spec/validators/follow_limit_validator_spec.rb index cc8fbb6313..94ba0c47f8 100644 --- a/spec/validators/follow_limit_validator_spec.rb +++ b/spec/validators/follow_limit_validator_spec.rb @@ -22,7 +22,7 @@ RSpec.describe FollowLimitValidator, type: :validator do let(:_nil) { true } it 'not calls errors.add' do - expect(errors).not_to have_received(:add).with(:base, any_args) + expect(errors).to_not have_received(:add).with(:base, any_args) end end @@ -43,7 +43,7 @@ RSpec.describe FollowLimitValidator, type: :validator do let(:limit_reached) { false } it 'not calls errors.add' do - expect(errors).not_to have_received(:add).with(:base, any_args) + expect(errors).to_not have_received(:add).with(:base, any_args) end end end diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb index a76c63ccc2..f3f4b12881 100644 --- a/spec/validators/poll_validator_spec.rb +++ b/spec/validators/poll_validator_spec.rb @@ -15,14 +15,14 @@ RSpec.describe PollValidator, type: :validator do let(:expires_at) { 1.day.from_now } it 'have no errors' do - expect(errors).not_to have_received(:add) + expect(errors).to_not have_received(:add) end context 'expires just 5 min ago' do let(:expires_at) { 5.minutes.from_now } it 'not calls errors add' do - expect(errors).not_to have_received(:add) + expect(errors).to_not have_received(:add) end end end diff --git a/spec/validators/status_length_validator_spec.rb b/spec/validators/status_length_validator_spec.rb index db9c728a8b..e132b5618a 100644 --- a/spec/validators/status_length_validator_spec.rb +++ b/spec/validators/status_length_validator_spec.rb @@ -7,13 +7,13 @@ describe StatusLengthValidator do it 'does not add errors onto remote statuses' do status = double(local?: false) subject.validate(status) - expect(status).not_to receive(:errors) + expect(status).to_not receive(:errors) end it 'does not add errors onto local reblogs' do status = double(local?: false, reblog?: true) subject.validate(status) - expect(status).not_to receive(:errors) + expect(status).to_not receive(:errors) end it 'adds an error when content warning is over 500 characters' do diff --git a/spec/validators/unreserved_username_validator_spec.rb b/spec/validators/unreserved_username_validator_spec.rb index e2f051b086..3c6f71c590 100644 --- a/spec/validators/unreserved_username_validator_spec.rb +++ b/spec/validators/unreserved_username_validator_spec.rb @@ -17,7 +17,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do let(:username) { nil } it 'not calls errors.add' do - expect(errors).not_to have_received(:add).with(:username, any_args) + expect(errors).to_not have_received(:add).with(:username, any_args) end end @@ -36,7 +36,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do let(:reserved_username) { false } it 'not calls errors.add' do - expect(errors).not_to have_received(:add).with(:username, any_args) + expect(errors).to_not have_received(:add).with(:username, any_args) end end end diff --git a/spec/validators/url_validator_spec.rb b/spec/validators/url_validator_spec.rb index 85eadeb63a..966261b505 100644 --- a/spec/validators/url_validator_spec.rb +++ b/spec/validators/url_validator_spec.rb @@ -27,7 +27,7 @@ RSpec.describe URLValidator, type: :validator do let(:compliant) { true } it 'not calls errors.add' do - expect(errors).not_to have_received(:add).with(attribute, any_args) + expect(errors).to_not have_received(:add).with(attribute, any_args) end end end diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb index fb34970fc3..1a723d63a1 100644 --- a/spec/workers/feed_insert_worker_spec.rb +++ b/spec/workers/feed_insert_worker_spec.rb @@ -16,7 +16,7 @@ describe FeedInsertWorker do result = subject.perform(nil, follower.id) expect(result).to eq true - expect(instance).not_to have_received(:push_to_home) + expect(instance).to_not have_received(:push_to_home) end it 'skips push with missing account' do @@ -25,7 +25,7 @@ describe FeedInsertWorker do result = subject.perform(status.id, nil) expect(result).to eq true - expect(instance).not_to have_received(:push_to_home) + expect(instance).to_not have_received(:push_to_home) end end @@ -36,7 +36,7 @@ describe FeedInsertWorker do result = subject.perform(status.id, follower.id) expect(result).to be_nil - expect(instance).not_to have_received(:push_to_home) + expect(instance).to_not have_received(:push_to_home) end it 'pushes the status onto the home timeline without filter' do From dbc6d7b276aa1ccc085f76caa43cc091311af6b7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:45:50 -0500 Subject: [PATCH 0493/1220] Autofix Rubocop Lint/UnusedBlockArgument (#23712) --- .rubocop_todo.yml | 8 -------- spec/lib/activitypub/activity/add_spec.rb | 4 ++-- spec/lib/request_pool_spec.rb | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9076891e2b..e33d1d7451 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -278,14 +278,6 @@ Lint/OrAssignmentToConstant: Exclude: - 'lib/sanitize_ext/sanitize_config.rb' -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. -Lint/UnusedBlockArgument: - Exclude: - - 'spec/lib/activitypub/activity/add_spec.rb' - - 'spec/lib/request_pool_spec.rb' - # Offense count: 33 Lint/UselessAssignment: Exclude: diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index 0b08e2924a..e21c871e67 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -48,7 +48,7 @@ RSpec.describe ActivityPub::Activity::Add do end it 'fetches the status and pins it' do - allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument expect(uri).to eq 'https://example.com/unknown' expect(id).to eq true expect(on_behalf_of&.following?(sender)).to eq true @@ -62,7 +62,7 @@ RSpec.describe ActivityPub::Activity::Add do context 'when there is no local follower' do it 'tries to fetch the status' do - allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument expect(uri).to eq 'https://example.com/unknown' expect(id).to eq true expect(on_behalf_of).to eq nil diff --git a/spec/lib/request_pool_spec.rb b/spec/lib/request_pool_spec.rb index 4a144d7c7f..63dc9c5dd2 100644 --- a/spec/lib/request_pool_spec.rb +++ b/spec/lib/request_pool_spec.rb @@ -33,7 +33,7 @@ describe RequestPool do subject - threads = 20.times.map do |i| + threads = 20.times.map do |_i| Thread.new do 20.times do subject.with('http://example.com') do |http_client| From bd1d57c2303b7a5df1af749d8851c9364a044e77 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 20:46:00 -0500 Subject: [PATCH 0494/1220] Autofix Rubocop RSpec/EmptyLineAfterSubject (#23719) --- .rubocop_todo.yml | 21 ------------------- .../collections_controller_spec.rb | 1 + ...lowers_synchronizations_controller_spec.rb | 1 + .../activitypub/outboxes_controller_spec.rb | 1 + .../activitypub/replies_controller_spec.rb | 1 + .../admin/reports/actions_controller_spec.rb | 2 ++ .../api/web/embeds_controller_spec.rb | 1 + spec/controllers/emojis_controller_spec.rb | 1 + .../follower_accounts_controller_spec.rb | 1 + .../following_accounts_controller_spec.rb | 1 + .../relationships_controller_spec.rb | 1 + spec/lib/activitypub/activity/delete_spec.rb | 2 ++ spec/lib/activitypub/activity/flag_spec.rb | 1 + spec/models/admin/account_action_spec.rb | 1 + spec/models/user_spec.rb | 2 ++ .../fetch_remote_status_service_spec.rb | 1 + spec/workers/refollow_worker_spec.rb | 1 + 17 files changed, 19 insertions(+), 21 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e33d1d7451..02f84e70f9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -817,27 +817,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 19 -# This cop supports safe autocorrection (--autocorrect). -RSpec/EmptyLineAfterSubject: - Exclude: - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/activitypub/replies_controller_spec.rb' - - 'spec/controllers/admin/reports/actions_controller_spec.rb' - - 'spec/controllers/api/web/embeds_controller_spec.rb' - - 'spec/controllers/emojis_controller_spec.rb' - - 'spec/controllers/follower_accounts_controller_spec.rb' - - 'spec/controllers/following_accounts_controller_spec.rb' - - 'spec/controllers/relationships_controller_spec.rb' - - 'spec/lib/activitypub/activity/delete_spec.rb' - - 'spec/lib/activitypub/activity/flag_spec.rb' - - 'spec/models/admin/account_action_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/services/fetch_remote_status_service_spec.rb' - - 'spec/workers/refollow_worker_spec.rb' - # Offense count: 178 # Configuration parameters: CountAsOne. RSpec/ExampleLength: diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index bf81cdb93c..19c0e0a646 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -38,6 +38,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do let(:remote_account) { nil } subject(:response) { get :show, params: { id: 'featured', account_username: account.username } } + subject(:body) { body_as_json } it 'returns http success' do diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb index c19bb8cae7..893c8e14f1 100644 --- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb +++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb @@ -35,6 +35,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') } subject(:response) { get :show, params: { account_username: account.username } } + subject(:body) { body_as_json } it 'returns http success' do diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb index d8d42b7ae0..f84a902ea1 100644 --- a/spec/controllers/activitypub/outboxes_controller_spec.rb +++ b/spec/controllers/activitypub/outboxes_controller_spec.rb @@ -36,6 +36,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do let(:remote_account) { nil } subject(:response) { get :show, params: { account_username: account.username, page: page } } + subject(:body) { body_as_json } context 'with page not requested' do diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb index 394d4baabe..582ef863f2 100644 --- a/spec/controllers/activitypub/replies_controller_spec.rb +++ b/spec/controllers/activitypub/replies_controller_spec.rb @@ -181,6 +181,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do describe 'GET #index' do subject(:response) { get :index, params: { account_username: status.account.username, status_id: status.id, only_other_accounts: only_other_accounts } } + let(:only_other_accounts) { nil } context 'with no signature' do diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb index 9890ac9ce8..db3a1d311c 100644 --- a/spec/controllers/admin/reports/actions_controller_spec.rb +++ b/spec/controllers/admin/reports/actions_controller_spec.rb @@ -123,11 +123,13 @@ describe Admin::Reports::ActionsController do context 'action as submit button' do subject { post :create, params: { report_id: report.id, text: text, action => '' } } + it_behaves_like 'all action types' end context 'action as submit button' do subject { post :create, params: { report_id: report.id, text: text, moderation_action: action } } + it_behaves_like 'all action types' end end diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb index 345c317ba6..b3ef73915c 100644 --- a/spec/controllers/api/web/embeds_controller_spec.rb +++ b/spec/controllers/api/web/embeds_controller_spec.rb @@ -11,6 +11,7 @@ describe Api::Web::EmbedsController do describe 'POST #create' do subject(:response) { post :create, params: { url: url } } + subject(:body) { JSON.parse(response.body, symbolize_names: true) } context 'when successfully finds status' do diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb index fbbd11f648..9f66049642 100644 --- a/spec/controllers/emojis_controller_spec.rb +++ b/spec/controllers/emojis_controller_spec.rb @@ -7,6 +7,7 @@ describe EmojisController do describe 'GET #show' do subject(:response) { get :show, params: { id: emoji.id, format: :json } } + subject(:body) { JSON.parse(response.body, symbolize_names: true) } it 'returns the right response' do diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb index ab2e82e850..43fc4203cd 100644 --- a/spec/controllers/follower_accounts_controller_spec.rb +++ b/spec/controllers/follower_accounts_controller_spec.rb @@ -38,6 +38,7 @@ describe FollowerAccountsController do context 'when format is json' do subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } + subject(:body) { JSON.parse(response.body) } context 'with page' do diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb index e43dbf882b..b41bf05751 100644 --- a/spec/controllers/following_accounts_controller_spec.rb +++ b/spec/controllers/following_accounts_controller_spec.rb @@ -38,6 +38,7 @@ describe FollowingAccountsController do context 'when format is json' do subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } } + subject(:body) { JSON.parse(response.body) } context 'with page' do diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb index 2056a2ac29..cd09cf50b6 100644 --- a/spec/controllers/relationships_controller_spec.rb +++ b/spec/controllers/relationships_controller_spec.rb @@ -51,6 +51,7 @@ describe RelationshipsController do context 'when select parameter is not provided' do subject { patch :update } + include_examples 'redirects back to followers page' end diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb index 9dfb8a61b4..40cd0fce95 100644 --- a/spec/lib/activitypub/activity/delete_spec.rb +++ b/spec/lib/activitypub/activity/delete_spec.rb @@ -30,6 +30,7 @@ RSpec.describe ActivityPub::Activity::Delete do context 'when the status has been reblogged' do describe '#perform' do subject { described_class.new(json, sender) } + let!(:reblogger) { Fabricate(:account) } let!(:follower) { Fabricate(:account, username: 'follower', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') } let!(:reblog) { Fabricate(:status, account: reblogger, reblog: status) } @@ -53,6 +54,7 @@ RSpec.describe ActivityPub::Activity::Delete do context 'when the status has been reported' do describe '#perform' do subject { described_class.new(json, sender) } + let!(:reporter) { Fabricate(:account) } before do diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb index 7890fd1e8c..c2a5053567 100644 --- a/spec/lib/activitypub/activity/flag_spec.rb +++ b/spec/lib/activitypub/activity/flag_spec.rb @@ -110,6 +110,7 @@ RSpec.describe ActivityPub::Activity::Flag do describe '#perform with a defined uri' do subject { described_class.new(json, sender) } + let(:flag_id) { 'http://example.com/reports/1' } before do diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb index b6a052b769..4516df2c2c 100644 --- a/spec/models/admin/account_action_spec.rb +++ b/spec/models/admin/account_action_spec.rb @@ -5,6 +5,7 @@ RSpec.describe Admin::AccountAction, type: :model do describe '#save!' do subject { account_action.save! } + let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } let(:target_account) { Fabricate(:account) } let(:type) { 'disable' } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index c2f7e99ac6..d23439f1a9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -409,6 +409,7 @@ RSpec.describe User, type: :model do describe '#disable!' do subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) } + let(:current_sign_in_at) { Time.zone.now } before do @@ -497,6 +498,7 @@ RSpec.describe User, type: :model do describe '#active_for_authentication?' do subject { user.active_for_authentication? } + let(:user) { Fabricate(:user, disabled: disabled, confirmed_at: confirmed_at) } context 'when user is disabled' do diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index 02c62f8d60..ace520b8fc 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -16,6 +16,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do context 'protocol is :activitypub' do subject { described_class.new.call(note[:id], prefetched_body: prefetched_body) } + let(:prefetched_body) { Oj.dump(note) } before do diff --git a/spec/workers/refollow_worker_spec.rb b/spec/workers/refollow_worker_spec.rb index d9c2293b62..1dac15385b 100644 --- a/spec/workers/refollow_worker_spec.rb +++ b/spec/workers/refollow_worker_spec.rb @@ -4,6 +4,7 @@ require 'rails_helper' describe RefollowWorker do subject { described_class.new } + let(:account) { Fabricate(:account, domain: 'example.org', protocol: :activitypub) } let(:alice) { Fabricate(:account, domain: nil, username: 'alice') } let(:bob) { Fabricate(:account, domain: nil, username: 'bob') } From aef0051fd0723ff03175a8851497056ed07d1a83 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 21:16:40 -0500 Subject: [PATCH 0495/1220] Enable Rubocop HTTP status rules (#23717) --- .rubocop.yml | 6 + .rubocop_todo.yml | 171 ------------------ app/controllers/api/v1/accounts_controller.rb | 2 +- .../api/v1/emails/confirmations_controller.rb | 4 +- app/controllers/auth/sessions_controller.rb | 4 +- .../two_factor_authentication_concern.rb | 4 +- .../webauthn_credentials_controller.rb | 2 +- .../admin/accounts_controller_spec.rb | 22 +-- .../controllers/admin/base_controller_spec.rb | 2 +- .../admin/instances_controller_spec.rb | 2 +- .../admin/roles_controller_spec.rb | 16 +- .../admin/users/roles_controller.rb | 4 +- .../accounts/credentials_controller_spec.rb | 6 +- .../v1/accounts/statuses_controller_spec.rb | 10 +- .../reactions_controller_spec.rb | 4 +- .../api/v1/announcements_controller_spec.rb | 4 +- .../v1/apps/credentials_controller_spec.rb | 2 +- .../api/v1/bookmarks_controller_spec.rb | 6 +- .../emails/confirmations_controller_spec.rb | 6 +- .../api/v1/favourites_controller_spec.rb | 6 +- .../api/v1/media_controller_spec.rb | 6 +- .../api/v1/timelines/home_controller_spec.rb | 2 +- .../api/v1/timelines/list_controller_spec.rb | 4 +- .../api/web/embeds_controller_spec.rb | 6 +- .../auth/registrations_controller_spec.rb | 2 +- .../auth/sessions_controller_spec.rb | 2 +- .../export_controller_concern_spec.rb | 2 +- .../disputes/strikes_controller_spec.rb | 2 +- .../settings/applications_controller_spec.rb | 2 +- .../settings/sessions_controller_spec.rb | 2 +- spec/controllers/shares_controller_spec.rb | 2 +- spec/requests/catch_all_route_request_spec.rb | 4 +- 32 files changed, 77 insertions(+), 242 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index fc1969a645..512c8458fb 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -88,6 +88,9 @@ Metrics/ModuleLength: Metrics/PerceivedComplexity: Max: 16 # RuboCop default 8 +Rails/HttpStatus: + EnforcedStyle: numeric + Rails/Exit: Exclude: - 'lib/mastodon/*_cli.rb' @@ -97,6 +100,9 @@ Rails/Exit: RSpec/NotToNot: EnforcedStyle: to_not +RSpec/Rails/HttpStatus: + EnforcedStyle: numeric + Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 02f84e70f9..521608de6a 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1427,148 +1427,6 @@ RSpec/PredicateMatcher: - 'spec/models/user_spec.rb' - 'spec/services/post_status_service_spec.rb' -# Offense count: 3 -# This cop supports unsafe autocorrection (--autocorrect-all). -RSpec/Rails/HaveHttpStatus: - Exclude: - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/requests/catch_all_route_request_spec.rb' - -# Offense count: 432 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: numeric, symbolic -RSpec/Rails/HttpStatus: - Exclude: - - 'spec/controllers/about_controller_spec.rb' - - 'spec/controllers/accounts_controller_spec.rb' - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - - 'spec/controllers/activitypub/inboxes_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/activitypub/replies_controller_spec.rb' - - 'spec/controllers/admin/accounts_controller_spec.rb' - - 'spec/controllers/admin/action_logs_controller_spec.rb' - - 'spec/controllers/admin/change_email_controller_spec.rb' - - 'spec/controllers/admin/confirmations_controller_spec.rb' - - 'spec/controllers/admin/custom_emojis_controller_spec.rb' - - 'spec/controllers/admin/dashboard_controller_spec.rb' - - 'spec/controllers/admin/domain_allows_controller_spec.rb' - - 'spec/controllers/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb' - - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' - - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' - - 'spec/controllers/admin/instances_controller_spec.rb' - - 'spec/controllers/admin/reports/actions_controller_spec.rb' - - 'spec/controllers/admin/reports_controller_spec.rb' - - 'spec/controllers/admin/settings/branding_controller_spec.rb' - - 'spec/controllers/admin/statuses_controller_spec.rb' - - 'spec/controllers/admin/tags_controller_spec.rb' - - 'spec/controllers/api/base_controller_spec.rb' - - 'spec/controllers/api/oembed_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/lists_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/relationships_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/search_controller_spec.rb' - - 'spec/controllers/api/v1/accounts_controller_spec.rb' - - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' - - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/admin/reports_controller_spec.rb' - - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb' - - 'spec/controllers/api/v1/announcements_controller_spec.rb' - - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/apps_controller_spec.rb' - - 'spec/controllers/api/v1/blocks_controller_spec.rb' - - 'spec/controllers/api/v1/conversations_controller_spec.rb' - - 'spec/controllers/api/v1/custom_emojis_controller_spec.rb' - - 'spec/controllers/api/v1/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/endorsements_controller_spec.rb' - - 'spec/controllers/api/v1/filters_controller_spec.rb' - - 'spec/controllers/api/v1/follow_requests_controller_spec.rb' - - 'spec/controllers/api/v1/instances/activity_controller_spec.rb' - - 'spec/controllers/api/v1/instances/peers_controller_spec.rb' - - 'spec/controllers/api/v1/instances_controller_spec.rb' - - 'spec/controllers/api/v1/lists/accounts_controller_spec.rb' - - 'spec/controllers/api/v1/lists_controller_spec.rb' - - 'spec/controllers/api/v1/markers_controller_spec.rb' - - 'spec/controllers/api/v1/media_controller_spec.rb' - - 'spec/controllers/api/v1/mutes_controller_spec.rb' - - 'spec/controllers/api/v1/notifications_controller_spec.rb' - - 'spec/controllers/api/v1/polls/votes_controller_spec.rb' - - 'spec/controllers/api/v1/polls_controller_spec.rb' - - 'spec/controllers/api/v1/reports_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/bookmarks_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/favourites_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/histories_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/pins_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/reblogs_controller_spec.rb' - - 'spec/controllers/api/v1/statuses/sources_controller_spec.rb' - - 'spec/controllers/api/v1/statuses_controller_spec.rb' - - 'spec/controllers/api/v1/streaming_controller_spec.rb' - - 'spec/controllers/api/v1/suggestions_controller_spec.rb' - - 'spec/controllers/api/v1/timelines/home_controller_spec.rb' - - 'spec/controllers/api/v1/timelines/list_controller_spec.rb' - - 'spec/controllers/api/v1/timelines/public_controller_spec.rb' - - 'spec/controllers/api/v1/timelines/tag_controller_spec.rb' - - 'spec/controllers/api/v1/trends/tags_controller_spec.rb' - - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' - - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' - - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb' - - 'spec/controllers/api/v2/filters_controller_spec.rb' - - 'spec/controllers/api/v2/search_controller_spec.rb' - - 'spec/controllers/api/web/settings_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/auth/confirmations_controller_spec.rb' - - 'spec/controllers/auth/passwords_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/auth/sessions_controller_spec.rb' - - 'spec/controllers/authorize_interactions_controller_spec.rb' - - 'spec/controllers/concerns/account_controller_concern_spec.rb' - - 'spec/controllers/concerns/export_controller_concern_spec.rb' - - 'spec/controllers/concerns/signature_verification_spec.rb' - - 'spec/controllers/emojis_controller_spec.rb' - - 'spec/controllers/follower_accounts_controller_spec.rb' - - 'spec/controllers/following_accounts_controller_spec.rb' - - 'spec/controllers/instance_actors_controller_spec.rb' - - 'spec/controllers/intents_controller_spec.rb' - - 'spec/controllers/invites_controller_spec.rb' - - 'spec/controllers/manifests_controller_spec.rb' - - 'spec/controllers/media_controller_spec.rb' - - 'spec/controllers/media_proxy_controller_spec.rb' - - 'spec/controllers/oauth/authorizations_controller_spec.rb' - - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' - - 'spec/controllers/relationships_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/deletes_controller_spec.rb' - - 'spec/controllers/settings/exports_controller_spec.rb' - - 'spec/controllers/settings/imports_controller_spec.rb' - - 'spec/controllers/settings/migrations_controller_spec.rb' - - 'spec/controllers/settings/preferences/notifications_controller_spec.rb' - - 'spec/controllers/settings/preferences/other_controller_spec.rb' - - 'spec/controllers/settings/profiles_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb' - - 'spec/controllers/statuses_cleanup_controller_spec.rb' - - 'spec/controllers/statuses_controller_spec.rb' - - 'spec/controllers/tags_controller_spec.rb' - - 'spec/controllers/well_known/host_meta_controller_spec.rb' - - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' - - 'spec/controllers/well_known/webfinger_controller_spec.rb' - - 'spec/requests/host_meta_request_spec.rb' - - 'spec/requests/webfinger_request_spec.rb' - # Offense count: 180 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Inferences. @@ -2159,35 +2017,6 @@ Rails/HttpPositionalArguments: Exclude: - 'spec/config/initializers/rack_attack_spec.rb' -# Offense count: 49 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: numeric, symbolic -Rails/HttpStatus: - Exclude: - - 'app/controllers/activitypub/inboxes_controller.rb' - - 'app/controllers/api/base_controller.rb' - - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/instances/activity_controller.rb' - - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' - - 'app/controllers/api/v1/instances/peers_controller.rb' - - 'app/controllers/api/v1/lists_controller.rb' - - 'app/controllers/api/v1/markers_controller.rb' - - 'app/controllers/api/v1/media_controller.rb' - - 'app/controllers/api/v1/statuses_controller.rb' - - 'app/controllers/api/v1/streaming_controller.rb' - - 'app/controllers/api/v2/media_controller.rb' - - 'app/controllers/api/v2/search_controller.rb' - - 'app/controllers/api/web/base_controller.rb' - - 'app/controllers/settings/pictures_controller.rb' - - 'app/controllers/well_known/webfinger_controller.rb' - - 'spec/controllers/api/base_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/concerns/account_controller_concern_spec.rb' - - 'spec/controllers/concerns/localized_spec.rb' - - 'spec/controllers/concerns/rate_limit_headers_spec.rb' - - 'spec/controllers/concerns/signature_verification_spec.rb' - # Offense count: 7 # Configuration parameters: Include. # Include: spec/**/*.rb, test/**/*.rb diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index be84720aa9..7dff66efac 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -30,7 +30,7 @@ class Api::V1::AccountsController < Api::BaseController self.response_body = Oj.dump(response.body) self.status = response.status rescue ActiveRecord::RecordInvalid => e - render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: :unprocessable_entity + render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: 422 end def follow diff --git a/app/controllers/api/v1/emails/confirmations_controller.rb b/app/controllers/api/v1/emails/confirmations_controller.rb index 3faaea2fb7..32fb8e39fa 100644 --- a/app/controllers/api/v1/emails/confirmations_controller.rb +++ b/app/controllers/api/v1/emails/confirmations_controller.rb @@ -15,10 +15,10 @@ class Api::V1::Emails::ConfirmationsController < Api::BaseController private def require_user_owned_by_application! - render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: :forbidden unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id + render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: 403 unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id end def require_user_not_confirmed! - render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: :forbidden unless !current_user.confirmed? || current_user.unconfirmed_email.present? + render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: 403 unless !current_user.confirmed? || current_user.unconfirmed_email.present? end end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 3ce7426384..4f59fd501b 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -52,9 +52,9 @@ class Auth::SessionsController < Devise::SessionsController session[:webauthn_challenge] = options_for_get.challenge - render json: options_for_get, status: :ok + render json: options_for_get, status: 200 else - render json: { error: t('webauthn_credentials.not_enabled') }, status: :unauthorized + render json: { error: t('webauthn_credentials.not_enabled') }, status: 401 end end diff --git a/app/controllers/concerns/two_factor_authentication_concern.rb b/app/controllers/concerns/two_factor_authentication_concern.rb index e69b67a795..94f3ce00f1 100644 --- a/app/controllers/concerns/two_factor_authentication_concern.rb +++ b/app/controllers/concerns/two_factor_authentication_concern.rb @@ -57,10 +57,10 @@ module TwoFactorAuthenticationConcern if valid_webauthn_credential?(user, webauthn_credential) on_authentication_success(user, :webauthn) - render json: { redirect_path: after_sign_in_path_for(user) }, status: :ok + render json: { redirect_path: after_sign_in_path_for(user) }, status: 200 else on_authentication_failure(user, :webauthn, :invalid_credential) - render json: { error: t('webauthn_credentials.invalid_credential') }, status: :unprocessable_entity + render json: { error: t('webauthn_credentials.invalid_credential') }, status: 422 end end diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb index a50d30f06f..e43818c941 100644 --- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb +++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb @@ -27,7 +27,7 @@ module Settings session[:webauthn_challenge] = options_for_create.challenge - render json: options_for_create, status: :ok + render json: options_for_create, status: 200 end def create diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index 35d79740ac..f5d68a8adb 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Admin') } it 'fails to memorialize account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Admin') } it 'fails to memorialize account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Moderator') } it 'fails to memorialize account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to enable account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(user.reload).to be_disabled end end @@ -167,7 +167,7 @@ RSpec.describe Admin::AccountsController, type: :controller do end it 'logs action' do - is_expected.to have_http_status :found + is_expected.to have_http_status 302 log_item = Admin::ActionLog.last @@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to approve account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(user.reload).to_not be_approved end end @@ -207,7 +207,7 @@ RSpec.describe Admin::AccountsController, type: :controller do end it 'logs action' do - is_expected.to have_http_status :found + is_expected.to have_http_status 302 log_item = Admin::ActionLog.last @@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to reject account' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 expect(user.reload).to_not be_approved end end @@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to redownload' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 end end end @@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to remove avatar' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 end end end @@ -303,7 +303,7 @@ RSpec.describe Admin::AccountsController, type: :controller do it 'fails to remove avatar' do subject - expect(response).to have_http_status :forbidden + expect(response).to have_http_status 403 end end end diff --git a/spec/controllers/admin/base_controller_spec.rb b/spec/controllers/admin/base_controller_spec.rb index 44be91951b..5fbf8777c7 100644 --- a/spec/controllers/admin/base_controller_spec.rb +++ b/spec/controllers/admin/base_controller_spec.rb @@ -15,7 +15,7 @@ describe Admin::BaseController, type: :controller do sign_in(Fabricate(:user)) get :success - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end it 'renders admin layout as a moderator' do diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb index 337f7a80c7..a7e348b1ca 100644 --- a/spec/controllers/admin/instances_controller_spec.rb +++ b/spec/controllers/admin/instances_controller_spec.rb @@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do let(:role) { nil } it 'fails to purge instance' do - is_expected.to have_http_status :forbidden + is_expected.to have_http_status 403 end end end diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb index 8ff8912054..e2b1030d9a 100644 --- a/spec/controllers/admin/roles_controller_spec.rb +++ b/spec/controllers/admin/roles_controller_spec.rb @@ -18,7 +18,7 @@ describe Admin::RolesController do context 'when user does not have permission to manage roles' do it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end @@ -38,7 +38,7 @@ describe Admin::RolesController do context 'when user does not have permission to manage roles' do it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end @@ -128,7 +128,7 @@ describe Admin::RolesController do context 'when user does not have permission to manage roles' do it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end @@ -145,7 +145,7 @@ describe Admin::RolesController do let(:role_position) { current_role.position + 1 } it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end end @@ -165,7 +165,7 @@ describe Admin::RolesController do context 'when user does not have permission to manage roles' do it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end it 'does not update the role' do @@ -203,7 +203,7 @@ describe Admin::RolesController do let(:role_position) { current_role.position + 1 } it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end it 'does not update the role' do @@ -224,7 +224,7 @@ describe Admin::RolesController do context 'when user does not have permission to manage roles' do it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end @@ -241,7 +241,7 @@ describe Admin::RolesController do let(:role_position) { current_role.position + 1 } it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end end diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb index bd6a3fa673..9fa8aef412 100644 --- a/spec/controllers/admin/users/roles_controller.rb +++ b/spec/controllers/admin/users/roles_controller.rb @@ -26,7 +26,7 @@ describe Admin::Users::RolesController do let(:previous_role) { UserRole.create(name: 'Baz', permissions: UserRole::FLAGS[:administrator], position: 100) } it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end end @@ -74,7 +74,7 @@ describe Admin::Users::RolesController do end it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end end diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index a56b9d8fa7..cf91aae38f 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -78,7 +78,7 @@ describe Api::V1::Accounts::CredentialsController do end it 'returns http unprocessable entity' do - expect(response).to have_http_status(:unprocessable_entity) + expect(response).to have_http_status(422) end end end @@ -92,14 +92,14 @@ describe Api::V1::Accounts::CredentialsController do describe 'GET #show' do it 'returns http unauthorized' do get :show - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(401) end end describe 'PATCH #update' do it 'returns http unauthorized' do patch :update, params: { note: 'Foo' } - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(401) end end end diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb index 01d745fc0f..4630fac90d 100644 --- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb @@ -16,7 +16,7 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, limit: 1 } - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(200) end it 'returns expected headers' do @@ -29,7 +29,7 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, only_media: true } - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(200) end end @@ -44,7 +44,7 @@ describe Api::V1::Accounts::StatusesController do end it 'returns http success' do - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(200) end it 'returns posts along with self replies' do @@ -63,7 +63,7 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: user.account.id, pinned: true } - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(200) end end @@ -79,7 +79,7 @@ describe Api::V1::Accounts::StatusesController do it 'returns http success' do get :index, params: { account_id: account.id, pinned: true } - expect(response).to have_http_status(:ok) + expect(response).to have_http_status(200) end context 'when user does not follow account' do diff --git a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb index 72620e2421..25c52aa1d3 100644 --- a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb +++ b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb @@ -15,7 +15,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do context 'without token' do it 'returns http unauthorized' do put :update, params: { announcement_id: announcement.id, id: '😂' } - expect(response).to have_http_status :unauthorized + expect(response).to have_http_status 401 end end @@ -43,7 +43,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do context 'without token' do it 'returns http unauthorized' do delete :destroy, params: { announcement_id: announcement.id, id: '😂' } - expect(response).to have_http_status :unauthorized + expect(response).to have_http_status 401 end end diff --git a/spec/controllers/api/v1/announcements_controller_spec.rb b/spec/controllers/api/v1/announcements_controller_spec.rb index 6ee46b60eb..eaab2abd80 100644 --- a/spec/controllers/api/v1/announcements_controller_spec.rb +++ b/spec/controllers/api/v1/announcements_controller_spec.rb @@ -15,7 +15,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do context 'without token' do it 'returns http unprocessable entity' do get :index - expect(response).to have_http_status :unprocessable_entity + expect(response).to have_http_status 422 end end @@ -35,7 +35,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do context 'without token' do it 'returns http unauthorized' do post :dismiss, params: { id: announcement.id } - expect(response).to have_http_status :unauthorized + expect(response).to have_http_status 401 end end diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb index 470093c3c6..701ba8acb4 100644 --- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb @@ -36,7 +36,7 @@ describe Api::V1::Apps::CredentialsController do describe 'GET #show' do it 'returns http unauthorized' do get :show - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(401) end end end diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb index d7c5847b0c..279d1a4359 100644 --- a/spec/controllers/api/v1/bookmarks_controller_spec.rb +++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do context 'without token' do it 'returns http unauthorized' do get :index - expect(response).to have_http_status :unauthorized + expect(response).to have_http_status 401 end end @@ -24,7 +24,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do it 'returns http forbidden' do get :index - expect(response).to have_http_status :forbidden + expect(response).to have_http_status 403 end end @@ -38,7 +38,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do it 'returns http unprocessable entity' do get :index - expect(response).to have_http_status :unprocessable_entity + expect(response).to have_http_status 422 end end diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb index 15ac31cbc5..d272ff38d2 100644 --- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb +++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do context 'from a random app' do it 'returns http forbidden' do post :create - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end @@ -30,7 +30,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do it 'returns http forbidden' do post :create - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end context 'but user changed e-mail and has not confirmed it' do @@ -57,7 +57,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do context 'without an oauth token' do it 'returns http unauthorized' do post :create - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(401) end end end diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb index 231f765008..512dd0c0d7 100644 --- a/spec/controllers/api/v1/favourites_controller_spec.rb +++ b/spec/controllers/api/v1/favourites_controller_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do context 'without token' do it 'returns http unauthorized' do get :index - expect(response).to have_http_status :unauthorized + expect(response).to have_http_status 401 end end @@ -24,7 +24,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do it 'returns http forbidden' do get :index - expect(response).to have_http_status :forbidden + expect(response).to have_http_status 403 end end @@ -38,7 +38,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do it 'returns http unprocessable entity' do get :index - expect(response).to have_http_status :unprocessable_entity + expect(response).to have_http_status 422 end end diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb index a1f6ddb244..ef1e439f9d 100644 --- a/spec/controllers/api/v1/media_controller_spec.rb +++ b/spec/controllers/api/v1/media_controller_spec.rb @@ -19,7 +19,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do end it 'returns http 422' do - expect(response).to have_http_status(:unprocessable_entity) + expect(response).to have_http_status(422) end end @@ -106,7 +106,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do it 'returns http not found' do put :update, params: { id: media.id, description: 'Lorem ipsum!!!' } - expect(response).to have_http_status(:not_found) + expect(response).to have_http_status(404) end end @@ -126,7 +126,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do let(:status) { Fabricate(:status, account: user.account) } it 'returns http not found' do - expect(response).to have_http_status(:not_found) + expect(response).to have_http_status(404) end end end diff --git a/spec/controllers/api/v1/timelines/home_controller_spec.rb b/spec/controllers/api/v1/timelines/home_controller_spec.rb index 131c2d92fa..bb46d0aba4 100644 --- a/spec/controllers/api/v1/timelines/home_controller_spec.rb +++ b/spec/controllers/api/v1/timelines/home_controller_spec.rb @@ -36,7 +36,7 @@ describe Api::V1::Timelines::HomeController do it 'returns http unprocessable entity' do get :show - expect(response).to have_http_status(:unprocessable_entity) + expect(response).to have_http_status(422) expect(response.headers['Link']).to be_nil end end diff --git a/spec/controllers/api/v1/timelines/list_controller_spec.rb b/spec/controllers/api/v1/timelines/list_controller_spec.rb index 526c66a058..4ef5d41af8 100644 --- a/spec/controllers/api/v1/timelines/list_controller_spec.rb +++ b/spec/controllers/api/v1/timelines/list_controller_spec.rb @@ -36,7 +36,7 @@ describe Api::V1::Timelines::ListController do describe 'GET #show' do it 'returns http not found' do get :show, params: { id: list.id } - expect(response).to have_http_status(:not_found) + expect(response).to have_http_status(404) end end end @@ -48,7 +48,7 @@ describe Api::V1::Timelines::ListController do it 'returns http unprocessable entity' do get :show, params: { id: list.id } - expect(response).to have_http_status(:unprocessable_entity) + expect(response).to have_http_status(422) expect(response.headers['Link']).to be_nil end end diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb index b3ef73915c..e03f5a3714 100644 --- a/spec/controllers/api/web/embeds_controller_spec.rb +++ b/spec/controllers/api/web/embeds_controller_spec.rb @@ -19,7 +19,7 @@ describe Api::Web::EmbedsController do let(:url) { "http://#{Rails.configuration.x.web_domain}/@#{status.account.username}/#{status.id}" } it 'returns a right response' do - expect(response).to have_http_status :ok + expect(response).to have_http_status 200 expect(body[:author_name]).to eq status.account.username end end @@ -37,7 +37,7 @@ describe Api::Web::EmbedsController do let(:call_result) { { result: :ok } } it 'returns a right response' do - expect(response).to have_http_status :ok + expect(response).to have_http_status 200 expect(body[:result]).to eq 'ok' end end @@ -46,7 +46,7 @@ describe Api::Web::EmbedsController do let(:call_result) { nil } it 'returns a right response' do - expect(response).to have_http_status :not_found + expect(response).to have_http_status 404 end end end diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index 7298bde003..52023eb2ef 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -245,7 +245,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end it 'returns http not found' do - expect(response).to have_http_status(:not_found) + expect(response).to have_http_status(404) end it 'does not delete user' do diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index eb03dff500..58befa124c 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -422,7 +422,7 @@ RSpec.describe Auth::SessionsController, type: :controller do it 'returns http success' do get :webauthn_options - expect(response).to have_http_status :ok + expect(response).to have_http_status 200 end end end diff --git a/spec/controllers/concerns/export_controller_concern_spec.rb b/spec/controllers/concerns/export_controller_concern_spec.rb index 1a5e46f8ef..003fd17f6f 100644 --- a/spec/controllers/concerns/export_controller_concern_spec.rb +++ b/spec/controllers/concerns/export_controller_concern_spec.rb @@ -29,7 +29,7 @@ describe ApplicationController, type: :controller do it 'returns unauthorized when not signed in' do get :index, format: :csv - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(401) end end end diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb index 157f9ec3c7..e060d37ac4 100644 --- a/spec/controllers/disputes/strikes_controller_spec.rb +++ b/spec/controllers/disputes/strikes_controller_spec.rb @@ -23,7 +23,7 @@ RSpec.describe Disputes::StrikesController, type: :controller do let(:strike) { Fabricate(:account_warning) } it 'returns http forbidden' do - expect(response).to have_http_status(:forbidden) + expect(response).to have_http_status(403) end end end diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 35ad4b2e7a..33d874d107 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -32,7 +32,7 @@ describe Settings::ApplicationsController do app.update!(owner: nil) get :show, params: { id: app.id } - expect(response.status).to eq 404 + expect(response).to have_http_status 404 end end diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb index 0e312c5a68..59c18889ec 100644 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ b/spec/controllers/settings/sessions_controller_spec.rb @@ -24,7 +24,7 @@ describe Settings::SessionsController do let(:id) { session_activation.id + 1000 } it 'destroys session activation' do - is_expected.to have_http_status :not_found + is_expected.to have_http_status 404 end end end diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb index e365b356e1..0fde8c6927 100644 --- a/spec/controllers/shares_controller_spec.rb +++ b/spec/controllers/shares_controller_spec.rb @@ -13,7 +13,7 @@ describe SharesController do before { get :show, params: { title: 'test title', text: 'test text', url: 'url1 url2' } } it 'returns http success' do - expect(response).to have_http_status :ok + expect(response).to have_http_status 200 expect(body_classes).to eq 'modal-layout compose-standalone' end end diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb index fb18965d85..dcfc1bf4bc 100644 --- a/spec/requests/catch_all_route_request_spec.rb +++ b/spec/requests/catch_all_route_request_spec.rb @@ -5,7 +5,7 @@ describe 'The catch all route' do it 'returns a 404 page as html' do get '/test' - expect(response.status).to eq 404 + expect(response).to have_http_status 404 expect(response.media_type).to eq 'text/html' end end @@ -14,7 +14,7 @@ describe 'The catch all route' do it 'returns a 404 page as html' do get '/test.test' - expect(response.status).to eq 404 + expect(response).to have_http_status 404 expect(response.media_type).to eq 'text/html' end end From 5179c47087e7807162f1466ec61a797586de007f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 21:17:41 -0500 Subject: [PATCH 0496/1220] Autofix Rubocops RSpec/ScatteredLet (#23725) --- .rubocop_todo.yml | 13 ------ .../admin/domain_blocks_controller_spec.rb | 9 ++-- .../v1/admin/domain_blocks_controller_spec.rb | 9 ++-- .../v1/push/subscriptions_controller_spec.rb | 14 +++--- spec/lib/activitypub/activity/create_spec.rb | 46 +++++++++---------- .../vacuum/media_attachments_vacuum_spec.rb | 5 +- .../process_status_update_service_spec.rb | 28 ++++++----- .../services/fan_out_on_write_service_spec.rb | 3 +- spec/services/import_service_spec.rb | 12 ++--- 9 files changed, 56 insertions(+), 83 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 521608de6a..308e0e69e2 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1629,19 +1629,6 @@ RSpec/RepeatedExampleGroupDescription: - 'spec/controllers/admin/reports/actions_controller_spec.rb' - 'spec/policies/report_note_policy_spec.rb' -# Offense count: 18 -# This cop supports safe autocorrection (--autocorrect). -RSpec/ScatteredLet: - Exclude: - - 'spec/controllers/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/fan_out_on_write_service_spec.rb' - - 'spec/services/import_service_spec.rb' - # Offense count: 12 RSpec/ScatteredSetup: Exclude: diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb index 92fc19efac..d58a0cafcd 100644 --- a/spec/controllers/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/domain_blocks_controller_spec.rb @@ -72,16 +72,15 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do describe 'PUT #update' do let!(:remote_account) { Fabricate(:account, domain: 'example.com') } - let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) } + let(:subject) do + post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } } + end + let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) } before do BlockDomainService.new.call(domain_block) end - let(:subject) do - post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } } - end - context 'downgrading a domain suspension to silence' do let(:original_severity) { 'suspend' } let(:new_severity) { 'silence' } diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb index 606def602f..b367ab9ce3 100644 --- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb @@ -73,16 +73,15 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do describe 'PUT #update' do let!(:remote_account) { Fabricate(:account, domain: 'example.com') } - let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) } + let(:subject) do + post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity } + end + let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) } before do BlockDomainService.new.call(domain_block) end - let(:subject) do - post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity } - end - context 'downgrading a domain suspension to silence' do let(:original_severity) { 'suspend' } let(:new_severity) { 'silence' } diff --git a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb index 67f09da2dc..1681914680 100644 --- a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb +++ b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb @@ -5,13 +5,7 @@ require 'rails_helper' describe Api::V1::Push::SubscriptionsController do render_views - let(:user) { Fabricate(:user) } - let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') } - - before do - allow(controller).to receive(:doorkeeper_token) { token } - end - + let(:user) { Fabricate(:user) } let(:create_payload) do { subscription: { @@ -23,7 +17,6 @@ describe Api::V1::Push::SubscriptionsController do }, }.with_indifferent_access end - let(:alerts_payload) do { data: { @@ -41,6 +34,11 @@ describe Api::V1::Push::SubscriptionsController do }, }.with_indifferent_access end + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end describe 'POST #create' do before do diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index 132e0c31cd..ddbdb07aa8 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -753,10 +753,6 @@ RSpec.describe ActivityPub::Activity::Create do context 'with an encrypted message' do let(:recipient) { Fabricate(:account) } - let(:target_device) { Fabricate(:device, account: recipient) } - - subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) } - let(:object_json) do { id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, @@ -778,6 +774,9 @@ RSpec.describe ActivityPub::Activity::Create do }, } end + let(:target_device) { Fabricate(:device, account: recipient) } + + subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) } before do subject.perform @@ -833,13 +832,6 @@ RSpec.describe ActivityPub::Activity::Create do context 'when sender replies to local status' do let!(:local_status) { Fabricate(:status) } - - subject { described_class.new(json, sender, delivery: true) } - - before do - subject.perform - end - let(:object_json) do { id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, @@ -849,6 +841,12 @@ RSpec.describe ActivityPub::Activity::Create do } end + subject { described_class.new(json, sender, delivery: true) } + + before do + subject.perform + end + it 'creates status' do status = sender.statuses.first @@ -859,13 +857,6 @@ RSpec.describe ActivityPub::Activity::Create do context 'when sender targets a local user' do let!(:local_account) { Fabricate(:account) } - - subject { described_class.new(json, sender, delivery: true) } - - before do - subject.perform - end - let(:object_json) do { id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, @@ -875,6 +866,12 @@ RSpec.describe ActivityPub::Activity::Create do } end + subject { described_class.new(json, sender, delivery: true) } + + before do + subject.perform + end + it 'creates status' do status = sender.statuses.first @@ -885,13 +882,6 @@ RSpec.describe ActivityPub::Activity::Create do context 'when sender cc\'s a local user' do let!(:local_account) { Fabricate(:account) } - - subject { described_class.new(json, sender, delivery: true) } - - before do - subject.perform - end - let(:object_json) do { id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, @@ -901,6 +891,12 @@ RSpec.describe ActivityPub::Activity::Create do } end + subject { described_class.new(json, sender, delivery: true) } + + before do + subject.perform + end + it 'creates status' do status = sender.statuses.first diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb index be8458d9bf..436237b25f 100644 --- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb +++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb @@ -2,12 +2,11 @@ require 'rails_helper' RSpec.describe Vacuum::MediaAttachmentsVacuum do let(:retention_period) { 7.days } - - subject { described_class.new(retention_period) } - let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) } let(:local_status) { Fabricate(:status) } + subject { described_class.new(retention_period) } + describe '#perform' do let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) } let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) } diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index ae7db88bf1..9a6d75ec04 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -6,20 +6,6 @@ end RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) } - - let(:alice) { Fabricate(:account) } - let(:bob) { Fabricate(:account) } - - let(:mentions) { [] } - let(:tags) { [] } - let(:media_attachments) { [] } - - before do - mentions.each { |a| Fabricate(:mention, status: status, account: a) } - tags.each { |t| status.tags << t } - media_attachments.each { |m| status.media_attachments << m } - end - let(:payload) do { '@context': 'https://www.w3.org/ns/activitystreams', @@ -34,9 +20,21 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do ], } end - let(:json) { Oj.load(Oj.dump(payload)) } + let(:alice) { Fabricate(:account) } + let(:bob) { Fabricate(:account) } + + let(:mentions) { [] } + let(:tags) { [] } + let(:media_attachments) { [] } + + before do + mentions.each { |a| Fabricate(:mention, status: status, account: a) } + tags.each { |t| status.tags << t } + media_attachments.each { |m| status.media_attachments << m } + end + subject { described_class.new } describe '#call' do diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb index 59e15d2301..3c294cf95b 100644 --- a/spec/services/fan_out_on_write_service_spec.rb +++ b/spec/services/fan_out_on_write_service_spec.rb @@ -2,6 +2,7 @@ require 'rails_helper' RSpec.describe FanOutOnWriteService, type: :service do let(:last_active_at) { Time.now.utc } + let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') } let!(:alice) { Fabricate(:user, current_sign_in_at: last_active_at).account } let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account } @@ -9,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do subject { described_class.new } - let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') } - before do bob.follow!(alice) tom.follow!(alice) diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 2b1516ff08..4a517fb933 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -183,15 +183,14 @@ RSpec.describe ImportService, type: :service do subject { ImportService.new } let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') } + let(:csv) { attachment_fixture('utf8-followers.txt') } + let(:import) { Import.create(account: account, type: 'following', data: csv) } # Make sure to not actually go to the remote server before do stub_request(:post, 'https://թութ.հայ/inbox').to_return(status: 200) end - let(:csv) { attachment_fixture('utf8-followers.txt') } - let(:import) { Import.create(account: account, type: 'following', data: csv) } - it 'follows the listed account' do expect(account.follow_requests.count).to eq 0 subject.call(import) @@ -203,6 +202,9 @@ RSpec.describe ImportService, type: :service do subject { ImportService.new } let(:csv) { attachment_fixture('bookmark-imports.txt') } + let(:local_account) { Fabricate(:account, username: 'foo', domain: '') } + let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') } + let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) } around(:each) do |example| local_before = Rails.configuration.x.local_domain @@ -214,10 +216,6 @@ RSpec.describe ImportService, type: :service do Rails.configuration.x.local_domain = local_before end - let(:local_account) { Fabricate(:account, username: 'foo', domain: '') } - let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') } - let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) } - before do service = double allow(ActivityPub::FetchRemoteStatusService).to receive(:new).and_return(service) From f0e1b12c101e0dd0ddaaef8bdcc166624dba62d5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 21:18:08 -0500 Subject: [PATCH 0497/1220] Autofix Rubocop Style/ExplicitBlockArgument (#23704) --- .rubocop_todo.yml | 6 ------ app/mailers/application_mailer.rb | 6 ++---- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 308e0e69e2..c452d1bd2c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2323,12 +2323,6 @@ Style/ConcatArrayLiterals: Style/Documentation: Enabled: false -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -Style/ExplicitBlockArgument: - Exclude: - - 'app/mailers/application_mailer.rb' - # Offense count: 10 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowedVars. diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index a37682eca6..73b623576c 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -9,9 +9,7 @@ class ApplicationMailer < ActionMailer::Base protected - def locale_for_account(account) - I18n.with_locale(account.user_locale || I18n.default_locale) do - yield - end + def locale_for_account(account, &block) + I18n.with_locale(account.user_locale || I18n.default_locale, &block) end end From 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Mon, 20 Feb 2023 03:20:59 +0100 Subject: [PATCH 0498/1220] Rename JSX files with proper `.jsx` extension (#23733) --- .eslintrc.js | 5 ++++- .github/workflows/lint-js.yml | 2 ++ .github/workflows/test-js.yml | 2 ++ ...st_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} | 0 .../{avatar-test.js.snap => avatar-test.jsx.snap} | 0 ...tar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} | 0 .../{button-test.js.snap => button-test.jsx.snap} | 0 ...{display_name-test.js.snap => display_name-test.jsx.snap} | 0 ...{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} | 0 .../components/__tests__/{avatar-test.js => avatar-test.jsx} | 0 .../{avatar_overlay-test.js => avatar_overlay-test.jsx} | 0 .../components/__tests__/{button-test.js => button-test.jsx} | 0 .../{display_name-test.js => display_name-test.jsx} | 0 .../mastodon/components/{account.js => account.jsx} | 0 .../mastodon/components/admin/{Counter.js => Counter.jsx} | 0 .../components/admin/{Dimension.js => Dimension.jsx} | 0 .../{ReportReasonSelector.js => ReportReasonSelector.jsx} | 0 .../components/admin/{Retention.js => Retention.jsx} | 0 .../mastodon/components/admin/{Trends.js => Trends.jsx} | 0 .../components/{animated_number.js => animated_number.jsx} | 0 .../components/{attachment_list.js => attachment_list.jsx} | 0 .../{autosuggest_emoji.js => autosuggest_emoji.jsx} | 0 .../{autosuggest_hashtag.js => autosuggest_hashtag.jsx} | 0 .../{autosuggest_input.js => autosuggest_input.jsx} | 0 .../{autosuggest_textarea.js => autosuggest_textarea.jsx} | 0 app/javascript/mastodon/components/{avatar.js => avatar.jsx} | 0 .../components/{avatar_composite.js => avatar_composite.jsx} | 0 .../components/{avatar_overlay.js => avatar_overlay.jsx} | 0 .../mastodon/components/{blurhash.js => blurhash.jsx} | 0 app/javascript/mastodon/components/{button.js => button.jsx} | 0 app/javascript/mastodon/components/{check.js => check.jsx} | 0 app/javascript/mastodon/components/{column.js => column.jsx} | 0 .../{column_back_button.js => column_back_button.jsx} | 0 ...olumn_back_button_slim.js => column_back_button_slim.jsx} | 0 .../components/{column_header.js => column_header.jsx} | 0 .../components/{common_counter.js => common_counter.jsx} | 0 .../{dismissable_banner.js => dismissable_banner.jsx} | 0 .../components/{display_name.js => display_name.jsx} | 0 app/javascript/mastodon/components/{domain.js => domain.jsx} | 0 .../components/{dropdown_menu.js => dropdown_menu.jsx} | 0 .../components/edited_timestamp/{index.js => index.jsx} | 0 .../components/{error_boundary.js => error_boundary.jsx} | 0 app/javascript/mastodon/components/{gifv.js => gifv.jsx} | 0 .../mastodon/components/{hashtag.js => hashtag.jsx} | 0 app/javascript/mastodon/components/{icon.js => icon.jsx} | 0 .../mastodon/components/{icon_button.js => icon_button.jsx} | 0 .../components/{icon_with_badge.js => icon_with_badge.jsx} | 0 app/javascript/mastodon/components/{image.js => image.jsx} | 0 .../components/{inline_account.js => inline_account.jsx} | 0 ...observer_article.js => intersection_observer_article.jsx} | 0 .../mastodon/components/{load_gap.js => load_gap.jsx} | 0 .../mastodon/components/{load_more.js => load_more.jsx} | 0 .../components/{load_pending.js => load_pending.jsx} | 0 .../{loading_indicator.js => loading_indicator.jsx} | 0 app/javascript/mastodon/components/{logo.js => logo.jsx} | 0 .../{media_attachments.js => media_attachments.jsx} | 0 .../components/{media_gallery.js => media_gallery.jsx} | 0 .../{missing_indicator.js => missing_indicator.jsx} | 0 .../mastodon/components/{modal_root.js => modal_root.jsx} | 0 .../{navigation_portal.js => navigation_portal.jsx} | 0 ...ot_signed_in_indicator.js => not_signed_in_indicator.jsx} | 0 ...ure_placeholder.js => picture_in_picture_placeholder.jsx} | 0 app/javascript/mastodon/components/{poll.js => poll.jsx} | 0 .../components/{radio_button.js => radio_button.jsx} | 0 ...{regeneration_indicator.js => regeneration_indicator.jsx} | 0 .../{relative_timestamp.js => relative_timestamp.jsx} | 0 .../components/{scrollable_list.js => scrollable_list.jsx} | 0 .../components/{server_banner.js => server_banner.jsx} | 0 .../components/{short_number.js => short_number.jsx} | 0 .../mastodon/components/{skeleton.js => skeleton.jsx} | 0 app/javascript/mastodon/components/{status.js => status.jsx} | 0 .../{status_action_bar.js => status_action_bar.jsx} | 0 .../components/{status_content.js => status_content.jsx} | 0 .../mastodon/components/{status_list.js => status_list.jsx} | 0 .../components/{timeline_hint.js => timeline_hint.jsx} | 0 .../{account_container.js => account_container.jsx} | 0 .../containers/{admin_component.js => admin_component.jsx} | 0 .../{compose_container.js => compose_container.jsx} | 0 .../containers/{domain_container.js => domain_container.jsx} | 0 .../mastodon/containers/{mastodon.js => mastodon.jsx} | 0 .../containers/{media_container.js => media_container.jsx} | 0 .../containers/{status_container.js => status_container.jsx} | 0 .../mastodon/features/about/{index.js => index.jsx} | 0 .../account/components/{account_note.js => account_note.jsx} | 0 .../components/{featured_tags.js => featured_tags.jsx} | 0 .../{follow_request_note.js => follow_request_note.jsx} | 0 .../features/account/components/{header.js => header.jsx} | 0 .../features/account/{navigation.js => navigation.jsx} | 0 .../components/{media_item.js => media_item.jsx} | 0 .../features/account_gallery/{index.js => index.jsx} | 0 .../account_timeline/components/{header.js => header.jsx} | 0 .../{limited_account_hint.js => limited_account_hint.jsx} | 0 .../components/{moved_note.js => moved_note.jsx} | 0 .../containers/{header_container.js => header_container.jsx} | 0 .../features/account_timeline/{index.js => index.jsx} | 0 .../mastodon/features/audio/{index.js => index.jsx} | 0 .../mastodon/features/blocks/{index.js => index.jsx} | 0 .../features/bookmarked_statuses/{index.js => index.jsx} | 0 .../closed_registrations_modal/{index.js => index.jsx} | 0 .../components/{column_settings.js => column_settings.jsx} | 0 .../features/community_timeline/{index.js => index.jsx} | 0 .../compose/components/{action_bar.js => action_bar.jsx} | 0 .../{autosuggest_account.js => autosuggest_account.jsx} | 0 .../{character_counter.js => character_counter.jsx} | 0 .../compose/components/{compose_form.js => compose_form.jsx} | 0 .../{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} | 0 .../{language_dropdown.js => language_dropdown.jsx} | 0 .../components/{navigation_bar.js => navigation_bar.jsx} | 0 .../compose/components/{poll_button.js => poll_button.jsx} | 0 .../compose/components/{poll_form.js => poll_form.jsx} | 0 .../components/{privacy_dropdown.js => privacy_dropdown.jsx} | 0 .../components/{reply_indicator.js => reply_indicator.jsx} | 0 .../features/compose/components/{search.js => search.jsx} | 0 .../components/{search_results.js => search_results.jsx} | 0 .../components/{text_icon_button.js => text_icon_button.jsx} | 0 .../features/compose/components/{upload.js => upload.jsx} | 0 .../components/{upload_button.js => upload_button.jsx} | 0 .../compose/components/{upload_form.js => upload_form.jsx} | 0 .../components/{upload_progress.js => upload_progress.jsx} | 0 .../features/compose/components/{warning.js => warning.jsx} | 0 ...ve_button_container.js => sensitive_button_container.jsx} | 0 .../{warning_container.js => warning_container.jsx} | 0 .../mastodon/features/compose/{index.js => index.jsx} | 0 .../components/{conversation.js => conversation.jsx} | 0 .../{conversations_list.js => conversations_list.jsx} | 0 .../features/direct_timeline/{index.js => index.jsx} | 0 .../components/{account_card.js => account_card.jsx} | 0 .../mastodon/features/directory/{index.js => index.jsx} | 0 .../mastodon/features/domain_blocks/{index.js => index.jsx} | 0 .../features/explore/components/{story.js => story.jsx} | 0 .../mastodon/features/explore/{index.js => index.jsx} | 0 .../mastodon/features/explore/{links.js => links.jsx} | 0 .../mastodon/features/explore/{results.js => results.jsx} | 0 .../mastodon/features/explore/{statuses.js => statuses.jsx} | 0 .../features/explore/{suggestions.js => suggestions.jsx} | 0 .../mastodon/features/explore/{tags.js => tags.jsx} | 0 .../features/favourited_statuses/{index.js => index.jsx} | 0 .../mastodon/features/favourites/{index.js => index.jsx} | 0 .../filters/{added_to_filter.js => added_to_filter.jsx} | 0 .../features/filters/{select_filter.js => select_filter.jsx} | 0 .../components/{account.js => account.jsx} | 0 .../features/follow_recommendations/{index.js => index.jsx} | 0 .../{account_authorize.js => account_authorize.jsx} | 0 .../features/follow_requests/{index.js => index.jsx} | 0 .../mastodon/features/followed_tags/{index.js => index.jsx} | 0 .../mastodon/features/followers/{index.js => index.jsx} | 0 .../mastodon/features/following/{index.js => index.jsx} | 0 .../features/generic_not_found/{index.js => index.jsx} | 0 .../components/{announcements.js => announcements.jsx} | 0 .../getting_started/components/{trends.js => trends.jsx} | 0 .../features/getting_started/{index.js => index.jsx} | 0 .../components/{column_settings.js => column_settings.jsx} | 0 .../features/hashtag_timeline/{index.js => index.jsx} | 0 .../components/{column_settings.js => column_settings.jsx} | 0 .../mastodon/features/home_timeline/{index.js => index.jsx} | 0 .../features/interaction_modal/{index.js => index.jsx} | 0 .../features/keyboard_shortcuts/{index.js => index.jsx} | 0 .../list_adder/components/{account.js => account.jsx} | 0 .../features/list_adder/components/{list.js => list.jsx} | 0 .../mastodon/features/list_adder/{index.js => index.jsx} | 0 .../list_editor/components/{account.js => account.jsx} | 0 .../components/{edit_list_form.js => edit_list_form.jsx} | 0 .../list_editor/components/{search.js => search.jsx} | 0 .../mastodon/features/list_editor/{index.js => index.jsx} | 0 .../mastodon/features/list_timeline/{index.js => index.jsx} | 0 .../lists/components/{new_list_form.js => new_list_form.jsx} | 0 .../mastodon/features/lists/{index.js => index.jsx} | 0 .../mastodon/features/mutes/{index.js => index.jsx} | 0 .../{clear_column_button.js => clear_column_button.jsx} | 0 .../components/{column_settings.js => column_settings.jsx} | 0 .../components/{filter_bar.js => filter_bar.jsx} | 0 .../components/{follow_request.js => follow_request.jsx} | 0 ...rant_permission_button.js => grant_permission_button.jsx} | 0 .../components/{notification.js => notification.jsx} | 0 ...mission_banner.js => notifications_permission_banner.jsx} | 0 .../notifications/components/{report.js => report.jsx} | 0 .../components/{setting_toggle.js => setting_toggle.jsx} | 0 .../mastodon/features/notifications/{index.js => index.jsx} | 0 .../picture_in_picture/components/{footer.js => footer.jsx} | 0 .../picture_in_picture/components/{header.js => header.jsx} | 0 .../features/picture_in_picture/{index.js => index.jsx} | 0 .../features/pinned_statuses/{index.js => index.jsx} | 0 .../mastodon/features/privacy_policy/{index.js => index.jsx} | 0 .../components/{column_settings.js => column_settings.jsx} | 0 .../features/public_timeline/{index.js => index.jsx} | 0 .../mastodon/features/reblogs/{index.js => index.jsx} | 0 .../mastodon/features/report/{category.js => category.jsx} | 0 .../mastodon/features/report/{comment.js => comment.jsx} | 0 .../features/report/components/{option.js => option.jsx} | 0 .../components/{status_check_box.js => status_check_box.jsx} | 0 .../mastodon/features/report/{rules.js => rules.jsx} | 0 .../mastodon/features/report/{statuses.js => statuses.jsx} | 0 .../mastodon/features/report/{thanks.js => thanks.jsx} | 0 .../features/standalone/compose/{index.js => index.jsx} | 0 .../status/components/{action_bar.js => action_bar.jsx} | 0 .../features/status/components/{card.js => card.jsx} | 0 .../components/{detailed_status.js => detailed_status.jsx} | 0 .../mastodon/features/status/{index.js => index.jsx} | 0 .../subscribed_languages_modal/{index.js => index.jsx} | 0 .../components/__tests__/{column-test.js => column-test.jsx} | 0 .../ui/components/{actions_modal.js => actions_modal.jsx} | 0 .../ui/components/{audio_modal.js => audio_modal.jsx} | 0 .../ui/components/{block_modal.js => block_modal.jsx} | 0 .../ui/components/{boost_modal.js => boost_modal.jsx} | 0 .../features/ui/components/{bundle.js => bundle.jsx} | 0 .../{bundle_column_error.js => bundle_column_error.jsx} | 0 .../{bundle_modal_error.js => bundle_modal_error.jsx} | 0 .../features/ui/components/{column.js => column.jsx} | 0 .../ui/components/{column_header.js => column_header.jsx} | 0 .../ui/components/{column_link.js => column_link.jsx} | 0 .../ui/components/{column_loading.js => column_loading.jsx} | 0 .../{column_subheading.js => column_subheading.jsx} | 0 .../ui/components/{columns_area.js => columns_area.jsx} | 0 .../{compare_history_modal.js => compare_history_modal.jsx} | 0 .../ui/components/{compose_panel.js => compose_panel.jsx} | 0 .../{confirmation_modal.js => confirmation_modal.jsx} | 0 ...isabled_account_banner.js => disabled_account_banner.jsx} | 0 .../ui/components/{drawer_loading.js => drawer_loading.jsx} | 0 .../ui/components/{embed_modal.js => embed_modal.jsx} | 0 .../ui/components/{filter_modal.js => filter_modal.jsx} | 0 .../{focal_point_modal.js => focal_point_modal.jsx} | 0 ...quests_column_link.js => follow_requests_column_link.jsx} | 0 .../features/ui/components/{header.js => header.jsx} | 0 .../ui/components/{image_loader.js => image_loader.jsx} | 0 .../ui/components/{image_modal.js => image_modal.jsx} | 0 .../ui/components/{link_footer.js => link_footer.jsx} | 0 .../features/ui/components/{list_panel.js => list_panel.jsx} | 0 .../ui/components/{media_modal.js => media_modal.jsx} | 0 .../ui/components/{modal_loading.js => modal_loading.jsx} | 0 .../features/ui/components/{modal_root.js => modal_root.jsx} | 0 .../features/ui/components/{mute_modal.js => mute_modal.jsx} | 0 .../components/{navigation_panel.js => navigation_panel.jsx} | 0 .../ui/components/{report_modal.js => report_modal.jsx} | 0 .../ui/components/{sign_in_banner.js => sign_in_banner.jsx} | 0 .../ui/components/{upload_area.js => upload_area.jsx} | 0 .../ui/components/{video_modal.js => video_modal.jsx} | 0 .../ui/components/{zoomable_image.js => zoomable_image.jsx} | 0 app/javascript/mastodon/features/ui/{index.js => index.jsx} | 0 .../{react_router_helpers.js => react_router_helpers.jsx} | 0 .../ui/util/{reduced_motion.js => reduced_motion.jsx} | 0 .../mastodon/features/video/{index.js => index.jsx} | 0 app/javascript/mastodon/{main.js => main.jsx} | 0 app/javascript/mastodon/utils/{icons.js => icons.jsx} | 0 app/javascript/packs/{admin.js => admin.jsx} | 0 app/javascript/packs/{public.js => public.jsx} | 0 app/javascript/packs/{share.js => share.jsx} | 0 config/webpacker.yml | 1 + package.json | 2 +- 248 files changed, 10 insertions(+), 2 deletions(-) rename app/javascript/mastodon/components/__tests__/__snapshots__/{autosuggest_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} (100%) rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar-test.js.snap => avatar-test.jsx.snap} (100%) rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} (100%) rename app/javascript/mastodon/components/__tests__/__snapshots__/{button-test.js.snap => button-test.jsx.snap} (100%) rename app/javascript/mastodon/components/__tests__/__snapshots__/{display_name-test.js.snap => display_name-test.jsx.snap} (100%) rename app/javascript/mastodon/components/__tests__/{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} (100%) rename app/javascript/mastodon/components/__tests__/{avatar-test.js => avatar-test.jsx} (100%) rename app/javascript/mastodon/components/__tests__/{avatar_overlay-test.js => avatar_overlay-test.jsx} (100%) rename app/javascript/mastodon/components/__tests__/{button-test.js => button-test.jsx} (100%) rename app/javascript/mastodon/components/__tests__/{display_name-test.js => display_name-test.jsx} (100%) rename app/javascript/mastodon/components/{account.js => account.jsx} (100%) rename app/javascript/mastodon/components/admin/{Counter.js => Counter.jsx} (100%) rename app/javascript/mastodon/components/admin/{Dimension.js => Dimension.jsx} (100%) rename app/javascript/mastodon/components/admin/{ReportReasonSelector.js => ReportReasonSelector.jsx} (100%) rename app/javascript/mastodon/components/admin/{Retention.js => Retention.jsx} (100%) rename app/javascript/mastodon/components/admin/{Trends.js => Trends.jsx} (100%) rename app/javascript/mastodon/components/{animated_number.js => animated_number.jsx} (100%) rename app/javascript/mastodon/components/{attachment_list.js => attachment_list.jsx} (100%) rename app/javascript/mastodon/components/{autosuggest_emoji.js => autosuggest_emoji.jsx} (100%) rename app/javascript/mastodon/components/{autosuggest_hashtag.js => autosuggest_hashtag.jsx} (100%) rename app/javascript/mastodon/components/{autosuggest_input.js => autosuggest_input.jsx} (100%) rename app/javascript/mastodon/components/{autosuggest_textarea.js => autosuggest_textarea.jsx} (100%) rename app/javascript/mastodon/components/{avatar.js => avatar.jsx} (100%) rename app/javascript/mastodon/components/{avatar_composite.js => avatar_composite.jsx} (100%) rename app/javascript/mastodon/components/{avatar_overlay.js => avatar_overlay.jsx} (100%) rename app/javascript/mastodon/components/{blurhash.js => blurhash.jsx} (100%) rename app/javascript/mastodon/components/{button.js => button.jsx} (100%) rename app/javascript/mastodon/components/{check.js => check.jsx} (100%) rename app/javascript/mastodon/components/{column.js => column.jsx} (100%) rename app/javascript/mastodon/components/{column_back_button.js => column_back_button.jsx} (100%) rename app/javascript/mastodon/components/{column_back_button_slim.js => column_back_button_slim.jsx} (100%) rename app/javascript/mastodon/components/{column_header.js => column_header.jsx} (100%) rename app/javascript/mastodon/components/{common_counter.js => common_counter.jsx} (100%) rename app/javascript/mastodon/components/{dismissable_banner.js => dismissable_banner.jsx} (100%) rename app/javascript/mastodon/components/{display_name.js => display_name.jsx} (100%) rename app/javascript/mastodon/components/{domain.js => domain.jsx} (100%) rename app/javascript/mastodon/components/{dropdown_menu.js => dropdown_menu.jsx} (100%) rename app/javascript/mastodon/components/edited_timestamp/{index.js => index.jsx} (100%) rename app/javascript/mastodon/components/{error_boundary.js => error_boundary.jsx} (100%) rename app/javascript/mastodon/components/{gifv.js => gifv.jsx} (100%) rename app/javascript/mastodon/components/{hashtag.js => hashtag.jsx} (100%) rename app/javascript/mastodon/components/{icon.js => icon.jsx} (100%) rename app/javascript/mastodon/components/{icon_button.js => icon_button.jsx} (100%) rename app/javascript/mastodon/components/{icon_with_badge.js => icon_with_badge.jsx} (100%) rename app/javascript/mastodon/components/{image.js => image.jsx} (100%) rename app/javascript/mastodon/components/{inline_account.js => inline_account.jsx} (100%) rename app/javascript/mastodon/components/{intersection_observer_article.js => intersection_observer_article.jsx} (100%) rename app/javascript/mastodon/components/{load_gap.js => load_gap.jsx} (100%) rename app/javascript/mastodon/components/{load_more.js => load_more.jsx} (100%) rename app/javascript/mastodon/components/{load_pending.js => load_pending.jsx} (100%) rename app/javascript/mastodon/components/{loading_indicator.js => loading_indicator.jsx} (100%) rename app/javascript/mastodon/components/{logo.js => logo.jsx} (100%) rename app/javascript/mastodon/components/{media_attachments.js => media_attachments.jsx} (100%) rename app/javascript/mastodon/components/{media_gallery.js => media_gallery.jsx} (100%) rename app/javascript/mastodon/components/{missing_indicator.js => missing_indicator.jsx} (100%) rename app/javascript/mastodon/components/{modal_root.js => modal_root.jsx} (100%) rename app/javascript/mastodon/components/{navigation_portal.js => navigation_portal.jsx} (100%) rename app/javascript/mastodon/components/{not_signed_in_indicator.js => not_signed_in_indicator.jsx} (100%) rename app/javascript/mastodon/components/{picture_in_picture_placeholder.js => picture_in_picture_placeholder.jsx} (100%) rename app/javascript/mastodon/components/{poll.js => poll.jsx} (100%) rename app/javascript/mastodon/components/{radio_button.js => radio_button.jsx} (100%) rename app/javascript/mastodon/components/{regeneration_indicator.js => regeneration_indicator.jsx} (100%) rename app/javascript/mastodon/components/{relative_timestamp.js => relative_timestamp.jsx} (100%) rename app/javascript/mastodon/components/{scrollable_list.js => scrollable_list.jsx} (100%) rename app/javascript/mastodon/components/{server_banner.js => server_banner.jsx} (100%) rename app/javascript/mastodon/components/{short_number.js => short_number.jsx} (100%) rename app/javascript/mastodon/components/{skeleton.js => skeleton.jsx} (100%) rename app/javascript/mastodon/components/{status.js => status.jsx} (100%) rename app/javascript/mastodon/components/{status_action_bar.js => status_action_bar.jsx} (100%) rename app/javascript/mastodon/components/{status_content.js => status_content.jsx} (100%) rename app/javascript/mastodon/components/{status_list.js => status_list.jsx} (100%) rename app/javascript/mastodon/components/{timeline_hint.js => timeline_hint.jsx} (100%) rename app/javascript/mastodon/containers/{account_container.js => account_container.jsx} (100%) rename app/javascript/mastodon/containers/{admin_component.js => admin_component.jsx} (100%) rename app/javascript/mastodon/containers/{compose_container.js => compose_container.jsx} (100%) rename app/javascript/mastodon/containers/{domain_container.js => domain_container.jsx} (100%) rename app/javascript/mastodon/containers/{mastodon.js => mastodon.jsx} (100%) rename app/javascript/mastodon/containers/{media_container.js => media_container.jsx} (100%) rename app/javascript/mastodon/containers/{status_container.js => status_container.jsx} (100%) rename app/javascript/mastodon/features/about/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/account/components/{account_note.js => account_note.jsx} (100%) rename app/javascript/mastodon/features/account/components/{featured_tags.js => featured_tags.jsx} (100%) rename app/javascript/mastodon/features/account/components/{follow_request_note.js => follow_request_note.jsx} (100%) rename app/javascript/mastodon/features/account/components/{header.js => header.jsx} (100%) rename app/javascript/mastodon/features/account/{navigation.js => navigation.jsx} (100%) rename app/javascript/mastodon/features/account_gallery/components/{media_item.js => media_item.jsx} (100%) rename app/javascript/mastodon/features/account_gallery/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/account_timeline/components/{header.js => header.jsx} (100%) rename app/javascript/mastodon/features/account_timeline/components/{limited_account_hint.js => limited_account_hint.jsx} (100%) rename app/javascript/mastodon/features/account_timeline/components/{moved_note.js => moved_note.jsx} (100%) rename app/javascript/mastodon/features/account_timeline/containers/{header_container.js => header_container.jsx} (100%) rename app/javascript/mastodon/features/account_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/audio/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/blocks/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/bookmarked_statuses/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/closed_registrations_modal/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/community_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/mastodon/features/community_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{action_bar.js => action_bar.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{autosuggest_account.js => autosuggest_account.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{character_counter.js => character_counter.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{compose_form.js => compose_form.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{language_dropdown.js => language_dropdown.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{navigation_bar.js => navigation_bar.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{poll_button.js => poll_button.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{poll_form.js => poll_form.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{privacy_dropdown.js => privacy_dropdown.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{reply_indicator.js => reply_indicator.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{search.js => search.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{search_results.js => search_results.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{text_icon_button.js => text_icon_button.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{upload.js => upload.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{upload_button.js => upload_button.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{upload_form.js => upload_form.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{upload_progress.js => upload_progress.jsx} (100%) rename app/javascript/mastodon/features/compose/components/{warning.js => warning.jsx} (100%) rename app/javascript/mastodon/features/compose/containers/{sensitive_button_container.js => sensitive_button_container.jsx} (100%) rename app/javascript/mastodon/features/compose/containers/{warning_container.js => warning_container.jsx} (100%) rename app/javascript/mastodon/features/compose/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/direct_timeline/components/{conversation.js => conversation.jsx} (100%) rename app/javascript/mastodon/features/direct_timeline/components/{conversations_list.js => conversations_list.jsx} (100%) rename app/javascript/mastodon/features/direct_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/directory/components/{account_card.js => account_card.jsx} (100%) rename app/javascript/mastodon/features/directory/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/domain_blocks/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/explore/components/{story.js => story.jsx} (100%) rename app/javascript/mastodon/features/explore/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/explore/{links.js => links.jsx} (100%) rename app/javascript/mastodon/features/explore/{results.js => results.jsx} (100%) rename app/javascript/mastodon/features/explore/{statuses.js => statuses.jsx} (100%) rename app/javascript/mastodon/features/explore/{suggestions.js => suggestions.jsx} (100%) rename app/javascript/mastodon/features/explore/{tags.js => tags.jsx} (100%) rename app/javascript/mastodon/features/favourited_statuses/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/favourites/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/filters/{added_to_filter.js => added_to_filter.jsx} (100%) rename app/javascript/mastodon/features/filters/{select_filter.js => select_filter.jsx} (100%) rename app/javascript/mastodon/features/follow_recommendations/components/{account.js => account.jsx} (100%) rename app/javascript/mastodon/features/follow_recommendations/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/follow_requests/components/{account_authorize.js => account_authorize.jsx} (100%) rename app/javascript/mastodon/features/follow_requests/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/followed_tags/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/followers/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/following/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/generic_not_found/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/getting_started/components/{announcements.js => announcements.jsx} (100%) rename app/javascript/mastodon/features/getting_started/components/{trends.js => trends.jsx} (100%) rename app/javascript/mastodon/features/getting_started/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/hashtag_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/mastodon/features/hashtag_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/home_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/mastodon/features/home_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/interaction_modal/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/keyboard_shortcuts/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/list_adder/components/{account.js => account.jsx} (100%) rename app/javascript/mastodon/features/list_adder/components/{list.js => list.jsx} (100%) rename app/javascript/mastodon/features/list_adder/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/list_editor/components/{account.js => account.jsx} (100%) rename app/javascript/mastodon/features/list_editor/components/{edit_list_form.js => edit_list_form.jsx} (100%) rename app/javascript/mastodon/features/list_editor/components/{search.js => search.jsx} (100%) rename app/javascript/mastodon/features/list_editor/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/list_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/lists/components/{new_list_form.js => new_list_form.jsx} (100%) rename app/javascript/mastodon/features/lists/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/mutes/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{clear_column_button.js => clear_column_button.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{filter_bar.js => filter_bar.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{follow_request.js => follow_request.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{grant_permission_button.js => grant_permission_button.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{notification.js => notification.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{notifications_permission_banner.js => notifications_permission_banner.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{report.js => report.jsx} (100%) rename app/javascript/mastodon/features/notifications/components/{setting_toggle.js => setting_toggle.jsx} (100%) rename app/javascript/mastodon/features/notifications/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/picture_in_picture/components/{footer.js => footer.jsx} (100%) rename app/javascript/mastodon/features/picture_in_picture/components/{header.js => header.jsx} (100%) rename app/javascript/mastodon/features/picture_in_picture/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/pinned_statuses/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/privacy_policy/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/public_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/mastodon/features/public_timeline/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/reblogs/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/report/{category.js => category.jsx} (100%) rename app/javascript/mastodon/features/report/{comment.js => comment.jsx} (100%) rename app/javascript/mastodon/features/report/components/{option.js => option.jsx} (100%) rename app/javascript/mastodon/features/report/components/{status_check_box.js => status_check_box.jsx} (100%) rename app/javascript/mastodon/features/report/{rules.js => rules.jsx} (100%) rename app/javascript/mastodon/features/report/{statuses.js => statuses.jsx} (100%) rename app/javascript/mastodon/features/report/{thanks.js => thanks.jsx} (100%) rename app/javascript/mastodon/features/standalone/compose/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/status/components/{action_bar.js => action_bar.jsx} (100%) rename app/javascript/mastodon/features/status/components/{card.js => card.jsx} (100%) rename app/javascript/mastodon/features/status/components/{detailed_status.js => detailed_status.jsx} (100%) rename app/javascript/mastodon/features/status/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/subscribed_languages_modal/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/ui/components/__tests__/{column-test.js => column-test.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{actions_modal.js => actions_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{audio_modal.js => audio_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{block_modal.js => block_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{boost_modal.js => boost_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{bundle.js => bundle.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{bundle_column_error.js => bundle_column_error.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{bundle_modal_error.js => bundle_modal_error.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{column.js => column.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{column_header.js => column_header.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{column_link.js => column_link.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{column_loading.js => column_loading.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{column_subheading.js => column_subheading.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{columns_area.js => columns_area.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{compare_history_modal.js => compare_history_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{compose_panel.js => compose_panel.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{confirmation_modal.js => confirmation_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{disabled_account_banner.js => disabled_account_banner.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{drawer_loading.js => drawer_loading.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{embed_modal.js => embed_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{filter_modal.js => filter_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{focal_point_modal.js => focal_point_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{follow_requests_column_link.js => follow_requests_column_link.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{header.js => header.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{image_loader.js => image_loader.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{image_modal.js => image_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{link_footer.js => link_footer.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{list_panel.js => list_panel.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{media_modal.js => media_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{modal_loading.js => modal_loading.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{modal_root.js => modal_root.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{mute_modal.js => mute_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{navigation_panel.js => navigation_panel.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{report_modal.js => report_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{sign_in_banner.js => sign_in_banner.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{upload_area.js => upload_area.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{video_modal.js => video_modal.jsx} (100%) rename app/javascript/mastodon/features/ui/components/{zoomable_image.js => zoomable_image.jsx} (100%) rename app/javascript/mastodon/features/ui/{index.js => index.jsx} (100%) rename app/javascript/mastodon/features/ui/util/{react_router_helpers.js => react_router_helpers.jsx} (100%) rename app/javascript/mastodon/features/ui/util/{reduced_motion.js => reduced_motion.jsx} (100%) rename app/javascript/mastodon/features/video/{index.js => index.jsx} (100%) rename app/javascript/mastodon/{main.js => main.jsx} (100%) rename app/javascript/mastodon/utils/{icons.js => icons.jsx} (100%) rename app/javascript/packs/{admin.js => admin.jsx} (100%) rename app/javascript/packs/{public.js => public.jsx} (100%) rename app/javascript/packs/{share.js => share.jsx} (100%) diff --git a/.eslintrc.js b/.eslintrc.js index b5ab511f8b..606a87e415 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -43,7 +43,7 @@ module.exports = { version: 'detect', }, 'import/extensions': [ - '.js', + '.js', '.jsx', ], 'import/ignore': [ 'node_modules', @@ -52,6 +52,7 @@ module.exports = { 'import/resolver': { node: { paths: ['app/javascript'], + extensions: ['.js', '.jsx'], }, }, }, @@ -111,6 +112,7 @@ module.exports = { semi: 'error', 'valid-typeof': 'error', + 'react/jsx-filename-extension': ['error', { 'allow': 'as-needed' }], 'react/jsx-boolean-value': 'error', 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], 'react/jsx-curly-spacing': 'error', @@ -185,6 +187,7 @@ module.exports = { 'always', { js: 'never', + jsx: 'never', }, ], 'import/newline-after-import': 'error', diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml index 3e0d9d1a92..44929f63db 100644 --- a/.github/workflows/lint-js.yml +++ b/.github/workflows/lint-js.yml @@ -10,6 +10,7 @@ on: - '.prettier*' - '.eslint*' - '**/*.js' + - '**/*.jsx' - '.github/workflows/lint-js.yml' pull_request: @@ -20,6 +21,7 @@ on: - '.prettier*' - '.eslint*' - '**/*.js' + - '**/*.jsx' - '.github/workflows/lint-js.yml' jobs: diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml index 60b8e318ef..6a1cacb3f0 100644 --- a/.github/workflows/test-js.yml +++ b/.github/workflows/test-js.yml @@ -8,6 +8,7 @@ on: - 'yarn.lock' - '.nvmrc' - '**/*.js' + - '**/*.jsx' - '**/*.snap' - '.github/workflows/test-js.yml' @@ -17,6 +18,7 @@ on: - 'yarn.lock' - '.nvmrc' - '**/*.js' + - '**/*.jsx' - '**/*.snap' - '.github/workflows/test-js.yml' diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js b/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js rename to app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.js b/app/javascript/mastodon/components/__tests__/avatar-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/avatar-test.js rename to app/javascript/mastodon/components/__tests__/avatar-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/avatar_overlay-test.js b/app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/avatar_overlay-test.js rename to app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/button-test.js b/app/javascript/mastodon/components/__tests__/button-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/button-test.js rename to app/javascript/mastodon/components/__tests__/button-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/display_name-test.js rename to app/javascript/mastodon/components/__tests__/display_name-test.jsx diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.jsx similarity index 100% rename from app/javascript/mastodon/components/account.js rename to app/javascript/mastodon/components/account.jsx diff --git a/app/javascript/mastodon/components/admin/Counter.js b/app/javascript/mastodon/components/admin/Counter.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Counter.js rename to app/javascript/mastodon/components/admin/Counter.jsx diff --git a/app/javascript/mastodon/components/admin/Dimension.js b/app/javascript/mastodon/components/admin/Dimension.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Dimension.js rename to app/javascript/mastodon/components/admin/Dimension.jsx diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.js b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/ReportReasonSelector.js rename to app/javascript/mastodon/components/admin/ReportReasonSelector.jsx diff --git a/app/javascript/mastodon/components/admin/Retention.js b/app/javascript/mastodon/components/admin/Retention.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Retention.js rename to app/javascript/mastodon/components/admin/Retention.jsx diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Trends.js rename to app/javascript/mastodon/components/admin/Trends.jsx diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.jsx similarity index 100% rename from app/javascript/mastodon/components/animated_number.js rename to app/javascript/mastodon/components/animated_number.jsx diff --git a/app/javascript/mastodon/components/attachment_list.js b/app/javascript/mastodon/components/attachment_list.jsx similarity index 100% rename from app/javascript/mastodon/components/attachment_list.js rename to app/javascript/mastodon/components/attachment_list.jsx diff --git a/app/javascript/mastodon/components/autosuggest_emoji.js b/app/javascript/mastodon/components/autosuggest_emoji.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_emoji.js rename to app/javascript/mastodon/components/autosuggest_emoji.jsx diff --git a/app/javascript/mastodon/components/autosuggest_hashtag.js b/app/javascript/mastodon/components/autosuggest_hashtag.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_hashtag.js rename to app/javascript/mastodon/components/autosuggest_hashtag.jsx diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_input.js rename to app/javascript/mastodon/components/autosuggest_input.jsx diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_textarea.js rename to app/javascript/mastodon/components/autosuggest_textarea.jsx diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar.js rename to app/javascript/mastodon/components/avatar.jsx diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar_composite.js rename to app/javascript/mastodon/components/avatar_composite.jsx diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar_overlay.js rename to app/javascript/mastodon/components/avatar_overlay.jsx diff --git a/app/javascript/mastodon/components/blurhash.js b/app/javascript/mastodon/components/blurhash.jsx similarity index 100% rename from app/javascript/mastodon/components/blurhash.js rename to app/javascript/mastodon/components/blurhash.jsx diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.jsx similarity index 100% rename from app/javascript/mastodon/components/button.js rename to app/javascript/mastodon/components/button.jsx diff --git a/app/javascript/mastodon/components/check.js b/app/javascript/mastodon/components/check.jsx similarity index 100% rename from app/javascript/mastodon/components/check.js rename to app/javascript/mastodon/components/check.jsx diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.jsx similarity index 100% rename from app/javascript/mastodon/components/column.js rename to app/javascript/mastodon/components/column.jsx diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.jsx similarity index 100% rename from app/javascript/mastodon/components/column_back_button.js rename to app/javascript/mastodon/components/column_back_button.jsx diff --git a/app/javascript/mastodon/components/column_back_button_slim.js b/app/javascript/mastodon/components/column_back_button_slim.jsx similarity index 100% rename from app/javascript/mastodon/components/column_back_button_slim.js rename to app/javascript/mastodon/components/column_back_button_slim.jsx diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.jsx similarity index 100% rename from app/javascript/mastodon/components/column_header.js rename to app/javascript/mastodon/components/column_header.jsx diff --git a/app/javascript/mastodon/components/common_counter.js b/app/javascript/mastodon/components/common_counter.jsx similarity index 100% rename from app/javascript/mastodon/components/common_counter.js rename to app/javascript/mastodon/components/common_counter.jsx diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.jsx similarity index 100% rename from app/javascript/mastodon/components/dismissable_banner.js rename to app/javascript/mastodon/components/dismissable_banner.jsx diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.jsx similarity index 100% rename from app/javascript/mastodon/components/display_name.js rename to app/javascript/mastodon/components/display_name.jsx diff --git a/app/javascript/mastodon/components/domain.js b/app/javascript/mastodon/components/domain.jsx similarity index 100% rename from app/javascript/mastodon/components/domain.js rename to app/javascript/mastodon/components/domain.jsx diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.jsx similarity index 100% rename from app/javascript/mastodon/components/dropdown_menu.js rename to app/javascript/mastodon/components/dropdown_menu.jsx diff --git a/app/javascript/mastodon/components/edited_timestamp/index.js b/app/javascript/mastodon/components/edited_timestamp/index.jsx similarity index 100% rename from app/javascript/mastodon/components/edited_timestamp/index.js rename to app/javascript/mastodon/components/edited_timestamp/index.jsx diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.jsx similarity index 100% rename from app/javascript/mastodon/components/error_boundary.js rename to app/javascript/mastodon/components/error_boundary.jsx diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.jsx similarity index 100% rename from app/javascript/mastodon/components/gifv.js rename to app/javascript/mastodon/components/gifv.jsx diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.jsx similarity index 100% rename from app/javascript/mastodon/components/hashtag.js rename to app/javascript/mastodon/components/hashtag.jsx diff --git a/app/javascript/mastodon/components/icon.js b/app/javascript/mastodon/components/icon.jsx similarity index 100% rename from app/javascript/mastodon/components/icon.js rename to app/javascript/mastodon/components/icon.jsx diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.jsx similarity index 100% rename from app/javascript/mastodon/components/icon_button.js rename to app/javascript/mastodon/components/icon_button.jsx diff --git a/app/javascript/mastodon/components/icon_with_badge.js b/app/javascript/mastodon/components/icon_with_badge.jsx similarity index 100% rename from app/javascript/mastodon/components/icon_with_badge.js rename to app/javascript/mastodon/components/icon_with_badge.jsx diff --git a/app/javascript/mastodon/components/image.js b/app/javascript/mastodon/components/image.jsx similarity index 100% rename from app/javascript/mastodon/components/image.js rename to app/javascript/mastodon/components/image.jsx diff --git a/app/javascript/mastodon/components/inline_account.js b/app/javascript/mastodon/components/inline_account.jsx similarity index 100% rename from app/javascript/mastodon/components/inline_account.js rename to app/javascript/mastodon/components/inline_account.jsx diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.jsx similarity index 100% rename from app/javascript/mastodon/components/intersection_observer_article.js rename to app/javascript/mastodon/components/intersection_observer_article.jsx diff --git a/app/javascript/mastodon/components/load_gap.js b/app/javascript/mastodon/components/load_gap.jsx similarity index 100% rename from app/javascript/mastodon/components/load_gap.js rename to app/javascript/mastodon/components/load_gap.jsx diff --git a/app/javascript/mastodon/components/load_more.js b/app/javascript/mastodon/components/load_more.jsx similarity index 100% rename from app/javascript/mastodon/components/load_more.js rename to app/javascript/mastodon/components/load_more.jsx diff --git a/app/javascript/mastodon/components/load_pending.js b/app/javascript/mastodon/components/load_pending.jsx similarity index 100% rename from app/javascript/mastodon/components/load_pending.js rename to app/javascript/mastodon/components/load_pending.jsx diff --git a/app/javascript/mastodon/components/loading_indicator.js b/app/javascript/mastodon/components/loading_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/loading_indicator.js rename to app/javascript/mastodon/components/loading_indicator.jsx diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.jsx similarity index 100% rename from app/javascript/mastodon/components/logo.js rename to app/javascript/mastodon/components/logo.jsx diff --git a/app/javascript/mastodon/components/media_attachments.js b/app/javascript/mastodon/components/media_attachments.jsx similarity index 100% rename from app/javascript/mastodon/components/media_attachments.js rename to app/javascript/mastodon/components/media_attachments.jsx diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.jsx similarity index 100% rename from app/javascript/mastodon/components/media_gallery.js rename to app/javascript/mastodon/components/media_gallery.jsx diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/missing_indicator.js rename to app/javascript/mastodon/components/missing_indicator.jsx diff --git a/app/javascript/mastodon/components/modal_root.js b/app/javascript/mastodon/components/modal_root.jsx similarity index 100% rename from app/javascript/mastodon/components/modal_root.js rename to app/javascript/mastodon/components/modal_root.jsx diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.jsx similarity index 100% rename from app/javascript/mastodon/components/navigation_portal.js rename to app/javascript/mastodon/components/navigation_portal.jsx diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/not_signed_in_indicator.js rename to app/javascript/mastodon/components/not_signed_in_indicator.jsx diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.js b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx similarity index 100% rename from app/javascript/mastodon/components/picture_in_picture_placeholder.js rename to app/javascript/mastodon/components/picture_in_picture_placeholder.jsx diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.jsx similarity index 100% rename from app/javascript/mastodon/components/poll.js rename to app/javascript/mastodon/components/poll.jsx diff --git a/app/javascript/mastodon/components/radio_button.js b/app/javascript/mastodon/components/radio_button.jsx similarity index 100% rename from app/javascript/mastodon/components/radio_button.js rename to app/javascript/mastodon/components/radio_button.jsx diff --git a/app/javascript/mastodon/components/regeneration_indicator.js b/app/javascript/mastodon/components/regeneration_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/regeneration_indicator.js rename to app/javascript/mastodon/components/regeneration_indicator.jsx diff --git a/app/javascript/mastodon/components/relative_timestamp.js b/app/javascript/mastodon/components/relative_timestamp.jsx similarity index 100% rename from app/javascript/mastodon/components/relative_timestamp.js rename to app/javascript/mastodon/components/relative_timestamp.jsx diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.jsx similarity index 100% rename from app/javascript/mastodon/components/scrollable_list.js rename to app/javascript/mastodon/components/scrollable_list.jsx diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.jsx similarity index 100% rename from app/javascript/mastodon/components/server_banner.js rename to app/javascript/mastodon/components/server_banner.jsx diff --git a/app/javascript/mastodon/components/short_number.js b/app/javascript/mastodon/components/short_number.jsx similarity index 100% rename from app/javascript/mastodon/components/short_number.js rename to app/javascript/mastodon/components/short_number.jsx diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.jsx similarity index 100% rename from app/javascript/mastodon/components/skeleton.js rename to app/javascript/mastodon/components/skeleton.jsx diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.jsx similarity index 100% rename from app/javascript/mastodon/components/status.js rename to app/javascript/mastodon/components/status.jsx diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.jsx similarity index 100% rename from app/javascript/mastodon/components/status_action_bar.js rename to app/javascript/mastodon/components/status_action_bar.jsx diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.jsx similarity index 100% rename from app/javascript/mastodon/components/status_content.js rename to app/javascript/mastodon/components/status_content.jsx diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.jsx similarity index 100% rename from app/javascript/mastodon/components/status_list.js rename to app/javascript/mastodon/components/status_list.jsx diff --git a/app/javascript/mastodon/components/timeline_hint.js b/app/javascript/mastodon/components/timeline_hint.jsx similarity index 100% rename from app/javascript/mastodon/components/timeline_hint.js rename to app/javascript/mastodon/components/timeline_hint.jsx diff --git a/app/javascript/mastodon/containers/account_container.js b/app/javascript/mastodon/containers/account_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/account_container.js rename to app/javascript/mastodon/containers/account_container.jsx diff --git a/app/javascript/mastodon/containers/admin_component.js b/app/javascript/mastodon/containers/admin_component.jsx similarity index 100% rename from app/javascript/mastodon/containers/admin_component.js rename to app/javascript/mastodon/containers/admin_component.jsx diff --git a/app/javascript/mastodon/containers/compose_container.js b/app/javascript/mastodon/containers/compose_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/compose_container.js rename to app/javascript/mastodon/containers/compose_container.jsx diff --git a/app/javascript/mastodon/containers/domain_container.js b/app/javascript/mastodon/containers/domain_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/domain_container.js rename to app/javascript/mastodon/containers/domain_container.jsx diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.jsx similarity index 100% rename from app/javascript/mastodon/containers/mastodon.js rename to app/javascript/mastodon/containers/mastodon.jsx diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/media_container.js rename to app/javascript/mastodon/containers/media_container.jsx diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/status_container.js rename to app/javascript/mastodon/containers/status_container.jsx diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.jsx similarity index 100% rename from app/javascript/mastodon/features/about/index.js rename to app/javascript/mastodon/features/about/index.jsx diff --git a/app/javascript/mastodon/features/account/components/account_note.js b/app/javascript/mastodon/features/account/components/account_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/account_note.js rename to app/javascript/mastodon/features/account/components/account_note.jsx diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/featured_tags.js rename to app/javascript/mastodon/features/account/components/featured_tags.jsx diff --git a/app/javascript/mastodon/features/account/components/follow_request_note.js b/app/javascript/mastodon/features/account/components/follow_request_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/follow_request_note.js rename to app/javascript/mastodon/features/account/components/follow_request_note.jsx diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/header.js rename to app/javascript/mastodon/features/account/components/header.jsx diff --git a/app/javascript/mastodon/features/account/navigation.js b/app/javascript/mastodon/features/account/navigation.jsx similarity index 100% rename from app/javascript/mastodon/features/account/navigation.js rename to app/javascript/mastodon/features/account/navigation.jsx diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx similarity index 100% rename from app/javascript/mastodon/features/account_gallery/components/media_item.js rename to app/javascript/mastodon/features/account_gallery/components/media_item.jsx diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.jsx similarity index 100% rename from app/javascript/mastodon/features/account_gallery/index.js rename to app/javascript/mastodon/features/account_gallery/index.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/header.js rename to app/javascript/mastodon/features/account_timeline/components/header.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js rename to app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.js b/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/moved_note.js rename to app/javascript/mastodon/features/account_timeline/components/moved_note.jsx diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/containers/header_container.js rename to app/javascript/mastodon/features/account_timeline/containers/header_container.jsx diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/index.js rename to app/javascript/mastodon/features/account_timeline/index.jsx diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.jsx similarity index 100% rename from app/javascript/mastodon/features/audio/index.js rename to app/javascript/mastodon/features/audio/index.jsx diff --git a/app/javascript/mastodon/features/blocks/index.js b/app/javascript/mastodon/features/blocks/index.jsx similarity index 100% rename from app/javascript/mastodon/features/blocks/index.js rename to app/javascript/mastodon/features/blocks/index.jsx diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/bookmarked_statuses/index.js rename to app/javascript/mastodon/features/bookmarked_statuses/index.jsx diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/closed_registrations_modal/index.js rename to app/javascript/mastodon/features/closed_registrations_modal/index.jsx diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.js b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/community_timeline/components/column_settings.js rename to app/javascript/mastodon/features/community_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/community_timeline/index.js rename to app/javascript/mastodon/features/community_timeline/index.jsx diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/action_bar.js rename to app/javascript/mastodon/features/compose/components/action_bar.jsx diff --git a/app/javascript/mastodon/features/compose/components/autosuggest_account.js b/app/javascript/mastodon/features/compose/components/autosuggest_account.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/autosuggest_account.js rename to app/javascript/mastodon/features/compose/components/autosuggest_account.jsx diff --git a/app/javascript/mastodon/features/compose/components/character_counter.js b/app/javascript/mastodon/features/compose/components/character_counter.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/character_counter.js rename to app/javascript/mastodon/features/compose/components/character_counter.jsx diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/compose_form.js rename to app/javascript/mastodon/features/compose/components/compose_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js rename to app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/language_dropdown.js rename to app/javascript/mastodon/features/compose/components/language_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/navigation_bar.js rename to app/javascript/mastodon/features/compose/components/navigation_bar.jsx diff --git a/app/javascript/mastodon/features/compose/components/poll_button.js b/app/javascript/mastodon/features/compose/components/poll_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/poll_button.js rename to app/javascript/mastodon/features/compose/components/poll_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/poll_form.js rename to app/javascript/mastodon/features/compose/components/poll_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/privacy_dropdown.js rename to app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.js b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/reply_indicator.js rename to app/javascript/mastodon/features/compose/components/reply_indicator.jsx diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/search.js rename to app/javascript/mastodon/features/compose/components/search.jsx diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/search_results.js rename to app/javascript/mastodon/features/compose/components/search_results.jsx diff --git a/app/javascript/mastodon/features/compose/components/text_icon_button.js b/app/javascript/mastodon/features/compose/components/text_icon_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/text_icon_button.js rename to app/javascript/mastodon/features/compose/components/text_icon_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload.js rename to app/javascript/mastodon/features/compose/components/upload.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_button.js rename to app/javascript/mastodon/features/compose/components/upload_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_form.js rename to app/javascript/mastodon/features/compose/components/upload_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_progress.js b/app/javascript/mastodon/features/compose/components/upload_progress.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_progress.js rename to app/javascript/mastodon/features/compose/components/upload_progress.jsx diff --git a/app/javascript/mastodon/features/compose/components/warning.js b/app/javascript/mastodon/features/compose/components/warning.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/warning.js rename to app/javascript/mastodon/features/compose/components/warning.jsx diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.js b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/containers/sensitive_button_container.js rename to app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/containers/warning_container.js rename to app/javascript/mastodon/features/compose/containers/warning_container.jsx diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/index.js rename to app/javascript/mastodon/features/compose/index.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.js b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/components/conversation.js rename to app/javascript/mastodon/features/direct_timeline/components/conversation.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/components/conversations_list.js rename to app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/index.js rename to app/javascript/mastodon/features/direct_timeline/index.jsx diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.jsx similarity index 100% rename from app/javascript/mastodon/features/directory/components/account_card.js rename to app/javascript/mastodon/features/directory/components/account_card.jsx diff --git a/app/javascript/mastodon/features/directory/index.js b/app/javascript/mastodon/features/directory/index.jsx similarity index 100% rename from app/javascript/mastodon/features/directory/index.js rename to app/javascript/mastodon/features/directory/index.jsx diff --git a/app/javascript/mastodon/features/domain_blocks/index.js b/app/javascript/mastodon/features/domain_blocks/index.jsx similarity index 100% rename from app/javascript/mastodon/features/domain_blocks/index.js rename to app/javascript/mastodon/features/domain_blocks/index.jsx diff --git a/app/javascript/mastodon/features/explore/components/story.js b/app/javascript/mastodon/features/explore/components/story.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/components/story.js rename to app/javascript/mastodon/features/explore/components/story.jsx diff --git a/app/javascript/mastodon/features/explore/index.js b/app/javascript/mastodon/features/explore/index.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/index.js rename to app/javascript/mastodon/features/explore/index.jsx diff --git a/app/javascript/mastodon/features/explore/links.js b/app/javascript/mastodon/features/explore/links.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/links.js rename to app/javascript/mastodon/features/explore/links.jsx diff --git a/app/javascript/mastodon/features/explore/results.js b/app/javascript/mastodon/features/explore/results.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/results.js rename to app/javascript/mastodon/features/explore/results.jsx diff --git a/app/javascript/mastodon/features/explore/statuses.js b/app/javascript/mastodon/features/explore/statuses.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/statuses.js rename to app/javascript/mastodon/features/explore/statuses.jsx diff --git a/app/javascript/mastodon/features/explore/suggestions.js b/app/javascript/mastodon/features/explore/suggestions.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/suggestions.js rename to app/javascript/mastodon/features/explore/suggestions.jsx diff --git a/app/javascript/mastodon/features/explore/tags.js b/app/javascript/mastodon/features/explore/tags.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/tags.js rename to app/javascript/mastodon/features/explore/tags.jsx diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/favourited_statuses/index.js rename to app/javascript/mastodon/features/favourited_statuses/index.jsx diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.jsx similarity index 100% rename from app/javascript/mastodon/features/favourites/index.js rename to app/javascript/mastodon/features/favourites/index.jsx diff --git a/app/javascript/mastodon/features/filters/added_to_filter.js b/app/javascript/mastodon/features/filters/added_to_filter.jsx similarity index 100% rename from app/javascript/mastodon/features/filters/added_to_filter.js rename to app/javascript/mastodon/features/filters/added_to_filter.jsx diff --git a/app/javascript/mastodon/features/filters/select_filter.js b/app/javascript/mastodon/features/filters/select_filter.jsx similarity index 100% rename from app/javascript/mastodon/features/filters/select_filter.js rename to app/javascript/mastodon/features/filters/select_filter.jsx diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_recommendations/components/account.js rename to app/javascript/mastodon/features/follow_recommendations/components/account.jsx diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_recommendations/index.js rename to app/javascript/mastodon/features/follow_recommendations/index.jsx diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_requests/components/account_authorize.js rename to app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_requests/index.js rename to app/javascript/mastodon/features/follow_requests/index.jsx diff --git a/app/javascript/mastodon/features/followed_tags/index.js b/app/javascript/mastodon/features/followed_tags/index.jsx similarity index 100% rename from app/javascript/mastodon/features/followed_tags/index.js rename to app/javascript/mastodon/features/followed_tags/index.jsx diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.jsx similarity index 100% rename from app/javascript/mastodon/features/followers/index.js rename to app/javascript/mastodon/features/followers/index.jsx diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.jsx similarity index 100% rename from app/javascript/mastodon/features/following/index.js rename to app/javascript/mastodon/features/following/index.jsx diff --git a/app/javascript/mastodon/features/generic_not_found/index.js b/app/javascript/mastodon/features/generic_not_found/index.jsx similarity index 100% rename from app/javascript/mastodon/features/generic_not_found/index.js rename to app/javascript/mastodon/features/generic_not_found/index.jsx diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/components/announcements.js rename to app/javascript/mastodon/features/getting_started/components/announcements.jsx diff --git a/app/javascript/mastodon/features/getting_started/components/trends.js b/app/javascript/mastodon/features/getting_started/components/trends.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/components/trends.js rename to app/javascript/mastodon/features/getting_started/components/trends.jsx diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/index.js rename to app/javascript/mastodon/features/getting_started/index.jsx diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js rename to app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/hashtag_timeline/index.js rename to app/javascript/mastodon/features/hashtag_timeline/index.jsx diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.js b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/home_timeline/components/column_settings.js rename to app/javascript/mastodon/features/home_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/home_timeline/index.js rename to app/javascript/mastodon/features/home_timeline/index.jsx diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/interaction_modal/index.js rename to app/javascript/mastodon/features/interaction_modal/index.jsx diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx similarity index 100% rename from app/javascript/mastodon/features/keyboard_shortcuts/index.js rename to app/javascript/mastodon/features/keyboard_shortcuts/index.jsx diff --git a/app/javascript/mastodon/features/list_adder/components/account.js b/app/javascript/mastodon/features/list_adder/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/components/account.js rename to app/javascript/mastodon/features/list_adder/components/account.jsx diff --git a/app/javascript/mastodon/features/list_adder/components/list.js b/app/javascript/mastodon/features/list_adder/components/list.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/components/list.js rename to app/javascript/mastodon/features/list_adder/components/list.jsx diff --git a/app/javascript/mastodon/features/list_adder/index.js b/app/javascript/mastodon/features/list_adder/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/index.js rename to app/javascript/mastodon/features/list_adder/index.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/account.js b/app/javascript/mastodon/features/list_editor/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/account.js rename to app/javascript/mastodon/features/list_editor/components/account.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/edit_list_form.js rename to app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/search.js b/app/javascript/mastodon/features/list_editor/components/search.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/search.js rename to app/javascript/mastodon/features/list_editor/components/search.jsx diff --git a/app/javascript/mastodon/features/list_editor/index.js b/app/javascript/mastodon/features/list_editor/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/index.js rename to app/javascript/mastodon/features/list_editor/index.jsx diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_timeline/index.js rename to app/javascript/mastodon/features/list_timeline/index.jsx diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.jsx similarity index 100% rename from app/javascript/mastodon/features/lists/components/new_list_form.js rename to app/javascript/mastodon/features/lists/components/new_list_form.jsx diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.jsx similarity index 100% rename from app/javascript/mastodon/features/lists/index.js rename to app/javascript/mastodon/features/lists/index.jsx diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.jsx similarity index 100% rename from app/javascript/mastodon/features/mutes/index.js rename to app/javascript/mastodon/features/mutes/index.jsx diff --git a/app/javascript/mastodon/features/notifications/components/clear_column_button.js b/app/javascript/mastodon/features/notifications/components/clear_column_button.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/clear_column_button.js rename to app/javascript/mastodon/features/notifications/components/clear_column_button.jsx diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/column_settings.js rename to app/javascript/mastodon/features/notifications/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.js b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/filter_bar.js rename to app/javascript/mastodon/features/notifications/components/filter_bar.jsx diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.js b/app/javascript/mastodon/features/notifications/components/follow_request.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/follow_request.js rename to app/javascript/mastodon/features/notifications/components/follow_request.jsx diff --git a/app/javascript/mastodon/features/notifications/components/grant_permission_button.js b/app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/grant_permission_button.js rename to app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/notification.js rename to app/javascript/mastodon/features/notifications/components/notification.jsx diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js rename to app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx diff --git a/app/javascript/mastodon/features/notifications/components/report.js b/app/javascript/mastodon/features/notifications/components/report.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/report.js rename to app/javascript/mastodon/features/notifications/components/report.jsx diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/setting_toggle.js rename to app/javascript/mastodon/features/notifications/components/setting_toggle.jsx diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/index.js rename to app/javascript/mastodon/features/notifications/index.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/components/footer.js rename to app/javascript/mastodon/features/picture_in_picture/components/footer.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/components/header.js b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/components/header.js rename to app/javascript/mastodon/features/picture_in_picture/components/header.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/index.js b/app/javascript/mastodon/features/picture_in_picture/index.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/index.js rename to app/javascript/mastodon/features/picture_in_picture/index.jsx diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/pinned_statuses/index.js rename to app/javascript/mastodon/features/pinned_statuses/index.jsx diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.jsx similarity index 100% rename from app/javascript/mastodon/features/privacy_policy/index.js rename to app/javascript/mastodon/features/privacy_policy/index.jsx diff --git a/app/javascript/mastodon/features/public_timeline/components/column_settings.js b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/public_timeline/components/column_settings.js rename to app/javascript/mastodon/features/public_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/public_timeline/index.js rename to app/javascript/mastodon/features/public_timeline/index.jsx diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.jsx similarity index 100% rename from app/javascript/mastodon/features/reblogs/index.js rename to app/javascript/mastodon/features/reblogs/index.jsx diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.jsx similarity index 100% rename from app/javascript/mastodon/features/report/category.js rename to app/javascript/mastodon/features/report/category.jsx diff --git a/app/javascript/mastodon/features/report/comment.js b/app/javascript/mastodon/features/report/comment.jsx similarity index 100% rename from app/javascript/mastodon/features/report/comment.js rename to app/javascript/mastodon/features/report/comment.jsx diff --git a/app/javascript/mastodon/features/report/components/option.js b/app/javascript/mastodon/features/report/components/option.jsx similarity index 100% rename from app/javascript/mastodon/features/report/components/option.js rename to app/javascript/mastodon/features/report/components/option.jsx diff --git a/app/javascript/mastodon/features/report/components/status_check_box.js b/app/javascript/mastodon/features/report/components/status_check_box.jsx similarity index 100% rename from app/javascript/mastodon/features/report/components/status_check_box.js rename to app/javascript/mastodon/features/report/components/status_check_box.jsx diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.jsx similarity index 100% rename from app/javascript/mastodon/features/report/rules.js rename to app/javascript/mastodon/features/report/rules.jsx diff --git a/app/javascript/mastodon/features/report/statuses.js b/app/javascript/mastodon/features/report/statuses.jsx similarity index 100% rename from app/javascript/mastodon/features/report/statuses.js rename to app/javascript/mastodon/features/report/statuses.jsx diff --git a/app/javascript/mastodon/features/report/thanks.js b/app/javascript/mastodon/features/report/thanks.jsx similarity index 100% rename from app/javascript/mastodon/features/report/thanks.js rename to app/javascript/mastodon/features/report/thanks.jsx diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.jsx similarity index 100% rename from app/javascript/mastodon/features/standalone/compose/index.js rename to app/javascript/mastodon/features/standalone/compose/index.jsx diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/action_bar.js rename to app/javascript/mastodon/features/status/components/action_bar.jsx diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/card.js rename to app/javascript/mastodon/features/status/components/card.jsx diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/detailed_status.js rename to app/javascript/mastodon/features/status/components/detailed_status.jsx diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.jsx similarity index 100% rename from app/javascript/mastodon/features/status/index.js rename to app/javascript/mastodon/features/status/index.jsx diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/subscribed_languages_modal/index.js rename to app/javascript/mastodon/features/subscribed_languages_modal/index.jsx diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/__tests__/column-test.js rename to app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/actions_modal.js rename to app/javascript/mastodon/features/ui/components/actions_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/audio_modal.js b/app/javascript/mastodon/features/ui/components/audio_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/audio_modal.js rename to app/javascript/mastodon/features/ui/components/audio_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/block_modal.js b/app/javascript/mastodon/features/ui/components/block_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/block_modal.js rename to app/javascript/mastodon/features/ui/components/block_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/boost_modal.js rename to app/javascript/mastodon/features/ui/components/boost_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle.js b/app/javascript/mastodon/features/ui/components/bundle.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle.js rename to app/javascript/mastodon/features/ui/components/bundle.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle_column_error.js rename to app/javascript/mastodon/features/ui/components/bundle_column_error.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js b/app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle_modal_error.js rename to app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx diff --git a/app/javascript/mastodon/features/ui/components/column.js b/app/javascript/mastodon/features/ui/components/column.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column.js rename to app/javascript/mastodon/features/ui/components/column.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_header.js rename to app/javascript/mastodon/features/ui/components/column_header.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_link.js rename to app/javascript/mastodon/features/ui/components/column_link.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_loading.js rename to app/javascript/mastodon/features/ui/components/column_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_subheading.js b/app/javascript/mastodon/features/ui/components/column_subheading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_subheading.js rename to app/javascript/mastodon/features/ui/components/column_subheading.jsx diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/columns_area.js rename to app/javascript/mastodon/features/ui/components/columns_area.jsx diff --git a/app/javascript/mastodon/features/ui/components/compare_history_modal.js b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/compare_history_modal.js rename to app/javascript/mastodon/features/ui/components/compare_history_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/compose_panel.js rename to app/javascript/mastodon/features/ui/components/compose_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/confirmation_modal.js rename to app/javascript/mastodon/features/ui/components/confirmation_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/disabled_account_banner.js rename to app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx diff --git a/app/javascript/mastodon/features/ui/components/drawer_loading.js b/app/javascript/mastodon/features/ui/components/drawer_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/drawer_loading.js rename to app/javascript/mastodon/features/ui/components/drawer_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/embed_modal.js rename to app/javascript/mastodon/features/ui/components/embed_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.js b/app/javascript/mastodon/features/ui/components/filter_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/filter_modal.js rename to app/javascript/mastodon/features/ui/components/filter_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/focal_point_modal.js rename to app/javascript/mastodon/features/ui/components/focal_point_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/follow_requests_column_link.js rename to app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/header.js rename to app/javascript/mastodon/features/ui/components/header.jsx diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/image_loader.js rename to app/javascript/mastodon/features/ui/components/image_loader.jsx diff --git a/app/javascript/mastodon/features/ui/components/image_modal.js b/app/javascript/mastodon/features/ui/components/image_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/image_modal.js rename to app/javascript/mastodon/features/ui/components/image_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/link_footer.js rename to app/javascript/mastodon/features/ui/components/link_footer.jsx diff --git a/app/javascript/mastodon/features/ui/components/list_panel.js b/app/javascript/mastodon/features/ui/components/list_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/list_panel.js rename to app/javascript/mastodon/features/ui/components/list_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/media_modal.js rename to app/javascript/mastodon/features/ui/components/media_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/modal_loading.js b/app/javascript/mastodon/features/ui/components/modal_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/modal_loading.js rename to app/javascript/mastodon/features/ui/components/modal_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/modal_root.js rename to app/javascript/mastodon/features/ui/components/modal_root.jsx diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.js b/app/javascript/mastodon/features/ui/components/mute_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/mute_modal.js rename to app/javascript/mastodon/features/ui/components/mute_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/navigation_panel.js rename to app/javascript/mastodon/features/ui/components/navigation_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/report_modal.js b/app/javascript/mastodon/features/ui/components/report_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/report_modal.js rename to app/javascript/mastodon/features/ui/components/report_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.js b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/sign_in_banner.js rename to app/javascript/mastodon/features/ui/components/sign_in_banner.jsx diff --git a/app/javascript/mastodon/features/ui/components/upload_area.js b/app/javascript/mastodon/features/ui/components/upload_area.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/upload_area.js rename to app/javascript/mastodon/features/ui/components/upload_area.jsx diff --git a/app/javascript/mastodon/features/ui/components/video_modal.js b/app/javascript/mastodon/features/ui/components/video_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/video_modal.js rename to app/javascript/mastodon/features/ui/components/video_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.js b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/zoomable_image.js rename to app/javascript/mastodon/features/ui/components/zoomable_image.jsx diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/index.js rename to app/javascript/mastodon/features/ui/index.jsx diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/util/react_router_helpers.js rename to app/javascript/mastodon/features/ui/util/react_router_helpers.jsx diff --git a/app/javascript/mastodon/features/ui/util/reduced_motion.js b/app/javascript/mastodon/features/ui/util/reduced_motion.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/util/reduced_motion.js rename to app/javascript/mastodon/features/ui/util/reduced_motion.jsx diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.jsx similarity index 100% rename from app/javascript/mastodon/features/video/index.js rename to app/javascript/mastodon/features/video/index.jsx diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.jsx similarity index 100% rename from app/javascript/mastodon/main.js rename to app/javascript/mastodon/main.jsx diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.jsx similarity index 100% rename from app/javascript/mastodon/utils/icons.js rename to app/javascript/mastodon/utils/icons.jsx diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.jsx similarity index 100% rename from app/javascript/packs/admin.js rename to app/javascript/packs/admin.jsx diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.jsx similarity index 100% rename from app/javascript/packs/public.js rename to app/javascript/packs/public.jsx diff --git a/app/javascript/packs/share.js b/app/javascript/packs/share.jsx similarity index 100% rename from app/javascript/packs/share.js rename to app/javascript/packs/share.jsx diff --git a/config/webpacker.yml b/config/webpacker.yml index 4ad78a190e..0baff662b0 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -35,6 +35,7 @@ default: &default extensions: - .mjs - .js + - .jsx - .sass - .scss - .css diff --git a/package.json b/package.json index 57ee85b716..06af9045e9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "start": "node ./streaming/index.js", "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", - "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives", + "test:lint:js": "eslint --ext=.js,.jsx . --cache --report-unused-disable-directives", "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write .", From 63e63538861bd850a38a282e37de046639afa993 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 23:00:36 -0500 Subject: [PATCH 0499/1220] Autofix Rubocop Rails/EnumHash (#23737) --- .rubocop_todo.yml | 16 ---------------- app/models/account.rb | 4 ++-- app/models/custom_filter.rb | 2 +- app/models/domain_block.rb | 2 +- app/models/import.rb | 2 +- app/models/list.rb | 2 +- app/models/media_attachment.rb | 4 ++-- app/models/preview_card.rb | 4 ++-- app/models/relay.rb | 2 +- app/models/status.rb | 2 +- 10 files changed, 12 insertions(+), 28 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c452d1bd2c..7cb4d55e04 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1871,22 +1871,6 @@ Rails/DuplicateAssociation: - 'app/serializers/activitypub/collection_serializer.rb' - 'app/serializers/activitypub/note_serializer.rb' -# Offense count: 12 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: Include. -# Include: app/models/**/*.rb -Rails/EnumHash: - Exclude: - - 'app/models/account.rb' - - 'app/models/custom_filter.rb' - - 'app/models/domain_block.rb' - - 'app/models/import.rb' - - 'app/models/list.rb' - - 'app/models/media_attachment.rb' - - 'app/models/preview_card.rb' - - 'app/models/relay.rb' - - 'app/models/status.rb' - # Offense count: 76 # Configuration parameters: EnforcedStyle. # SupportedStyles: slashes, arguments diff --git a/app/models/account.rb b/app/models/account.rb index 2c0cd577e6..d33110d55e 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -78,8 +78,8 @@ class Account < ApplicationRecord include DomainMaterializable include AccountMerging - enum protocol: [:ostatus, :activitypub] - enum suspension_origin: [:local, :remote], _prefix: true + enum protocol: { ostatus: 0, activitypub: 1 } + enum suspension_origin: { local: 0, remote: 1 }, _prefix: true validates :username, presence: true validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? } diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index b70e53bd53..781bf4db88 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -30,7 +30,7 @@ class CustomFilter < ApplicationRecord include Expireable include Redisable - enum action: [:warn, :hide], _suffix: :action + enum action: { warn: 0, hide: 1 }, _suffix: :action belongs_to :account has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index 8e298ac9d7..190f5ba2e4 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -20,7 +20,7 @@ class DomainBlock < ApplicationRecord include DomainNormalizable include DomainMaterializable - enum severity: [:silence, :suspend, :noop] + enum severity: { silence: 0, suspend: 1, noop: 2 } validates :domain, presence: true, uniqueness: true, domain: true diff --git a/app/models/import.rb b/app/models/import.rb index 00a54892ef..cd33eb07b0 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -24,7 +24,7 @@ class Import < ApplicationRecord belongs_to :account - enum type: [:following, :blocking, :muting, :domain_blocking, :bookmarks] + enum type: { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 } validates :type, presence: true validates_with ImportValidator, on: :create diff --git a/app/models/list.rb b/app/models/list.rb index cdc6ebdb37..7b8cf66362 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -16,7 +16,7 @@ class List < ApplicationRecord PER_ACCOUNT_LIMIT = 50 - enum replies_policy: [:list, :followed, :none], _prefix: :show + enum replies_policy: { list: 0, followed: 1, none: 2 }, _prefix: :show belongs_to :account, optional: true diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 5916b0b4b3..c6f2352e03 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -33,8 +33,8 @@ class MediaAttachment < ApplicationRecord include Attachmentable - enum type: [:image, :gifv, :video, :unknown, :audio] - enum processing: [:queued, :in_progress, :complete, :failed], _prefix: true + enum type: { :image => 0, :gifv => 1, :video => 2, :unknown => 3, :audio => 4 } + enum processing: { :queued => 0, :in_progress => 1, :complete => 2, :failed => 3 }, _prefix: true MAX_DESCRIPTION_LENGTH = 1_500 diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index 56ca62d5ec..d25fe6dad1 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -44,8 +44,8 @@ class PreviewCard < ApplicationRecord self.inheritance_column = false - enum type: [:link, :photo, :video, :rich] - enum link_type: [:unknown, :article] + enum type: { link: 0, photo: 1, video: 2, rich: 3 } + enum link_type: { unknown: 0, article: 1 } has_and_belongs_to_many :statuses has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy diff --git a/app/models/relay.rb b/app/models/relay.rb index c66bfe4ffe..e9c425743f 100644 --- a/app/models/relay.rb +++ b/app/models/relay.rb @@ -14,7 +14,7 @@ class Relay < ApplicationRecord validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url? - enum state: [:idle, :pending, :accepted, :rejected] + enum state: { idle: 0, pending: 1, accepted: 2, rejected: 3 } scope :enabled, -> { accepted } diff --git a/app/models/status.rb b/app/models/status.rb index e0ad291035..44a297a088 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -48,7 +48,7 @@ class Status < ApplicationRecord update_index('statuses', :proper) - enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility + enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility belongs_to :application, class_name: 'Doorkeeper::Application', optional: true From 38a1d8bb85da6c7a52a3bde28af368b8d2104d02 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 23:00:48 -0500 Subject: [PATCH 0500/1220] Autofix Rubocop RSpec/ImplicitSubject (#23721) --- .rubocop_todo.yml | 86 ++++++------------- app/serializers/initial_state_serializer.rb | 1 - .../admin/accounts_controller_spec.rb | 32 +++---- .../admin/instances_controller_spec.rb | 4 +- .../application_controller_spec.rb | 2 +- spec/controllers/home_controller_spec.rb | 4 +- .../relationships_controller_spec.rb | 2 +- .../settings/featured_tags_controller_spec.rb | 2 +- .../settings/migrations_controller_spec.rb | 18 ++-- .../settings/sessions_controller_spec.rb | 4 +- spec/features/log_in_spec.rb | 6 +- spec/features/profile_spec.rb | 4 +- spec/lib/emoji_formatter_spec.rb | 8 +- spec/lib/entity_cache_spec.rb | 2 +- spec/lib/html_aware_formatter_spec.rb | 8 +- spec/lib/ostatus/tag_manager_spec.rb | 6 +- spec/lib/plain_text_formatter_spec.rb | 4 +- spec/lib/text_formatter_spec.rb | 78 ++++++++--------- .../concerns/account_interactions_spec.rb | 86 +++++++++---------- spec/models/custom_emoji_spec.rb | 12 +-- spec/models/media_attachment_spec.rb | 10 +-- spec/models/notification_spec.rb | 2 +- spec/models/remote_follow_spec.rb | 10 +-- spec/models/report_spec.rb | 4 +- spec/models/session_activation_spec.rb | 6 +- spec/models/setting_spec.rb | 4 +- 26 files changed, 184 insertions(+), 221 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7cb4d55e04..4c3b3ecb6d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit` -# on 2023-02-16 05:53:07 UTC using RuboCop version 1.45.1. +# on 2023-02-19 06:22:09 UTC using RuboCop version 1.45.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -162,7 +162,7 @@ Layout/HashAlignment: - 'spec/models/admin/account_action_spec.rb' - 'spec/models/concerns/account_interactions_spec.rb' -# Offense count: 577 +# Offense count: 581 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. # URISchemes: http, https @@ -305,18 +305,17 @@ Lint/Void: Exclude: - 'spec/services/resolve_account_service_spec.rb' -# Offense count: 65 +# Offense count: 66 # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. Metrics/AbcSize: Enabled: false -# Offense count: 11 +# Offense count: 10 # Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. # AllowedMethods: refine Metrics/BlockLength: Exclude: - 'app/models/concerns/account_interactions.rb' - - 'app/models/concerns/omniauthable.rb' - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - 'lib/tasks/branding.rake' @@ -335,7 +334,7 @@ Metrics/BlockNesting: Metrics/CyclomaticComplexity: Enabled: false -# Offense count: 40 +# Offense count: 35 # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns. Metrics/MethodLength: Enabled: false @@ -936,37 +935,6 @@ RSpec/HookArgument: - 'spec/services/import_service_spec.rb' - 'spec/spec_helper.rb' -# Offense count: 159 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: single_line_only, single_statement_only, disallow, require_implicit -RSpec/ImplicitSubject: - Exclude: - - 'spec/controllers/admin/accounts_controller_spec.rb' - - 'spec/controllers/admin/instances_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/home_controller_spec.rb' - - 'spec/controllers/relationships_controller_spec.rb' - - 'spec/controllers/settings/featured_tags_controller_spec.rb' - - 'spec/controllers/settings/migrations_controller_spec.rb' - - 'spec/controllers/settings/sessions_controller_spec.rb' - - 'spec/features/log_in_spec.rb' - - 'spec/features/profile_spec.rb' - - 'spec/lib/emoji_formatter_spec.rb' - - 'spec/lib/entity_cache_spec.rb' - - 'spec/lib/html_aware_formatter_spec.rb' - - 'spec/lib/ostatus/tag_manager_spec.rb' - - 'spec/lib/plain_text_formatter_spec.rb' - - 'spec/lib/text_formatter_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - - 'spec/models/custom_emoji_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/notification_spec.rb' - - 'spec/models/remote_follow_spec.rb' - - 'spec/models/report_spec.rb' - - 'spec/models/session_activation_spec.rb' - - 'spec/models/setting_spec.rb' - # Offense count: 101 # Configuration parameters: AssignmentOnly. RSpec/InstanceVariable: @@ -1199,7 +1167,7 @@ RSpec/MissingExampleGroupArgument: RSpec/MultipleExpectations: Max: 19 -# Offense count: 443 +# Offense count: 442 # Configuration parameters: AllowSubject. RSpec/MultipleMemoizedHelpers: Max: 21 @@ -1216,7 +1184,7 @@ RSpec/MultipleSubjects: - 'spec/controllers/follower_accounts_controller_spec.rb' - 'spec/controllers/following_accounts_controller_spec.rb' -# Offense count: 1252 +# Offense count: 1407 # Configuration parameters: EnforcedStyle, IgnoreSharedExamples. # SupportedStyles: always, named_only RSpec/NamedSubject: @@ -1226,6 +1194,7 @@ RSpec/NamedSubject: - 'spec/controllers/admin/confirmations_controller_spec.rb' - 'spec/controllers/admin/custom_emojis_controller_spec.rb' - 'spec/controllers/admin/domain_blocks_controller_spec.rb' + - 'spec/controllers/admin/instances_controller_spec.rb' - 'spec/controllers/admin/invites_controller_spec.rb' - 'spec/controllers/admin/report_notes_controller_spec.rb' - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' @@ -1233,13 +1202,18 @@ RSpec/NamedSubject: - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' - 'spec/controllers/auth/passwords_controller_spec.rb' - 'spec/controllers/auth/registrations_controller_spec.rb' + - 'spec/controllers/home_controller_spec.rb' - 'spec/controllers/invites_controller_spec.rb' - 'spec/controllers/oauth/authorizations_controller_spec.rb' - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' - 'spec/controllers/relationships_controller_spec.rb' - 'spec/controllers/settings/featured_tags_controller_spec.rb' + - 'spec/controllers/settings/migrations_controller_spec.rb' + - 'spec/controllers/settings/sessions_controller_spec.rb' - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' - 'spec/controllers/well_known/webfinger_controller_spec.rb' + - 'spec/features/log_in_spec.rb' + - 'spec/features/profile_spec.rb' - 'spec/lib/activitypub/activity/accept_spec.rb' - 'spec/lib/activitypub/activity/add_spec.rb' - 'spec/lib/activitypub/activity/announce_spec.rb' @@ -1262,16 +1236,21 @@ RSpec/NamedSubject: - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' - 'spec/lib/delivery_failure_tracker_spec.rb' - 'spec/lib/emoji_formatter_spec.rb' + - 'spec/lib/entity_cache_spec.rb' - 'spec/lib/fast_ip_map_spec.rb' - 'spec/lib/feed_manager_spec.rb' - 'spec/lib/hashtag_normalizer_spec.rb' + - 'spec/lib/html_aware_formatter_spec.rb' - 'spec/lib/link_details_extractor_spec.rb' + - 'spec/lib/ostatus/tag_manager_spec.rb' + - 'spec/lib/plain_text_formatter_spec.rb' - 'spec/lib/request_pool_spec.rb' - 'spec/lib/request_spec.rb' - 'spec/lib/sanitize_config_spec.rb' - 'spec/lib/status_finder_spec.rb' - 'spec/lib/status_reach_finder_spec.rb' - 'spec/lib/suspicious_sign_in_detector_spec.rb' + - 'spec/lib/text_formatter_spec.rb' - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb' - 'spec/lib/vacuum/backups_vacuum_spec.rb' - 'spec/lib/vacuum/feeds_vacuum_spec.rb' @@ -1288,11 +1267,17 @@ RSpec/NamedSubject: - 'spec/models/canonical_email_block_spec.rb' - 'spec/models/concerns/account_interactions_spec.rb' - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/custom_emoji_spec.rb' - 'spec/models/follow_spec.rb' - 'spec/models/home_feed_spec.rb' + - 'spec/models/media_attachment_spec.rb' - 'spec/models/notification_spec.rb' - 'spec/models/public_feed_spec.rb' - 'spec/models/relationship_filter_spec.rb' + - 'spec/models/remote_follow_spec.rb' + - 'spec/models/report_spec.rb' + - 'spec/models/session_activation_spec.rb' + - 'spec/models/setting_spec.rb' - 'spec/models/status_spec.rb' - 'spec/models/tag_spec.rb' - 'spec/models/trends/statuses_spec.rb' @@ -2347,46 +2332,25 @@ Style/FormatStringToken: Style/FrozenStringLiteralComment: Enabled: false -# Offense count: 69 +# Offense count: 34 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: MinBodyLength, AllowConsecutiveConditionals. Style/GuardClause: Exclude: - 'app/controllers/admin/confirmations_controller.rb' - - 'app/controllers/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/statuses_controller.rb' - - 'app/controllers/api/v1/blocks_controller.rb' - - 'app/controllers/api/v1/conversations_controller.rb' - - 'app/controllers/api/v1/domain_blocks_controller.rb' - - 'app/controllers/api/v1/endorsements_controller.rb' - - 'app/controllers/api/v1/favourites_controller.rb' - - 'app/controllers/api/v1/follow_requests_controller.rb' - - 'app/controllers/api/v1/lists/accounts_controller.rb' - - 'app/controllers/api/v1/mutes_controller.rb' - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/api/v1/scheduled_statuses_controller.rb' - - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' - 'app/controllers/auth/confirmations_controller.rb' - 'app/controllers/auth/passwords_controller.rb' - - 'app/controllers/filters/statuses_controller.rb' - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' - 'app/lib/activitypub/activity/block.rb' - - 'app/lib/activitypub/linked_data_signature.rb' - 'app/lib/connection_pool/shared_connection_pool.rb' - 'app/lib/request.rb' - 'app/lib/request_pool.rb' - - 'app/lib/status_finder.rb' - 'app/lib/webfinger.rb' - 'app/lib/webfinger_resource.rb' - - 'app/models/account_statuses_cleanup_policy.rb' - 'app/models/concerns/account_counters.rb' - 'app/models/concerns/ldap_authenticable.rb' - 'app/models/tag.rb' - 'app/models/user.rb' - - 'app/serializers/rest/instance_serializer.rb' - 'app/services/fan_out_on_write_service.rb' - 'app/services/post_status_service.rb' - 'app/services/process_hashtags_service.rb' diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index fa1ddc6d39..7905444e98 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -65,7 +65,6 @@ class InitialStateSerializer < ActiveModel::Serializer store end - # rubocop:enable Metrics/AbcSize def compose store = {} diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index f5d68a8adb..fdc98ed461 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Admin') } it 'fails to memorialize account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -92,7 +92,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Moderator') } it 'succeeds in memorializing account' do - is_expected.to redirect_to admin_account_path(account.id) + expect(subject).to redirect_to admin_account_path(account.id) expect(account.reload).to be_memorial end end @@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Admin') } it 'fails to memorialize account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:target_role) { UserRole.find_by(name: 'Moderator') } it 'fails to memorialize account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(account.reload).to_not be_memorial end end @@ -132,7 +132,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in enabling account' do - is_expected.to redirect_to admin_account_path(account.id) + expect(subject).to redirect_to admin_account_path(account.id) expect(user.reload).to_not be_disabled end end @@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to enable account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(user.reload).to be_disabled end end @@ -162,12 +162,12 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in approving account' do - is_expected.to redirect_to admin_accounts_path(status: 'pending') + expect(subject).to redirect_to admin_accounts_path(status: 'pending') expect(user.reload).to be_approved end it 'logs action' do - is_expected.to have_http_status 302 + expect(subject).to have_http_status 302 log_item = Admin::ActionLog.last @@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to approve account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(user.reload).to_not be_approved end end @@ -203,11 +203,11 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in rejecting account' do - is_expected.to redirect_to admin_accounts_path(status: 'pending') + expect(subject).to redirect_to admin_accounts_path(status: 'pending') end it 'logs action' do - is_expected.to have_http_status 302 + expect(subject).to have_http_status 302 log_item = Admin::ActionLog.last @@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to reject account' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 expect(user.reload).to_not be_approved end end @@ -242,7 +242,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in redownloading' do - is_expected.to redirect_to admin_account_path(account.id) + expect(subject).to redirect_to admin_account_path(account.id) end end @@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to redownload' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 end end end @@ -265,7 +265,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in removing avatar' do - is_expected.to redirect_to admin_account_path(account.id) + expect(subject).to redirect_to admin_account_path(account.id) end end @@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do let(:role) { UserRole.everyone } it 'fails to remove avatar' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 end end end diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb index a7e348b1ca..4716e486a2 100644 --- a/spec/controllers/admin/instances_controller_spec.rb +++ b/spec/controllers/admin/instances_controller_spec.rb @@ -42,7 +42,7 @@ RSpec.describe Admin::InstancesController, type: :controller do let(:role) { UserRole.find_by(name: 'Admin') } it 'succeeds in purging instance' do - is_expected.to redirect_to admin_instances_path + expect(subject).to redirect_to admin_instances_path end end @@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do let(:role) { nil } it 'fails to purge instance' do - is_expected.to have_http_status 403 + expect(subject).to have_http_status 403 end end end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index f14c451de1..e2a63002b6 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -28,7 +28,7 @@ describe ApplicationController, type: :controller do end it 'renders template for http' do - is_expected.to render_template("errors/#{code}", layout: 'error') + expect(subject).to render_template("errors/#{code}", layout: 'error') end end diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb index d845ae01d7..2409bf42c6 100644 --- a/spec/controllers/home_controller_spec.rb +++ b/spec/controllers/home_controller_spec.rb @@ -9,7 +9,7 @@ RSpec.describe HomeController, type: :controller do context 'when not signed in' do it 'returns http success' do @request.path = '/' - is_expected.to have_http_status(:success) + expect(subject).to have_http_status(:success) end end @@ -21,7 +21,7 @@ RSpec.describe HomeController, type: :controller do end it 'returns http success' do - is_expected.to have_http_status(:success) + expect(subject).to have_http_status(:success) end end end diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb index cd09cf50b6..4c4227d663 100644 --- a/spec/controllers/relationships_controller_spec.rb +++ b/spec/controllers/relationships_controller_spec.rb @@ -7,7 +7,7 @@ describe RelationshipsController do shared_examples 'authenticate user' do it 'redirects when not signed in' do - is_expected.to redirect_to '/auth/sign_in' + expect(subject).to redirect_to '/auth/sign_in' end end diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb index 33b87f9f67..fc338672d5 100644 --- a/spec/controllers/settings/featured_tags_controller_spec.rb +++ b/spec/controllers/settings/featured_tags_controller_spec.rb @@ -5,7 +5,7 @@ describe Settings::FeaturedTagsController do shared_examples 'authenticate user' do it 'redirects to sign_in page' do - is_expected.to redirect_to new_user_session_path + expect(subject).to redirect_to new_user_session_path end end diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb index 4ce153c9df..8159bb21b1 100644 --- a/spec/controllers/settings/migrations_controller_spec.rb +++ b/spec/controllers/settings/migrations_controller_spec.rb @@ -5,7 +5,7 @@ describe Settings::MigrationsController do shared_examples 'authenticate user' do it 'redirects to sign_in page' do - is_expected.to redirect_to new_user_session_path + expect(subject).to redirect_to new_user_session_path end end @@ -27,8 +27,8 @@ describe Settings::MigrationsController do let(:moved_to_account) { nil } it 'renders show page' do - is_expected.to have_http_status 200 - is_expected.to render_template :show + expect(subject).to have_http_status 200 + expect(subject).to render_template :show end end @@ -36,8 +36,8 @@ describe Settings::MigrationsController do let(:moved_to_account) { Fabricate(:account) } it 'renders show page' do - is_expected.to have_http_status 200 - is_expected.to render_template :show + expect(subject).to have_http_status 200 + expect(subject).to render_template :show end end end @@ -61,7 +61,7 @@ describe Settings::MigrationsController do let(:acct) { Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(user.account)]) } it 'updates moved to account' do - is_expected.to redirect_to settings_migration_path + expect(subject).to redirect_to settings_migration_path expect(user.account.reload.moved_to_account_id).to eq acct.id end end @@ -70,7 +70,7 @@ describe Settings::MigrationsController do let(:acct) { user.account } it 'renders show' do - is_expected.to render_template :show + expect(subject).to render_template :show end it 'does not update the moved account' do @@ -82,7 +82,7 @@ describe Settings::MigrationsController do let(:acct) { Fabricate(:account, also_known_as: []) } it 'renders show' do - is_expected.to render_template :show + expect(subject).to render_template :show end it 'does not update the moved account' do @@ -99,7 +99,7 @@ describe Settings::MigrationsController do end it 'renders show' do - is_expected.to render_template :show + expect(subject).to render_template :show end it 'does not update the moved account' do diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb index 59c18889ec..fdf46d9473 100644 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ b/spec/controllers/settings/sessions_controller_spec.rb @@ -15,7 +15,7 @@ describe Settings::SessionsController do let(:id) { session_activation.id } it 'destroys session activation' do - is_expected.to redirect_to edit_user_registration_path + expect(subject).to redirect_to edit_user_registration_path expect(SessionActivation.find_by(id: id)).to be_nil end end @@ -24,7 +24,7 @@ describe Settings::SessionsController do let(:id) { session_activation.id + 1000 } it 'destroys session activation' do - is_expected.to have_http_status 404 + expect(subject).to have_http_status 404 end end end diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index 5ae738ee26..934575ea63 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -21,7 +21,7 @@ describe 'Log in' do fill_in 'user_password', with: password click_on I18n.t('auth.login') - is_expected.to have_css('div.app-holder') + expect(subject).to have_css('div.app-holder') end it 'A invalid email and password user is not able to log in' do @@ -29,7 +29,7 @@ describe 'Log in' do fill_in 'user_password', with: 'invalid_password' click_on I18n.t('auth.login') - is_expected.to have_css('.flash-message', text: failure_message('invalid')) + expect(subject).to have_css('.flash-message', text: failure_message('invalid')) end context do @@ -40,7 +40,7 @@ describe 'Log in' do fill_in 'user_password', with: password click_on I18n.t('auth.login') - is_expected.to have_css('div.admin-wrapper') + expect(subject).to have_css('div.admin-wrapper') end end diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index d1c6919c1a..421b68a169 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -17,7 +17,7 @@ describe 'Profile' do it 'I can view Annes public account' do visit account_path('alice') - is_expected.to have_title("alice (@alice@#{local_domain})") + expect(subject).to have_title("alice (@alice@#{local_domain})") end it 'I can change my account' do @@ -28,6 +28,6 @@ describe 'Profile' do first('button[type=submit]').click - is_expected.to have_content 'Changes successfully saved!' + expect(subject).to have_content 'Changes successfully saved!' end end diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb index e1747bdd9d..c6fe8cf377 100644 --- a/spec/lib/emoji_formatter_spec.rb +++ b/spec/lib/emoji_formatter_spec.rb @@ -24,7 +24,7 @@ RSpec.describe EmojiFormatter do let(:text) { preformat_text(':coolcat: Beep boop') } it 'converts the shortcode to an image tag' do - is_expected.to match(/:coolcat:Foo bar

    ' + expect(subject).to eq '

    Foo bar

    ' end end @@ -20,7 +20,7 @@ RSpec.describe HtmlAwareFormatter do let(:text) { 'Beep boop' } it 'keeps the plain text' do - is_expected.to include 'Beep boop' + expect(subject).to include 'Beep boop' end end @@ -28,7 +28,7 @@ RSpec.describe HtmlAwareFormatter do let(:text) { '' } it 'strips the scripts' do - is_expected.to_not include '' + expect(subject).to_not include '' end end @@ -36,7 +36,7 @@ RSpec.describe HtmlAwareFormatter do let(:text) { 'Show more' } it 'strips the malicious classes' do - is_expected.to_not include 'status__content__spoiler-link' + expect(subject).to_not include 'status__content__spoiler-link' end end end diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb index 31195bae21..65ba7577ac 100644 --- a/spec/lib/ostatus/tag_manager_spec.rb +++ b/spec/lib/ostatus/tag_manager_spec.rb @@ -45,7 +45,7 @@ describe OStatus::TagManager do it 'returns the unique tag for status' do expect(target.object_type).to eq :comment - is_expected.to eq target.uri + expect(subject).to eq target.uri end end @@ -54,7 +54,7 @@ describe OStatus::TagManager do it 'returns the unique tag for status' do expect(target.object_type).to eq :note - is_expected.to eq target.uri + expect(subject).to eq target.uri end end @@ -63,7 +63,7 @@ describe OStatus::TagManager do it 'returns the URL for account' do expect(target.object_type).to eq :person - is_expected.to eq 'https://cb6e6126.ngrok.io/users/alice' + expect(subject).to eq 'https://cb6e6126.ngrok.io/users/alice' end end end diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb index c3d0ee6301..0e5f39031d 100644 --- a/spec/lib/plain_text_formatter_spec.rb +++ b/spec/lib/plain_text_formatter_spec.rb @@ -8,7 +8,7 @@ RSpec.describe PlainTextFormatter do let(:status) { Fabricate(:status, text: '

    a text by a nerd who uses an HTML tag in text

    ', uri: nil) } it 'returns the raw text' do - is_expected.to eq '

    a text by a nerd who uses an HTML tag in text

    ' + expect(subject).to eq '

    a text by a nerd who uses an HTML tag in text

    ' end end @@ -17,7 +17,7 @@ RSpec.describe PlainTextFormatter do let(:status) { Fabricate(:status, account: remote_account, text: '

    Hello

    ') } it 'returns tag-stripped text' do - is_expected.to eq 'Hello' + expect(subject).to eq 'Hello' end end end diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb index cc742b65e6..63a9075c7c 100644 --- a/spec/lib/text_formatter_spec.rb +++ b/spec/lib/text_formatter_spec.rb @@ -10,7 +10,7 @@ RSpec.describe TextFormatter do let(:text) { 'text' } it 'paragraphizes the text' do - is_expected.to eq '

    text

    ' + expect(subject).to eq '

    text

    ' end end @@ -18,7 +18,7 @@ RSpec.describe TextFormatter do let(:text) { "line\nfeed" } it 'removes line feeds' do - is_expected.to_not include "\n" + expect(subject).to_not include "\n" end end @@ -27,7 +27,7 @@ RSpec.describe TextFormatter do let(:text) { '@alice' } it 'creates a mention link' do - is_expected.to include '@alice' + expect(subject).to include '@alice' end end @@ -36,7 +36,7 @@ RSpec.describe TextFormatter do let(:text) { '@alice' } it 'does not create a mention link' do - is_expected.to include '@alice' + expect(subject).to include '@alice' end end @@ -44,7 +44,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4' } it 'matches the full URL' do - is_expected.to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"' + expect(subject).to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"' end end @@ -52,7 +52,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://google.com' } it 'matches the full URL' do - is_expected.to include 'href="http://google.com"' + expect(subject).to include 'href="http://google.com"' end end @@ -60,7 +60,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://example.gay' } it 'matches the full URL' do - is_expected.to include 'href="http://example.gay"' + expect(subject).to include 'href="http://example.gay"' end end @@ -68,11 +68,11 @@ RSpec.describe TextFormatter do let(:text) { 'https://nic.みんな/' } it 'matches the full URL' do - is_expected.to include 'href="https://nic.みんな/"' + expect(subject).to include 'href="https://nic.みんな/"' end it 'has display URL' do - is_expected.to include 'nic.みんな/' + expect(subject).to include 'nic.みんな/' end end @@ -80,7 +80,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona. ' } it 'matches the full URL but not the period' do - is_expected.to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"' + expect(subject).to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"' end end @@ -88,7 +88,7 @@ RSpec.describe TextFormatter do let(:text) { '(http://google.com/)' } it 'matches the full URL but not the parentheses' do - is_expected.to include 'href="http://google.com/"' + expect(subject).to include 'href="http://google.com/"' end end @@ -96,7 +96,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://www.google.com!' } it 'matches the full URL but not the exclamation point' do - is_expected.to include 'href="http://www.google.com"' + expect(subject).to include 'href="http://www.google.com"' end end @@ -104,7 +104,7 @@ RSpec.describe TextFormatter do let(:text) { "http://www.google.com'" } it 'matches the full URL but not the single quote' do - is_expected.to include 'href="http://www.google.com"' + expect(subject).to include 'href="http://www.google.com"' end end @@ -112,7 +112,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://www.google.com>' } it 'matches the full URL but not the angle bracket' do - is_expected.to include 'href="http://www.google.com"' + expect(subject).to include 'href="http://www.google.com"' end end @@ -121,7 +121,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink' } it 'matches the full URL' do - is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"' + expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"' end end @@ -129,7 +129,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓&q=autolink' } it 'matches the full URL' do - is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"' + expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"' end end @@ -137,7 +137,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓' } it 'matches the full URL' do - is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"' + expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"' end end @@ -145,7 +145,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink' } it 'preserves escaped unicode characters' do - is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"' + expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"' end end end @@ -154,7 +154,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://en.wikipedia.org/wiki/Diaspora_(software)' } it 'matches the full URL' do - is_expected.to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"' + expect(subject).to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"' end end @@ -162,7 +162,7 @@ RSpec.describe TextFormatter do let(:text) { '"https://example.com/"' } it 'does not match the quotation marks' do - is_expected.to include 'href="https://example.com/"' + expect(subject).to include 'href="https://example.com/"' end end @@ -170,7 +170,7 @@ RSpec.describe TextFormatter do let(:text) { '' } it 'does not match the angle brackets' do - is_expected.to include 'href="https://example.com/"' + expect(subject).to include 'href="https://example.com/"' end end @@ -178,7 +178,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://ja.wikipedia.org/wiki/日本' } it 'matches the full URL' do - is_expected.to include 'href="https://ja.wikipedia.org/wiki/日本"' + expect(subject).to include 'href="https://ja.wikipedia.org/wiki/日本"' end end @@ -186,7 +186,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://ko.wikipedia.org/wiki/대한민국' } it 'matches the full URL' do - is_expected.to include 'href="https://ko.wikipedia.org/wiki/대한민국"' + expect(subject).to include 'href="https://ko.wikipedia.org/wiki/대한민국"' end end @@ -194,7 +194,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://example.com/ abc123' } it 'does not match the full-width space' do - is_expected.to include 'href="https://example.com/"' + expect(subject).to include 'href="https://example.com/"' end end @@ -202,7 +202,7 @@ RSpec.describe TextFormatter do let(:text) { '「[https://example.org/」' } it 'does not match the quotation marks' do - is_expected.to include 'href="https://example.org/"' + expect(subject).to include 'href="https://example.org/"' end end @@ -210,7 +210,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://baike.baidu.com/item/中华人民共和国' } it 'matches the full URL' do - is_expected.to include 'href="https://baike.baidu.com/item/中华人民共和国"' + expect(subject).to include 'href="https://baike.baidu.com/item/中华人民共和国"' end end @@ -218,7 +218,7 @@ RSpec.describe TextFormatter do let(:text) { 'https://zh.wikipedia.org/wiki/臺灣' } it 'matches the full URL' do - is_expected.to include 'href="https://zh.wikipedia.org/wiki/臺灣"' + expect(subject).to include 'href="https://zh.wikipedia.org/wiki/臺灣"' end end @@ -226,11 +226,11 @@ RSpec.describe TextFormatter do let(:text) { 'http://example.com/bb' } it 'does not include the HTML in the URL' do - is_expected.to include '"http://example.com/b"' + expect(subject).to include '"http://example.com/b"' end it 'escapes the HTML' do - is_expected.to include '<del>b</del>' + expect(subject).to include '<del>b</del>' end end @@ -238,11 +238,11 @@ RSpec.describe TextFormatter do let(:text) { 'http://example.com/blahblahblahblah/a' } it 'does not include the HTML in the URL' do - is_expected.to include '"http://example.com/blahblahblahblah/a"' + expect(subject).to include '"http://example.com/blahblahblahblah/a"' end it 'escapes the HTML' do - is_expected.to include '<script>alert("Hello")</script>' + expect(subject).to include '<script>alert("Hello")</script>' end end @@ -250,7 +250,7 @@ RSpec.describe TextFormatter do let(:text) { '' } it 'escapes the HTML' do - is_expected.to include '

    <script>alert("Hello")</script>

    ' + expect(subject).to include '

    <script>alert("Hello")</script>

    ' end end @@ -258,7 +258,7 @@ RSpec.describe TextFormatter do let(:text) { %q{} } it 'escapes the HTML' do - is_expected.to include '

    <img src="javascript:alert('XSS');">

    ' + expect(subject).to include '

    <img src="javascript:alert('XSS');">

    ' end end @@ -266,7 +266,7 @@ RSpec.describe TextFormatter do let(:text) { 'http://www\.google\.com' } it 'outputs the raw URL' do - is_expected.to eq '

    http://www\.google\.com

    ' + expect(subject).to eq '

    http://www\.google\.com

    ' end end @@ -274,7 +274,7 @@ RSpec.describe TextFormatter do let(:text) { '#hashtag' } it 'creates a hashtag link' do - is_expected.to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag' + expect(subject).to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag' end end @@ -282,7 +282,7 @@ RSpec.describe TextFormatter do let(:text) { '#hashtagタグ' } it 'creates a hashtag link' do - is_expected.to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ' + expect(subject).to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ' end end @@ -290,7 +290,7 @@ RSpec.describe TextFormatter do let(:text) { 'xmpp:user@instance.com' } it 'matches the full URI' do - is_expected.to include 'href="xmpp:user@instance.com"' + expect(subject).to include 'href="xmpp:user@instance.com"' end end @@ -298,7 +298,7 @@ RSpec.describe TextFormatter do let(:text) { 'please join xmpp:muc@instance.com?join right now' } it 'matches the full URI' do - is_expected.to include 'href="xmpp:muc@instance.com?join"' + expect(subject).to include 'href="xmpp:muc@instance.com?join"' end end @@ -306,7 +306,7 @@ RSpec.describe TextFormatter do let(:text) { 'wikipedia gives this example of a magnet uri: magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a' } it 'matches the full URI' do - is_expected.to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"' + expect(subject).to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"' end end end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index b2d84308b5..fbfc9fbbc5 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -14,13 +14,13 @@ describe AccountInteractions do context 'account with Follow' do it 'returns { target_account_id => true }' do Fabricate(:follow, account: account, target_account: target_account) - is_expected.to eq(target_account_id => { reblogs: true, notify: false, languages: nil }) + expect(subject).to eq(target_account_id => { reblogs: true, notify: false, languages: nil }) end end context 'account without Follow' do it 'returns {}' do - is_expected.to eq({}) + expect(subject).to eq({}) end end end @@ -31,13 +31,13 @@ describe AccountInteractions do context 'account with Follow' do it 'returns { target_account_id => true }' do Fabricate(:follow, account: target_account, target_account: account) - is_expected.to eq(target_account_id => true) + expect(subject).to eq(target_account_id => true) end end context 'account without Follow' do it 'returns {}' do - is_expected.to eq({}) + expect(subject).to eq({}) end end end @@ -48,13 +48,13 @@ describe AccountInteractions do context 'account with Block' do it 'returns { target_account_id => true }' do Fabricate(:block, account: account, target_account: target_account) - is_expected.to eq(target_account_id => true) + expect(subject).to eq(target_account_id => true) end end context 'account without Block' do it 'returns {}' do - is_expected.to eq({}) + expect(subject).to eq({}) end end end @@ -71,7 +71,7 @@ describe AccountInteractions do let(:hide) { true } it 'returns { target_account_id => { notifications: true } }' do - is_expected.to eq(target_account_id => { notifications: true }) + expect(subject).to eq(target_account_id => { notifications: true }) end end @@ -79,14 +79,14 @@ describe AccountInteractions do let(:hide) { false } it 'returns { target_account_id => { notifications: false } }' do - is_expected.to eq(target_account_id => { notifications: false }) + expect(subject).to eq(target_account_id => { notifications: false }) end end end context 'account without Mute' do it 'returns {}' do - is_expected.to eq({}) + expect(subject).to eq({}) end end end @@ -231,7 +231,7 @@ describe AccountInteractions do it 'creates and returns ConversationMute' do expect do - is_expected.to be_a ConversationMute + expect(subject).to be_a ConversationMute end.to change { account.conversation_mutes.count }.by 1 end end @@ -243,7 +243,7 @@ describe AccountInteractions do it 'creates and returns AccountDomainBlock' do expect do - is_expected.to be_a AccountDomainBlock + expect(subject).to be_a AccountDomainBlock end.to change { account.domain_blocks.count }.by 1 end end @@ -254,14 +254,14 @@ describe AccountInteractions do context 'following target_account' do it 'returns destroyed Follow' do account.active_relationships.create(target_account: target_account) - is_expected.to be_a Follow + expect(subject).to be_a Follow expect(subject).to be_destroyed end end context 'not following target_account' do it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -272,14 +272,14 @@ describe AccountInteractions do context 'blocking target_account' do it 'returns destroyed Block' do account.block_relationships.create(target_account: target_account) - is_expected.to be_a Block + expect(subject).to be_a Block expect(subject).to be_destroyed end end context 'not blocking target_account' do it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -290,14 +290,14 @@ describe AccountInteractions do context 'muting target_account' do it 'returns destroyed Mute' do account.mute_relationships.create(target_account: target_account) - is_expected.to be_a Mute + expect(subject).to be_a Mute expect(subject).to be_destroyed end end context 'not muting target_account' do it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -310,14 +310,14 @@ describe AccountInteractions do context 'muting the conversation' do it 'returns destroyed ConversationMute' do account.conversation_mutes.create(conversation: conversation) - is_expected.to be_a ConversationMute + expect(subject).to be_a ConversationMute expect(subject).to be_destroyed end end context 'not muting the conversation' do it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -331,14 +331,14 @@ describe AccountInteractions do it 'returns destroyed AccountDomainBlock' do account_domain_block = Fabricate(:account_domain_block, domain: domain) account.domain_blocks << account_domain_block - is_expected.to be_a AccountDomainBlock + expect(subject).to be_a AccountDomainBlock expect(subject).to be_destroyed end end context 'unblocking the domain' do it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -349,13 +349,13 @@ describe AccountInteractions do context 'following target_account' do it 'returns true' do account.active_relationships.create(target_account: target_account) - is_expected.to be true + expect(subject).to be true end end context 'not following target_account' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -366,13 +366,13 @@ describe AccountInteractions do context 'followed by target_account' do it 'returns true' do account.passive_relationships.create(account: target_account) - is_expected.to be true + expect(subject).to be true end end context 'not followed by target_account' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -383,13 +383,13 @@ describe AccountInteractions do context 'blocking target_account' do it 'returns true' do account.block_relationships.create(target_account: target_account) - is_expected.to be true + expect(subject).to be true end end context 'not blocking target_account' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -403,13 +403,13 @@ describe AccountInteractions do it 'returns true' do account_domain_block = Fabricate(:account_domain_block, domain: domain) account.domain_blocks << account_domain_block - is_expected.to be true + expect(subject).to be true end end context 'not blocking the domain' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -421,13 +421,13 @@ describe AccountInteractions do it 'returns true' do mute = Fabricate(:mute, account: account, target_account: target_account) account.mute_relationships << mute - is_expected.to be true + expect(subject).to be true end end context 'not muting target_account' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -440,13 +440,13 @@ describe AccountInteractions do context 'muting the conversation' do it 'returns true' do account.conversation_mutes.create(conversation: conversation) - is_expected.to be true + expect(subject).to be true end end context 'not muting the conversation' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -463,7 +463,7 @@ describe AccountInteractions do let(:hide) { true } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -471,7 +471,7 @@ describe AccountInteractions do let(:hide) { false } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -482,13 +482,13 @@ describe AccountInteractions do context 'requested by target_account' do it 'returns true' do Fabricate(:follow_request, account: account, target_account: target_account) - is_expected.to be true + expect(subject).to be true end end context 'not requested by target_account' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -502,7 +502,7 @@ describe AccountInteractions do let(:favourites) { [Fabricate(:favourite, account: account)] } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -510,7 +510,7 @@ describe AccountInteractions do let(:favourites) { [] } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -524,7 +524,7 @@ describe AccountInteractions do let(:reblogs) { [Fabricate(:status, account: account)] } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -532,7 +532,7 @@ describe AccountInteractions do let(:reblogs) { [] } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -545,13 +545,13 @@ describe AccountInteractions do context 'pinned' do it 'returns true' do Fabricate(:status_pin, account: account, status: status) - is_expected.to be true + expect(subject).to be true end end context 'not pinned' do it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb index f9e1099c60..1fc112db3c 100644 --- a/spec/models/custom_emoji_spec.rb +++ b/spec/models/custom_emoji_spec.rb @@ -11,7 +11,7 @@ RSpec.describe CustomEmoji, type: :model do let(:search_term) { 'blobpats' } it 'finds emoji' do - is_expected.to include(custom_emoji) + expect(subject).to include(custom_emoji) end end @@ -20,7 +20,7 @@ RSpec.describe CustomEmoji, type: :model do let(:search_term) { 'blob' } it 'finds emoji' do - is_expected.to include(custom_emoji) + expect(subject).to include(custom_emoji) end end end @@ -34,7 +34,7 @@ RSpec.describe CustomEmoji, type: :model do let(:domain) { nil } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -42,7 +42,7 @@ RSpec.describe CustomEmoji, type: :model do let(:domain) { 'example.com' } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -63,7 +63,7 @@ RSpec.describe CustomEmoji, type: :model do let(:text) { 'Hello :coolcat:' } it 'returns records used via shortcodes in text' do - is_expected.to include(emojo) + expect(subject).to include(emojo) end end @@ -71,7 +71,7 @@ RSpec.describe CustomEmoji, type: :model do let(:text) { '

    Hello :coolcat:

    ' } it 'returns records used via shortcodes in text' do - is_expected.to include(emojo) + expect(subject).to include(emojo) end end end diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index d1a94d41a1..8889d5f7c4 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -10,7 +10,7 @@ RSpec.describe MediaAttachment, type: :model do let(:remote_url) { '' } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -18,7 +18,7 @@ RSpec.describe MediaAttachment, type: :model do let(:remote_url) { 'remote_url' } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end @@ -35,7 +35,7 @@ RSpec.describe MediaAttachment, type: :model do let(:remote_url) { 'remote_url' } it 'returns true' do - is_expected.to be true + expect(subject).to be true end end end @@ -47,7 +47,7 @@ RSpec.describe MediaAttachment, type: :model do let(:remote_url) { '' } it 'returns false' do - is_expected.to be false + expect(subject).to be false end end @@ -55,7 +55,7 @@ RSpec.describe MediaAttachment, type: :model do let(:remote_url) { 'remote_url' } it 'returns true' do - is_expected.to be false + expect(subject).to be false end end end diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb index 1e9e45d8d6..a8fb776390 100644 --- a/spec/models/notification_spec.rb +++ b/spec/models/notification_spec.rb @@ -68,7 +68,7 @@ RSpec.describe Notification, type: :model do let(:notifications) { [] } it 'returns []' do - is_expected.to eq [] + expect(subject).to eq [] end end diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb index 5b4c19b5bb..c6bbecf25b 100644 --- a/spec/models/remote_follow_spec.rb +++ b/spec/models/remote_follow_spec.rb @@ -17,7 +17,7 @@ RSpec.describe RemoteFollow do let(:attrs) { { acct: 'gargron@quitter.no' } } it 'returns acct' do - is_expected.to eq 'gargron@quitter.no' + expect(subject).to eq 'gargron@quitter.no' end end @@ -25,7 +25,7 @@ RSpec.describe RemoteFollow do let(:attrs) { {} } it do - is_expected.to be_nil + expect(subject).to be_nil end end end @@ -37,7 +37,7 @@ RSpec.describe RemoteFollow do let(:attrs) { { acct: 'gargron@quitter.no' } } it do - is_expected.to be true + expect(subject).to be true end end @@ -45,7 +45,7 @@ RSpec.describe RemoteFollow do let(:attrs) { {} } it do - is_expected.to be false + expect(subject).to be false end end end @@ -61,7 +61,7 @@ RSpec.describe RemoteFollow do subject { remote_follow.subscribe_address_for(account) } it 'returns subscribe address' do - is_expected.to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice' + expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice' end end end diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index 874be41328..3178512974 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -33,7 +33,7 @@ describe Report do end it 'assigns to a given account' do - is_expected.to eq current_account.id + expect(subject).to eq current_account.id end end @@ -48,7 +48,7 @@ describe Report do end it 'unassigns' do - is_expected.to be_nil + expect(subject).to be_nil end end diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb index 26f2b561a1..375199d575 100644 --- a/spec/models/session_activation_spec.rb +++ b/spec/models/session_activation_spec.rb @@ -44,7 +44,7 @@ RSpec.describe SessionActivation, type: :model do let(:id) { nil } it 'returns nil' do - is_expected.to be_nil + expect(subject).to be_nil end end @@ -54,7 +54,7 @@ RSpec.describe SessionActivation, type: :model do context 'id exists as session_id' do it 'returns true' do - is_expected.to be true + expect(subject).to be true end end @@ -64,7 +64,7 @@ RSpec.describe SessionActivation, type: :model do end it 'returns false' do - is_expected.to be false + expect(subject).to be false end end end diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 0772230943..86fdf4e087 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -173,7 +173,7 @@ RSpec.describe Setting, type: :model do let(:enabled) { false } it 'returns {}' do - is_expected.to eq({}) + expect(subject).to eq({}) end end @@ -181,7 +181,7 @@ RSpec.describe Setting, type: :model do let(:enabled) { true } it 'returns instance of RailsSettings::Default' do - is_expected.to be_a RailsSettings::Default + expect(subject).to be_a RailsSettings::Default end end end From 4ea1e0fceb0c0c5fee014a99f81f8f13a16f6dde Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 23:00:59 -0500 Subject: [PATCH 0501/1220] Enable Rubocop RSpec/ExpectActual (#23720) --- .rubocop_todo.yml | 6 ------ spec/controllers/well_known/nodeinfo_controller_spec.rb | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4c3b3ecb6d..eb0910fe6c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -821,12 +821,6 @@ RSpec/EmptyExampleGroup: RSpec/ExampleLength: Max: 22 -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -RSpec/ExpectActual: - Exclude: - - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' - # Offense count: 21 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb index e9436cd262..0cadc54357 100644 --- a/spec/controllers/well_known/nodeinfo_controller_spec.rb +++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb @@ -26,8 +26,9 @@ describe WellKnown::NodeInfoController, type: :controller do expect(response.media_type).to eq 'application/json' json = body_as_json + foo = { 'foo' => 0 } - expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0') + expect(foo).to_not match_json_schema('nodeinfo_2.0') expect(json).to match_json_schema('nodeinfo_2.0') expect(json[:version]).to eq '2.0' expect(json[:usage]).to be_a Hash From 4552685f6bd400666ec4058783eeabb11568e575 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 19 Feb 2023 23:24:14 -0500 Subject: [PATCH 0502/1220] Autofix Rubocop RSpec/LeadingSubject (#23670) --- .rubocop_todo.yml | 82 ------------------- .../collections_controller_spec.rb | 4 +- ...lowers_synchronizations_controller_spec.rb | 4 +- .../activitypub/inboxes_controller_spec.rb | 4 +- .../activitypub/outboxes_controller_spec.rb | 4 +- .../admin/invites_controller_spec.rb | 4 +- .../auth/registrations_controller_spec.rb | 64 +++++++-------- .../well_known/webfinger_controller_spec.rb | 8 +- spec/lib/activitypub/activity/accept_spec.rb | 4 +- .../lib/activitypub/activity/announce_spec.rb | 8 +- spec/lib/activitypub/activity/create_spec.rb | 16 ++-- spec/lib/activitypub/activity/reject_spec.rb | 4 +- spec/lib/activitypub/activity/undo_spec.rb | 4 +- spec/lib/activitypub/activity/update_spec.rb | 4 +- spec/lib/activitypub/adapter_spec.rb | 4 +- spec/lib/activitypub/dereferencer_spec.rb | 4 +- .../activitypub/linked_data_signature_spec.rb | 4 +- spec/lib/link_details_extractor_spec.rb | 4 +- spec/lib/status_filter_spec.rb | 4 +- spec/lib/status_reach_finder_spec.rb | 4 +- spec/lib/suspicious_sign_in_detector_spec.rb | 4 +- spec/lib/text_formatter_spec.rb | 4 +- spec/lib/vacuum/backups_vacuum_spec.rb | 4 +- .../vacuum/media_attachments_vacuum_spec.rb | 4 +- spec/lib/vacuum/preview_cards_vacuum_spec.rb | 4 +- spec/lib/vacuum/statuses_vacuum_spec.rb | 4 +- spec/models/account/field_spec.rb | 12 +-- spec/models/account_spec.rb | 16 ++-- .../account_statuses_cleanup_policy_spec.rb | 20 ++--- spec/models/account_statuses_filter_spec.rb | 4 +- .../concerns/account_interactions_spec.rb | 40 ++++----- spec/models/custom_emoji_filter_spec.rb | 4 +- spec/models/custom_emoji_spec.rb | 12 +-- spec/models/home_feed_spec.rb | 4 +- spec/models/media_attachment_spec.rb | 8 +- spec/models/public_feed_spec.rb | 16 ++-- spec/models/remote_follow_spec.rb | 4 +- spec/models/setting_spec.rb | 4 +- spec/models/status_spec.rb | 16 ++-- spec/models/user_spec.rb | 4 +- spec/models/web/push_subscription_spec.rb | 4 +- .../familiar_followers_presenter_spec.rb | 4 +- spec/serializers/activitypub/note_spec.rb | 4 +- .../activitypub/update_poll_spec.rb | 4 +- .../rest/account_serializer_spec.rb | 4 +- .../fetch_featured_collection_service_spec.rb | 4 +- ...h_featured_tags_collection_service_spec.rb | 4 +- .../fetch_remote_status_service_spec.rb | 4 +- .../activitypub/fetch_replies_service_spec.rb | 4 +- .../process_account_service_spec.rb | 8 +- .../process_collection_service_spec.rb | 4 +- .../process_status_update_service_spec.rb | 4 +- .../synchronize_followers_service_spec.rb | 4 +- ..._block_domain_from_account_service_spec.rb | 4 +- spec/services/app_sign_up_service_spec.rb | 4 +- .../services/authorize_follow_service_spec.rb | 4 +- spec/services/block_domain_service_spec.rb | 4 +- spec/services/block_service_spec.rb | 4 +- .../clear_domain_media_service_spec.rb | 4 +- spec/services/delete_account_service_spec.rb | 4 +- .../services/fan_out_on_write_service_spec.rb | 4 +- spec/services/favourite_service_spec.rb | 4 +- spec/services/fetch_resource_service_spec.rb | 4 +- spec/services/follow_service_spec.rb | 4 +- .../services/process_mentions_service_spec.rb | 4 +- spec/services/purge_domain_service_spec.rb | 4 +- spec/services/reblog_service_spec.rb | 8 +- spec/services/reject_follow_service_spec.rb | 4 +- .../remove_from_follwers_service_spec.rb | 4 +- spec/services/report_service_spec.rb | 12 +-- spec/services/suspend_account_service_spec.rb | 4 +- spec/services/unallow_domain_service_spec.rb | 4 +- spec/services/unblock_service_spec.rb | 4 +- spec/services/unfollow_service_spec.rb | 4 +- .../unsuspend_account_service_spec.rb | 4 +- .../blacklisted_email_validator_spec.rb | 4 +- spec/workers/move_worker_spec.rb | 4 +- spec/workers/unfollow_follow_worker_spec.rb | 4 +- 78 files changed, 256 insertions(+), 338 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index eb0910fe6c..1eb039110e 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -952,88 +952,6 @@ RSpec/InstanceVariable: - 'spec/services/search_service_spec.rb' - 'spec/services/unblock_domain_service_spec.rb' -# Offense count: 118 -# This cop supports safe autocorrection (--autocorrect). -RSpec/LeadingSubject: - Exclude: - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - - 'spec/controllers/activitypub/inboxes_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/admin/invites_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/well_known/webfinger_controller_spec.rb' - - 'spec/lib/activitypub/activity/accept_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/activitypub/activity/reject_spec.rb' - - 'spec/lib/activitypub/activity/undo_spec.rb' - - 'spec/lib/activitypub/activity/update_spec.rb' - - 'spec/lib/activitypub/adapter_spec.rb' - - 'spec/lib/activitypub/dereferencer_spec.rb' - - 'spec/lib/activitypub/linked_data_signature_spec.rb' - - 'spec/lib/link_details_extractor_spec.rb' - - 'spec/lib/status_filter_spec.rb' - - 'spec/lib/status_reach_finder_spec.rb' - - 'spec/lib/suspicious_sign_in_detector_spec.rb' - - 'spec/lib/text_formatter_spec.rb' - - 'spec/lib/vacuum/backups_vacuum_spec.rb' - - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' - - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' - - 'spec/lib/vacuum/statuses_vacuum_spec.rb' - - 'spec/models/account/field_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/models/account_statuses_filter_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - - 'spec/models/custom_emoji_filter_spec.rb' - - 'spec/models/custom_emoji_spec.rb' - - 'spec/models/home_feed_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/public_feed_spec.rb' - - 'spec/models/remote_follow_spec.rb' - - 'spec/models/setting_spec.rb' - - 'spec/models/status_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/models/web/push_subscription_spec.rb' - - 'spec/presenters/familiar_followers_presenter_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' - - 'spec/serializers/rest/account_serializer_spec.rb' - - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/activitypub/fetch_replies_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/activitypub/synchronize_followers_service_spec.rb' - - 'spec/services/after_block_domain_from_account_service_spec.rb' - - 'spec/services/app_sign_up_service_spec.rb' - - 'spec/services/authorize_follow_service_spec.rb' - - 'spec/services/block_domain_service_spec.rb' - - 'spec/services/block_service_spec.rb' - - 'spec/services/clear_domain_media_service_spec.rb' - - 'spec/services/delete_account_service_spec.rb' - - 'spec/services/fan_out_on_write_service_spec.rb' - - 'spec/services/favourite_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/services/follow_service_spec.rb' - - 'spec/services/process_mentions_service_spec.rb' - - 'spec/services/purge_domain_service_spec.rb' - - 'spec/services/reblog_service_spec.rb' - - 'spec/services/reject_follow_service_spec.rb' - - 'spec/services/remove_from_follwers_service_spec.rb' - - 'spec/services/report_service_spec.rb' - - 'spec/services/suspend_account_service_spec.rb' - - 'spec/services/unallow_domain_service_spec.rb' - - 'spec/services/unblock_service_spec.rb' - - 'spec/services/unfollow_service_spec.rb' - - 'spec/services/unsuspend_account_service_spec.rb' - - 'spec/validators/blacklisted_email_validator_spec.rb' - - 'spec/workers/move_worker_spec.rb' - - 'spec/workers/unfollow_follow_worker_spec.rb' - # Offense count: 15 RSpec/LeakyConstantDeclaration: Exclude: diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index 19c0e0a646..77901131e7 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -35,11 +35,11 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do describe 'GET #show' do context 'when id is "featured"' do context 'without signature' do - let(:remote_account) { nil } + subject(:body) { body_as_json } subject(:response) { get :show, params: { id: 'featured', account_username: account.username } } - subject(:body) { body_as_json } + let(:remote_account) { nil } it 'returns http success' do expect(response).to have_http_status(200) diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb index 893c8e14f1..6ec756d3cf 100644 --- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb +++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb @@ -32,11 +32,11 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll end context 'with signature from example.com' do - let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') } + subject(:body) { body_as_json } subject(:response) { get :show, params: { account_username: account.username } } - subject(:body) { body_as_json } + let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') } it 'returns http success' do expect(response).to have_http_status(200) diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb index 7f4d6b2d3e..8d4084648d 100644 --- a/spec/controllers/activitypub/inboxes_controller_spec.rb +++ b/spec/controllers/activitypub/inboxes_controller_spec.rb @@ -22,10 +22,10 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do end context 'for a specific account' do - let(:account) { Fabricate(:account) } - subject(:response) { post :create, params: { account_username: account.username }, body: '{}' } + let(:account) { Fabricate(:account) } + context 'when account is permanently suspended' do before do account.suspend! diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb index f84a902ea1..7369ee4134 100644 --- a/spec/controllers/activitypub/outboxes_controller_spec.rb +++ b/spec/controllers/activitypub/outboxes_controller_spec.rb @@ -33,11 +33,11 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do describe 'GET #show' do context 'without signature' do - let(:remote_account) { nil } + subject(:body) { body_as_json } subject(:response) { get :show, params: { account_username: account.username, page: page } } - subject(:body) { body_as_json } + let(:remote_account) { nil } context 'with page not requested' do let(:page) { nil } diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb index 1fb4887423..92ec4e4491 100644 --- a/spec/controllers/admin/invites_controller_spec.rb +++ b/spec/controllers/admin/invites_controller_spec.rb @@ -33,10 +33,10 @@ describe Admin::InvitesController do end describe 'DELETE #destroy' do - let!(:invite) { Fabricate(:invite, expires_at: nil) } - subject { delete :destroy, params: { id: invite.id } } + let!(:invite) { Fabricate(:invite, expires_at: nil) } + it 'expires invite' do expect(subject).to redirect_to admin_invites_path expect(invite.reload).to be_expired diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index 52023eb2ef..8cfb8e277a 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -95,18 +95,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do before { request.env['devise.mapping'] = Devise.mappings[:user] } context do - around do |example| - registrations_mode = Setting.registrations_mode - example.run - Setting.registrations_mode = registrations_mode - end - subject do Setting.registrations_mode = 'open' request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } } end + around do |example| + registrations_mode = Setting.registrations_mode + example.run + Setting.registrations_mode = registrations_mode + end + it 'redirects to setup' do subject expect(response).to redirect_to auth_setup_path @@ -121,18 +121,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end context 'when user has not agreed to terms of service' do - around do |example| - registrations_mode = Setting.registrations_mode - example.run - Setting.registrations_mode = registrations_mode - end - subject do Setting.registrations_mode = 'open' request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'false' } } end + around do |example| + registrations_mode = Setting.registrations_mode + example.run + Setting.registrations_mode = registrations_mode + end + it 'does not create user' do subject user = User.find_by(email: 'test@example.com') @@ -141,18 +141,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end context 'approval-based registrations without invite' do - around do |example| - registrations_mode = Setting.registrations_mode - example.run - Setting.registrations_mode = registrations_mode - end - subject do Setting.registrations_mode = 'approved' request.headers['Accept-Language'] = accept_language post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } } end + around do |example| + registrations_mode = Setting.registrations_mode + example.run + Setting.registrations_mode = registrations_mode + end + it 'redirects to setup' do subject expect(response).to redirect_to auth_setup_path @@ -168,12 +168,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end context 'approval-based registrations with expired invite' do - around do |example| - registrations_mode = Setting.registrations_mode - example.run - Setting.registrations_mode = registrations_mode - end - subject do Setting.registrations_mode = 'approved' request.headers['Accept-Language'] = accept_language @@ -181,6 +175,12 @@ RSpec.describe Auth::RegistrationsController, type: :controller do post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end + around do |example| + registrations_mode = Setting.registrations_mode + example.run + Setting.registrations_mode = registrations_mode + end + it 'redirects to setup' do subject expect(response).to redirect_to auth_setup_path @@ -196,14 +196,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end context 'approval-based registrations with valid invite and required invite text' do - around do |example| - registrations_mode = Setting.registrations_mode - require_invite_text = Setting.require_invite_text - example.run - Setting.require_invite_text = require_invite_text - Setting.registrations_mode = registrations_mode - end - subject do inviter = Fabricate(:user, confirmed_at: 2.days.ago) Setting.registrations_mode = 'approved' @@ -213,6 +205,14 @@ RSpec.describe Auth::RegistrationsController, type: :controller do post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } } end + around do |example| + registrations_mode = Setting.registrations_mode + require_invite_text = Setting.require_invite_text + example.run + Setting.require_invite_text = require_invite_text + Setting.registrations_mode = registrations_mode + end + it 'redirects to setup' do subject expect(response).to redirect_to auth_setup_path diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb index 8574d369d1..1ccfb218e8 100644 --- a/spec/controllers/well_known/webfinger_controller_spec.rb +++ b/spec/controllers/well_known/webfinger_controller_spec.rb @@ -4,6 +4,10 @@ describe WellKnown::WebfingerController, type: :controller do render_views describe 'GET #show' do + subject do + get :show, params: { resource: resource }, format: :json + end + let(:alternate_domains) { [] } let(:alice) { Fabricate(:account, username: 'alice') } let(:resource) { nil } @@ -15,10 +19,6 @@ describe WellKnown::WebfingerController, type: :controller do Rails.configuration.x.alternate_domains = tmp end - subject do - get :show, params: { resource: resource }, format: :json - end - shared_examples 'a successful response' do it 'returns http success' do expect(response).to have_http_status(200) diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb index 304cf2208a..95a5a8747d 100644 --- a/spec/lib/activitypub/activity/accept_spec.rb +++ b/spec/lib/activitypub/activity/accept_spec.rb @@ -42,6 +42,8 @@ RSpec.describe ActivityPub::Activity::Accept do end context 'given a relay' do + subject { described_class.new(json, sender) } + let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') } let(:json) do @@ -59,8 +61,6 @@ RSpec.describe ActivityPub::Activity::Accept do }.with_indifferent_access end - subject { described_class.new(json, sender) } - it 'marks the relay as accepted' do subject.perform expect(relay.reload.accepted?).to be true diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index adb13acc21..b3257e881f 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Announce do + subject { described_class.new(json, sender) } + let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', uri: 'https://example.com/actor') } let(:recipient) { Fabricate(:account) } let(:status) { Fabricate(:status, account: recipient) } @@ -27,8 +29,6 @@ RSpec.describe ActivityPub::Activity::Announce do } end - subject { described_class.new(json, sender) } - describe '#perform' do context 'when sender is followed by a local account' do before do @@ -110,13 +110,13 @@ RSpec.describe ActivityPub::Activity::Announce do end context 'when the sender is relayed' do + subject { described_class.new(json, sender, relayed_through_actor: relay_account) } + let!(:relay_account) { Fabricate(:account, inbox_url: 'https://relay.example.com/inbox') } let!(:relay) { Fabricate(:relay, inbox_url: 'https://relay.example.com/inbox') } let(:object_json) { 'https://example.com/actor/hello-world' } - subject { described_class.new(json, sender, relayed_through_actor: relay_account) } - before do stub_request(:get, 'https://example.com/actor/hello-world').to_return(body: Oj.dump(unknown_object_json)) end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index ddbdb07aa8..c26c8b3580 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -752,6 +752,8 @@ RSpec.describe ActivityPub::Activity::Create do end context 'with an encrypted message' do + subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) } + let(:recipient) { Fabricate(:account) } let(:object_json) do { @@ -776,8 +778,6 @@ RSpec.describe ActivityPub::Activity::Create do end let(:target_device) { Fabricate(:device, account: recipient) } - subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) } - before do subject.perform end @@ -831,6 +831,8 @@ RSpec.describe ActivityPub::Activity::Create do end context 'when sender replies to local status' do + subject { described_class.new(json, sender, delivery: true) } + let!(:local_status) { Fabricate(:status) } let(:object_json) do { @@ -841,8 +843,6 @@ RSpec.describe ActivityPub::Activity::Create do } end - subject { described_class.new(json, sender, delivery: true) } - before do subject.perform end @@ -856,6 +856,8 @@ RSpec.describe ActivityPub::Activity::Create do end context 'when sender targets a local user' do + subject { described_class.new(json, sender, delivery: true) } + let!(:local_account) { Fabricate(:account) } let(:object_json) do { @@ -866,8 +868,6 @@ RSpec.describe ActivityPub::Activity::Create do } end - subject { described_class.new(json, sender, delivery: true) } - before do subject.perform end @@ -881,6 +881,8 @@ RSpec.describe ActivityPub::Activity::Create do end context 'when sender cc\'s a local user' do + subject { described_class.new(json, sender, delivery: true) } + let!(:local_account) { Fabricate(:account) } let(:object_json) do { @@ -891,8 +893,6 @@ RSpec.describe ActivityPub::Activity::Create do } end - subject { described_class.new(json, sender, delivery: true) } - before do subject.perform end diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb index fed4cd8cdc..7f04db4e61 100644 --- a/spec/lib/activitypub/activity/reject_spec.rb +++ b/spec/lib/activitypub/activity/reject_spec.rb @@ -121,6 +121,8 @@ RSpec.describe ActivityPub::Activity::Reject do end context 'given a relay' do + subject { described_class.new(json, sender) } + let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') } let(:json) do @@ -138,8 +140,6 @@ RSpec.describe ActivityPub::Activity::Reject do }.with_indifferent_access end - subject { described_class.new(json, sender) } - it 'marks the relay as rejected' do subject.perform expect(relay.reload.rejected?).to be true diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb index c0309e49da..0bd1f17d35 100644 --- a/spec/lib/activitypub/activity/undo_spec.rb +++ b/spec/lib/activitypub/activity/undo_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Undo do + subject { described_class.new(json, sender) } + let(:sender) { Fabricate(:account, domain: 'example.com') } let(:json) do @@ -13,8 +15,6 @@ RSpec.describe ActivityPub::Activity::Undo do }.with_indifferent_access end - subject { described_class.new(json, sender) } - describe '#perform' do context 'with Announce' do let(:status) { Fabricate(:status) } diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb index 4cd853af21..d2a1edd7a0 100644 --- a/spec/lib/activitypub/activity/update_spec.rb +++ b/spec/lib/activitypub/activity/update_spec.rb @@ -1,14 +1,14 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Update do + subject { described_class.new(json, sender) } + let!(:sender) { Fabricate(:account) } before do sender.update!(uri: ActivityPub::TagManager.instance.uri_for(sender)) end - subject { described_class.new(json, sender) } - describe '#perform' do context 'with an Actor object' do let(:modified_sender) do diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb index ea03797aab..e4c403abb9 100644 --- a/spec/lib/activitypub/adapter_spec.rb +++ b/spec/lib/activitypub/adapter_spec.rb @@ -41,10 +41,10 @@ RSpec.describe ActivityPub::Adapter do end describe '#serializable_hash' do - let(:serializer_class) {} - subject { ActiveModelSerializers::SerializableResource.new(TestObject.new(foo: 'bar'), serializer: serializer_class, adapter: described_class).as_json } + let(:serializer_class) {} + context 'when serializer defines no context' do let(:serializer_class) { TestWithBasicContextSerializer } diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb index e50b497c7e..800473a7ca 100644 --- a/spec/lib/activitypub/dereferencer_spec.rb +++ b/spec/lib/activitypub/dereferencer_spec.rb @@ -2,13 +2,13 @@ require 'rails_helper' RSpec.describe ActivityPub::Dereferencer do describe '#object' do + subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object } + let(:object) { { '@context': 'https://www.w3.org/ns/activitystreams', id: 'https://example.com/foo', type: 'Note', content: 'Hoge' } } let(:permitted_origin) { 'https://example.com' } let(:signature_actor) { nil } let(:uri) { nil } - subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object } - before do stub_request(:get, 'https://example.com/foo').to_return(body: Oj.dump(object), headers: { 'Content-Type' => 'application/activity+json' }) end diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb index d55a7c7fa8..ecb1e16db7 100644 --- a/spec/lib/activitypub/linked_data_signature_spec.rb +++ b/spec/lib/activitypub/linked_data_signature_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' RSpec.describe ActivityPub::LinkedDataSignature do include JsonLdHelper + subject { described_class.new(json) } + let!(:sender) { Fabricate(:account, uri: 'http://example.com/alice') } let(:raw_json) do @@ -14,8 +16,6 @@ RSpec.describe ActivityPub::LinkedDataSignature do let(:json) { raw_json.merge('signature' => signature) } - subject { described_class.new(json) } - before do stub_jsonld_contexts! end diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index 7eb15ced3a..fcc2654744 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' RSpec.describe LinkDetailsExtractor do + subject { described_class.new(original_url, html, html_charset) } + let(:original_url) { '' } let(:html) { '' } let(:html_charset) { nil } - subject { described_class.new(original_url, html, html_charset) } - describe '#canonical_url' do let(:original_url) { 'https://foo.com/article?bar=baz123' } diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb index cdb4820590..08519bc590 100644 --- a/spec/lib/status_filter_spec.rb +++ b/spec/lib/status_filter_spec.rb @@ -31,10 +31,10 @@ describe StatusFilter do end context 'with real account' do - let(:account) { Fabricate(:account) } - subject { described_class.new(status, account) } + let(:account) { Fabricate(:account) } + context 'when there are no connections' do it { is_expected.to_not be_filtered } end diff --git a/spec/lib/status_reach_finder_spec.rb b/spec/lib/status_reach_finder_spec.rb index f0c22b1651..785ce28a0e 100644 --- a/spec/lib/status_reach_finder_spec.rb +++ b/spec/lib/status_reach_finder_spec.rb @@ -5,13 +5,13 @@ require 'rails_helper' describe StatusReachFinder do describe '#inboxes' do context 'for a local status' do + subject { described_class.new(status) } + let(:parent_status) { nil } let(:visibility) { :public } let(:alice) { Fabricate(:account, username: 'alice') } let(:status) { Fabricate(:status, account: alice, thread: parent_status, visibility: visibility) } - subject { described_class.new(status) } - context 'when it contains mentions of remote accounts' do let(:bob) { Fabricate(:account, username: 'bob', domain: 'foo.bar', protocol: :activitypub, inbox_url: 'https://foo.bar/inbox') } diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb index 101a18aa01..05aadfd8fa 100644 --- a/spec/lib/suspicious_sign_in_detector_spec.rb +++ b/spec/lib/suspicious_sign_in_detector_spec.rb @@ -2,12 +2,12 @@ require 'rails_helper' RSpec.describe SuspiciousSignInDetector do describe '#suspicious?' do + subject { described_class.new(user).suspicious?(request) } + let(:user) { Fabricate(:user, current_sign_in_at: 1.day.ago) } let(:request) { double(remote_ip: remote_ip) } let(:remote_ip) { nil } - subject { described_class.new(user).suspicious?(request) } - context 'when user has 2FA enabled' do before do user.update!(otp_required_for_login: true) diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb index 63a9075c7c..04ae4e02c0 100644 --- a/spec/lib/text_formatter_spec.rb +++ b/spec/lib/text_formatter_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe TextFormatter do describe '#to_s' do - let(:preloaded_accounts) { nil } - subject { described_class.new(text, preloaded_accounts: preloaded_accounts).to_s } + let(:preloaded_accounts) { nil } + context 'given text containing plain text' do let(:text) { 'text' } diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb index 4e2de083f8..c505a3e1ae 100644 --- a/spec/lib/vacuum/backups_vacuum_spec.rb +++ b/spec/lib/vacuum/backups_vacuum_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe Vacuum::BackupsVacuum do - let(:retention_period) { 7.days } - subject { described_class.new(retention_period) } + let(:retention_period) { 7.days } + describe '#perform' do let!(:expired_backup) { Fabricate(:backup, created_at: (retention_period + 1.day).ago) } let!(:current_backup) { Fabricate(:backup) } diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb index 436237b25f..afcb6f878a 100644 --- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb +++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' RSpec.describe Vacuum::MediaAttachmentsVacuum do + subject { described_class.new(retention_period) } + let(:retention_period) { 7.days } let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) } let(:local_status) { Fabricate(:status) } - subject { described_class.new(retention_period) } - describe '#perform' do let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) } let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) } diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb index 275f9ba92f..524f4c9274 100644 --- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb +++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe Vacuum::PreviewCardsVacuum do - let(:retention_period) { 7.days } - subject { described_class.new(retention_period) } + let(:retention_period) { 7.days } + describe '#perform' do let!(:orphaned_preview_card) { Fabricate(:preview_card, created_at: 2.days.ago) } let!(:old_preview_card) { Fabricate(:preview_card, updated_at: (retention_period + 1.day).ago) } diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb index 83f3c5c9f1..9583376b72 100644 --- a/spec/lib/vacuum/statuses_vacuum_spec.rb +++ b/spec/lib/vacuum/statuses_vacuum_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' RSpec.describe Vacuum::StatusesVacuum do + subject { described_class.new(retention_period) } + let(:retention_period) { 7.days } let(:remote_account) { Fabricate(:account, domain: 'example.com') } - subject { described_class.new(retention_period) } - describe '#perform' do let!(:remote_status_old) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) } let!(:remote_status_recent) { Fabricate(:status, account: remote_account, created_at: (retention_period - 2.days).ago) } diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb index 40bbee025f..36e1a8595a 100644 --- a/spec/models/account/field_spec.rb +++ b/spec/models/account/field_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe Account::Field, type: :model do describe '#verified?' do - let(:account) { double('Account', local?: true) } - subject { described_class.new(account, 'name' => 'Foo', 'value' => 'Bar', 'verified_at' => verified_at) } + let(:account) { double('Account', local?: true) } + context 'when verified_at is set' do let(:verified_at) { Time.now.utc.iso8601 } @@ -24,11 +24,11 @@ RSpec.describe Account::Field, type: :model do end describe '#mark_verified!' do + subject { described_class.new(account, original_hash) } + let(:account) { double('Account', local?: true) } let(:original_hash) { { 'name' => 'Foo', 'value' => 'Bar' } } - subject { described_class.new(account, original_hash) } - before do subject.mark_verified! end @@ -43,10 +43,10 @@ RSpec.describe Account::Field, type: :model do end describe '#verifiable?' do - let(:account) { double('Account', local?: local) } - subject { described_class.new(account, 'name' => 'Foo', 'value' => value) } + let(:account) { double('Account', local?: local) } + context 'for local accounts' do let(:local) { true } diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 03ed12d780..726e33048e 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe Account, type: :model do context do - let(:bob) { Fabricate(:account, username: 'bob') } - subject { Fabricate(:account) } + let(:bob) { Fabricate(:account, username: 'bob') } + describe '#suspend!' do it 'marks the account as suspended' do subject.suspend! @@ -87,14 +87,14 @@ RSpec.describe Account, type: :model do end describe 'Local domain user methods' do + subject { Fabricate(:account, domain: nil, username: 'alice') } + around do |example| before = Rails.configuration.x.local_domain example.run Rails.configuration.x.local_domain = before end - subject { Fabricate(:account, domain: nil, username: 'alice') } - describe '#to_webfinger_s' do it 'returns a webfinger string for the account' do Rails.configuration.x.local_domain = 'example.com' @@ -243,13 +243,13 @@ RSpec.describe Account, type: :model do end describe '#favourited?' do + subject { Fabricate(:account) } + let(:original_status) do author = Fabricate(:account, username: 'original') Fabricate(:status, account: author) end - subject { Fabricate(:account) } - context 'when the status is a reblog of another status' do let(:original_reblog) do author = Fabricate(:account, username: 'original_reblogger') @@ -281,13 +281,13 @@ RSpec.describe Account, type: :model do end describe '#reblogged?' do + subject { Fabricate(:account) } + let(:original_status) do author = Fabricate(:account, username: 'original') Fabricate(:status, account: author) end - subject { Fabricate(:account) } - context 'when the status is a reblog of another status' do let(:original_reblog) do author = Fabricate(:account, username: 'original_reblogger') diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index d3c011b3a2..8bd86730bc 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -132,11 +132,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end describe '#invalidate_last_inspected' do + subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) } + let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } let(:status) { Fabricate(:status, id: 10, account: account) } - subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) } - before do account_statuses_cleanup_policy.record_last_inspected(42) end @@ -231,11 +231,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end describe '#compute_cutoff_id' do + subject { account_statuses_cleanup_policy.compute_cutoff_id } + let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) } let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } - subject { account_statuses_cleanup_policy.compute_cutoff_id } - context 'when the account has posted multiple toots' do let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) } let!(:old_status) { Fabricate(:status, created_at: 3.weeks.ago, account: account) } @@ -254,6 +254,8 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end describe '#statuses_to_delete' do + subject { account_statuses_cleanup_policy.statuses_to_delete } + let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) } let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) } let!(:pinned_status) { Fabricate(:status, created_at: 1.year.ago, account: account) } @@ -275,8 +277,6 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } - subject { account_statuses_cleanup_policy.statuses_to_delete } - before do 4.times { faved4.increment_count!(:favourites_count) } 5.times { faved5.increment_count!(:favourites_count) } @@ -285,11 +285,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end context 'when passed a max_id' do + subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) } + let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) } let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) } - subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) } - it 'returns statuses including max_id' do expect(subject).to include(old_status.id) end @@ -304,11 +304,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do end context 'when passed a min_id' do + subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) } + let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) } let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) } - subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) } - it 'returns statuses including min_id' do expect(subject).to include(old_status.id) end diff --git a/spec/models/account_statuses_filter_spec.rb b/spec/models/account_statuses_filter_spec.rb index 03f0ffeb06..fa7664d921 100644 --- a/spec/models/account_statuses_filter_spec.rb +++ b/spec/models/account_statuses_filter_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' RSpec.describe AccountStatusesFilter do + subject { described_class.new(account, current_account, params) } + let(:account) { Fabricate(:account) } let(:current_account) { nil } let(:params) { {} } - subject { described_class.new(account, current_account, params) } - def status!(visibility) Fabricate(:status, account: account, visibility: visibility) end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index fbfc9fbbc5..ed3fc056b2 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -225,10 +225,10 @@ describe AccountInteractions do end describe '#mute_conversation!' do - let(:conversation) { Fabricate(:conversation) } - subject { account.mute_conversation!(conversation) } + let(:conversation) { Fabricate(:conversation) } + it 'creates and returns ConversationMute' do expect do expect(subject).to be_a ConversationMute @@ -237,10 +237,10 @@ describe AccountInteractions do end describe '#block_domain!' do - let(:domain) { 'example.com' } - subject { account.block_domain!(domain) } + let(:domain) { 'example.com' } + it 'creates and returns AccountDomainBlock' do expect do expect(subject).to be_a AccountDomainBlock @@ -303,10 +303,10 @@ describe AccountInteractions do end describe '#unmute_conversation!' do - let(:conversation) { Fabricate(:conversation) } - subject { account.unmute_conversation!(conversation) } + let(:conversation) { Fabricate(:conversation) } + context 'muting the conversation' do it 'returns destroyed ConversationMute' do account.conversation_mutes.create(conversation: conversation) @@ -323,10 +323,10 @@ describe AccountInteractions do end describe '#unblock_domain!' do - let(:domain) { 'example.com' } - subject { account.unblock_domain!(domain) } + let(:domain) { 'example.com' } + context 'blocking the domain' do it 'returns destroyed AccountDomainBlock' do account_domain_block = Fabricate(:account_domain_block, domain: domain) @@ -395,10 +395,10 @@ describe AccountInteractions do end describe '#domain_blocking?' do - let(:domain) { 'example.com' } - subject { account.domain_blocking?(domain) } + let(:domain) { 'example.com' } + context 'blocking the domain' do it 'returns true' do account_domain_block = Fabricate(:account_domain_block, domain: domain) @@ -433,10 +433,10 @@ describe AccountInteractions do end describe '#muting_conversation?' do - let(:conversation) { Fabricate(:conversation) } - subject { account.muting_conversation?(conversation) } + let(:conversation) { Fabricate(:conversation) } + context 'muting the conversation' do it 'returns true' do account.conversation_mutes.create(conversation: conversation) @@ -452,13 +452,13 @@ describe AccountInteractions do end describe '#muting_notifications?' do + subject { account.muting_notifications?(target_account) } + before do mute = Fabricate(:mute, target_account: target_account, account: account, hide_notifications: hide) account.mute_relationships << mute end - subject { account.muting_notifications?(target_account) } - context 'muting notifications of target_account' do let(:hide) { true } @@ -494,10 +494,10 @@ describe AccountInteractions do end describe '#favourited?' do - let(:status) { Fabricate(:status, account: account, favourites: favourites) } - subject { account.favourited?(status) } + let(:status) { Fabricate(:status, account: account, favourites: favourites) } + context 'favorited' do let(:favourites) { [Fabricate(:favourite, account: account)] } @@ -516,10 +516,10 @@ describe AccountInteractions do end describe '#reblogged?' do - let(:status) { Fabricate(:status, account: account, reblogs: reblogs) } - subject { account.reblogged?(status) } + let(:status) { Fabricate(:status, account: account, reblogs: reblogs) } + context 'reblogged' do let(:reblogs) { [Fabricate(:status, account: account)] } @@ -538,10 +538,10 @@ describe AccountInteractions do end describe '#pinned?' do - let(:status) { Fabricate(:status, account: account) } - subject { account.pinned?(status) } + let(:status) { Fabricate(:status, account: account) } + context 'pinned' do it 'returns true' do Fabricate(:status_pin, account: account, status: status) diff --git a/spec/models/custom_emoji_filter_spec.rb b/spec/models/custom_emoji_filter_spec.rb index 515c0a7156..30f0ec2b23 100644 --- a/spec/models/custom_emoji_filter_spec.rb +++ b/spec/models/custom_emoji_filter_spec.rb @@ -4,12 +4,12 @@ require 'rails_helper' RSpec.describe CustomEmojiFilter do describe '#results' do + subject { described_class.new(params).results } + let!(:custom_emoji_0) { Fabricate(:custom_emoji, domain: 'a') } let!(:custom_emoji_1) { Fabricate(:custom_emoji, domain: 'b') } let!(:custom_emoji_2) { Fabricate(:custom_emoji, domain: nil, shortcode: 'hoge') } - subject { described_class.new(params).results } - context 'params have values' do context 'local' do let(:params) { { local: true } } diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb index 1fc112db3c..f6fcd468bc 100644 --- a/spec/models/custom_emoji_spec.rb +++ b/spec/models/custom_emoji_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe CustomEmoji, type: :model do describe '#search' do - let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) } - subject { described_class.search(search_term) } + let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) } + context 'shortcode is exact' do let(:shortcode) { 'blobpats' } let(:search_term) { 'blobpats' } @@ -26,10 +26,10 @@ RSpec.describe CustomEmoji, type: :model do end describe '#local?' do - let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) } - subject { custom_emoji.local? } + let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) } + context 'domain is nil' do let(:domain) { nil } @@ -55,10 +55,10 @@ RSpec.describe CustomEmoji, type: :model do end describe '.from_text' do - let!(:emojo) { Fabricate(:custom_emoji) } - subject { described_class.from_text(text, nil) } + let!(:emojo) { Fabricate(:custom_emoji) } + context 'with plain text' do let(:text) { 'Hello :coolcat:' } diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb index 80f6edbff6..196bef1e49 100644 --- a/spec/models/home_feed_spec.rb +++ b/spec/models/home_feed_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe HomeFeed, type: :model do - let(:account) { Fabricate(:account) } - subject { described_class.new(account) } + let(:account) { Fabricate(:account) } + describe '#get' do before do Fabricate(:status, account: account, id: 1) diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 8889d5f7c4..57e1314230 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe MediaAttachment, type: :model do describe 'local?' do - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) } - subject { media_attachment.local? } + let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) } + context 'remote_url is blank' do let(:remote_url) { '' } @@ -24,10 +24,10 @@ RSpec.describe MediaAttachment, type: :model do end describe 'needs_redownload?' do - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) } - subject { media_attachment.needs_redownload? } + let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) } + context 'file is blank' do let(:file) { nil } diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb index be46639c52..59c81dd953 100644 --- a/spec/models/public_feed_spec.rb +++ b/spec/models/public_feed_spec.rb @@ -40,6 +40,8 @@ RSpec.describe PublicFeed, type: :model do end context 'without local_only option' do + subject { described_class.new(viewer).get(20).map(&:id) } + let(:viewer) { nil } let!(:local_account) { Fabricate(:account, domain: nil) } @@ -47,8 +49,6 @@ RSpec.describe PublicFeed, type: :model do let!(:local_status) { Fabricate(:status, account: local_account) } let!(:remote_status) { Fabricate(:status, account: remote_account) } - subject { described_class.new(viewer).get(20).map(&:id) } - context 'without a viewer' do let(:viewer) { nil } @@ -75,13 +75,13 @@ RSpec.describe PublicFeed, type: :model do end context 'with a local_only option set' do + subject { described_class.new(viewer, local: true).get(20).map(&:id) } + let!(:local_account) { Fabricate(:account, domain: nil) } let!(:remote_account) { Fabricate(:account, domain: 'test.com') } let!(:local_status) { Fabricate(:status, account: local_account) } let!(:remote_status) { Fabricate(:status, account: remote_account) } - subject { described_class.new(viewer, local: true).get(20).map(&:id) } - context 'without a viewer' do let(:viewer) { nil } @@ -108,13 +108,13 @@ RSpec.describe PublicFeed, type: :model do end context 'with a remote_only option set' do + subject { described_class.new(viewer, remote: true).get(20).map(&:id) } + let!(:local_account) { Fabricate(:account, domain: nil) } let!(:remote_account) { Fabricate(:account, domain: 'test.com') } let!(:local_status) { Fabricate(:status, account: local_account) } let!(:remote_status) { Fabricate(:status, account: remote_account) } - subject { described_class.new(viewer, remote: true).get(20).map(&:id) } - context 'without a viewer' do let(:viewer) { nil } @@ -135,12 +135,12 @@ RSpec.describe PublicFeed, type: :model do end describe 'with an account passed in' do + subject { described_class.new(@account).get(20).map(&:id) } + before do @account = Fabricate(:account) end - subject { described_class.new(@account).get(20).map(&:id) } - it 'excludes statuses from accounts blocked by the account' do blocked = Fabricate(:account) @account.block!(blocked) diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb index c6bbecf25b..ea36b00769 100644 --- a/spec/models/remote_follow_spec.rb +++ b/spec/models/remote_follow_spec.rb @@ -51,6 +51,8 @@ RSpec.describe RemoteFollow do end describe '#subscribe_address_for' do + subject { remote_follow.subscribe_address_for(account) } + before do remote_follow.valid? end @@ -58,8 +60,6 @@ RSpec.describe RemoteFollow do let(:attrs) { { acct: 'gargron@quitter.no' } } let(:account) { Fabricate(:account, username: 'alice') } - subject { remote_follow.subscribe_address_for(account) } - it 'returns subscribe address' do expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice' end diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 86fdf4e087..826a13878f 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -163,12 +163,12 @@ RSpec.describe Setting, type: :model do end describe '.default_settings' do + subject { described_class.default_settings } + before do allow(RailsSettings::Default).to receive(:enabled?).and_return(enabled) end - subject { described_class.default_settings } - context 'RailsSettings::Default.enabled? is false' do let(:enabled) { false } diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 78cc059596..442f14ddfa 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' RSpec.describe Status, type: :model do + subject { Fabricate(:status, account: alice) } + let(:alice) { Fabricate(:account, username: 'alice') } let(:bob) { Fabricate(:account, username: 'bob') } let(:other) { Fabricate(:status, account: bob, text: 'Skulls for the skull god! The enemy\'s gates are sideways!') } - subject { Fabricate(:status, account: alice) } - describe '#local?' do it 'returns true when no remote URI is set' do expect(subject.local?).to be true @@ -204,11 +204,11 @@ RSpec.describe Status, type: :model do end describe '.mutes_map' do + subject { Status.mutes_map([status.conversation.id], account) } + let(:status) { Fabricate(:status) } let(:account) { Fabricate(:account) } - subject { Status.mutes_map([status.conversation.id], account) } - it 'returns a hash' do expect(subject).to be_a Hash end @@ -220,11 +220,11 @@ RSpec.describe Status, type: :model do end describe '.favourites_map' do + subject { Status.favourites_map([status], account) } + let(:status) { Fabricate(:status) } let(:account) { Fabricate(:account) } - subject { Status.favourites_map([status], account) } - it 'returns a hash' do expect(subject).to be_a Hash end @@ -236,11 +236,11 @@ RSpec.describe Status, type: :model do end describe '.reblogs_map' do + subject { Status.reblogs_map([status], account) } + let(:status) { Fabricate(:status) } let(:account) { Fabricate(:account) } - subject { Status.reblogs_map([status], account) } - it 'returns a hash' do expect(subject).to be_a Hash end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d23439f1a9..9af616b32a 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -142,10 +142,10 @@ RSpec.describe User, type: :model do end describe '#confirm' do - let(:new_email) { 'new-email@example.com' } - subject { user.confirm } + let(:new_email) { 'new-email@example.com' } + before do allow(TriggerWebhookWorker).to receive(:perform_async) end diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb index eeadbb71c2..388154000c 100644 --- a/spec/models/web/push_subscription_spec.rb +++ b/spec/models/web/push_subscription_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe Web::PushSubscription, type: :model do + subject { described_class.new(data: data) } + let(:account) { Fabricate(:account) } let(:policy) { 'all' } @@ -19,8 +21,6 @@ RSpec.describe Web::PushSubscription, type: :model do } end - subject { described_class.new(data: data) } - describe '#pushable?' do let(:notification_type) { :mention } let(:notification) { Fabricate(:notification, account: account, type: notification_type) } diff --git a/spec/presenters/familiar_followers_presenter_spec.rb b/spec/presenters/familiar_followers_presenter_spec.rb index 17be4b9715..607e3002f8 100644 --- a/spec/presenters/familiar_followers_presenter_spec.rb +++ b/spec/presenters/familiar_followers_presenter_spec.rb @@ -4,12 +4,12 @@ require 'rails_helper' RSpec.describe FamiliarFollowersPresenter do describe '#accounts' do + subject { described_class.new(requested_accounts, account.id) } + let(:account) { Fabricate(:account) } let(:familiar_follower) { Fabricate(:account) } let(:requested_accounts) { Fabricate.times(2, :account) } - subject { described_class.new(requested_accounts, account.id) } - before do familiar_follower.follow!(requested_accounts.first) account.follow!(familiar_follower) diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_spec.rb index 55bfbc16bf..7ea47baef2 100644 --- a/spec/serializers/activitypub/note_spec.rb +++ b/spec/serializers/activitypub/note_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' describe ActivityPub::NoteSerializer do + subject { JSON.parse(@serialization.to_json) } + let!(:account) { Fabricate(:account) } let!(:other) { Fabricate(:account) } let!(:parent) { Fabricate(:status, account: account, visibility: :public) } @@ -16,8 +18,6 @@ describe ActivityPub::NoteSerializer do @serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter) end - subject { JSON.parse(@serialization.to_json) } - it 'has a Note type' do expect(subject['type']).to eql('Note') end diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_spec.rb index f9e035eab5..4360808b50 100644 --- a/spec/serializers/activitypub/update_poll_spec.rb +++ b/spec/serializers/activitypub/update_poll_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' describe ActivityPub::UpdatePollSerializer do + subject { JSON.parse(@serialization.to_json) } + let(:account) { Fabricate(:account) } let(:poll) { Fabricate(:poll, account: account) } let!(:status) { Fabricate(:status, account: account, poll: poll) } @@ -11,8 +13,6 @@ describe ActivityPub::UpdatePollSerializer do @serialization = ActiveModelSerializers::SerializableResource.new(status, serializer: ActivityPub::UpdatePollSerializer, adapter: ActivityPub::Adapter) end - subject { JSON.parse(@serialization.to_json) } - it 'has a Update type' do expect(subject['type']).to eql('Update') end diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb index 3bca06b73f..528639943c 100644 --- a/spec/serializers/rest/account_serializer_spec.rb +++ b/spec/serializers/rest/account_serializer_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' describe REST::AccountSerializer do + subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) } + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } let(:user) { Fabricate(:user, role: role) } let(:account) { user.account } - subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) } - context 'when the account is suspended' do before do account.suspend! diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb index 23d90a9a2b..d9266ffc2e 100644 --- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do + subject { described_class.new } + let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account', featured_collection_url: 'https://example.com/account/pinned') } let!(:known_status) { Fabricate(:status, account: actor, uri: 'https://example.com/account/pinned/1') } @@ -56,8 +58,6 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do }.with_indifferent_access end - subject { described_class.new } - shared_examples 'sets pinned posts' do before do stub_request(:get, 'https://example.com/account/pinned/1').to_return(status: 200, body: Oj.dump(status_json_1)) diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb index 692866bce9..2110baa2d4 100644 --- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do + subject { described_class.new } + let(:collection_url) { 'https://example.com/account/tags' } let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account') } @@ -21,8 +23,6 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d }.with_indifferent_access end - subject { described_class.new } - shared_examples 'sets featured tags' do before do subject.call(actor, collection_url) diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 4f3503ac2d..6e47392b35 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do include ActionView::Helpers::TextHelper + subject { described_class.new } + let!(:sender) { Fabricate(:account, domain: 'foo.bar', uri: 'https://foo.bar') } let!(:recipient) { Fabricate(:account) } @@ -18,8 +20,6 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do } end - subject { described_class.new } - before do stub_request(:get, 'https://foo.bar/watch?v=12345').to_return(status: 404, body: '') stub_request(:get, object[:id]).to_return(body: Oj.dump(object)) diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb index 5741e0c3fe..0231a5e9ab 100644 --- a/spec/services/activitypub/fetch_replies_service_spec.rb +++ b/spec/services/activitypub/fetch_replies_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::FetchRepliesService, type: :service do + subject { described_class.new } + let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') } let(:status) { Fabricate(:status, account: actor) } let(:collection_uri) { 'http://example.com/replies/1' } @@ -28,8 +30,6 @@ RSpec.describe ActivityPub::FetchRepliesService, type: :service do }.with_indifferent_access end - subject { described_class.new } - describe '#call' do context 'when the payload is a Collection with inlined replies' do context 'when passing the collection itself' do diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index d0af7de769..6c3236bae6 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -31,6 +31,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do end context 'when account is not suspended' do + subject { described_class.new.call('alice', 'example.com', payload) } + let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com') } let(:payload) do @@ -46,8 +48,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do allow(Admin::SuspensionWorker).to receive(:perform_async) end - subject { described_class.new.call('alice', 'example.com', payload) } - it 'suspends account remotely' do expect(subject.suspended?).to be true expect(subject.suspension_origin_remote?).to be true @@ -60,6 +60,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do end context 'when account is suspended' do + subject { described_class.new.call('alice', 'example.com', payload) } + let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com', display_name: '') } let(:payload) do @@ -78,8 +80,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do account.suspend!(origin: suspension_origin) end - subject { described_class.new.call('alice', 'example.com', payload) } - context 'locally' do let(:suspension_origin) { :local } diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index d35d9596df..c7d0bb92af 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::ProcessCollectionService, type: :service do + subject { described_class.new } + let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') } let(:payload) do @@ -19,8 +21,6 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do let(:json) { Oj.dump(payload) } - subject { described_class.new } - describe '#call' do context 'when actor is suspended' do before do diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 9a6d75ec04..3d6f76163e 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -5,6 +5,8 @@ def poll_option_json(name, votes) end RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do + subject { described_class.new } + let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) } let(:payload) do { @@ -35,8 +37,6 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do media_attachments.each { |m| status.media_attachments << m } end - subject { described_class.new } - describe '#call' do it 'updates text' do subject.call(status, json) diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb index 5a37f07333..0e829a3028 100644 --- a/spec/services/activitypub/synchronize_followers_service_spec.rb +++ b/spec/services/activitypub/synchronize_followers_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do + subject { described_class.new } + let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account', inbox_url: 'http://example.com/inbox') } let(:alice) { Fabricate(:account, username: 'alice') } let(:bob) { Fabricate(:account, username: 'bob') } @@ -25,8 +27,6 @@ RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do }.with_indifferent_access end - subject { described_class.new } - shared_examples 'synchronizes followers' do before do alice.follow!(actor) diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb index 006e3f4d28..9cca82bffa 100644 --- a/spec/services/after_block_domain_from_account_service_spec.rb +++ b/spec/services/after_block_domain_from_account_service_spec.rb @@ -1,11 +1,11 @@ require 'rails_helper' RSpec.describe AfterBlockDomainFromAccountService, type: :service do + subject { AfterBlockDomainFromAccountService.new } + let!(:wolf) { Fabricate(:account, username: 'wolf', domain: 'evil.org', inbox_url: 'https://evil.org/inbox', protocol: :activitypub) } let!(:alice) { Fabricate(:account, username: 'alice') } - subject { AfterBlockDomainFromAccountService.new } - before do stub_jsonld_contexts! allow(ActivityPub::DeliveryWorker).to receive(:perform_async) diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb index 8ec4d4a7a6..10da07dcfb 100644 --- a/spec/services/app_sign_up_service_spec.rb +++ b/spec/services/app_sign_up_service_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' RSpec.describe AppSignUpService, type: :service do + subject { described_class.new } + let(:app) { Fabricate(:application, scopes: 'read write') } let(:good_params) { { username: 'alice', password: '12345678', email: 'good@email.com', agreement: true } } let(:remote_ip) { IPAddr.new('198.0.2.1') } - subject { described_class.new } - describe '#call' do it 'returns nil when registrations are closed' do tmp = Setting.registrations_mode diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb index 888d694b61..8f8e44ec76 100644 --- a/spec/services/authorize_follow_service_spec.rb +++ b/spec/services/authorize_follow_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe AuthorizeFollowService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { AuthorizeFollowService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account, username: 'bob') } diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb index e24e48d415..56b3a5ad1c 100644 --- a/spec/services/block_domain_service_spec.rb +++ b/spec/services/block_domain_service_spec.rb @@ -1,14 +1,14 @@ require 'rails_helper' RSpec.describe BlockDomainService, type: :service do + subject { BlockDomainService.new } + let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') } let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') } let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') } let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) } let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) } - subject { BlockDomainService.new } - describe 'for a suspension' do before do subject.call(DomainBlock.create!(domain: 'evil.org', severity: :suspend)) diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb index a53e1f9288..049644dbc0 100644 --- a/spec/services/block_service_spec.rb +++ b/spec/services/block_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe BlockService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { BlockService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account, username: 'bob') } diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb index e90faf84d9..993ba789ea 100644 --- a/spec/services/clear_domain_media_service_spec.rb +++ b/spec/services/clear_domain_media_service_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' RSpec.describe ClearDomainMediaService, type: :service do + subject { ClearDomainMediaService.new } + let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') } let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') } let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') } let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) } - subject { ClearDomainMediaService.new } - describe 'for a silence with reject media' do before do subject.call(DomainBlock.create!(domain: 'evil.org', severity: :silence, reject_media: true)) diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb index cc4b168fcd..d0cc8d2888 100644 --- a/spec/services/delete_account_service_spec.rb +++ b/spec/services/delete_account_service_spec.rb @@ -2,6 +2,8 @@ require 'rails_helper' RSpec.describe DeleteAccountService, type: :service do shared_examples 'common behavior' do + subject { described_class.new.call(account) } + let!(:status) { Fabricate(:status, account: account) } let!(:mention) { Fabricate(:mention, account: local_follower) } let!(:status_with_mention) { Fabricate(:status, account: account, mentions: [mention]) } @@ -23,8 +25,6 @@ RSpec.describe DeleteAccountService, type: :service do let!(:account_note) { Fabricate(:account_note, account: account) } - subject { described_class.new.call(account) } - it 'deletes associated owned records' do expect { subject }.to change { [ diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb index 3c294cf95b..d09750dd23 100644 --- a/spec/services/fan_out_on_write_service_spec.rb +++ b/spec/services/fan_out_on_write_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe FanOutOnWriteService, type: :service do + subject { described_class.new } + let(:last_active_at) { Time.now.utc } let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') } @@ -8,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account } let!(:tom) { Fabricate(:user, current_sign_in_at: last_active_at).account } - subject { described_class.new } - before do bob.follow!(alice) tom.follow!(alice) diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb index 8703c2af8f..4f621200a2 100644 --- a/spec/services/favourite_service_spec.rb +++ b/spec/services/favourite_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe FavouriteService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { FavouriteService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account) } let(:status) { Fabricate(:status, account: bob) } diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index c39f526328..84c4035cb1 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -2,10 +2,10 @@ require 'rails_helper' RSpec.describe FetchResourceService, type: :service do describe '#call' do - let(:url) { 'http://example.com' } - subject { described_class.new.call(url) } + let(:url) { 'http://example.com' } + context 'with blank url' do let(:url) { '' } diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb index 59073c27f2..f95d594409 100644 --- a/spec/services/follow_service_spec.rb +++ b/spec/services/follow_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe FollowService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { FollowService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + context 'local account' do describe 'locked account' do let(:bob) { Fabricate(:account, locked: true, username: 'bob') } diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index 6a16928e02..79ccfa3229 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe ProcessMentionsService, type: :service do - let(:account) { Fabricate(:account, username: 'alice') } - subject { ProcessMentionsService.new } + let(:account) { Fabricate(:account, username: 'alice') } + context 'when mentions contain blocked accounts' do let(:non_blocked_account) { Fabricate(:account) } let(:individually_blocked_account) { Fabricate(:account) } diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb index 59285f1269..7d8969ee89 100644 --- a/spec/services/purge_domain_service_spec.rb +++ b/spec/services/purge_domain_service_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' RSpec.describe PurgeDomainService, type: :service do + subject { PurgeDomainService.new } + let!(:old_account) { Fabricate(:account, domain: 'obsolete.org') } let!(:old_status1) { Fabricate(:status, account: old_account) } let!(:old_status2) { Fabricate(:status, account: old_account) } let!(:old_attachment) { Fabricate(:media_attachment, account: old_account, status: old_status2, file: attachment_fixture('attachment.jpg')) } - subject { PurgeDomainService.new } - describe 'for a suspension' do before do subject.call('obsolete.org') diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb index c0ae5eedcc..e2ac0154ce 100644 --- a/spec/services/reblog_service_spec.rb +++ b/spec/services/reblog_service_spec.rb @@ -4,12 +4,12 @@ RSpec.describe ReblogService, type: :service do let(:alice) { Fabricate(:account, username: 'alice') } context 'creates a reblog with appropriate visibility' do + subject { ReblogService.new } + let(:visibility) { :public } let(:reblog_visibility) { :public } let(:status) { Fabricate(:status, account: alice, visibility: visibility) } - subject { ReblogService.new } - before do subject.call(alice, status, visibility: reblog_visibility) end @@ -45,11 +45,11 @@ RSpec.describe ReblogService, type: :service do end context 'ActivityPub' do + subject { ReblogService.new } + let(:bob) { Fabricate(:account, username: 'bob', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') } let(:status) { Fabricate(:status, account: bob) } - subject { ReblogService.new } - before do stub_request(:post, bob.inbox_url) allow(ActivityPub::DistributionWorker).to receive(:perform_async) diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb index e14bfa78dc..97b7412b92 100644 --- a/spec/services/reject_follow_service_spec.rb +++ b/spec/services/reject_follow_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe RejectFollowService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { RejectFollowService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account) } diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb index 9b9c846cfe..782f859e29 100644 --- a/spec/services/remove_from_follwers_service_spec.rb +++ b/spec/services/remove_from_follwers_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe RemoveFromFollowersService, type: :service do - let(:bob) { Fabricate(:account, username: 'bob') } - subject { RemoveFromFollowersService.new } + let(:bob) { Fabricate(:account, username: 'bob') } + describe 'local' do let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index 02bc42ac17..c3a3fddf8a 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -29,13 +29,13 @@ RSpec.describe ReportService, type: :service do end context 'when the reported status is a DM' do - let(:target_account) { Fabricate(:account) } - let(:status) { Fabricate(:status, account: target_account, visibility: :direct) } - subject do -> { described_class.new.call(source_account, target_account, status_ids: [status.id]) } end + let(:target_account) { Fabricate(:account) } + let(:status) { Fabricate(:status, account: target_account, visibility: :direct) } + context 'when it is addressed to the reporter' do before do status.mentions.create(account: source_account) @@ -85,13 +85,13 @@ RSpec.describe ReportService, type: :service do end context 'when other reports already exist for the same target' do - let!(:target_account) { Fabricate(:account) } - let!(:other_report) { Fabricate(:report, target_account: target_account) } - subject do -> { described_class.new.call(source_account, target_account) } end + let!(:target_account) { Fabricate(:account) } + let!(:other_report) { Fabricate(:report, target_account: target_account) } + before do ActionMailer::Base.deliveries.clear source_account.user.settings.notification_emails['report'] = true diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb index 126b13986b..5701090b33 100644 --- a/spec/services/suspend_account_service_spec.rb +++ b/spec/services/suspend_account_service_spec.rb @@ -2,11 +2,11 @@ require 'rails_helper' RSpec.describe SuspendAccountService, type: :service do shared_examples 'common behavior' do + subject { described_class.new.call(account) } + let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account } let!(:list) { Fabricate(:list, account: local_follower) } - subject { described_class.new.call(account) } - before do allow(FeedManager.instance).to receive(:unmerge_from_home).and_return(nil) allow(FeedManager.instance).to receive(:unmerge_from_list).and_return(nil) diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb index b93945b9a2..ae7d00c7d3 100644 --- a/spec/services/unallow_domain_service_spec.rb +++ b/spec/services/unallow_domain_service_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe UnallowDomainService, type: :service do + subject { UnallowDomainService.new } + let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') } let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') } let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') } @@ -8,8 +10,6 @@ RSpec.describe UnallowDomainService, type: :service do let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) } let!(:domain_allow) { Fabricate(:domain_allow, domain: 'evil.org') } - subject { UnallowDomainService.new } - context 'in limited federation mode' do before do allow(subject).to receive(:whitelist_mode?).and_return(true) diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb index 10448b3403..bd24005f66 100644 --- a/spec/services/unblock_service_spec.rb +++ b/spec/services/unblock_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe UnblockService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { UnblockService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account) } diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb index bb5bef5c91..55969bef93 100644 --- a/spec/services/unfollow_service_spec.rb +++ b/spec/services/unfollow_service_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe UnfollowService, type: :service do - let(:sender) { Fabricate(:account, username: 'alice') } - subject { UnfollowService.new } + let(:sender) { Fabricate(:account, username: 'alice') } + describe 'local' do let(:bob) { Fabricate(:account, username: 'bob') } diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb index 987eb09e23..6675074690 100644 --- a/spec/services/unsuspend_account_service_spec.rb +++ b/spec/services/unsuspend_account_service_spec.rb @@ -2,11 +2,11 @@ require 'rails_helper' RSpec.describe UnsuspendAccountService, type: :service do shared_examples 'common behavior' do + subject { described_class.new.call(account) } + let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account } let!(:list) { Fabricate(:list, account: local_follower) } - subject { described_class.new.call(account) } - before do allow(FeedManager.instance).to receive(:merge_into_home).and_return(nil) allow(FeedManager.instance).to receive(:merge_into_list).and_return(nil) diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb index cb807fe24c..a642405ae6 100644 --- a/spec/validators/blacklisted_email_validator_spec.rb +++ b/spec/validators/blacklisted_email_validator_spec.rb @@ -4,6 +4,8 @@ require 'rails_helper' RSpec.describe BlacklistedEmailValidator, type: :validator do describe '#validate' do + subject { described_class.new.validate(user); errors } + let(:user) { double(email: 'info@mail.com', sign_up_ip: '1.2.3.4', errors: errors) } let(:errors) { double(add: nil) } @@ -12,8 +14,6 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email } end - subject { described_class.new.validate(user); errors } - context 'when e-mail provider is blocked' do let(:blocked_email) { true } diff --git a/spec/workers/move_worker_spec.rb b/spec/workers/move_worker_spec.rb index 3ca6aaf4de..e93060adb8 100644 --- a/spec/workers/move_worker_spec.rb +++ b/spec/workers/move_worker_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' describe MoveWorker do + subject { described_class.new } + let(:local_follower) { Fabricate(:account) } let(:blocking_account) { Fabricate(:account) } let(:muting_account) { Fabricate(:account) } @@ -14,8 +16,6 @@ describe MoveWorker do let(:block_service) { double } - subject { described_class.new } - before do local_follower.follow!(source_account) blocking_account.block!(source_account) diff --git a/spec/workers/unfollow_follow_worker_spec.rb b/spec/workers/unfollow_follow_worker_spec.rb index 5ea4256a9b..8025b88c0c 100644 --- a/spec/workers/unfollow_follow_worker_spec.rb +++ b/spec/workers/unfollow_follow_worker_spec.rb @@ -3,13 +3,13 @@ require 'rails_helper' describe UnfollowFollowWorker do + subject { described_class.new } + let(:local_follower) { Fabricate(:account) } let(:source_account) { Fabricate(:account) } let(:target_account) { Fabricate(:account) } let(:show_reblogs) { true } - subject { described_class.new } - before do local_follower.follow!(source_account, reblogs: show_reblogs) end From bf785df9fe044f2f13bfb93e6860a74084d8eb8a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 00:14:10 -0500 Subject: [PATCH 0503/1220] Audofix Rubocop Style/WordArray (#23739) --- .rubocop_todo.yml | 23 ------------------- ...000_add_statuses_index_on_account_id_id.rb | 2 +- ...for_api_v1_accounts_account_id_statuses.rb | 2 +- lib/mastodon/maintenance_cli.rb | 8 +++---- lib/tasks/statistics.rake | 2 +- .../api/v1/blocks_controller_spec.rb | 4 ++-- .../api/v1/bookmarks_controller_spec.rb | 4 ++-- .../api/v1/favourites_controller_spec.rb | 4 ++-- .../api/v1/mutes_controller_spec.rb | 4 ++-- .../settings/applications_controller_spec.rb | 2 +- .../preferences/other_controller_spec.rb | 2 +- spec/models/account_spec.rb | 2 +- .../account_statuses_cleanup_policy_spec.rb | 2 +- ...h_featured_tags_collection_service_spec.rb | 2 +- .../process_account_service_spec.rb | 2 +- spec/services/delete_account_service_spec.rb | 6 ++--- ...ccounts_statuses_cleanup_scheduler_spec.rb | 6 ++--- 17 files changed, 27 insertions(+), 50 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1eb039110e..ce1ef9a2bc 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2667,26 +2667,3 @@ Style/UnpackFirst: Exclude: - 'app/models/concerns/account_interactions.rb' - 'lib/paperclip/gif_transcoder.rb' - -# Offense count: 25 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, MinSize, WordRegex. -# SupportedStyles: percent, brackets -Style/WordArray: - Exclude: - - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb' - - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'lib/tasks/statistics.rake' - - 'spec/controllers/api/v1/blocks_controller_spec.rb' - - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' - - 'spec/controllers/api/v1/favourites_controller_spec.rb' - - 'spec/controllers/api/v1/mutes_controller_spec.rb' - - 'spec/controllers/settings/applications_controller_spec.rb' - - 'spec/controllers/settings/preferences/other_controller_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/delete_account_service_spec.rb' - - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' diff --git a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb index 3e74346a8d..86e4255599 100644 --- a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb +++ b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb @@ -6,7 +6,7 @@ class AddStatusesIndexOnAccountIdId < ActiveRecord::Migration[5.1] # of an account to show them in his status page is one of the most # significant examples. # Add this index to improve the performance in such cases. - add_index 'statuses', ['account_id', 'id'], algorithm: :concurrently, name: 'index_statuses_on_account_id_id' + add_index 'statuses', %w(account_id id), algorithm: :concurrently, name: 'index_statuses_on_account_id_id' remove_index 'statuses', algorithm: :concurrently, column: 'account_id', name: 'index_statuses_on_account_id' end diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb index e23880bf51..c00302804a 100644 --- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -10,6 +10,6 @@ class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecor # These index may not exists (see migration 20180514130000) remove_index :statuses, column: [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently if index_exists?(:statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)') - remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ['account_id', 'id'], where: '(visibility = 3)') + remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, %w(account_id id), where: '(visibility = 3)') end end diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb index bb3802f564..3e644045f7 100644 --- a/lib/mastodon/maintenance_cli.rb +++ b/lib/mastodon/maintenance_cli.rb @@ -289,7 +289,7 @@ module Mastodon end @prompt.say 'Restoring account domain blocks indexes…' - ActiveRecord::Base.connection.add_index :account_domain_blocks, ['account_id', 'domain'], name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true + ActiveRecord::Base.connection.add_index :account_domain_blocks, %w(account_id domain), name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true end def deduplicate_account_identity_proofs! @@ -303,7 +303,7 @@ module Mastodon end @prompt.say 'Restoring account identity proofs indexes…' - ActiveRecord::Base.connection.add_index :account_identity_proofs, ['account_id', 'provider', 'provider_username'], name: 'index_account_proofs_on_account_and_provider_and_username', unique: true + ActiveRecord::Base.connection.add_index :account_identity_proofs, %w(account_id provider provider_username), name: 'index_account_proofs_on_account_and_provider_and_username', unique: true end def deduplicate_announcement_reactions! @@ -317,7 +317,7 @@ module Mastodon end @prompt.say 'Restoring announcement_reactions indexes…' - ActiveRecord::Base.connection.add_index :announcement_reactions, ['account_id', 'announcement_id', 'name'], name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true + ActiveRecord::Base.connection.add_index :announcement_reactions, %w(account_id announcement_id name), name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true end def deduplicate_conversations! @@ -359,7 +359,7 @@ module Mastodon end @prompt.say 'Restoring custom_emojis indexes…' - ActiveRecord::Base.connection.add_index :custom_emojis, ['shortcode', 'domain'], name: 'index_custom_emojis_on_shortcode_and_domain', unique: true + ActiveRecord::Base.connection.add_index :custom_emojis, %w(shortcode domain), name: 'index_custom_emojis_on_shortcode_and_domain', unique: true end def deduplicate_custom_emoji_categories! diff --git a/lib/tasks/statistics.rake b/lib/tasks/statistics.rake index 440c309ce3..dde7890f6b 100644 --- a/lib/tasks/statistics.rake +++ b/lib/tasks/statistics.rake @@ -7,7 +7,7 @@ namespace :mastodon do task :stats do require 'rails/code_statistics' [ - %w(App\ Libraries app/lib), + ['App Libraries', 'app/lib'], %w(Presenters app/presenters), %w(Services app/services), %w(Validators app/validators), diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb index 0e5c8296d8..cf996c47c9 100644 --- a/spec/controllers/api/v1/blocks_controller_spec.rb +++ b/spec/controllers/api/v1/blocks_controller_spec.rb @@ -37,13 +37,13 @@ RSpec.describe Api::V1::BlocksController, type: :controller do it 'sets pagination header for next path' do blocks = 2.times.map { Fabricate(:block, account: user.account) } get :index, params: { limit: 1, since_id: blocks[0] } - expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1]) + expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1]) end it 'sets pagination header for previous path' do block = Fabricate(:block, account: user.account) get :index - expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_blocks_url(since_id: block) + expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_blocks_url(since_id: block) end it 'returns http success' do diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb index 279d1a4359..b7af60d2b1 100644 --- a/spec/controllers/api/v1/bookmarks_controller_spec.rb +++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb @@ -63,8 +63,8 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do get :index, params: { limit: 1 } - expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}" - expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}" + expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}" + expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}" end it 'does not add pagination headers if not necessary' do diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb index 512dd0c0d7..dfa3f11011 100644 --- a/spec/controllers/api/v1/favourites_controller_spec.rb +++ b/spec/controllers/api/v1/favourites_controller_spec.rb @@ -63,8 +63,8 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do get :index, params: { limit: 1 } - expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}" - expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}" + expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}" + expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}" end it 'does not add pagination headers if not necessary' do diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb index 8176815d4e..8288cb8151 100644 --- a/spec/controllers/api/v1/mutes_controller_spec.rb +++ b/spec/controllers/api/v1/mutes_controller_spec.rb @@ -37,13 +37,13 @@ RSpec.describe Api::V1::MutesController, type: :controller do it 'sets pagination header for next path' do mutes = 2.times.map { Fabricate(:mute, account: user.account) } get :index, params: { limit: 1, since_id: mutes[0] } - expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1]) + expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1]) end it 'sets pagination header for previous path' do mute = Fabricate(:mute, account: user.account) get :index - expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_mutes_url(since_id: mute) + expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_mutes_url(since_id: mute) end it 'returns http success' do diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index 33d874d107..a653b87c76 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -73,7 +73,7 @@ describe Settings::ApplicationsController do name: 'My New App', redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', website: 'http://google.com', - scopes: ['read', 'write', 'follow'], + scopes: %w(read write follow), }, } response diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb index dd7f01847c..ffb37e0bd6 100644 --- a/spec/controllers/settings/preferences/other_controller_spec.rb +++ b/spec/controllers/settings/preferences/other_controller_spec.rb @@ -23,7 +23,7 @@ describe Settings::Preferences::OtherController do expect(response).to redirect_to(settings_preferences_other_path) user.reload expect(user.locale).to eq 'en' - expect(user.chosen_languages).to eq ['es', 'fr'] + expect(user.chosen_languages).to eq %w(es fr) end it 'updates user settings' do diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 726e33048e..24239f85d1 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -895,7 +895,7 @@ RSpec.describe Account, type: :model do describe 'partitioned' do it 'returns a relation of accounts partitioned by domain' do - matches = ['a', 'b', 'a', 'b'] + matches = %w(a b a b) matches.size.times.to_a.shuffle.each do |index| matches[index] = Fabricate(:account, domain: matches[index]) end diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index 8bd86730bc..d170050fc5 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -262,7 +262,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do let!(:direct_message) { Fabricate(:status, created_at: 1.year.ago, account: account, visibility: :direct) } let!(:self_faved) { Fabricate(:status, created_at: 1.year.ago, account: account) } let!(:self_bookmarked) { Fabricate(:status, created_at: 1.year.ago, account: account) } - let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: ['a', 'b'], expires_in: 2.days }) } + let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: %w(a b), expires_in: 2.days }) } let!(:status_with_media) { Fabricate(:status, created_at: 1.year.ago, account: account) } let!(:faved4) { Fabricate(:status, created_at: 1.year.ago, account: account) } let!(:faved5) { Fabricate(:status, created_at: 1.year.ago, account: account) } diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb index 2110baa2d4..4f828bacc6 100644 --- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb @@ -29,7 +29,7 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d end it 'sets expected tags as pinned tags' do - expect(actor.featured_tags.map(&:display_name)).to match_array ['Foo', 'bar', 'baZ'] + expect(actor.featured_tags.map(&:display_name)).to match_array %w(Foo bar baZ) end end diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 6c3236bae6..78282e4537 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -12,7 +12,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do attachment: [ { type: 'PropertyValue', name: 'Pronouns', value: 'They/them' }, { type: 'PropertyValue', name: 'Occupation', value: 'Unit test' }, - { type: 'PropertyValue', name: 'non-string', value: ['foo', 'bar'] }, + { type: 'PropertyValue', name: 'non-string', value: %w(foo bar) }, ], }.with_indifferent_access end diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb index d0cc8d2888..e5bfdd679f 100644 --- a/spec/services/delete_account_service_spec.rb +++ b/spec/services/delete_account_service_spec.rb @@ -50,9 +50,9 @@ RSpec.describe DeleteAccountService, type: :service do it 'deletes associated target notifications' do expect { subject }.to change { - [ - 'poll', 'favourite', 'status', 'mention', 'follow' - ].map { |type| Notification.where(type: type).count } + %w( + poll favourite status mention follow + ).map { |type| Notification.where(type: type).count } }.from([1, 1, 1, 1, 1]).to([0, 0, 0, 0, 0]) end end diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index 8faf048367..a5dfed369f 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -19,7 +19,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do [ { 'concurrency' => 2, - 'queues' => ['push', 'default'], + 'queues' => %w(push default), }, ] end @@ -82,7 +82,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do describe '#get_budget' do context 'on a single thread' do - let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => ['push', 'default'] }] } + let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => %w(push default) }] } it 'returns a low value' do expect(subject.compute_budget).to be < 10 @@ -92,7 +92,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do context 'on a lot of threads' do let(:process_set_stub) do [ - { 'concurrency' => 2, 'queues' => ['push', 'default'] }, + { 'concurrency' => 2, 'queues' => %w(push default) }, { 'concurrency' => 2, 'queues' => ['push'] }, { 'concurrency' => 2, 'queues' => ['push'] }, { 'concurrency' => 2, 'queues' => ['push'] }, From 5116347eb7cfd0a09f55efbd84f8d3fa11d4d6ba Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 00:14:50 -0500 Subject: [PATCH 0504/1220] Autofix Rubocop RSpec/BeEq (#23740) --- .rubocop_todo.yml | 43 ------------------- .../export_domain_allows_controller_spec.rb | 2 +- .../admin/reports/actions_controller_spec.rb | 2 +- .../admin/reports_controller_spec.rb | 8 ++-- ..._factor_authentications_controller_spec.rb | 6 +-- .../accounts/credentials_controller_spec.rb | 2 +- .../api/v1/bookmarks_controller_spec.rb | 2 +- .../api/v1/favourites_controller_spec.rb | 2 +- .../v2/filters/keywords_controller_spec.rb | 4 +- .../application_controller_spec.rb | 6 +-- .../auth/registrations_controller_spec.rb | 6 +-- .../statuses_cleanup_controller_spec.rb | 6 +-- spec/helpers/application_helper_spec.rb | 10 ++--- spec/helpers/jsonld_helper_spec.rb | 12 +++--- spec/lib/activitypub/activity/add_spec.rb | 8 ++-- spec/lib/activitypub/activity/create_spec.rb | 4 +- spec/lib/feed_manager_spec.rb | 28 ++++++------ spec/lib/ostatus/tag_manager_spec.rb | 6 +-- spec/lib/tag_manager_spec.rb | 20 ++++----- spec/lib/user_settings_decorator_spec.rb | 20 ++++----- spec/models/account_domain_block_spec.rb | 4 +- spec/models/account_spec.rb | 20 ++++----- spec/models/block_spec.rb | 8 ++-- spec/models/domain_block_spec.rb | 6 +-- spec/models/favourite_spec.rb | 2 +- spec/models/media_attachment_spec.rb | 2 +- spec/models/user_spec.rb | 2 +- spec/models/web/push_subscription_spec.rb | 12 +++--- .../process_status_update_service_spec.rb | 2 +- spec/services/fetch_oembed_service_spec.rb | 6 +-- spec/services/fetch_resource_service_spec.rb | 2 +- spec/services/post_status_service_spec.rb | 2 +- spec/services/precompute_feed_service_spec.rb | 2 +- spec/services/resolve_account_service_spec.rb | 12 +++--- .../examples/lib/settings/scoped_settings.rb | 32 +++++++------- spec/workers/domain_block_worker_spec.rb | 2 +- .../workers/domain_clear_media_worker_spec.rb | 2 +- spec/workers/feed_insert_worker_spec.rb | 4 +- spec/workers/regeneration_worker_spec.rb | 2 +- 39 files changed, 139 insertions(+), 182 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ce1ef9a2bc..86a48a1709 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -545,49 +545,6 @@ RSpec/AnyInstance: - 'spec/workers/activitypub/delivery_worker_spec.rb' - 'spec/workers/web/push_notification_worker_spec.rb' -# Offense count: 139 -# This cop supports unsafe autocorrection (--autocorrect-all). -RSpec/BeEq: - Exclude: - - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' - - 'spec/controllers/admin/reports/actions_controller_spec.rb' - - 'spec/controllers/admin/reports_controller_spec.rb' - - 'spec/controllers/admin/users/two_factor_authentications_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb' - - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' - - 'spec/controllers/api/v1/favourites_controller_spec.rb' - - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/statuses_cleanup_controller_spec.rb' - - 'spec/helpers/application_helper_spec.rb' - - 'spec/helpers/jsonld_helper_spec.rb' - - 'spec/lib/activitypub/activity/add_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/feed_manager_spec.rb' - - 'spec/lib/ostatus/tag_manager_spec.rb' - - 'spec/lib/tag_manager_spec.rb' - - 'spec/lib/user_settings_decorator_spec.rb' - - 'spec/models/account_domain_block_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/block_spec.rb' - - 'spec/models/domain_block_spec.rb' - - 'spec/models/favourite_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/models/web/push_subscription_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/services/post_status_service_spec.rb' - - 'spec/services/precompute_feed_service_spec.rb' - - 'spec/services/resolve_account_service_spec.rb' - - 'spec/support/examples/lib/settings/scoped_settings.rb' - - 'spec/workers/domain_block_worker_spec.rb' - - 'spec/workers/domain_clear_media_worker_spec.rb' - - 'spec/workers/feed_insert_worker_spec.rb' - - 'spec/workers/regeneration_worker_spec.rb' - # Offense count: 1 RSpec/BeforeAfterAll: Exclude: diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb index 1e1a5ae7d4..7ee064de7f 100644 --- a/spec/controllers/admin/export_domain_allows_controller_spec.rb +++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb @@ -25,7 +25,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do expect(response).to redirect_to(admin_instances_path) # Header should not be imported - expect(DomainAllow.where(domain: '#domain').present?).to eq(false) + expect(DomainAllow.where(domain: '#domain').present?).to be(false) # Domains should now be added get :export, params: { format: :csv } diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb index db3a1d311c..20f85680fa 100644 --- a/spec/controllers/admin/reports/actions_controller_spec.rb +++ b/spec/controllers/admin/reports/actions_controller_spec.rb @@ -116,7 +116,7 @@ describe Admin::Reports::ActionsController do it 'marks the non-deleted as sensitive' do subject - expect(media_attached_status.reload.sensitive).to eq true + expect(media_attached_status.reload.sensitive).to be true end end end diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index 4dcc277d99..c6b5770a81 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -55,7 +55,7 @@ describe Admin::ReportsController do expect(response).to redirect_to(admin_reports_path) report.reload expect(report.action_taken_by_account).to eq user.account - expect(report.action_taken?).to eq true + expect(report.action_taken?).to be true end end @@ -66,8 +66,8 @@ describe Admin::ReportsController do put :reopen, params: { id: report } expect(response).to redirect_to(admin_report_path(report)) report.reload - expect(report.action_taken_by_account).to eq nil - expect(report.action_taken?).to eq false + expect(report.action_taken_by_account).to be_nil + expect(report.action_taken?).to be false end end @@ -89,7 +89,7 @@ describe Admin::ReportsController do put :unassign, params: { id: report } expect(response).to redirect_to(admin_report_path(report)) report.reload - expect(report.assigned_account).to eq nil + expect(report.assigned_account).to be_nil end end end diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb index e56264ef62..990dcf6408 100644 --- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb +++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb @@ -20,7 +20,7 @@ describe Admin::Users::TwoFactorAuthenticationsController do delete :destroy, params: { user_id: user.id } user.reload - expect(user.otp_enabled?).to eq false + expect(user.otp_enabled?).to be false expect(response).to redirect_to(admin_account_path(user.account_id)) end end @@ -43,8 +43,8 @@ describe Admin::Users::TwoFactorAuthenticationsController do delete :destroy, params: { user_id: user.id } user.reload - expect(user.otp_enabled?).to eq false - expect(user.webauthn_enabled?).to eq false + expect(user.otp_enabled?).to be false + expect(user.webauthn_enabled?).to be false expect(response).to redirect_to(admin_account_path(user.account_id)) end end diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index cf91aae38f..3494ca6746 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -51,7 +51,7 @@ describe Api::V1::Accounts::CredentialsController do expect(user.account.avatar).to exist expect(user.account.header).to exist expect(user.setting_default_privacy).to eq('unlisted') - expect(user.setting_default_sensitive).to eq(true) + expect(user.setting_default_sensitive).to be(true) end it 'queues up an account update distribution' do diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb index b7af60d2b1..48332b15a5 100644 --- a/spec/controllers/api/v1/bookmarks_controller_spec.rb +++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb @@ -70,7 +70,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do it 'does not add pagination headers if not necessary' do get :index - expect(response.headers['Link']).to eq nil + expect(response.headers['Link']).to be_nil end end end diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb index dfa3f11011..f0fb8f37bd 100644 --- a/spec/controllers/api/v1/favourites_controller_spec.rb +++ b/spec/controllers/api/v1/favourites_controller_spec.rb @@ -70,7 +70,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do it 'does not add pagination headers if not necessary' do get :index - expect(response.headers['Link']).to eq nil + expect(response.headers['Link']).to be_nil end end end diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb index 1201a4ca23..0e0f52ea86 100644 --- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb +++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb @@ -45,7 +45,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do it 'returns a keyword' do json = body_as_json expect(json[:keyword]).to eq 'magic' - expect(json[:whole_word]).to eq false + expect(json[:whole_word]).to be false end it 'creates a keyword' do @@ -78,7 +78,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do it 'returns expected data' do json = body_as_json expect(json[:keyword]).to eq 'foo' - expect(json[:whole_word]).to eq false + expect(json[:whole_word]).to be false end context "when trying to access another user's filter keyword" do diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index e2a63002b6..35c7326cb1 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -57,19 +57,19 @@ describe ApplicationController, type: :controller do describe 'helper_method :single_user_mode?' do it 'returns false if it is in single_user_mode but there is no account' do allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true) - expect(controller.view_context.single_user_mode?).to eq false + expect(controller.view_context.single_user_mode?).to be false end it 'returns false if there is an account but it is not in single_user_mode' do allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false) Fabricate(:account) - expect(controller.view_context.single_user_mode?).to eq false + expect(controller.view_context.single_user_mode?).to be false end it 'returns true if it is in single_user_mode and there is an account' do allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true) Fabricate(:account) - expect(controller.view_context.single_user_mode?).to eq true + expect(controller.view_context.single_user_mode?).to be true end end diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index 8cfb8e277a..f42f685c10 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -163,7 +163,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do user = User.find_by(email: 'test@example.com') expect(user).to_not be_nil expect(user.locale).to eq(accept_language) - expect(user.approved).to eq(false) + expect(user.approved).to be(false) end end @@ -191,7 +191,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do user = User.find_by(email: 'test@example.com') expect(user).to_not be_nil expect(user.locale).to eq(accept_language) - expect(user.approved).to eq(false) + expect(user.approved).to be(false) end end @@ -223,7 +223,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do user = User.find_by(email: 'test@example.com') expect(user).to_not be_nil expect(user.locale).to eq(accept_language) - expect(user.approved).to eq(true) + expect(user.approved).to be(true) end end diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb index 347fe4027e..24b4ea7b60 100644 --- a/spec/controllers/statuses_cleanup_controller_spec.rb +++ b/spec/controllers/statuses_cleanup_controller_spec.rb @@ -19,9 +19,9 @@ RSpec.describe StatusesCleanupController, type: :controller do it 'updates the account status cleanup policy' do put :update, params: { account_statuses_cleanup_policy: { enabled: true, min_status_age: 2.weeks.seconds, keep_direct: false, keep_polls: true } } expect(response).to redirect_to(statuses_cleanup_path) - expect(@user.account.statuses_cleanup_policy.enabled).to eq true - expect(@user.account.statuses_cleanup_policy.keep_direct).to eq false - expect(@user.account.statuses_cleanup_policy.keep_polls).to eq true + expect(@user.account.statuses_cleanup_policy.enabled).to be true + expect(@user.account.statuses_cleanup_policy.keep_direct).to be false + expect(@user.account.statuses_cleanup_policy.keep_polls).to be true end end end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 6502cfebf2..e0f71afd53 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -65,7 +65,7 @@ describe ApplicationHelper do expect(Setting).to receive(:registrations_mode).and_return('open') end - expect(helper.open_registrations?).to eq true + expect(helper.open_registrations?).to be true end it 'returns false when closed for registrations' do @@ -73,7 +73,7 @@ describe ApplicationHelper do expect(Setting).to receive(:registrations_mode).and_return('none') end - expect(helper.open_registrations?).to eq false + expect(helper.open_registrations?).to be false end end @@ -84,7 +84,7 @@ describe ApplicationHelper do end it 'does not show landing strip' do - expect(helper.show_landing_strip?).to eq false + expect(helper.show_landing_strip?).to be false end end @@ -96,13 +96,13 @@ describe ApplicationHelper do it 'does not show landing strip on single user instance' do allow(helper).to receive(:single_user_mode?).and_return(true) - expect(helper.show_landing_strip?).to eq false + expect(helper.show_landing_strip?).to be false end it 'shows landing strip on multi user instance' do allow(helper).to receive(:single_user_mode?).and_return(false) - expect(helper.show_landing_strip?).to eq true + expect(helper.show_landing_strip?).to be true end end end diff --git a/spec/helpers/jsonld_helper_spec.rb b/spec/helpers/jsonld_helper_spec.rb index debee17f0f..ddd4bfe629 100644 --- a/spec/helpers/jsonld_helper_spec.rb +++ b/spec/helpers/jsonld_helper_spec.rb @@ -66,14 +66,14 @@ describe JsonLdHelper do stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://marvin.test/"}' stub_request(:get, 'https://marvin.test/').to_return body: '{"id": "https://alice.test/"}' - expect(fetch_resource('https://mallory.test/', false)).to eq nil + expect(fetch_resource('https://mallory.test/', false)).to be_nil end end context 'when the second argument is true' do it 'returns nil if the retrieved ID and the given URI does not match' do stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://alice.test/"}' - expect(fetch_resource('https://mallory.test/', true)).to eq nil + expect(fetch_resource('https://mallory.test/', true)).to be_nil end end end @@ -81,7 +81,7 @@ describe JsonLdHelper do describe '#fetch_resource_without_id_validation' do it 'returns nil if the status code is not 200' do stub_request(:get, 'https://host.test/').to_return status: 400, body: '{}' - expect(fetch_resource_without_id_validation('https://host.test/')).to eq nil + expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil end it 'returns hash' do @@ -150,7 +150,7 @@ describe JsonLdHelper do patch_for_forwarding!(json, compacted) expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public'] expect(compacted.dig('object', 'tag', 0, 'href')).to eq ['foo'] - expect(safe_for_forwarding?(json, compacted)).to eq true + expect(safe_for_forwarding?(json, compacted)).to be true end end @@ -160,14 +160,14 @@ describe JsonLdHelper do compacted = compact(json) deemed_compatible = patch_for_forwarding!(json, compacted) expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public'] - expect(safe_for_forwarding?(json, compacted)).to eq true + expect(safe_for_forwarding?(json, compacted)).to be true end it 'deems an unsafe compacting as such' do compacted = compact(json) deemed_compatible = patch_for_forwarding!(json, compacted) expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public'] - expect(safe_for_forwarding?(json, compacted)).to eq false + expect(safe_for_forwarding?(json, compacted)).to be false end end end diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index e21c871e67..a69c3d2b19 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -50,8 +50,8 @@ RSpec.describe ActivityPub::Activity::Add do it 'fetches the status and pins it' do allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument expect(uri).to eq 'https://example.com/unknown' - expect(id).to eq true - expect(on_behalf_of&.following?(sender)).to eq true + expect(id).to be true + expect(on_behalf_of&.following?(sender)).to be true status end subject.perform @@ -64,8 +64,8 @@ RSpec.describe ActivityPub::Activity::Add do it 'tries to fetch the status' do allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument expect(uri).to eq 'https://example.com/unknown' - expect(id).to eq true - expect(on_behalf_of).to eq nil + expect(id).to be true + expect(on_behalf_of).to be_nil nil end subject.perform diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index c26c8b3580..fd49830374 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -51,7 +51,7 @@ RSpec.describe ActivityPub::Activity::Create do status = sender.statuses.first expect(status).to_not be_nil - expect(status.edited?).to eq true + expect(status.edited?).to be true end end @@ -77,7 +77,7 @@ RSpec.describe ActivityPub::Activity::Create do status = sender.statuses.first expect(status).to_not be_nil - expect(status.edited?).to eq false + expect(status.edited?).to be false end end diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index 7195cec064..d54050f8f7 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -297,7 +297,7 @@ RSpec.describe FeedManager do status = Fabricate(:status, reblog: reblog) FeedManager.instance.push_to_home(account, status) - expect(FeedManager.instance.push_to_home(account, reblog)).to eq false + expect(FeedManager.instance.push_to_home(account, reblog)).to be false end end @@ -322,7 +322,7 @@ RSpec.describe FeedManager do status = Fabricate(:status, reblog: reblog) FeedManager.instance.push_to_list(list, status) - expect(FeedManager.instance.push_to_list(list, reblog)).to eq false + expect(FeedManager.instance.push_to_list(list, reblog)).to be false end context 'when replies policy is set to no replies' do @@ -332,19 +332,19 @@ RSpec.describe FeedManager do it 'pushes statuses that are not replies' do status = Fabricate(:status, text: 'Hello world', account: bob) - expect(FeedManager.instance.push_to_list(list, status)).to eq true + expect(FeedManager.instance.push_to_list(list, status)).to be true end it 'pushes statuses that are replies to list owner' do status = Fabricate(:status, text: 'Hello world', account: owner) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end it 'does not push replies to another member of the list' do status = Fabricate(:status, text: 'Hello world', account: alice) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq false + expect(FeedManager.instance.push_to_list(list, reply)).to be false end end @@ -355,25 +355,25 @@ RSpec.describe FeedManager do it 'pushes statuses that are not replies' do status = Fabricate(:status, text: 'Hello world', account: bob) - expect(FeedManager.instance.push_to_list(list, status)).to eq true + expect(FeedManager.instance.push_to_list(list, status)).to be true end it 'pushes statuses that are replies to list owner' do status = Fabricate(:status, text: 'Hello world', account: owner) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end it 'pushes replies to another member of the list' do status = Fabricate(:status, text: 'Hello world', account: alice) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end it 'does not push replies to someone not a member of the list' do status = Fabricate(:status, text: 'Hello world', account: eve) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq false + expect(FeedManager.instance.push_to_list(list, reply)).to be false end end @@ -384,25 +384,25 @@ RSpec.describe FeedManager do it 'pushes statuses that are not replies' do status = Fabricate(:status, text: 'Hello world', account: bob) - expect(FeedManager.instance.push_to_list(list, status)).to eq true + expect(FeedManager.instance.push_to_list(list, status)).to be true end it 'pushes statuses that are replies to list owner' do status = Fabricate(:status, text: 'Hello world', account: owner) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end it 'pushes replies to another member of the list' do status = Fabricate(:status, text: 'Hello world', account: alice) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end it 'pushes replies to someone not a member of the list' do status = Fabricate(:status, text: 'Hello world', account: eve) reply = Fabricate(:status, text: 'Nay', thread: status, account: bob) - expect(FeedManager.instance.push_to_list(list, reply)).to eq true + expect(FeedManager.instance.push_to_list(list, reply)).to be true end end end @@ -416,7 +416,7 @@ RSpec.describe FeedManager do FeedManager.instance.merge_into_home(account, reblog.account) - expect(redis.zscore('feed:home:0', reblog.id)).to eq nil + expect(redis.zscore('feed:home:0', reblog.id)).to be_nil end end diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb index 65ba7577ac..8104a7e791 100644 --- a/spec/lib/ostatus/tag_manager_spec.rb +++ b/spec/lib/ostatus/tag_manager_spec.rb @@ -15,15 +15,15 @@ describe OStatus::TagManager do end it 'returns nil if it is not local id' do - expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to eq nil + expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to be_nil end it 'returns nil if it is not expected type' do - expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to eq nil + expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to be_nil end it 'returns nil if it does not have object ID' do - expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to eq nil + expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to be_nil end end diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb index cd9fb936cd..d2bb24c0f1 100644 --- a/spec/lib/tag_manager_spec.rb +++ b/spec/lib/tag_manager_spec.rb @@ -14,15 +14,15 @@ RSpec.describe TagManager do end it 'returns true for nil' do - expect(TagManager.instance.local_domain?(nil)).to eq true + expect(TagManager.instance.local_domain?(nil)).to be true end it 'returns true if the slash-stripped string equals to local domain' do - expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to eq true + expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to be true end it 'returns false for irrelevant string' do - expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to eq false + expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to be false end end @@ -39,21 +39,21 @@ RSpec.describe TagManager do end it 'returns true for nil' do - expect(TagManager.instance.web_domain?(nil)).to eq true + expect(TagManager.instance.web_domain?(nil)).to be true end it 'returns true if the slash-stripped string equals to web domain' do - expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to eq true + expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to be true end it 'returns false for string with irrelevant characters' do - expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to eq false + expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to be false end end describe '#normalize_domain' do it 'returns nil if the given parameter is nil' do - expect(TagManager.instance.normalize_domain(nil)).to eq nil + expect(TagManager.instance.normalize_domain(nil)).to be_nil end it 'returns normalized domain' do @@ -70,17 +70,17 @@ RSpec.describe TagManager do it 'returns true if the normalized string with port is local URL' do Rails.configuration.x.web_domain = 'domain.example.com:42' - expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to eq true + expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to be true end it 'returns true if the normalized string without port is local URL' do Rails.configuration.x.web_domain = 'domain.example.com' - expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to eq true + expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to be true end it 'returns false for string with irrelevant characters' do Rails.configuration.x.web_domain = 'domain.example.com' - expect(TagManager.instance.local_url?('https://domain.example.net/')).to eq false + expect(TagManager.instance.local_url?('https://domain.example.net/')).to be false end end end diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb index 462c5b1249..3b9b7ee2b2 100644 --- a/spec/lib/user_settings_decorator_spec.rb +++ b/spec/lib/user_settings_decorator_spec.rb @@ -11,14 +11,14 @@ describe UserSettingsDecorator do values = { 'notification_emails' => { 'follow' => '1' } } settings.update(values) - expect(user.settings['notification_emails']['follow']).to eq true + expect(user.settings['notification_emails']['follow']).to be true end it 'updates the user settings value for interactions' do values = { 'interactions' => { 'must_be_follower' => '0' } } settings.update(values) - expect(user.settings['interactions']['must_be_follower']).to eq false + expect(user.settings['interactions']['must_be_follower']).to be false end it 'updates the user settings value for privacy' do @@ -32,42 +32,42 @@ describe UserSettingsDecorator do values = { 'setting_default_sensitive' => '1' } settings.update(values) - expect(user.settings['default_sensitive']).to eq true + expect(user.settings['default_sensitive']).to be true end it 'updates the user settings value for unfollow modal' do values = { 'setting_unfollow_modal' => '0' } settings.update(values) - expect(user.settings['unfollow_modal']).to eq false + expect(user.settings['unfollow_modal']).to be false end it 'updates the user settings value for boost modal' do values = { 'setting_boost_modal' => '1' } settings.update(values) - expect(user.settings['boost_modal']).to eq true + expect(user.settings['boost_modal']).to be true end it 'updates the user settings value for delete toot modal' do values = { 'setting_delete_modal' => '0' } settings.update(values) - expect(user.settings['delete_modal']).to eq false + expect(user.settings['delete_modal']).to be false end it 'updates the user settings value for gif auto play' do values = { 'setting_auto_play_gif' => '0' } settings.update(values) - expect(user.settings['auto_play_gif']).to eq false + expect(user.settings['auto_play_gif']).to be false end it 'updates the user settings value for system font in UI' do values = { 'setting_system_font_ui' => '0' } settings.update(values) - expect(user.settings['system_font_ui']).to eq false + expect(user.settings['system_font_ui']).to be false end it 'decoerces setting values before applying' do @@ -77,8 +77,8 @@ describe UserSettingsDecorator do } settings.update(values) - expect(user.settings['delete_modal']).to eq false - expect(user.settings['boost_modal']).to eq true + expect(user.settings['delete_modal']).to be false + expect(user.settings['boost_modal']).to be true end end end diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb index 469bc05cb1..a170abcd27 100644 --- a/spec/models/account_domain_block_spec.rb +++ b/spec/models/account_domain_block_spec.rb @@ -7,7 +7,7 @@ RSpec.describe AccountDomainBlock, type: :model do AccountDomainBlock.create!(account: account, domain: 'a.domain.blocked.later') - expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false + expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false end it 'removes blocking cache after destruction' do @@ -17,6 +17,6 @@ RSpec.describe AccountDomainBlock, type: :model do block.destroy! - expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false + expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 24239f85d1..f3ad198777 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -160,7 +160,7 @@ RSpec.describe Account, type: :model do it 'sets default avatar, header, avatar_remote_url, and header_remote_url' do expect(account.avatar_remote_url).to eq 'https://remote.test/invalid_avatar' expect(account.header_remote_url).to eq expectation.header_remote_url - expect(account.avatar_file_name).to eq nil + expect(account.avatar_file_name).to be_nil expect(account.header_file_name).to eq expectation.header_file_name end end @@ -259,11 +259,11 @@ RSpec.describe Account, type: :model do it 'is true when this account has favourited it' do Fabricate(:favourite, status: original_reblog, account: subject) - expect(subject.favourited?(original_status)).to eq true + expect(subject.favourited?(original_status)).to be true end it 'is false when this account has not favourited it' do - expect(subject.favourited?(original_status)).to eq false + expect(subject.favourited?(original_status)).to be false end end @@ -271,11 +271,11 @@ RSpec.describe Account, type: :model do it 'is true when this account has favourited it' do Fabricate(:favourite, status: original_status, account: subject) - expect(subject.favourited?(original_status)).to eq true + expect(subject.favourited?(original_status)).to be true end it 'is false when this account has not favourited it' do - expect(subject.favourited?(original_status)).to eq false + expect(subject.favourited?(original_status)).to be false end end end @@ -297,11 +297,11 @@ RSpec.describe Account, type: :model do it 'is true when this account has reblogged it' do Fabricate(:status, reblog: original_reblog, account: subject) - expect(subject.reblogged?(original_reblog)).to eq true + expect(subject.reblogged?(original_reblog)).to be true end it 'is false when this account has not reblogged it' do - expect(subject.reblogged?(original_reblog)).to eq false + expect(subject.reblogged?(original_reblog)).to be false end end @@ -309,11 +309,11 @@ RSpec.describe Account, type: :model do it 'is true when this account has reblogged it' do Fabricate(:status, reblog: original_status, account: subject) - expect(subject.reblogged?(original_status)).to eq true + expect(subject.reblogged?(original_status)).to be true end it 'is false when this account has not reblogged it' do - expect(subject.reblogged?(original_status)).to eq false + expect(subject.reblogged?(original_status)).to be false end end end @@ -958,7 +958,7 @@ RSpec.describe Account, type: :model do # Test disabled because test environment omits autogenerating keys for performance xit 'generates keys' do account = Account.create!(domain: nil, username: Faker::Internet.user_name(separators: ['_'])) - expect(account.keypair.private?).to eq true + expect(account.keypair.private?).to be true end end diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb index acbdc77f5b..1fd60c29d2 100644 --- a/spec/models/block_spec.rb +++ b/spec/models/block_spec.rb @@ -28,8 +28,8 @@ RSpec.describe Block, type: :model do Block.create!(account: account, target_account: target_account) - expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false - expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false + expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false + expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false end it 'removes blocking cache after destruction' do @@ -41,7 +41,7 @@ RSpec.describe Block, type: :model do block.destroy! - expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false - expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false + expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false + expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false end end diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb index 28647dc89c..d1d57c1677 100644 --- a/spec/models/domain_block_spec.rb +++ b/spec/models/domain_block_spec.rb @@ -24,16 +24,16 @@ RSpec.describe DomainBlock, type: :model do describe '.blocked?' do it 'returns true if the domain is suspended' do Fabricate(:domain_block, domain: 'example.com', severity: :suspend) - expect(DomainBlock.blocked?('example.com')).to eq true + expect(DomainBlock.blocked?('example.com')).to be true end it 'returns false even if the domain is silenced' do Fabricate(:domain_block, domain: 'example.com', severity: :silence) - expect(DomainBlock.blocked?('example.com')).to eq false + expect(DomainBlock.blocked?('example.com')).to be false end it 'returns false if the domain is not suspended nor silenced' do - expect(DomainBlock.blocked?('example.com')).to eq false + expect(DomainBlock.blocked?('example.com')).to be false end end diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb index ba1410a453..f755590ee5 100644 --- a/spec/models/favourite_spec.rb +++ b/spec/models/favourite_spec.rb @@ -9,7 +9,7 @@ RSpec.describe Favourite, type: :model do it 'invalidates if the reblogged status is already a favourite' do Favourite.create!(account: account, status: reblog) - expect(Favourite.new(account: account, status: status).valid?).to eq false + expect(Favourite.new(account: account, status: status).valid?).to be false end it 'replaces status with the reblogged one if it is a reblog' do diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 57e1314230..097c76f311 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -138,7 +138,7 @@ RSpec.describe MediaAttachment, type: :model do end it 'extracts thumbnail' do - expect(media.thumbnail.present?).to eq true + expect(media.thumbnail.present?).to be true end it 'extracts colors from thumbnail' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 9af616b32a..9dfd6678ac 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -46,7 +46,7 @@ RSpec.describe User, type: :model do it 'cleans out empty string from languages' do user = Fabricate.build(:user, chosen_languages: ['']) user.valid? - expect(user.chosen_languages).to eq nil + expect(user.chosen_languages).to be_nil end end diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb index 388154000c..a5c34f4edc 100644 --- a/spec/models/web/push_subscription_spec.rb +++ b/spec/models/web/push_subscription_spec.rb @@ -39,7 +39,7 @@ RSpec.describe Web::PushSubscription, type: :model do let(:policy) { 'all' } it 'returns true' do - expect(subject.pushable?(notification)).to eq true + expect(subject.pushable?(notification)).to be true end end @@ -47,7 +47,7 @@ RSpec.describe Web::PushSubscription, type: :model do let(:policy) { 'none' } it 'returns false' do - expect(subject.pushable?(notification)).to eq false + expect(subject.pushable?(notification)).to be false end end @@ -60,13 +60,13 @@ RSpec.describe Web::PushSubscription, type: :model do end it 'returns true' do - expect(subject.pushable?(notification)).to eq true + expect(subject.pushable?(notification)).to be true end end context 'and notification is not from someone you follow' do it 'returns false' do - expect(subject.pushable?(notification)).to eq false + expect(subject.pushable?(notification)).to be false end end end @@ -80,13 +80,13 @@ RSpec.describe Web::PushSubscription, type: :model do end it 'returns true' do - expect(subject.pushable?(notification)).to eq true + expect(subject.pushable?(notification)).to be true end end context 'and notification is not from someone who follows you' do it 'returns false' do - expect(subject.pushable?(notification)).to eq false + expect(subject.pushable?(notification)).to be false end end end diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 3d6f76163e..c8aa56def1 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -410,7 +410,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do end it 'removes poll' do - expect(status.reload.poll).to eq nil + expect(status.reload.poll).to be_nil end it 'records media change in edit' do diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb index cf46f2d390..8a0b492223 100644 --- a/spec/services/fetch_oembed_service_spec.rb +++ b/spec/services/fetch_oembed_service_spec.rb @@ -62,7 +62,7 @@ describe FetchOEmbedService, type: :service do it 'does not cache OEmbed endpoint' do subject.call('https://host.test/oembed.html', format: :xml) - expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false + expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false end end @@ -83,7 +83,7 @@ describe FetchOEmbedService, type: :service do it 'does not cache OEmbed endpoint' do subject.call('https://host.test/oembed.html') - expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false + expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false end end @@ -104,7 +104,7 @@ describe FetchOEmbedService, type: :service do it 'does not cache OEmbed endpoint' do subject.call('https://host.test/oembed.html') - expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false + expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false end end diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 84c4035cb1..226c98d70a 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -74,7 +74,7 @@ RSpec.describe FetchResourceService, type: :service do context 'when content type is application/atom+xml' do let(:content_type) { 'application/atom+xml' } - it { is_expected.to eq nil } + it { is_expected.to be_nil } end context 'when content type is activity+json' do diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 2148f18197..c34f2393a1 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -216,7 +216,7 @@ RSpec.describe PostStatusService, type: :service do media_ids: [media.id] ) - expect(media.reload.status).to eq nil + expect(media.reload.status).to be_nil end it 'does not allow attaching more than 4 files' do diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb index b28824f9a2..86ab59b29e 100644 --- a/spec/services/precompute_feed_service_spec.rb +++ b/spec/services/precompute_feed_service_spec.rb @@ -31,7 +31,7 @@ RSpec.describe PrecomputeFeedService, type: :service do subject.call(account) - expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to eq nil + expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to be_nil end end end diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index 192225229d..02869f8c8c 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -108,7 +108,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('Foo@redirected.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.acct).to eq 'foo@ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' end @@ -123,7 +123,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('Foo@redirected.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.acct).to eq 'foo@ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' end @@ -146,7 +146,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('foo@ap.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.domain).to eq 'ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' end @@ -159,7 +159,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('foo@ap.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.domain).to eq 'ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' expect(account.actor_type).to eq 'Person' @@ -174,7 +174,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('foo@ap.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.domain).to eq 'ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' expect(account.uri).to eq 'https://ap.example.com/users/foo' @@ -195,7 +195,7 @@ RSpec.describe ResolveAccountService, type: :service do it 'returns new remote account' do account = subject.call('foo@ap.example.com') - expect(account.activitypub?).to eq true + expect(account.activitypub?).to be true expect(account.domain).to eq 'ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' expect(account.uri).to eq 'https://ap.example.com/users/foo' diff --git a/spec/support/examples/lib/settings/scoped_settings.rb b/spec/support/examples/lib/settings/scoped_settings.rb index 2457dcfbf2..106adb4fac 100644 --- a/spec/support/examples/lib/settings/scoped_settings.rb +++ b/spec/support/examples/lib/settings/scoped_settings.rb @@ -3,13 +3,13 @@ shared_examples 'ScopedSettings' do describe '[]' do it 'inherits default settings' do - expect(Setting.boost_modal).to eq false - expect(Setting.interactions['must_be_follower']).to eq false + expect(Setting.boost_modal).to be false + expect(Setting.interactions['must_be_follower']).to be false settings = create! - expect(settings['boost_modal']).to eq false - expect(settings['interactions']['must_be_follower']).to eq false + expect(settings['boost_modal']).to be false + expect(settings['interactions']['must_be_follower']).to be false end end @@ -17,16 +17,16 @@ shared_examples 'ScopedSettings' do # expecting [] and []= works it 'returns records merged with default values except hashes' do - expect(Setting.boost_modal).to eq false - expect(Setting.delete_modal).to eq true + expect(Setting.boost_modal).to be false + expect(Setting.delete_modal).to be true settings = create! settings['boost_modal'] = true records = settings.all_as_records - expect(records['boost_modal'].value).to eq true - expect(records['delete_modal'].value).to eq true + expect(records['boost_modal'].value).to be true + expect(records['delete_modal'].value).to be true end end @@ -34,15 +34,15 @@ shared_examples 'ScopedSettings' do # expecting [] and []= works. it 'reads settings' do - expect(Setting.boost_modal).to eq false + expect(Setting.boost_modal).to be false settings = create! - expect(settings.boost_modal).to eq false + expect(settings.boost_modal).to be false end it 'updates settings' do settings = fabricate settings.boost_modal = true - expect(settings['boost_modal']).to eq true + expect(settings['boost_modal']).to be true end end @@ -54,13 +54,13 @@ shared_examples 'ScopedSettings' do Setting.save! - expect(settings['boost_modal']).to eq true - expect(settings['interactions']['must_be_follower']).to eq true + expect(settings['boost_modal']).to be true + expect(settings['interactions']['must_be_follower']).to be true Rails.cache.clear - expect(settings['boost_modal']).to eq true - expect(settings['interactions']['must_be_follower']).to eq true + expect(settings['boost_modal']).to be true + expect(settings['interactions']['must_be_follower']).to be true end xit 'does not mutate defaults via the cache' do @@ -69,6 +69,6 @@ shared_examples 'ScopedSettings' do # This mutates the global settings default such that future # instances will inherit the incorrect starting values - expect(fabricate.settings['interactions']['must_be_follower']).to eq false + expect(fabricate.settings['interactions']['must_be_follower']).to be false end end diff --git a/spec/workers/domain_block_worker_spec.rb b/spec/workers/domain_block_worker_spec.rb index bd8fc4a620..8b98443fa7 100644 --- a/spec/workers/domain_block_worker_spec.rb +++ b/spec/workers/domain_block_worker_spec.rb @@ -20,7 +20,7 @@ describe DomainBlockWorker do it 'returns true for non-existent domain block' do result = subject.perform('aaa') - expect(result).to eq(true) + expect(result).to be(true) end end end diff --git a/spec/workers/domain_clear_media_worker_spec.rb b/spec/workers/domain_clear_media_worker_spec.rb index 36251b1ec5..f21d1fe189 100644 --- a/spec/workers/domain_clear_media_worker_spec.rb +++ b/spec/workers/domain_clear_media_worker_spec.rb @@ -20,7 +20,7 @@ describe DomainClearMediaWorker do it 'returns true for non-existent domain block' do result = subject.perform('aaa') - expect(result).to eq(true) + expect(result).to be(true) end end end diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb index 1a723d63a1..16f7d73e02 100644 --- a/spec/workers/feed_insert_worker_spec.rb +++ b/spec/workers/feed_insert_worker_spec.rb @@ -15,7 +15,7 @@ describe FeedInsertWorker do allow(FeedManager).to receive(:instance).and_return(instance) result = subject.perform(nil, follower.id) - expect(result).to eq true + expect(result).to be true expect(instance).to_not have_received(:push_to_home) end @@ -24,7 +24,7 @@ describe FeedInsertWorker do allow(FeedManager).to receive(:instance).and_return(instance) result = subject.perform(status.id, nil) - expect(result).to eq true + expect(result).to be true expect(instance).to_not have_received(:push_to_home) end end diff --git a/spec/workers/regeneration_worker_spec.rb b/spec/workers/regeneration_worker_spec.rb index c6bdfa0e5e..147a76be50 100644 --- a/spec/workers/regeneration_worker_spec.rb +++ b/spec/workers/regeneration_worker_spec.rb @@ -20,7 +20,7 @@ describe RegenerationWorker do it 'fails when account does not exist' do result = subject.perform('aaa') - expect(result).to eq(true) + expect(result).to be(true) end end end From d2dcb6c45a9db5439772f0553046e2c03a739a16 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 00:51:43 -0500 Subject: [PATCH 0505/1220] Autofix Rubocop Style/UnpackFirst (#23741) --- .rubocop_todo.yml | 7 ------- app/models/concerns/account_interactions.rb | 4 ++-- lib/paperclip/gif_transcoder.rb | 4 ++-- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 86a48a1709..0f98d25d6c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2617,10 +2617,3 @@ Style/SymbolArray: Style/SymbolProc: Exclude: - 'spec/lib/request_spec.rb' - -# Offense count: 4 -# This cop supports safe autocorrection (--autocorrect). -Style/UnpackFirst: - Exclude: - - 'app/models/concerns/account_interactions.rb' - - 'lib/paperclip/gif_transcoder.rb' diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index 325619774a..1898516b00 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -278,7 +278,7 @@ module AccountInteractions followers.where(Account.arel_table[:uri].matches("#{Account.sanitize_sql_like(url_prefix)}/%", false, true)).or(followers.where(uri: url_prefix)).pluck_each(:uri) do |uri| Xorcist.xor!(digest, Digest::SHA256.digest(uri)) end - digest.unpack('H*')[0] + digest.unpack1('H*') end end @@ -288,7 +288,7 @@ module AccountInteractions followers.where(domain: nil).pluck_each(:username) do |username| Xorcist.xor!(digest, Digest::SHA256.digest(ActivityPub::TagManager.instance.uri_for_username(username))) end - digest.unpack('H*')[0] + digest.unpack1('H*') end end diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb index d14465c018..f385b00a32 100644 --- a/lib/paperclip/gif_transcoder.rb +++ b/lib/paperclip/gif_transcoder.rb @@ -57,7 +57,7 @@ class GifReader end # Skip lzw min code size - raise InvalidValue unless s.read(1).unpack('C')[0] >= 2 + raise InvalidValue unless s.read(1).unpack1('C') >= 2 # Skip image data sub-blocks skip_sub_blocks!(s) @@ -77,7 +77,7 @@ class GifReader private def skip_extension_block!(file) - if EXTENSION_LABELS.include?(file.read(1).unpack('C')[0]) + if EXTENSION_LABELS.include?(file.read(1).unpack1('C')) block_size, = file.read(1).unpack('C') file.seek(block_size, IO::SEEK_CUR) end From 717683d1c39d2fe85d1cc3f5223e1f4cf43f1900 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 00:58:28 -0500 Subject: [PATCH 0506/1220] Autofix Rubocop remaining Layout rules (#23679) --- .rubocop_todo.yml | 148 ------------------ Capfile | 1 + app/controllers/api/v1/tags_controller.rb | 1 + app/controllers/application_controller.rb | 1 + .../concerns/session_tracking_concern.rb | 1 + .../concerns/signature_verification.rb | 1 + app/helpers/application_helper.rb | 1 + app/helpers/languages_helper.rb | 1 + app/lib/activitypub/activity.rb | 1 + app/lib/activitypub/linked_data_signature.rb | 2 +- app/lib/activitypub/tag_manager.rb | 2 + app/lib/ostatus/tag_manager.rb | 32 ++-- app/lib/request.rb | 1 + app/lib/settings/scoped_settings.rb | 2 + app/lib/status_filter.rb | 1 + app/lib/tag_manager.rb | 1 + app/lib/webfinger.rb | 1 + app/models/account.rb | 2 + app/models/account/field.rb | 4 +- app/models/account_conversation.rb | 2 + app/models/account_domain_block.rb | 1 + app/models/account_moderation_note.rb | 1 + app/models/account_note.rb | 1 + app/models/account_pin.rb | 1 + app/models/account_stat.rb | 1 + app/models/account_summary.rb | 1 + app/models/account_warning.rb | 13 +- app/models/admin/import.rb | 1 + app/models/backup.rb | 1 + app/models/block.rb | 1 + app/models/bookmark.rb | 1 + app/models/canonical_email_block.rb | 1 + app/models/conversation.rb | 1 + app/models/conversation_mute.rb | 1 + app/models/custom_emoji.rb | 1 + app/models/custom_filter.rb | 3 + app/models/custom_filter_keyword.rb | 1 + app/models/custom_filter_status.rb | 1 + app/models/device.rb | 1 + app/models/domain_block.rb | 1 + app/models/email_domain_block.rb | 1 + app/models/encrypted_message.rb | 1 + app/models/favourite.rb | 2 + app/models/featured_tag.rb | 1 + app/models/follow.rb | 1 + app/models/follow_recommendation.rb | 1 + .../follow_recommendation_suppression.rb | 1 + app/models/follow_request.rb | 1 + app/models/form/admin_settings.rb | 1 + app/models/identity.rb | 1 + app/models/import.rb | 1 + app/models/instance.rb | 1 + app/models/invite.rb | 1 + app/models/ip_block.rb | 1 + app/models/list.rb | 1 + app/models/list_account.rb | 1 + app/models/login_activity.rb | 1 + app/models/media_attachment.rb | 3 +- app/models/mention.rb | 1 + app/models/mute.rb | 1 + app/models/notification.rb | 11 +- app/models/one_time_key.rb | 1 + app/models/poll.rb | 8 +- app/models/poll_vote.rb | 1 + app/models/preview_card.rb | 1 + app/models/preview_card_provider.rb | 1 + app/models/relay.rb | 1 + app/models/report.rb | 1 + app/models/report_note.rb | 1 + app/models/session_activation.rb | 2 + app/models/setting.rb | 4 + app/models/site_upload.rb | 1 + app/models/status.rb | 1 + app/models/status_edit.rb | 2 + app/models/status_pin.rb | 1 + app/models/status_stat.rb | 1 + app/models/tag.rb | 1 + app/models/unavailable_domain.rb | 1 + app/models/user.rb | 4 + app/models/user_ip.rb | 1 + app/models/user_role.rb | 2 + app/models/web/push_subscription.rb | 1 + app/models/web/setting.rb | 1 + app/models/webauthn_credential.rb | 1 + .../account_relationships_presenter.rb | 18 +-- .../activitypub/fetch_remote_actor_service.rb | 1 + .../fetch_remote_status_service.rb | 1 + .../activitypub/fetch_replies_service.rb | 1 + .../activitypub/process_account_service.rb | 2 + app/services/favourite_service.rb | 1 + app/services/keys/claim_service.rb | 6 +- app/services/keys/query_service.rb | 6 +- app/services/notify_service.rb | 1 + app/services/post_status_service.rb | 3 + app/services/vote_service.rb | 2 + app/validators/follow_limit_validator.rb | 1 + .../unreserved_username_validator.rb | 2 + .../accounts_statuses_cleanup_scheduler.rb | 2 + app/workers/web/push_notification_worker.rb | 12 +- config.ru | 1 + ...1829_migrate_open_registrations_setting.rb | 2 + ..._preserve_old_layout_for_existing_users.rb | 1 + ...dd_case_insensitive_btree_index_to_tags.rb | 1 + ...0613110834_add_action_to_custom_filters.rb | 1 + ...200917193528_migrate_notifications_type.rb | 10 +- ...2_remove_whole_word_from_custom_filters.rb | 1 + ...remove_irreversible_from_custom_filters.rb | 1 + ...221101190723_backfill_admin_action_logs.rb | 13 ++ ...114142_backfill_admin_action_logs_again.rb | 13 ++ lib/mastodon/domains_cli.rb | 2 + lib/sanitize_ext/sanitize_config.rb | 12 +- lib/tasks/auto_annotate_models.rake | 70 ++++----- lib/tasks/mastodon.rake | 16 +- .../v1/accounts/statuses_controller_spec.rb | 1 + spec/models/admin/account_action_spec.rb | 4 +- .../concerns/account_interactions_spec.rb | 4 +- spec/models/tag_spec.rb | 1 + 117 files changed, 265 insertions(+), 261 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0f98d25d6c..e667a77869 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -14,154 +14,6 @@ Bundler/OrderedGems: Exclude: - 'Gemfile' -# Offense count: 81 -# This cop supports safe autocorrection (--autocorrect). -Layout/EmptyLineAfterGuardClause: - Exclude: - - 'app/controllers/api/v1/tags_controller.rb' - - 'app/controllers/application_controller.rb' - - 'app/controllers/concerns/session_tracking_concern.rb' - - 'app/controllers/concerns/signature_verification.rb' - - 'app/helpers/application_helper.rb' - - 'app/lib/activitypub/activity.rb' - - 'app/lib/activitypub/tag_manager.rb' - - 'app/lib/request.rb' - - 'app/lib/settings/scoped_settings.rb' - - 'app/lib/status_filter.rb' - - 'app/lib/tag_manager.rb' - - 'app/lib/webfinger.rb' - - 'app/models/account.rb' - - 'app/models/account_conversation.rb' - - 'app/models/admin/import.rb' - - 'app/models/custom_filter.rb' - - 'app/models/favourite.rb' - - 'app/models/form/admin_settings.rb' - - 'app/models/poll.rb' - - 'app/models/session_activation.rb' - - 'app/models/setting.rb' - - 'app/models/status_edit.rb' - - 'app/models/user.rb' - - 'app/models/user_role.rb' - - 'app/services/activitypub/fetch_remote_actor_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/activitypub/fetch_replies_service.rb' - - 'app/services/activitypub/process_account_service.rb' - - 'app/services/favourite_service.rb' - - 'app/services/notify_service.rb' - - 'app/services/post_status_service.rb' - - 'app/services/vote_service.rb' - - 'app/validators/follow_limit_validator.rb' - - 'app/validators/unreserved_username_validator.rb' - - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' - - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb' - - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' - - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' - - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' - - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - - 'lib/mastodon/domains_cli.rb' - -# Offense count: 71 -# This cop supports safe autocorrection (--autocorrect). -Layout/EmptyLineAfterMagicComment: - Exclude: - - 'Capfile' - - 'app/helpers/languages_helper.rb' - - 'app/models/account.rb' - - 'app/models/account_conversation.rb' - - 'app/models/account_domain_block.rb' - - 'app/models/account_moderation_note.rb' - - 'app/models/account_note.rb' - - 'app/models/account_pin.rb' - - 'app/models/account_stat.rb' - - 'app/models/account_summary.rb' - - 'app/models/account_warning.rb' - - 'app/models/backup.rb' - - 'app/models/block.rb' - - 'app/models/bookmark.rb' - - 'app/models/canonical_email_block.rb' - - 'app/models/conversation.rb' - - 'app/models/conversation_mute.rb' - - 'app/models/custom_emoji.rb' - - 'app/models/custom_filter.rb' - - 'app/models/custom_filter_keyword.rb' - - 'app/models/custom_filter_status.rb' - - 'app/models/device.rb' - - 'app/models/domain_block.rb' - - 'app/models/email_domain_block.rb' - - 'app/models/encrypted_message.rb' - - 'app/models/favourite.rb' - - 'app/models/featured_tag.rb' - - 'app/models/follow.rb' - - 'app/models/follow_recommendation.rb' - - 'app/models/follow_recommendation_suppression.rb' - - 'app/models/follow_request.rb' - - 'app/models/identity.rb' - - 'app/models/import.rb' - - 'app/models/instance.rb' - - 'app/models/invite.rb' - - 'app/models/ip_block.rb' - - 'app/models/list.rb' - - 'app/models/list_account.rb' - - 'app/models/login_activity.rb' - - 'app/models/media_attachment.rb' - - 'app/models/mention.rb' - - 'app/models/mute.rb' - - 'app/models/notification.rb' - - 'app/models/one_time_key.rb' - - 'app/models/poll.rb' - - 'app/models/poll_vote.rb' - - 'app/models/preview_card.rb' - - 'app/models/preview_card_provider.rb' - - 'app/models/relay.rb' - - 'app/models/report.rb' - - 'app/models/report_note.rb' - - 'app/models/session_activation.rb' - - 'app/models/setting.rb' - - 'app/models/site_upload.rb' - - 'app/models/status.rb' - - 'app/models/status_edit.rb' - - 'app/models/status_pin.rb' - - 'app/models/status_stat.rb' - - 'app/models/tag.rb' - - 'app/models/unavailable_domain.rb' - - 'app/models/user.rb' - - 'app/models/user_ip.rb' - - 'app/models/web/push_subscription.rb' - - 'app/models/web/setting.rb' - - 'app/models/webauthn_credential.rb' - - 'config.ru' - - 'db/migrate/20220613110834_add_action_to_custom_filters.rb' - - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb' - - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb' - - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb' - - 'spec/models/tag_spec.rb' - -# Offense count: 113 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle. -# SupportedHashRocketStyles: key, separator, table -# SupportedColonStyles: key, separator, table -# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit -Layout/HashAlignment: - Exclude: - - 'app/lib/activitypub/linked_data_signature.rb' - - 'app/lib/ostatus/tag_manager.rb' - - 'app/models/account/field.rb' - - 'app/models/account_warning.rb' - - 'app/models/media_attachment.rb' - - 'app/models/notification.rb' - - 'app/models/poll.rb' - - 'app/presenters/account_relationships_presenter.rb' - - 'app/services/keys/claim_service.rb' - - 'app/services/keys/query_service.rb' - - 'app/workers/web/push_notification_worker.rb' - - 'db/post_migrate/20200917193528_migrate_notifications_type.rb' - - 'lib/sanitize_ext/sanitize_config.rb' - - 'lib/tasks/auto_annotate_models.rake' - - 'lib/tasks/mastodon.rake' - - 'spec/models/admin/account_action_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - # Offense count: 581 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. diff --git a/Capfile b/Capfile index bf3ae7e249..86efa5bacf 100644 --- a/Capfile +++ b/Capfile @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'capistrano/setup' require 'capistrano/deploy' require 'capistrano/scm/git' diff --git a/app/controllers/api/v1/tags_controller.rb b/app/controllers/api/v1/tags_controller.rb index 272362c314..a08fd21877 100644 --- a/app/controllers/api/v1/tags_controller.rb +++ b/app/controllers/api/v1/tags_controller.rb @@ -25,6 +25,7 @@ class Api::V1::TagsController < Api::BaseController def set_or_create_tag return not_found unless Tag::HASHTAG_NAME_RE.match?(params[:id]) + @tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id]) end end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 615536b963..ad70e28ab5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -128,6 +128,7 @@ class ApplicationController < ActionController::Base def current_theme return Setting.theme unless Themes.instance.names.include? current_user&.setting_theme + current_user.setting_theme end diff --git a/app/controllers/concerns/session_tracking_concern.rb b/app/controllers/concerns/session_tracking_concern.rb index eaaa4ac597..3f56c0d026 100644 --- a/app/controllers/concerns/session_tracking_concern.rb +++ b/app/controllers/concerns/session_tracking_concern.rb @@ -13,6 +13,7 @@ module SessionTrackingConcern def set_session_activity return unless session_needs_update? + current_session.touch end diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 9c04ab4ca6..b0a087d536 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -165,6 +165,7 @@ module SignatureVerification end raise SignatureVerificationError, "Invalid Digest value. The provided Digest value is not a SHA-256 digest. Given digest: #{sha256[1]}" if digest_size != 32 + raise SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{sha256[1]}" end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1f93b33f5b..08020a65a2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -105,6 +105,7 @@ module ApplicationHelper def can?(action, record) return false if record.nil? + policy(record).public_send("#{action}?") end diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index bb35ce08cd..5843947584 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # rubocop:disable Metrics/ModuleLength, Style/WordArray module LanguagesHelper diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 900428e920..5d95962548 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -153,6 +153,7 @@ class ActivityPub::Activity def fetch_remote_original_status if object_uri.start_with?('http') return if ActivityPub::TagManager.instance.local_uri?(object_uri) + ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id]) elsif @object['url'].present? ::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id]) diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb index 61759649ab..ea59879f3b 100644 --- a/app/lib/activitypub/linked_data_signature.rb +++ b/app/lib/activitypub/linked_data_signature.rb @@ -32,7 +32,7 @@ class ActivityPub::LinkedDataSignature def sign!(creator, sign_with: nil) options = { - 'type' => 'RsaSignature2017', + 'type' => 'RsaSignature2017', 'creator' => ActivityPub::TagManager.instance.key_uri_for(creator), 'created' => Time.now.utc.iso8601, } diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb index 3d6b28ef58..a65a9565ab 100644 --- a/app/lib/activitypub/tag_manager.rb +++ b/app/lib/activitypub/tag_manager.rb @@ -26,6 +26,7 @@ class ActivityPub::TagManager target.instance_actor? ? about_more_url(instance_actor: true) : short_account_url(target) when :note, :comment, :activity return activity_account_status_url(target.account, target) if target.reblog? + short_account_status_url(target.account, target) end end @@ -38,6 +39,7 @@ class ActivityPub::TagManager target.instance_actor? ? instance_actor_url : account_url(target) when :note, :comment, :activity return activity_account_status_url(target.account, target) if target.reblog? + account_status_url(target.account, target) when :emoji emoji_url(target) diff --git a/app/lib/ostatus/tag_manager.rb b/app/lib/ostatus/tag_manager.rb index 4f45013126..7d81316227 100644 --- a/app/lib/ostatus/tag_manager.rb +++ b/app/lib/ostatus/tag_manager.rb @@ -5,27 +5,27 @@ class OStatus::TagManager include RoutingHelper VERBS = { - post: 'http://activitystrea.ms/schema/1.0/post', - share: 'http://activitystrea.ms/schema/1.0/share', - favorite: 'http://activitystrea.ms/schema/1.0/favorite', - unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite', - delete: 'http://activitystrea.ms/schema/1.0/delete', - follow: 'http://activitystrea.ms/schema/1.0/follow', + post: 'http://activitystrea.ms/schema/1.0/post', + share: 'http://activitystrea.ms/schema/1.0/share', + favorite: 'http://activitystrea.ms/schema/1.0/favorite', + unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite', + delete: 'http://activitystrea.ms/schema/1.0/delete', + follow: 'http://activitystrea.ms/schema/1.0/follow', request_friend: 'http://activitystrea.ms/schema/1.0/request-friend', - authorize: 'http://activitystrea.ms/schema/1.0/authorize', - reject: 'http://activitystrea.ms/schema/1.0/reject', - unfollow: 'http://ostatus.org/schema/1.0/unfollow', - block: 'http://mastodon.social/schema/1.0/block', - unblock: 'http://mastodon.social/schema/1.0/unblock', + authorize: 'http://activitystrea.ms/schema/1.0/authorize', + reject: 'http://activitystrea.ms/schema/1.0/reject', + unfollow: 'http://ostatus.org/schema/1.0/unfollow', + block: 'http://mastodon.social/schema/1.0/block', + unblock: 'http://mastodon.social/schema/1.0/unblock', }.freeze TYPES = { - activity: 'http://activitystrea.ms/schema/1.0/activity', - note: 'http://activitystrea.ms/schema/1.0/note', - comment: 'http://activitystrea.ms/schema/1.0/comment', - person: 'http://activitystrea.ms/schema/1.0/person', + activity: 'http://activitystrea.ms/schema/1.0/activity', + note: 'http://activitystrea.ms/schema/1.0/note', + comment: 'http://activitystrea.ms/schema/1.0/comment', + person: 'http://activitystrea.ms/schema/1.0/person', collection: 'http://activitystrea.ms/schema/1.0/collection', - group: 'http://activitystrea.ms/schema/1.0/group', + group: 'http://activitystrea.ms/schema/1.0/group', }.freeze COLLECTIONS = { diff --git a/app/lib/request.rb b/app/lib/request.rb index be6a69b3ff..85716f9990 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -182,6 +182,7 @@ class Request contents = truncated_body(limit) raise Mastodon::LengthValidationError if contents.bytesize > limit + contents end end diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb index 1e18d6d463..3ad57cc1ea 100644 --- a/app/lib/settings/scoped_settings.rb +++ b/app/lib/settings/scoped_settings.rb @@ -34,6 +34,7 @@ module Settings Setting.default_settings.each do |key, default_value| next if records.key?(key) || default_value.is_a?(Hash) + records[key] = Setting.new(var: key, value: default_value) end @@ -54,6 +55,7 @@ module Settings if db_val default_value = ScopedSettings.default_settings[key] return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash) + db_val.value else ScopedSettings.default_settings[key] diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb index b6c80b801c..c0e6f33313 100644 --- a/app/lib/status_filter.rb +++ b/app/lib/status_filter.rb @@ -11,6 +11,7 @@ class StatusFilter def filtered? return false if !account.nil? && account.id == status.account_id + blocked_by_policy? || (account_present? && filtered_status?) || silenced_account? end diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb index a1d12a654e..7fbf4437da 100644 --- a/app/lib/tag_manager.rb +++ b/app/lib/tag_manager.rb @@ -25,6 +25,7 @@ class TagManager def local_url?(url) uri = Addressable::URI.parse(url).normalize return false unless uri.host + domain = uri.host + (uri.port ? ":#{uri.port}" : '') TagManager.instance.web_domain?(domain) diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb index 42ddef47b4..ae8a3b1eae 100644 --- a/app/lib/webfinger.rb +++ b/app/lib/webfinger.rb @@ -57,6 +57,7 @@ class Webfinger if res.code == 200 body = res.body_with_limit raise Webfinger::Error, "Request for #{@uri} returned empty response" if body.empty? + body elsif res.code == 404 && use_fallback body_from_host_meta diff --git a/app/models/account.rb b/app/models/account.rb index d33110d55e..09c450f2ab 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: accounts @@ -539,6 +540,7 @@ class Account < ApplicationRecord def ensure_keys! return unless local? && private_key.blank? && public_key.blank? + generate_keys save! end diff --git a/app/models/account/field.rb b/app/models/account/field.rb index 98c29726df..2bada6954b 100644 --- a/app/models/account/field.rb +++ b/app/models/account/field.rb @@ -14,8 +14,8 @@ class Account::Field < ActiveModelSerializers::Model @account = account super( - name: sanitize(attributes['name']), - value: sanitize(attributes['value']), + name: sanitize(attributes['name']), + value: sanitize(attributes['value']), verified_at: attributes['verified_at']&.to_datetime, ) end diff --git a/app/models/account_conversation.rb b/app/models/account_conversation.rb index 45e74bbeb3..b3ddc04c10 100644 --- a/app/models/account_conversation.rb +++ b/app/models/account_conversation.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_conversations @@ -107,6 +108,7 @@ class AccountConversation < ApplicationRecord def push_to_streaming_api return if destroyed? || !subscribed_to_timeline? + PushConversationWorker.perform_async(id) end diff --git a/app/models/account_domain_block.rb b/app/models/account_domain_block.rb index 3aaffde9a9..af1e6a68dc 100644 --- a/app/models/account_domain_block.rb +++ b/app/models/account_domain_block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_domain_blocks diff --git a/app/models/account_moderation_note.rb b/app/models/account_moderation_note.rb index 22e312bb22..ff399bab0c 100644 --- a/app/models/account_moderation_note.rb +++ b/app/models/account_moderation_note.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_moderation_notes diff --git a/app/models/account_note.rb b/app/models/account_note.rb index b338bc92f2..9bc704d988 100644 --- a/app/models/account_note.rb +++ b/app/models/account_note.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_notes diff --git a/app/models/account_pin.rb b/app/models/account_pin.rb index b51d3d4cd4..6c78e8c446 100644 --- a/app/models/account_pin.rb +++ b/app/models/account_pin.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_pins diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb index a5d71a5b8c..834f8ba4c2 100644 --- a/app/models/account_stat.rb +++ b/app/models/account_stat.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_stats diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb index 3a3cebc55c..0d8835b83c 100644 --- a/app/models/account_summary.rb +++ b/app/models/account_summary.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_summaries diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb index a181cd18d9..4f8cc53200 100644 --- a/app/models/account_warning.rb +++ b/app/models/account_warning.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: account_warnings @@ -17,13 +18,13 @@ class AccountWarning < ApplicationRecord enum action: { - none: 0, - disable: 1_000, + none: 0, + disable: 1_000, mark_statuses_as_sensitive: 1_250, - delete_statuses: 1_500, - sensitive: 2_000, - silence: 3_000, - suspend: 4_000, + delete_statuses: 1_500, + sensitive: 2_000, + silence: 3_000, + suspend: 4_000, }, _suffix: :action before_validation :before_validate diff --git a/app/models/admin/import.rb b/app/models/admin/import.rb index fecde4878b..0fd4bdb824 100644 --- a/app/models/admin/import.rb +++ b/app/models/admin/import.rb @@ -56,6 +56,7 @@ class Admin::Import def validate_data 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)) diff --git a/app/models/backup.rb b/app/models/backup.rb index 277b9395ba..bec3cbfe5e 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: backups diff --git a/app/models/block.rb b/app/models/block.rb index bf3e076003..b42c1569b9 100644 --- a/app/models/block.rb +++ b/app/models/block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: blocks diff --git a/app/models/bookmark.rb b/app/models/bookmark.rb index 6334ef0df7..04b660372e 100644 --- a/app/models/bookmark.rb +++ b/app/models/bookmark.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: bookmarks diff --git a/app/models/canonical_email_block.rb b/app/models/canonical_email_block.rb index 1eb69ac67a..d09df6f5e2 100644 --- a/app/models/canonical_email_block.rb +++ b/app/models/canonical_email_block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: canonical_email_blocks diff --git a/app/models/conversation.rb b/app/models/conversation.rb index 4dfaea889d..5de2599627 100644 --- a/app/models/conversation.rb +++ b/app/models/conversation.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: conversations diff --git a/app/models/conversation_mute.rb b/app/models/conversation_mute.rb index 52c1a33e07..31f8e19667 100644 --- a/app/models/conversation_mute.rb +++ b/app/models/conversation_mute.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: conversation_mutes diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb index 3048056591..3d7900226d 100644 --- a/app/models/custom_emoji.rb +++ b/app/models/custom_emoji.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: custom_emojis diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index 781bf4db88..d85e196e96 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: custom_filters @@ -101,6 +102,7 @@ class CustomFilter < ApplicationRecord status_matches = [status.id, status.reblog_of_id].compact & rules[:status_ids] if rules[:status_ids].present? next if keyword_matches.blank? && status_matches.blank? + FilterResultPresenter.new(filter: filter, keyword_matches: keyword_matches, status_matches: status_matches) end end @@ -111,6 +113,7 @@ class CustomFilter < ApplicationRecord def invalidate_cache! return unless @should_invalidate_cache + @should_invalidate_cache = false Rails.cache.delete("filters:v3:#{account_id}") diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb index e0d0289ae1..3158b3b79a 100644 --- a/app/models/custom_filter_keyword.rb +++ b/app/models/custom_filter_keyword.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: custom_filter_keywords diff --git a/app/models/custom_filter_status.rb b/app/models/custom_filter_status.rb index e748d69633..0a5650204a 100644 --- a/app/models/custom_filter_status.rb +++ b/app/models/custom_filter_status.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: custom_filter_statuses diff --git a/app/models/device.rb b/app/models/device.rb index 97d0d27746..5dc6cf1e66 100644 --- a/app/models/device.rb +++ b/app/models/device.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: devices diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index 190f5ba2e4..fbb045416c 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: domain_blocks diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb index 3a56e4f2aa..276e7d31a1 100644 --- a/app/models/email_domain_block.rb +++ b/app/models/email_domain_block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: email_domain_blocks diff --git a/app/models/encrypted_message.rb b/app/models/encrypted_message.rb index 7b4e32283f..3e7e95594c 100644 --- a/app/models/encrypted_message.rb +++ b/app/models/encrypted_message.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: encrypted_messages diff --git a/app/models/favourite.rb b/app/models/favourite.rb index 2f355739ab..042f72beae 100644 --- a/app/models/favourite.rb +++ b/app/models/favourite.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: favourites @@ -38,6 +39,7 @@ class Favourite < ApplicationRecord def decrement_cache_counters return if association(:status).loaded? && status.marked_for_destruction? + status&.decrement_count!(:favourites_count) end diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb index 70f949b6ac..587dcf9912 100644 --- a/app/models/featured_tag.rb +++ b/app/models/featured_tag.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: featured_tags diff --git a/app/models/follow.rb b/app/models/follow.rb index e5cecbbc1d..108f5c5d51 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: follows diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb index 501f8ecb6e..602d329858 100644 --- a/app/models/follow_recommendation.rb +++ b/app/models/follow_recommendation.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: follow_recommendations diff --git a/app/models/follow_recommendation_suppression.rb b/app/models/follow_recommendation_suppression.rb index 170506b853..a9dbbfc18f 100644 --- a/app/models/follow_recommendation_suppression.rb +++ b/app/models/follow_recommendation_suppression.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: follow_recommendation_suppressions diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb index 9034250c0d..78f79c18f0 100644 --- a/app/models/follow_request.rb +++ b/app/models/follow_request.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: follow_requests diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 95c53084a7..de965cb0ba 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -128,6 +128,7 @@ class Form::AdminSettings def validate_site_uploads UPLOAD_KEYS.each do |key| next unless instance_variable_defined?("@#{key}") + upload = instance_variable_get("@#{key}") next if upload.valid? diff --git a/app/models/identity.rb b/app/models/identity.rb index 8cc65aef41..6f10fed4d7 100644 --- a/app/models/identity.rb +++ b/app/models/identity.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: identities diff --git a/app/models/import.rb b/app/models/import.rb index cd33eb07b0..21634005ed 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: imports diff --git a/app/models/instance.rb b/app/models/instance.rb index edbf02a6d1..1f96d37286 100644 --- a/app/models/instance.rb +++ b/app/models/instance.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: instances diff --git a/app/models/invite.rb b/app/models/invite.rb index 7ea4e2f984..8e816cef06 100644 --- a/app/models/invite.rb +++ b/app/models/invite.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: invites diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb index 31343f0e11..99783050b8 100644 --- a/app/models/ip_block.rb +++ b/app/models/ip_block.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: ip_blocks diff --git a/app/models/list.rb b/app/models/list.rb index 7b8cf66362..bd1bdbd24d 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: lists diff --git a/app/models/list_account.rb b/app/models/list_account.rb index 785923c4cf..a5767d3d8b 100644 --- a/app/models/list_account.rb +++ b/app/models/list_account.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: list_accounts diff --git a/app/models/login_activity.rb b/app/models/login_activity.rb index 52a0fd01d0..2b7b37f8e4 100644 --- a/app/models/login_activity.rb +++ b/app/models/login_activity.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: login_activities diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index c6f2352e03..08abd4e43b 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: media_attachments @@ -372,7 +373,7 @@ class MediaAttachment < ApplicationRecord return {} if width.nil? { - width: width, + width: width, height: height, size: "#{width}x#{height}", aspect: width.to_f / height, diff --git a/app/models/mention.rb b/app/models/mention.rb index d01a88e32e..2348b2905c 100644 --- a/app/models/mention.rb +++ b/app/models/mention.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: mentions diff --git a/app/models/mute.rb b/app/models/mute.rb index 578345ef64..8fc5422624 100644 --- a/app/models/mute.rb +++ b/app/models/mute.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: mutes diff --git a/app/models/notification.rb b/app/models/notification.rb index 01155c363e..3eaf557b08 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: notifications @@ -19,12 +20,12 @@ class Notification < ApplicationRecord include Paginable LEGACY_TYPE_CLASS_MAP = { - 'Mention' => :mention, - 'Status' => :reblog, - 'Follow' => :follow, + 'Mention' => :mention, + 'Status' => :reblog, + 'Follow' => :follow, 'FollowRequest' => :follow_request, - 'Favourite' => :favourite, - 'Poll' => :poll, + 'Favourite' => :favourite, + 'Poll' => :poll, }.freeze TYPES = %i( diff --git a/app/models/one_time_key.rb b/app/models/one_time_key.rb index 8ada34824f..23604e2f7d 100644 --- a/app/models/one_time_key.rb +++ b/app/models/one_time_key.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: one_time_keys diff --git a/app/models/poll.rb b/app/models/poll.rb index af3b09315c..dd35e953b8 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: polls @@ -74,9 +75,9 @@ class Poll < ApplicationRecord def initialize(poll, id, title, votes_count) super( - poll: poll, - id: id, - title: title, + poll: poll, + id: id, + title: title, votes_count: votes_count, ) end @@ -105,6 +106,7 @@ class Poll < ApplicationRecord def reset_parent_cache return if status_id.nil? + Rails.cache.delete("statuses/#{status_id}") end diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb index ad24eb6914..00eaedd129 100644 --- a/app/models/poll_vote.rb +++ b/app/models/poll_vote.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: poll_votes diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index d25fe6dad1..6bce165629 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: preview_cards diff --git a/app/models/preview_card_provider.rb b/app/models/preview_card_provider.rb index d61fe60208..1dd95fc91c 100644 --- a/app/models/preview_card_provider.rb +++ b/app/models/preview_card_provider.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: preview_card_providers diff --git a/app/models/relay.rb b/app/models/relay.rb index e9c425743f..a5fa03a99c 100644 --- a/app/models/relay.rb +++ b/app/models/relay.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: relays diff --git a/app/models/report.rb b/app/models/report.rb index fe6c292c5b..a9940459de 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: reports diff --git a/app/models/report_note.rb b/app/models/report_note.rb index 6d7167e0ed..74b46027e8 100644 --- a/app/models/report_note.rb +++ b/app/models/report_note.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: report_notes diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb index 0b7fa6fe49..10c3a6c250 100644 --- a/app/models/session_activation.rb +++ b/app/models/session_activation.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: session_activations @@ -51,6 +52,7 @@ class SessionActivation < ApplicationRecord def deactivate(id) return unless id + where(session_id: id).destroy_all end diff --git a/app/models/setting.rb b/app/models/setting.rb index c6558d6924..3bdc6ffb40 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: settings @@ -30,6 +31,7 @@ class Setting < RailsSettings::Base default_value = default_settings[key] return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash) + db_val.value else default_settings[key] @@ -43,6 +45,7 @@ class Setting < RailsSettings::Base default_settings.each do |key, default_value| next if records.key?(key) || default_value.is_a?(Hash) + records[key] = Setting.new(var: key, value: default_value) end @@ -51,6 +54,7 @@ class Setting < RailsSettings::Base def default_settings return {} unless RailsSettings::Default.enabled? + RailsSettings::Default.instance end end diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb index 167131fdd9..e17668110c 100644 --- a/app/models/site_upload.rb +++ b/app/models/site_upload.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: site_uploads diff --git a/app/models/status.rb b/app/models/status.rb index 44a297a088..2eb47d72c2 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: statuses diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb index dd2d5fc1ec..683441bb56 100644 --- a/app/models/status_edit.rb +++ b/app/models/status_edit.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: status_edits @@ -45,6 +46,7 @@ class StatusEdit < ApplicationRecord def emojis return @emojis if defined?(@emojis) + @emojis = CustomEmoji.from_text([spoiler_text, text].join(' '), status.account.domain) end diff --git a/app/models/status_pin.rb b/app/models/status_pin.rb index 93a0ea1c03..dae4a5b4e6 100644 --- a/app/models/status_pin.rb +++ b/app/models/status_pin.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: status_pins diff --git a/app/models/status_stat.rb b/app/models/status_stat.rb index 437861d1c4..d101cc1789 100644 --- a/app/models/status_stat.rb +++ b/app/models/status_stat.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: status_stats diff --git a/app/models/tag.rb b/app/models/tag.rb index 98001d60a5..554a92d901 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: tags diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb index dfc0ef14ef..c3f2f20e9e 100644 --- a/app/models/unavailable_domain.rb +++ b/app/models/unavailable_domain.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: unavailable_domains diff --git a/app/models/user.rb b/app/models/user.rb index c767f89842..5e106dee57 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: users @@ -492,12 +493,14 @@ class User < ApplicationRecord def sanitize_languages return if chosen_languages.nil? + chosen_languages.reject!(&:blank?) self.chosen_languages = nil if chosen_languages.empty? end def sanitize_role return if role.nil? + self.role = nil if role.everyone? end @@ -516,6 +519,7 @@ class User < ApplicationRecord def notify_staff_about_pending_account! User.those_who_can(:manage_users).includes(:account).find_each do |u| next unless u.allows_pending_account_emails? + AdminMailer.new_pending_account(u.account, self).deliver_later end end diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb index 1da6157629..38287c2a60 100644 --- a/app/models/user_ip.rb +++ b/app/models/user_ip.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: user_ips diff --git a/app/models/user_role.rb b/app/models/user_role.rb index 74dfdc2205..a1b91dc0f5 100644 --- a/app/models/user_role.rb +++ b/app/models/user_role.rb @@ -163,6 +163,7 @@ class UserRole < ApplicationRecord def in_permissions?(privilege) raise ArgumentError, "Unknown privilege: #{privilege}" unless FLAGS.key?(privilege) + computed_permissions & FLAGS[privilege] == FLAGS[privilege] end @@ -172,6 +173,7 @@ class UserRole < ApplicationRecord def validate_own_role_edition return unless defined?(@current_account) && @current_account.user_role.id == id + errors.add(:permissions_as_keys, :own_role) if permissions_changed? errors.add(:position, :own_role) if position_changed? end diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb index dfaadf5cca..0ffbe068eb 100644 --- a/app/models/web/push_subscription.rb +++ b/app/models/web/push_subscription.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: web_push_subscriptions diff --git a/app/models/web/setting.rb b/app/models/web/setting.rb index 99588d26c5..3d5efe664a 100644 --- a/app/models/web/setting.rb +++ b/app/models/web/setting.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: web_settings diff --git a/app/models/webauthn_credential.rb b/app/models/webauthn_credential.rb index 48abfc1d45..4fa31ece52 100644 --- a/app/models/webauthn_credential.rb +++ b/app/models/webauthn_credential.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + # == Schema Information # # Table name: webauthn_credentials diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb index ab8bac4129..5d2b5435dd 100644 --- a/app/presenters/account_relationships_presenter.rb +++ b/app/presenters/account_relationships_presenter.rb @@ -70,16 +70,16 @@ class AccountRelationshipsPresenter def cache_uncached! @uncached_account_ids.each do |account_id| maps_for_account = { - following: { account_id => following[account_id] }, - followed_by: { account_id => followed_by[account_id] }, - blocking: { account_id => blocking[account_id] }, - blocked_by: { account_id => blocked_by[account_id] }, - muting: { account_id => muting[account_id] }, - requested: { account_id => requested[account_id] }, - requested_by: { account_id => requested_by[account_id] }, + following: { account_id => following[account_id] }, + followed_by: { account_id => followed_by[account_id] }, + blocking: { account_id => blocking[account_id] }, + blocked_by: { account_id => blocked_by[account_id] }, + muting: { account_id => muting[account_id] }, + requested: { account_id => requested[account_id] }, + requested_by: { account_id => requested_by[account_id] }, domain_blocking: { account_id => domain_blocking[account_id] }, - endorsed: { account_id => endorsed[account_id] }, - account_note: { account_id => account_note[account_id] }, + endorsed: { account_id => endorsed[account_id] }, + account_note: { account_id => account_note[account_id] }, } Rails.cache.write("relationship:#{@current_account_id}:#{account_id}", maps_for_account, expires_in: 1.day) diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index e8992b845d..ee0eaff08b 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -50,6 +50,7 @@ class ActivityPub::FetchRemoteActorService < BaseService if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero? raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri + return end diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index aea80f078a..ab0acf7f0f 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -56,6 +56,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService def trustworthy_attribution?(uri, attributed_to) return false if uri.nil? || attributed_to.nil? + Addressable::URI.parse(uri).normalized_host.casecmp(Addressable::URI.parse(attributed_to).normalized_host).zero? end diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb index 4128df9ca7..3fe150ba21 100644 --- a/app/services/activitypub/fetch_replies_service.rb +++ b/app/services/activitypub/fetch_replies_service.rb @@ -36,6 +36,7 @@ class ActivityPub::FetchRepliesService < BaseService return collection_or_uri if collection_or_uri.is_a?(Hash) return unless @allow_synchronous_requests return if invalid_origin?(collection_or_uri) + fetch_resource_without_id_validation(collection_or_uri, nil, true) end diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 2da9096c73..603e4cf48b 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -226,6 +226,7 @@ class ActivityPub::ProcessAccountService < BaseService def property_values return unless @json['attachment'].is_a?(Array) + as_array(@json['attachment']).select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') } end @@ -289,6 +290,7 @@ class ActivityPub::ProcessAccountService < BaseService def domain_block return @domain_block if defined?(@domain_block) + @domain_block = DomainBlock.rule_for(@domain) end diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb index dc7fe88552..6fdc92a173 100644 --- a/app/services/favourite_service.rb +++ b/app/services/favourite_service.rb @@ -40,6 +40,7 @@ class FavouriteService < BaseService def bump_potential_friendship(account, status) ActivityTracker.increment('activity:interactions') return if account.following?(status.account_id) + PotentialFriendshipTracker.record(account.id, status.account_id, :favourite) end diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb index 0451c3cb1d..ebce9cce7d 100644 --- a/app/services/keys/claim_service.rb +++ b/app/services/keys/claim_service.rb @@ -9,10 +9,10 @@ class Keys::ClaimService < BaseService def initialize(account, device_id, key_attributes = {}) super( - account: account, + account: account, device_id: device_id, - key_id: key_attributes[:key_id], - key: key_attributes[:key], + key_id: key_attributes[:key_id], + key: key_attributes[:key], signature: key_attributes[:signature], ) end diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb index 404854c9fc..14c9d9205b 100644 --- a/app/services/keys/query_service.rb +++ b/app/services/keys/query_service.rb @@ -23,9 +23,9 @@ class Keys::QueryService < BaseService def initialize(attributes = {}) super( - device_id: attributes[:device_id], - name: attributes[:name], - identity_key: attributes[:identity_key], + device_id: attributes[:device_id], + name: attributes[:name], + identity_key: attributes[:identity_key], fingerprint_key: attributes[:fingerprint_key], ) @claim_url = attributes[:claim_url] diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index c7454fc609..4c7acbcac1 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -31,6 +31,7 @@ class NotifyService < BaseService def following_sender? return @following_sender if defined?(@following_sender) + @following_sender = @recipient.following?(@notification.from_account) || @recipient.requested?(@notification.from_account) end diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 258af8827e..ea27f374e7 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -86,6 +86,7 @@ class PostStatusService < BaseService def safeguard_mentions!(status) return if @options[:allowed_mentions].nil? + expected_account_ids = @options[:allowed_mentions].map(&:to_i) unexpected_accounts = status.mentions.map(&:account).to_a.reject { |mentioned_account| expected_account_ids.include?(mentioned_account.id) } @@ -175,8 +176,10 @@ class PostStatusService < BaseService def bump_potential_friendship! return if !@status.reply? || @account.id == @status.in_reply_to_account_id + ActivityTracker.increment('activity:interactions') return if @account.following?(@status.in_reply_to_account_id) + PotentialFriendshipTracker.record(@account.id, @status.in_reply_to_account_id, :reply) end diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb index 114ec285c8..9ebf5a98d9 100644 --- a/app/services/vote_service.rb +++ b/app/services/vote_service.rb @@ -44,11 +44,13 @@ class VoteService < BaseService def distribute_poll! return if @poll.hide_totals? + ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, @poll.status.id) end def queue_final_poll_check! return unless @poll.expires? + PollExpirationNotifyWorker.perform_at(@poll.expires_at + 5.minutes, @poll.id) end diff --git a/app/validators/follow_limit_validator.rb b/app/validators/follow_limit_validator.rb index 409bf01763..c619cb9a33 100644 --- a/app/validators/follow_limit_validator.rb +++ b/app/validators/follow_limit_validator.rb @@ -6,6 +6,7 @@ class FollowLimitValidator < ActiveModel::Validator def validate(follow) return if follow.account.nil? || !follow.account.local? + follow.errors.add(:base, I18n.t('users.follow_limit_reached', limit: self.class.limit_for_account(follow.account))) if limit_reached?(follow.account) end diff --git a/app/validators/unreserved_username_validator.rb b/app/validators/unreserved_username_validator.rb index 974f3ba627..f82f4b91d0 100644 --- a/app/validators/unreserved_username_validator.rb +++ b/app/validators/unreserved_username_validator.rb @@ -13,12 +13,14 @@ class UnreservedUsernameValidator < ActiveModel::Validator def pam_controlled? return false unless Devise.pam_authentication && Devise.pam_controlled_service + Rpam2.account(Devise.pam_controlled_service, @username).present? end def reserved_username? return true if pam_controlled? return false unless Setting.reserved_usernames + Setting.reserved_usernames.include?(@username.downcase) end end diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb index cc5b6e137a..09e0b37f06 100644 --- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb +++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb @@ -62,6 +62,7 @@ class Scheduler::AccountsStatusesCleanupScheduler # The idea here is to loop through all policies at least once until the budget is exhausted # and start back after the last processed account otherwise break if budget.zero? || (num_processed_accounts.zero? && first_policy_id.nil?) + first_policy_id = nil end end @@ -73,6 +74,7 @@ class Scheduler::AccountsStatusesCleanupScheduler def under_load? return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE + queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY) end diff --git a/app/workers/web/push_notification_worker.rb b/app/workers/web/push_notification_worker.rb index 1ed5bb9e00..7e9691aaba 100644 --- a/app/workers/web/push_notification_worker.rb +++ b/app/workers/web/push_notification_worker.rb @@ -22,13 +22,13 @@ class Web::PushNotificationWorker request = Request.new(:post, @subscription.endpoint, body: payload.fetch(:ciphertext), http_client: http_client) request.add_headers( - 'Content-Type' => 'application/octet-stream', - 'Ttl' => TTL, - 'Urgency' => URGENCY, + 'Content-Type' => 'application/octet-stream', + 'Ttl' => TTL, + 'Urgency' => URGENCY, 'Content-Encoding' => 'aesgcm', - 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}", - 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}", - 'Authorization' => @subscription.authorization_header + 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}", + 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}", + 'Authorization' => @subscription.authorization_header ) request.perform do |response| diff --git a/config.ru b/config.ru index 5e071f530f..afd13e2112 100644 --- a/config.ru +++ b/config.ru @@ -1,4 +1,5 @@ # frozen_string_literal: true + # This file is used by Rack-based servers to start the application. require File.expand_path('config/environment', __dir__) diff --git a/db/migrate/20190314181829_migrate_open_registrations_setting.rb b/db/migrate/20190314181829_migrate_open_registrations_setting.rb index e5fe95009e..d2f6bf2c1c 100644 --- a/db/migrate/20190314181829_migrate_open_registrations_setting.rb +++ b/db/migrate/20190314181829_migrate_open_registrations_setting.rb @@ -2,6 +2,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2] def up open_registrations = Setting.find_by(var: 'open_registrations') return if open_registrations.nil? || open_registrations.value + setting = Setting.where(var: 'registrations_mode').first_or_initialize(var: 'registrations_mode') setting.update(value: 'none') end @@ -9,6 +10,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2] def down registrations_mode = Setting.find_by(var: 'registrations_mode') return if registrations_mode.nil? + setting = Setting.where(var: 'open_registrations').first_or_initialize(var: 'open_registrations') setting.update(value: registrations_mode.value == 'open') end diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb index 19e86fbfe1..1c18b85cbc 100644 --- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb +++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb @@ -8,6 +8,7 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2] User.where(User.arel_table[:current_sign_in_at].gteq(1.month.ago)).find_each do |user| next if Setting.unscoped.where(thing_type: 'User', thing_id: user.id, var: 'advanced_layout').exists? + user.settings.advanced_layout = true end end diff --git a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb index 7f6a2c6dd4..a3cc854d7c 100644 --- a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb +++ b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb @@ -11,6 +11,7 @@ class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2] rescue ActiveRecord::StatementInvalid => e remove_index :tags, name: 'index_tags_on_name_lower_btree' raise CorruptionError, 'index_tags_on_name_lower_btree' if e.is_a?(ActiveRecord::RecordNotUnique) + raise e end diff --git a/db/migrate/20220613110834_add_action_to_custom_filters.rb b/db/migrate/20220613110834_add_action_to_custom_filters.rb index 9427a66fc4..c1daf3c948 100644 --- a/db/migrate/20220613110834_add_action_to_custom_filters.rb +++ b/db/migrate/20220613110834_add_action_to_custom_filters.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require Rails.root.join('lib', 'mastodon', 'migration_helpers') class AddActionToCustomFilters < ActiveRecord::Migration[6.1] diff --git a/db/post_migrate/20200917193528_migrate_notifications_type.rb b/db/post_migrate/20200917193528_migrate_notifications_type.rb index 88e4230842..9dc9ecd48e 100644 --- a/db/post_migrate/20200917193528_migrate_notifications_type.rb +++ b/db/post_migrate/20200917193528_migrate_notifications_type.rb @@ -4,12 +4,12 @@ class MigrateNotificationsType < ActiveRecord::Migration[5.2] disable_ddl_transaction! TYPES_TO_MIGRATE = { - 'Mention' => :mention, - 'Status' => :reblog, - 'Follow' => :follow, + 'Mention' => :mention, + 'Status' => :reblog, + 'Follow' => :follow, 'FollowRequest' => :follow_request, - 'Favourite' => :favourite, - 'Poll' => :poll, + 'Favourite' => :favourite, + 'Poll' => :poll, }.freeze def up diff --git a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb index 7ef0749e54..99c3366a20 100644 --- a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb +++ b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require Rails.root.join('lib', 'mastodon', 'migration_helpers') class RemoveWholeWordFromCustomFilters < ActiveRecord::Migration[6.1] diff --git a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb index 6ed8bcfeee..1c366ee53c 100644 --- a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb +++ b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require Rails.root.join('lib', 'mastodon', 'migration_helpers') class RemoveIrreversibleFromCustomFilters < ActiveRecord::Migration[6.1] diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb index 6ab76a8f75..fa2ddbbca5 100644 --- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb +++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb @@ -79,11 +79,13 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1] safety_assured do AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log| next if log.account.nil? + log.update_attribute('human_identifier', log.account.acct) end AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log| next if log.user.nil? + log.update_attribute('human_identifier', log.user.account.acct) log.update_attribute('route_param', log.user.account_id) end @@ -92,57 +94,68 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1] AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log| next if log.domain_block.nil? + log.update_attribute('human_identifier', log.domain_block.domain) end AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log| next if log.domain_allow.nil? + log.update_attribute('human_identifier', log.domain_allow.domain) end AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log| next if log.email_domain_block.nil? + log.update_attribute('human_identifier', log.email_domain_block.domain) end AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log| next if log.unavailable_domain.nil? + log.update_attribute('human_identifier', log.unavailable_domain.domain) end AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log| next if log.status.nil? + log.update_attribute('human_identifier', log.status.account.acct) log.update_attribute('permalink', log.status.uri) end AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log| next if log.account_warning.nil? + log.update_attribute('human_identifier', log.account_warning.account.acct) end AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log| next if log.announcement.nil? + log.update_attribute('human_identifier', log.announcement.text) end AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log| next if log.ip_block.nil? + log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}") end AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log| next if log.custom_emoji.nil? + log.update_attribute('human_identifier', log.custom_emoji.shortcode) end AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log| next if log.canonical_email_block.nil? + log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash) end AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log| next if log.appeal.nil? + log.update_attribute('human_identifier', log.appeal.account.acct) log.update_attribute('route_param', log.appeal.account_warning_id) end diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb index 42b7f3625b..9c7ac7120a 100644 --- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb +++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb @@ -79,11 +79,13 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1] safety_assured do AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log| next if log.account.nil? + log.update_attribute('human_identifier', log.account.acct) end AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log| next if log.user.nil? + log.update_attribute('human_identifier', log.user.account.acct) log.update_attribute('route_param', log.user.account_id) end @@ -92,57 +94,68 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1] AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log| next if log.domain_block.nil? + log.update_attribute('human_identifier', log.domain_block.domain) end AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log| next if log.domain_allow.nil? + log.update_attribute('human_identifier', log.domain_allow.domain) end AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log| next if log.email_domain_block.nil? + log.update_attribute('human_identifier', log.email_domain_block.domain) end AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log| next if log.unavailable_domain.nil? + log.update_attribute('human_identifier', log.unavailable_domain.domain) end AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log| next if log.status.nil? + log.update_attribute('human_identifier', log.status.account.acct) log.update_attribute('permalink', log.status.uri) end AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log| next if log.account_warning.nil? + log.update_attribute('human_identifier', log.account_warning.account.acct) end AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log| next if log.announcement.nil? + log.update_attribute('human_identifier', log.announcement.text) end AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log| next if log.ip_block.nil? + log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}") end AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log| next if log.custom_emoji.nil? + log.update_attribute('human_identifier', log.custom_emoji.shortcode) end AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log| next if log.canonical_email_block.nil? + log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash) end AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log| next if log.appeal.nil? + log.update_attribute('human_identifier', log.appeal.account.acct) log.update_attribute('route_param', log.appeal.account_warning_id) end diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index f24a54e7e8..41ea5b1529 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -148,6 +148,7 @@ module Mastodon begin Request.new(:get, "https://#{domain}/api/v1/instance").perform do |res| next unless res.code == 200 + stats[domain] = Oj.load(res.to_s) end @@ -161,6 +162,7 @@ module Mastodon Request.new(:get, "https://#{domain}/api/v1/instance/activity").perform do |res| next unless res.code == 200 + stats[domain]['activity'] = Oj.load(res.to_s) end rescue StandardError diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index d5e62897ff..dc39e9c90f 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -72,7 +72,7 @@ class Sanitize elements: %w(p br span a), attributes: { - 'a' => %w(href rel class), + 'a' => %w(href rel class), 'span' => %w(class), }, @@ -98,17 +98,17 @@ class Sanitize attributes: merge( RELAXED[:attributes], - 'audio' => %w(controls), - 'embed' => %w(height src type width), + 'audio' => %w(controls), + 'embed' => %w(height src type width), 'iframe' => %w(allowfullscreen frameborder height scrolling src width), 'source' => %w(src type), - 'video' => %w(controls height loop width), - 'div' => [:data] + 'video' => %w(controls height loop width), + 'div' => [:data] ), protocols: merge( RELAXED[:protocols], - 'embed' => { 'src' => HTTP_PROTOCOLS }, + 'embed' => { 'src' => HTTP_PROTOCOLS }, 'iframe' => { 'src' => HTTP_PROTOCOLS }, 'source' => { 'src' => HTTP_PROTOCOLS } ) diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake index a374e33ad2..4b5997920a 100644 --- a/lib/tasks/auto_annotate_models.rake +++ b/lib/tasks/auto_annotate_models.rake @@ -3,42 +3,42 @@ if Rails.env.development? task :set_annotation_options do Annotate.set_defaults( - 'routes' => 'false', - 'models' => 'true', - 'position_in_routes' => 'before', - 'position_in_class' => 'before', - 'position_in_test' => 'before', - 'position_in_fixture' => 'before', - 'position_in_factory' => 'before', - 'position_in_serializer' => 'before', - 'show_foreign_keys' => 'false', - 'show_indexes' => 'false', - 'simple_indexes' => 'false', - 'model_dir' => 'app/models', - 'root_dir' => '', - 'include_version' => 'false', - 'require' => '', - 'exclude_tests' => 'true', - 'exclude_fixtures' => 'true', - 'exclude_factories' => 'true', - 'exclude_serializers' => 'true', - 'exclude_scaffolds' => 'true', - 'exclude_controllers' => 'true', - 'exclude_helpers' => 'true', - 'ignore_model_sub_dir' => 'false', - 'ignore_columns' => nil, - 'ignore_routes' => nil, - 'ignore_unknown_models' => 'false', + 'routes' => 'false', + 'models' => 'true', + 'position_in_routes' => 'before', + 'position_in_class' => 'before', + 'position_in_test' => 'before', + 'position_in_fixture' => 'before', + 'position_in_factory' => 'before', + 'position_in_serializer' => 'before', + 'show_foreign_keys' => 'false', + 'show_indexes' => 'false', + 'simple_indexes' => 'false', + 'model_dir' => 'app/models', + 'root_dir' => '', + 'include_version' => 'false', + 'require' => '', + 'exclude_tests' => 'true', + 'exclude_fixtures' => 'true', + 'exclude_factories' => 'true', + 'exclude_serializers' => 'true', + 'exclude_scaffolds' => 'true', + 'exclude_controllers' => 'true', + 'exclude_helpers' => 'true', + 'ignore_model_sub_dir' => 'false', + 'ignore_columns' => nil, + 'ignore_routes' => nil, + 'ignore_unknown_models' => 'false', 'hide_limit_column_types' => 'integer,boolean', - 'skip_on_db_migrate' => 'false', - 'format_bare' => 'true', - 'format_rdoc' => 'false', - 'format_markdown' => 'false', - 'sort' => 'false', - 'force' => 'false', - 'trace' => 'false', - 'wrapper_open' => nil, - 'wrapper_close' => nil + 'skip_on_db_migrate' => 'false', + 'format_bare' => 'true', + 'format_rdoc' => 'false', + 'format_markdown' => 'false', + 'sort' => 'false', + 'force' => 'false', + 'trace' => 'false', + 'wrapper_open' => nil, + 'wrapper_close' => nil ) end diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 179a730bc5..f919ba989c 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -399,14 +399,14 @@ namespace :mastodon do end ActionMailer::Base.smtp_settings = { - port: env['SMTP_PORT'], - address: env['SMTP_SERVER'], - user_name: env['SMTP_LOGIN'].presence, - password: env['SMTP_PASSWORD'].presence, - domain: env['LOCAL_DOMAIN'], - authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain, - openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'], - enable_starttls: enable_starttls, + port: env['SMTP_PORT'], + address: env['SMTP_SERVER'], + user_name: env['SMTP_LOGIN'].presence, + password: env['SMTP_PASSWORD'].presence, + domain: env['LOCAL_DOMAIN'], + authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain, + openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'], + enable_starttls: enable_starttls, enable_starttls_auto: enable_starttls_auto, } diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb index 4630fac90d..e57c371793 100644 --- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::StatusesController do diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb index 4516df2c2c..7248356e53 100644 --- a/spec/models/admin/account_action_spec.rb +++ b/spec/models/admin/account_action_spec.rb @@ -12,9 +12,9 @@ RSpec.describe Admin::AccountAction, type: :model do before do account_action.assign_attributes( - type: type, + type: type, current_account: account, - target_account: target_account + target_account: target_account ) end diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index ed3fc056b2..50ff0b149a 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -149,8 +149,8 @@ describe AccountInteractions do let(:mute) do Fabricate(:mute, - account: account, - target_account: target_account, + account: account, + target_account: target_account, hide_notifications: hide_notifications) end diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index 7043449c5e..4d6e5c380b 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'rails_helper' RSpec.describe Tag do From a9472f8ff15523c13ab7e32592f11a6c51cc14e3 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 01:37:28 -0500 Subject: [PATCH 0507/1220] Fix Markdown files with Prettier and check in CI (#21972) --- .github/workflows/lint-md.yml | 40 +++++++++++++++++++++++++ .prettierignore | 6 ++-- CHANGELOG.md | 56 +++++++++++++++++++++++++++++++---- CODE_OF_CONDUCT.md | 20 ++++++------- CONTRIBUTING.md | 9 +++--- SECURITY.md | 2 +- 6 files changed, 109 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/lint-md.yml diff --git a/.github/workflows/lint-md.yml b/.github/workflows/lint-md.yml new file mode 100644 index 0000000000..6f76dd60c2 --- /dev/null +++ b/.github/workflows/lint-md.yml @@ -0,0 +1,40 @@ +name: Markdown Linting +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - '.github/workflows/lint-md.yml' + - '.prettier*' + - '**/*.md' + - '!AUTHORS.md' + - 'package.json' + - 'yarn.lock' + + pull_request: + paths: + - '.github/workflows/lint-md.yml' + - '.prettier*' + - '**/*.md' + - '!AUTHORS.md' + - 'package.json' + - 'yarn.lock' + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + + - name: Install all yarn packages + run: yarn --frozen-lockfile + + - name: Prettier + run: yarn prettier --check "**/*.md" diff --git a/.prettierignore b/.prettierignore index b3b5f06ed1..15e5f59944 100644 --- a/.prettierignore +++ b/.prettierignore @@ -70,8 +70,8 @@ app/javascript/styles/mastodon/reset.scss # Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631 *.js -# Ignore Markdownlint pending https://github.com/mastodon/mastodon/pull/21972 -*.md - # Ignore HTML till cleaned and included in CI *.html + +# Ignore the generated AUTHORS.md +AUTHORS.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a6998e8c1..2b826fb14a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ -Changelog -========= +# Changelog All notable changes to this project will be documented in this file. @@ -219,6 +218,7 @@ All notable changes to this project will be documented in this file. - Fix unbounded recursion in post discovery ([ClearlyClaire,nametoolong](https://github.com/mastodon/mastodon/pull/23506)) ## [4.0.2] - 2022-11-15 + ### Fixed - Fix wrong color on mentions hidden behind content warning in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20724)) @@ -226,6 +226,7 @@ All notable changes to this project will be documented in this file. - Fix `unsafe-eval` being used when `wasm-unsafe-eval` is enough in Content Security Policy ([Gargron](https://github.com/mastodon/mastodon/pull/20729), [prplecake](https://github.com/mastodon/mastodon/pull/20606)) ## [4.0.1] - 2022-11-14 + ### Fixed - Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677)) @@ -429,6 +430,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388)) ## [3.5.3] - 2022-05-26 + ### Added - **Add language dropdown to compose form in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18420), [ykzts](https://github.com/mastodon/mastodon/pull/18460)) @@ -476,6 +478,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix confirmation redirect to app without `Location` header ([Gargron](https://github.com/mastodon/mastodon/pull/18523)) ## [3.5.2] - 2022-05-04 + ### Added - Add warning on direct messages screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18289)) @@ -528,6 +531,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix error in alias settings page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18004)) ## [3.5.1] - 2022-04-08 + ### Added - Add pagination for trending statuses in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17976)) @@ -571,6 +575,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix error when indexing statuses into Elasticsearch ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17912)) ## [3.5.0] - 2022-03-30 + ### Added - **Add support for incoming edited posts** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748)) @@ -770,6 +775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix being able to bypass e-mail restrictions ([Gargron](https://github.com/mastodon/mastodon/pull/17909)) ## [3.4.6] - 2022-02-03 + ### Fixed - Fix `mastodon:webpush:generate_vapid_key` task requiring a functional environment ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17338)) @@ -784,6 +790,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Disable legacy XSS filtering ([Wonderfall](https://github.com/mastodon/mastodon/pull/17289)) ## [3.4.5] - 2022-01-31 + ### Added - Add more advanced migration tests ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17393)) @@ -798,6 +805,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix followers synchronization mechanism ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16510)) ## [3.4.4] - 2021-11-26 + ### Fixed - Fix error when suspending user with an already blocked canonical email ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17036)) @@ -815,11 +823,13 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix handling of recursive toots in WebUI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17041)) ## [3.4.3] - 2021-11-06 + ### Fixed - Fix login being broken due to inaccurately applied backport fix in 3.4.2 ([Gargron](https://github.com/mastodon/mastodon/commit/5c47a18c8df3231aa25c6d1f140a71a7fac9cbf9)) ## [3.4.2] - 2021-11-06 + ### Added - Add `configuration` attribute to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/16485)) @@ -863,6 +873,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix revoking a specific session not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16943)) ## [3.4.1] - 2021-06-03 + ### Added - Add new emoji assets from Twemoji 13.1.0 ([Gargron](https://github.com/mastodon/mastodon/pull/16345)) @@ -882,6 +893,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix mailer jobs for deleted notifications erroring out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16294)) ## [3.4.0] - 2021-05-16 + ### Added - **Add follow recommendations for onboarding** ([Gargron](https://github.com/mastodon/mastodon/pull/15945), [Gargron](https://github.com/mastodon/mastodon/pull/16161), [Gargron](https://github.com/mastodon/mastodon/pull/16060), [Gargron](https://github.com/mastodon/mastodon/pull/16077), [Gargron](https://github.com/mastodon/mastodon/pull/16078), [Gargron](https://github.com/mastodon/mastodon/pull/16160), [Gargron](https://github.com/mastodon/mastodon/pull/16079), [noellabo](https://github.com/mastodon/mastodon/pull/16044), [noellabo](https://github.com/mastodon/mastodon/pull/16045), [Gargron](https://github.com/mastodon/mastodon/pull/16152), [Gargron](https://github.com/mastodon/mastodon/pull/16153), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16082), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16173), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16159), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16189)) @@ -917,7 +929,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - This method allows an app through which a user signed-up to request a new confirmation e-mail to be sent, or to change the e-mail of the account before it is confirmed - Add `GET /api/v1/accounts/lookup` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15740), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/15750)) - This method allows to quickly convert a username of a known account to an ID that can be used with the REST API, or to check if a username is available - for sign-up + for sign-up - Add `policy` param to `POST /api/v1/push/subscriptions` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/16040)) - This param allows an app to control from whom notifications should be delivered as push notifications to the app - Add `details` to error response for `POST /api/v1/accounts` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15803)) @@ -1027,6 +1039,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix app name, website and redirect URIs not having a maximum length ([Gargron](https://github.com/mastodon/mastodon/pull/16042)) ## [3.3.0] - 2020-12-27 + ### Added - **Add hotkeys for audio/video control in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/15158), [Gargron](https://github.com/mastodon/mastodon/pull/15198)) @@ -1203,6 +1216,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364)) ## [3.2.2] - 2020-12-19 + ### Added - Add `tootctl maintenance fix-duplicates` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14860), [Gargron](https://github.com/mastodon/mastodon/pull/15223)) @@ -1229,6 +1243,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364)) ## [3.2.1] - 2020-10-19 + ### Added - Add support for latest HTTP Signatures spec draft ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14556)) @@ -1258,6 +1273,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix files served as `application/octet-stream` being rejected without attempting mime type detection ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14452)) ## [3.2.0] - 2020-07-27 + ### Added - Add `SMTP_SSL` environment variable ([OmmyZhang](https://github.com/mastodon/mastodon/pull/14309)) @@ -1393,7 +1409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix unique username constraint for local users not being enforced in database ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14099)) - Fix unnecessary gap under video modal in web UI ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14098)) - Fix 2FA and sign in token pages not respecting user locale ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14087)) -- Fix unapproved users being able to view profiles when in limited-federation mode *and* requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093)) +- Fix unapproved users being able to view profiles when in limited-federation mode _and_ requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093)) - Fix initial audio volume not corresponding to what's displayed in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14057)) - Fix timelines sometimes jumping when closing modals in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14019)) - Fix memory usage of downloading remote files ([Gargron](https://github.com/mastodon/mastodon/pull/14184), [Gargron](https://github.com/mastodon/mastodon/pull/14181), [noellabo](https://github.com/mastodon/mastodon/pull/14356)) @@ -1411,6 +1427,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Clear out media attachments in a separate worker (slow) ## [3.1.5] - 2020-07-07 + ### Security - Fix media attachment enumeration ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14254)) @@ -1418,6 +1435,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix other sessions not being logged out on password change ([Gargron](https://github.com/mastodon/mastodon/pull/14252)) ## [3.1.4] - 2020-05-14 + ### Added - Add `vi` to available locales ([taicv](https://github.com/mastodon/mastodon/pull/13542)) @@ -1456,7 +1474,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix regression in `tootctl media remove-orphans` ([Gargron](https://github.com/mastodon/mastodon/pull/13405)) - Fix old unique jobs digests not having been cleaned up ([Gargron](https://github.com/mastodon/mastodon/pull/13683)) - Fix own following/followers not showing muted users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13614)) -- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676)) +- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676)) - Fix wrong pgHero Content-Security-Policy when `CDN_HOST` is set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13595)) - Fix needlessly deduplicating usernames on collisions with remote accounts when signing-up through SAML/CAS ([kaiyou](https://github.com/mastodon/mastodon/pull/13581)) - Fix page incorrectly scrolling when bringing up dropdown menus in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13574)) @@ -1485,6 +1503,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - The issue only affects developers of apps who are shared between multiple users, such as server-side apps like cross-posters ## [3.1.3] - 2020-04-05 + ### Added - Add ability to filter audit log in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/13381)) @@ -1558,6 +1577,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix re-sending of e-mail confirmation not being rate limited ([Gargron](https://github.com/mastodon/mastodon/pull/13360)) ## [v3.1.2] - 2020-02-27 + ### Added - Add `--reset-password` option to `tootctl accounts modify` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13126)) @@ -1584,11 +1604,13 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix leak of arbitrary statuses through unfavourite action in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/13161)) ## [3.1.1] - 2020-02-10 + ### Fixed - Fix yanked dependency preventing installation ([mayaeh](https://github.com/mastodon/mastodon/pull/13059)) ## [3.1.0] - 2020-02-09 + ### Added - Add bookmarks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/7107), [Gargron](https://github.com/mastodon/mastodon/pull/12494), [Gomasy](https://github.com/mastodon/mastodon/pull/12381)) @@ -1753,6 +1775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix settings pages being cacheable by the browser ([Gargron](https://github.com/mastodon/mastodon/pull/12714)) ## [3.0.1] - 2019-10-10 + ### Added - Add `tootctl media usage` command ([Gargron](https://github.com/mastodon/mastodon/pull/12115)) @@ -1786,6 +1809,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix `tootctl accounts cull` advertising unused option flag ([Kjwon15](https://github.com/mastodon/mastodon/pull/12074)) ## [3.0.0] - 2019-10-03 + ### Added - Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11715), [Gargron](https://github.com/mastodon/mastodon/pull/11745)) @@ -1982,6 +2006,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix performance of GIF re-encoding and always strip EXIF data from videos ([Gargron](https://github.com/mastodon/mastodon/pull/12057)) ## [2.9.3] - 2019-08-10 + ### Added - Add GIF and WebP support for custom emojis ([Gargron](https://github.com/mastodon/mastodon/pull/11519)) @@ -2041,6 +2066,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix blocked domains still being able to fill database with account records ([Gargron](https://github.com/mastodon/mastodon/pull/11219)) ## [2.9.2] - 2019-06-22 + ### Added - Add `short_description` and `approval_required` to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/11146)) @@ -2055,6 +2081,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix audio not being downloaded from remote servers ([Gargron](https://github.com/mastodon/mastodon/pull/11145)) ## [2.9.1] - 2019-06-22 + ### Added - Add moderation API ([Gargron](https://github.com/mastodon/mastodon/pull/9387)) @@ -2080,6 +2107,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix scrolling behaviour in compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11093)) ## [2.9.0] - 2019-06-13 + ### Added - **Add single-column mode in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/10807), [Gargron](https://github.com/mastodon/mastodon/pull/10848), [Gargron](https://github.com/mastodon/mastodon/pull/11003), [Gargron](https://github.com/mastodon/mastodon/pull/10961), [Hanage999](https://github.com/mastodon/mastodon/pull/10915), [noellabo](https://github.com/mastodon/mastodon/pull/10917), [abcang](https://github.com/mastodon/mastodon/pull/10859), [Gargron](https://github.com/mastodon/mastodon/pull/10820), [Gargron](https://github.com/mastodon/mastodon/pull/10835), [Gargron](https://github.com/mastodon/mastodon/pull/10809), [Gargron](https://github.com/mastodon/mastodon/pull/10963), [noellabo](https://github.com/mastodon/mastodon/pull/10883), [Hanage999](https://github.com/mastodon/mastodon/pull/10839)) @@ -2134,6 +2162,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix login sometimes redirecting to paths that are not pages ([Gargron](https://github.com/mastodon/mastodon/pull/11019)) ## [2.8.4] - 2019-05-24 + ### Fixed - Fix delivery not retrying on some inbox errors that should be retriable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10812)) @@ -2145,6 +2174,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Require specific OAuth scopes for specific endpoints of the streaming API, instead of merely requiring a token for all endpoints, and allow using WebSockets protocol negotiation to specify the access token instead of using a query string ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10818)) ## [2.8.3] - 2019-05-19 + ### Added - Add `og:image:alt` OpenGraph tag ([BenLubar](https://github.com/mastodon/mastodon/pull/10779)) @@ -2167,6 +2197,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix "invited by" not showing up in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10791)) ## [2.8.2] - 2019-05-05 + ### Added - Add `SOURCE_TAG` environment variable ([ushitora-anqou](https://github.com/mastodon/mastodon/pull/10698)) @@ -2179,6 +2210,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix closing video modal scrolling timelines to top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10695)) ## [2.8.1] - 2019-05-04 + ### Added - Add link to existing domain block when trying to block an already-blocked domain ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10663)) @@ -2218,6 +2250,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix confirmation modals being too narrow for a secondary action button ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10586)) ## [2.8.0] - 2019-04-10 + ### Added - Add polls ([Gargron](https://github.com/mastodon/mastodon/pull/10111), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10155), [Gargron](https://github.com/mastodon/mastodon/pull/10184), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10196), [Gargron](https://github.com/mastodon/mastodon/pull/10248), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10255), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10322), [Gargron](https://github.com/mastodon/mastodon/pull/10138), [Gargron](https://github.com/mastodon/mastodon/pull/10139), [Gargron](https://github.com/mastodon/mastodon/pull/10144), [Gargron](https://github.com/mastodon/mastodon/pull/10145),[Gargron](https://github.com/mastodon/mastodon/pull/10146), [Gargron](https://github.com/mastodon/mastodon/pull/10148), [Gargron](https://github.com/mastodon/mastodon/pull/10151), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10150), [Gargron](https://github.com/mastodon/mastodon/pull/10168), [Gargron](https://github.com/mastodon/mastodon/pull/10165), [Gargron](https://github.com/mastodon/mastodon/pull/10172), [Gargron](https://github.com/mastodon/mastodon/pull/10170), [Gargron](https://github.com/mastodon/mastodon/pull/10171), [Gargron](https://github.com/mastodon/mastodon/pull/10186), [Gargron](https://github.com/mastodon/mastodon/pull/10189), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10200), [rinsuki](https://github.com/mastodon/mastodon/pull/10203), [Gargron](https://github.com/mastodon/mastodon/pull/10213), [Gargron](https://github.com/mastodon/mastodon/pull/10246), [Gargron](https://github.com/mastodon/mastodon/pull/10265), [Gargron](https://github.com/mastodon/mastodon/pull/10261), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10333), [Gargron](https://github.com/mastodon/mastodon/pull/10352), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10140), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10141), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10161), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10158), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10156), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10160), [Gargron](https://github.com/mastodon/mastodon/pull/10185), [Gargron](https://github.com/mastodon/mastodon/pull/10188), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10195), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10208), [Gargron](https://github.com/mastodon/mastodon/pull/10187), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10214), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10209)) @@ -2301,6 +2334,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix `tootctl accounts cull` sometimes removing accounts that are temporarily unreachable ([BenLubar](https://github.com/mastodon/mastodon/pull/10460)) ## [2.7.4] - 2019-03-05 + ### Fixed - Fix web UI not cleaning up notifications after block ([Gargron](https://github.com/mastodon/mastodon/pull/10108)) @@ -2315,6 +2349,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix edit profile page crash for suspended-then-unsuspended users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10178)) ## [2.7.3] - 2019-02-23 + ### Added - Add domain filter to the admin federation page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10071)) @@ -2332,6 +2367,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Change custom emojis to randomize stored file name ([hinaloe](https://github.com/mastodon/mastodon/pull/10090)) ## [2.7.2] - 2019-02-17 + ### Added - Add support for IPv6 in e-mail validation ([zoc](https://github.com/mastodon/mastodon/pull/10009)) @@ -2373,6 +2409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Change error graphic to hover-to-play ([Gargron](https://github.com/mastodon/mastodon/pull/10055)) ## [2.7.1] - 2019-01-28 + ### Fixed - Fix SSO authentication not working due to missing agreement boolean ([Gargron](https://github.com/mastodon/mastodon/pull/9915)) @@ -2387,6 +2424,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix missing strong style for landing page description ([Kjwon15](https://github.com/mastodon/mastodon/pull/9892)) ## [2.7.0] - 2019-01-20 + ### Added - Add link for adding a user to a list from their profile ([namelessGonbai](https://github.com/mastodon/mastodon/pull/9062)) @@ -2516,6 +2554,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Add tombstones for remote statuses to prevent replay attacks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9830)) ## [2.6.5] - 2018-12-01 + ### Changed - Change lists to display replies to others on the list and list owner ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9324)) @@ -2525,11 +2564,13 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix failures caused by commonly-used JSON-LD contexts being unavailable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9412)) ## [2.6.4] - 2018-11-30 + ### Fixed - Fix yarn dependencies not installing due to yanked event-stream package ([Gargron](https://github.com/mastodon/mastodon/pull/9401)) ## [2.6.3] - 2018-11-30 + ### Added - Add hyphen to characters allowed in remote usernames ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9345)) @@ -2549,6 +2590,7 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix TLS handshake timeout not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9381)) ## [2.6.2] - 2018-11-23 + ### Added - Add Page to whitelisted ActivityPub types ([mbajur](https://github.com/mastodon/mastodon/pull/9188)) @@ -2583,12 +2625,14 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix HTTP connection timeout of 10s not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9329)) ## [2.6.1] - 2018-10-30 + ### Fixed - Fix resolving resources by URL not working due to a regression in [valerauko](https://github.com/mastodon/mastodon/pull/9132) ([Gargron](https://github.com/mastodon/mastodon/pull/9171)) - Fix reducer error in web UI when a conversation has no last status ([Gargron](https://github.com/mastodon/mastodon/pull/9173)) ## [2.6.0] - 2018-10-30 + ### Added - Add link ownership verification ([Gargron](https://github.com/mastodon/mastodon/pull/8703)) @@ -2693,11 +2737,13 @@ Some of the features in this release have been funded through the [NGI0 Discover - Fix handling of content types with profile ([valerauko](https://github.com/mastodon/mastodon/pull/9132)) ## [2.5.2] - 2018-10-12 + ### Security - Fix XSS vulnerability ([Gargron](https://github.com/mastodon/mastodon/pull/8959)) ## [2.5.1] - 2018-10-07 + ### Fixed - Fix database migrations for PostgreSQL below 9.5 ([Gargron](https://github.com/mastodon/mastodon/pull/8903)) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ea5f64b0bc..97ed96772d 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9963054b39..d67b21ee58 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,4 @@ -Contributing -============ +# Contributing Thank you for considering contributing to Mastodon 🐘 @@ -28,9 +27,9 @@ You can submit translations via [Crowdin](https://crowdin.com/project/mastodon). Example: -|Not ideal|Better| -|---|----| -|Fixed NoMethodError in RemovalWorker|Fix nil error when removing statuses caused by race condition| +| Not ideal | Better | +| ------------------------------------ | ------------------------------------------------------------- | +| Fixed NoMethodError in RemovalWorker | Fix nil error when removing statuses caused by race condition | It is not always possible to phrase every change in such a manner, but it is desired. diff --git a/SECURITY.md b/SECURITY.md index 234172999d..6a51c126ab 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,7 +2,7 @@ If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at . -You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk. +You should _not_ report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk. ## Scope From af4c95100c519ea63c9d8a3e9a3f900091933ce2 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 01:58:33 -0500 Subject: [PATCH 0508/1220] Autofix Rubocop Style/FormatString (#23743) --- .rubocop_todo.yml | 10 ---------- app/serializers/rest/privacy_policy_serializer.rb | 2 +- lib/mastodon/maintenance_cli.rb | 2 +- lib/paperclip/color_extractor.rb | 2 +- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e667a77869..19d595e90d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2026,16 +2026,6 @@ Style/FetchEnvVar: - 'lib/tasks/repo.rake' - 'spec/features/profile_spec.rb' -# Offense count: 3 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: format, sprintf, percent -Style/FormatString: - Exclude: - - 'app/serializers/rest/privacy_policy_serializer.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'lib/paperclip/color_extractor.rb' - # Offense count: 15 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns. diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb index f0572e714d..57a67abf3c 100644 --- a/app/serializers/rest/privacy_policy_serializer.rb +++ b/app/serializers/rest/privacy_policy_serializer.rb @@ -8,7 +8,7 @@ class REST::PrivacyPolicySerializer < ActiveModel::Serializer end def content - markdown.render(object.text % { domain: Rails.configuration.x.local_domain }) + markdown.render(format(object.text, domain: Rails.configuration.x.local_domain)) end private diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb index 3e644045f7..ff8f6ddda9 100644 --- a/lib/mastodon/maintenance_cli.rb +++ b/lib/mastodon/maintenance_cli.rb @@ -550,7 +550,7 @@ module Mastodon @prompt.warn 'All those accounts are distinct accounts but only the most recently-created one is fully-functional.' accounts.each_with_index do |account, idx| - @prompt.say '%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s' % [idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A'] + @prompt.say format('%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s', idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A') end @prompt.say 'Please chose the one to keep unchanged, other ones will be automatically renamed.' diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb index 733dcba80b..2e8dc04fd8 100644 --- a/lib/paperclip/color_extractor.rb +++ b/lib/paperclip/color_extractor.rb @@ -183,7 +183,7 @@ module Paperclip end def rgb_to_hex(rgb) - '#%02x%02x%02x' % [rgb.r, rgb.g, rgb.b] + format('#%02x%02x%02x', rgb.r, rgb.g, rgb.b) end end end From 2c3c734bcc5e485a59145b78f5c783ca9a462cb7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 01:58:46 -0500 Subject: [PATCH 0509/1220] Autofix Rubocop Style/SymbolProc (#23742) --- .rubocop_todo.yml | 8 -------- spec/lib/request_spec.rb | 8 ++++---- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 19d595e90d..f365914cb9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2451,11 +2451,3 @@ Style/SymbolArray: - 'spec/controllers/concerns/signature_verification_spec.rb' - 'spec/fabricators/notification_fabricator.rb' - 'spec/models/public_feed_spec.rb' - -# Offense count: 4 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments. -# AllowedMethods: define_method, mail, respond_to -Style/SymbolProc: - Exclude: - - 'spec/lib/request_spec.rb' diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb index f63a836de4..25fe9ed379 100644 --- a/spec/lib/request_spec.rb +++ b/spec/lib/request_spec.rb @@ -97,12 +97,12 @@ describe Request do describe "response's body_with_limit method" do it 'rejects body more than 1 megabyte by default' do stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes)) - expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError + expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError end it 'accepts body less than 1 megabyte by default' do stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes)) - expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error + expect { subject.perform(&:body_with_limit) }.to_not raise_error end it 'rejects body by given size' do @@ -112,12 +112,12 @@ describe Request do it 'rejects too large chunked body' do stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Transfer-Encoding' => 'chunked' }) - expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError + expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError end it 'rejects too 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.body_with_limit } }.to raise_error Mastodon::LengthValidationError + expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError end it 'truncates large monolithic body' do From 62c4aecf8f3cb1e2bf1d0d1611084a3406a7adc0 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 20 Feb 2023 08:11:23 +0100 Subject: [PATCH 0510/1220] Make larger part of status clickable (#23621) --- app/javascript/mastodon/components/status.jsx | 5 +++-- app/javascript/styles/mastodon/components.scss | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index f02910f5ac..2e2d966345 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -160,6 +160,7 @@ class Status extends ImmutablePureComponent { if (e) { e.preventDefault(); + e.stopPropagation(); } this._openProfile(proper); @@ -510,8 +511,8 @@ class Status extends ImmutablePureComponent { {prepend}
    -
    - +
    + {status.get('edited_at') && *} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 11c28dbc13..62e48eb3d7 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1200,11 +1200,12 @@ body > [data-popper-placement] { .status__info { font-size: 15px; - margin-bottom: 10px; + padding-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; + cursor: pointer; } .status-check-box__status { From 59c8d43d94aa782848bf00f000512a04fca7c069 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 05:01:20 -0500 Subject: [PATCH 0511/1220] Autofix Rubocop Style/RescueStandardError (#23745) --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 18 ------------------ app/lib/request_pool.rb | 2 +- app/services/import_service.rb | 2 +- lib/mastodon/domains_cli.rb | 2 +- lib/tasks/mastodon.rake | 6 +++--- 6 files changed, 9 insertions(+), 24 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 512c8458fb..27d778edfb 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -115,6 +115,9 @@ Style/PercentLiteralDelimiters: '%i': '()' '%w': '()' +Style/RescueStandardError: + EnforcedStyle: implicit + Style/TrailingCommaInArrayLiteral: EnforcedStyleForMultiline: 'comma' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f365914cb9..bb214a70bb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2234,24 +2234,6 @@ Style/RegexpLiteral: - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/mastodon.rake' -# Offense count: 21 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: implicit, explicit -Style/RescueStandardError: - Exclude: - - 'app/lib/activitypub/activity/move.rb' - - 'app/lib/request.rb' - - 'app/models/account.rb' - - 'app/workers/move_worker.rb' - - 'app/workers/scheduler/vacuum_scheduler.rb' - - 'lib/mastodon/accounts_cli.rb' - - 'lib/mastodon/cli_helper.rb' - - 'lib/mastodon/media_cli.rb' - - 'lib/mastodon/sidekiq_middleware.rb' - - 'lib/mastodon/statuses_cli.rb' - - 'lib/mastodon/upgrade_cli.rb' - # Offense count: 2 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength. diff --git a/app/lib/request_pool.rb b/app/lib/request_pool.rb index e5899a79aa..6be1722860 100644 --- a/app/lib/request_pool.rb +++ b/app/lib/request_pool.rb @@ -64,7 +64,7 @@ class RequestPool retries += 1 retry end - rescue StandardError + rescue # If this connection raises errors of any kind, it's # better if it gets reaped as soon as possible diff --git a/app/services/import_service.rb b/app/services/import_service.rb index 2f48abc364..7a68e4ca35 100644 --- a/app/services/import_service.rb +++ b/app/services/import_service.rb @@ -114,7 +114,7 @@ class ImportService < BaseService status || ActivityPub::FetchRemoteStatusService.new.call(uri) rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::UnexpectedResponseError nil - rescue StandardError => e + rescue => e Rails.logger.warn "Unexpected error when importing bookmark: #{e}" nil end diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index 41ea5b1529..05f08f4623 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -165,7 +165,7 @@ module Mastodon stats[domain]['activity'] = Oj.load(res.to_s) end - rescue StandardError + rescue failed.increment ensure processed.increment diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index f919ba989c..0a3946ac7d 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -92,7 +92,7 @@ namespace :mastodon do prompt.ok 'Database configuration works! 🎆' db_connection_works = true break - rescue StandardError => e + rescue => e prompt.error 'Database connection could not be established with this configuration, try again.' prompt.error e.message break unless prompt.yes?('Try again?') @@ -132,7 +132,7 @@ namespace :mastodon do redis.ping prompt.ok 'Redis configuration works! 🎆' break - rescue StandardError => e + rescue => e prompt.error 'Redis connection could not be established with this configuration, try again.' prompt.error e.message break unless prompt.yes?('Try again?') @@ -417,7 +417,7 @@ namespace :mastodon do mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!' mail.deliver break - rescue StandardError => e + rescue => e prompt.error 'E-mail could not be sent with this configuration, try again.' prompt.error e.message break unless prompt.yes?('Try again?') From b65ca7acc9753227a5f3958c894d3ece9024dcd2 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 05:02:06 -0500 Subject: [PATCH 0512/1220] Update rebase needed job settings (#23746) --- .github/workflows/rebase-needed.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index a5899e0f08..99b224ec60 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -5,6 +5,9 @@ on: pull_request_target: types: [synchronize] +permissions: + pull-requests: write + jobs: label-rebase-needed: runs-on: ubuntu-latest @@ -19,4 +22,7 @@ jobs: with: dirtyLabel: 'rebase needed :construction:' repoToken: '${{ secrets.GITHUB_TOKEN }}' + commentOnClean: This pull request has resolved merge conflicts and is ready for review. commentOnDirty: This pull request has merge conflicts that must be resolved before it can be merged. + retryMax: 10 + continueOnMissingPermissions: false From d3b4d4d4f3ccee19f272c66e7c9acd803661e65b Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 20 Feb 2023 11:32:27 +0100 Subject: [PATCH 0513/1220] Change compose form checkbox to native input with `appearance: none` (#22949) --- .../compose/containers/sensitive_button_container.jsx | 2 -- app/javascript/styles/mastodon/components.scss | 8 +++----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx index 1bcce57310..03f831d284 100644 --- a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx +++ b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx @@ -54,8 +54,6 @@ class SensitiveButton extends React.PureComponent { disabled={disabled} /> - - [data-popper-placement] { } input[type='checkbox'] { - display: none; - } - - .checkbox { + appearance: none; display: inline-block; position: relative; border: 1px solid $ui-primary-color; @@ -420,8 +417,9 @@ body > [data-popper-placement] { top: -1px; border-radius: 4px; vertical-align: middle; + cursor: inherit; - &.active { + &:checked { border-color: $highlight-text-color; background: $highlight-text-color url("data:image/svg+xml;utf8,") From 9909b4b653d2f1cef662211a4b8e0b02cbb42fc1 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 13:20:56 -0500 Subject: [PATCH 0514/1220] Autofix Rubocop Rails/WhereEquals (#23759) --- .rubocop_todo.yml | 7 ------- app/models/announcement.rb | 2 +- app/models/status.rb | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index bb214a70bb..2a272b095d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1916,13 +1916,6 @@ Rails/UnusedIgnoredColumns: - 'app/models/status_edit.rb' - 'app/models/user.rb' -# Offense count: 2 -# This cop supports unsafe autocorrection (--autocorrect-all). -Rails/WhereEquals: - Exclude: - - 'app/models/announcement.rb' - - 'app/models/status.rb' - # Offense count: 61 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. diff --git a/app/models/announcement.rb b/app/models/announcement.rb index 898bf3efa9..339f5ae70c 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -20,7 +20,7 @@ class Announcement < ApplicationRecord scope :unpublished, -> { where(published: false) } scope :published, -> { where(published: true) } - scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') } + scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where(announcement_mutes: { id: nil }) } scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) } scope :reverse_chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) DESC')) } diff --git a/app/models/status.rb b/app/models/status.rb index 2eb47d72c2..e7ea191a80 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -95,7 +95,7 @@ class Status < ApplicationRecord scope :local, -> { where(local: true).or(where(uri: nil)) } scope :with_accounts, ->(ids) { where(id: ids).includes(:account) } scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') } - scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') } + scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) } scope :with_public_visibility, -> { where(visibility: :public) } scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) } scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) } From 35d032500b7e8c56d3fe3a05bcaa3bddb447b67a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 13:21:19 -0500 Subject: [PATCH 0515/1220] Autofix Rubocop Security/IoMethods (#23757) --- .rubocop_todo.yml | 7 ------- .../admin/export_domain_allows_controller_spec.rb | 4 ++-- .../admin/export_domain_blocks_controller_spec.rb | 2 +- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 2a272b095d..331e24e7a0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1956,13 +1956,6 @@ Rails/WhereExists: - 'spec/services/purge_domain_service_spec.rb' - 'spec/services/unallow_domain_service_spec.rb' -# Offense count: 3 -# This cop supports unsafe autocorrection (--autocorrect-all). -Security/IoMethods: - Exclude: - - 'spec/controllers/admin/export_domain_allows_controller_spec.rb' - - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). Style/CaseLikeIf: diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb index 7ee064de7f..1f974bc001 100644 --- a/spec/controllers/admin/export_domain_allows_controller_spec.rb +++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb @@ -14,7 +14,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do get :export, params: { format: :csv } expect(response).to have_http_status(200) - expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv'))) + expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv'))) end end @@ -30,7 +30,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do # Domains should now be added get :export, params: { format: :csv } expect(response).to have_http_status(200) - expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv'))) + expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv'))) end it 'displays error on no file selected' do diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb index 2766102c89..a8d7b7383e 100644 --- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do get :export, params: { format: :csv } expect(response).to have_http_status(200) - expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_blocks.csv'))) + expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_blocks.csv'))) end end From 88d22463d9e33377bf37686f27b84c1e4b45d3c7 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Tue, 21 Feb 2023 00:53:40 +0100 Subject: [PATCH 0516/1220] Merge remote-tracking branch 'upstream/main' into develop # Conflicts: # Gemfile # Gemfile.lock # config/sidekiq.yml --- lib/mastodon/version.rb | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 13334ca0ed..50533f48a8 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.0.1' + '+2.0.0' end def to_a diff --git a/yarn.lock b/yarn.lock index d0c4a1926e..921695c00d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,7 +1469,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.2", "@jest/types@^29.4.3": +"@jest/types@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== @@ -6813,7 +6813,7 @@ jest-snapshot@^29.4.3: pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.4.2, jest-util@^29.4.3: +jest-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== From 434770f580016acff6bdb51dc6715bffefb44150 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 20 Feb 2023 20:21:48 -0500 Subject: [PATCH 0517/1220] Autofix Rubocop Rails/FindById (#23762) --- .rubocop_todo.yml | 7 ------- app/controllers/api/v1/notifications_controller.rb | 2 +- app/controllers/media_controller.rb | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 331e24e7a0..d99774e8e7 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1645,13 +1645,6 @@ Rails/FilePath: - 'spec/rails_helper.rb' - 'spec/spec_helper.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -Rails/FindById: - Exclude: - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/media_controller.rb' - # Offense count: 6 # Configuration parameters: Include. # Include: app/models/**/*.rb diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 2024d521ca..8414f6b25c 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -24,7 +24,7 @@ class Api::V1::NotificationsController < Api::BaseController end def dismiss - current_account.notifications.find_by!(id: params[:id]).destroy! + current_account.notifications.find(params[:id]).destroy! render_empty end diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb index 3cdd97f067..133564ee7e 100644 --- a/app/controllers/media_controller.rb +++ b/app/controllers/media_controller.rb @@ -32,7 +32,7 @@ class MediaController < ApplicationController scope = MediaAttachment.local.attached # If id is 19 characters long, it's a shortcode, otherwise it's an identifier - @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find_by!(id: id) + @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find(id) end def verify_permitted_status! From 7207a98d3990124c6dc1df2187475695c800e65f Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 21 Feb 2023 09:23:39 +0100 Subject: [PATCH 0518/1220] Add `lang` tag to native language names in language picker (#23749) --- .../mastodon/features/compose/components/language_dropdown.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx index d96d39f23d..82547e0793 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx @@ -210,7 +210,7 @@ class LanguageDropdownMenu extends React.PureComponent { return (
    - {lang[2]} ({lang[1]}) + {lang[2]} ({lang[1]})
    ); }; From fbbf5c48411b20b8b171bf92cd42e461ab6d071c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:29:07 +0100 Subject: [PATCH 0519/1220] Bump capistrano from 3.17.1 to 3.17.2 (#23775) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6e4c4cdc3e..9ed83ec727 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -156,7 +156,7 @@ GEM bundler (>= 1.2.0, < 3) thor (~> 1.0) byebug (11.1.3) - capistrano (3.17.1) + capistrano (3.17.2) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -430,7 +430,7 @@ GEM net-protocol net-protocol (0.2.1) timeout - net-scp (4.0.0.rc1) + net-scp (4.0.0) net-ssh (>= 2.6.5, < 8.0.0) net-smtp (0.3.3) net-protocol @@ -682,7 +682,7 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - sshkit (1.21.2) + sshkit (1.21.4) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) stackprof (0.2.23) From d58400d00ca4d93b3187dc660e0d1b2e65c964a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:30:59 +0100 Subject: [PATCH 0520/1220] Bump sass from 1.58.2 to 1.58.3 (#23772) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 06af9045e9..67ee5e21f7 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^4.1.2", - "sass": "^1.58.2", + "sass": "^1.58.3", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index e499d90ffd..d5a74786c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,7 +1469,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.2", "@jest/types@^29.4.3": +"@jest/types@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== @@ -6803,7 +6803,7 @@ jest-snapshot@^29.4.3: pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.4.2, jest-util@^29.4.3: +jest-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== @@ -9733,10 +9733,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.58.2: - version "1.58.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.2.tgz#ef3c5098a02dd006f09a2350b114f1ac445e38ce" - integrity sha512-2mbyOWOv/lhEXD6nVrQZQ4KT2DlwcODbTskM42EyqBAFUWOhiiYtAXZqjZz1ygzapYf+N+2GwfIH9M5FM4GUMg== +sass@^1.58.3: + version "1.58.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d" + integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 57b83ce3377098b950c696995d31ac906f1a1b13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:33:30 +0100 Subject: [PATCH 0521/1220] Bump blurhash from 2.0.4 to 2.0.5 (#23771) 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 67ee5e21f7..7e78b9b70f 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "babel-plugin-preval": "^5.1.0", "babel-plugin-react-intl": "^6.2.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "blurhash": "^2.0.4", + "blurhash": "^2.0.5", "classnames": "^2.3.2", "cocoon-js-vanilla": "^1.3.0", "color-blend": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index d5a74786c2..40c6fd393c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2782,10 +2782,10 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -blurhash@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.4.tgz#60642a823b50acaaf3732ddb6c7dfd721bdfef2a" - integrity sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A== +blurhash@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.5.tgz#efde729fc14a2f03571a6aa91b49cba80d1abe4b" + integrity sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w== bmp-js@^0.1.0: version "0.1.0" From 513316f768701fa3450da25d52e262f1adbfed4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:41:28 +0100 Subject: [PATCH 0522/1220] Bump stylelint from 15.1.0 to 15.2.0 (#23770) 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 7e78b9b70f..07c2a12c98 100644 --- a/package.json +++ b/package.json @@ -157,7 +157,7 @@ "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", - "stylelint": "^15.1.0", + "stylelint": "^15.2.0", "stylelint-config-standard-scss": "^7.0.1", "webpack-dev-server": "^3.11.3", "yargs": "^17.7.0" diff --git a/yarn.lock b/yarn.lock index 40c6fd393c..a058470844 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10503,10 +10503,10 @@ stylelint-scss@^4.4.0: postcss-selector-parser "^6.0.6" postcss-value-parser "^4.1.0" -stylelint@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.1.0.tgz#24d7cbe06250ceca3b276393bfdeaaaba4356195" - integrity sha512-Tw8OyIiYhxnIHUzgoLlCyWgCUKsPYiP3TDgs7M1VbayS+q5qZly2yxABg+YPe/hFRWiu0cOtptCtpyrn1CrnYw== +stylelint@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.2.0.tgz#e906eb59df83bde075d148623216f298f9ceb03a" + integrity sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA== dependencies: "@csstools/css-parser-algorithms" "^2.0.1" "@csstools/css-tokenizer" "^2.0.1" From 7adde24a95218048f14c29bee0d25afaeae99509 Mon Sep 17 00:00:00 2001 From: Botao Wang Date: Tue, 21 Feb 2023 18:06:13 +0900 Subject: [PATCH 0523/1220] Fix sidebar cut-off on small screens in admin UI (#23764) --- app/javascript/styles/mastodon/admin.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index d9e45fb102..d54d6634da 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -384,7 +384,7 @@ $content-width: 840px; position: fixed; z-index: 10; width: 100%; - height: calc(100vh - 56px); + height: calc(100% - 56px); left: 0; bottom: 0; overflow-y: auto; From 4b964fa605500a1e76caa876514a6b3107b8e0e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:41:28 +0100 Subject: [PATCH 0524/1220] Bump devise from 4.8.1 to 4.9.0 (#23691) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 0fca82cea3..479a4eeac7 100644 --- a/Gemfile +++ b/Gemfile @@ -30,7 +30,7 @@ gem 'bootsnap', '~> 1.16.0', require: false gem 'browser' gem 'charlock_holmes', '~> 0.7.7' gem 'chewy', '~> 7.2' -gem 'devise', '~> 4.8' +gem 'devise', '~> 4.9' gem 'devise-two-factor', '~> 4.0' group :pam_authentication, optional: true do diff --git a/Gemfile.lock b/Gemfile.lock index 9ed83ec727..a78a647574 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -125,7 +125,7 @@ GEM aws-sigv4 (~> 1.4) aws-sigv4 (1.5.2) aws-eventstream (~> 1, >= 1.0.2) - bcrypt (3.1.17) + bcrypt (3.1.18) better_errors (2.9.1) coderay (>= 1.0.0) erubi (>= 1.0.0) @@ -205,7 +205,7 @@ GEM addressable date (3.3.3) debug_inspector (1.0.0) - devise (4.8.1) + devise (4.9.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -575,9 +575,9 @@ GEM regexp_parser (2.7.0) request_store (1.5.1) rack (>= 1.4) - responders (3.0.1) - actionpack (>= 5.0) - railties (>= 5.0) + responders (3.1.0) + actionpack (>= 5.2) + railties (>= 5.2) rexml (3.2.5) rotp (6.2.0) rpam2 (4.0.2) @@ -797,7 +797,7 @@ DEPENDENCIES color_diff (~> 0.1) concurrent-ruby connection_pool - devise (~> 4.8) + devise (~> 4.9) devise-two-factor (~> 4.0) devise_pam_authenticatable2 (~> 9.2) discard (~> 1.2) From 92a0afda28302a4cea425b287bed74cfb61a2af3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:44:51 +0100 Subject: [PATCH 0525/1220] Bump @babel/runtime from 7.20.13 to 7.21.0 (#23773) 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 07c2a12c98..f1c5bdc0e8 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.13", + "@babel/runtime": "^7.21.0", "@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 a058470844..a87db5fad1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1030,10 +1030,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.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@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.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== +"@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.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@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.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" From a573641b15bdddd0e1bd213b11eb50e299cfe69e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:46:03 +0100 Subject: [PATCH 0526/1220] Bump @babel/core from 7.20.12 to 7.21.0 (#23767) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 138 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 88 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index f1c5bdc0e8..411f636f96 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.20.12", + "@babel/core": "^7.21.0", "@babel/plugin-proposal-decorators": "^7.20.13", "@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 a87db5fad1..882b728363 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,12 +7,13 @@ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== +"@ampproject/remapping@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@apideck/better-ajv-errors@^0.3.1": version "0.3.3" @@ -40,21 +41,21 @@ 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.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== +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.0", "@babel/core@^7.7.2": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== dependencies: - "@ampproject/remapping" "^2.1.0" + "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.0" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -70,13 +71,14 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@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== +"@babel/generator@^7.21.0", "@babel/generator@^7.7.2": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.0.tgz#45d731e84f506ce02a7b22b9ba5861ea88eef64f" + integrity sha512-z/zN3SePOtxN1/vPFdqrkuJGCD2Vx469+dSbNRD+4TF2+6e4Of5exHqAtcfL/2Nwu0RN0QsFwjyDBFwdUMzNSA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.21.0" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.18.6": @@ -167,6 +169,14 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" +"@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -188,10 +198,10 @@ 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.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== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67" + integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -199,8 +209,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -289,14 +299,14 @@ "@babel/traverse" "^7.18.10" "@babel/types" "^7.18.10" -"@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== +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -307,10 +317,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@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/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4" + integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -1046,26 +1056,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@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== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.7.2": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc" + integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.0" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" + "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.21.0" + "@babel/types" "^7.21.0" 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.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== +"@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.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819" + integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1481,6 +1491,14 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -1490,22 +1508,32 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + "@jridgewell/resolve-uri@^3.0.3": version "3.0.4" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.10" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186" integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -1513,6 +1541,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" From 24d265d604ae01bdffb746671c8ea87a65abb97c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:59:58 +0100 Subject: [PATCH 0527/1220] Bump @babel/plugin-transform-runtime from 7.19.6 to 7.21.0 (#23774) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 411f636f96..0ad8a579a6 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@babel/core": "^7.21.0", "@babel/plugin-proposal-decorators": "^7.20.13", "@babel/plugin-transform-react-inline-elements": "^7.18.6", - "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/runtime": "^7.21.0", diff --git a/yarn.lock b/yarn.lock index 882b728363..94c15cd328 100644 --- a/yarn.lock +++ b/yarn.lock @@ -858,13 +858,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" - integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== +"@babel/plugin-transform-runtime@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8" + integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg== dependencies: "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" babel-plugin-polyfill-regenerator "^0.4.1" From 9d8349f0c47cf8a1e9d791d2d770ecc34277e900 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:14:25 +0100 Subject: [PATCH 0528/1220] Bump @babel/plugin-transform-react-inline-elements from 7.18.6 to 7.21.0 (#23766) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 0ad8a579a6..8213164c5d 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "dependencies": { "@babel/core": "^7.21.0", "@babel/plugin-proposal-decorators": "^7.20.13", - "@babel/plugin-transform-react-inline-elements": "^7.18.6", + "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", diff --git a/yarn.lock b/yarn.lock index 94c15cd328..7a42822f6b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,13 +96,13 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/helper-builder-react-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.18.6.tgz#b3a302c0eb4949e5356b400cb752a91e93bf9b79" - integrity sha512-2ndBVP5f9zwHWQeBr5EgqTAvFhPDViMW969bbJzRhKUUylnC39CdFZdVmqk+UtkxIpwm/efPgm3SzXUSlJnjAw== +"@babel/helper-builder-react-jsx@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.19.0.tgz#a1f4fef805388eda4b3c1bd8994dc585b0afa351" + integrity sha512-xvrbORmJ13lWrqyMErk4vczhXNNWdOSg1BZ+R/7D34SjDjToR5g3M5UpD6MyUekstI50qAHLWA1j7w5o1WK2Pw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.19.0" "@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" @@ -809,13 +809,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-inline-elements@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.18.6.tgz#d0676948eb5a11d547de6add7e8a2c522ec708f5" - integrity sha512-uo3yD1EXhDxmk1Y/CeFDdHS5t22IOUBooLPFOrrjfpYmDM9Vg61xbIaWeWkbYQ7Aq0zMf30/FfKoQgFwyqw6Bg== +"@babel/plugin-transform-react-inline-elements@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.21.0.tgz#921fe634c422987677b133b335ae3f3aecddda2a" + integrity sha512-lOSFD/67qxOwQ7q6KpkAbBFeGI5xy1Oya2zipYxPSmG2C210CRJyQdzOl1A368J1nv2gOFTgRXdsRjb83jioLw== dependencies: - "@babel/helper-builder-react-jsx" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-builder-react-jsx" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-react-jsx-development@^7.18.6": version "7.18.6" From 7ecf783dd3bfc07f80aab495273b6d01ba972c40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:35:27 +0100 Subject: [PATCH 0529/1220] Bump @babel/plugin-proposal-decorators from 7.20.13 to 7.21.0 (#23769) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 41 ++++++++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 8213164c5d..3d923bbacf 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "private": true, "dependencies": { "@babel/core": "^7.21.0", - "@babel/plugin-proposal-decorators": "^7.20.13", + "@babel/plugin-proposal-decorators": "^7.21.0", "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.20.2", diff --git a/yarn.lock b/yarn.lock index 7a42822f6b..2fd3352cf1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -115,15 +115,15 @@ 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.12": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" - integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" + integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== 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.20.7" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" "@babel/helper-optimise-call-expression" "^7.18.6" "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" @@ -191,6 +191,13 @@ dependencies: "@babel/types" "^7.20.7" +"@babel/helper-member-expression-to-functions@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" + integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== + dependencies: + "@babel/types" "^7.21.0" + "@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" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" @@ -365,16 +372,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.20.13": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7" - integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw== +"@babel/plugin-proposal-decorators@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" + integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.12" + "@babel/helper-create-class-features-plugin" "^7.21.0" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.19.0" + "@babel/plugin-syntax-decorators" "^7.21.0" "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" @@ -506,12 +513,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599" - integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ== +"@babel/plugin-syntax-decorators@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" + integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" From 0cfdd1a401f055c23e308a4b823bd250b1cbb3d3 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 21 Feb 2023 19:54:36 -0500 Subject: [PATCH 0530/1220] Enable Rubocop Style/StringConcatenation defaults (#23792) --- .rubocop_todo.yml | 19 ------------------- app/lib/activitypub/case_transform.rb | 2 +- app/lib/validation_error_formatter.rb | 2 +- app/services/backup_service.rb | 10 +++++----- app/services/fetch_link_card_service.rb | 2 +- lib/mastodon/emoji_cli.rb | 2 +- lib/mastodon/redis_config.rb | 16 ++++++++-------- lib/mastodon/snowflake.rb | 2 +- lib/paperclip/gif_transcoder.rb | 2 +- lib/paperclip/type_corrector.rb | 2 +- .../api/v1/apps_controller_spec.rb | 4 ++-- .../api/v1/streaming_controller_spec.rb | 2 +- .../disallowed_hashtags_validator_spec.rb | 2 +- .../web/push_notification_worker_spec.rb | 2 +- 14 files changed, 25 insertions(+), 44 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d99774e8e7..a72606b358 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2263,25 +2263,6 @@ Style/SlicingWithRange: - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/repo.rake' -# Offense count: 25 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: Mode. -Style/StringConcatenation: - Exclude: - - 'app/lib/activitypub/case_transform.rb' - - 'app/lib/validation_error_formatter.rb' - - 'app/services/backup_service.rb' - - 'app/services/fetch_link_card_service.rb' - - 'lib/mastodon/emoji_cli.rb' - - 'lib/mastodon/redis_config.rb' - - 'lib/mastodon/snowflake.rb' - - 'lib/paperclip/gif_transcoder.rb' - - 'lib/paperclip/type_corrector.rb' - - 'spec/controllers/api/v1/apps_controller_spec.rb' - - 'spec/controllers/api/v1/streaming_controller_spec.rb' - - 'spec/validators/disallowed_hashtags_validator_spec.rb' - - 'spec/workers/web/push_notification_worker_spec.rb' - # Offense count: 272 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, MinSize. diff --git a/app/lib/activitypub/case_transform.rb b/app/lib/activitypub/case_transform.rb index 7f716f8624..d36e01b8f2 100644 --- a/app/lib/activitypub/case_transform.rb +++ b/app/lib/activitypub/case_transform.rb @@ -13,7 +13,7 @@ module ActivityPub::CaseTransform when Symbol then camel_lower(value.to_s).to_sym when String camel_lower_cache[value] ||= if value.start_with?('_:') - '_:' + value.gsub(/\A_:/, '').underscore.camelize(:lower) + "_:#{value.gsub(/\A_:/, '').underscore.camelize(:lower)}" else value.underscore.camelize(:lower) end diff --git a/app/lib/validation_error_formatter.rb b/app/lib/validation_error_formatter.rb index 3f964f739b..1d3e8955b3 100644 --- a/app/lib/validation_error_formatter.rb +++ b/app/lib/validation_error_formatter.rb @@ -19,7 +19,7 @@ class ValidationErrorFormatter messages = errors.messages[attribute_name] h[@aliases[attribute_name] || attribute_name] = attribute_errors.map.with_index do |error, index| - { error: 'ERR_' + error[:error].to_s.upcase, description: messages[index] } + { error: "ERR_#{error[:error].to_s.upcase}", description: messages[index] } end end diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index b880dfbe71..5498cdd455 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -53,7 +53,7 @@ class BackupService < BaseService end end - archive_filename = ['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-') + '.tar.gz' + archive_filename = "#{['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-')}.tar.gz" @backup.dump = ActionDispatch::Http::UploadedFile.new(tempfile: tmp_file, filename: archive_filename) @backup.processed = true @@ -86,14 +86,14 @@ class BackupService < BaseService def dump_actor!(tar) actor = serialize(account, ActivityPub::ActorSerializer) - actor[:icon][:url] = 'avatar' + File.extname(actor[:icon][:url]) if actor[:icon] - actor[:image][:url] = 'header' + File.extname(actor[:image][:url]) if actor[:image] + actor[:icon][:url] = "avatar#{File.extname(actor[:icon][:url])}" if actor[:icon] + actor[:image][:url] = "header#{File.extname(actor[:image][:url])}" if actor[:image] actor[:outbox] = 'outbox.json' actor[:likes] = 'likes.json' actor[:bookmarks] = 'bookmarks.json' - download_to_tar(tar, account.avatar, 'avatar' + File.extname(account.avatar.path)) if account.avatar.exists? - download_to_tar(tar, account.header, 'header' + File.extname(account.header.path)) if account.header.exists? + download_to_tar(tar, account.avatar, "avatar#{File.extname(account.avatar.path)}") if account.avatar.exists? + download_to_tar(tar, account.header, "header#{File.extname(account.header.path)}") if account.header.exists? json = Oj.dump(actor) diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index d5fa9af541..8d07958b73 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService def html return @html if defined?(@html) - Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => Mastodon::Version.user_agent + ' Bot').perform do |res| + Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => "#{Mastodon::Version.user_agent} Bot").perform do |res| # We follow redirects, and ideally we want to save the preview card for # the destination URL and not any link shortener in-between, so here # we set the URL to the one of the last response in the redirect chain diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb index feb77107fb..88065c2a39 100644 --- a/lib/mastodon/emoji_cli.rb +++ b/lib/mastodon/emoji_cli.rb @@ -68,7 +68,7 @@ module Mastodon failed += 1 say('Failure/Error: ', :red) say(entry.full_name) - say(' ' + custom_emoji.errors[:image].join(', '), :red) + say(" #{custom_emoji.errors[:image].join(', ')}", :red) end end end diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb index 037ca5edc9..3e97da873a 100644 --- a/lib/mastodon/redis_config.rb +++ b/lib/mastodon/redis_config.rb @@ -1,17 +1,17 @@ # frozen_string_literal: true def setup_redis_env_url(prefix = nil, defaults = true) - prefix = prefix.to_s.upcase + '_' unless prefix.nil? + prefix = "#{prefix.to_s.upcase}_" unless prefix.nil? prefix = '' if prefix.nil? - return if ENV[prefix + 'REDIS_URL'].present? + return if ENV["#{prefix}REDIS_URL"].present? - password = ENV.fetch(prefix + 'REDIS_PASSWORD') { '' if defaults } - host = ENV.fetch(prefix + 'REDIS_HOST') { 'localhost' if defaults } - port = ENV.fetch(prefix + 'REDIS_PORT') { 6379 if defaults } - db = ENV.fetch(prefix + 'REDIS_DB') { 0 if defaults } + password = ENV.fetch("#{prefix}REDIS_PASSWORD") { '' if defaults } + host = ENV.fetch("#{prefix}REDIS_HOST") { 'localhost' if defaults } + port = ENV.fetch("#{prefix}REDIS_PORT") { 6379 if defaults } + db = ENV.fetch("#{prefix}REDIS_DB") { 0 if defaults } - ENV[prefix + 'REDIS_URL'] = begin + ENV["#{prefix}REDIS_URL"] = begin if [password, host, port, db].all?(&:nil?) ENV['REDIS_URL'] else @@ -27,7 +27,7 @@ setup_redis_env_url(:cache, false) setup_redis_env_url(:sidekiq, false) namespace = ENV.fetch('REDIS_NAMESPACE', nil) -cache_namespace = namespace ? namespace + '_cache' : 'cache' +cache_namespace = namespace ? "#{namespace}_cache" : 'cache' sidekiq_namespace = namespace REDIS_CACHE_PARAMS = { diff --git a/lib/mastodon/snowflake.rb b/lib/mastodon/snowflake.rb index fe0dc1722e..8030288aff 100644 --- a/lib/mastodon/snowflake.rb +++ b/lib/mastodon/snowflake.rb @@ -115,7 +115,7 @@ module Mastodon::Snowflake # And only those that are using timestamp_id. next unless (data = DEFAULT_REGEX.match(id_col.default_function)) - seq_name = data[:seq_prefix] + '_id_seq' + seq_name = "#{data[:seq_prefix]}_id_seq" # If we were on Postgres 9.5+, we could do CREATE SEQUENCE IF # NOT EXISTS, but we can't depend on that. Instead, catch the diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb index f385b00a32..32bdb8a863 100644 --- a/lib/paperclip/gif_transcoder.rb +++ b/lib/paperclip/gif_transcoder.rb @@ -109,7 +109,7 @@ module Paperclip final_file = Paperclip::Transcoder.make(file, options, attachment) if options[:style] == :original - attachment.instance.file_file_name = File.basename(attachment.instance.file_file_name, '.*') + '.mp4' + attachment.instance.file_file_name = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4" attachment.instance.file_content_type = 'video/mp4' attachment.instance.type = MediaAttachment.types[:gifv] end diff --git a/lib/paperclip/type_corrector.rb b/lib/paperclip/type_corrector.rb index 17e2fc5daa..030b98b122 100644 --- a/lib/paperclip/type_corrector.rb +++ b/lib/paperclip/type_corrector.rb @@ -7,7 +7,7 @@ module Paperclip def make return @file unless options[:format] - target_extension = '.' + options[:format] + target_extension = ".#{options[:format]}" extension = File.extname(attachment.instance_read(:file_name)) return @file unless options[:style] == :original && target_extension && extension != target_extension diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb index 9ac7880a4a..61158e881f 100644 --- a/spec/controllers/api/v1/apps_controller_spec.rb +++ b/spec/controllers/api/v1/apps_controller_spec.rb @@ -68,7 +68,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do end context 'with a too-long website' do - let(:website) { 'https://foo.bar/' + ('hoge' * 2_000) } + let(:website) { "https://foo.bar/#{'hoge' * 2_000}" } it 'returns http unprocessable entity' do expect(response).to have_http_status(422) @@ -76,7 +76,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do end context 'with a too-long redirect_uris' do - let(:redirect_uris) { 'https://foo.bar/' + ('hoge' * 2_000) } + let(:redirect_uris) { "https://foo.bar/#{'hoge' * 2_000}" } it 'returns http unprocessable entity' do expect(response).to have_http_status(422) diff --git a/spec/controllers/api/v1/streaming_controller_spec.rb b/spec/controllers/api/v1/streaming_controller_spec.rb index 9dbca01785..7014ed9b2b 100644 --- a/spec/controllers/api/v1/streaming_controller_spec.rb +++ b/spec/controllers/api/v1/streaming_controller_spec.rb @@ -25,7 +25,7 @@ describe Api::V1::StreamingController do context 'with streaming api on different host' do before(:each) do - Rails.configuration.x.streaming_api_base_url = 'wss://streaming-' + Rails.configuration.x.web_domain + Rails.configuration.x.streaming_api_base_url = "wss://streaming-#{Rails.configuration.x.web_domain}" @streaming_host = URI.parse(Rails.configuration.x.streaming_api_base_url).host end diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb index 2c4ebc4f25..896fd4fc5e 100644 --- a/spec/validators/disallowed_hashtags_validator_spec.rb +++ b/spec/validators/disallowed_hashtags_validator_spec.rb @@ -11,7 +11,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do described_class.new.validate(status) end - let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| '#' + x }.join(' ')) } + let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| "##{x}" }.join(' ')) } let(:errors) { double(add: nil) } context 'for a remote reblog' do diff --git a/spec/workers/web/push_notification_worker_spec.rb b/spec/workers/web/push_notification_worker_spec.rb index 5bc24f8886..822ef5257f 100644 --- a/spec/workers/web/push_notification_worker_spec.rb +++ b/spec/workers/web/push_notification_worker_spec.rb @@ -37,7 +37,7 @@ describe Web::PushNotificationWorker do expect(a_request(:post, endpoint).with(headers: { 'Content-Encoding' => 'aesgcm', 'Content-Type' => 'application/octet-stream', - 'Crypto-Key' => 'dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=' + vapid_public_key.delete('='), + 'Crypto-Key' => "dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=#{vapid_public_key.delete('=')}", 'Encryption' => 'salt=WJeVM-RY-F9351SVxTFx_g', 'Ttl' => '172800', 'Urgency' => 'normal', From 84cc805caea566d4fb0fafce411cd07f83cfd0e2 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 21 Feb 2023 19:55:31 -0500 Subject: [PATCH 0531/1220] Enable Style/FrozenStringLiteralComment for specs (#23790) --- spec/config/initializers/rack_attack_spec.rb | 2 ++ spec/controllers/about_controller_spec.rb | 2 ++ spec/controllers/accounts_controller_spec.rb | 2 ++ .../activitypub/followers_synchronizations_controller_spec.rb | 2 ++ spec/controllers/activitypub/outboxes_controller_spec.rb | 2 ++ .../admin/account_moderation_notes_controller_spec.rb | 2 ++ spec/controllers/admin/accounts_controller_spec.rb | 2 ++ spec/controllers/admin/change_email_controller_spec.rb | 2 ++ spec/controllers/admin/confirmations_controller_spec.rb | 2 ++ spec/controllers/admin/custom_emojis_controller_spec.rb | 2 ++ spec/controllers/admin/disputes/appeals_controller_spec.rb | 2 ++ spec/controllers/admin/domain_allows_controller_spec.rb | 2 ++ spec/controllers/admin/domain_blocks_controller_spec.rb | 2 ++ spec/controllers/admin/export_domain_allows_controller_spec.rb | 2 ++ spec/controllers/admin/export_domain_blocks_controller_spec.rb | 2 ++ spec/controllers/admin/instances_controller_spec.rb | 2 ++ spec/controllers/admin/report_notes_controller_spec.rb | 2 ++ spec/controllers/admin/reports/actions_controller_spec.rb | 2 ++ spec/controllers/admin/reports_controller_spec.rb | 2 ++ spec/controllers/admin/resets_controller_spec.rb | 2 ++ spec/controllers/admin/roles_controller_spec.rb | 2 ++ spec/controllers/admin/statuses_controller_spec.rb | 2 ++ spec/controllers/admin/users/roles_controller.rb | 2 ++ .../admin/users/two_factor_authentications_controller_spec.rb | 2 ++ spec/controllers/api/oembed_controller_spec.rb | 2 ++ spec/controllers/api/v1/accounts/credentials_controller_spec.rb | 2 ++ .../api/v1/accounts/follower_accounts_controller_spec.rb | 2 ++ .../api/v1/accounts/following_accounts_controller_spec.rb | 2 ++ spec/controllers/api/v1/accounts/lists_controller_spec.rb | 2 ++ spec/controllers/api/v1/accounts/notes_controller_spec.rb | 2 ++ .../api/v1/accounts/relationships_controller_spec.rb | 2 ++ spec/controllers/api/v1/accounts/search_controller_spec.rb | 2 ++ spec/controllers/api/v1/accounts_controller_spec.rb | 2 ++ .../controllers/api/v1/admin/account_actions_controller_spec.rb | 2 ++ spec/controllers/api/v1/admin/accounts_controller_spec.rb | 2 ++ spec/controllers/api/v1/admin/domain_allows_controller_spec.rb | 2 ++ spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb | 2 ++ spec/controllers/api/v1/admin/reports_controller_spec.rb | 2 ++ spec/controllers/api/v1/apps/credentials_controller_spec.rb | 2 ++ spec/controllers/api/v1/apps_controller_spec.rb | 2 ++ spec/controllers/api/v1/blocks_controller_spec.rb | 2 ++ spec/controllers/api/v1/bookmarks_controller_spec.rb | 2 ++ spec/controllers/api/v1/conversations_controller_spec.rb | 2 ++ spec/controllers/api/v1/domain_blocks_controller_spec.rb | 2 ++ spec/controllers/api/v1/emails/confirmations_controller_spec.rb | 2 ++ spec/controllers/api/v1/favourites_controller_spec.rb | 2 ++ spec/controllers/api/v1/filters_controller_spec.rb | 2 ++ spec/controllers/api/v1/follow_requests_controller_spec.rb | 2 ++ spec/controllers/api/v1/followed_tags_controller_spec.rb | 2 ++ spec/controllers/api/v1/lists/accounts_controller_spec.rb | 2 ++ spec/controllers/api/v1/lists_controller_spec.rb | 2 ++ spec/controllers/api/v1/markers_controller_spec.rb | 2 ++ spec/controllers/api/v1/media_controller_spec.rb | 2 ++ spec/controllers/api/v1/mutes_controller_spec.rb | 2 ++ spec/controllers/api/v1/notifications_controller_spec.rb | 2 ++ spec/controllers/api/v1/polls/votes_controller_spec.rb | 2 ++ spec/controllers/api/v1/polls_controller_spec.rb | 2 ++ .../api/v1/statuses/favourited_by_accounts_controller_spec.rb | 2 ++ .../api/v1/statuses/reblogged_by_accounts_controller_spec.rb | 2 ++ spec/controllers/api/v1/statuses_controller_spec.rb | 2 ++ spec/controllers/api/v1/suggestions_controller_spec.rb | 2 ++ spec/controllers/api/v1/tags_controller_spec.rb | 2 ++ spec/controllers/api/v2/admin/accounts_controller_spec.rb | 2 ++ spec/controllers/api/v2/filters/keywords_controller_spec.rb | 2 ++ spec/controllers/api/v2/filters/statuses_controller_spec.rb | 2 ++ spec/controllers/api/v2/filters_controller_spec.rb | 2 ++ spec/controllers/auth/registrations_controller_spec.rb | 2 ++ spec/controllers/disputes/appeals_controller_spec.rb | 2 ++ spec/controllers/disputes/strikes_controller_spec.rb | 2 ++ spec/controllers/emojis_controller_spec.rb | 2 ++ spec/controllers/follower_accounts_controller_spec.rb | 2 ++ spec/controllers/following_accounts_controller_spec.rb | 2 ++ spec/controllers/home_controller_spec.rb | 2 ++ spec/controllers/instance_actors_controller_spec.rb | 2 ++ spec/controllers/intents_controller_spec.rb | 2 ++ spec/controllers/invites_controller_spec.rb | 2 ++ spec/controllers/manifests_controller_spec.rb | 2 ++ spec/controllers/relationships_controller_spec.rb | 2 ++ spec/controllers/settings/applications_controller_spec.rb | 2 ++ spec/controllers/settings/deletes_controller_spec.rb | 2 ++ .../settings/exports/blocked_accounts_controller_spec.rb | 2 ++ spec/controllers/settings/exports/bookmarks_controller_spec.rb | 2 ++ .../settings/exports/following_accounts_controller_spec.rb | 2 ++ .../settings/exports/muted_accounts_controller_spec.rb | 2 ++ spec/controllers/settings/featured_tags_controller_spec.rb | 2 ++ spec/controllers/settings/imports_controller_spec.rb | 2 ++ spec/controllers/settings/migrations_controller_spec.rb | 2 ++ .../settings/preferences/notifications_controller_spec.rb | 2 ++ spec/controllers/settings/preferences/other_controller_spec.rb | 2 ++ spec/controllers/settings/profiles_controller_spec.rb | 2 ++ spec/controllers/settings/sessions_controller_spec.rb | 2 ++ spec/controllers/shares_controller_spec.rb | 2 ++ spec/controllers/statuses_cleanup_controller_spec.rb | 2 ++ spec/controllers/tags_controller_spec.rb | 2 ++ spec/controllers/well_known/host_meta_controller_spec.rb | 2 ++ spec/controllers/well_known/nodeinfo_controller_spec.rb | 2 ++ spec/controllers/well_known/webfinger_controller_spec.rb | 2 ++ spec/fabricators/access_grant_fabricator.rb | 2 ++ spec/fabricators/access_token_fabricator.rb | 2 ++ spec/fabricators/accessible_access_token_fabricator.rb | 2 ++ spec/fabricators/account_alias_fabricator.rb | 2 ++ spec/fabricators/account_deletion_request_fabricator.rb | 2 ++ spec/fabricators/account_domain_block_fabricator.rb | 2 ++ spec/fabricators/account_fabricator.rb | 2 ++ spec/fabricators/account_migration_fabricator.rb | 2 ++ spec/fabricators/account_moderation_note_fabricator.rb | 2 ++ spec/fabricators/account_note_fabricator.rb | 2 ++ spec/fabricators/account_pin_fabricator.rb | 2 ++ spec/fabricators/account_stat_fabricator.rb | 2 ++ spec/fabricators/account_statuses_cleanup_policy_fabricator.rb | 2 ++ spec/fabricators/account_tag_stat_fabricator.rb | 2 ++ spec/fabricators/account_warning_fabricator.rb | 2 ++ spec/fabricators/account_warning_preset_fabricator.rb | 2 ++ spec/fabricators/admin_action_log_fabricator.rb | 2 ++ spec/fabricators/announcement_fabricator.rb | 2 ++ spec/fabricators/announcement_mute_fabricator.rb | 2 ++ spec/fabricators/announcement_reaction_fabricator.rb | 2 ++ spec/fabricators/appeal_fabricator.rb | 2 ++ spec/fabricators/application_fabricator.rb | 2 ++ spec/fabricators/backup_fabricator.rb | 2 ++ spec/fabricators/block_fabricator.rb | 2 ++ spec/fabricators/bookmark_fabricator.rb | 2 ++ spec/fabricators/canonical_email_block_fabricator.rb | 2 ++ spec/fabricators/conversation_account_fabricator.rb | 2 ++ spec/fabricators/conversation_fabricator.rb | 2 ++ spec/fabricators/conversation_mute_fabricator.rb | 2 ++ spec/fabricators/custom_emoji_category_fabricator.rb | 2 ++ spec/fabricators/custom_emoji_fabricator.rb | 2 ++ spec/fabricators/custom_filter_fabricator.rb | 2 ++ spec/fabricators/custom_filter_keyword_fabricator.rb | 2 ++ spec/fabricators/custom_filter_status_fabricator.rb | 2 ++ spec/fabricators/device_fabricator.rb | 2 ++ spec/fabricators/domain_allow_fabricator.rb | 2 ++ spec/fabricators/domain_block_fabricator.rb | 2 ++ spec/fabricators/email_domain_block_fabricator.rb | 2 ++ spec/fabricators/encrypted_message_fabricator.rb | 2 ++ spec/fabricators/favourite_fabricator.rb | 2 ++ spec/fabricators/featured_tag_fabricator.rb | 2 ++ spec/fabricators/follow_fabricator.rb | 2 ++ .../fabricators/follow_recommendation_suppression_fabricator.rb | 2 ++ spec/fabricators/follow_request_fabricator.rb | 2 ++ spec/fabricators/identity_fabricator.rb | 2 ++ spec/fabricators/import_fabricator.rb | 2 ++ spec/fabricators/invite_fabricator.rb | 2 ++ spec/fabricators/ip_block_fabricator.rb | 2 ++ spec/fabricators/list_account_fabricator.rb | 2 ++ spec/fabricators/list_fabricator.rb | 2 ++ spec/fabricators/login_activity_fabricator.rb | 2 ++ spec/fabricators/marker_fabricator.rb | 2 ++ spec/fabricators/media_attachment_fabricator.rb | 2 ++ spec/fabricators/mention_fabricator.rb | 2 ++ spec/fabricators/mute_fabricator.rb | 2 ++ spec/fabricators/notification_fabricator.rb | 2 ++ spec/fabricators/one_time_key_fabricator.rb | 2 ++ spec/fabricators/poll_fabricator.rb | 2 ++ spec/fabricators/poll_vote_fabricator.rb | 2 ++ spec/fabricators/preview_card_fabricator.rb | 2 ++ spec/fabricators/relay_fabricator.rb | 2 ++ spec/fabricators/report_fabricator.rb | 2 ++ spec/fabricators/report_note_fabricator.rb | 2 ++ spec/fabricators/rule_fabricator.rb | 2 ++ spec/fabricators/scheduled_status_fabricator.rb | 2 ++ spec/fabricators/session_activation_fabricator.rb | 2 ++ spec/fabricators/site_upload_fabricator.rb | 2 ++ spec/fabricators/status_edit_fabricator.rb | 2 ++ spec/fabricators/status_fabricator.rb | 2 ++ spec/fabricators/status_pin_fabricator.rb | 2 ++ spec/fabricators/status_stat_fabricator.rb | 2 ++ spec/fabricators/system_key_fabricator.rb | 2 ++ spec/fabricators/tag_fabricator.rb | 2 ++ spec/fabricators/tag_follow_fabricator.rb | 2 ++ spec/fabricators/unavailable_domain_fabricator.rb | 2 ++ spec/fabricators/user_fabricator.rb | 2 ++ spec/fabricators/user_invite_request_fabricator.rb | 2 ++ spec/fabricators/user_role_fabricator.rb | 2 ++ spec/fabricators/web_push_subscription_fabricator.rb | 2 ++ spec/fabricators/web_setting_fabricator.rb | 2 ++ spec/fabricators/webauthn_credential_fabricator.rb | 2 ++ spec/fabricators/webhook_fabricator.rb | 2 ++ spec/helpers/accounts_helper_spec.rb | 2 ++ spec/helpers/admin/filter_helper_spec.rb | 2 ++ spec/helpers/application_helper_spec.rb | 2 ++ spec/helpers/home_helper_spec.rb | 2 ++ spec/helpers/statuses_helper_spec.rb | 2 ++ spec/lib/activitypub/activity/accept_spec.rb | 2 ++ spec/lib/activitypub/activity/add_spec.rb | 2 ++ spec/lib/activitypub/activity/announce_spec.rb | 2 ++ spec/lib/activitypub/activity/block_spec.rb | 2 ++ spec/lib/activitypub/activity/create_spec.rb | 2 ++ spec/lib/activitypub/activity/delete_spec.rb | 2 ++ spec/lib/activitypub/activity/flag_spec.rb | 2 ++ spec/lib/activitypub/activity/follow_spec.rb | 2 ++ spec/lib/activitypub/activity/like_spec.rb | 2 ++ spec/lib/activitypub/activity/move_spec.rb | 2 ++ spec/lib/activitypub/activity/reject_spec.rb | 2 ++ spec/lib/activitypub/activity/remove_spec.rb | 2 ++ spec/lib/activitypub/activity/undo_spec.rb | 2 ++ spec/lib/activitypub/activity/update_spec.rb | 2 ++ spec/lib/activitypub/adapter_spec.rb | 2 ++ spec/lib/activitypub/dereferencer_spec.rb | 2 ++ spec/lib/activitypub/linked_data_signature_spec.rb | 2 ++ spec/lib/activitypub/tag_manager_spec.rb | 2 ++ spec/lib/emoji_formatter_spec.rb | 2 ++ spec/lib/entity_cache_spec.rb | 2 ++ spec/lib/feed_manager_spec.rb | 2 ++ spec/lib/html_aware_formatter_spec.rb | 2 ++ spec/lib/link_details_extractor_spec.rb | 2 ++ spec/lib/plain_text_formatter_spec.rb | 2 ++ spec/lib/suspicious_sign_in_detector_spec.rb | 2 ++ spec/lib/tag_manager_spec.rb | 2 ++ spec/lib/text_formatter_spec.rb | 2 ++ spec/lib/vacuum/access_tokens_vacuum_spec.rb | 2 ++ spec/lib/vacuum/backups_vacuum_spec.rb | 2 ++ spec/lib/vacuum/feeds_vacuum_spec.rb | 2 ++ spec/lib/vacuum/media_attachments_vacuum_spec.rb | 2 ++ spec/lib/vacuum/preview_cards_vacuum_spec.rb | 2 ++ spec/lib/vacuum/statuses_vacuum_spec.rb | 2 ++ spec/lib/vacuum/system_keys_vacuum_spec.rb | 2 ++ spec/lib/webfinger_resource_spec.rb | 2 ++ spec/mailers/notification_mailer_spec.rb | 2 ++ spec/mailers/previews/admin_mailer_preview.rb | 2 ++ spec/mailers/previews/notification_mailer_preview.rb | 2 ++ spec/mailers/previews/user_mailer_preview.rb | 2 ++ spec/models/account/field_spec.rb | 2 ++ spec/models/account_alias_spec.rb | 2 ++ spec/models/account_conversation_spec.rb | 2 ++ spec/models/account_deletion_request_spec.rb | 2 ++ spec/models/account_domain_block_spec.rb | 2 ++ spec/models/account_filter_spec.rb | 2 ++ spec/models/account_migration_spec.rb | 2 ++ spec/models/account_moderation_note_spec.rb | 2 ++ spec/models/account_spec.rb | 2 ++ spec/models/account_statuses_cleanup_policy_spec.rb | 2 ++ spec/models/admin/account_action_spec.rb | 2 ++ spec/models/announcement_mute_spec.rb | 2 ++ spec/models/announcement_reaction_spec.rb | 2 ++ spec/models/announcement_spec.rb | 2 ++ spec/models/appeal_spec.rb | 2 ++ spec/models/backup_spec.rb | 2 ++ spec/models/block_spec.rb | 2 ++ spec/models/canonical_email_block_spec.rb | 2 ++ spec/models/concerns/account_counters_spec.rb | 2 ++ spec/models/concerns/account_interactions_spec.rb | 2 ++ spec/models/conversation_mute_spec.rb | 2 ++ spec/models/conversation_spec.rb | 2 ++ spec/models/custom_emoji_category_spec.rb | 2 ++ spec/models/custom_emoji_spec.rb | 2 ++ spec/models/custom_filter_keyword_spec.rb | 2 ++ spec/models/custom_filter_spec.rb | 2 ++ spec/models/device_spec.rb | 2 ++ spec/models/domain_allow_spec.rb | 2 ++ spec/models/domain_block_spec.rb | 2 ++ spec/models/email_domain_block_spec.rb | 2 ++ spec/models/encrypted_message_spec.rb | 2 ++ spec/models/export_spec.rb | 2 ++ spec/models/favourite_spec.rb | 2 ++ spec/models/featured_tag_spec.rb | 2 ++ spec/models/follow_recommendation_suppression_spec.rb | 2 ++ spec/models/follow_request_spec.rb | 2 ++ spec/models/follow_spec.rb | 2 ++ spec/models/home_feed_spec.rb | 2 ++ spec/models/identity_spec.rb | 2 ++ spec/models/import_spec.rb | 2 ++ spec/models/invite_spec.rb | 2 ++ spec/models/ip_block_spec.rb | 2 ++ spec/models/list_account_spec.rb | 2 ++ spec/models/list_spec.rb | 2 ++ spec/models/login_activity_spec.rb | 2 ++ spec/models/marker_spec.rb | 2 ++ spec/models/media_attachment_spec.rb | 2 ++ spec/models/mention_spec.rb | 2 ++ spec/models/mute_spec.rb | 2 ++ spec/models/notification_spec.rb | 2 ++ spec/models/one_time_key_spec.rb | 2 ++ spec/models/poll_spec.rb | 2 ++ spec/models/preview_card_spec.rb | 2 ++ spec/models/preview_card_trend_spec.rb | 2 ++ spec/models/public_feed_spec.rb | 2 ++ spec/models/relay_spec.rb | 2 ++ spec/models/report_filter_spec.rb | 2 ++ spec/models/report_spec.rb | 2 ++ spec/models/rule_spec.rb | 2 ++ spec/models/scheduled_status_spec.rb | 2 ++ spec/models/status_edit_spec.rb | 2 ++ spec/models/status_pin_spec.rb | 2 ++ spec/models/status_spec.rb | 2 ++ spec/models/status_stat_spec.rb | 2 ++ spec/models/status_trend_spec.rb | 2 ++ spec/models/system_key_spec.rb | 2 ++ spec/models/tag_feed_spec.rb | 2 ++ spec/models/tag_follow_spec.rb | 2 ++ spec/models/trends/statuses_spec.rb | 2 ++ spec/models/trends/tags_spec.rb | 2 ++ spec/models/unavailable_domain_spec.rb | 2 ++ spec/models/user_invite_request_spec.rb | 2 ++ spec/models/user_role_spec.rb | 2 ++ spec/models/user_spec.rb | 2 ++ spec/models/web/push_subscription_spec.rb | 2 ++ spec/models/web/setting_spec.rb | 2 ++ spec/models/webauthn_credentials_spec.rb | 2 ++ spec/models/webhook_spec.rb | 2 ++ spec/presenters/instance_presenter_spec.rb | 2 ++ spec/rails_helper.rb | 2 ++ spec/requests/catch_all_route_request_spec.rb | 2 ++ spec/requests/host_meta_request_spec.rb | 2 ++ spec/requests/webfinger_request_spec.rb | 2 ++ spec/routing/accounts_routing_spec.rb | 2 ++ spec/routing/well_known_routes_spec.rb | 2 ++ spec/services/account_search_service_spec.rb | 2 ++ spec/services/account_statuses_cleanup_service_spec.rb | 2 ++ .../activitypub/fetch_featured_collection_service_spec.rb | 2 ++ .../activitypub/fetch_featured_tags_collection_service_spec.rb | 2 ++ spec/services/activitypub/fetch_remote_account_service_spec.rb | 2 ++ spec/services/activitypub/fetch_remote_actor_service_spec.rb | 2 ++ spec/services/activitypub/fetch_remote_key_service_spec.rb | 2 ++ spec/services/activitypub/fetch_remote_status_service_spec.rb | 2 ++ spec/services/activitypub/fetch_replies_service_spec.rb | 2 ++ spec/services/activitypub/process_account_service_spec.rb | 2 ++ spec/services/activitypub/process_collection_service_spec.rb | 2 ++ spec/services/activitypub/process_status_update_service_spec.rb | 2 ++ spec/services/activitypub/synchronize_followers_service_spec.rb | 2 ++ spec/services/after_block_domain_from_account_service_spec.rb | 2 ++ spec/services/after_block_service_spec.rb | 2 ++ spec/services/app_sign_up_service_spec.rb | 2 ++ spec/services/authorize_follow_service_spec.rb | 2 ++ spec/services/batched_remove_status_service_spec.rb | 2 ++ spec/services/block_domain_service_spec.rb | 2 ++ spec/services/block_service_spec.rb | 2 ++ spec/services/bootstrap_timeline_service_spec.rb | 2 ++ spec/services/clear_domain_media_service_spec.rb | 2 ++ spec/services/delete_account_service_spec.rb | 2 ++ spec/services/fan_out_on_write_service_spec.rb | 2 ++ spec/services/favourite_service_spec.rb | 2 ++ spec/services/fetch_link_card_service_spec.rb | 2 ++ spec/services/fetch_remote_status_service_spec.rb | 2 ++ spec/services/fetch_resource_service_spec.rb | 2 ++ spec/services/follow_service_spec.rb | 2 ++ spec/services/import_service_spec.rb | 2 ++ spec/services/mute_service_spec.rb | 2 ++ spec/services/notify_service_spec.rb | 2 ++ spec/services/post_status_service_spec.rb | 2 ++ spec/services/process_mentions_service_spec.rb | 2 ++ spec/services/purge_domain_service_spec.rb | 2 ++ spec/services/reblog_service_spec.rb | 2 ++ spec/services/reject_follow_service_spec.rb | 2 ++ spec/services/remove_from_follwers_service_spec.rb | 2 ++ spec/services/remove_status_service_spec.rb | 2 ++ spec/services/report_service_spec.rb | 2 ++ spec/services/resolve_account_service_spec.rb | 2 ++ spec/services/suspend_account_service_spec.rb | 2 ++ spec/services/unallow_domain_service_spec.rb | 2 ++ spec/services/unblock_service_spec.rb | 2 ++ spec/services/unfollow_service_spec.rb | 2 ++ spec/services/unmute_service_spec.rb | 2 ++ spec/services/unsuspend_account_service_spec.rb | 2 ++ spec/services/update_account_service_spec.rb | 2 ++ spec/services/update_status_service_spec.rb | 2 ++ spec/services/verify_link_service_spec.rb | 2 ++ spec/spec_helper.rb | 2 ++ spec/support/matchers/json/match_json_schema.rb | 2 ++ spec/support/matchers/model/model_have_error_on_field.rb | 2 ++ spec/workers/activitypub/distribute_poll_update_worker_spec.rb | 2 ++ spec/workers/activitypub/distribution_worker_spec.rb | 2 ++ spec/workers/activitypub/move_distribution_worker_spec.rb | 2 ++ spec/workers/activitypub/processing_worker_spec.rb | 2 ++ .../activitypub/status_update_distribution_worker_spec.rb | 2 ++ spec/workers/activitypub/update_distribution_worker_spec.rb | 2 ++ .../scheduler/accounts_statuses_cleanup_scheduler_spec.rb | 2 ++ spec/workers/scheduler/user_cleanup_scheduler_spec.rb | 2 ++ 369 files changed, 738 insertions(+) diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 50d4505b70..2cfe90b1a5 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Rack::Attack do diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb index 97143ec437..ccd28a96ce 100644 --- a/spec/controllers/about_controller_spec.rb +++ b/spec/controllers/about_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AboutController, type: :controller do diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb index db588156cb..9c38b30322 100644 --- a/spec/controllers/accounts_controller_spec.rb +++ b/spec/controllers/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountsController, type: :controller do diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb index 6ec756d3cf..8357f5f39b 100644 --- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb +++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controller do diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb index 7369ee4134..167bbcc21d 100644 --- a/spec/controllers/activitypub/outboxes_controller_spec.rb +++ b/spec/controllers/activitypub/outboxes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::OutboxesController, type: :controller do diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb index b8d6063227..d2c52f5940 100644 --- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb +++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::AccountModerationNotesController, type: :controller do diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index fdc98ed461..b182715b0b 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::AccountsController, type: :controller do diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb index 520842a19f..8329984715 100644 --- a/spec/controllers/admin/change_email_controller_spec.rb +++ b/spec/controllers/admin/change_email_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::ChangeEmailsController, type: :controller do diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb index 7ca90f3e12..d05711e272 100644 --- a/spec/controllers/admin/confirmations_controller_spec.rb +++ b/spec/controllers/admin/confirmations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::ConfirmationsController, type: :controller do diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb index 06cd0c22df..d40691e1bf 100644 --- a/spec/controllers/admin/custom_emojis_controller_spec.rb +++ b/spec/controllers/admin/custom_emojis_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::CustomEmojisController do diff --git a/spec/controllers/admin/disputes/appeals_controller_spec.rb b/spec/controllers/admin/disputes/appeals_controller_spec.rb index 7126577915..576a0c12b9 100644 --- a/spec/controllers/admin/disputes/appeals_controller_spec.rb +++ b/spec/controllers/admin/disputes/appeals_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::Disputes::AppealsController, type: :controller do diff --git a/spec/controllers/admin/domain_allows_controller_spec.rb b/spec/controllers/admin/domain_allows_controller_spec.rb index 6c4e677876..2a0f47145a 100644 --- a/spec/controllers/admin/domain_allows_controller_spec.rb +++ b/spec/controllers/admin/domain_allows_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::DomainAllowsController, type: :controller do diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb index d58a0cafcd..ef13f76762 100644 --- a/spec/controllers/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/domain_blocks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::DomainBlocksController, type: :controller do diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb index 1f974bc001..f12bd1344f 100644 --- a/spec/controllers/admin/export_domain_allows_controller_spec.rb +++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::ExportDomainAllowsController, type: :controller do diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb index a8d7b7383e..4da9f90e45 100644 --- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::ExportDomainBlocksController, type: :controller do diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb index 4716e486a2..33174b9921 100644 --- a/spec/controllers/admin/instances_controller_spec.rb +++ b/spec/controllers/admin/instances_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::InstancesController, type: :controller do diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb index 8a2603611c..fb2fbd0588 100644 --- a/spec/controllers/admin/report_notes_controller_spec.rb +++ b/spec/controllers/admin/report_notes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::ReportNotesController do diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb index 20f85680fa..3e42e4cb19 100644 --- a/spec/controllers/admin/reports/actions_controller_spec.rb +++ b/spec/controllers/admin/reports/actions_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::Reports::ActionsController do diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index c6b5770a81..97daaf8da9 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::ReportsController do diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb index 64fe027fda..16adb8a128 100644 --- a/spec/controllers/admin/resets_controller_spec.rb +++ b/spec/controllers/admin/resets_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::ResetsController do diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb index e2b1030d9a..223d0a472a 100644 --- a/spec/controllers/admin/roles_controller_spec.rb +++ b/spec/controllers/admin/roles_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::RolesController do diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb index 7f912c1c07..79d83db97d 100644 --- a/spec/controllers/admin/statuses_controller_spec.rb +++ b/spec/controllers/admin/statuses_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::StatusesController do diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb index 9fa8aef412..fe2cee01b5 100644 --- a/spec/controllers/admin/users/roles_controller.rb +++ b/spec/controllers/admin/users/roles_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::Users::RolesController do diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb index 990dcf6408..eb10d47963 100644 --- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb +++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' require 'webauthn/fake_client' diff --git a/spec/controllers/api/oembed_controller_spec.rb b/spec/controllers/api/oembed_controller_spec.rb index b9082bde1e..930f362505 100644 --- a/spec/controllers/api/oembed_controller_spec.rb +++ b/spec/controllers/api/oembed_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::OEmbedController, type: :controller do diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index 3494ca6746..57fe0aee68 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::CredentialsController do diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb index 1e6e1d8e0a..53298a2e43 100644 --- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::FollowerAccountsController do diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb index cc962c6ee3..7390b25b51 100644 --- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::FollowingAccountsController do diff --git a/spec/controllers/api/v1/accounts/lists_controller_spec.rb b/spec/controllers/api/v1/accounts/lists_controller_spec.rb index d714856335..418839cfa5 100644 --- a/spec/controllers/api/v1/accounts/lists_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/lists_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::ListsController do diff --git a/spec/controllers/api/v1/accounts/notes_controller_spec.rb b/spec/controllers/api/v1/accounts/notes_controller_spec.rb index 42c2d8a86f..fd4d34f691 100644 --- a/spec/controllers/api/v1/accounts/notes_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/notes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::NotesController do diff --git a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb index 69ad0d061a..da8d7fe3f0 100644 --- a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Accounts::RelationshipsController do diff --git a/spec/controllers/api/v1/accounts/search_controller_spec.rb b/spec/controllers/api/v1/accounts/search_controller_spec.rb index 5b23bff681..d2b675a3c8 100644 --- a/spec/controllers/api/v1/accounts/search_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/search_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Accounts::SearchController, type: :controller do diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb index d6bbcefd77..5fbb650213 100644 --- a/spec/controllers/api/v1/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::AccountsController, type: :controller do diff --git a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb index 462c2cfa99..cafbee212d 100644 --- a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb +++ b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb index a4c509c601..9ffcdb34fb 100644 --- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Admin::AccountsController, type: :controller do diff --git a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb index 8100363f6b..15567907e4 100644 --- a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb +++ b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Admin::DomainAllowsController, type: :controller do diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb index b367ab9ce3..0460c701a4 100644 --- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do diff --git a/spec/controllers/api/v1/admin/reports_controller_spec.rb b/spec/controllers/api/v1/admin/reports_controller_spec.rb index 880e72030a..3d61fe5c3a 100644 --- a/spec/controllers/api/v1/admin/reports_controller_spec.rb +++ b/spec/controllers/api/v1/admin/reports_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Admin::ReportsController, type: :controller do diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb index 701ba8acb4..350e0c7a02 100644 --- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Apps::CredentialsController do diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb index 61158e881f..bde132c52e 100644 --- a/spec/controllers/api/v1/apps_controller_spec.rb +++ b/spec/controllers/api/v1/apps_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::AppsController, type: :controller do diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb index cf996c47c9..a746389ca2 100644 --- a/spec/controllers/api/v1/blocks_controller_spec.rb +++ b/spec/controllers/api/v1/blocks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::BlocksController, type: :controller do diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb index 48332b15a5..352d2ca025 100644 --- a/spec/controllers/api/v1/bookmarks_controller_spec.rb +++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::BookmarksController, type: :controller do diff --git a/spec/controllers/api/v1/conversations_controller_spec.rb b/spec/controllers/api/v1/conversations_controller_spec.rb index 5add7cf1d4..36c4cb56f9 100644 --- a/spec/controllers/api/v1/conversations_controller_spec.rb +++ b/spec/controllers/api/v1/conversations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::ConversationsController, type: :controller do diff --git a/spec/controllers/api/v1/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/domain_blocks_controller_spec.rb index d9dc1bdbfe..467ddbccce 100644 --- a/spec/controllers/api/v1/domain_blocks_controller_spec.rb +++ b/spec/controllers/api/v1/domain_blocks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::DomainBlocksController, type: :controller do diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb index d272ff38d2..fc9843fef3 100644 --- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb +++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb index f0fb8f37bd..6ae0fdc492 100644 --- a/spec/controllers/api/v1/favourites_controller_spec.rb +++ b/spec/controllers/api/v1/favourites_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::FavouritesController, type: :controller do diff --git a/spec/controllers/api/v1/filters_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb index 8acb46a007..d583365cc1 100644 --- a/spec/controllers/api/v1/filters_controller_spec.rb +++ b/spec/controllers/api/v1/filters_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::FiltersController, type: :controller do diff --git a/spec/controllers/api/v1/follow_requests_controller_spec.rb b/spec/controllers/api/v1/follow_requests_controller_spec.rb index 856ba2a1c0..0220e02770 100644 --- a/spec/controllers/api/v1/follow_requests_controller_spec.rb +++ b/spec/controllers/api/v1/follow_requests_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::FollowRequestsController, type: :controller do diff --git a/spec/controllers/api/v1/followed_tags_controller_spec.rb b/spec/controllers/api/v1/followed_tags_controller_spec.rb index 2191350ef6..e990065a9d 100644 --- a/spec/controllers/api/v1/followed_tags_controller_spec.rb +++ b/spec/controllers/api/v1/followed_tags_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::FollowedTagsController, type: :controller do diff --git a/spec/controllers/api/v1/lists/accounts_controller_spec.rb b/spec/controllers/api/v1/lists/accounts_controller_spec.rb index 526d8b5616..337a5645c0 100644 --- a/spec/controllers/api/v1/lists/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/lists/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Api::V1::Lists::AccountsController do diff --git a/spec/controllers/api/v1/lists_controller_spec.rb b/spec/controllers/api/v1/lists_controller_spec.rb index 71a8094e68..f54d27e42b 100644 --- a/spec/controllers/api/v1/lists_controller_spec.rb +++ b/spec/controllers/api/v1/lists_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::ListsController, type: :controller do diff --git a/spec/controllers/api/v1/markers_controller_spec.rb b/spec/controllers/api/v1/markers_controller_spec.rb index 64ec18e590..fb5f59a7cf 100644 --- a/spec/controllers/api/v1/markers_controller_spec.rb +++ b/spec/controllers/api/v1/markers_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::MarkersController, type: :controller do diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb index ef1e439f9d..90379dd92d 100644 --- a/spec/controllers/api/v1/media_controller_spec.rb +++ b/spec/controllers/api/v1/media_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::MediaController, type: :controller do diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb index 8288cb8151..122d9d1c56 100644 --- a/spec/controllers/api/v1/mutes_controller_spec.rb +++ b/spec/controllers/api/v1/mutes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::MutesController, type: :controller do diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb index 22ebfa3dda..f6cbd105e3 100644 --- a/spec/controllers/api/v1/notifications_controller_spec.rb +++ b/spec/controllers/api/v1/notifications_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::NotificationsController, type: :controller do diff --git a/spec/controllers/api/v1/polls/votes_controller_spec.rb b/spec/controllers/api/v1/polls/votes_controller_spec.rb index d7a9c19704..9d9b14e81c 100644 --- a/spec/controllers/api/v1/polls/votes_controller_spec.rb +++ b/spec/controllers/api/v1/polls/votes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Polls::VotesController, type: :controller do diff --git a/spec/controllers/api/v1/polls_controller_spec.rb b/spec/controllers/api/v1/polls_controller_spec.rb index f0d9eaf92d..0602e44eef 100644 --- a/spec/controllers/api/v1/polls_controller_spec.rb +++ b/spec/controllers/api/v1/polls_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::PollsController, type: :controller do diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb index c1c6f5f12c..c7e1b73c7e 100644 --- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :controller do diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb index 90187a5858..1aab502ef4 100644 --- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controller do diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb index e839c8494f..f011bfd473 100644 --- a/spec/controllers/api/v1/statuses_controller_spec.rb +++ b/spec/controllers/api/v1/statuses_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::StatusesController, type: :controller do diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb index 35ba155e74..c99380c58b 100644 --- a/spec/controllers/api/v1/suggestions_controller_spec.rb +++ b/spec/controllers/api/v1/suggestions_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::SuggestionsController, type: :controller do diff --git a/spec/controllers/api/v1/tags_controller_spec.rb b/spec/controllers/api/v1/tags_controller_spec.rb index 216faad872..ed17a4fbfb 100644 --- a/spec/controllers/api/v1/tags_controller_spec.rb +++ b/spec/controllers/api/v1/tags_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V1::TagsController, type: :controller do diff --git a/spec/controllers/api/v2/admin/accounts_controller_spec.rb b/spec/controllers/api/v2/admin/accounts_controller_spec.rb index 1477049a1e..5766fd549e 100644 --- a/spec/controllers/api/v2/admin/accounts_controller_spec.rb +++ b/spec/controllers/api/v2/admin/accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V2::Admin::AccountsController, type: :controller do diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb index 0e0f52ea86..8c61059c64 100644 --- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb +++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do diff --git a/spec/controllers/api/v2/filters/statuses_controller_spec.rb b/spec/controllers/api/v2/filters/statuses_controller_spec.rb index 969b2ea739..330cf45a60 100644 --- a/spec/controllers/api/v2/filters/statuses_controller_spec.rb +++ b/spec/controllers/api/v2/filters/statuses_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V2::Filters::StatusesController, type: :controller do diff --git a/spec/controllers/api/v2/filters_controller_spec.rb b/spec/controllers/api/v2/filters_controller_spec.rb index cc0070d577..2b5610a4d6 100644 --- a/spec/controllers/api/v2/filters_controller_spec.rb +++ b/spec/controllers/api/v2/filters_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Api::V2::FiltersController, type: :controller do diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index f42f685c10..e3a00fa397 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Auth::RegistrationsController, type: :controller do diff --git a/spec/controllers/disputes/appeals_controller_spec.rb b/spec/controllers/disputes/appeals_controller_spec.rb index 90f222f494..affe63c59b 100644 --- a/spec/controllers/disputes/appeals_controller_spec.rb +++ b/spec/controllers/disputes/appeals_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Disputes::AppealsController, type: :controller do diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb index e060d37ac4..1d678875c6 100644 --- a/spec/controllers/disputes/strikes_controller_spec.rb +++ b/spec/controllers/disputes/strikes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Disputes::StrikesController, type: :controller do diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb index 9f66049642..710d23d924 100644 --- a/spec/controllers/emojis_controller_spec.rb +++ b/spec/controllers/emojis_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe EmojisController do diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb index 43fc4203cd..7c53e5b472 100644 --- a/spec/controllers/follower_accounts_controller_spec.rb +++ b/spec/controllers/follower_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe FollowerAccountsController do diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb index b41bf05751..122f72e2d0 100644 --- a/spec/controllers/following_accounts_controller_spec.rb +++ b/spec/controllers/following_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe FollowingAccountsController do diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb index 2409bf42c6..0d3722920c 100644 --- a/spec/controllers/home_controller_spec.rb +++ b/spec/controllers/home_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe HomeController, type: :controller do diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index d6b4c793b8..84a07d4970 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe InstanceActorsController, type: :controller do diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb index 394f7d512b..02b46ddc79 100644 --- a/spec/controllers/intents_controller_spec.rb +++ b/spec/controllers/intents_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe IntentsController, type: :controller do diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index 23b98fb129..408c5e1b53 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe InvitesController do diff --git a/spec/controllers/manifests_controller_spec.rb b/spec/controllers/manifests_controller_spec.rb index a549adef3f..ecd6957fc2 100644 --- a/spec/controllers/manifests_controller_spec.rb +++ b/spec/controllers/manifests_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ManifestsController do diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb index 4c4227d663..39f455e038 100644 --- a/spec/controllers/relationships_controller_spec.rb +++ b/spec/controllers/relationships_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe RelationshipsController do diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb index a653b87c76..5c6b04a155 100644 --- a/spec/controllers/settings/applications_controller_spec.rb +++ b/spec/controllers/settings/applications_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::ApplicationsController do diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb index a94dc042a5..a7edac6a96 100644 --- a/spec/controllers/settings/deletes_controller_spec.rb +++ b/spec/controllers/settings/deletes_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::DeletesController do diff --git a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb index 5ff41b7fcd..459b278d64 100644 --- a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb +++ b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Exports::BlockedAccountsController do diff --git a/spec/controllers/settings/exports/bookmarks_controller_spec.rb b/spec/controllers/settings/exports/bookmarks_controller_spec.rb index a06c02e0c3..9982eff165 100644 --- a/spec/controllers/settings/exports/bookmarks_controller_spec.rb +++ b/spec/controllers/settings/exports/bookmarks_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Exports::BookmarksController do diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb index bfe0105556..72b0b94e13 100644 --- a/spec/controllers/settings/exports/following_accounts_controller_spec.rb +++ b/spec/controllers/settings/exports/following_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Exports::FollowingAccountsController do diff --git a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb index 642f0a9b8f..b4170cb160 100644 --- a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb +++ b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Exports::MutedAccountsController do diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb index fc338672d5..5c61351af3 100644 --- a/spec/controllers/settings/featured_tags_controller_spec.rb +++ b/spec/controllers/settings/featured_tags_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::FeaturedTagsController do diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index e50504cc5b..78973df2b3 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Settings::ImportsController, type: :controller do diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb index 8159bb21b1..9b12bc40f1 100644 --- a/spec/controllers/settings/migrations_controller_spec.rb +++ b/spec/controllers/settings/migrations_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::MigrationsController do diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb index a821052edf..66fb8c5eb9 100644 --- a/spec/controllers/settings/preferences/notifications_controller_spec.rb +++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Preferences::NotificationsController do diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb index ffb37e0bd6..63eeefaf0f 100644 --- a/spec/controllers/settings/preferences/other_controller_spec.rb +++ b/spec/controllers/settings/preferences/other_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::Preferences::OtherController do diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb index c7a6ad6643..e45596b1af 100644 --- a/spec/controllers/settings/profiles_controller_spec.rb +++ b/spec/controllers/settings/profiles_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Settings::ProfilesController, type: :controller do diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb index fdf46d9473..a4248e1bde 100644 --- a/spec/controllers/settings/sessions_controller_spec.rb +++ b/spec/controllers/settings/sessions_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Settings::SessionsController do diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb index 0fde8c6927..6d5bb4f8d8 100644 --- a/spec/controllers/shares_controller_spec.rb +++ b/spec/controllers/shares_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe SharesController do diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb index 24b4ea7b60..969778bbfe 100644 --- a/spec/controllers/statuses_cleanup_controller_spec.rb +++ b/spec/controllers/statuses_cleanup_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusesCleanupController, type: :controller do diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb index 547bcfb395..8a3fa0bf8c 100644 --- a/spec/controllers/tags_controller_spec.rb +++ b/spec/controllers/tags_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe TagsController, type: :controller do diff --git a/spec/controllers/well_known/host_meta_controller_spec.rb b/spec/controllers/well_known/host_meta_controller_spec.rb index 654bad4067..d537043708 100644 --- a/spec/controllers/well_known/host_meta_controller_spec.rb +++ b/spec/controllers/well_known/host_meta_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe WellKnown::HostMetaController, type: :controller do diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb index 0cadc54357..f5cde150da 100644 --- a/spec/controllers/well_known/nodeinfo_controller_spec.rb +++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe WellKnown::NodeInfoController, type: :controller do diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb index 1ccfb218e8..00103df706 100644 --- a/spec/controllers/well_known/webfinger_controller_spec.rb +++ b/spec/controllers/well_known/webfinger_controller_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe WellKnown::WebfingerController, type: :controller do diff --git a/spec/fabricators/access_grant_fabricator.rb b/spec/fabricators/access_grant_fabricator.rb index ae1945f2bb..adc2b8369d 100644 --- a/spec/fabricators/access_grant_fabricator.rb +++ b/spec/fabricators/access_grant_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator :access_grant, from: 'Doorkeeper::AccessGrant' do application resource_owner_id { Fabricate(:user).id } diff --git a/spec/fabricators/access_token_fabricator.rb b/spec/fabricators/access_token_fabricator.rb index 1856a8eb3b..508c328085 100644 --- a/spec/fabricators/access_token_fabricator.rb +++ b/spec/fabricators/access_token_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator :access_token, from: 'Doorkeeper::AccessToken' do end diff --git a/spec/fabricators/accessible_access_token_fabricator.rb b/spec/fabricators/accessible_access_token_fabricator.rb index 4b7e99b207..fb3d0889b1 100644 --- a/spec/fabricators/accessible_access_token_fabricator.rb +++ b/spec/fabricators/accessible_access_token_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator :accessible_access_token, from: :access_token do expires_in { nil } revoked_at { nil } diff --git a/spec/fabricators/account_alias_fabricator.rb b/spec/fabricators/account_alias_fabricator.rb index 94dde9bb8c..4f434c078a 100644 --- a/spec/fabricators/account_alias_fabricator.rb +++ b/spec/fabricators/account_alias_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_alias) do account acct 'test@example.com' diff --git a/spec/fabricators/account_deletion_request_fabricator.rb b/spec/fabricators/account_deletion_request_fabricator.rb index 08a82ba3c3..3d3d373988 100644 --- a/spec/fabricators/account_deletion_request_fabricator.rb +++ b/spec/fabricators/account_deletion_request_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_deletion_request) do account end diff --git a/spec/fabricators/account_domain_block_fabricator.rb b/spec/fabricators/account_domain_block_fabricator.rb index 2ad4b67a99..ff85e17f3f 100644 --- a/spec/fabricators/account_domain_block_fabricator.rb +++ b/spec/fabricators/account_domain_block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_domain_block) do account domain 'example.com' diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb index 205706532e..6ffbba5849 100644 --- a/spec/fabricators/account_fabricator.rb +++ b/spec/fabricators/account_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + keypair = OpenSSL::PKey::RSA.new(2048) public_key = keypair.public_key.to_pem private_key = keypair.to_pem diff --git a/spec/fabricators/account_migration_fabricator.rb b/spec/fabricators/account_migration_fabricator.rb index 2a8e747a81..fd453f6d2a 100644 --- a/spec/fabricators/account_migration_fabricator.rb +++ b/spec/fabricators/account_migration_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_migration) do account target_account { |attrs| Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(attrs[:account])]) } diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb index 343a41fb1a..403870db6d 100644 --- a/spec/fabricators/account_moderation_note_fabricator.rb +++ b/spec/fabricators/account_moderation_note_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_moderation_note) do content 'MyText' account nil diff --git a/spec/fabricators/account_note_fabricator.rb b/spec/fabricators/account_note_fabricator.rb index 285703b38c..bb4ed8b24d 100644 --- a/spec/fabricators/account_note_fabricator.rb +++ b/spec/fabricators/account_note_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_note) do account target_account { Fabricate(:account) } diff --git a/spec/fabricators/account_pin_fabricator.rb b/spec/fabricators/account_pin_fabricator.rb index c0f8b8afbb..7d8a77bb54 100644 --- a/spec/fabricators/account_pin_fabricator.rb +++ b/spec/fabricators/account_pin_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_pin) do account nil target_account nil diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb index b1b47ffef4..45b1524ef3 100644 --- a/spec/fabricators/account_stat_fabricator.rb +++ b/spec/fabricators/account_stat_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_stat) do account nil statuses_count '' diff --git a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb index 29cf1d1339..0e756ddbaa 100644 --- a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb +++ b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_statuses_cleanup_policy) do account end diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb index 7a4de07f62..769015bd02 100644 --- a/spec/fabricators/account_tag_stat_fabricator.rb +++ b/spec/fabricators/account_tag_stat_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_tag_stat) do accounts_count '' end diff --git a/spec/fabricators/account_warning_fabricator.rb b/spec/fabricators/account_warning_fabricator.rb index 72fe835d9a..e5059e37f5 100644 --- a/spec/fabricators/account_warning_fabricator.rb +++ b/spec/fabricators/account_warning_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_warning) do account target_account(fabricator: :account) diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb index 7e7c03cb81..7588e7f9cf 100644 --- a/spec/fabricators/account_warning_preset_fabricator.rb +++ b/spec/fabricators/account_warning_preset_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:account_warning_preset) do text 'MyText' end diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb index 474bef1bce..eb738c01c0 100644 --- a/spec/fabricators/admin_action_log_fabricator.rb +++ b/spec/fabricators/admin_action_log_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator('Admin::ActionLog') do account nil action 'MyString' diff --git a/spec/fabricators/announcement_fabricator.rb b/spec/fabricators/announcement_fabricator.rb index 5a3871d901..5d77365875 100644 --- a/spec/fabricators/announcement_fabricator.rb +++ b/spec/fabricators/announcement_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:announcement) do text { Faker::Lorem.paragraph(sentence_count: 2) } published true diff --git a/spec/fabricators/announcement_mute_fabricator.rb b/spec/fabricators/announcement_mute_fabricator.rb index c4eafe8f4c..109fec0412 100644 --- a/spec/fabricators/announcement_mute_fabricator.rb +++ b/spec/fabricators/announcement_mute_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:announcement_mute) do account announcement diff --git a/spec/fabricators/announcement_reaction_fabricator.rb b/spec/fabricators/announcement_reaction_fabricator.rb index f923c59c60..5da51caaa3 100644 --- a/spec/fabricators/announcement_reaction_fabricator.rb +++ b/spec/fabricators/announcement_reaction_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:announcement_reaction) do account announcement diff --git a/spec/fabricators/appeal_fabricator.rb b/spec/fabricators/appeal_fabricator.rb index 339363822d..039086c4e5 100644 --- a/spec/fabricators/appeal_fabricator.rb +++ b/spec/fabricators/appeal_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:appeal) do strike(fabricator: :account_warning) account { |attrs| attrs[:strike].target_account } diff --git a/spec/fabricators/application_fabricator.rb b/spec/fabricators/application_fabricator.rb index 42b7009dc2..272821304c 100644 --- a/spec/fabricators/application_fabricator.rb +++ b/spec/fabricators/application_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:application, from: Doorkeeper::Application) do name 'Example' website 'http://example.com' diff --git a/spec/fabricators/backup_fabricator.rb b/spec/fabricators/backup_fabricator.rb index 99a5bdcda1..c73ae54bed 100644 --- a/spec/fabricators/backup_fabricator.rb +++ b/spec/fabricators/backup_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:backup) do user end diff --git a/spec/fabricators/block_fabricator.rb b/spec/fabricators/block_fabricator.rb index 379931ba65..c2e9e9628d 100644 --- a/spec/fabricators/block_fabricator.rb +++ b/spec/fabricators/block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:block) do account target_account { Fabricate(:account) } diff --git a/spec/fabricators/bookmark_fabricator.rb b/spec/fabricators/bookmark_fabricator.rb index 12cbc5bfa4..e21046fc25 100644 --- a/spec/fabricators/bookmark_fabricator.rb +++ b/spec/fabricators/bookmark_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:bookmark) do account status diff --git a/spec/fabricators/canonical_email_block_fabricator.rb b/spec/fabricators/canonical_email_block_fabricator.rb index 61afde3de2..21d7c24023 100644 --- a/spec/fabricators/canonical_email_block_fabricator.rb +++ b/spec/fabricators/canonical_email_block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:canonical_email_block) do email 'test@example.com' reference_account { Fabricate(:account) } diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb index 0fe7a494ef..f69d36855e 100644 --- a/spec/fabricators/conversation_account_fabricator.rb +++ b/spec/fabricators/conversation_account_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:conversation_account) do account nil conversation nil diff --git a/spec/fabricators/conversation_fabricator.rb b/spec/fabricators/conversation_fabricator.rb index b4fadb46b8..07c6780bf9 100644 --- a/spec/fabricators/conversation_fabricator.rb +++ b/spec/fabricators/conversation_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator(:conversation) do end diff --git a/spec/fabricators/conversation_mute_fabricator.rb b/spec/fabricators/conversation_mute_fabricator.rb index 84f131c261..5cf4dd3d59 100644 --- a/spec/fabricators/conversation_mute_fabricator.rb +++ b/spec/fabricators/conversation_mute_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator(:conversation_mute) do end diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb index 119c343cf0..6019baba21 100644 --- a/spec/fabricators/custom_emoji_category_fabricator.rb +++ b/spec/fabricators/custom_emoji_category_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:custom_emoji_category) do name 'MyString' end diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb index 18a7d23dc4..298a50b4bf 100644 --- a/spec/fabricators/custom_emoji_fabricator.rb +++ b/spec/fabricators/custom_emoji_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:custom_emoji) do shortcode 'coolcat' domain nil diff --git a/spec/fabricators/custom_filter_fabricator.rb b/spec/fabricators/custom_filter_fabricator.rb index 64297a7e30..5fee4f01af 100644 --- a/spec/fabricators/custom_filter_fabricator.rb +++ b/spec/fabricators/custom_filter_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:custom_filter) do account expires_at nil diff --git a/spec/fabricators/custom_filter_keyword_fabricator.rb b/spec/fabricators/custom_filter_keyword_fabricator.rb index 201566cbe3..f1fb440dc5 100644 --- a/spec/fabricators/custom_filter_keyword_fabricator.rb +++ b/spec/fabricators/custom_filter_keyword_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:custom_filter_keyword) do custom_filter keyword 'discourse' diff --git a/spec/fabricators/custom_filter_status_fabricator.rb b/spec/fabricators/custom_filter_status_fabricator.rb index d082b81c5e..3ef1d0ec83 100644 --- a/spec/fabricators/custom_filter_status_fabricator.rb +++ b/spec/fabricators/custom_filter_status_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:custom_filter_status) do custom_filter status diff --git a/spec/fabricators/device_fabricator.rb b/spec/fabricators/device_fabricator.rb index b15d8248fb..26c71b4fdd 100644 --- a/spec/fabricators/device_fabricator.rb +++ b/spec/fabricators/device_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:device) do access_token account diff --git a/spec/fabricators/domain_allow_fabricator.rb b/spec/fabricators/domain_allow_fabricator.rb index 6f62ce3b8c..b32af129bc 100644 --- a/spec/fabricators/domain_allow_fabricator.rb +++ b/spec/fabricators/domain_allow_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:domain_allow) do domain 'MyString' end diff --git a/spec/fabricators/domain_block_fabricator.rb b/spec/fabricators/domain_block_fabricator.rb index cc1f928e58..c703a18e92 100644 --- a/spec/fabricators/domain_block_fabricator.rb +++ b/spec/fabricators/domain_block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:domain_block) do domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } } end diff --git a/spec/fabricators/email_domain_block_fabricator.rb b/spec/fabricators/email_domain_block_fabricator.rb index d18af6433c..a74cca73dd 100644 --- a/spec/fabricators/email_domain_block_fabricator.rb +++ b/spec/fabricators/email_domain_block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:email_domain_block) do domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } } end diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb index 4de0d7add2..2898827549 100644 --- a/spec/fabricators/encrypted_message_fabricator.rb +++ b/spec/fabricators/encrypted_message_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:encrypted_message) do device from_account diff --git a/spec/fabricators/favourite_fabricator.rb b/spec/fabricators/favourite_fabricator.rb index 464ac8d71a..005947e6f8 100644 --- a/spec/fabricators/favourite_fabricator.rb +++ b/spec/fabricators/favourite_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:favourite) do account status diff --git a/spec/fabricators/featured_tag_fabricator.rb b/spec/fabricators/featured_tag_fabricator.rb index 25cbdaac0b..4bfa3e924e 100644 --- a/spec/fabricators/featured_tag_fabricator.rb +++ b/spec/fabricators/featured_tag_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:featured_tag) do account tag diff --git a/spec/fabricators/follow_fabricator.rb b/spec/fabricators/follow_fabricator.rb index 9b25dc547b..41b5305d55 100644 --- a/spec/fabricators/follow_fabricator.rb +++ b/spec/fabricators/follow_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:follow) do account target_account { Fabricate(:account) } diff --git a/spec/fabricators/follow_recommendation_suppression_fabricator.rb b/spec/fabricators/follow_recommendation_suppression_fabricator.rb index 4a6a07a66c..6477baee11 100644 --- a/spec/fabricators/follow_recommendation_suppression_fabricator.rb +++ b/spec/fabricators/follow_recommendation_suppression_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:follow_recommendation_suppression) do account end diff --git a/spec/fabricators/follow_request_fabricator.rb b/spec/fabricators/follow_request_fabricator.rb index c00ddf84d9..86b82611f7 100644 --- a/spec/fabricators/follow_request_fabricator.rb +++ b/spec/fabricators/follow_request_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:follow_request) do account target_account { Fabricate(:account, locked: true) } diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb index fcfb15518f..b830101117 100644 --- a/spec/fabricators/identity_fabricator.rb +++ b/spec/fabricators/identity_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:identity) do user nil provider 'MyString' diff --git a/spec/fabricators/import_fabricator.rb b/spec/fabricators/import_fabricator.rb index e2eb1e0dfb..11602f407f 100644 --- a/spec/fabricators/import_fabricator.rb +++ b/spec/fabricators/import_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator(:import) do end diff --git a/spec/fabricators/invite_fabricator.rb b/spec/fabricators/invite_fabricator.rb index 62b9b3904a..4f47d6ce2f 100644 --- a/spec/fabricators/invite_fabricator.rb +++ b/spec/fabricators/invite_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:invite) do user expires_at nil diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb index 5bd018f9c2..a5da3f7065 100644 --- a/spec/fabricators/ip_block_fabricator.rb +++ b/spec/fabricators/ip_block_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:ip_block) do ip '' severity '' diff --git a/spec/fabricators/list_account_fabricator.rb b/spec/fabricators/list_account_fabricator.rb index 30e4004aa5..b0af29e6fa 100644 --- a/spec/fabricators/list_account_fabricator.rb +++ b/spec/fabricators/list_account_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:list_account) do list nil account nil diff --git a/spec/fabricators/list_fabricator.rb b/spec/fabricators/list_fabricator.rb index 4ad29a386e..47af752b8c 100644 --- a/spec/fabricators/list_fabricator.rb +++ b/spec/fabricators/list_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:list) do account title 'MyString' diff --git a/spec/fabricators/login_activity_fabricator.rb b/spec/fabricators/login_activity_fabricator.rb index 686fd6483d..2b30658ff5 100644 --- a/spec/fabricators/login_activity_fabricator.rb +++ b/spec/fabricators/login_activity_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:login_activity) do user authentication_method 'password' diff --git a/spec/fabricators/marker_fabricator.rb b/spec/fabricators/marker_fabricator.rb index 0c94150e0d..561c2553ae 100644 --- a/spec/fabricators/marker_fabricator.rb +++ b/spec/fabricators/marker_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:marker) do user timeline 'home' diff --git a/spec/fabricators/media_attachment_fabricator.rb b/spec/fabricators/media_attachment_fabricator.rb index 651927c2dd..4a081dccbe 100644 --- a/spec/fabricators/media_attachment_fabricator.rb +++ b/spec/fabricators/media_attachment_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:media_attachment) do account diff --git a/spec/fabricators/mention_fabricator.rb b/spec/fabricators/mention_fabricator.rb index cb5fe4299a..5a83928275 100644 --- a/spec/fabricators/mention_fabricator.rb +++ b/spec/fabricators/mention_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:mention) do account status diff --git a/spec/fabricators/mute_fabricator.rb b/spec/fabricators/mute_fabricator.rb index 30d20e87e9..242ae2b08e 100644 --- a/spec/fabricators/mute_fabricator.rb +++ b/spec/fabricators/mute_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:mute) do account target_account { Fabricate(:account) } diff --git a/spec/fabricators/notification_fabricator.rb b/spec/fabricators/notification_fabricator.rb index 638844e0fc..959fda913b 100644 --- a/spec/fabricators/notification_fabricator.rb +++ b/spec/fabricators/notification_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:notification) do activity fabricator: [:mention, :status, :follow, :follow_request, :favourite].sample account diff --git a/spec/fabricators/one_time_key_fabricator.rb b/spec/fabricators/one_time_key_fabricator.rb index 8794baeb59..e317c28bd1 100644 --- a/spec/fabricators/one_time_key_fabricator.rb +++ b/spec/fabricators/one_time_key_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:one_time_key) do device key_id { Faker::Alphanumeric.alphanumeric(number: 10) } diff --git a/spec/fabricators/poll_fabricator.rb b/spec/fabricators/poll_fabricator.rb index 746610f7c6..19c3b1d164 100644 --- a/spec/fabricators/poll_fabricator.rb +++ b/spec/fabricators/poll_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:poll) do account status diff --git a/spec/fabricators/poll_vote_fabricator.rb b/spec/fabricators/poll_vote_fabricator.rb index c06e61f673..9099ae96fe 100644 --- a/spec/fabricators/poll_vote_fabricator.rb +++ b/spec/fabricators/poll_vote_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:poll_vote) do account poll diff --git a/spec/fabricators/preview_card_fabricator.rb b/spec/fabricators/preview_card_fabricator.rb index 99b5edc435..b8f2c50972 100644 --- a/spec/fabricators/preview_card_fabricator.rb +++ b/spec/fabricators/preview_card_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:preview_card) do url { Faker::Internet.url } title { Faker::Lorem.sentence } diff --git a/spec/fabricators/relay_fabricator.rb b/spec/fabricators/relay_fabricator.rb index d6255866cf..ad8ba86fcf 100644 --- a/spec/fabricators/relay_fabricator.rb +++ b/spec/fabricators/relay_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:relay) do inbox_url 'https://example.com/inbox' state :idle diff --git a/spec/fabricators/report_fabricator.rb b/spec/fabricators/report_fabricator.rb index 3011c49c6f..7124773ad0 100644 --- a/spec/fabricators/report_fabricator.rb +++ b/spec/fabricators/report_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:report) do account target_account { Fabricate(:account) } diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb index 33f3840746..f257fe2b7d 100644 --- a/spec/fabricators/report_note_fabricator.rb +++ b/spec/fabricators/report_note_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:report_note) do report account { Fabricate(:account) } diff --git a/spec/fabricators/rule_fabricator.rb b/spec/fabricators/rule_fabricator.rb index bc29bc48e1..a29fd905a4 100644 --- a/spec/fabricators/rule_fabricator.rb +++ b/spec/fabricators/rule_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:rule) do priority 0 deleted_at nil diff --git a/spec/fabricators/scheduled_status_fabricator.rb b/spec/fabricators/scheduled_status_fabricator.rb index 52384d1378..e517f258a2 100644 --- a/spec/fabricators/scheduled_status_fabricator.rb +++ b/spec/fabricators/scheduled_status_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:scheduled_status) do account scheduled_at { 20.hours.from_now } diff --git a/spec/fabricators/session_activation_fabricator.rb b/spec/fabricators/session_activation_fabricator.rb index a7fc3b017d..b28d5e41d7 100644 --- a/spec/fabricators/session_activation_fabricator.rb +++ b/spec/fabricators/session_activation_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:session_activation) do user session_id 'MyString' diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb index 2efc57e280..b6841dea3c 100644 --- a/spec/fabricators/site_upload_fabricator.rb +++ b/spec/fabricators/site_upload_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:site_upload) do file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) } end diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb index 0e5796b232..33735a4592 100644 --- a/spec/fabricators/status_edit_fabricator.rb +++ b/spec/fabricators/status_edit_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:status_edit) do status nil account nil diff --git a/spec/fabricators/status_fabricator.rb b/spec/fabricators/status_fabricator.rb index 8a0a8aa557..17ac9ccd8a 100644 --- a/spec/fabricators/status_fabricator.rb +++ b/spec/fabricators/status_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:status) do account text 'Lorem ipsum dolor sit amet' diff --git a/spec/fabricators/status_pin_fabricator.rb b/spec/fabricators/status_pin_fabricator.rb index f1f1c05f38..9ad0ac9de3 100644 --- a/spec/fabricators/status_pin_fabricator.rb +++ b/spec/fabricators/status_pin_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:status_pin) do account status { |attrs| Fabricate(:status, account: attrs[:account], visibility: :public) } diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb index feba9fbcab..8a358c51a9 100644 --- a/spec/fabricators/status_stat_fabricator.rb +++ b/spec/fabricators/status_stat_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:status_stat) do status_id nil replies_count '' diff --git a/spec/fabricators/system_key_fabricator.rb b/spec/fabricators/system_key_fabricator.rb index c744bb2867..ef6cec9c40 100644 --- a/spec/fabricators/system_key_fabricator.rb +++ b/spec/fabricators/system_key_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator(:system_key) do end diff --git a/spec/fabricators/tag_fabricator.rb b/spec/fabricators/tag_fabricator.rb index 33d57c9281..a7b52e9671 100644 --- a/spec/fabricators/tag_fabricator.rb +++ b/spec/fabricators/tag_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:tag) do name { sequence(:hashtag) { |i| "#{Faker::Lorem.word}#{i}" } } end diff --git a/spec/fabricators/tag_follow_fabricator.rb b/spec/fabricators/tag_follow_fabricator.rb index a2cccb07a8..cbe5b09898 100644 --- a/spec/fabricators/tag_follow_fabricator.rb +++ b/spec/fabricators/tag_follow_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:tag_follow) do tag account diff --git a/spec/fabricators/unavailable_domain_fabricator.rb b/spec/fabricators/unavailable_domain_fabricator.rb index f661b87c4a..300a9e7a14 100644 --- a/spec/fabricators/unavailable_domain_fabricator.rb +++ b/spec/fabricators/unavailable_domain_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:unavailable_domain) do domain { Faker::Internet.domain } end diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb index 93ce07a74d..967347319c 100644 --- a/spec/fabricators/user_fabricator.rb +++ b/spec/fabricators/user_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:user) do account { Fabricate.build(:account, user: nil) } email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } } diff --git a/spec/fabricators/user_invite_request_fabricator.rb b/spec/fabricators/user_invite_request_fabricator.rb index 5cc6ae56fe..7736263e45 100644 --- a/spec/fabricators/user_invite_request_fabricator.rb +++ b/spec/fabricators/user_invite_request_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:user_invite_request) do user text { Faker::Lorem.sentence } diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb index 592b4edcaa..d443227605 100644 --- a/spec/fabricators/user_role_fabricator.rb +++ b/spec/fabricators/user_role_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:user_role) do name 'MyString' color '' diff --git a/spec/fabricators/web_push_subscription_fabricator.rb b/spec/fabricators/web_push_subscription_fabricator.rb index 97f90675de..baffdbf83e 100644 --- a/spec/fabricators/web_push_subscription_fabricator.rb +++ b/spec/fabricators/web_push_subscription_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:web_push_subscription, from: Web::PushSubscription) do endpoint Faker::Internet.url key_p256dh Faker::Internet.password diff --git a/spec/fabricators/web_setting_fabricator.rb b/spec/fabricators/web_setting_fabricator.rb index 369b86bc18..7c9f300798 100644 --- a/spec/fabricators/web_setting_fabricator.rb +++ b/spec/fabricators/web_setting_fabricator.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + Fabricator(:web_setting, from: Web::Setting) do end diff --git a/spec/fabricators/webauthn_credential_fabricator.rb b/spec/fabricators/webauthn_credential_fabricator.rb index ba59ce9677..b578d55f00 100644 --- a/spec/fabricators/webauthn_credential_fabricator.rb +++ b/spec/fabricators/webauthn_credential_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:webauthn_credential) do user_id { Fabricate(:user).id } external_id { Base64.urlsafe_encode64(SecureRandom.random_bytes(16)) } diff --git a/spec/fabricators/webhook_fabricator.rb b/spec/fabricators/webhook_fabricator.rb index fa4f17b554..477e715efa 100644 --- a/spec/fabricators/webhook_fabricator.rb +++ b/spec/fabricators/webhook_fabricator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Fabricator(:webhook) do url { Faker::Internet.url } secret { SecureRandom.hex } diff --git a/spec/helpers/accounts_helper_spec.rb b/spec/helpers/accounts_helper_spec.rb index 1f412a39ff..184b47dec6 100644 --- a/spec/helpers/accounts_helper_spec.rb +++ b/spec/helpers/accounts_helper_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountsHelper, type: :helper do diff --git a/spec/helpers/admin/filter_helper_spec.rb b/spec/helpers/admin/filter_helper_spec.rb index 9d4ea28294..bbf90a9969 100644 --- a/spec/helpers/admin/filter_helper_spec.rb +++ b/spec/helpers/admin/filter_helper_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Admin::FilterHelper do diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index e0f71afd53..2db2ee288e 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ApplicationHelper do diff --git a/spec/helpers/home_helper_spec.rb b/spec/helpers/home_helper_spec.rb index a3dc6f836f..77db327c2d 100644 --- a/spec/helpers/home_helper_spec.rb +++ b/spec/helpers/home_helper_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe HomeHelper, type: :helper do diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb index cba659bfb5..ce2a4680e0 100644 --- a/spec/helpers/statuses_helper_spec.rb +++ b/spec/helpers/statuses_helper_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusesHelper, type: :helper do diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb index 95a5a8747d..890a07be54 100644 --- a/spec/lib/activitypub/activity/accept_spec.rb +++ b/spec/lib/activitypub/activity/accept_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Accept do diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index a69c3d2b19..9c45e465e4 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Add do diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index b3257e881f..394b1d7b93 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Announce do diff --git a/spec/lib/activitypub/activity/block_spec.rb b/spec/lib/activitypub/activity/block_spec.rb index 42bdfdc810..6f68984018 100644 --- a/spec/lib/activitypub/activity/block_spec.rb +++ b/spec/lib/activitypub/activity/block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Block do diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index fd49830374..933eff2256 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Create do diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb index 40cd0fce95..3a73b3726c 100644 --- a/spec/lib/activitypub/activity/delete_spec.rb +++ b/spec/lib/activitypub/activity/delete_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Delete do diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb index c2a5053567..005e185e6b 100644 --- a/spec/lib/activitypub/activity/flag_spec.rb +++ b/spec/lib/activitypub/activity/flag_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Flag do diff --git a/spec/lib/activitypub/activity/follow_spec.rb b/spec/lib/activitypub/activity/follow_spec.rb index fd4ede82b7..eb8b17d615 100644 --- a/spec/lib/activitypub/activity/follow_spec.rb +++ b/spec/lib/activitypub/activity/follow_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Follow do diff --git a/spec/lib/activitypub/activity/like_spec.rb b/spec/lib/activitypub/activity/like_spec.rb index b69615a9d1..640d61ab36 100644 --- a/spec/lib/activitypub/activity/like_spec.rb +++ b/spec/lib/activitypub/activity/like_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Like do diff --git a/spec/lib/activitypub/activity/move_spec.rb b/spec/lib/activitypub/activity/move_spec.rb index c468fdeffc..8bd23aa7bf 100644 --- a/spec/lib/activitypub/activity/move_spec.rb +++ b/spec/lib/activitypub/activity/move_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Move do diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb index 7f04db4e61..5e0f09bfe8 100644 --- a/spec/lib/activitypub/activity/reject_spec.rb +++ b/spec/lib/activitypub/activity/reject_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Reject do diff --git a/spec/lib/activitypub/activity/remove_spec.rb b/spec/lib/activitypub/activity/remove_spec.rb index 4209dfde20..fc12aec8c1 100644 --- a/spec/lib/activitypub/activity/remove_spec.rb +++ b/spec/lib/activitypub/activity/remove_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Remove do diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb index 0bd1f17d35..b4cbc71963 100644 --- a/spec/lib/activitypub/activity/undo_spec.rb +++ b/spec/lib/activitypub/activity/undo_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Undo do diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb index d2a1edd7a0..f77279c028 100644 --- a/spec/lib/activitypub/activity/update_spec.rb +++ b/spec/lib/activitypub/activity/update_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Activity::Update do diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb index e4c403abb9..b981ea9c68 100644 --- a/spec/lib/activitypub/adapter_spec.rb +++ b/spec/lib/activitypub/adapter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Adapter do diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb index 800473a7ca..11078de866 100644 --- a/spec/lib/activitypub/dereferencer_spec.rb +++ b/spec/lib/activitypub/dereferencer_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::Dereferencer do diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb index ecb1e16db7..619d6df124 100644 --- a/spec/lib/activitypub/linked_data_signature_spec.rb +++ b/spec/lib/activitypub/linked_data_signature_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::LinkedDataSignature do diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb index 606a1de2e5..596e91e954 100644 --- a/spec/lib/activitypub/tag_manager_spec.rb +++ b/spec/lib/activitypub/tag_manager_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::TagManager do diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb index c6fe8cf377..b73d5be4b9 100644 --- a/spec/lib/emoji_formatter_spec.rb +++ b/spec/lib/emoji_formatter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe EmojiFormatter do diff --git a/spec/lib/entity_cache_spec.rb b/spec/lib/entity_cache_spec.rb index bd622e626f..c750cddf3c 100644 --- a/spec/lib/entity_cache_spec.rb +++ b/spec/lib/entity_cache_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe EntityCache do diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index d54050f8f7..418bdf0898 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FeedManager do diff --git a/spec/lib/html_aware_formatter_spec.rb b/spec/lib/html_aware_formatter_spec.rb index 3d3149b8ff..315035957b 100644 --- a/spec/lib/html_aware_formatter_spec.rb +++ b/spec/lib/html_aware_formatter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe HtmlAwareFormatter do diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index fcc2654744..a46dd743a9 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe LinkDetailsExtractor do diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb index 0e5f39031d..4a0519aaf6 100644 --- a/spec/lib/plain_text_formatter_spec.rb +++ b/spec/lib/plain_text_formatter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PlainTextFormatter do diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb index 05aadfd8fa..c61b1ef1e6 100644 --- a/spec/lib/suspicious_sign_in_detector_spec.rb +++ b/spec/lib/suspicious_sign_in_detector_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe SuspiciousSignInDetector do diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb index d2bb24c0f1..8de2905414 100644 --- a/spec/lib/tag_manager_spec.rb +++ b/spec/lib/tag_manager_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe TagManager do diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb index 04ae4e02c0..3417b450c6 100644 --- a/spec/lib/text_formatter_spec.rb +++ b/spec/lib/text_formatter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe TextFormatter do diff --git a/spec/lib/vacuum/access_tokens_vacuum_spec.rb b/spec/lib/vacuum/access_tokens_vacuum_spec.rb index 0244c34492..6b72340655 100644 --- a/spec/lib/vacuum/access_tokens_vacuum_spec.rb +++ b/spec/lib/vacuum/access_tokens_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::AccessTokensVacuum do diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb index c505a3e1ae..867dbe4020 100644 --- a/spec/lib/vacuum/backups_vacuum_spec.rb +++ b/spec/lib/vacuum/backups_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::BackupsVacuum do diff --git a/spec/lib/vacuum/feeds_vacuum_spec.rb b/spec/lib/vacuum/feeds_vacuum_spec.rb index 0aec26740f..ede1e3c360 100644 --- a/spec/lib/vacuum/feeds_vacuum_spec.rb +++ b/spec/lib/vacuum/feeds_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::FeedsVacuum do diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb index afcb6f878a..3c17ecb000 100644 --- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb +++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::MediaAttachmentsVacuum do diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb index 524f4c9274..c1b7f7e9c5 100644 --- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb +++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::PreviewCardsVacuum do diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb index 9583376b72..d5c0139506 100644 --- a/spec/lib/vacuum/statuses_vacuum_spec.rb +++ b/spec/lib/vacuum/statuses_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::StatusesVacuum do diff --git a/spec/lib/vacuum/system_keys_vacuum_spec.rb b/spec/lib/vacuum/system_keys_vacuum_spec.rb index 565892f025..84cae30411 100644 --- a/spec/lib/vacuum/system_keys_vacuum_spec.rb +++ b/spec/lib/vacuum/system_keys_vacuum_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Vacuum::SystemKeysVacuum do diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb index ee007da70a..8ec6dd205e 100644 --- a/spec/lib/webfinger_resource_spec.rb +++ b/spec/lib/webfinger_resource_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe WebfingerResource do diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb index 6746871a3d..a6db08d850 100644 --- a/spec/mailers/notification_mailer_spec.rb +++ b/spec/mailers/notification_mailer_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe NotificationMailer, type: :mailer do diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb index 0ec9e9882c..9572768cd7 100644 --- a/spec/mailers/previews/admin_mailer_preview.rb +++ b/spec/mailers/previews/admin_mailer_preview.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Preview all emails at http://localhost:3000/rails/mailers/admin_mailer class AdminMailerPreview < ActionMailer::Preview diff --git a/spec/mailers/previews/notification_mailer_preview.rb b/spec/mailers/previews/notification_mailer_preview.rb index e31445c365..bc41662a16 100644 --- a/spec/mailers/previews/notification_mailer_preview.rb +++ b/spec/mailers/previews/notification_mailer_preview.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Preview all emails at http://localhost:3000/rails/mailers/notification_mailer class NotificationMailerPreview < ActionMailer::Preview diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb index 95712e6cf4..098c9cd901 100644 --- a/spec/mailers/previews/user_mailer_preview.rb +++ b/spec/mailers/previews/user_mailer_preview.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Preview all emails at http://localhost:3000/rails/mailers/user_mailer class UserMailerPreview < ActionMailer::Preview diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb index 36e1a8595a..6745fbb261 100644 --- a/spec/models/account/field_spec.rb +++ b/spec/models/account/field_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Account::Field, type: :model do diff --git a/spec/models/account_alias_spec.rb b/spec/models/account_alias_spec.rb index c48b804b27..08c3eaff43 100644 --- a/spec/models/account_alias_spec.rb +++ b/spec/models/account_alias_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountAlias, type: :model do diff --git a/spec/models/account_conversation_spec.rb b/spec/models/account_conversation_spec.rb index 70a76281ef..c4e8918ad2 100644 --- a/spec/models/account_conversation_spec.rb +++ b/spec/models/account_conversation_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountConversation, type: :model do diff --git a/spec/models/account_deletion_request_spec.rb b/spec/models/account_deletion_request_spec.rb index afaecbe228..db332f14cb 100644 --- a/spec/models/account_deletion_request_spec.rb +++ b/spec/models/account_deletion_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountDeletionRequest, type: :model do diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb index a170abcd27..bc46f44ba7 100644 --- a/spec/models/account_domain_block_spec.rb +++ b/spec/models/account_domain_block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountDomainBlock, type: :model do diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb index c2bd8c2202..853d20a0cb 100644 --- a/spec/models/account_filter_spec.rb +++ b/spec/models/account_filter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe AccountFilter do diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb index 5f66fe8da3..a91ba5dc56 100644 --- a/spec/models/account_migration_spec.rb +++ b/spec/models/account_migration_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountMigration, type: :model do diff --git a/spec/models/account_moderation_note_spec.rb b/spec/models/account_moderation_note_spec.rb index 69bd5500a5..b7f5701e6a 100644 --- a/spec/models/account_moderation_note_spec.rb +++ b/spec/models/account_moderation_note_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountModerationNote, type: :model do diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index f3ad198777..1e5a80963f 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Account, type: :model do diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb index d170050fc5..1b7857547b 100644 --- a/spec/models/account_statuses_cleanup_policy_spec.rb +++ b/spec/models/account_statuses_cleanup_policy_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountStatusesCleanupPolicy, type: :model do diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb index 7248356e53..9f41b7c8e5 100644 --- a/spec/models/admin/account_action_spec.rb +++ b/spec/models/admin/account_action_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Admin::AccountAction, type: :model do diff --git a/spec/models/announcement_mute_spec.rb b/spec/models/announcement_mute_spec.rb index 9d0e4c9037..f4a7a5dc97 100644 --- a/spec/models/announcement_mute_spec.rb +++ b/spec/models/announcement_mute_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AnnouncementMute, type: :model do diff --git a/spec/models/announcement_reaction_spec.rb b/spec/models/announcement_reaction_spec.rb index f6e1515840..38095b0154 100644 --- a/spec/models/announcement_reaction_spec.rb +++ b/spec/models/announcement_reaction_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AnnouncementReaction, type: :model do diff --git a/spec/models/announcement_spec.rb b/spec/models/announcement_spec.rb index 7f7b647a9e..024fa28880 100644 --- a/spec/models/announcement_spec.rb +++ b/spec/models/announcement_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Announcement, type: :model do diff --git a/spec/models/appeal_spec.rb b/spec/models/appeal_spec.rb index 14062dc4f4..6aa013aba9 100644 --- a/spec/models/appeal_spec.rb +++ b/spec/models/appeal_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Appeal, type: :model do diff --git a/spec/models/backup_spec.rb b/spec/models/backup_spec.rb index 45230986d7..239e7aef7b 100644 --- a/spec/models/backup_spec.rb +++ b/spec/models/backup_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Backup, type: :model do diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb index 1fd60c29d2..64c39fce60 100644 --- a/spec/models/block_spec.rb +++ b/spec/models/block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Block, type: :model do diff --git a/spec/models/canonical_email_block_spec.rb b/spec/models/canonical_email_block_spec.rb index 8e0050d65a..2b3fd6d6a7 100644 --- a/spec/models/canonical_email_block_spec.rb +++ b/spec/models/canonical_email_block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe CanonicalEmailBlock, type: :model do diff --git a/spec/models/concerns/account_counters_spec.rb b/spec/models/concerns/account_counters_spec.rb index 4350496e79..fb02d79f11 100644 --- a/spec/models/concerns/account_counters_spec.rb +++ b/spec/models/concerns/account_counters_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe AccountCounters do diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb index 50ff0b149a..7396af6dfa 100644 --- a/spec/models/concerns/account_interactions_spec.rb +++ b/spec/models/concerns/account_interactions_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe AccountInteractions do diff --git a/spec/models/conversation_mute_spec.rb b/spec/models/conversation_mute_spec.rb index 3fc2915d4f..6439b0ecdf 100644 --- a/spec/models/conversation_mute_spec.rb +++ b/spec/models/conversation_mute_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ConversationMute, type: :model do diff --git a/spec/models/conversation_spec.rb b/spec/models/conversation_spec.rb index 8b5e4fdaf7..9d58ad0ac6 100644 --- a/spec/models/conversation_spec.rb +++ b/spec/models/conversation_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Conversation, type: :model do diff --git a/spec/models/custom_emoji_category_spec.rb b/spec/models/custom_emoji_category_spec.rb index 160033f4d4..74881b26c2 100644 --- a/spec/models/custom_emoji_category_spec.rb +++ b/spec/models/custom_emoji_category_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe CustomEmojiCategory, type: :model do diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb index f6fcd468bc..ef5f39aca4 100644 --- a/spec/models/custom_emoji_spec.rb +++ b/spec/models/custom_emoji_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe CustomEmoji, type: :model do diff --git a/spec/models/custom_filter_keyword_spec.rb b/spec/models/custom_filter_keyword_spec.rb index e15b9dad50..bbc4b9c2ee 100644 --- a/spec/models/custom_filter_keyword_spec.rb +++ b/spec/models/custom_filter_keyword_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe CustomFilterKeyword, type: :model do diff --git a/spec/models/custom_filter_spec.rb b/spec/models/custom_filter_spec.rb index 3943dd5f1a..d2bc090ab0 100644 --- a/spec/models/custom_filter_spec.rb +++ b/spec/models/custom_filter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe CustomFilter, type: :model do diff --git a/spec/models/device_spec.rb b/spec/models/device_spec.rb index 307552e913..cb214b9cbc 100644 --- a/spec/models/device_spec.rb +++ b/spec/models/device_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Device, type: :model do diff --git a/spec/models/domain_allow_spec.rb b/spec/models/domain_allow_spec.rb index e65435127d..18cf5fe4c7 100644 --- a/spec/models/domain_allow_spec.rb +++ b/spec/models/domain_allow_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe DomainAllow, type: :model do diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb index d1d57c1677..6a5925b896 100644 --- a/spec/models/domain_block_spec.rb +++ b/spec/models/domain_block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe DomainBlock, type: :model do diff --git a/spec/models/email_domain_block_spec.rb b/spec/models/email_domain_block_spec.rb index e23116888c..01a7a0f0ed 100644 --- a/spec/models/email_domain_block_spec.rb +++ b/spec/models/email_domain_block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe EmailDomainBlock, type: :model do diff --git a/spec/models/encrypted_message_spec.rb b/spec/models/encrypted_message_spec.rb index 64f9c6912a..bf7a406ffd 100644 --- a/spec/models/encrypted_message_spec.rb +++ b/spec/models/encrypted_message_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe EncryptedMessage, type: :model do diff --git a/spec/models/export_spec.rb b/spec/models/export_spec.rb index 5202ae9e17..3fb5fc3a5b 100644 --- a/spec/models/export_spec.rb +++ b/spec/models/export_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Export do diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb index f755590ee5..f7e2812a6c 100644 --- a/spec/models/favourite_spec.rb +++ b/spec/models/favourite_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Favourite, type: :model do diff --git a/spec/models/featured_tag_spec.rb b/spec/models/featured_tag_spec.rb index 07533e0b90..4bf087c828 100644 --- a/spec/models/featured_tag_spec.rb +++ b/spec/models/featured_tag_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FeaturedTag, type: :model do diff --git a/spec/models/follow_recommendation_suppression_spec.rb b/spec/models/follow_recommendation_suppression_spec.rb index 39107a2b04..4c1d8281b2 100644 --- a/spec/models/follow_recommendation_suppression_spec.rb +++ b/spec/models/follow_recommendation_suppression_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FollowRecommendationSuppression, type: :model do diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb index 901eabc9df..569c160aeb 100644 --- a/spec/models/follow_request_spec.rb +++ b/spec/models/follow_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FollowRequest, type: :model do diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb index e723a1ef21..f49d585329 100644 --- a/spec/models/follow_spec.rb +++ b/spec/models/follow_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Follow, type: :model do diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb index 196bef1e49..d7034f3f0b 100644 --- a/spec/models/home_feed_spec.rb +++ b/spec/models/home_feed_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe HomeFeed, type: :model do diff --git a/spec/models/identity_spec.rb b/spec/models/identity_spec.rb index 689c9b797f..6eab5a2e18 100644 --- a/spec/models/identity_spec.rb +++ b/spec/models/identity_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Identity, type: :model do diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index 4280b3237a..81c75a9641 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Import, type: :model do diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb index b0596c5612..dac4b6431b 100644 --- a/spec/models/invite_spec.rb +++ b/spec/models/invite_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Invite, type: :model do diff --git a/spec/models/ip_block_spec.rb b/spec/models/ip_block_spec.rb index 6603c6417a..4c4028576a 100644 --- a/spec/models/ip_block_spec.rb +++ b/spec/models/ip_block_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe IpBlock, type: :model do diff --git a/spec/models/list_account_spec.rb b/spec/models/list_account_spec.rb index a0cf02efe2..8312defaca 100644 --- a/spec/models/list_account_spec.rb +++ b/spec/models/list_account_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ListAccount, type: :model do diff --git a/spec/models/list_spec.rb b/spec/models/list_spec.rb index b780bb1de0..8167f8a7ec 100644 --- a/spec/models/list_spec.rb +++ b/spec/models/list_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe List, type: :model do diff --git a/spec/models/login_activity_spec.rb b/spec/models/login_activity_spec.rb index 12d8c43638..1c3111a20d 100644 --- a/spec/models/login_activity_spec.rb +++ b/spec/models/login_activity_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe LoginActivity, type: :model do diff --git a/spec/models/marker_spec.rb b/spec/models/marker_spec.rb index d716aa75c2..e8561c4c63 100644 --- a/spec/models/marker_spec.rb +++ b/spec/models/marker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Marker, type: :model do diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 097c76f311..63edfc1524 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe MediaAttachment, type: :model do diff --git a/spec/models/mention_spec.rb b/spec/models/mention_spec.rb index dbcf6a32c1..3de2b4a072 100644 --- a/spec/models/mention_spec.rb +++ b/spec/models/mention_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Mention, type: :model do diff --git a/spec/models/mute_spec.rb b/spec/models/mute_spec.rb index 38a87bdf4a..48b5a37ab9 100644 --- a/spec/models/mute_spec.rb +++ b/spec/models/mute_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Mute, type: :model do diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb index a8fb776390..64527e3d77 100644 --- a/spec/models/notification_spec.rb +++ b/spec/models/notification_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Notification, type: :model do diff --git a/spec/models/one_time_key_spec.rb b/spec/models/one_time_key_spec.rb index 4b231c600c..2a5fe8a9d9 100644 --- a/spec/models/one_time_key_spec.rb +++ b/spec/models/one_time_key_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe OneTimeKey, type: :model do diff --git a/spec/models/poll_spec.rb b/spec/models/poll_spec.rb index 666f8ca683..474399bf68 100644 --- a/spec/models/poll_spec.rb +++ b/spec/models/poll_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Poll, type: :model do diff --git a/spec/models/preview_card_spec.rb b/spec/models/preview_card_spec.rb index 45233d1d4f..1858644c91 100644 --- a/spec/models/preview_card_spec.rb +++ b/spec/models/preview_card_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PreviewCard, type: :model do diff --git a/spec/models/preview_card_trend_spec.rb b/spec/models/preview_card_trend_spec.rb index c7ab6ed146..97ad05e754 100644 --- a/spec/models/preview_card_trend_spec.rb +++ b/spec/models/preview_card_trend_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PreviewCardTrend, type: :model do diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb index 59c81dd953..5653aee184 100644 --- a/spec/models/public_feed_spec.rb +++ b/spec/models/public_feed_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PublicFeed, type: :model do diff --git a/spec/models/relay_spec.rb b/spec/models/relay_spec.rb index 12dc0f20f6..86c1762c15 100644 --- a/spec/models/relay_spec.rb +++ b/spec/models/relay_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Relay, type: :model do diff --git a/spec/models/report_filter_spec.rb b/spec/models/report_filter_spec.rb index 099c0731d3..8269c45797 100644 --- a/spec/models/report_filter_spec.rb +++ b/spec/models/report_filter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ReportFilter do diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index 3178512974..d5d40a34f9 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Report do diff --git a/spec/models/rule_spec.rb b/spec/models/rule_spec.rb index 8666bda713..d5ec13ddf8 100644 --- a/spec/models/rule_spec.rb +++ b/spec/models/rule_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Rule, type: :model do diff --git a/spec/models/scheduled_status_spec.rb b/spec/models/scheduled_status_spec.rb index f8c9d8b81f..294fa9f36c 100644 --- a/spec/models/scheduled_status_spec.rb +++ b/spec/models/scheduled_status_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ScheduledStatus, type: :model do diff --git a/spec/models/status_edit_spec.rb b/spec/models/status_edit_spec.rb index 2ecafef734..0b9fa70873 100644 --- a/spec/models/status_edit_spec.rb +++ b/spec/models/status_edit_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusEdit, type: :model do diff --git a/spec/models/status_pin_spec.rb b/spec/models/status_pin_spec.rb index c18faca782..c4ebf96da9 100644 --- a/spec/models/status_pin_spec.rb +++ b/spec/models/status_pin_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusPin, type: :model do diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 442f14ddfa..1e58c6d0d1 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Status, type: :model do diff --git a/spec/models/status_stat_spec.rb b/spec/models/status_stat_spec.rb index af1a6f288b..749ca097d6 100644 --- a/spec/models/status_stat_spec.rb +++ b/spec/models/status_stat_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusStat, type: :model do diff --git a/spec/models/status_trend_spec.rb b/spec/models/status_trend_spec.rb index 6b82204a60..9678b838a7 100644 --- a/spec/models/status_trend_spec.rb +++ b/spec/models/status_trend_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe StatusTrend, type: :model do diff --git a/spec/models/system_key_spec.rb b/spec/models/system_key_spec.rb index 86f07f964d..a4e8b77844 100644 --- a/spec/models/system_key_spec.rb +++ b/spec/models/system_key_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe SystemKey, type: :model do diff --git a/spec/models/tag_feed_spec.rb b/spec/models/tag_feed_spec.rb index 819fe37657..a498bcf46f 100644 --- a/spec/models/tag_feed_spec.rb +++ b/spec/models/tag_feed_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe TagFeed, type: :service do diff --git a/spec/models/tag_follow_spec.rb b/spec/models/tag_follow_spec.rb index 50c04d2e46..88409bb28a 100644 --- a/spec/models/tag_follow_spec.rb +++ b/spec/models/tag_follow_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe TagFollow, type: :model do diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb index 98a8c7264d..29a20a5955 100644 --- a/spec/models/trends/statuses_spec.rb +++ b/spec/models/trends/statuses_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Trends::Statuses do diff --git a/spec/models/trends/tags_spec.rb b/spec/models/trends/tags_spec.rb index f48c735035..a9473e15c4 100644 --- a/spec/models/trends/tags_spec.rb +++ b/spec/models/trends/tags_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Trends::Tags do diff --git a/spec/models/unavailable_domain_spec.rb b/spec/models/unavailable_domain_spec.rb index 3f2621034c..5469ff6939 100644 --- a/spec/models/unavailable_domain_spec.rb +++ b/spec/models/unavailable_domain_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnavailableDomain, type: :model do diff --git a/spec/models/user_invite_request_spec.rb b/spec/models/user_invite_request_spec.rb index 1be38d8a47..95e1284399 100644 --- a/spec/models/user_invite_request_spec.rb +++ b/spec/models/user_invite_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UserInviteRequest, type: :model do diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index 52a8622f99..97456c1060 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UserRole, type: :model do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 9dfd6678ac..3e7b59f170 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' require 'devise_two_factor/spec_helpers' diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb index a5c34f4edc..e925e4c4cd 100644 --- a/spec/models/web/push_subscription_spec.rb +++ b/spec/models/web/push_subscription_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Web::PushSubscription, type: :model do diff --git a/spec/models/web/setting_spec.rb b/spec/models/web/setting_spec.rb index 6657d4030f..b7ff3c8684 100644 --- a/spec/models/web/setting_spec.rb +++ b/spec/models/web/setting_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Web::Setting, type: :model do diff --git a/spec/models/webauthn_credentials_spec.rb b/spec/models/webauthn_credentials_spec.rb index e070a6b60e..1a2a2f9099 100644 --- a/spec/models/webauthn_credentials_spec.rb +++ b/spec/models/webauthn_credentials_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe WebauthnCredential, type: :model do diff --git a/spec/models/webhook_spec.rb b/spec/models/webhook_spec.rb index 60c3d9524f..fcf3dd14ff 100644 --- a/spec/models/webhook_spec.rb +++ b/spec/models/webhook_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Webhook, type: :model do diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index a451b5cba4..29170a79ae 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe InstancePresenter do diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 9a14fc3b1d..faae02df03 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../config/environment', __dir__) diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb index dcfc1bf4bc..e600bedfe0 100644 --- a/spec/requests/catch_all_route_request_spec.rb +++ b/spec/requests/catch_all_route_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe 'The catch all route' do diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb index 60153ba8c9..ec26ecba7d 100644 --- a/spec/requests/host_meta_request_spec.rb +++ b/spec/requests/host_meta_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe 'The host_meta route' do diff --git a/spec/requests/webfinger_request_spec.rb b/spec/requests/webfinger_request_spec.rb index 209fda72aa..68a1478bed 100644 --- a/spec/requests/webfinger_request_spec.rb +++ b/spec/requests/webfinger_request_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe 'The webfinger route' do diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb index 3f0e9b3e95..8b2c124fd2 100644 --- a/spec/routing/accounts_routing_spec.rb +++ b/spec/routing/accounts_routing_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe 'Routes under accounts/' do diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb index 7474633515..8cf08c13c1 100644 --- a/spec/routing/well_known_routes_spec.rb +++ b/spec/routing/well_known_routes_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe 'Well Known routes' do diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb index 45e19d1ef7..bb819bb6c0 100644 --- a/spec/services/account_search_service_spec.rb +++ b/spec/services/account_search_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe AccountSearchService, type: :service do diff --git a/spec/services/account_statuses_cleanup_service_spec.rb b/spec/services/account_statuses_cleanup_service_spec.rb index a30e14ab6f..e83063f734 100644 --- a/spec/services/account_statuses_cleanup_service_spec.rb +++ b/spec/services/account_statuses_cleanup_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe AccountStatusesCleanupService, type: :service do diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb index d9266ffc2e..59d3325999 100644 --- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb index 4f828bacc6..071e4d92d5 100644 --- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb index ec6f1f41d8..868bc2a582 100644 --- a/spec/services/activitypub/fetch_remote_account_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb index 20117c66d0..a72c6941e9 100644 --- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb index 3186c4270d..0ec0c27362 100644 --- a/spec/services/activitypub/fetch_remote_key_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 6e47392b35..1c39db21fc 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb index 0231a5e9ab..bf8e296764 100644 --- a/spec/services/activitypub/fetch_replies_service_spec.rb +++ b/spec/services/activitypub/fetch_replies_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::FetchRepliesService, type: :service do diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 78282e4537..491b8ed5af 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::ProcessAccountService, type: :service do diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index c7d0bb92af..1433d0c505 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::ProcessCollectionService, type: :service do diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index c8aa56def1..e9f23b9cf2 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' def poll_option_json(name, votes) diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb index 0e829a3028..c9a513e24b 100644 --- a/spec/services/activitypub/synchronize_followers_service_spec.rb +++ b/spec/services/activitypub/synchronize_followers_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb index 9cca82bffa..b75f923729 100644 --- a/spec/services/after_block_domain_from_account_service_spec.rb +++ b/spec/services/after_block_domain_from_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AfterBlockDomainFromAccountService, type: :service do diff --git a/spec/services/after_block_service_spec.rb b/spec/services/after_block_service_spec.rb index 337766d066..d81bba1d8d 100644 --- a/spec/services/after_block_service_spec.rb +++ b/spec/services/after_block_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AfterBlockService, type: :service do diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb index 10da07dcfb..2532304964 100644 --- a/spec/services/app_sign_up_service_spec.rb +++ b/spec/services/app_sign_up_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AppSignUpService, type: :service do diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb index 8f8e44ec76..63d9e2a0f4 100644 --- a/spec/services/authorize_follow_service_spec.rb +++ b/spec/services/authorize_follow_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AuthorizeFollowService, type: :service do diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb index 920edeb13e..9bedf37444 100644 --- a/spec/services/batched_remove_status_service_spec.rb +++ b/spec/services/batched_remove_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe BatchedRemoveStatusService, type: :service do diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb index 56b3a5ad1c..0ab97b8ce9 100644 --- a/spec/services/block_domain_service_spec.rb +++ b/spec/services/block_domain_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe BlockDomainService, type: :service do diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb index 049644dbc0..75f07f5adf 100644 --- a/spec/services/block_service_spec.rb +++ b/spec/services/block_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe BlockService, type: :service do diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb index 149f6e6dfc..670ac652fb 100644 --- a/spec/services/bootstrap_timeline_service_spec.rb +++ b/spec/services/bootstrap_timeline_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe BootstrapTimelineService, type: :service do diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb index 993ba789ea..9875075796 100644 --- a/spec/services/clear_domain_media_service_spec.rb +++ b/spec/services/clear_domain_media_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ClearDomainMediaService, type: :service do diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb index e5bfdd679f..61e5c3c9b6 100644 --- a/spec/services/delete_account_service_spec.rb +++ b/spec/services/delete_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe DeleteAccountService, type: :service do diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb index d09750dd23..3b554f9ea3 100644 --- a/spec/services/fan_out_on_write_service_spec.rb +++ b/spec/services/fan_out_on_write_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FanOutOnWriteService, type: :service do diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb index 4f621200a2..613ae203ed 100644 --- a/spec/services/favourite_service_spec.rb +++ b/spec/services/favourite_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FavouriteService, type: :service do diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb index 458473c39e..d79ab7a433 100644 --- a/spec/services/fetch_link_card_service_spec.rb +++ b/spec/services/fetch_link_card_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FetchLinkCardService, type: :service do diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index ace520b8fc..694a75dc29 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FetchRemoteStatusService, type: :service do diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 226c98d70a..da7e423517 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FetchResourceService, type: :service do diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb index f95d594409..67a8b2c54e 100644 --- a/spec/services/follow_service_spec.rb +++ b/spec/services/follow_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe FollowService, type: :service do diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 4a517fb933..f081f2d9dc 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ImportService, type: :service do diff --git a/spec/services/mute_service_spec.rb b/spec/services/mute_service_spec.rb index 57d8c41dec..50f74ff277 100644 --- a/spec/services/mute_service_spec.rb +++ b/spec/services/mute_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe MuteService, type: :service do diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb index 294c31b044..c58cebbfb8 100644 --- a/spec/services/notify_service_spec.rb +++ b/spec/services/notify_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe NotifyService, type: :service do diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index c34f2393a1..33153c3d07 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PostStatusService, type: :service do diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index 79ccfa3229..adc45c60af 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ProcessMentionsService, type: :service do diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb index 7d8969ee89..310affa5e3 100644 --- a/spec/services/purge_domain_service_spec.rb +++ b/spec/services/purge_domain_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PurgeDomainService, type: :service do diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb index e2ac0154ce..c004722295 100644 --- a/spec/services/reblog_service_spec.rb +++ b/spec/services/reblog_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ReblogService, type: :service do diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb index 97b7412b92..be9363d846 100644 --- a/spec/services/reject_follow_service_spec.rb +++ b/spec/services/reject_follow_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe RejectFollowService, type: :service do diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb index 782f859e29..21cea2e4f8 100644 --- a/spec/services/remove_from_follwers_service_spec.rb +++ b/spec/services/remove_from_follwers_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe RemoveFromFollowersService, type: :service do diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb index e253052f36..a836109a0d 100644 --- a/spec/services/remove_status_service_spec.rb +++ b/spec/services/remove_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe RemoveStatusService, type: :service do diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index c3a3fddf8a..9d81bd9714 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ReportService, type: :service do diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index 02869f8c8c..3ce1f7f2ba 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe ResolveAccountService, type: :service do diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb index 5701090b33..4489bfed57 100644 --- a/spec/services/suspend_account_service_spec.rb +++ b/spec/services/suspend_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe SuspendAccountService, type: :service do diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb index ae7d00c7d3..48e310a9d1 100644 --- a/spec/services/unallow_domain_service_spec.rb +++ b/spec/services/unallow_domain_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnallowDomainService, type: :service do diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb index bd24005f66..8098d7e6d0 100644 --- a/spec/services/unblock_service_spec.rb +++ b/spec/services/unblock_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnblockService, type: :service do diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb index 55969bef93..a12f01fa5d 100644 --- a/spec/services/unfollow_service_spec.rb +++ b/spec/services/unfollow_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnfollowService, type: :service do diff --git a/spec/services/unmute_service_spec.rb b/spec/services/unmute_service_spec.rb index 8463eb283f..2edb6cfc28 100644 --- a/spec/services/unmute_service_spec.rb +++ b/spec/services/unmute_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnmuteService, type: :service do diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb index 6675074690..5d70120935 100644 --- a/spec/services/unsuspend_account_service_spec.rb +++ b/spec/services/unsuspend_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UnsuspendAccountService, type: :service do diff --git a/spec/services/update_account_service_spec.rb b/spec/services/update_account_service_spec.rb index c2dc791e4d..a711a8ae73 100644 --- a/spec/services/update_account_service_spec.rb +++ b/spec/services/update_account_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UpdateAccountService, type: :service do diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb index a7364ca8b0..e52a0e52be 100644 --- a/spec/services/update_status_service_spec.rb +++ b/spec/services/update_status_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe UpdateStatusService, type: :service do diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb index 8f65f3a846..ea9ccc3fc7 100644 --- a/spec/services/verify_link_service_spec.rb +++ b/spec/services/verify_link_service_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe VerifyLinkService, type: :service do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 97b8d83c57..ddc872fc84 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + GC.disable if ENV['DISABLE_SIMPLECOV'] != 'true' diff --git a/spec/support/matchers/json/match_json_schema.rb b/spec/support/matchers/json/match_json_schema.rb index 5d9c9a618e..3a275199ef 100644 --- a/spec/support/matchers/json/match_json_schema.rb +++ b/spec/support/matchers/json/match_json_schema.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + RSpec::Matchers.define :match_json_schema do |schema| match do |input_json| schema_path = Rails.root.join('spec', 'support', 'schema', "#{schema}.json").to_s diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb index d85db2fcad..21632b5748 100644 --- a/spec/support/matchers/model/model_have_error_on_field.rb +++ b/spec/support/matchers/model/model_have_error_on_field.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + RSpec::Matchers.define :model_have_error_on_field do |expected| match do |record| record.valid? if record.errors.empty? diff --git a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb index d68a695b78..947acab3bc 100644 --- a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb +++ b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::DistributePollUpdateWorker do diff --git a/spec/workers/activitypub/distribution_worker_spec.rb b/spec/workers/activitypub/distribution_worker_spec.rb index 7f63e197bf..06d6ac7383 100644 --- a/spec/workers/activitypub/distribution_worker_spec.rb +++ b/spec/workers/activitypub/distribution_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::DistributionWorker do diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb index 482fa9db44..4df6b2f161 100644 --- a/spec/workers/activitypub/move_distribution_worker_spec.rb +++ b/spec/workers/activitypub/move_distribution_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::MoveDistributionWorker do diff --git a/spec/workers/activitypub/processing_worker_spec.rb b/spec/workers/activitypub/processing_worker_spec.rb index b42c0bdbc9..6b57f16a92 100644 --- a/spec/workers/activitypub/processing_worker_spec.rb +++ b/spec/workers/activitypub/processing_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::ProcessingWorker do diff --git a/spec/workers/activitypub/status_update_distribution_worker_spec.rb b/spec/workers/activitypub/status_update_distribution_worker_spec.rb index c014c6790e..cf55a461d8 100644 --- a/spec/workers/activitypub/status_update_distribution_worker_spec.rb +++ b/spec/workers/activitypub/status_update_distribution_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::StatusUpdateDistributionWorker do diff --git a/spec/workers/activitypub/update_distribution_worker_spec.rb b/spec/workers/activitypub/update_distribution_worker_spec.rb index 0e057fd0bc..7b1e6ff543 100644 --- a/spec/workers/activitypub/update_distribution_worker_spec.rb +++ b/spec/workers/activitypub/update_distribution_worker_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe ActivityPub::UpdateDistributionWorker do diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index a5dfed369f..b977bc1fbc 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Scheduler::AccountsStatusesCleanupScheduler do diff --git a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb index da99f10f97..9909795008 100644 --- a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' describe Scheduler::UserCleanupScheduler do From 48aeab90f657055e5516b844f47fcf5c097458a1 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 21 Feb 2023 19:56:11 -0500 Subject: [PATCH 0532/1220] Ignore JSX files from Prettier (#23777) --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 15e5f59944..2ea4075333 100644 --- a/.prettierignore +++ b/.prettierignore @@ -69,6 +69,7 @@ app/javascript/styles/mastodon/reset.scss # Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631 *.js +*.jsx # Ignore HTML till cleaned and included in CI *.html From 8fd3fc404dd848253767252bbd76275e091832b1 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 21 Feb 2023 19:57:15 -0500 Subject: [PATCH 0533/1220] Autofix Rubocop Rails/RootPathnameMethods (#23760) --- .rubocop_todo.yml | 12 ------------ lib/mastodon/premailer_webpack_strategy.rb | 2 +- lib/tasks/emojis.rake | 2 +- lib/tasks/mastodon.rake | 2 +- lib/tasks/repo.rake | 6 +++--- spec/fabricators/custom_emoji_fabricator.rb | 2 +- spec/fabricators/site_upload_fabricator.rb | 2 +- spec/rails_helper.rb | 4 ++-- 8 files changed, 10 insertions(+), 22 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a72606b358..bbf01bacf9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1801,18 +1801,6 @@ Rails/ReversibleMigration: - 'db/migrate/20180617162849_remove_unused_indexes.rb' - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' -# Offense count: 10 -# This cop supports unsafe autocorrection (--autocorrect-all). -Rails/RootPathnameMethods: - Exclude: - - 'lib/mastodon/premailer_webpack_strategy.rb' - - 'lib/tasks/emojis.rake' - - 'lib/tasks/mastodon.rake' - - 'lib/tasks/repo.rake' - - 'spec/fabricators/custom_emoji_fabricator.rb' - - 'spec/fabricators/site_upload_fabricator.rb' - - 'spec/rails_helper.rb' - # Offense count: 141 # Configuration parameters: ForbiddenMethods, AllowedMethods. # ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb index 4356b7285a..5c297d4d05 100644 --- a/lib/mastodon/premailer_webpack_strategy.rb +++ b/lib/mastodon/premailer_webpack_strategy.rb @@ -13,7 +13,7 @@ module PremailerWebpackStrategy HTTP.get(url).to_s else url = url[1..-1] if url.start_with?('/') - File.read(Rails.public_path.join(url)) + Rails.public_path.join(url).read end css.gsub(/url\(\//, "url(#{asset_host}/") diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake index 02d772b488..c743f8a554 100644 --- a/lib/tasks/emojis.rake +++ b/lib/tasks/emojis.rake @@ -69,7 +69,7 @@ namespace :emojis do end end - existence_maps = grouped_codes.map { |c| c.index_with { |cc| File.exist?(Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg")) } } + existence_maps = grouped_codes.map { |c| c.index_with { |cc| Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg").exist? } } map = {} existence_maps.each do |group| diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 0a3946ac7d..6c0e669227 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -445,7 +445,7 @@ namespace :mastodon do generated_header << "# using docker-compose or not.\n\n" end - File.write(Rails.root.join('.env.production'), "#{generated_header}#{env_contents}\n") + Rails.root.join('.env.production').write("#{generated_header}#{env_contents}\n") if using_docker prompt.ok 'Below is your configuration, save it to an .env.production file outside Docker:' diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake index 795b54c59c..5d1b4f7544 100644 --- a/lib/tasks/repo.rake +++ b/lib/tasks/repo.rake @@ -5,7 +5,7 @@ REPOSITORY_NAME = 'mastodon/mastodon' namespace :repo do desc 'Generate the AUTHORS.md file' task :authors do - file = File.open(Rails.root.join('AUTHORS.md'), 'w') + file = Rails.root.join('AUTHORS.md').open('w') file << <<~HEADER Authors @@ -87,8 +87,8 @@ namespace :repo do task check_locales_files: :environment do pastel = Pastel.new - missing_yaml_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('config', 'locales', "#{locale}.yml")) } - missing_json_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json")) } + missing_yaml_files = I18n.available_locales.reject { |locale| Rails.root.join('config', 'locales', "#{locale}.yml").exist? } + missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? } locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path| file_name = File.basename(path) diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb index 298a50b4bf..fa570eec60 100644 --- a/spec/fabricators/custom_emoji_fabricator.rb +++ b/spec/fabricators/custom_emoji_fabricator.rb @@ -3,5 +3,5 @@ Fabricator(:custom_emoji) do shortcode 'coolcat' domain nil - image { File.open(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png')) } + image { Rails.root.join('spec', 'fixtures', 'files', 'emojo.png').open } end diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb index b6841dea3c..ad1b777cc4 100644 --- a/spec/fabricators/site_upload_fabricator.rb +++ b/spec/fabricators/site_upload_fabricator.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true Fabricator(:site_upload) do - file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) } + file { Rails.root.join('spec', 'fabricators', 'assets', 'utah_teapot.png').open } end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index faae02df03..70d3a968ca 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -73,11 +73,11 @@ end RSpec::Matchers.define_negated_matcher :not_change, :change def request_fixture(name) - File.read(Rails.root.join('spec', 'fixtures', 'requests', name)) + Rails.root.join('spec', 'fixtures', 'requests', name).read end def attachment_fixture(name) - File.open(Rails.root.join('spec', 'fixtures', 'files', name)) + Rails.root.join('spec', 'fixtures', 'files', name).open end def stub_jsonld_contexts! From 4ff44be1348136fa602318cca343e716fea0e556 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 21 Feb 2023 19:57:56 -0500 Subject: [PATCH 0534/1220] Autofix Rubocop Rails/Blank (#23765) --- .rubocop_todo.yml | 7 ------- app/services/activitypub/fetch_remote_actor_service.rb | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index bbf01bacf9..0bdf72084c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1485,13 +1485,6 @@ Rails/ApplicationController: - 'app/controllers/well_known/nodeinfo_controller.rb' - 'app/controllers/well_known/webfinger_controller.rb' -# Offense count: 1 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent. -Rails/Blank: - Exclude: - - 'app/services/activitypub/fetch_remote_actor_service.rb' - # Offense count: 35 # Configuration parameters: Database, Include. # SupportedDatabases: mysql, postgresql diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index ee0eaff08b..c295700860 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -28,7 +28,7 @@ class ActivityPub::FetchRemoteActorService < BaseService raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context? raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type? raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present? - raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" unless @json['preferredUsername'].present? + raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank? @uri = @json['id'] @username = @json['preferredUsername'] From 3ed1b9ebb60a50ea1cb6a229ab25d4e7d6b848c8 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 22 Feb 2023 10:28:52 +0100 Subject: [PATCH 0535/1220] Fix rack:attack flaky tests and test end of throttle period (#23799) --- spec/config/initializers/rack_attack_spec.rb | 27 +++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb index 2cfe90b1a5..cc931b21b3 100644 --- a/spec/config/initializers/rack_attack_spec.rb +++ b/spec/config/initializers/rack_attack_spec.rb @@ -10,6 +10,17 @@ describe Rack::Attack do end shared_examples 'throttled endpoint' do + before do + # Rack::Attack periods are not rolling, so avoid flaky tests by setting the time in a way + # to avoid crossing period boundaries. + + # The code Rack::Attack uses to set periods is the following: + # https://github.com/rack/rack-attack/blob/v6.6.1/lib/rack/attack/cache.rb#L64-L66 + # So we want to minimize `Time.now.to_i % period` + + travel_to Time.zone.at((Time.now.to_i / period.seconds).to_i * period.seconds) + end + context 'when the number of requests is lower than the limit' do it 'does not change the request status' do limit.times do @@ -20,11 +31,16 @@ describe Rack::Attack do end context 'when the number of requests is higher than the limit' do - it 'returns http too many requests' do + it 'returns http too many requests after limit and returns to normal status after period' do (limit * 2).times do |i| request.call expect(last_response.status).to eq(429) if i > limit end + + travel period + + request.call + expect(last_response.status).to_not eq(429) end end end @@ -33,7 +49,8 @@ describe Rack::Attack do describe 'throttle excessive sign-up requests by IP address' do context 'through the website' do - let(:limit) { 25 } + let(:limit) { 25 } + let(:period) { 5.minutes } let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do @@ -50,7 +67,8 @@ describe Rack::Attack do end context 'through the API' do - let(:limit) { 5 } + let(:limit) { 5 } + let(:period) { 30.minutes } let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do @@ -71,7 +89,8 @@ describe Rack::Attack do end describe 'throttle excessive sign-in requests by IP address' do - let(:limit) { 25 } + let(:limit) { 25 } + let(:period) { 5.minutes } let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } context 'for exact path' do From f682478de8b5a6e0b524bfca88f3469fd098d64c Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 22 Feb 2023 11:53:13 +0100 Subject: [PATCH 0536/1220] Fix inefficiency when searching accounts per username in admin interface (#23801) --- app/models/account.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/account.rb b/app/models/account.rb index 09c450f2ab..1ff083e54a 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -108,7 +108,7 @@ class Account < ApplicationRecord scope :bots, -> { where(actor_type: %w(Application Service)) } scope :groups, -> { where(actor_type: 'Group') } scope :alphabetic, -> { order(domain: :asc, username: :asc) } - scope :matches_username, ->(value) { where(arel_table[:username].matches("#{value}%")) } + scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") } scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } scope :without_unapproved, -> { left_outer_joins(:user).remote.or(left_outer_joins(:user).merge(User.approved.confirmed)) } From 25641171319a9cfde9b837d25bcab077b3d1da6a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 22 Feb 2023 13:16:02 +0100 Subject: [PATCH 0537/1220] New Crowdin updates (#23625) Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ast.json | 30 +- app/javascript/mastodon/locales/be.json | 4 +- app/javascript/mastodon/locales/bg.json | 8 +- app/javascript/mastodon/locales/ca.json | 68 ++-- app/javascript/mastodon/locales/cy.json | 20 +- app/javascript/mastodon/locales/de.json | 14 +- app/javascript/mastodon/locales/es-MX.json | 2 +- app/javascript/mastodon/locales/fr-QC.json | 4 +- app/javascript/mastodon/locales/ko.json | 30 +- app/javascript/mastodon/locales/lv.json | 2 +- app/javascript/mastodon/locales/my.json | 10 +- app/javascript/mastodon/locales/ru.json | 8 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/zh-HK.json | 16 +- app/javascript/mastodon/locales/zh-TW.json | 84 ++--- config/locales/activerecord.de.yml | 8 +- config/locales/an.yml | 6 - config/locales/ar.yml | 15 +- config/locales/ast.yml | 24 +- config/locales/be.yml | 18 + config/locales/bg.yml | 62 ++-- config/locales/ca.yml | 37 +- config/locales/ckb.yml | 5 - config/locales/co.yml | 6 - config/locales/cs.yml | 15 +- config/locales/cy.yml | 23 +- config/locales/da.yml | 15 +- config/locales/de.yml | 391 +++++++++++---------- config/locales/devise.bg.yml | 2 +- config/locales/devise.de.yml | 30 +- config/locales/devise.fi.yml | 8 +- config/locales/devise.my.yml | 12 + config/locales/devise.zh-TW.yml | 4 +- config/locales/doorkeeper.cy.yml | 2 +- config/locales/doorkeeper.de.yml | 22 +- config/locales/doorkeeper.fr-QC.yml | 12 +- config/locales/doorkeeper.my.yml | 150 ++++++++ config/locales/doorkeeper.zh-HK.yml | 2 + config/locales/el.yml | 38 +- config/locales/en-GB.yml | 164 +++++++++ config/locales/eo.yml | 62 ++-- config/locales/es-AR.yml | 41 ++- config/locales/es-MX.yml | 6 - config/locales/es.yml | 13 +- config/locales/et.yml | 15 +- config/locales/eu.yml | 17 +- config/locales/fa.yml | 6 - config/locales/fi.yml | 25 +- config/locales/fo.yml | 11 + config/locales/fr-QC.yml | 31 +- config/locales/fr.yml | 13 +- config/locales/fy.yml | 11 + config/locales/ga.yml | 4 - config/locales/gd.yml | 6 - config/locales/gl.yml | 17 +- config/locales/he.yml | 17 +- config/locales/hu.yml | 17 +- config/locales/id.yml | 6 - config/locales/io.yml | 6 - config/locales/is.yml | 13 +- config/locales/it.yml | 13 +- config/locales/ja.yml | 17 +- config/locales/ka.yml | 7 - config/locales/kab.yml | 4 - config/locales/kk.yml | 5 - config/locales/ko.yml | 29 +- config/locales/ku.yml | 6 - config/locales/lt.yml | 9 - config/locales/lv.yml | 27 +- config/locales/ms.yml | 1 - config/locales/my.yml | 261 +++++++++++++- config/locales/nl.yml | 15 +- config/locales/nn.yml | 6 - config/locales/no.yml | 23 +- config/locales/oc.yml | 6 - config/locales/pl.yml | 15 +- config/locales/pt-BR.yml | 6 - config/locales/pt-PT.yml | 17 +- config/locales/ro.yml | 3 - config/locales/ru.yml | 26 +- config/locales/sc.yml | 5 - config/locales/sco.yml | 6 - config/locales/si.yml | 6 - config/locales/simple_form.ast.yml | 7 +- config/locales/simple_form.be.yml | 4 + config/locales/simple_form.bg.yml | 42 +-- config/locales/simple_form.cy.yml | 4 +- config/locales/simple_form.de.yml | 56 +-- config/locales/simple_form.el.yml | 16 + config/locales/simple_form.ko.yml | 4 +- config/locales/simple_form.sr.yml | 26 +- config/locales/simple_form.zh-HK.yml | 10 + config/locales/simple_form.zh-TW.yml | 2 +- config/locales/sk.yml | 12 +- config/locales/sl.yml | 13 +- config/locales/sq.yml | 16 +- config/locales/sr-Latn.yml | 7 - config/locales/sr.yml | 25 +- config/locales/sv.yml | 6 - config/locales/th.yml | 11 + config/locales/tr.yml | 37 +- config/locales/tt.yml | 4 - config/locales/uk.yml | 13 +- config/locales/vi.yml | 12 +- config/locales/zh-CN.yml | 17 +- config/locales/zh-HK.yml | 49 ++- config/locales/zh-TW.yml | 83 +++-- 107 files changed, 1856 insertions(+), 843 deletions(-) diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index bedfd91385..54bab60d04 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -218,21 +218,21 @@ "empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.", "empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!", "empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques dalgún, apaez equí.", - "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.favourites": "Naide marcó esti artículu como favoritu. Cuando dalgún perfil lo faiga, apaez equí.", "empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.", "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas dalguna, apaez equí.", "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "Entá nun hai nada con esta etiqueta.", "empty_column.home": "¡La to llinia de tiempu ta balera! Sigui a cuentes pa enllenala. {suggestions}", "empty_column.home.suggestions": "Ver dalgunes suxerencies", - "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.", + "empty_column.list": "Entá nun hai nada nesta llista. Cuando perfiles d'esta llista espublicen artículos nuevos, apaecen equí.", "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees dalguna, apaez equí.", "empty_column.mutes": "Entá nun tienes nengún perfil colos avisos desactivaos.", "empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, apaez equí.", "empty_column.public": "¡Equí nun hai nada! Escribi daqué públicamente o sigui a perfiles d'otros sirvidores pa enllenar esta seición", "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.", "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.", - "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": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.", "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": "Report issue", @@ -351,14 +351,14 @@ "lists.account.remove": "Remove from list", "lists.delete": "Desaniciar la llista", "lists.edit": "Editar la llista", - "lists.edit.submit": "Change title", + "lists.edit.submit": "Camudar el títulu", "lists.new.create": "Amestar la llista", "lists.new.title_placeholder": "Títulu", "lists.replies_policy.followed": "Cualesquier perfil siguíu", - "lists.replies_policy.list": "Miembros de la llista", + "lists.replies_policy.list": "Perfiles de la llista", "lists.replies_policy.none": "Naide", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", + "lists.replies_policy.title": "Amosar les rempuestes a:", + "lists.search": "Buscar ente los perfiles que sigues", "lists.subheading": "Les tos llistes", "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}", "loading_indicator.label": "Cargando…", @@ -463,15 +463,15 @@ "privacy.unlisted.short": "Unlisted", "privacy_policy.last_updated": "Data del últimu anovamientu: {date}", "privacy_policy.title": "Política de privacidá", - "refresh": "Refresh", + "refresh": "Anovar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number} d", - "relative_time.full.days": "Hai {number, plural, one {# día} other {# díes}}", - "relative_time.full.hours": "Hai {number, plural, one {# hora} other {# hores}}", + "relative_time.full.days": "hai {number, plural, one {# día} other {# díes}}", + "relative_time.full.hours": "hai {number, plural, one {# hora} other {# hores}}", "relative_time.full.just_now": "puramente agora", - "relative_time.full.minutes": "Hai {number, plural, one {# minutu} other {# minutos}}", - "relative_time.full.seconds": "Hai {number, plural, one {# segundu} other {# segundos}}", + "relative_time.full.minutes": "hai {number, plural, one {# minutu} other {# minutos}}", + "relative_time.full.seconds": "hai {number, plural, one {# segundu} other {# segundos}}", "relative_time.hours": "{number} h", "relative_time.just_now": "agora", "relative_time.minutes": "{number} m", @@ -557,7 +557,7 @@ "status.detailed_status": "Detailed conversation view", "status.direct": "Unviar un mensaxe direutu a @{name}", "status.edit": "Edit", - "status.edited": "Edited {date}", + "status.edited": "Editóse'l {date}", "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}", "status.embed": "Empotrar", "status.favourite": "Favourite", @@ -613,7 +613,7 @@ "time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}", "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {Queda # segundu} other {Queden # segundos}}", - "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.remote_resource_not_displayed": "Nun s'amuesa'l recursu «{resource}» d'otros sirvidores.", "timeline_hint.resources.followers": "Siguidores", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Artículos antiguos", @@ -647,7 +647,7 @@ "upload_progress.label": "Xubiendo…", "upload_progress.processing": "Procesando…", "video.close": "Zarrar el videu", - "video.download": "Download file", + "video.download": "Baxar el ficheru", "video.exit_fullscreen": "Exit full screen", "video.expand": "Espander el videu", "video.fullscreen": "Pantalla completa", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index f4a10a7957..08aa5ef3b2 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -213,7 +213,7 @@ "empty_column.account_unavailable": "Профіль недаступны", "empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.", "empty_column.bookmarked_statuses": "У вас яшчэ няма паведамленняў з закладкамі. Калі вы дадасце закладку, яна з'явіцца тут.", - "empty_column.community": "Мясцовая шкала часу пустая. Напішыце што-небудзь публічна, каб зрушыць з месца", + "empty_column.community": "Мясцовая стужка пустая. Напішыце што-небудзь публічна, каб зрушыць з месца!", "empty_column.direct": "Пакуль у вас няма асабістых паведамленняў. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.", "empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.", "empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней", @@ -606,7 +606,7 @@ "suggestions.header": "Гэта можа Вас зацікавіць…", "tabs_bar.federated_timeline": "Глабальнае", "tabs_bar.home": "Галоўная", - "tabs_bar.local_timeline": "Тутэйшыя", + "tabs_bar.local_timeline": "Мясцовае", "tabs_bar.notifications": "Апавяшчэнні", "time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}", "time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index f357ed67d5..cd6baafac7 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -101,7 +101,7 @@ "column.about": "Относно", "column.blocks": "Блокирани потребители", "column.bookmarks": "Отметки", - "column.community": "Локален инфопоток", + "column.community": "Локална часова ос", "column.direct": "Директни съобщения", "column.directory": "Разглеждане на профили", "column.domain_blocks": "Блокирани домейни", @@ -367,7 +367,7 @@ "missing_indicator.sublabel": "Ресурсът не може да се намери", "moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.", "mute_modal.duration": "Времетраене", - "mute_modal.hide_notifications": "Скривате ли известията от този потребител?", + "mute_modal.hide_notifications": "Скривате ли известията от потребителя?", "mute_modal.indefinite": "Неопределено", "navigation_bar.about": "Относно", "navigation_bar.blocks": "Блокирани потребители", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Любими", "navigation_bar.filters": "Заглушени думи", "navigation_bar.follow_requests": "Заявки за последване", - "navigation_bar.followed_tags": "Последвани хештагове", + "navigation_bar.followed_tags": "Последвани хаштагове", "navigation_bar.follows_and_followers": "Последвания и последователи", "navigation_bar.lists": "Списъци", "navigation_bar.logout": "Излизане", @@ -619,7 +619,7 @@ "timeline_hint.resources.statuses": "По-стари публикации", "trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}", "trends.trending_now": "Налагащи се сега", - "ui.beforeunload": "Черновата ви ще се загуби, ако излезете от Mastodon.", + "ui.beforeunload": "Черновата ви ще се загуби, излизайки от Mastodon.", "units.short.billion": "{count}млрд", "units.short.million": "{count}млн", "units.short.thousand": "{count}хил", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 8dba6bb2cd..381deaa0c4 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -27,7 +27,7 @@ "account.enable_notifications": "Notifica'm els tuts de @{name}", "account.endorse": "Recomana en el perfil", "account.featured_tags.last_status_at": "Darrer tut 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", @@ -131,7 +131,7 @@ "compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques 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.placeholder": "En què penses?", "compose_form.poll.add_option": "Afegeix una opció", "compose_form.poll.duration": "Durada de l'enquesta", "compose_form.poll.option_placeholder": "Opció {number}", @@ -139,7 +139,7 @@ "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions", "compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció", "compose_form.publish": "Tut", - "compose_form.publish_form": "Publica", + "compose_form.publish_form": "Tut", "compose_form.publish_loud": "Tut!", "compose_form.save_changes": "Desa els canvis", "compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}", @@ -155,7 +155,7 @@ "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud", "confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?", "confirmations.delete.confirm": "Elimina", - "confirmations.delete.message": "Segur que vols eliminar la publicació?", + "confirmations.delete.message": "Segur que vols eliminar aquest tut?", "confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?", "confirmations.discard_edit_media.confirm": "Descarta", @@ -212,7 +212,7 @@ "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 tens marcada cap publicació. Quan en marquis una apareixerà aquí.", + "empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, 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.", @@ -242,21 +242,21 @@ "explore.trending_links": "Notícies", "explore.trending_statuses": "Tuts", "explore.trending_tags": "Etiquetes", - "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.", + "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquest tut. Si també vols que el tut es filtri en aquest context, hauràs d'editar el filtre.", "filter_modal.added.context_mismatch_title": "El context no coincideix!", "filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necessitaràs canviar la seva data de caducitat per a aplicar-la.", "filter_modal.added.expired_title": "Filtre caducat!", "filter_modal.added.review_and_configure": "Per a revisar i configurar aquesta categoria de filtre, ves a {settings_link}.", "filter_modal.added.review_and_configure_title": "Configuració del filtre", "filter_modal.added.settings_link": "pàgina de configuració", - "filter_modal.added.short_explanation": "Aquesta publicació s'ha afegit a la següent categoria de filtre: {title}.", + "filter_modal.added.short_explanation": "Aquest tut s'ha afegit a la següent categoria de filtre: {title}.", "filter_modal.added.title": "Filtre afegit!", "filter_modal.select_filter.context_mismatch": "no aplica en aquest context", "filter_modal.select_filter.expired": "caducat", "filter_modal.select_filter.prompt_new": "Nova categoria: {name}", "filter_modal.select_filter.search": "Cerca o crea", "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova", - "filter_modal.select_filter.title": "Filtra aquesta publicació", + "filter_modal.select_filter.title": "Filtra aquest tut", "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.", @@ -293,29 +293,29 @@ "home.show_announcements": "Mostra els anuncis", "interaction_modal.description.favourite": "Amb un compte a Mastodon pots afavorir aquest tut perquè l'autor sàpiga que t'ha agradat i desar-lo per a més endavant.", "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 aquesta publicació.", + "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo 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_this_server": "En aquest servidor", "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 la publicació de {name}", + "interaction_modal.title.favourite": "Marca el tut de {name}", "interaction_modal.title.follow": "Segueix {name}", "interaction_modal.title.reblog": "Impulsa el tut de {name}", - "interaction_modal.title.reply": "Respon a la publicació de {name}", + "interaction_modal.title.reply": "Respon al tut de {name}", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", "keyboard_shortcuts.back": "Vés enrere", "keyboard_shortcuts.blocked": "Obre la llista d'usuaris blocats", - "keyboard_shortcuts.boost": "Impulsa la publicació", + "keyboard_shortcuts.boost": "Impulsa el tut", "keyboard_shortcuts.column": "Centra la columna", "keyboard_shortcuts.compose": "Centra l'àrea de composició de text", "keyboard_shortcuts.description": "Descripció", "keyboard_shortcuts.direct": "Obre la columna de missatges directes", "keyboard_shortcuts.down": "Abaixa a la llista", "keyboard_shortcuts.enter": "Obre el tut", - "keyboard_shortcuts.favourite": "Afavoreix la publicació", + "keyboard_shortcuts.favourite": "Afavoreix el tut", "keyboard_shortcuts.favourites": "Obre la llista de preferits", "keyboard_shortcuts.federated": "Obre la línia de temps federada", "keyboard_shortcuts.heading": "Dreceres de teclat", @@ -330,14 +330,14 @@ "keyboard_shortcuts.open_media": "Obre mèdia", "keyboard_shortcuts.pinned": "Obre la llista de tuts fixats", "keyboard_shortcuts.profile": "Obre el perfil de l'autor", - "keyboard_shortcuts.reply": "Respon a la publicació", + "keyboard_shortcuts.reply": "Respon al tut", "keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment", "keyboard_shortcuts.search": "Centra la barra de cerca", "keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW", "keyboard_shortcuts.start": "Obre la columna \"Primeres passes\"", "keyboard_shortcuts.toggle_hidden": "Mostra/amaga el text marcat com a sensible", "keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut", - "keyboard_shortcuts.toot": "Inicia una nova publicació", + "keyboard_shortcuts.toot": "Escriu un nou tut", "keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca", "keyboard_shortcuts.up": "Apuja a la llista", "lightbox.close": "Tanca", @@ -346,7 +346,7 @@ "lightbox.next": "Següent", "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostra el perfil de totes maneres", - "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.", + "limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.", "lists.account.add": "Afegeix a la llista", "lists.account.remove": "Elimina de la llista", "lists.delete": "Elimina la llista", @@ -396,7 +396,7 @@ "not_signed_in_indicator.not_signed_in": "Necessites iniciar la sessió per a accedir aquest recurs.", "notification.admin.report": "{name} ha reportat {target}", "notification.admin.sign_up": "{name} s'ha registrat", - "notification.favourite": "a {name} li ha agradat la teva publicació", + "notification.favourite": "a {name} li ha agradat el teu tut", "notification.follow": "{name} et segueix", "notification.follow_request": "{name} ha sol·licitat seguir-te", "notification.mention": "{name} t'ha mencionat", @@ -404,7 +404,7 @@ "notification.poll": "Ha finalitzat una enquesta en què has votat", "notification.reblog": "{name} t'ha impulsat", "notification.status": "{name} acaba de publicar", - "notification.update": "{name} ha editat una publicació", + "notification.update": "{name} ha editat un tut", "notifications.clear": "Esborra les notificacions", "notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?", "notifications.column_settings.admin.report": "Nous informes:", @@ -452,13 +452,13 @@ "poll.votes": "{votes, plural, one {# vot} other {# vots}}", "poll_button.add_poll": "Afegeix una enquesta", "poll_button.remove_poll": "Elimina l'enquesta", - "privacy.change": "Canvia la privacitat de la publicació", + "privacy.change": "Canvia la privacitat del tut", "privacy.direct.long": "Visible només per als usuaris esmentats", "privacy.direct.short": "Només gent mencionada", "privacy.private.long": "Visible només per als seguidors", "privacy.private.short": "Només seguidors", "privacy.public.long": "Visible per a tothom", - "privacy.public.short": "Pública", + "privacy.public.short": "Públic", "privacy.unlisted.long": "Visible per a tothom però exclosa de les funcions de descobriment", "privacy.unlisted.short": "No llistada", "privacy_policy.last_updated": "Darrera actualització {date}", @@ -466,16 +466,16 @@ "refresh": "Actualitza", "regeneration_indicator.label": "Es carrega…", "regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!", - "relative_time.days": "{number} d", + "relative_time.days": "{number}d", "relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}", "relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}", "relative_time.full.just_now": "ara mateix", "relative_time.full.minutes": "fa {number, plural, one {# minut} other {# minuts}}", "relative_time.full.seconds": "fa {number, plural, one {# segon} other {# segons}}", - "relative_time.hours": "{number} h", + "relative_time.hours": "{number}h", "relative_time.just_now": "ara", - "relative_time.minutes": "{number} min", - "relative_time.seconds": "{number} s", + "relative_time.minutes": "{number}min", + "relative_time.seconds": "{number}s", "relative_time.today": "avui", "reply_indicator.cancel": "Cancel·la", "report.block": "Bloca", @@ -486,7 +486,7 @@ "report.category.subtitle": "Tria la millor coincidència", "report.category.title": "Explica'ns què passa amb això ({type})", "report.category.title_account": "perfil", - "report.category.title_status": "publicació", + "report.category.title_status": "tut", "report.close": "Fet", "report.comment.title": "Hi ha res més que creguis que hauríem de saber?", "report.forward": "Reenvia a {target}", @@ -506,7 +506,7 @@ "report.rules.subtitle": "Selecciona totes les aplicables", "report.rules.title": "Quines regles s'han violat?", "report.statuses.subtitle": "Selecciona totes les aplicables", - "report.statuses.title": "Hi ha cap publicació que doni suport a aquest informe?", + "report.statuses.title": "Hi ha cap tut que doni suport a aquest informe?", "report.submit": "Envia", "report.target": "Es denuncia {target}", "report.thanks.take_action": "Aquestes són les teves opcions per a controlar el que veus a Mastodon:", @@ -525,7 +525,7 @@ "search_popout.search_format": "Format de cerca avançada", "search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "publicació", + "search_popout.tips.status": "tut", "search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes", "search_popout.tips.user": "usuari", "search_results.accounts": "Gent", @@ -539,12 +539,12 @@ "server_banner.about_active_users": "Gent que ha fet servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)", "server_banner.active_users": "usuaris actius", "server_banner.administered_by": "Administrat per:", - "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.", + "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada impulsada per {mastodon}.", "server_banner.learn_more": "Més informació", "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 a seguir perfils o etiquetes, afavorir, compartir i respondre publicacions. També pots interactuar des del teu compte a un servidor diferent.", + "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts. També pots interactuar des del teu compte a un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", "status.admin_domain": "Obre la interfície de moderació per a @{domain}", "status.admin_status": "Obre aquest tut a la interfície de moderació", @@ -552,7 +552,7 @@ "status.bookmark": "Marca", "status.cancel_reblog_private": "Desfés l'impuls", "status.cannot_reblog": "No es pot impulsar aquest tut", - "status.copy": "Copia l'enllaç a la publicació", + "status.copy": "Copia l'enllaç al tut", "status.delete": "Elimina", "status.detailed_status": "Vista detallada de la conversa", "status.direct": "Missatge directe a @{name}", @@ -563,7 +563,7 @@ "status.favourite": "Favorit", "status.filter": "Filtra aquesta publicació", "status.filtered": "Filtrada", - "status.hide": "Amaga la publicació", + "status.hide": "Amaga el tut", "status.history.created": "creat per {name} {date}", "status.history.edited": "editat per {name} {date}", "status.load_more": "Carrega'n més", @@ -572,9 +572,9 @@ "status.more": "Més", "status.mute": "Silencia @{name}", "status.mute_conversation": "Silencia la conversa", - "status.open": "Amplia la publicació", + "status.open": "Amplia el tut", "status.pin": "Fixa en el perfil", - "status.pinned": "Publicació fixada", + "status.pinned": "Tut fixat", "status.read_more": "Més informació", "status.reblog": "Impulsa", "status.reblog_private": "Impulsa amb la visibilitat original", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 84f8c70ac0..c664046f0c 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -1,7 +1,7 @@ { "about.blocks": "Gweinyddion sy'n cael eu cymedroli", "about.contact": "Cysylltwch â:", - "about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.", + "about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael", "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", "about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", @@ -46,9 +46,9 @@ "account.media": "Cyfryngau", "account.mention": "Crybwyll @{name}", "account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:", - "account.mute": "Tewi @{name}", - "account.mute_notifications": "Tewi hysbysiadau o @{name}", - "account.muted": "Wedi tewi", + "account.mute": "Anwybyddu @{name}", + "account.mute_notifications": "Diffodd hysbysiadau o @{name}", + "account.muted": "Wedi anwybyddu", "account.open_original_page": "Agor y dudalen wreiddiol", "account.posts": "Postiadau", "account.posts_with_replies": "Postiadau ac atebion", @@ -491,8 +491,8 @@ "report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?", "report.forward": "Ymlaen i {target}", "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?", - "report.mute": "Tewi", - "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.", + "report.mute": "Anwybyddu", + "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u hanwybyddu.", "report.next": "Nesaf", "report.placeholder": "Sylwadau ychwanegol", "report.reasons.dislike": "Dydw i ddim yn ei hoffi", @@ -538,10 +538,10 @@ "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {canlyniad}}", "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)", "server_banner.active_users": "defnyddwyr gweithredol", - "server_banner.administered_by": "Yn cael ei weinyddu gan:", + "server_banner.administered_by": "Gweinyddir gan:", "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.", "server_banner.learn_more": "Dysgu mwy", - "server_banner.server_stats": "Ystagedau'r gweinydd:", + "server_banner.server_stats": "Ystadegau'r gweinydd:", "sign_in_banner.create_account": "Creu cyfrif", "sign_in_banner.sign_in": "Mewngofnodi", "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ateb postiadau. Gallwch hefyd ryngweithio o'ch cyfrif ar weinydd gwahanol.", @@ -570,8 +570,8 @@ "status.media_hidden": "Cyfryngau wedi'u cuddio", "status.mention": "Crybwyll @{name}", "status.more": "Rhagor", - "status.mute": "Tewi @{name}", - "status.mute_conversation": "Tewi sgwrs", + "status.mute": "Anwybyddu @{name}", + "status.mute_conversation": "Anwybyddu sgwrs", "status.open": "Ehangu'r post hwn", "status.pin": "Pinio ar y proffil", "status.pinned": "Postiad wedi'i binio", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index b34864cb0e..7736877d92 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -403,7 +403,7 @@ "notification.own_poll": "Deine Umfrage ist beendet", "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet", "notification.reblog": "{name} teilte deinen Beitrag", - "notification.status": "{name} hat etwas mitgeteilt", + "notification.status": "{name} veröffentlichte gerade", "notification.update": "{name} bearbeitete einen Beitrag", "notifications.clear": "Mitteilungen löschen", "notifications.clear_confirmation": "Bist du dir sicher, dass du diese Mitteilungen für immer löschen möchtest?", @@ -441,7 +441,7 @@ "notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.", "notifications_permission_banner.enable": "Aktiviere Desktop-Benachrichtigungen", "notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.", - "notifications_permission_banner.title": "Verpasse nie etwas", + "notifications_permission_banner.title": "Nichts verpassen", "picture_in_picture.restore": "Zurücksetzen", "poll.closed": "Beendet", "poll.refresh": "Aktualisieren", @@ -457,7 +457,7 @@ "privacy.direct.short": "Nur erwähnte Profile", "privacy.private.long": "Nur für deine Follower sichtbar", "privacy.private.short": "Nur Follower", - "privacy.public.long": "Für alle sichtbar", + "privacy.public.long": "Für alle sichtbar, auch für nicht-registrierte bzw. nicht-angemeldete Nutzer*innen", "privacy.public.short": "Öffentlich", "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion", "privacy.unlisted.short": "Nicht gelistet", @@ -489,7 +489,7 @@ "report.category.title_status": "Beitrag", "report.close": "Fertig", "report.comment.title": "Gibt es etwas anderes, was wir wissen sollten?", - "report.forward": "An {target} weiterleiten", + "report.forward": "Meldung zusätzlich an {target} weiterleiten", "report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin geschickt werden?", "report.mute": "Stummschalten", "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.", @@ -501,18 +501,18 @@ "report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien", "report.reasons.spam": "Das ist Spam", "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten", - "report.reasons.violation": "Es verstößt gegen Serverregeln", + "report.reasons.violation": "Er verstößt gegen Serverregeln", "report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt", "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus", "report.rules.title": "Welche Regeln werden verletzt?", "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus", - "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?", + "report.statuses.title": "Gibt es Beiträge, die diesen Bericht untermauern?", "report.submit": "Abschicken", "report.target": "{target} melden", "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:", "report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:", "report.thanks.title": "Möchtest du das nicht mehr sehen?", - "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.", + "report.thanks.title_actionable": "Vielen Dank für die Meldung! Wir werden uns das ansehen.", "report.unfollow": "@{name} entfolgen", "report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.", "report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index b371e0e9e2..0c6b49593a 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Atajos de teclado", "footer.privacy_policy": "Política de privacidad", "footer.source_code": "Ver código fuente", - "footer.status": "Status", + "footer.status": "Estado", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", "hashtag.column_header.tag_mode.all": "y {additional}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 1ad8e9353d..4b72586856 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Raccourcis clavier", "footer.privacy_policy": "Politique de confidentialité", "footer.source_code": "Voir le code source", - "footer.status": "Status", + "footer.status": "État", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", "hashtag.column_header.tag_mode.all": "et {additional}", @@ -563,7 +563,7 @@ "status.favourite": "Ajouter aux favoris", "status.filter": "Filtrer cette publication", "status.filtered": "Filtrée", - "status.hide": "Masquer la publication", + "status.hide": "Masquer le message", "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/ko.json b/app/javascript/mastodon/locales/ko.json index 9ff4910ef0..cf428b3d8c 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -123,7 +123,7 @@ "column_subheading.settings": "설정", "community.column_settings.local_only": "로컬만", "community.column_settings.media_only": "미디어만", - "community.column_settings.remote_only": "원격만", + "community.column_settings.remote_only": "원격지만", "compose.language.change": "언어 변경", "compose.language.search": "언어 검색...", "compose_form.direct_message_warning_learn_more": "더 알아보기", @@ -170,7 +170,7 @@ "confirmations.redraft.confirm": "삭제하고 다시 쓰기", "confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.", "confirmations.reply.confirm": "답글", - "confirmations.reply.message": "답글을 달기 위해 현재 작성 중인 메시지가 덮어 씌워집니다. 진행하시겠습니까?", + "confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?", "confirmations.unfollow.confirm": "팔로우 해제", "confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?", "conversation.delete": "대화 삭제", @@ -192,7 +192,7 @@ "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", "dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", - "embed.preview": "이렇게 표시됩니다:", + "embed.preview": "여기처럼 보여집니다.", "emoji_button.activity": "활동", "emoji_button.clear": "지우기", "emoji_button.custom": "사용자 지정", @@ -355,9 +355,9 @@ "lists.new.create": "리스트 추가", "lists.new.title_placeholder": "새 리스트의 이름", "lists.replies_policy.followed": "팔로우 한 사용자 누구나", - "lists.replies_policy.list": "리스트의 구성원들", - "lists.replies_policy.none": "아무도 없음", - "lists.replies_policy.title": "답글 표시:", + "lists.replies_policy.list": "리스트의 구성원", + "lists.replies_policy.none": "고르지 않음", + "lists.replies_policy.title": "답글을 볼 대상", "lists.search": "팔로우 중인 사람들 중에서 찾기", "lists.subheading": "리스트", "load_pending": "{count}개의 새 항목", @@ -389,7 +389,7 @@ "navigation_bar.mutes": "뮤트한 사용자", "navigation_bar.personal": "개인용", "navigation_bar.pins": "고정된 게시물", - "navigation_bar.preferences": "사용자 설정", + "navigation_bar.preferences": "환경설정", "navigation_bar.public_timeline": "연합 타임라인", "navigation_bar.search": "검색", "navigation_bar.security": "보안", @@ -399,7 +399,7 @@ "notification.favourite": "{name} 님이 당신의 게시물을 마음에 들어합니다", "notification.follow": "{name} 님이 나를 팔로우했습니다", "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", - "notification.mention": "{name} 님이 언급하였습니다", + "notification.mention": "{name}님의 멘션", "notification.own_poll": "내 투표가 끝났습니다", "notification.poll": "참여했던 투표가 끝났습니다.", "notification.reblog": "{name} 님이 부스트했습니다", @@ -411,12 +411,12 @@ "notifications.column_settings.admin.sign_up": "새로운 가입:", "notifications.column_settings.alert": "데스크탑 알림", "notifications.column_settings.favourite": "좋아요:", - "notifications.column_settings.filter_bar.advanced": "카테고리의 모든 종류를 표시", - "notifications.column_settings.filter_bar.category": "퀵 필터 바", - "notifications.column_settings.filter_bar.show_bar": "필터 막대 표시", + "notifications.column_settings.filter_bar.advanced": "모든 범주 표시하기", + "notifications.column_settings.filter_bar.category": "빠른 필터 막대", + "notifications.column_settings.filter_bar.show_bar": "필터 막대 보이기", "notifications.column_settings.follow": "새 팔로워:", "notifications.column_settings.follow_request": "새 팔로우 요청:", - "notifications.column_settings.mention": "답글:", + "notifications.column_settings.mention": "멘션:", "notifications.column_settings.poll": "투표 결과:", "notifications.column_settings.push": "푸시 알림", "notifications.column_settings.reblog": "부스트:", @@ -523,7 +523,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": "단순한 텍스트 검색은 관계된 프로필 이름, 사용자명 그리고 해시태그를 표시합니다", @@ -568,7 +568,7 @@ "status.history.edited": "{name} 님이 {date}에 수정함", "status.load_more": "더 보기", "status.media_hidden": "미디어 숨겨짐", - "status.mention": "@{name} 님에게 글 쓰기", + "status.mention": "@{name}님에게 멘션", "status.more": "자세히", "status.mute": "@{name} 님을 뮤트하기", "status.mute_conversation": "이 대화를 뮤트", @@ -589,7 +589,7 @@ "status.sensitive_warning": "민감한 내용", "status.share": "공유", "status.show_filter_reason": "그냥 표시하기", - "status.show_less": "숨기기", + "status.show_less": "적게 보기", "status.show_less_all": "모두 접기", "status.show_more": "더 보기", "status.show_more_all": "모두 펼치기", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index f54a92378c..ba14ec5c0c 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -258,7 +258,7 @@ "filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu", "filter_modal.select_filter.title": "Filtrēt šo ziņu", "filter_modal.title.status": "Filtrēt ziņu", - "follow_recommendations.done": "Darīts", + "follow_recommendations.done": "Izpildīts", "follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.", "follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!", "follow_request.authorize": "Autorizēt", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index d39ede21d0..366544d2a2 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -197,14 +197,14 @@ "emoji_button.clear": "ရှင်းလင်းမည်", "emoji_button.custom": "Custom", "emoji_button.flags": "Flags", - "emoji_button.food": "Food & Drink", + "emoji_button.food": "အစားအသောက်", "emoji_button.label": "Insert emoji", - "emoji_button.nature": "Nature", + "emoji_button.nature": "သဘာဝ", "emoji_button.not_found": "No matching emojis found", "emoji_button.objects": "Objects", - "emoji_button.people": "People", - "emoji_button.recent": "Frequently used", - "emoji_button.search": "Search...", + "emoji_button.people": "လူများ", + "emoji_button.recent": "မကြာခဏ အသုံးပြုသော", + "emoji_button.search": "ရှာရန်...", "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 75e6f7edf0..32845ab64f 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -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": "Отписаться", @@ -200,10 +200,10 @@ "emoji_button.food": "Еда и напитки", "emoji_button.label": "Вставить эмодзи", "emoji_button.nature": "Природа", - "emoji_button.not_found": "Нет эмодзи!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Подходящие эмодзи не найдены", "emoji_button.objects": "Предметы", "emoji_button.people": "Люди", - "emoji_button.recent": "Последние", + "emoji_button.recent": "Часто используемые", "emoji_button.search": "Найти...", "emoji_button.search_results": "Результаты поиска", "emoji_button.symbols": "Символы", @@ -229,7 +229,7 @@ "empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.", "empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.", "empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.", - "empty_column.public": "Здесь совсем пусто. Опубликуйте что-нибудь или подпишитесь на пользователей с других сообществ, чтобы заполнить ленту", + "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту", "error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.", "error.unexpected_crash.explanation_addons": "Эта страница не может быть корректно отображена. Скорее всего, эта ошибка вызвана расширением браузера или инструментом автоматического перевода.", "error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index aaac5b7842..e2db4627ec 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -626,7 +626,7 @@ "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด", "upload_button.label": "เพิ่มไฟล์ภาพ, วิดีโอ หรือเสียง", "upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์", - "upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน", + "upload_error.poll": "ไม่อนุญาตการอัปโหลดไฟล์โดยมีการสำรวจความคิดเห็น", "upload_form.audio_description": "อธิบายสำหรับผู้ที่สูญเสียการได้ยิน", "upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น", "upload_form.description_missing": "ไม่มีการเพิ่มคำอธิบาย", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index f99a1c00c7..5c6f539aa7 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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "由於此帖文並非公開,因此它不會列在標籤下。只有公開帖文才可以經標籤搜尋。", "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "鎖定", "compose_form.placeholder": "你在想甚麼?", @@ -221,7 +221,7 @@ "empty_column.favourites": "還沒有人收藏這則文章。這裡將會顯示被收藏的嘟文。", "empty_column.follow_recommendations": "似乎未能替您產生任何建議。您可以試著搜尋您知道的帳戶或者探索熱門主題標籤", "empty_column.follow_requests": "您尚未收到任何追蹤請求。這裡將會顯示收到的追蹤請求。", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "你還沒有追蹤標籤。當你追蹤後,標籤將顯示在此處。", "empty_column.hashtag": "這個標籤暫時未有內容。", "empty_column.home": "你還沒有關注任何使用者。快看看{public},向其他使用者搭訕吧。", "empty_column.home.suggestions": "檢視部份建議", @@ -264,7 +264,7 @@ "follow_request.authorize": "批准", "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。", - "followed_tags": "Followed hashtags", + "followed_tags": "已追蹤標籤", "footer.about": "關於", "footer.directory": "個人檔案目錄", "footer.get_app": "取得應用程式", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "鍵盤快速鍵", "footer.privacy_policy": "私隱政策", "footer.source_code": "查看原始碼", - "footer.status": "Status", + "footer.status": "狀態", "generic.saved": "已儲存", "getting_started.heading": "開始使用", "hashtag.column_header.tag_mode.all": "以及{additional}", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "最愛的內容", "navigation_bar.filters": "靜音詞彙", "navigation_bar.follow_requests": "追蹤請求", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "已追蹤標籤", "navigation_bar.follows_and_followers": "追蹤及追蹤者", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", @@ -544,9 +544,9 @@ "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "建立帳號", "sign_in_banner.sign_in": "登入", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "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": "書籤", @@ -563,7 +563,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-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 405e526bb8..3af82e86ed 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -1,15 +1,15 @@ { - "about.blocks": "受管制的伺服器", + "about.blocks": "被限制的伺服器", "about.contact": "聯絡我們:", "about.disclaimer": "Mastodon 是一個自由的開源軟體,是 Mastodon gGmbH 的註冊商標。", - "about.domain_blocks.no_reason_available": "無法存取之原因", - "about.domain_blocks.preamble": "Mastodon 一般來說允許您閱讀並和聯邦宇宙上任何伺服器的使用者互動。這些伺服器是這個站台設下的例外。", - "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著跟隨此個人檔案。", - "about.domain_blocks.silenced.title": "受限的", - "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法和此伺服器上的使用者互動與溝通。", + "about.domain_blocks.no_reason_available": "無法存取的原因", + "about.domain_blocks.preamble": "Mastodon 基本上允許您瀏覽聯邦宇宙中任何伺服器的內容並與使用者互動。以下是在本伺服器上設定的例外。", + "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確搜尋或主動跟隨對方。", + "about.domain_blocks.silenced.title": "已受限", + "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法與此伺服器上的使用者互動或交流。", "about.domain_blocks.suspended.title": "已停權", - "about.not_available": "這個資料於此伺服器上不可存取。", - "about.powered_by": "由 {mastodon} 提供之去中心化社群媒體", + "about.not_available": "無法在本伺服器上使用此資訊。", + "about.powered_by": "由 {mastodon} 提供的去中心化社群媒體", "about.rules": "伺服器規則", "account.account_note_header": "備註", "account.add_or_remove_from_list": "從列表中新增或移除", @@ -18,9 +18,9 @@ "account.block": "封鎖 @{name}", "account.block_domain": "封鎖來自 {domain} 網域的所有內容", "account.blocked": "已封鎖", - "account.browse_more_on_origin_server": "於該伺服器的個人檔案頁上瀏覽更多", + "account.browse_more_on_origin_server": "在該伺服器上的個人檔案頁面瀏覽更多", "account.cancel_follow_request": "收回跟隨請求", - "account.direct": "傳私訊給 @{name}", + "account.direct": "私訊 @{name}", "account.disable_notifications": "取消來自 @{name} 嘟文的通知", "account.domain_blocked": "已封鎖網域", "account.edit_profile": "編輯個人檔案", @@ -42,7 +42,7 @@ "account.joined_short": "加入時間", "account.languages": "變更訂閱的語言", "account.link_verified_on": "已於 {date} 檢查此連結的擁有者權限", - "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。", + "account.locked_info": "此帳號的隱私狀態設定為鎖定。該擁有者會手動審核能跟隨此帳號的人。", "account.media": "媒體", "account.mention": "提及 @{name}", "account.moved_to": "{name} 現在的新帳號為:", @@ -58,15 +58,15 @@ "account.share": "分享 @{name} 的個人檔案", "account.show_reblogs": "顯示來自 @{name} 的嘟文", "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文", - "account.unblock": "取消封鎖 @{name}", - "account.unblock_domain": "取消封鎖域名 {domain}", + "account.unblock": "解除封鎖 @{name}", + "account.unblock_domain": "解除封鎖網域 {domain}", "account.unblock_short": "解除封鎖", - "account.unendorse": "不再於個人檔案頁面推薦對方", + "account.unendorse": "取消在個人檔案推薦對方", "account.unfollow": "取消跟隨", - "account.unmute": "取消靜音 @{name}", + "account.unmute": "解除靜音 @{name}", "account.unmute_notifications": "重新接收來自 @{name} 的通知", "account.unmute_short": "解除靜音", - "account_note.placeholder": "按此添加備注", + "account_note.placeholder": "按此新增備註", "admin.dashboard.daily_retention": "註冊後使用者存留率(日)", "admin.dashboard.monthly_retention": "註冊後使用者存留率(月)", "admin.dashboard.retention.average": "平均", @@ -93,10 +93,10 @@ "bundle_modal_error.close": "關閉", "bundle_modal_error.message": "載入此元件時發生錯誤。", "bundle_modal_error.retry": "重試", - "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,所以您也能於其他伺服器上建立帳號,並仍然與這個伺服器互動。", + "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,您可以在其他伺服器上也建立帳號,並繼續與這個伺服器互動。", "closed_registrations_modal.description": "目前無法在 {domain} 建立新帳號,但也請別忘了,您並不一定需要有 {domain} 伺服器的帳號,也能使用 Mastodon 。", "closed_registrations_modal.find_another_server": "尋找另一個伺服器", - "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器新增帳號,都可以與此伺服器上的任何人跟隨及互動。您甚至能自行架一個自己的伺服器!", + "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器上建立帳號,都可以跟隨並與此伺服器上的任何人互動。您甚至能架一個自己的伺服器!", "closed_registrations_modal.title": "註冊 Mastodon", "column.about": "關於", "column.blocks": "已封鎖的使用者", @@ -128,8 +128,8 @@ "compose.language.search": "搜尋語言...", "compose_form.direct_message_warning_learn_more": "了解更多", "compose_form.encryption_warning": "Mastodon 上的嘟文並未進行端到端加密。請不要透過 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": "新增選項", @@ -151,22 +151,22 @@ "confirmation_modal.cancel": "取消", "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", - "confirmations.block.message": "您確定要封鎖 {name} ?", + "confirmations.block.message": "您確定要封鎖 {name} 嗎?", "confirmations.cancel_follow_request.confirm": "收回跟隨請求", "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", - "confirmations.delete.message": "您確定要刪除這則嘟文?", + "confirmations.delete.message": "您確定要刪除這則嘟文嗎?", "confirmations.delete_list.confirm": "刪除", - "confirmations.delete_list.message": "您確定要永久刪除此列表?", + "confirmations.delete_list.message": "您確定要永久刪除此列表嗎?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?", - "confirmations.domain_block.confirm": "封鎖整個域名", - "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳號能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。", + "confirmations.domain_block.confirm": "封鎖整個網域", + "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "您確定要登出嗎?", "confirmations.mute.confirm": "靜音", "confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。", - "confirmations.mute.message": "您確定要靜音 {name} ?", + "confirmations.mute.message": "您確定要靜音 {name} 嗎?", "confirmations.redraft.confirm": "刪除並重新編輯", "confirmations.redraft.message": "您確定要刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。", "confirmations.reply.confirm": "回覆", @@ -185,12 +185,12 @@ "directory.recently_active": "最近活躍", "disabled_account_banner.account_settings": "帳號設定", "disabled_account_banner.text": "您的帳號 {disabledAccount} 目前已停用。", - "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。", + "dismissable_banner.community_timeline": "這些是託管於 {domain} 上帳號之最新公開嘟文。", "dismissable_banner.dismiss": "關閉", "dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。", - "dismissable_banner.explore_statuses": "這些於這個伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", + "dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。", - "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。", + "dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。", "embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。", "embed.preview": "它將顯示成這樣:", "emoji_button.activity": "活動", @@ -208,10 +208,10 @@ "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": "您還沒有封鎖任何使用者。", + "empty_column.blocks": "您尚未封鎖任何使用者。", "empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。", "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!", "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。", @@ -227,9 +227,9 @@ "empty_column.home.suggestions": "檢視部份建議", "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。", "empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。", - "empty_column.mutes": "您還沒有靜音任何使用者。", + "empty_column.mutes": "您尚未靜音任何使用者。", "empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。", - "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了", + "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了", "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。", "error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。", "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。", @@ -328,7 +328,7 @@ "keyboard_shortcuts.my_profile": "開啟個人檔案頁面", "keyboard_shortcuts.notifications": "開啟通知欄", "keyboard_shortcuts.open_media": "開啟媒體", - "keyboard_shortcuts.pinned": "開啟釘選嘟文列表", + "keyboard_shortcuts.pinned": "開啟釘選的嘟文列表", "keyboard_shortcuts.profile": "開啟作者的個人檔案頁面", "keyboard_shortcuts.reply": "回應嘟文", "keyboard_shortcuts.requests": "開啟跟隨請求列表", @@ -370,7 +370,7 @@ "mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?", "mute_modal.indefinite": "無期限", "navigation_bar.about": "關於", - "navigation_bar.blocks": "封鎖使用者", + "navigation_bar.blocks": "已封鎖的使用者", "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", "navigation_bar.compose": "撰寫新嘟文", @@ -380,13 +380,13 @@ "navigation_bar.edit_profile": "編輯個人檔案", "navigation_bar.explore": "探索", "navigation_bar.favourites": "最愛", - "navigation_bar.filters": "靜音詞彙", + "navigation_bar.filters": "已靜音的關鍵字", "navigation_bar.follow_requests": "跟隨請求", "navigation_bar.followed_tags": "已跟隨主題標籤", "navigation_bar.follows_and_followers": "跟隨中與跟隨者", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", - "navigation_bar.mutes": "靜音的使用者", + "navigation_bar.mutes": "已靜音的使用者", "navigation_bar.personal": "個人", "navigation_bar.pins": "釘選嘟文", "navigation_bar.preferences": "偏好設定", @@ -453,13 +453,13 @@ "poll_button.add_poll": "建立投票", "poll_button.remove_poll": "移除投票", "privacy.change": "調整嘟文隱私狀態", - "privacy.direct.long": "只有被提及的使用者能看到", + "privacy.direct.long": "只對被提及的使用者顯示", "privacy.direct.short": "僅限提及的人", - "privacy.private.long": "只有跟隨您的使用者能看到", + "privacy.private.long": "只對跟隨者顯示", "privacy.private.short": "僅限跟隨者", - "privacy.public.long": "對所有人可見", + "privacy.public.long": "對所有人顯示", "privacy.public.short": "公開", - "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能", + "privacy.unlisted.long": "對所有人顯示,但關閉探索功能", "privacy.unlisted.short": "不公開", "privacy_policy.last_updated": "最後更新:{date}", "privacy_policy.title": "隱私權政策", @@ -567,7 +567,7 @@ "status.history.created": "{name} 於 {date} 建立", "status.history.edited": "{name} 於 {date} 修改", "status.load_more": "載入更多", - "status.media_hidden": "隱藏媒體內容", + "status.media_hidden": "隱藏的媒體內容", "status.mention": "提及 @{name}", "status.more": "更多", "status.mute": "靜音 @{name}", diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml index fc46d09181..0c25cea8c0 100644 --- a/config/locales/activerecord.de.yml +++ b/config/locales/activerecord.de.yml @@ -4,7 +4,7 @@ de: attributes: poll: expires_at: Abstimmungsende - options: Auswahlmöglichkeiten + options: Auswahlfelder user: agreement: Service-Vereinbarung email: E-Mail-Adresse @@ -47,9 +47,9 @@ de: user_role: attributes: permissions_as_keys: - dangerous: enthält Berechtigungen, welche nicht sicher sind für die Basisrolle + dangerous: enthält Berechtigungen, die für die Basisrolle nicht sicher sind elevated: kann keine Berechtigungen enthalten, 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 - own_role: kann nicht mit deiner aktuellen Rolle geändert werden + elevated: darf nicht höher als deine derzeitige Rolle sein + own_role: darf nicht mit deiner aktuellen Rolle geändert werden diff --git a/config/locales/an.yml b/config/locales/an.yml index 0f2423bfbc..b1b32fc123 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1116,8 +1116,6 @@ an: storage: Almagazenamiento featured_tags: add_new: Anyadir nuevo - errors: - limit: Ya has aconseguiu la cantidat maxima de hashtags hint_html: "Qué son las etiquetas destacadas? S'amuestran de forma prominent en o tuyo perfil publico y permiten a los usuarios navegar per las tuyas publicacions publicas especificament baixo ixas etiquetas. Son una gran ferramienta pa fer un seguimiento de treballos creativos u prochectos a largo plazo." filters: contexts: @@ -1227,9 +1225,6 @@ an: expires_at: Expira uses: Usos title: Convidar a chent - lists: - errors: - limit: Has aconseguiu la cantidat maxima de listas login_activities: authentication_methods: otp: aplicación d'autenticación en dos pasos @@ -1549,7 +1544,6 @@ an: '7889238': 3 meses min_age_label: Branquil de tiempo min_favs: Mantener mensaches con un numero de favoritos mayor que - min_favs_hint: No borra garra d'as publicacions que haigan recibiu mas d'esta cantidat de favoritos. Deixa en blanco pa eliminar publicacions sin importar lo numero de favoritos min_reblogs: Mantener publicacions reblogueadas mas de min_reblogs_hint: No borra garra d'as publicacions que haigan estau reblogueadas mas d'este numero de vegadas. Deixa en blanco pa eliminar publicacions sin importar lo numero de reblogueos stream_entries: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e9a7c3374a..e8b1de6a93 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -99,6 +99,7 @@ ar: moderation: active: نشِط all: الكل + disabled: مُعطَّل pending: قيد المراجعة silenced: محدود suspended: مُجَمَّد @@ -138,6 +139,7 @@ ar: search: البحث search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني search_same_ip: مستخدِمون آخرون بنفس الـ IP + security: الأمان security_measures: only_password: كلمة المرور فقط password_and_2fa: كلمة المرور و 2FA @@ -431,6 +433,7 @@ ar: resolve: العثور على عنوان النطاق title: إضافة نطاق بريد جديد إلى اللائحة السوداء no_email_domain_block_selected: لم يطرأ أي تغيير على أي نطاق بريد بما أنه لم يتم اختيار أي نطاق + not_permitted: غير مسموح به resolved_dns_records_hint_html: عنوان النطاق يعود لخوادم البريد (MX) التالية وهو ما يسمح للنطاق باستقبال البريد. حظر خوادم البريد هذه سوف يتسبب في منع أي تسجيل خلال أي نطاق يستخدم هذه الخوادم حتى لو كان اسم النطاق مختلف عن اسماء خوادم البريد.احذر من حظر مزودي البريد العالميين. resolved_through_html: الحصول على العنوان من خلال %{domain} title: القائمة السوداء للبريد الإلكتروني @@ -478,6 +481,7 @@ ar: content_policies: comment: ملاحظة داخلية description_html: يمكنك تحديد سياسات المحتوى التي سيتم تطبيقها على جميع حسابات هذا النطاق وأي من نطاقاته الفرعية. + limited_federation_mode_description_html: يمكنك أن تختار بين السماح أو عدم السماح بالفديرالية مع هذا النطاق. policies: reject_media: رفض الوسائط reject_reports: رفض الشكاوى @@ -597,11 +601,13 @@ ar: assign_to_self: عين لي assigned: تعين رئيس by_target_domain: نطاق الحساب المبلّغ عنه + cancel: إلغاء category: الفئة category_description_html: سيشار إلى سبب الإبلاغ عن هذا الحساب و/أو المحتوى في الاتصال بالحساب المبلغ عنه comment: none: لا شيء comment_description_html: 'لتوفير المزيد من المعلومات، كتب %{name}:' + confirm: تأكيد confirm_action: تأكيد اتخاذ إجراء إشراف على @%{acct} created_at: ذكرت delete_and_resolve: احذف المنشورات @@ -803,6 +809,7 @@ ar: suspend: قام %{name} بتعليق حساب %{target} appeal_approved: طُعِن فيه appeal_pending: طعن قيد المراجعة + appeal_rejected: رُفض الطعن system_checks: database_schema_check: message_html: هناك عمليات هجرة معلقة لقواعد البيانات. يرجى تشغيلها لضمان تصرف التطبيق كما هو متوقع @@ -835,6 +842,7 @@ ar: no_publisher_selected: لم يطرأ أي تغيير على أي ناشر بما أنه لم يتم اختيار أي واحد title: الروابط المتداولة usage_comparison: تمت مشاركته %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس + not_allowed_to_trend: غير مسموح ظهوره في المتداولة only_allowed: من سُمِحَ لهم فقط pending_review: في انتظار المراجعة preview_card_providers: @@ -957,6 +965,7 @@ ar: applications: created: تم إنشاء التطبيق بنجاح destroyed: تم حذف التطبيق بنجاح + logout: الخروج regenerate_token: إعادة توليد رمز النفاذ token_regenerated: تم إعادة إنشاء الرمز الوصول بنجاح warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين! @@ -993,6 +1002,8 @@ ar: resend_confirmation: إعادة إرسال تعليمات التأكيد reset_password: إعادة تعيين كلمة المرور rules: + accept: قبول + back: العودة preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}. title: بعض القواعد الأساسية. security: الأمان @@ -1139,8 +1150,6 @@ ar: storage: ذاكرة التخزين featured_tags: add_new: أضف واحدًا جديدا - errors: - limit: لقد قمت بالفعل بعرض الحد الأقصى من الوسوم hint_html: "ما هي الوسوم الرائجة؟ يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل." filters: contexts: @@ -1600,7 +1609,7 @@ ar: '7889238': 3 أشهر min_age_label: عتبة العمر min_favs: إبقاء المشاركات المفضلة أكثر من - min_favs_hint: لم تقوم بحذف أي من المشاركات الخاصة بك التي حصلت على أكثر من هذه الكمية من المفضلة. اتركه فارغاً لحذف المشاركات بغض النظر عن عدد المفضلات لديها + min_favs_hint: لن تُحذف أي من منشوراتك التي تلقّت على الأقل هذا العدد من المفضلات. اتركه فارغاً لحذف المنشورات مهما كان عدد المفضلات التي تلقتها min_reblogs: إبقاء المشاركات المعززة أكثر من min_reblogs_hint: لن تُحذف أي من منشوراتك التي أعيد مشاركتها أكثر من هذا العدد من المرات. اتركه فارغاً لحذف المنشورات بغض النظر عن عدد إعادات المشاركة stream_entries: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index d4e3fe20e9..536e3887cb 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -52,6 +52,7 @@ ast: search: Buscar search_same_email_domain: Otros perfiles col mesmu dominiu de corréu electrónicu search_same_ip: Otros perfiles cola mesma IP + security: Seguranza show: created_reports: Informes fechos statuses: Artículos @@ -80,7 +81,9 @@ 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}" + reopen_report_html: "%{name} volvió abrir l'informe «%{target}»" resend_user_html: "%{name} volvió unviar el mensaxe de confirmación pa: %{target}" + resolve_report_html: "%{name} resolvió l'informe «%{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}»" @@ -217,11 +220,15 @@ ast: title: 'Rellaciones de: %{acct}' relays: status: Estáu + report_notes: + created_msg: "¡La nota del informe creóse correutamente!" reports: account: notes: one: "%{count} nota" other: "%{count} notes" + actions: + silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta. actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría Puxarra. add_to_report: Amestar más al informe category: Categoría @@ -236,6 +243,8 @@ ast: notes: create: Amestar la nota create_and_resolve: Resolver con una nota + create_and_unresolve: Volver abrir con una nota + delete: Desaniciar title: Notes quick_actions_description_html: 'Toma una aición rápida o baxa pa ver el conteníu del que s''informó:' report: 'Informe #%{id}' @@ -326,6 +335,7 @@ ast: metadata: Metadatos original_status: Artículu orixinal visibility: Visibilidá + with_media: Con elementos multimedia strikes: actions: delete_statuses: "%{name} desanició l'artículu de: %{target}" @@ -334,6 +344,7 @@ ast: sensitive: "%{name} marcó la cuenta de %{target} como sensible" suspend: "%{name} suspendió la cuenta de: %{target}" appeal_approved: Apellóse + appeal_pending: Apellación pendiente system_checks: elasticsearch_running_check: message_html: Nun se pudo conectar con Elasticsearch. Revisa que tea n'execución o desactiva la busca de testos completos @@ -368,6 +379,8 @@ ast: usable: Pue usase title: Tendencies trending: En tendencia + warning_presets: + title: Xestión d'alvertencies preconfiguraes webhooks: add_new: Amestar un estremu delete: Desaniciar @@ -446,6 +459,9 @@ ast: register: Rexistrase registration_closed: "%{instance} nun acepta cuentes nueves" resend_confirmation: Volver unviar les instrucciones de confirmación + rules: + accept: Aceptar + back: Atrás security: Seguranza setup: email_below_hint_html: Si la direición de corréu electrónicu ye incorreuta, pues camudala equí ya recibir un mensaxes de confirmación nuevu. @@ -504,13 +520,16 @@ ast: action_taken: Aición tomada appeal: Apellación appeal_rejected: Refugóse l'apellación + appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste. appeals: submit: Unviu d'una apellación approve_appeal: Aprobar l'apellación + associated_report: Informe asociáu created_at: Data reject_appeal: Refugar l'apellación status: 'Artículu #%{id}' status_removed: L'artículu xá se quitó del sistema + your_appeal_approved: Aprobóse la to apellación your_appeal_pending: Unviesti una apellación your_appeal_rejected: Refugóse la to apellación errors: @@ -619,9 +638,6 @@ ast: expires_at: Data de caducidá uses: Usos title: Invitación - lists: - errors: - limit: Algamesti la cantidá máxima de llistes login_activities: authentication_methods: password: contraseña @@ -837,6 +853,8 @@ ast: appeal_description: Si te paez que ye un error, pues unviar una apellación al personal de %{instance}. explanation: disable: Xá nun pues usar la cuenta mas el perfil ya otros datos siguen intautos. Pues solicitar una copia de seguranza de los datos, camudar la configuración de la cuenta o desaniciar la cuenta. + silence: Entá pues usar la cuenta mas namás vas ver los artículos de los perfiles que xá siguieres nesti sirvidor ya ye posible que se t'escluya de dalgunes funciones de descubrimientu. Por embargu, otros perfiles tovía puen siguite manualmente. + suspend: Xá nun pues usar la cuenta nin se pue acceder a los datos del to perfil. Entá pues aniciar la sesión pa pidir una copia de seguranza de los tos datos hasta que se desanicien en 30 díes, mas vamos caltener dalgunos datos básicos pa evitar que te saltes la suspensión. reason: 'Motivu:' statuses: 'Artículos citaos:' subject: diff --git a/config/locales/be.yml b/config/locales/be.yml index ea5d01764c..24dd86285b 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -95,6 +95,7 @@ be: moderation: active: Актыўны all: Усе + disabled: Адключана pending: Чакаюць silenced: Абмежаваны suspended: Прыпынены @@ -139,6 +140,7 @@ be: search: Пошук search_same_email_domain: Іншыя карыстальнікі з такім жа даменам эл. пошты search_same_ip: Іншыя карыстальнікі з гэтым IP + security: Бяспека security_measures: only_password: Толькі пароль password_and_2fa: Пароль і 2FA @@ -443,6 +445,7 @@ be: resolve: Вызначыць дамен title: Заблакіраваць новы дамен эл. пошты no_email_domain_block_selected: Блакіроўкі даменаў эл. пошты не былі змененыя, таму што ні адзін з іх не быў выбраны + not_permitted: Забаронена resolved_dns_records_hint_html: Даменнае імя ператвараецца ў наступныя дамены MX, якія ў канчатковым выніку адказваюць за прыём электроннай пошты. Блакаванне дамена MX заблакуе рэгістрацыю з любога адраса электроннай пошты, які выкарыстоўвае той жа дамен MX, нават калі бачнае імя дамена адрозніваецца. Будзьце асцярожныя, каб не заблакіраваць асноўных пастаўшчыкоў электроннай пошты. resolved_through_html: Вызначына каля %{domain} title: Заблакаваныя паштовыя дамены @@ -493,6 +496,7 @@ be: content_policies: comment: Унутраная нататка description_html: Вы можаце вызначыць палітыку кантэнту, якая будзе прымяняцца да ўсіх уліковых запісаў гэтага дамена і любога з яго субдаменаў. + limited_federation_mode_description_html: Вы можаце выбраць ці дазволіць уваходзіць у федэрацыю з гэтым даменам. policies: reject_media: Адхіліць мультымедыя reject_reports: Адхіліць справаздачы @@ -609,11 +613,13 @@ be: assign_to_self: Прызначыць мне assigned: Прызначаны мадэратар by_target_domain: Дамен уліковага запісу, на які падаецца скарга + cancel: Скасаваць category: Катэгорыя category_description_html: Прычына паведамлення аб гэтым уліковым запісе і/або кантэнце будзе згадана ў сувязі з уліковым запісам, на які пададзена скарга comment: none: Пуста comment_description_html: 'Каб даць больш інфармацыі, %{name} напісаў:' + confirm: Пацвердзіць confirm_action: Пацвердзіць мадэрацыю супраць @%{acct} created_at: Створана delete_and_resolve: Выдаліць допісы @@ -645,14 +651,21 @@ be: statuses: Змесціва, на якое паскардзіліся statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга summary: + action_preambles: + delete_html: 'Вы збіраецеся выдаліць некаторыя з допісаў @%{acct}. Гэта будуць:' + mark_as_sensitive_html: 'Вы збіраецеся пазначыць некаторыя з допісаў @%{acct} як уражальныя. Гэта будуць:' + silence_html: 'Вы збіраецеся абмежаваць уліковы запіс @%{acct}. Гэта будзе:' + suspend_html: 'Вы збіраецеся прыпыніць уліковы запіс @%{acct}. Гэта будзе:' actions: delete_html: Выдаліць абразлівы допіс mark_as_sensitive_html: Пазначыць медыя абразлівага допіса як далікатнае + silence_html: Значна абмежаваць ахоп @%{acct}, зрабіўшы профіль і змесціва бачнымі толькі для людзей, якія ўжо падпісаныя, альбо шукае яго ўручную suspend_html: Прыпыніць @%{acct}, зрабіць профіль і змесціва недаступным і не даваць магчымасці ўзаемадзейнічаць з імі close_report: 'Пазначыць скаргу #%{id} як вырашаную' close_reports_html: Адзначыць усе скаргі супраць @%{acct} як вырашаныя delete_data_html: Выдаліць профіль @%{acct} і змесціва праз 30 дзён, калі тым часам гэтае дзеянне не будзе адменена preview_preamble_html: "@%{acct} атрымае папярэджанне наступнага зместу:" + record_strike_html: Зарэгістраваць папярэджанне @%{acct}, каб дапамагчы вам эскаліраваць наступныя парушэнні з боку таго ж уліковага запісу send_email_html: Адправіць @%{acct} папярэджанне па электроннай пошце warning_placeholder: Неабавязковае дадатковае абгрунтаванне мадэрацыі. target_origin: Крыніца уліковага запісу на які пададзена скарга @@ -813,6 +826,7 @@ be: suspend: Уліковы запіс %{target} выключаны %{name} appeal_approved: Абскарджана appeal_pending: Апеляцыя разглядаецца + appeal_rejected: Абскарджанне адхілена system_checks: database_schema_check: message_html: Ёсць незавершаныя міграцыі базы дадзеных. Калі ласка, запусціце іх, каб пераканацца, што дадатак паводзіць сябе належным чынам @@ -850,6 +864,7 @@ be: other: Абагулілі %{count} чалавек за апошні тыдзень title: Актуальныя спасылкі usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора + not_allowed_to_trend: Забаронена выходзіць у актуальныя only_allowed: Толькі дазволенае pending_review: Чакае праверкі preview_card_providers: @@ -987,6 +1002,7 @@ be: applications: created: Праграма паспяхова створана destroyed: Праграма паспяхова выдалена + logout: Выйсці regenerate_token: Стварыць новы токен доступу token_regenerated: Новы токен доступу паспяхова створаны warning: Будзьце вельмі асцярожныя з гэтымі данымі. Ніколі нікому не паведамляйце іх! @@ -1023,6 +1039,8 @@ be: resend_confirmation: Адправіць інструкцыю пацвярджэння зноў reset_password: Скінуць пароль rules: + accept: Прыняць + back: Назад preamble: Правілы вызначаныя мадэратарамі дамена %{domain}. title: Некалькі базавых правілаў. security: Бяспека diff --git a/config/locales/bg.yml b/config/locales/bg.yml index cdcf6158b0..d0d1888c0c 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -91,6 +91,7 @@ bg: moderation: active: Дейно all: Всичко + disabled: Изключено pending: Чака silenced: Ограничено suspended: Спряно @@ -133,6 +134,7 @@ bg: search: Търсене search_same_email_domain: Други потребители със същия домейн за имейл search_same_ip: Други потребители със същия IP + security: Сигурност security_measures: only_password: Само парола password_and_2fa: Парола и двуфакторно удостоверяване @@ -372,8 +374,8 @@ bg: empty: Няма намерени обжалвания. title: Жалби domain_allows: - add_new: Позволявам федерацията с домейна - created_msg: Домейнът е успешно позволен за федерацията + add_new: Позволявам федериране с домейна + created_msg: Успешно позволен домейн за федерацията destroyed_msg: Домейнът е забранен от федерацията export: Износ import: Внос @@ -402,7 +404,7 @@ bg: obfuscate: Замъгляване на името на домейна obfuscate_hint: Частично замъгляване на името на домейна в списъка, ако е включено рекламирането на списъка с ограничения на домейни private_comment: Личен коментар - private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите. + private_comment_hint: Коментирането за това ограничение на домейна е за вътрешна употреба от модераторите. public_comment: Публичен коментар public_comment_hint: Оставяне на коментар за ограничението на домейна за широката публика, ако рекламирането на списъка с ограниченията на домейни е включено. reject_media: Отхвърляне на мултимедийните файлове @@ -427,6 +429,7 @@ bg: resolve: Преобразуване на домейна title: Блокиране на нов домейн на имейл no_email_domain_block_selected: Няма промяна, тъй като няма избрани блокирания на имейл домейн + not_permitted: Няма позволение resolved_dns_records_hint_html: Името на домейна се преобразува към следните MX домейни, които са основно отговорни за получаване на имейл. Блокирането на MX домейн блокира записването от всеки имейл, използващ същия MX домейн, дори видимото име на домейна да е различно. Бъдете внимателни и не блокирайте често-срещани доставчици на имейл resolved_through_html: Преобразувано чрез %{domain} title: Блокирани домейни на имейл @@ -473,6 +476,7 @@ bg: content_policies: comment: Вътрешна бележка description_html: Може да определите политиките за съдържание, които ще се приложат към всички акаунти от този домейн и всеки от поддомейните му. + limited_federation_mode_description_html: Може да избирате дали да позволите федарацията с този домейн. policies: reject_media: Отхвърляне на мултимедия reject_reports: Отхвърляне на докладите @@ -585,11 +589,13 @@ bg: assign_to_self: Назначаване на мен assigned: Назначен модератор by_target_domain: Домейн на докладвания акаунт + cancel: Отказ category: Категория category_description_html: Причината, поради която акаунтът и/или съдържанието е докладвано ще се цитира в комуникацията с докладвания акаунт comment: none: Нищо comment_description_html: 'За да предостави повече информация, %{name} написа:' + confirm: Потвърждаване confirm_action: Потвърждаване на модераторско действие срещу @%{acct} created_at: Докладвано delete_and_resolve: Изтриване на публикациите @@ -620,9 +626,18 @@ bg: statuses: Докладвано съдържание statuses_description_html: Непристойно съдържание ще бъде цитирано в комуникацията с докладвания акаунт summary: + action_preambles: + delete_html: 'На път сте да премахнете някои от публикациите на @%{acct}. Това ще:' + mark_as_sensitive_html: 'На път сте да означите някои от публикациите на @%{acct} като деликатни. Това ще:' + silence_html: 'На път сте да ограничите акаунта на @%{acct}. Това ще:' + suspend_html: 'На път сте да спрете акаунта на @%{acct}. Това ще:' actions: delete_html: Премахване на обидните публикации + silence_html: Силно ограничаване достигането на @%{acct}, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила close_report: Отбелязване на доклад №%{id} като решен + close_reports_html: Означаване на всички доклади срещу @%{acct} като решени + preview_preamble_html: "@%{acct} ще получи предупреждение със следното съдържание:" + send_email_html: Изпращане на предупредително е-писмо на @%{acct} warning_placeholder: Незадължителни допълнителни причини за модераторско действие. target_origin: Произход на докладвания акаунт title: Доклади @@ -659,7 +674,7 @@ bg: invite_users_description: Позволява на потребителите да канят нови хора в сървъра manage_announcements: Управляване на оповестяванията manage_announcements_description: Позволява на потребителите да управляват оповестяванията в сървъра - manage_appeals: Управление на обжалванията + manage_appeals: Управление на жалбите manage_appeals_description: Позволява на потребителите да разглеждат обжалвания срещу модераторски действия manage_blocks: Управляване на блокиранията manage_blocks_description: Позволява на потребителите да блокират доставчици на е-поща и IP адреси @@ -698,7 +713,7 @@ bg: description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки. edit: Промяна на правило empty: Още няма определени правила на сървъра. - title: Правила на сървъра + title: Сървърни правила settings: about: manage_rules: Управление на правилата на сървъра @@ -720,12 +735,12 @@ bg: discovery: follow_recommendations: Препоръки за следване preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. - profile_directory: Директория на профила + profile_directory: Указател на профила public_timelines: Публични часови оси publish_discovered_servers: Публикуване на откритите сървъри publish_statistics: Публикуване на статистиката title: Откриване - trends: Налагащи се + trends: Изгряващи domain_blocks: all: До всеки disabled: До никого @@ -735,9 +750,9 @@ bg: title: Регистрации registrations_mode: modes: - approved: Нужно е одобрение за записване + approved: Изисква се одобрение за регистриране none: Никой не може да се регистрира - open: Всеки може да се запише + open: Всеки може да се регистрира title: Настройки на сървъра site_uploads: delete: Изтриване на качения файл @@ -778,6 +793,7 @@ bg: suspend: "%{name} преустанови акаунта на %{target}" appeal_approved: Обжалвано appeal_pending: Чака се обжалването + appeal_rejected: Отхвърлено обжалване system_checks: database_schema_check: message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението @@ -802,29 +818,30 @@ bg: links: allow: Позволяване на връзка allow_provider: Позволяване на публикуващия - description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове. + description_html: Това са връзки, които в момента са много пъти споделяни от акаунти, чиито публикации сървърът ви вижда. Може да помогне на потребителите ви да разберат какво се случва по света. Никоя връзка няма да се показва публично, докато не одобрите публикуващия. Може още и да одобрявате или отхвърляте отделни връзки. disallow: Забранявам връзката disallow_provider: Забраняване на публикуващия - no_link_selected: Няма промяна, тъй като няма избрани линкове + no_link_selected: Няма променени връзки, тъй като нито една не е била избрана publishers: no_publisher_selected: Няма промяна, тъй като няма избрани публикуващи shared_by_over_week: one: Споделено от един човек през последната седмица other: Споделено от %{count} души през последната седмица - title: Нашумели линкове + title: Изгряващи линкове usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера + not_allowed_to_trend: Не е позволено да са изгряващи only_allowed: Само позволените - pending_review: В очакване на преглед + pending_review: Чака се преглед preview_card_providers: - allowed: Линкове от този публикуващ може да са нашумели + allowed: Линкове от този публикуващ може да са изгряващи description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни. - rejected: Линкове от този автор няма да се включат в нашумели + rejected: Връзки от този публикуващ няма да са изгряващи title: Публикуващи rejected: Отхвърлено statuses: allow: Позволяване на публикацията allow_account: Позволяване на автора - description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или маркирани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации. + description_html: Има публикации, за които сървърът ви знае, че в момента са често споделяни или означавани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора за последване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Може още да позволявате или отхвърляте отделни публикации. disallow: Забраняване на публикацията disallow_account: Забрана на автора no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация @@ -841,14 +858,14 @@ bg: tag_servers_dimension: Водещи сървъри tag_servers_measure: различни сървъри tag_uses_measure: обща употреба - description_html: Това са хаштагове, фигуриращи в момента в много публикации, които вашият сървър вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете няма да се покажат публично, докато не ги одобрите. + description_html: Има хаштагове, появяващи се в момента в много публикации, които сървърът ви вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете не се показват публично, докато не ги одобрите. listable: Може да бъде предложено no_tag_selected: Няма промяна, тъй като няма избран таг not_listable: Няма да бъде препоръчан not_trendable: Няма да се появи под налагащи се - not_usable: Не може да се използва + not_usable: Не може да се употребява peaked_on_and_decaying: Връх на актуалността на %{date}, сега е в спад - title: Налагащи се хаштагове + title: Изгряващи хаштагове trendable: Може да се появи под налагащи се trending_rank: 'Налагащи се #%{rank}' usable: Може да се употребява @@ -856,7 +873,7 @@ bg: used_by_over_week: one: Употребено от един човек през последната седмица other: Използвано от %{count} души през последната седмица - title: Налагащи се + title: Изгряващи trending: Изгряващи warning_presets: add_new: Добавяне на ново @@ -944,6 +961,7 @@ bg: applications: created: Успешно създадено приложение destroyed: Успешно изтрито приложение + logout: Излизане regenerate_token: Регенериране на кода за достъп token_regenerated: Успешно генериране на код за достъп warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого! @@ -980,6 +998,8 @@ bg: resend_confirmation: Изпрати отново инструкции за потвърждение reset_password: Нулиране на паролата rules: + accept: Приемам + back: Назад preamble: Тези са зададени и наложени от модераторите на %{domain}. title: Някои основни правила. security: Сигурност @@ -1559,7 +1579,7 @@ bg: '7889238': 3 месеца min_age_label: Възрастов праг min_favs: Запазване на публикации, маркирани като любими поне - min_favs_hint: Не се изтриват ваши публикации, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя пъти маркирани като любими + min_favs_hint: Не се изтриват никоя от публикациите ви, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя маркирания като любими min_reblogs: Запазване на публикации с поне толкова споделяния min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния stream_entries: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 616f8de17f..afaf9e06db 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -31,7 +31,7 @@ ca: created_msg: La nota de moderació s'ha creat correctament! destroyed_msg: Nota de moderació destruïda amb èxit! accounts: - add_email_domain_block: Bloquejar el domini de l'adreça de correu electrònic + add_email_domain_block: Bloca el domini del correu approve: Aprova approved_msg: L’aplicació del registre de %{username} s’ha aprovat amb èxit are_you_sure: N'estàs segur? @@ -91,6 +91,7 @@ ca: moderation: active: Actiu all: Tot + disabled: Desactivat pending: Pendent silenced: Limitat suspended: Suspès @@ -133,6 +134,7 @@ ca: search: Cerca search_same_email_domain: Altres usuaris amb el mateix domini de correu search_same_ip: Altres usuaris amb la mateixa IP + security: Seguretat security_measures: only_password: Només contrasenya password_and_2fa: Contrasenya i 2FA @@ -180,7 +182,7 @@ ca: create_custom_emoji: Crea un emoji personalitzat create_domain_allow: Crea un domini permès create_domain_block: Crea un bloqueig de domini - create_email_domain_block: Crea un bloqueig de domini d'adreça de correu + create_email_domain_block: Crea un bloqueig de domini de correu create_ip_block: Crear regla IP create_unavailable_domain: Crea un domini no disponible create_user_role: Crea Rol @@ -188,9 +190,9 @@ ca: destroy_announcement: Esborra l'anunci destroy_canonical_email_block: Esborra el bloqueig de correu electrònic destroy_custom_emoji: Esborra l'emoji personalitzat - destroy_domain_allow: Esborra el domini permès + destroy_domain_allow: Esborra el permís del domini destroy_domain_block: Esborra el bloqueig de domini - destroy_email_domain_block: Esborra el bloqueig de domini de l'adreça de correu + destroy_email_domain_block: Esborra el bloqueig de domini de correu destroy_instance: Purga Domini destroy_ip_block: Eliminar regla IP destroy_status: Elimina la publicació @@ -372,15 +374,15 @@ ca: empty: No s'ha trobat cap apel·lació. title: Apel·lacions domain_allows: - add_new: Dominis autoritzats - created_msg: El domini ha estat correctament autoritzat - destroyed_msg: S'ha esborrat el domini de la llista blanca + add_new: Permet la federació amb el domini + created_msg: El domini ha estat autoritzat per a la federació + destroyed_msg: El domini ha estat desautoritzat de la federació export: Exporta import: Importa - undo: Treure de la llista blanca + undo: No permetis la federació amb el domini domain_blocks: - add_new: Afegir nou bloqueig de domini - created_msg: El bloqueig de domini ara s'està processant + add_new: Afegeix nou bloqueig de domini + created_msg: S'està processant el bloqueig de domini destroyed_msg: El bloqueig de domini s'ha desfet domain: Domini edit: Editar el bloqueig del domini @@ -396,7 +398,7 @@ ca: noop: Cap silence: Limitar suspend: Suspensió - title: Bloqueig de domini nou + title: Nou bloqueig de domini no_domain_block_selected: No s'ha canviat cap bloqueig de domini perquè no se n'ha seleccionat cap not_permitted: No tens permís per a realitzar aquesta acció obfuscate: Oculta el nom del domini @@ -427,6 +429,7 @@ ca: resolve: Resol domini title: Nova adreça de correu en la llista negra no_email_domain_block_selected: No s'han canviat els bloquejos de domini perquè cap s'ha seleccionat + not_permitted: No permés resolved_dns_records_hint_html: El nom del domini resol als següents dominis MX, els quals son els responsables finals per a acceptar els correus. Bloquejar un domini MX bloquejarà els registres des de qualsevol adreça de correu que utilitzi el mateix domini MX, encara que el nom visible del domini sigui diferent. Ves amb compte no bloquegis els grans proveïdors de correu electrònic. resolved_through_html: Resolt mitjançant %{domain} title: Llista negra de correus electrònics @@ -473,6 +476,7 @@ ca: content_policies: comment: Nota interna description_html: Pots definir polítiques de contingut que seran aplicades a tots els comptes d'aquest domini i a qualsevol dels seus subdominis. + limited_federation_mode_description_html: Pots triar si permets la federació amb aquest domini. policies: reject_media: Rebutja mèdia reject_reports: Rebutja informes @@ -585,11 +589,13 @@ ca: assign_to_self: Assigna'm assigned: Moderador assignat by_target_domain: Domini del compte denunciat + cancel: Cancel·la category: Categoria category_description_html: El motiu pel qual aquest compte o contingut ha estat denunciat se citarà en la comunicació amb el compte denunciat comment: none: Cap comment_description_html: 'Per a donar més informació, %{name} ha escrit:' + confirm: Confirma confirm_action: Confirma l'acció de moderació contra @%{acct} created_at: Denunciat delete_and_resolve: Elimina les publicacions @@ -792,6 +798,7 @@ ca: suspend: "%{name} ha suspès el compte de %{target}" appeal_approved: Apel·lat appeal_pending: Apel·lació pendent + appeal_rejected: Apel·lació rebutjada system_checks: database_schema_check: message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera @@ -827,6 +834,7 @@ ca: other: Compartit per %{count} persones en la darrera setmana title: Enllaços en tendència usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir + not_allowed_to_trend: No es permet la tendència only_allowed: Només permesos pending_review: Revisió pendent preview_card_providers: @@ -958,6 +966,7 @@ ca: applications: created: L'aplicació s'ha creat correctament destroyed: L'aplicació s'ha suprimit correctament + logout: Surt regenerate_token: Torna a generar l'identificador d'accés token_regenerated: L'identificador d'accés s'ha generat correctament warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú! @@ -994,6 +1003,8 @@ ca: resend_confirmation: Torna a enviar el correu de confirmació reset_password: Restableix la contrasenya rules: + accept: Accepta + back: Enrere preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}. title: Algunes regles bàsiques. security: Seguretat @@ -1139,7 +1150,7 @@ ca: mutes: Persones silenciades storage: Emmagatzematge featured_tags: - add_new: Afegir nova etiqueta + add_new: Afegeix-ne una de nova errors: limit: Ja has mostrat la quantitat màxima d'etiquetes hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per 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." @@ -1573,7 +1584,7 @@ ca: '7889238': 3 mesos min_age_label: Antiguitat 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_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 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/ckb.yml b/config/locales/ckb.yml index 19e1d50f42..5b945d442e 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -726,8 +726,6 @@ ckb: storage: هەمارگەی میدیا featured_tags: add_new: زیادکردنی نوێ - errors: - limit: ئێوە ژمارەی بڕی ڕێگەپێدراوەی هاشتاگت هەیە hint_html: " هاشتاگی تایبەت چییە؟ بە شێوەیەکی دیار نیشان دەدرێت لەسەر پرۆفایلی گشتی و ڕێگە بە خەڵک دەدات بۆ گەڕان لە نووسراوە گشتیەکانت بە تایبەتی لەژێر ئەو هاشتاگە. ئامرازێکی زۆر باشن بۆ پاراستنی کاری داهێنەرانە یان پڕۆژەی درێژخایەنی ئێوە." filters: contexts: @@ -797,9 +795,6 @@ ckb: expires_at: بەسەرچووە uses: بەکارهاوردنەکان title: بانگهێشتکردنی خەڵک - lists: - errors: - limit: تۆ گەیشتوویتە زۆرترین ڕێژەی لیستەکان media_attachments: validations: images_and_video: ناتوانرێت لەگەڵ ئەو نووسراوانە کە وێنەی لەگەڵە ،ڤیدیۆ بار بکەی diff --git a/config/locales/co.yml b/config/locales/co.yml index 2ab6c63f96..4a26920186 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -686,8 +686,6 @@ co: storage: I vostri media featured_tags: add_new: Aghjunghje - errors: - limit: Avete digià messu in mostra u numeru massimale di hashtag hint_html: "Quale sò i hashtag in mostra? Sò messi in vista nant'à u vostru prufile pubblicu è permettenu à a ghjente di vede i vostri statuti ch'annu stu hashtag. Sò una bona manere di mustrà e vostre opere creative o i prughjetti à longu termine." filters: contexts: @@ -759,9 +757,6 @@ co: expires_at: Spira uses: Utiliza title: Invità ghjente - lists: - errors: - limit: Ùn pudete più creà altre liste login_activities: authentication_methods: otp: app d'identificazione à dui fattori @@ -1037,7 +1032,6 @@ co: '7889238': 3 mesi min_age_label: Età minima min_favs: Cunservà i statuti favurizzati più di - min_favs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di favuriti. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di favuriti min_reblogs: Cunservà i statuti spartuti più di min_reblogs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di spartere. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di spartere stream_entries: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index f96eaae15f..8c5fdd1dba 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -95,6 +95,7 @@ cs: moderation: active: Aktivní all: Vše + disabled: Deaktivován pending: Čekající silenced: Omezeno suspended: Pozastavené @@ -139,6 +140,7 @@ cs: search: Hledat search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou search_same_ip: Další uživatelé se stejnou IP adresou + security: Zabezpečení security_measures: only_password: Pouze heslo password_and_2fa: Heslo a 2FA @@ -443,6 +445,7 @@ cs: resolve: Přeložit doménu title: Blokovat novou e-mailovou doménu no_email_domain_block_selected: Žádné blokace e-mailové domény nebyly změněny, protože nebyly žádné vybrány + not_permitted: Nepovoleno resolved_dns_records_hint_html: Doménové jméno vede na následující MX domény, které mají nakonec na starost přijímání e-mailů. Blokování MX domény zablokuje registrace z jakékoliv e-mailové adresy, která používá stejnou MX doménu, i když je viditelné doménové jméno jiné. Dejte si pozor, abyste nezablokovali velké e-mailové poskytovatele. resolved_through_html: Přeložena přes %{domain} title: Blokované e-mailové domény @@ -492,6 +495,7 @@ cs: content_policies: comment: Interní poznámka description_html: Můžete definovat politiky obsahu, které budou aplikovány na všechny účty z této domény i jakoukoliv z jejích subdomén. + limited_federation_mode_description_html: Můžete si vybrat, zda povolit federaci s touto doménou. policies: reject_media: Odmítat média reject_reports: Odmítat hlášení @@ -608,11 +612,13 @@ cs: assign_to_self: Přidělit ke mně assigned: Přiřazený moderátor by_target_domain: Doména nahlášeného účtu + cancel: Zrušit category: Kategorie category_description_html: Důvod nahlášení tohoto účtu a/nebo obsahu bude uveden v komunikaci s nahlášeným účtem comment: none: Žádné comment_description_html: 'Pro upřesnění uživatel %{name} napsal:' + confirm: Potvrdit created_at: Nahlášené delete_and_resolve: Smazat příspěvky forwarded: Přeposláno @@ -973,6 +979,7 @@ cs: applications: created: Aplikace úspěšně vytvořena destroyed: Aplikace úspěšně smazána + logout: Odhlásit se regenerate_token: Znovu vygenerovat přístupový token token_regenerated: Přístupový token byl úspěšně vygenerován warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte! @@ -1009,6 +1016,8 @@ cs: resend_confirmation: Znovu odeslat pokyny pro potvrzení reset_password: Obnovit heslo rules: + accept: Přijmout + back: Zpět preamble: Tohle nastavují a prosazují moderátoři %{domain}. title: Některá základní pravidla. security: Zabezpečení @@ -1155,8 +1164,6 @@ cs: storage: Úložiště médií featured_tags: add_new: Přidat nový - errors: - limit: Již jste zvýraznili maximální počet hashtagů hint_html: "Co jsou zvýrazněné hashtagy? Zobrazují se prominentně na vašem veřejném profilu a dovolují lidem prohlížet si vaše veřejné příspěvky konkrétně pod těmi hashtagy. Je to skvělý nástroj pro sledování kreativních děl nebo dlouhodobých projektů." filters: contexts: @@ -1284,7 +1291,7 @@ cs: title: Pozvat lidi lists: errors: - limit: Dosáhli jste maximálního počtu seznamů + limit: Dosáhl jste maximálního počtu seznamů login_activities: authentication_methods: otp: aplikací pro dvoufaktorové ověření @@ -1616,7 +1623,7 @@ cs: '7889238': 3 měsíce min_age_label: Hranice stáří min_favs: Zachovat příspěvky oblíbené alespoň - min_favs_hint: Nesmaže žádný z vašich příspěvků, který obdržel alespoň dané množství oblíbení. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich oblíbení + min_favs_hint: Neodstraňuje žádný z vašich příspěvků, které obdržely alespoň tento počet oblíbených. Nechte prázdné pro odstranění příspěvků bez ohledu na jejich počet oblíbených min_reblogs: Zachovat příspěvky boostnuté alespoň min_reblogs_hint: Nesmaže žádný z vašich příspěvků, který byl boostnut alespoň tolikrát. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich boostnutí stream_entries: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index f870413a5b..1e07fcedf6 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -99,6 +99,7 @@ cy: moderation: active: Yn weithredol all: Popeth + disabled: Analluogwyd pending: Yn aros silenced: Cyfyngedig suspended: Wedi ei atal @@ -145,6 +146,7 @@ cy: search: Chwilio search_same_email_domain: Defnyddwyr eraill gyda'r un parth e-bost search_same_ip: Defnyddwyr eraill gyda'r un IP + security: Diogelwch security_measures: only_password: Cyfrinair yn unig password_and_2fa: Cyfrinair a 2FA @@ -207,7 +209,7 @@ cy: destroy_ip_block: Dileu rheol IP destroy_status: Dileu Postiad destroy_unavailable_domain: Dileu Parth Ddim ar Gael - destroy_user_role: Dinistrio Rôl + destroy_user_role: Dileu Rôl disable_2fa_user: Diffodd 2FA disable_custom_emoji: Analluogi Emoji Addasedig disable_sign_in_token_auth_user: Analluogi Dilysu Tocyn E-bost ar gyfer Defnyddiwr @@ -459,6 +461,7 @@ cy: resolve: Datrys parth title: Rhwystro parth e-bost newydd no_email_domain_block_selected: Heb newid unrhyw flociau parth e-bost gan nad oes un wedi'i ddewis + not_permitted: Dim caniatâd resolved_dns_records_hint_html: Mae'r enw parth yn cyd-fynd â'r parthau MX canlynol, sy'n gyfrifol yn y pen draw am dderbyn e-bost. Bydd rhwystro parth MX yn rhwystro cofrestriadau o unrhyw gyfeiriad e-bost sy'n defnyddio'r un parth MX, hyd yn oed os yw'r enw parth gweladwy yn wahanol. Byddwch yn ofalus i beidio â rhwystro darparwyr e-bost mawr. resolved_through_html: Wedi'i ddatrys trwy %{domain} title: Parthau e-bost wedi'u rhwystro @@ -513,6 +516,7 @@ cy: content_policies: comment: Nodyn mewnol description_html: Gallwch ddiffinio polisïau cynnwys a fydd yn cael eu cymhwyso i bob cyfrif o'r parth hwn ac unrhyw un o'i is-barthau. + limited_federation_mode_description_html: Gallwch ddewis a ydych am ganiatáu ffedereiddio â'r parth hwn. policies: reject_media: Gwrthod cyfryngau reject_reports: Gwrthod adroddiadau @@ -633,11 +637,13 @@ cy: assign_to_self: Neilltuo i mi assigned: Cymedrolwr wedi'i neilltuo by_target_domain: Parth y cyfrif a adroddwyd + cancel: Canslo category: Categori category_description_html: Bydd y rheswm dros adrodd am y cyfrif a/neu’r cynnwys hwn yn cael ei ddyfynnu wrth gyfathrebu â’r cyfrif a adroddwyd comment: none: Dim comment_description_html: 'I ddarparu rhagor o wybodaeth, ysgrifennodd %{name}:' + confirm: Cadarnhau confirm_action: Cadarnhau gweithred cymedroli yn erbyn @%{acct} created_at: Adroddwyd delete_and_resolve: Dileu postiadau @@ -795,7 +801,7 @@ cy: publish_discovered_servers: Cyhoeddi gweinyddion a ddarganfuwyd publish_statistics: Cyhoeddi ystadegau title: Darganfod - trends: Trendiau + trends: Tueddiadau domain_blocks: all: I bawb disabled: I neb @@ -848,6 +854,7 @@ cy: suspend: Mae %{name} wedi atal cyfrif %{target} appeal_approved: Apeliwyd appeal_pending: Apêl yn aros + appeal_rejected: Mae'r apêl wedi'i gwrthod system_checks: database_schema_check: message_html: Mae mudo cronfa ddata ar fin digwydd. Rhedwch nhw i sicrhau bod y rhaglen yn ymddwyn yn ôl y disgwyl @@ -887,6 +894,7 @@ cy: zero: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf title: Dolenni sy'n trendio usage_comparison: Wedi'i rannu %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe + not_allowed_to_trend: Dim caniatâd i dueddu only_allowed: Derbyniwyd yn unig pending_review: Yn aros am adolygiad preview_card_providers: @@ -1030,6 +1038,7 @@ cy: applications: created: Cais wedi ei greu'n llwyddiannus destroyed: Cais wedi ei ddileu'n llwyddiannus + logout: Allgofnodi regenerate_token: Adfywio tocyn mynediad token_regenerated: Adfywiwyd y tocyn mynediad yn llwyddiannus warning: Byddwch yn ofalus iawn gyda'r data hwn. Peidiwch byth â'i rannu ag unrhyw un! @@ -1066,6 +1075,8 @@ cy: resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau reset_password: Ailosod cyfrinair rules: + accept: Derbyn + back: Nôl preamble: Mae'r rhain yn cael eu gosod a'u gorfodi gan y %{domain} cymedrolwyr. title: Rhai rheolau sylfaenol. security: Diogelwch @@ -1213,7 +1224,7 @@ cy: featured_tags: add_new: Ychwanegu errors: - limit: Rydych chi eisoes wedi cynnwys yr uchafswm o hashnodau + limit: Rydych chi eisoes wedi cynnwys y nifer mwyaf o hashnodau hint_html: "Beth yw hashnodau dan sylw? Maen nhw'n cael eu dangos yn amlwg ar eich proffil cyhoeddus ac yn caniatáu i bobl bori'ch postiadau cyhoeddus yn benodol o dan yr hashnodau hynny. Maen nhw'n arf gwych ar gyfer cadw golwg ar weithiau creadigol neu brojectau tymor hir." filters: contexts: @@ -1357,7 +1368,7 @@ cy: title: Gwahodd pobl lists: errors: - limit: Rydych wedi cyrraedd uchafswm y rhestrau + limit: Rydych chi wedi cyrraedd y nifer mwyaf o restrau login_activities: authentication_methods: otp: ap dilysu dau ffactor @@ -1409,7 +1420,7 @@ cy: title: Cymedroil move_handler: carry_blocks_over_text: Symudodd y defnyddiwr hwn o %{acct}, yr oeddech wedi'i rwystro. - carry_mutes_over_text: Symudodd y defnyddiwr hwn o %{acct}, lle roeddech chi wedi'i dewi. + carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i anwybyddu. copy_account_note_text: 'Symudodd y defnyddiwr hwn o %{acct}, dyma oedd eich nodiadau blaenorol amdanynt:' navigation: toggle_menu: Toglo'r ddewislen @@ -1701,7 +1712,7 @@ cy: '7889238': 3 mis min_age_label: Trothwy oedran min_favs: Cadw postiadau ffafriwyd am o leiaf - min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y swm hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau waeth beth fo'u ffefrynnau + min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y nifer hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau, beth bynnag yw eu ffefrynnau min_reblogs: Cadw postiadau wedi eu hybu o leiaf min_reblogs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi cael eu hybu o leiaf y nifer hwn o weithiau. Gadewch yn wag i ddileu postiadau waeth beth fo'u nifer o hybiadau stream_entries: diff --git a/config/locales/da.yml b/config/locales/da.yml index d89aef9f39..52313defa1 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -91,6 +91,7 @@ da: moderation: active: Aktiv all: Alle + disabled: Deaktiveret pending: Afventer silenced: Begrænset suspended: Suspenderet @@ -133,6 +134,7 @@ da: search: Søg search_same_email_domain: Øvrige brugere med samme e-maildomæne search_same_ip: Øvrige brugere med identisk IP + security: Sikkerhed security_measures: only_password: Kun adgangskode password_and_2fa: Adgangskode og 2FA @@ -427,6 +429,7 @@ da: resolve: Opløs domæne title: Blokér nyt e-maildomæne no_email_domain_block_selected: Ingen e-mailblokeringer ændret (ingen var valgt) + not_permitted: Ikke tilladt resolved_dns_records_hint_html: Domænenavnet opløses til flg. MX-domæner, som i sidste ende er ansvarlige for e-mailmodtagelse. Blokering af et MX-domæne blokerer også tilmeldinger fra enhver e-mailadresse på det pågældende MX-domæne, selv hvis det synlige domænenavn er et andet. Pas på ikke ikke at blokere større e-mailudbydere. resolved_through_html: Opløst via %{domain} title: Blokerede e-maildomæner @@ -473,6 +476,7 @@ da: content_policies: comment: Internt notat description_html: Der kan defineres indholdspolitikker, som anvendes på alle konti fra dette domæne samt alle dets underdomæner. + limited_federation_mode_description_html: Man kan vælge, om føderation med dette domæne skal tillades. policies: reject_media: Afvis medier reject_reports: Afvis anmeldelser @@ -582,11 +586,13 @@ da: assign_to_self: Tildel til mig assigned: Tildelt moderator by_target_domain: Anmeldte kontos domæne + cancel: Afbryd category: Kategori category_description_html: Årsagen til anmeldelsen af denne konto og/eller indhold refereres i kommunikationen med den anmeldte konto comment: none: Ingen comment_description_html: 'For at give mere information, skrev %{name}:' + confirm: Bekræft confirm_action: Bekræft moderatorhandling for %{acct} created_at: Anmeldt delete_and_resolve: Slet indlæg @@ -788,6 +794,7 @@ da: suspend: "%{name} suspenderede %{target}s konto" appeal_approved: Appelleret appeal_pending: Appel afventer + appeal_rejected: Appel afvist system_checks: database_schema_check: message_html: Databasemigreringer afventer. Kør dem for at sikre den forventede adfærd fra applikationen @@ -823,6 +830,7 @@ da: other: Delt af %{count} personer den seneste uge title: Populære links usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går + not_allowed_to_trend: Ikke tilladt at trende only_allowed: Kun tilladte pending_review: Afventer revision preview_card_providers: @@ -954,6 +962,7 @@ da: applications: created: Applikation oprettet destroyed: Applikation slettet + logout: Log af regenerate_token: Regenerér adgangstoken token_regenerated: Adgangstoken regenereret warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen! @@ -990,6 +999,8 @@ da: resend_confirmation: Gensend bekræftelsesinstruktioner reset_password: Nulstil adgangskode rules: + accept: Acceptér + back: Tilbage preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne. title: Nogle grundregler. security: Sikkerhed @@ -1137,7 +1148,7 @@ da: featured_tags: add_new: Tilføj nyt errors: - limit: Du har allerede fremhævet det maksimale antal hashtags + limit: Det maksimale antal hashtags er allerede fremhævet hint_html: "Hvad er fremhævede hashtags? De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse hashtags. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter." filters: contexts: @@ -1568,7 +1579,7 @@ da: '7889238': 3 måneder min_age_label: Alderstærskel min_favs: Behold indlæg favoritmarkeret mindst - min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at ignorere denne tærskel under sletning + min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer min_reblogs: Behold indlæg boostet mindst min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning stream_entries: diff --git a/config/locales/de.yml b/config/locales/de.yml index 6944b54e42..6679ebd23e 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -25,7 +25,7 @@ de: admin: account_actions: action: Aktion ausführen - title: Moderationsaktion auf %{acct} ausführen + title: "@%{acct} moderieren" account_moderation_notes: create: Notiz abspeichern created_msg: Moderationshinweis erfolgreich abgespeichert! @@ -64,8 +64,8 @@ de: display_name: Angezeigter Name domain: Domain edit: Bearbeiten - email: E-Mail - email_status: E-Mail-Status + email: E-Mail-Adresse + email_status: Status der E-Mail-Adresse enable: Freischalten enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail enabled: Freigegeben @@ -73,7 +73,7 @@ de: followers: Follower follows: Folge ich header: Titelbild - inbox_url: Posteingangsadresse + inbox_url: Privates Postfach (URL) invite_request_text: Begründung für das Beitreten invited_by: Eingeladen von ip: IP-Adresse @@ -83,7 +83,7 @@ de: local: Lokal remote: Extern title: Herkunft - login_status: Anmeldestatus + login_status: Status media_attachments: Speicherplatz memorialize: In Gedenkseite umwandeln memorialized: Gedenkseite @@ -91,6 +91,7 @@ de: moderation: active: Aktiv all: Alle + disabled: Deaktiviert pending: In Warteschlange silenced: Stummgeschaltet suspended: Gesperrt @@ -125,27 +126,28 @@ de: resend_confirmation: already_confirmed: Dieses Profil wurde bereits bestätigt send: Bestätigungs-E-Mail erneut senden - success: Bestätigungs-E-Mail erfolgreich gesendet! + success: Bestätigungs-E-Mail erfolgreich verschickt! reset: Zurücksetzen reset_password: Passwort zurücksetzen - resubscribe: Wieder abonnieren + resubscribe: Erneut abonnieren role: Rolle search: Suchen search_same_email_domain: Andere Benutzer*innen mit der gleichen E-Mail-Domain search_same_ip: Andere Benutzer*innen mit derselben IP-Adresse + security: Sicherheit security_measures: only_password: Nur Passwort password_and_2fa: Passwort und 2FA sensitive: Inhaltswarnung sensitized: Mit Inhaltswarnung versehen - shared_inbox_url: Geteilte Posteingangsadresse + shared_inbox_url: Gemeinsames Postfach (URL) show: created_reports: Erstellte Meldungen targeted_reports: Von Anderen gemeldet silence: Stummschalten silenced: Stummgeschaltet statuses: Beiträge - strikes: Vorherige Verstöße + strikes: Vorherige Maßnahmen subscribe: Abonnieren suspend: Sperren suspended: Gesperrt @@ -163,12 +165,12 @@ de: unsuspended_msg: Kontosperre von %{username} erfolgreich aufgehoben username: Profilname view_domain: Übersicht für Domain anzeigen - warn: Warnen + warn: Verwarnen web: Web whitelisted: Auf der Whitelist action_logs: action_types: - approve_appeal: Einspruch annehmen + approve_appeal: Einspruch zulassen approve_user: Benutzer*in genehmigen assigned_to_self_report: Bericht zuweisen change_email_user: E-Mail des Profils ändern @@ -211,7 +213,7 @@ de: reopen_report: Meldung wieder eröffnen resend_user: Bestätigungs-E-Mail erneut senden reset_password_user: Passwort zurücksetzen - resolve_report: Bericht lösen + resolve_report: Meldung klären sensitive_account: Konto mit erzwungener Inhaltswarnung silence_account: Konto stummschalten suspend_account: Konto sperren @@ -225,65 +227,65 @@ de: update_domain_block: Domain-Sperre aktualisieren update_ip_block: IP-Regel aktualisieren update_status: Beitrag aktualisieren - update_user_role: Rolle aktualisieren + update_user_role: Rolle bearbeiten actions: approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}" approve_user_html: "%{name} genehmigte die Registrierung von %{target}" - assigned_to_self_report_html: "%{name} hat sich die Meldung %{target} selbst zugewiesen" + assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu" change_email_user_html: "%{name} hat die E-Mail-Adresse von %{target} geändert" change_role_user_html: "%{name} hat die Rolle von %{target} geändert" - confirm_user_html: "%{name} hat die E-Mail-Adresse von %{target} bestätigt" - create_account_warning_html: "%{name} hat eine Warnung an %{target} gesendet" - create_announcement_html: "%{name} hat die neue Ankündigung erstellt: %{target}" + confirm_user_html: "%{name} bestätigte die E-Mail-Adresse von %{target}" + create_account_warning_html: "%{name} sendete eine Warnung an %{target}" + create_announcement_html: "%{name} erstellte die neue Ankündigung: %{target}" create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} gesperrt" - create_custom_emoji_html: "%{name} hat neues Emoji hochgeladen: %{target}" - create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet" + create_custom_emoji_html: "%{name} lud das neue Emoji %{target} hoch" + create_domain_allow_html: "%{name} erlaubte die Föderation mit der Domain %{target}" create_domain_block_html: "%{name} hat die Domain %{target} gesperrt" create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gesperrt" create_ip_block_html: "%{name} hat eine IP-Regel für %{target} erstellt" - create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt" - create_user_role_html: "%{name} hat die Rolle %{target} erstellt" + create_unavailable_domain_html: "%{name} beendete die Zustellung an die Domain %{target}" + create_user_role_html: "%{name} erstellte die Rolle %{target}" demote_user_html: "%{name} hat %{target} heruntergestuft" - destroy_announcement_html: "%{name} hat die neue Ankündigung %{target} gelöscht" + destroy_announcement_html: "%{name} löschte die Ankündigung %{target}" destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} entsperrt" - destroy_custom_emoji_html: "%{name} hat das Emoji gelöscht: %{target}" - destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt" + destroy_custom_emoji_html: "%{name} löschte das Emoji %{target}" + destroy_domain_allow_html: "%{name} verwehrte die Föderation mit der Domain %{target}" destroy_domain_block_html: "%{name} hat die Domain %{target} entsperrt" destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} entsperrt" - destroy_instance_html: "%{name} hat die Daten der Domain %{target} entfernt" + destroy_instance_html: "%{name} entfernte die Daten der Domain %{target} von diesem Server" destroy_ip_block_html: "%{name} hat eine IP-Regel für %{target} entfernt" - destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt" - destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort" - destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht" + destroy_status_html: "%{name} entfernte einen Beitrag von %{target}" + destroy_unavailable_domain_html: "%{name} nahm die Zustellung an die Domain %{target} wieder auf" + destroy_user_role_html: "%{name} löschte die Rolle %{target}" disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert" - disable_custom_emoji_html: "%{name} hat das Emoji deaktiviert: %{target}" + disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} deaktiviert" disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert" - enable_custom_emoji_html: "%{name} hat das Emoji aktiviert: %{target}" + enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}" enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert" 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" + memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um" + promote_user_html: "%{name} beförderte %{target}" 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" + remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}" + reopen_report_html: "%{name} öffnete die Meldung %{target} wieder" resend_user_html: "%{name} hat erneut eine Bestätigungs-E-Mail für %{target} gesendet" - reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt" + reset_password_user_html: "%{name} setzte das Passwort von %{target} zurück" resolve_report_html: "%{name} hat die Meldung %{target} geklärt" sensitive_account_html: "%{name} hat die Medien von %{target} mit einer Inhaltswarnung versehen" - silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet" - suspend_account_html: "%{name} hat das Konto von %{target} gesperrt" - unassigned_report_html: "%{name} hat die Zuweisung der Meldung %{target} entfernt" + silence_account_html: "%{name} schaltete das Konto von %{target} stumm" + suspend_account_html: "%{name} sperrte das Konto von %{target}" + unassigned_report_html: "%{name} entfernte die Zuweisung der Meldung %{target}" unblock_email_account_html: "%{name} hat die E-Mail-Adresse von %{target} entsperrt" unsensitive_account_html: "%{name} hat die Inhaltswarnung für Medien von %{target} aufgehoben" - unsilence_account_html: "%{name} hat die Stummschaltung von %{target} aufgehoben" - unsuspend_account_html: "%{name} hat die Kontosperre von %{target} aufgehoben" - update_announcement_html: "%{name} aktualisierte Ankündigung %{target}" - update_custom_emoji_html: "%{name} hat das Emoji geändert: %{target}" + unsilence_account_html: "%{name} hob die Stummschaltung von %{target} auf" + unsuspend_account_html: "%{name} entsperrte das Konto von %{target}" + update_announcement_html: "%{name} überarbeitete die Ankündigung %{target}" + update_custom_emoji_html: "%{name} bearbeitete das Emoji %{target}" update_domain_block_html: "%{name} hat die Domain-Sperre für %{target} aktualisiert" - update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert" - update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert" + update_ip_block_html: "%{name} änderte die Regel für die IP-Adresse %{target}" + update_status_html: "%{name} überarbeitete einen Beitrag von %{target}" update_user_role_html: "%{name} hat die Rolle %{target} geändert" deleted_account: gelöschtes Konto empty: Protokolle nicht gefunden. @@ -310,36 +312,36 @@ de: custom_emojis: assign_category: Kategorie zuweisen by_domain: Domain - copied_msg: Lokale Kopie des Emoji erfolgreich erstellt + copied_msg: Lokale Kopie des Emojis erfolgreich erstellt copy: Kopieren - copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden + copy_failed_msg: Es konnte keine lokale Kopie dieses Emojis auf diesem Server erstellt werden create_new_category: Neue Kategorie erstellen created_msg: Emoji erfolgreich erstellt! delete: Löschen destroyed_msg: Emoji erfolgreich gelöscht! disable: Deaktivieren disabled: Deaktiviert - disabled_msg: Das Emoji wurde erfolgreich deaktiviert + disabled_msg: Dieses Emoji wurde erfolgreich deaktiviert emoji: Emoji enable: Aktivieren enabled: Aktiviert - enabled_msg: Das Emoji wurde erfolgreich aktiviert + enabled_msg: Dieses Emoji wurde erfolgreich aktiviert image_hint: PNG oder GIF bis %{size} list: Aufführen listed: Angezeigt new: - title: Eigenes Emoji hinzufügen - no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden + title: Benutzerdefiniertes Emoji hinzufügen + no_emoji_selected: Keine Emojis wurden bearbeitet, da keine ausgewählt wurden not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt overwrite: Überschreiben shortcode: Shortcode shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche title: Eigene Emojis - uncategorized: Nicht kategorisiert + uncategorized: Unkategorisiert unlist: Nicht Aufführen unlisted: Nicht aufgeführt - update_failed_msg: Konnte dieses Emoji nicht aktualisieren - updated_msg: Emoji erfolgreich aktualisiert! + update_failed_msg: Konnte dieses Emoji nicht bearbeiten + updated_msg: Emoji erfolgreich bearbeitet! upload: Hochladen dashboard: active_users: aktive Benutzer*innen @@ -360,10 +362,10 @@ de: one: "%{count} unerledigte*r Benutzer*in" other: "%{count} unerledigte Benutzer*innen" resolved_reports: erledigte Meldungen - software: Software + software: Programme sources: Registrierungsort - space: Speicherverbrauch - title: Übersicht + space: Speicherplatz + title: Dashboard top_languages: Häufigste Sprachen top_servers: Aktivste Server website: Website @@ -372,31 +374,31 @@ de: empty: Keine Einsprüche gefunden. title: Einsprüche domain_allows: - add_new: Whitelist-Domain + add_new: Föderation mit Domain erlauben created_msg: Domain wurde erfolgreich zur Whitelist hinzugefügt - destroyed_msg: Domain wurde von der Whitelist entfernt + destroyed_msg: Domain wurde von der Föderation ausgeschlossen export: Exportieren import: Import - undo: Von der Whitelist entfernen + undo: Von der Föderation ausschließen domain_blocks: - add_new: Neue Domain-Sperre hinzufügen + add_new: Neue Domain einschränken created_msg: Die Domain ist jetzt gesperrt bzw. eingeschränkt - destroyed_msg: Die Domain-Sperre wurde aufgehoben + destroyed_msg: Die Einschränkungen zu dieser Domain wurde entfernt domain: Domain - edit: Domain-Sperre bearbeiten + edit: Einschränkungen bearbeiten existing_domain_block: Du hast %{name} bereits stärker eingeschränkt. existing_domain_block_html: Du hast bereits strengere Beschränkungen für die Domain %{name} verhängt. Du musst diese erst aufheben. export: Exportieren import: Importieren new: - create: Sperre einrichten - hint: Die Domainsperre wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden, sondern rückwirkend und automatisch alle Moderationsmethoden auf diese Konten anwenden. + create: Server einschränken + hint: Die Einschränkung einer Domain wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden. Es werden aber alle Moderationsmethoden rückwirkend und automatisch auf diese Konten angewendet. severity: desc_html: "Stummschaltung wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine Sperre wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende keine, um nur Mediendateien abzulehnen." noop: Kein silence: Stummschaltung suspend: Sperren - title: Neue Domain-Sperre + title: Neue Domain einschränken no_domain_block_selected: Keine Domains gesperrt, weil keine ausgewählt wurde(n) not_permitted: Dir ist es nicht erlaubt, diese Handlung durchzuführen obfuscate: Domain-Name verschleiern @@ -409,7 +411,7 @@ de: reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant reject_reports: Meldungen ablehnen reject_reports_hint: Alle Meldungen von dieser Domain ignorieren. Irrelevant für Sperrungen. - undo: Domain-Sperre aufheben + undo: Einschränkungen aufheben view: Domain-Sperre ansehen email_domain_blocks: add_new: Neue hinzufügen @@ -427,6 +429,7 @@ de: resolve: Domain auflösen title: Neue E-Mail-Domain sperren no_email_domain_block_selected: Keine E-Mail-Domain-Sperren wurden geändert, da keine ausgewählt wurden + not_permitted: Nicht gestattet resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails zuständig sind. Das Sperren einer MX-Domain sperrt Anmeldungen aller E-Mail-Adressen, die dieselbe MX-Domain verwenden, auch wenn die sichtbare Domain anders lautet. Achte daher darauf, große E-Mail-Anbieter versehentlich nicht auszusperren. resolved_through_html: Durch %{domain} aufgelöst title: Gesperrte E-Mail-Domains @@ -436,14 +439,14 @@ de: no_file: Keine Datei ausgewählt export_domain_blocks: import: - description_html: Du bist dabei, eine Liste von Domain-Sperren zu importieren. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast. + description_html: Du bist dabei, eine Liste von Domains zu importieren, die auf diesem Server gesperrt oder anderweitig eingeschränkt werden. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast. existing_relationships_warning: Bestehende Folgebeziehungen private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}' private_comment_template: Importiert von %{source} am %{date} - title: Domain-Sperren importieren + title: Domains importieren invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}' new: - title: Domain-Sperren importieren + title: Domains importieren no_file: Keine Datei ausgewählt follow_recommendations: description_html: "Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet." @@ -456,7 +459,7 @@ de: instances: availability: description_html: - one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen. + one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Auslieferungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen. other: Wenn die Zustellung an die Domain seit %{count} Tagen erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen. failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht. failures_recorded: @@ -473,33 +476,34 @@ de: content_policies: comment: Interne Notiz description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden. + limited_federation_mode_description_html: Du kannst wählen, ob du eine Föderation mit dieser Domain gestattest. policies: reject_media: Medien ablehnen reject_reports: Meldungen ablehnen - silence: Stummschalten + silence: Stummschaltung suspend: Gesperrt - policy: Richtlinie - reason: Öffentlicher Grund + policy: Einschränkung + reason: Öffentliche Begründung title: Inhaltsrichtlinien dashboard: - instance_accounts_dimension: Meiste gefolgte Konten - instance_accounts_measure: gespeicherte Konten - instance_followers_measure: unsere Follower dort + instance_accounts_dimension: Meistgefolgte Konten + instance_accounts_measure: deren Konten hier im Cache + instance_followers_measure: eigene Follower dort instance_follows_measure: deren Follower hier - instance_languages_dimension: Top Sprachen - instance_media_attachments_measure: gespeicherte Medienanhänge - instance_reports_measure: Meldungen über deren Accounts - instance_statuses_measure: gespeicherte Beiträge + instance_languages_dimension: Meistverwendete Sprachen + instance_media_attachments_measure: deren Medien hier im Cache + instance_reports_measure: Meldungen zu deren Accounts + instance_statuses_measure: deren Beiträge hier im Cache delivery: all: Alle clear: Zustellfehler löschen failing: Fehlerhaft - restart: Lieferung neu starten - stop: Lieferung stoppen + restart: Zustellung neu starten + stop: Zustellung beenden unavailable: Nicht verfügbar delivery_available: Zustellung funktioniert - delivery_error_days: Tage seitdem die Zustellung nicht funktioniert - delivery_error_hint: Wenn eine Lieferung für %{count} Tage nicht möglich ist, wird sie automatisch als nicht lieferbar markiert. + delivery_error_days: Tage der fehlerhaften Zustellung + delivery_error_hint: Wenn eine Auslieferung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert. destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung. empty: Keine Domains gefunden. known_accounts: @@ -508,11 +512,11 @@ de: moderation: all: Alle limited: Eingeschränkt - title: Moderation + title: Server private_comment: Privater Kommentar public_comment: Öffentlicher Kommentar - purge: Löschen - purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten aus dieser Domain löschen. Das kann eine Weile dauern. + purge: Säubern + purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten von diesem Server löschen. Das kann eine Weile dauern. title: Föderation total_blocked_by_us: Von uns gesperrt total_followed_by_them: Gefolgt von denen @@ -546,8 +550,8 @@ de: relationships: title: Beziehungen von %{acct} relays: - add_new: Neues Relay hinzufügen - delete: Löschen + add_new: Neues Relais hinzufügen + delete: Entfernen description_html: Ein Föderierungsrelay ist ein vermittelnder Server, der eine große Anzahl öffentlicher Beiträge zwischen Servern austauscht, die es abonnieren und zu ihm veröffentlichen. Es kann kleinen und mittleren Servern dabei helfen, Inhalte des Fediverse zu entdecken, was andernfalls das manuelle Folgen anderer Leute auf entfernten Servern durch lokale Nutzer erfordern würde. disable: Ausschalten disabled: Ausgeschaltet @@ -557,8 +561,8 @@ de: inbox_url: Relay-URL pending: Warte auf Zustimmung des Relays save_and_enable: Speichern und aktivieren - setup: Relaisverbindung einrichten - signatures_not_enabled: Relais funktionieren nicht korrekt, während der sichere Modus oder der Whitelist-Modus aktiviert ist + setup: Neues Relais verbinden + signatures_not_enabled: Die Relais funktionieren nicht korrekt, wenn der "secure mode" aktiviert oder die Föderation eingeschränkt ist status: Status title: Relais report_notes: @@ -570,7 +574,7 @@ de: one: "%{count} Notiz" other: "%{count} Notizen" action_log: Protokoll - action_taken_by: Maßnahme ergriffen durch + action_taken_by: Maßnahme ergriffen von actions: delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen. mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung versehen und ein Verstoß wird vermerkt, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können. @@ -585,11 +589,13 @@ de: assign_to_self: Mir zuweisen assigned: Zugewiesene*r Moderator*in by_target_domain: Domain des gemeldeten Kontos + cancel: Abbrechen category: Kategorie category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert comment: none: Kein comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:' + confirm: Bestätigen confirm_action: Moderationsaktion gegen @%{acct} bestätigen created_at: Gemeldet delete_and_resolve: Beiträge löschen @@ -600,9 +606,9 @@ de: mark_as_unresolved: Als ungelöst markieren no_one_assigned: Niemand notes: - create: Kommentar hinzufügen - create_and_resolve: Mit Kommentar lösen - create_and_unresolve: Mit Kommentar wieder öffnen + create: Notiz hinzufügen + create_and_resolve: Mit Notiz wieder lösen + create_and_unresolve: Mit Notiz wieder öffnen delete: Löschen placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt … title: Notizen @@ -636,7 +642,7 @@ de: delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:" record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können - send_email_html: "@%{acct} eine Warnung per E-Mail senden" + send_email_html: "@%{acct} eine Verwarnung per E-Mail schicken" warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. target_origin: Domain des gemeldeten Kontos title: Meldungen @@ -655,11 +661,11 @@ de: devops: DevOps invites: Einladungen moderation: Moderation - special: Spezial - delete: Löschen + special: Besonderheit + delete: Entfernen description_html: Mit Benutzer*inn-Rollen kannst du die Funktionen und Bereiche von Mastodon anpassen, auf die deine Benutzer*innen zugreifen können. edit: Rolle „%{name}“ bearbeiten - everyone: Standardberechtigungen + everyone: Standard everyone_full_description_html: Das ist die Basis-Rolle, die für alle Benutzer*innen gilt – auch für diejenigen ohne zugewiesene Rolle. Alle anderen Rollen erben Berechtigungen davon. permissions_count: one: "%{count} Berechtigung" @@ -784,14 +790,15 @@ de: strikes: actions: delete_statuses: "%{name} hat die Beiträge von %{target} entfernt" - disable: "%{name} hat das Konto von %{target} eingefroren" + disable: "%{name} fror das Konto von %{target} ein" mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen" none: "%{name} hat eine Warnung an %{target} gesendet" sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen" - silence: "%{name} hat das Konto von %{target} stummgeschaltet" - suspend: "%{name} hat das Konto von %{target} gesperrt" + silence: "%{name} schaltete das Konto von %{target} stumm" + suspend: "%{name} sperrte das Konto von %{target}" appeal_approved: Einspruch angenommen appeal_pending: Einspruch ausstehend + appeal_rejected: Einspruch abgelehnt system_checks: database_schema_check: message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führe sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält @@ -827,6 +834,7 @@ de: other: In der letzten Woche von %{count} Personen geteilt title: Angesagte Links usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal + not_allowed_to_trend: Darf nicht trenden only_allowed: Nur Genehmigte pending_review: Überprüfung ausstehend preview_card_providers: @@ -851,7 +859,7 @@ de: current_score: Aktuelle Punktzahl %{score} dashboard: tag_accounts_measure: eindeutige Verwendungen - tag_languages_dimension: Top Sprachen + tag_languages_dimension: Meistverwendete Sprachen tag_servers_dimension: Top Server tag_servers_measure: verschiedene Server tag_uses_measure: Gesamtnutzungen @@ -863,21 +871,21 @@ de: not_usable: Kann nicht verwendet werden peaked_on_and_decaying: In den Trends am %{date}, jetzt absteigend title: Angesagte Hashtags - trendable: Darf unter Trends erscheinen - trending_rank: 'Trend #%{rank}' - usable: Kann verwendet werden - usage_comparison: Heute %{today} Mal genutzt, gestern %{yesterday} Mal + trendable: Darf in den Trends erscheinen + trending_rank: Platz %{rank} + usable: Darf verwendet werden + usage_comparison: Heute %{today}-mal und gestern %{yesterday}-mal genutzt used_by_over_week: one: In der letzten Woche von einer Person genutzt other: In der letzten Woche von %{count} Personen genutzt title: Trends - trending: Häufig diskutiert + trending: Angesagt warning_presets: add_new: Neu hinzufügen delete: Löschen edit_preset: Warnungsvorlage bearbeiten - empty: Du hast noch keine Warnungsvorlagen hinzugefügt. - title: Warnungsvorlagen verwalten + empty: Du hast noch keine Moderationsvorlagen hinzugefügt. + title: Moderationsvorlagen verwalten webhooks: add_new: Endpunkt hinzufügen delete: Löschen @@ -925,7 +933,7 @@ de: new_trending_statuses: title: Angesagte Beiträge new_trending_tags: - no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags. + no_approved_tags: Es gibt keine genehmigten Hashtags, die gerade im Trend liegen. requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten angesagten Hashtag übertreffen, der derzeit #%{lowest_tag_name} mit einer Punktzahl von %{lowest_tag_score} ist.' title: Angesagte Hashtags subject: Neue Trends zur Überprüfung auf %{instance} @@ -944,7 +952,7 @@ de: discovery: Entdecken localization: body: Mastodon wird von Freiwilligen übersetzt. - guide_link: https://de.crowdin.com/project/mastodon + guide_link: https://de.crowdin.com/project/mastodon/de guide_link_text: Alle können mitmachen und etwas dazu beitragen. sensitive_content: Inhaltswarnung toot_layout: Timeline-Layout @@ -952,12 +960,13 @@ de: notification_preferences: E-Mail-Einstellungen ändern salutation: "%{name}," settings: 'E-Mail-Einstellungen ändern: %{link}' - view: 'Ansehen:' + view: 'Hier überprüfen:' view_profile: Profil anzeigen - view_status: Beitrag öffnen + view_status: Beitrag anschauen applications: created: Anwendung erfolgreich erstellt destroyed: Anwendung erfolgreich gelöscht + logout: Abmelden regenerate_token: Zugangs-Token neu erstellen token_regenerated: Zugriffstoken erfolgreich neu erstellt warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem! @@ -991,13 +1000,15 @@ de: saml: SAML register: Registrieren registration_closed: "%{instance} akzeptiert keine neuen Mitglieder" - resend_confirmation: Bestätigungsanweisungen erneut senden + resend_confirmation: Bestätigungs-E-Mail erneut versenden reset_password: Passwort zurücksetzen rules: + accept: Akzeptieren + back: Zurück preamble: Diese werden von den %{domain}-Moderator*innen festgelegt und erzwungen. title: Einige Grundregeln. security: Sicherheit - set_new_password: Neues Passwort setzen + set_new_password: Neues Passwort einrichten setup: email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten. email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern. @@ -1015,14 +1026,14 @@ de: pending: Die Prüfung deiner Bewerbung steht noch aus. Dies kann einige Zeit in Anspruch nehmen. Sobald deine Bewerbung genehmigt wurde, erhältst du eine E-Mail. redirecting_to: Dein Konto ist inaktiv, weil es zu %{acct} umgezogen ist. view_strikes: Vorherige Verstöße deines Kontos ansehen - too_fast: Formular zu schnell gesendet, versuche es erneut. + too_fast: Formular zu schnell abgeschickt, versuche es erneut. use_security_key: Sicherheitsschlüssel verwenden authorize_follow: already_following: Du folgst diesem Konto bereits - already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts versendet - error: Das Remote-Konto konnte nicht geladen werden + already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts gestellt + error: Bedauerlicherweise konnte das externe Konto nicht geladen werden follow: Folgen - follow_request: 'Du hast eine Folgeanfrage gesendet an:' + follow_request: 'Du hast eine Folgeanfrage gestellt an:' following: 'Erfolg! Du folgst nun:' post_follow: close: Oder du schließt einfach dieses Fenster. @@ -1033,7 +1044,7 @@ de: confirm: Fortfahren hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen." invalid_password: Ungültiges Passwort - prompt: Gib dein Passwort ein, um fortzufahren + prompt: Bestätige mit deinem Passwort, um fortzufahren crypto: errors: invalid_key: ist kein gültiger Ed25519- oder Curve25519-Schlüssel @@ -1044,12 +1055,12 @@ de: with_month_name: "%B %d, %Y" datetime: distance_in_words: - about_x_hours: "%{count}h" - about_x_months: "%{count}mo" - about_x_years: "%{count}y" - almost_x_years: "%{count}y" + about_x_hours: "%{count} h" + about_x_months: "%{count} Mon." + about_x_years: "%{count} J" + almost_x_years: "%{count} J" half_a_minute: Gerade eben - less_than_x_minutes: "%{count}m" + less_than_x_minutes: "%{count} Min" less_than_x_seconds: Gerade eben over_x_years: "%{count}J" x_days: "%{count}T" @@ -1114,10 +1125,10 @@ de: '422': content: Sicherheitsüberprüfung fehlgeschlagen. Sperrst du Cookies aus? title: Sicherheitsüberprüfung fehlgeschlagen - '429': Du wurdest gedrosselt + '429': Zu viele Anfragen '500': content: Bitte verzeih', etwas ist bei uns schiefgegangen. - title: Diese Seite ist kaputt + title: Diese Seite enthält einen Fehler '503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden. noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren. existing_username_validator: @@ -1130,29 +1141,29 @@ de: hint_html: Du kannst ein Archiv deiner Beiträge, Listen, hochgeladenen Medien usw. anfordern. Die exportierten Daten werden im ActivityPub-Format gespeichert und können mit geeigneter Software ausgewertet und angezeigt werden. Du kannst alle 7 Tage ein Archiv erstellen lassen. in_progress: Persönliches Archiv wird erstellt … request: Dein Archiv anfordern - size: Größe - blocks: Gesperrte Accounts + size: Dateigröße + blocks: Gesperrte Profile bookmarks: Lesezeichen csv: CSV domain_blocks: Gesperrte Domains lists: Listen - mutes: Stummgeschaltete Accounts + mutes: Stummgeschaltete Profile storage: Medienspeicher featured_tags: - add_new: Neu hinzufügen + add_new: Neuen hinzufügen errors: - limit: Du hast bereits die maximale Anzahl an empfohlenen Hashtags erreicht + limit: Du hast bereits die maximale Anzahl an Hashtags erreicht hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil hervorgehoben und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen." filters: contexts: account: Profile - home: Startseite + home: Startseite und Listen notifications: Mitteilungen public: Öffentliche Timelines thread: Unterhaltungen edit: - add_keyword: Stichwort hinzufügen - keywords: Stichwörter + add_keyword: Schlagwort hinzufügen + keywords: Schlagworte statuses: Individuelle Beiträge statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen.. title: Filter bearbeiten @@ -1166,7 +1177,7 @@ de: expires_in: Läuft ab in %{distance} expires_on: Läuft am %{date} ab keywords: - one: "%{count} Stichwort" + one: "%{count} Schlagworte" other: "%{count} Stichwörter" statuses: one: "%{count} Beitrag" @@ -1179,14 +1190,14 @@ de: save: Neuen Filter speichern title: Neuen Filter hinzufügen statuses: - back_to_filter: Zurück zum Filter + back_to_filter: Zurück zu den Filtern batch: remove: Filter entfernen index: hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen. title: Gefilterte Beiträge footer: - trending_now: In den Trends + trending_now: Jetzt in den Trends generic: all: Alle all_items_on_page_selected_html: @@ -1198,7 +1209,7 @@ de: changes_saved_msg: Änderungen gespeichert! copy: Kopieren delete: Löschen - deselect: Auswahl für alle aufheben + deselect: Alle abwählen none: Keine order_by: Sortieren nach save_changes: Änderungen speichern @@ -1220,15 +1231,15 @@ de: merge_long: Behalte existierende Datensätze und füge neue hinzu overwrite: Überschreiben overwrite_long: Ersetze aktuelle Datensätze mit neuen - preface: Daten, die du von einem anderen Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast. + preface: Daten, die du von einem Mastodon-Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast. success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet types: - blocking: Sperrliste + blocking: Gesperrte Profile bookmarks: Lesezeichen - domain_blocking: Domain-Sperrliste - following: Folgeliste - muting: Stummschaltungsliste - upload: Liste importieren + domain_blocking: Gesperrte Domains + following: Folge ich + muting: Stummgeschaltete Profile + upload: Datei importieren invites: delete: Deaktivieren expired: Abgelaufen @@ -1243,14 +1254,14 @@ de: generate: Einladungslink erstellen invited_by: 'Du wurdest eingeladen von:' max_uses: - one: 1 mal verwendet - other: "%{count} mal verwendet" + one: 1-mal verwendet + other: "%{count}-mal verwendet" max_uses_prompt: Keine Einschränkung prompt: Erstelle Einladungen und teile die dazugehörigen Links, um anderen einen Zugang zu diesem Server zu gewähren table: expires_at: Läuft ab uses: Verwendet - title: Leute einladen + title: Einladungen lists: errors: limit: Du hast die maximale Anzahl an Listen erreicht @@ -1279,7 +1290,7 @@ de: already_moved: ist das gleiche Konto, zu dem du bereits umgezogen bist missing_also_known_as: referenziert nicht zurück auf dieses Konto move_to_self: darf nicht das aktuelles Konto sein - not_found: kann nicht gefunden werden + not_found: konnte nicht gefunden werden on_cooldown: Die Abklingzeit läuft gerade followers_count: Anzahl der Follower zum Zeitpunkt der Migration des Accounts incoming_migrations: Von einem anderen Konto umziehen @@ -1317,7 +1328,7 @@ de: subject: "%{name} registrierte sich" favourite: body: 'Dein Beitrag wurde von %{name} favorisiert:' - subject: "%{name} hat deinen Beitrag favorisiert" + subject: "%{name} favorisierte deinen Beitrag" title: Neue Favorisierung follow: body: "%{name} folgt dir jetzt!" @@ -1326,12 +1337,12 @@ de: follow_request: action: Verwalte Folge-Anfragen body: "%{name} möchte dir folgen" - subject: 'Ausstehender Follower: %{name}' - title: Neue Folge-Anfrage + subject: 'Ausstehende Folgeanfragen: %{name}' + title: Neue Folgeanfrage mention: action: Antworten - body: "%{name} hat dich erwähnt:" - subject: "%{name} hat dich erwähnt" + body: 'Du wurdest von %{name} erwähnt:' + subject: "%{name} erwähnte dich" title: Neue Erwähnung poll: subject: Eine Umfrage von %{name} ist beendet @@ -1340,7 +1351,7 @@ de: subject: "%{name} hat deinen Beitrag geteilt" title: Dein Beitrag wurde geteilt status: - subject: "%{name} hat gerade etwas gepostet" + subject: "%{name} veröffentlichte gerade einen Beitrag" update: subject: "%{name} bearbeitete einen Beitrag" notifications: @@ -1350,12 +1361,12 @@ de: number: human: decimal_units: - format: "%n%u" + format: "%n %u" units: - billion: B - million: M + billion: Mrd + million: Mio quadrillion: Q - thousand: K + thousand: Tsd trillion: T otp_authentication: code_hint: Gib den Code ein, den deine 2FA- bzw. TOTP-App generiert hat, um den Vorgang zu bestätigen @@ -1364,7 +1375,7 @@ de: instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst." manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App. setup: Einrichten - wrong_code: Der eingegebene Code war ungültig! Sind die Serverzeit und die Gerätezeit korrekt? + wrong_code: Der eingegebene Code ist ungültig! Laufen Serverzeit und Gerätezeit synchron? pagination: newer: Neuer next: Weiter @@ -1373,12 +1384,12 @@ de: truncate: "…" polls: errors: - already_voted: Du hast bereits für diese Umfrage abgestimmt + already_voted: Du hast an dieser Umfrage bereits teilgenommen duplicate_options: enthält doppelte Einträge - duration_too_long: ist zu weit in der Zukunft + duration_too_long: liegt zu weit in der Zukunft duration_too_short: ist zu früh - expired: Die Umfrage ist bereits vorbei - invalid_choice: Die gewählte Abstimmoption existiert nicht + expired: Diese Umfrage ist bereits beendet + invalid_choice: Diese Auswahl existiert nicht over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein too_few_options: muss mindestens einen Eintrag haben too_many_options: kann nicht mehr als %{max} Einträge beinhalten @@ -1421,7 +1432,7 @@ de: content_warning: 'Inhaltswarnung:' descriptions: account: Öffentliche Beiträge von @%{acct} - tag: 'Öffentliche Beiträge mit dem Tag #%{hashtag}' + tag: 'Öffentliche Beiträge mit dem Hashtag #%{hashtag}' scheduled_statuses: over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht @@ -1433,7 +1444,7 @@ de: alipay: Alipay blackberry: BlackBerry chrome: Chrome - edge: Microsoft Edge + edge: Edge electron: Electron firefox: Firefox generic: Unbekannter Browser @@ -1459,15 +1470,15 @@ de: firefox_os: Firefox OS ios: iOS linux: Linux - mac: Mac + mac: macOS other: unbekanntes Betriebssystem windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone revoke: Widerrufen - revoke_success: Sitzung erfolgreich geschlossen + revoke_success: Sitzung erfolgreich widerrufen title: Sitzungen - view_authentication_history: Authentifizierungsverlauf deines Kontos anzeigen + view_authentication_history: Anmeldeverlauf deines Kontos anzeigen settings: account: Konto account_settings: Kontoeinstellungen @@ -1475,14 +1486,14 @@ de: appearance: Design authorized_apps: Genehmigte Apps back: Zurück zu Mastodon - delete: Konto löschen + delete: Kontolöschung development: Entwicklung edit_profile: Profil bearbeiten export: Exportieren featured_tags: Empfohlene Hashtags import: Importieren import_and_export: Importieren und exportieren - migrate: Konto-Umzug + migrate: Kontoumzug notifications: Benachrichtigungen preferences: Einstellungen profile: Profil @@ -1507,9 +1518,9 @@ de: content_warning: 'Inhaltswarnung: %{warning}' default_language: Wie die Sprache des Webinterface disallowed_hashtags: - one: 'enthält einen verbotenen Hashtag: %{tags}' - other: 'enthält verbotene Hashtags: %{tags}' - edited_at_html: Bearbeitet %{date} + one: 'enthält einen nicht-erlaubten Hashtag: %{tags}' + other: 'enthält nicht-erlaubte Hashtags: %{tags}' + edited_at_html: 'Bearbeitet: %{date}' errors: in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren. open_in_web: Im Web öffnen @@ -1532,7 +1543,7 @@ de: show_older: Ältere anzeigen show_thread: Thread anzeigen sign_in_to_participate: Melde dich an, um an der Unterhaltung teilzunehmen - title: '%{name}: "%{quote}"' + title: "%{name}: „%{quote}“" visibilities: direct: Direktnachricht private: Nur eigene Follower @@ -1540,7 +1551,7 @@ de: public: Öffentlich public_long: Für alle sichtbar unlisted: Nicht gelistet - unlisted_long: Für alle sichtbar, aber in öffentlichen Timelines nicht aufgelistet + unlisted_long: Für alle sichtbar (mit Ausnahme von öffentlichen Timelines) statuses_cleanup: enabled: Automatisch alte Beiträge löschen enabled_hint: Löscht automatisch deine Beiträge, sobald sie die angegebene Altersgrenze erreicht haben, es sei denn, sie entsprechen einer der unten angegebenen Ausnahmen @@ -1573,7 +1584,7 @@ de: '7889238': 3 Monate min_age_label: Altersgrenze min_favs: Behalte Beiträge, die häufiger favorisiert wurden als … - min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen + min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge, unabhängig der Anzahl an Favorisierungen zu löschen min_reblogs: Behalte Beiträge, die öfter geteilt wurden als min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen stream_entries: @@ -1582,7 +1593,7 @@ de: sensitive_content: Inhaltswarnung strikes: errors: - too_late: Es ist zu spät, um gegen diesen Verstoß Einspruch zu erheben + too_late: Es ist zu spät, um gegen diese Maßnahme Einspruch zu erheben tags: does_not_match_previous_name: entspricht nicht dem vorherigen Namen themes: @@ -1591,9 +1602,9 @@ de: mastodon-light: Mastodon (Hell) time: formats: - default: "%d.%m.%Y %H:%M" + default: "%d.%m.%Y um %H:%M Uhr" month: "%b %Y" - time: "%H:%M" + time: "%H:%M Uhr" two_factor_authentication: add: Hinzufügen disable: Zwei-Faktor-Authentisierung (2FA) deaktivieren @@ -1622,16 +1633,16 @@ de: backup_ready: explanation: Du hast eine vollständige Sicherung deines Mastodon-Kontos angefordert. Das Backup kann jetzt heruntergeladen werden! subject: Dein persönliches Archiv kann heruntergeladen werden - title: Archivmitnahme + title: Archiv-Download suspicious_sign_in: - change_password: dein Passwort zu ändern - details: 'Hier sind die Details des Versuchs:' + change_password: dein Passwort ändern + details: 'Hier sind die Details zu den Anmeldeversuchen:' explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt. further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern. subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen title: Eine neue Anmeldung warning: - appeal: Einspruch einsenden + appeal: Einspruch erheben appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden. categories: spam: Spam @@ -1643,7 +1654,7 @@ de: sensitive: Von nun an werden alle deine hochgeladenen Mediendateien mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt. silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen. suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. - reason: 'Grund:' + reason: 'Begründung:' statuses: 'Zitierte Beiträge:' subject: delete_statuses: Deine Beiträge auf %{acct} wurden entfernt @@ -1662,14 +1673,14 @@ de: silence: Konto stummgeschaltet suspend: Konto gesperrt welcome: - edit_profile_action: Profil einrichten + edit_profile_action: Profil bearbeiten edit_profile_step: Du kannst dein Profil anpassen, indem du ein Profilbild hochlädst, deinen Anzeigenamen änderst und vieles mehr. Du kannst dich dafür entscheiden, neue Follower zu überprüfen, bevor sie dir folgen dürfen. explanation: Hier sind ein paar Tipps, um loszulegen - final_action: Fang an zu posten + final_action: Mit erstem Beitrag starten final_step: 'Fang jetzt an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel in der lokalen Timeline oder über die Hashtags. Möglicherweise möchtest du dich allen mit dem Hashtag #neuhier vorstellen.' full_handle: Dein vollständiger Profilname full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können. - subject: Willkommen bei Mastodon + subject: Willkommen bei Mastodon! title: Willkommen an Bord, %{name}! users: follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen @@ -1686,7 +1697,7 @@ de: error: Beim Hinzufügen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut. success: Dein Sicherheitsschlüssel wurde erfolgreich hinzugefügt. delete: Löschen - delete_confirmation: Bist du sicher, dass du diesen Sicherheitsschlüssel löschen möchtest? + delete_confirmation: Bist du dir sicher, dass du diesen Sicherheitsschlüssel löschen möchtest? description_html: Wenn du die Authentifizierung mit Sicherheitsschlüssel aktivierst, musst du einen deiner Sicherheitsschlüssel verwenden, um dich anmelden zu können. destroy: error: Es gab ein Problem beim Löschen deines Sicherheitsschlüssels. Bitte versuche es erneut. diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml index 5ce0157045..2881ce4c65 100644 --- a/config/locales/devise.bg.yml +++ b/config/locales/devise.bg.yml @@ -41,7 +41,7 @@ bg: subject: 'Mastodon: Потвърдете имейла за %{instance}' title: Потвърдете своя имейл адрес reset_password_instructions: - action: Промяна на парола + action: Промяна на паролата explanation: Поискахте нова парола за акаунта си. extra: Ако не сте заявили това, то игнорирайте това е-писмо. Паролата ви няма да се променя, докато не влезете от връзката по-горе и не създадете нова. subject: 'Mastodon: Указания за задаване на нова парола' diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index e5ce87ebec..577cf13004 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -2,24 +2,24 @@ de: devise: confirmations: - confirmed: Deine E-Mail-Adresse wurde bestätigt. + confirmed: Deine E-Mail-Adresse wurde erfolgreich bestätigt. send_instructions: Du wirst in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast. send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, wirst du in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast. failure: already_authenticated: Du bist bereits angemeldet. inactive: Dein Konto wurde noch nicht aktiviert. invalid: "%{authentication_keys} oder Passwort ungültig." - last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird. + last_attempt: Du hast nur noch einen Versuch, bevor dein Zugang gesperrt wird. locked: Dein Konto ist gesperrt. not_found_in_database: "%{authentication_keys} oder Passwort ungültig." - pending: Dein Konto wird immer noch überprüft. + pending: Dein Konto wird weiterhin überprüft. timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren. unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst. unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst. mailer: confirmation_instructions: action: E-Mail-Adresse verifizieren - action_with_app: Bestätigen und zu %{app} zurückkehren + action_with_app: Bestätigen – und dann zur App %{app} zurückkehren explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen. @@ -31,35 +31,35 @@ de: subject: 'Mastodon: E-Mail-Adresse geändert' title: Neue E-Mail-Adresse password_change: - explanation: Das Passwort für deinen Account wurde geändert. + explanation: Deine Zugangsdaten wurden geändert. extra: Wenn du dein Passwort nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff auf deinem Account erlangt hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast. subject: 'Mastodon: Passwort geändert' title: Passwort geändert reconfirmation_instructions: explanation: Bestätige deine neue E-Mail-Adresse, um sie zu ändern. extra: Wenn diese Änderung nicht von dir ausgeführt wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst. - subject: 'Mastodon: Bestätige E-Mail-Adresse für %{instance}' + subject: 'Mastodon: E-Mail-Adresse für %{instance} bestätigen' title: E-Mail-Adresse verifizieren reset_password_instructions: - action: Ändere Passwort + action: Passwort ändern explanation: Du hast ein neues Passwort für deinen Account angefragt. extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern, solange du den obigen Link anklickst und ein neues erstellst. - subject: 'Mastodon: Passwort zurücksetzen' + subject: 'Mastodon: Anleitung zum Zurücksetzen deines Passworts' title: Passwort zurücksetzen two_factor_disabled: - explanation: Zwei-Faktor-Authentifizierung für dein Konto wurde deaktiviert. Login ist jetzt nur mit E-Mail-Adresse und Passwort möglich. - subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung deaktiviert' + explanation: Zwei-Faktor-Authentisierung (2FA) für dein Konto wurde deaktiviert. Eine Anmeldung ist jetzt nur noch mit E-Mail-Adresse und Passwort möglich. + subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) deaktiviert' title: 2FA deaktiviert two_factor_enabled: - explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, das von der verbundenen TOTP-App generiert wird, wird für den Login benötigt. - subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert' + explanation: Die Zwei-Faktor-Authentisierung (2FA) wurde für dein Konto aktiviert. Das zeitbasierte Einmalkennwort, das von deiner TOTP-App generiert wird, muss bei jeder Anmeldung zusätzlich eingegeben werden. + subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) aktiviert' title: 2FA aktiviert two_factor_recovery_codes_changed: explanation: Die vorherigen Wiederherstellungscodes wurden ungültig gemacht und es wurden neue erstellt. subject: 'Mastodon: Zwei-Faktor-Wiederherstellungscodes neu erstellt' title: 2FA-Wiederherstellungscodes geändert unlock_instructions: - subject: 'Mastodon: Konto entsperren' + subject: 'Mastodon: Anleitung zur Entsperrung deines Kontos' webauthn_credential: added: explanation: Der folgende Sicherheitsschlüssel wurde zu deinem Konto hinzugefügt @@ -87,8 +87,8 @@ de: updated: Ihr Passwort wurde erfolgreich geändert. Du bist jetzt angemeldet. updated_not_active: Dein Passwort wurde erfolgreich geändert. registrations: - destroyed: Dein Konto wurde gelöscht. - signed_up: Willkommen! Du hast dich erfolgreich registriert. + destroyed: Tschüss! Dein Konto wurde erfolgreich gelöscht. Wir hoffen, dich bald wiederzusehen. + signed_up: Herzlich willkommen! Du hast dich erfolgreich registriert. signed_up_but_inactive: Du hast dich erfolgreich registriert. Allerdings ist dein Konto noch nicht aktiviert und du kannst dich daher noch nicht anmelden. signed_up_but_locked: Du hast dich erfolgreich registriert. Allerdings ist dein Konto gesperrt und du kannst dich daher nicht anmelden. signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast, werden wir deine Anfrage überprüfen. Du wirst benachrichtigt werden, falls die Anfrage angenommen wurde. diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index ce5a35efde..08bc18ec1f 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -18,13 +18,13 @@ fi: unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat. mailer: confirmation_instructions: - action: Vahvista sähköpostiosoitteesi + action: Vahvista sähköpostiosoite action_with_app: Vahvista ja palaa %{app} - explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Aktivoi tili yhdellä klikkauksella. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta. + explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta. explanation_when_pending: Teit hakemuksen kutsusta palvelimelle %{host} tällä sähköpostiosoitteella. Kun olet vahvistanut sähköpostiosoitteesi, tarkistamme hakemuksesi. Voit kirjautua sisään muuttaaksesi hakemuksen sisältöä tai poistaaksesi tilin, mutta et voi käyttää suurinta osaa toiminnallisuudesta ennen kuin hakemuksesi on hyväksytty. Jos hakemuksesi hylätään, tietosi poistetaan eikä sinulta tarvita enempää toimia. Jos sinä et tehnyt hakemusta, voit jättää tämän viestin huomiotta. - extra_html: Katso myös palvelimen säännöt ja käyttöehdot. + extra_html: Tutustu myös palvelimen sääntöihin ja palveluehtoihimme. subject: 'Mastodon: Vahvistusohjeet instanssille %{instance}' - title: Vahvista sähköpostiosoitteesi + title: Vahvista sähköpostiosoite email_changed: explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:' extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään. diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml index 6ae910da0b..14b26845ae 100644 --- a/config/locales/devise.my.yml +++ b/config/locales/devise.my.yml @@ -3,18 +3,30 @@ my: devise: confirmations: confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။ + send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ failure: + already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။ invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ + last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။ + locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။ not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ + timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။ + unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။ + unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။ mailer: confirmation_instructions: action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ + extra_html: ကျေးဇူးပြု၍ ဆာဗာစည်းမျဉ်းများ နှင့် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများကိုလည်း စစ်ဆေးကြည့်ပါ။ + subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ email_changed: + explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် - subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ' title: အီးမေးလ်လိပ်စာအသစ် password_change: + explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။ subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ' title: စကားဝှက်ပြောင်းလဲသွားပြီ reconfirmation_instructions: diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index e3f5dee2a9..85b775b0b6 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -20,8 +20,8 @@ zh-TW: confirmation_instructions: action: 驗證電子郵件地址 action_with_app: 確認並返回 %{app} - explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 - explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。 + explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。 + explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。 extra_html: 同時也請看看伺服器規則服務條款。 subject: Mastodon:%{instance} 確認說明 title: 驗證電子郵件地址 diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml index 21a94acecc..e79aa0359f 100644 --- a/config/locales/doorkeeper.cy.yml +++ b/config/locales/doorkeeper.cy.yml @@ -129,7 +129,7 @@ cy: crypto: Amgryptio o ben i ben favourites: Ffefrynnau filters: Hidlyddion - follow: Yn dilyn, Wedi Tewi a Blociau + follow: Dilynion, Anwybyddiadau a Blociau follows: Yn dilyn lists: Rhestrau media: Atodiadau cyfryngau diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 21f508d90d..00c4ad678e 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -25,11 +25,11 @@ de: edit: Bearbeiten submit: Speichern confirmations: - destroy: Bist du sicher? + destroy: Bist du dir sicher? edit: title: Anwendung bearbeiten form: - error: Hoppla! Bitte überprüfe das Formular auf mögliche Fehler + error: Ups! Bitte überprüfe das Formular auf mögliche Fehler help: native_redirect_uri: Benutze %{native_redirect_uri} für lokale Tests redirect_uri: Benutze eine Zeile pro URI @@ -61,7 +61,7 @@ de: title: Ein Fehler ist aufgetreten new: prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es ist eine Anwendung von Drittanbietern. Wenn du ihr nicht vertraust, dann solltest du sie nicht autorisieren." - review_permissions: Rechte überprüfen + review_permissions: Berechtigungen überprüfen title: Autorisierung erforderlich show: title: Kopiere diesen Autorisierungs-Code und füge ihn in die Anwendung ein. @@ -69,7 +69,7 @@ de: buttons: revoke: Widerrufen confirmations: - revoke: Bist du sicher? + revoke: Bist du dir sicher? index: authorized_at: Autorisiert am %{date} description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht zuordnen kannst oder wenn sich eine Anwendung verdächtig verhält, kannst du den Zugriff widerrufen. @@ -114,9 +114,9 @@ de: notice: Anwendung widerrufen. grouped_scopes: access: - read: Nur-Lese-Zugriff + read: Nur Lesezugriff read/write: Lese- und Schreibzugriff - write: Schreibzugriff + write: Nur Schreibzugriff title: accounts: Konten admin/accounts: Verwaltung der Konten @@ -129,7 +129,7 @@ de: crypto: Ende-zu-Ende-Verschlüsselung favourites: Favoriten filters: Filter - follow: Folge ich, Stummschaltungen und Blockierungen + follow: Folge ich, Stummschaltungen und Sperrungen follows: Folge ich lists: Listen media: Medienanhänge @@ -168,9 +168,9 @@ de: push: deine Push-Benachrichtigungen erhalten read: all deine Daten lesen read:accounts: deine Konteninformationen einsehen - read:blocks: deine Blockaden einsehen + read:blocks: deine Sperren einsehen read:bookmarks: deine Lesezeichen lesen - read:favourites: deine Favoriten ansehen + read:favourites: deine Favoriten lesen read:filters: deine Filter ansehen read:follows: sehen, wem du folgst read:lists: deine Listen sehen @@ -186,10 +186,10 @@ de: write:conversations: Unterhaltungen stummschalten und löschen write:favourites: Beiträge favorisieren write:filters: Filter erstellen - write:follows: Leuten folgen + write:follows: Profilen folgen write:lists: Listen erstellen write:media: Mediendateien hochladen write:mutes: Profile und Unterhaltungen stummschalten write:notifications: deine Benachrichtigungen leeren - write:reports: andere Leute melden + write:reports: andere Profile melden write:statuses: Beiträge veröffentlichen diff --git a/config/locales/doorkeeper.fr-QC.yml b/config/locales/doorkeeper.fr-QC.yml index f8a5b64846..6cccf48471 100644 --- a/config/locales/doorkeeper.fr-QC.yml +++ b/config/locales/doorkeeper.fr-QC.yml @@ -122,12 +122,14 @@ fr-QC: admin/accounts: Gestion des comptes admin/all: Toutes les fonctionnalités d'administration admin/reports: Gestion des rapports + all: Accès complet à votre compte Mastodon blocks: Bloqués bookmarks: Marque-pages conversations: Conversations crypto: Chiffrement de bout-en-bout favourites: Favoris filters: Filtres + follow: Abonnements, comptes masqués et comptes bloqués follows: Abonnements lists: Listes media: Fichiers médias @@ -147,18 +149,18 @@ 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:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs de courriels 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:domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines + admin:read:email_domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines de courriel 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:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs de courriels 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:email_domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines de courriel 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 diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml index b7697074cb..345a3b2649 100644 --- a/config/locales/doorkeeper.my.yml +++ b/config/locales/doorkeeper.my.yml @@ -1,24 +1,174 @@ --- my: activerecord: + attributes: + doorkeeper/application: + name: အက်ပလီကေးရှင်းအမည် + redirect_uri: URI ကို ပြန်ညွှန်းရန် + scopes: နယ်ပယ်များ + website: အက်ပလီကေးရှင်းဝဘ်ဆိုဒ် errors: models: doorkeeper/application: attributes: redirect_uri: invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။ + relative_uri: URI ဖြစ်ရမည်။ secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။ doorkeeper: applications: buttons: + authorize: လုပ်ပိုင်ခွင့် cancel: ပယ်ဖျက်မည် destroy: ဖျက်ဆီးမည် edit: ပြင်မည် submit: တင်သွင်းမည် confirmations: destroy: သေချာပါသလား? + edit: + title: အက်ပလီကေးရှင်းကို ပြင်ဆင်ရန် + form: + error: အိုး၊ သင့်ဖောင်မှာ အမှားအယွင်းများရှိနိုင်သောကြောင့် စစ်ဆေးပါ help: + native_redirect_uri: ဒေသတွင်းစမ်းသပ်မှုများအတွက် %{native_redirect_uri} ကို အသုံးပြုပါ redirect_uri: URI တစ်ခုစီအတွက် လိုင်းတစ်ကြောင်းသုံးပါ + scopes: နယ်ပယ်များကို နေရာလွတ်များဖြင့် ခွဲခြားပါ။ မူလသတ်မှတ်ထားသည့်နယ်ပယ်များ အသုံးပြုရန်အတွက် အလွတ် ချန်ထားပါ။ index: + application: အက်ပလီကေးရှင်း + callback_url: URL ပြန်ခေါ်ရန် delete: ဖျက်မည် + empty: သင့်တွင် အက်ပလီကေးရှင်းများ မရှိပါ။ name: အမည် + new: အက်ပလီကေးရှင်းအသစ် + scopes: နယ်ပယ်များ + show: ပြရန် + title: သင့်အက်ပလီကေးရှင်းများ + new: + title: အက်ပလီကေးရှင်းအသစ် + show: + actions: လုပ်ဆောင်ချက်များ + application_id: Client ကီး + callback_urls: URLs ပြန်ခေါ်ရန် + scopes: နယ်ပယ်များ + secret: Client လျှို့ဝှက်ချက် + title: အက်ပလီကေးရှင်း - %{name} + authorizations: + buttons: + authorize: လုပ်ပိုင်ခွင့် + deny: ငြင်းရန် + error: + title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည် + new: + review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ + title: ခွင့်ပြုချက် လိုအပ်သည် + show: + title: ဤခွင့်ပြုချက်ကုဒ်ကို ကူးယူပြီး အက်ပလီကေးရှင်းသို့ ကူးထည့်ပါ။ + authorized_applications: + buttons: + revoke: ပြန်ရုပ်သိမ်းရန် + confirmations: + revoke: သေချာပါသလား။ + index: + authorized_at: "%{date} တွင် ခွင့်ပြုခဲ့သည်" + description_html: "၎င်းတို့မှာ API အသုံးပြု၍ သင့်အကောင့်ကို ဝင်ရောက်ကြည့်ရှုနိုင်သော အက်ပလီကေးရှင်းများဖြစ်သည်။ ဤနေရာတွင် သင်မသိသော အက်ပလီကေးရှင်းများ ရှိပါက သို့မဟုတ် အက်ပလီကေးရှင်းတစ်ခုသည် လွဲမှားစွာ လုပ်ဆောင်နေပါက ၎င်း၏ ဝင်ရောက်ခွင့်ကို သင် ပြန်လည်ရုပ်သိမ်းနိုင်သည်။" + last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်" + never_used: မသုံးဖူးပါ + scopes: ခွင့်ပြုချက်များ + title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ + errors: + messages: + access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။ + credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။ + invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။ + invalid_token: + expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ + revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည် + unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ + unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။ + flash: + applications: + create: + notice: အက်ပလီကေးရှင်းကို ဖန်တီးခဲ့သည်။ + destroy: + notice: အက်ပလီကေးရှင်းကို ဖျက်ခဲ့သည်။ + update: + notice: အက်ပလီကေးရှင်းကို ပြင်ဆင်ခဲ့သည်။ + authorized_applications: + destroy: + notice: အက်ပလီကေးရှင်းကို ပြန်ရုပ်သိမ်းခဲ့သည်။ + grouped_scopes: + access: + read: ဖတ်ခွင့်သာရှိသည် + read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည် + title: + accounts: အကောင့်များ + admin/accounts: အကောင့်စီမံခန့်ခွဲမှု + admin/all: စီမံခွင့်ဆိုင်ရာ လုပ်ငန်းဆောင်တာအားလုံး + admin/reports: မှတ်တမ်းများ စီမံခန့်ခွဲခြင်း + all: သင်၏ Mastodon အကောင့်သို့ အပြည့်အဝ ဝင်ရောက်ခွင့် + blocks: ပိတ်ပင်ထားမှုများ + bookmarks: မှတ်ထားသည်များ + conversations: စကားဝိုင်းများ + crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်း + favourites: အကြိုက်ဆုံးများ + filters: စစ်ထုတ်ထားခြင်းများ + follow: စောင့်ကြည့်ခြင်း၊ အသံပိတ်ခြင်းနှင့် ပိတ်ပင်ခြင်းများ + follows: စောင့်ကြည့်မယ် + lists: စာရင်းများ + media: မီဒီယာ ပူးတွဲချက်များ + mutes: အသံပိတ်ထားရန် + notifications: အသိပေးချက်များ + push: အသိပေးချက်များအား ရအောင်ပို့ခြင်း + reports: မှတ်တမ်းများ + search: ရှာရန် + statuses: ပို့စ်များ + layouts: + admin: + nav: + applications: အက်ပလီကေးရှင်းများ + oauth2_provider: OAuth2 ပံ့ပိုးပေးသူ + application: + 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:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ + admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ + admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ + admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ + admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ + admin:write:ip_blocks: IP ပိတ်ပင်ခြင်းများအတွက် စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ + admin:write:reports: အစီရင်ခံစာများပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ + crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်းကို အသုံးပြုပါ + follow: အကောင့်ဆက်ဆံရေးများကို ပြင်ဆင်ပါ + push: သင်ရရှိအောင်ပေးပို့ထားသည့် အသိပေးချက်များကို လက်ခံပါ + read: သင့်အကောင့်အချက်အလက်အားလုံးကို ဖတ်ပါ + read:accounts: အကောင့်အချက်အလက်များကို ကြည့်ပါ + read:blocks: သင် ပိတ်ပင်ထားသည်များကို ကြည့်ပါ + read:bookmarks: သင် မှတ်ထားသည်များကို ကြည့်ပါ + read:favourites: သင့်အကြိုက်ဆုံးများကို ကြည့်ပါ + read:filters: သင် စစ်ထုတ်ထားမှုများကို ကြည့်ပါ + read:follows: သင့်အားစောင့်ကြည့်နေသူများကို ကြည့်ပါ + read:lists: သင့်စာရင်းများကို ကြည့်ပါ + read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ + read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ + read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ + read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ + write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ + write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ + write:blocks: အကောင့်များနှင့် ဒိုမိန်းများကို ပိတ်ပင်ပါ + write:bookmarks: မှတ်ထားသောပို့စ်များ + write:conversations: စကားဝိုင်းများကို အသံပိတ်ပြီး ဖျက်ပါ + write:favourites: အကြိုက်ဆုံးပို့စ်များ + write:filters: စစ်ထုတ်ခြင်းအား ဖန်တီးပါ + write:follows: စောင့်ကြည့်ရန် + write:lists: စာရင်းများ ဖန်တီးရန် + write:media: မီဒီယာဖိုင်များကို အင်တာနက်ပေါ်တင်ပါ + write:mutes: လူများနှင့် စကားဝိုင်းများကို ပိတ်ထားပါ + write:notifications: သင့်အအသိပေးချက်များကို ရှင်းလင်းပါ + write:statuses: ပို့စ်များအား ရအောင်ပို့ခြင်း diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml index 59e133a707..6b078d609c 100644 --- a/config/locales/doorkeeper.zh-HK.yml +++ b/config/locales/doorkeeper.zh-HK.yml @@ -122,12 +122,14 @@ zh-HK: admin/accounts: 帳號管理 admin/all: 所有管理功能 admin/reports: 檢舉報告管理 + all: 完整存取你的 Mastodon 帳號 blocks: 封鎖 bookmarks: 書籤 conversations: 對話 crypto: 端到端加密 favourites: 最愛 filters: 篩選器 + follow: 追蹤、靜音及封鎖 follows: 追蹤 lists: 名單 media: 媒體附件 diff --git a/config/locales/el.yml b/config/locales/el.yml index 903fcb8e19..3d28a0e0ab 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -91,6 +91,7 @@ el: moderation: active: Ενεργός/ή all: Όλα + disabled: Απενεργοποιημένο pending: Εκκρεμούν silenced: Περιορισμένοι suspended: Σε αναστολή @@ -133,6 +134,7 @@ el: search: Αναζήτηση search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP + security: Ασφάλεια security_measures: only_password: Μόνο κωδικός πρόσβασης password_and_2fa: Κωδικός πρόσβασης και 2FA @@ -237,6 +239,18 @@ el: create_announcement_html: Ο/Η %{name} δημιούργησε νέα ανακοίνωση %{target} create_canonical_email_block_html: Ο/Η %{name} απέκλεισε e-mail με το hash %{target} create_custom_emoji_html: Ο/Η %{name} ανέβασε νέο emoji %{target} + create_domain_allow_html: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα + create_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα %{target} + create_email_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα email %{target} + create_ip_block_html: Ο/Η %{name} δημιούργησε κανόνα για την IP %{target} + create_unavailable_domain_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} επέτρεψε email με το hash %{target} + destroy_custom_emoji_html: Ο/Η %{name} διέγραψε το emoji %{target} + destroy_domain_allow_html: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από τη λίστα εγκρίσεων + destroy_domain_block_html: Ο/Η %{name} επέτρεψε τον τομέα %{target} destroy_email_domain_block_html: Ο/Η %{name} ξεμπλόκαρε το email domain %{target} destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target} destroy_ip_block_html: Ο/Η %{name} διέγραψε τον κανόνα για την IP %{target} @@ -252,7 +266,17 @@ el: enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target} memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης promote_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} έστειλε ξανά e-mail επιβεβαίωσης για τον/την %{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} unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}" deleted_account: διαγραμμένος λογαριασμός empty: Δεν βρέθηκαν αρχεία καταγραφής. @@ -367,6 +391,7 @@ el: new: create: Πρόσθεση τομέα title: Νέα εγγραφή email στη μαύρη λίστα + not_permitted: Δεν επιτρέπεται title: Μαύρη λίστα email export_domain_allows: no_file: Δεν επιλέχθηκε αρχείο @@ -455,9 +480,11 @@ el: assign_to_self: Ανάθεση σε μένα assigned: Αρμόδιος συντονιστής by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία + cancel: Άκυρο category: Κατηγορία comment: none: Κανένα + confirm: Επιβεβαίωση created_at: Καταγγέλθηκε delete_and_resolve: Διαγραφή δημοσιεύσεων forwarded: Προωθημένα @@ -573,6 +600,8 @@ el: trending: Δημοφιλή visibility: Ορατότητα with_media: Με πολυμέσα + strikes: + appeal_rejected: Η αίτηση απορρίφθηκε system_checks: database_schema_check: message_html: Υπάρχουν μετακινήσεις βάσης δεδομένων που εκκρεμούν. Παρακαλώ εκτελέστε τις για να βεβαιωθείτε ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται @@ -584,6 +613,7 @@ el: updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς title: Διαχείριση trends: + not_allowed_to_trend: Δεν επιτρέπεται η τάση only_allowed: Μόνο επιτρεπόμενα tags: dashboard: @@ -643,6 +673,7 @@ el: applications: created: Η εφαρμογή δημιουργήθηκε επιτυχώς destroyed: Η εφαρμογή διαγράφηκε επιτυχώς + logout: Αποσύνδεση regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token) token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! @@ -676,6 +707,8 @@ el: resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης reset_password: Επαναφορά συνθηματικού rules: + accept: Αποδοχή + back: Πίσω title: Ορισμένοι βασικοί κανόνες. security: Ασφάλεια set_new_password: Ορισμός νέου συνθηματικού @@ -787,8 +820,6 @@ el: storage: Αποθήκευση πολυμέσων featured_tags: add_new: Προσθήκη νέας - errors: - limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ετικετών hint_html: "Τι είναι οι προβεβλημένες ετικέτες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ένας ωραίος τρόπος να παρακολουθείς την πορεία μιας δημιουργία ή ενός μακροπρόθεσμου έργου." filters: contexts: @@ -868,9 +899,6 @@ el: expires_at: Λήγει uses: Χρήσεις title: Προσκάλεσε κόσμο - lists: - errors: - limit: Έχεις φτάσει το μέγιστο πλήθος επιτρεπτών λιστών media_attachments: validations: images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ενημέρωση που ήδη περιέχει εικόνες diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index e624bb27ef..9b4f28c5d6 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -91,6 +91,7 @@ en-GB: moderation: active: Active all: All + disabled: Disabled pending: Pending silenced: Limited suspended: Suspended @@ -133,6 +134,7 @@ en-GB: search: Search search_same_email_domain: Other users with the same e-mail domain search_same_ip: Other users with the same IP + security: Security security_measures: only_password: Only password password_and_2fa: Password and 2FA @@ -248,6 +250,122 @@ en-GB: destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}" destroy_custom_emoji_html: "%{name} deleted emoji %{target}" destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}" + destroy_domain_block_html: "%{name} unblocked domain %{target}" + destroy_email_domain_block_html: "%{name} unblocked e-mail domain %{target}" + destroy_instance_html: "%{name} purged domain %{target}" + destroy_ip_block_html: "%{name} deleted rule for IP %{target}" + destroy_status_html: "%{name} removed post by %{target}" + destroy_unavailable_domain_html: "%{name} stopped delivery to domain %{target}" + destroy_user_role_html: "%{name} deleted %{target} role" + disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}" + disable_custom_emoji_html: "%{name} disabled emoji %{target}" + disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}" + disable_user_html: "%{name} disabled login for user %{target}" + enable_custom_emoji_html: "%{name} enabled emoji %{target}" + enable_sign_in_token_auth_user_html: "%{name} enabled e-mail token authentication for %{target}" + enable_user_html: "%{name} enabled login for user %{target}" + memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page" + promote_user_html: "%{name} promoted user %{target}" + reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}" + reject_user_html: "%{name} rejected sign-up from %{target}" + remove_avatar_user_html: "%{name} removed %{target}'s avatar" + reopen_report_html: "%{name} reopened report %{target}" + resend_user_html: "%{name} resent confirmation e-mail for %{target}" + reset_password_user_html: "%{name} reset password of user %{target}" + resolve_report_html: "%{name} resolved report %{target}" + sensitive_account_html: "%{name} marked %{target}'s media as sensitive" + silence_account_html: "%{name} limited %{target}'s account" + suspend_account_html: "%{name} suspended %{target}'s account" + unassigned_report_html: "%{name} unassigned report %{target}" + unblock_email_account_html: "%{name} unblocked %{target}'s email address" + unsensitive_account_html: "%{name} unmarked %{target}'s media as sensitive" + unsilence_account_html: "%{name} undid limit of %{target}'s account" + unsuspend_account_html: "%{name} unsuspended %{target}'s account" + update_announcement_html: "%{name} updated announcement %{target}" + update_custom_emoji_html: "%{name} updated emoji %{target}" + update_domain_block_html: "%{name} updated domain block for %{target}" + update_ip_block_html: "%{name} changed rule for IP %{target}" + update_status_html: "%{name} updated post by %{target}" + update_user_role_html: "%{name} changed %{target} role" + deleted_account: deleted account + empty: No logs found. + filter_by_action: Filter by action + filter_by_user: Filter by user + title: Audit log + announcements: + destroyed_msg: Announcement successfully deleted! + edit: + title: Edit announcement + empty: No announcements found. + live: Live + new: + create: Create announcement + title: New announcement + publish: Publish + published_msg: Announcement successfully published! + scheduled_for: Scheduled for %{time} + scheduled_msg: Announcement scheduled for publication! + title: Announcements + unpublish: Unpublish + unpublished_msg: Announcement successfully unpublished! + updated_msg: Announcement successfully updated! + custom_emojis: + assign_category: Assign category + by_domain: Domain + copied_msg: Successfully created local copy of the emoji + copy: Copy + copy_failed_msg: Could not make a local copy of that emoji + create_new_category: Create new category + created_msg: Emoji successfully created! + delete: Delete + destroyed_msg: Emojo successfully destroyed! + disable: Disable + disabled: Disabled + disabled_msg: Successfully disabled that emoji + emoji: Emoji + enable: Enable + enabled: Enabled + enabled_msg: Successfully enabled that emoji + image_hint: PNG or GIF up to %{size} + list: List + listed: Listed + new: + title: Add new custom emoji + no_emoji_selected: No emojis were changed as none were selected + not_permitted: You are not permitted to perform this action + overwrite: Overwrite + shortcode: Shortcode + shortcode_hint: At least 2 characters, only alphanumeric characters and underscores + title: Custom emojis + uncategorized: Uncategorised + unlist: Unlist + unlisted: Unlisted + update_failed_msg: Could not update that emoji + updated_msg: Emoji successfully updated! + upload: Upload + dashboard: + active_users: active users + interactions: interactions + media_storage: Media storage + new_users: new users + opened_reports: reports opened + pending_appeals_html: + one: "%{count} pending appeal" + other: "%{count} pending appeals" + pending_reports_html: + one: "%{count} pending report" + other: "%{count} pending reports" + pending_tags_html: + one: "%{count} pending hashtag" + other: "%{count} pending hashtags" + pending_users_html: + one: "%{count} pending user" + other: "%{count} pending users" + resolved_reports: reports resolved + software: Software + sources: Sign-up sources + space: Space usage + title: Dashboard roles: categories: devops: DevOps @@ -268,7 +386,38 @@ en-GB: platforms: blackberry: BlackBerry chrome_os: ChromeOS + statuses_cleanup: + min_age_label: Age threshold + min_favs: Keep posts favourited at least + min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites + min_reblogs: Keep posts boosted at least + min_reblogs_hint: Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts + stream_entries: + pinned: Pinned post + reblogged: boosted + sensitive_content: Sensitive content + strikes: + errors: + too_late: It is too late to appeal this strike + themes: + mastodon-light: Mastodon (Light) + time: + formats: + default: "%b %d, %Y, %H:%M" + month: "%b %Y" + time: "%H:%M" two_factor_authentication: + add: Add + disable: Disable 2FA + disabled_success: Two-factor authentication successfully disabled + edit: Edit + enabled: Two-factor authentication is enabled + enabled_success: Two-factor authentication successfully enabled + generate_recovery_codes: Generate recovery codes + lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated. + methods: Two-factor methods + otp: Authenticator app + recovery_codes: Backup recovery codes recovery_codes_regenerated: Recovery codes successfully regenerated recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe. For example, you may print them and store them with other important documents. webauthn: Security keys @@ -277,8 +426,23 @@ en-GB: action: Go to your account explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing. subject: Your appeal from %{date} has been approved + title: Appeal approved + appeal_rejected: + explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been rejected. + subject: Your appeal from %{date} has been rejected + title: Appeal rejected + backup_ready: + explanation: You requested a full backup of your Mastodon account. It's now ready for download! + suspicious_sign_in: + title: A new sign-in warning: + appeal: Submit an appeal + appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}. + categories: + spam: Spam + violation: Content violates the following community guidelines explanation: + delete_statuses: Some of your posts have been found to violate one or more community guidelines and have been subsequently removed by the moderators of %{instance}. disable: You can no longer use your account, but your profile and other data remains intact. You can request a backup of your data, change account settings or delete your account. mark_statuses_as_sensitive: Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future. sensitive: From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning. diff --git a/config/locales/eo.yml b/config/locales/eo.yml index ce532d6029..34a6895315 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -38,14 +38,14 @@ eo: avatar: Profilbildo by_domain: Domajno change_email: - changed_msg: Retpoŝta adreso estis sukcese ŝanĝita! + changed_msg: Retpoŝta adreso sukcese ŝanĝita! current_email: Nuna retadreso label: Ŝanĝi retadreson new_email: Nova retadreso submit: Ŝanĝi retadreson title: Ŝanĝi retadreson por %{username} change_role: - changed_msg: Rolo estis sukcese ŝanĝita! + changed_msg: Rolo sukcese ŝanĝita! label: Ŝanĝi rolon no_role: Neniu rolo title: Ŝanĝi rolon por %{username} @@ -91,6 +91,7 @@ eo: moderation: active: Aktivaj all: Ĉio + disabled: Neebligita pending: Pritraktata silenced: Limigita suspended: Suspendita @@ -113,7 +114,7 @@ eo: public: Publika push_subscription_expires: Eksvalidiĝo de la abono al PuSH redownload: Aktualigi profilon - redownloaded_msg: Sukcese refreŝis profilon de %{username} de origino + redownloaded_msg: Sukcese aktualigis profilon de %{username} el origino reject: Malakcepti rejected_msg: Sukcese malaprobis aliĝ-peton de %{username} remote_suspension_irreversible: La informoj de ĉi tiu konto estis neinversigeble forigitaj. @@ -121,11 +122,11 @@ eo: remove_avatar: Forigi la profilbildon remove_header: Forigi kapan bildon removed_avatar_msg: La rolfiguro de %{username} estas sukcese forigita - removed_header_msg: Sukcese forigis kapbildon de %{username} + removed_header_msg: Kapbildo de %{username} suksece forigita resend_confirmation: already_confirmed: Ĉi tiu uzanto jam estas konfirmita send: Resendi konfirman retpoŝton - success: Konfirma retpoŝto estis sukcese sendita! + success: Konfirma retmesaĝo sukcese sendita! reset: Restarigi reset_password: Restarigi pasvorton resubscribe: Reaboni @@ -133,6 +134,7 @@ eo: search: Serĉi search_same_email_domain: Aliaj uzantoj kun la sama domajno de retpoŝto search_same_ip: Aliaj uzantoj kun la sama IP + security: Sekureco security_measures: only_password: Nur pasvorto password_and_2fa: Pasvorto kaj 2FA @@ -149,7 +151,7 @@ eo: subscribe: Aboni suspend: Haltigu suspended: Suspendita - suspension_irreversible: La datumoj de ĉi tiu konto neinverseble forigitas. + suspension_irreversible: La datumoj de ĉi tiu konto estas porĉiame forigitaj. Vi povas malsuspendi tiun konton por igi ĝin uzebla, sed ĝi ne rehavos ajnan datumon kiun ĝi antaŭe havis. suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forigitaj je %{date}. Ĝis tiam, la konto povas esti malsuspendita sen flankefiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari tion sube. title: Kontoj unblock_email: Malbloki retpoŝtadresojn @@ -227,7 +229,7 @@ eo: update_status: Ĝisdatigi afiŝon update_user_role: Ĝisdatigi rolon actions: - approve_appeal_html: "%{name} aprobis kontroldecidapelacion de %{target}" + approve_appeal_html: "%{name} aprobis apelacion kontraŭ moderiga decido de %{target}" approve_user_html: "%{name} aprobis registriĝon de %{target}" assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem" change_email_user_html: "%{name} ŝanĝis retadreson de uzanto %{target}" @@ -253,7 +255,7 @@ eo: destroy_instance_html: "%{name} forigis domajnon %{target}" destroy_ip_block_html: "%{name} forigis regulon por IP %{target}" destroy_status_html: "%{name} forigis mesaĝojn de %{target}" - destroy_unavailable_domain_html: "%{name} daurigis sendon al domajno %{target}" + destroy_unavailable_domain_html: "%{name} restartigis sendon al domajno %{target}" destroy_user_role_html: "%{name} forigis rolon de %{target}" disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}" disable_custom_emoji_html: "%{name} malebligis la emoĝion %{target}" @@ -264,20 +266,20 @@ eo: enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}" memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo" promote_user_html: "%{name} plirangigis uzanton %{target}" - reject_appeal_html: "%{name} malakceptis kontroldecidapelacion de %{target}" + reject_appeal_html: "%{name} malakceptis apelacion kontraŭ moderiga decido de %{target}" reject_user_html: "%{name} malakceptis registriĝon de %{target}" remove_avatar_user_html: "%{name} forigis la profilbildon de %{target}" reopen_report_html: "%{name} remalfermis signalon %{target}" resend_user_html: "%{name} resendis konfirman retmesaĝon por %{target}" reset_password_user_html: "%{name} restarigis la pasvorton de la uzanto %{target}" resolve_report_html: "%{name} solvis raporton %{target}" - sensitive_account_html: "%{name} markis audovidaĵojn de %{target} kiel sentemaj" + sensitive_account_html: "%{name} markis audovidaĵon de %{target} kiel tiklan" silence_account_html: "%{name} limigis la konton de %{target}" suspend_account_html: "%{name} suspendis la konton de %{target}" unassigned_report_html: "%{name} malasignis raporton %{target}" unblock_email_account_html: "%{name} malblokis retpoŝtoadreson de %{target}" - unsensitive_account_html: "%{name} malmarkis audovidaĵojn de %{target} kiel sentemaj" - unsilence_account_html: "%{name} malfaris limon de konto de %{target}" + unsensitive_account_html: "%{name} malmarkis audovidaĵon de %{target} kiel tiklan" + unsilence_account_html: "%{name} malfaris limon al konto de %{target}" unsuspend_account_html: "%{name} malsuspendis la konton de %{target}" update_announcement_html: "%{name} ĝisdatigis la anoncon %{target}" update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}" @@ -323,13 +325,13 @@ eo: emoji: Emoĝio enable: Ebligi enabled: Ebligita - enabled_msg: Tiu emoĝio estis sukcese ebligita + enabled_msg: Emoĝio sukcese ebligita image_hint: PNG aŭ GIF malpli granda ol %{size} list: Listo listed: Listigita new: title: Aldoni novan propran emoĝion - no_emoji_selected: Neniuj emoĝioj ŝanĝitas ĉar nenio elektitas + no_emoji_selected: Neniu emoĝio estis ŝanĝita ĉar neniu estis elektita not_permitted: Vi ne rajtas plenumi ĉi tiun agon overwrite: Anstataŭigi shortcode: Mallonga kodo @@ -348,17 +350,17 @@ eo: new_users: novaj uzantoj opened_reports: raportoj malfermitaj pending_appeals_html: - one: "%{count} restanta apelacio" - other: "%{count} restantaj aplecioj" + one: "%{count} apelacio atendas kontrolon" + other: "%{count} apelacioj atendas kontrolon" pending_reports_html: - one: "%{count} restanta raporto" - other: "%{count} restantaj raportoj" + one: "%{count} raporto atendas kontrolon" + other: "%{count} raportoj atendas kontrolon" pending_tags_html: one: "%{count} pritraktota kradvorto" other: "%{count} pritraktotaj kradvortoj" pending_users_html: - one: "%{count} restanta uzanto" - other: "%{count} restantaj uzantoj" + one: "%{count} uzanto atendas kontrolon" + other: "%{count} uzantoj atendas kontrolon" resolved_reports: raportoj solvitaj software: Programo sources: Fontoj de konto-kreado @@ -373,7 +375,7 @@ eo: title: Apelacioj domain_allows: add_new: Aldoni domajnon al la blanka listo - created_msg: Domajno estis sukcese aldonita al la blanka listo + created_msg: Domajno sukcese permesita al federacii destroyed_msg: Domajno estis forigita el la blanka listo export: Eksporti import: Enporti @@ -427,6 +429,7 @@ eo: resolve: Solvi domajnon title: Nova blokado de retadresa domajno no_email_domain_block_selected: Neniuj retpoŝtoadresodomajnblokoj ŝanĝitas ĉar nenio elektitas + not_permitted: Ne permesita resolved_dns_records_hint_html: La domajnnomo referencas al la MX-domajnoj kiuj akceptas retpoŝton. Ne bloku grandajn retpoŝtoservilojn. resolved_through_html: Solvis tra %{domain} title: Nigra listo de retadresaj domajnoj @@ -473,6 +476,7 @@ eo: content_policies: comment: Interna noto description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj. + limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno. policies: reject_media: Malakcepti plurmediojn reject_reports: Malakcepti raportojn @@ -585,11 +589,13 @@ eo: assign_to_self: Asigni al mi assigned: Asignita kontrolanto by_target_domain: Domajno de la signalita konto + cancel: Nuligi category: Kategorio category_description_html: La kialo pri ĉi tiuj konto kaj enhavo raportitaj sendotas al la raportita konto comment: none: Nenio comment_description_html: 'Por doni pli da informo, %{name} skribis:' + confirm: Konfirmi confirm_action: Konfirmi moderigadagon kontra @%{acct} created_at: Signalita delete_and_resolve: Forigi afiŝojn @@ -792,6 +798,7 @@ eo: suspend: "%{name} suspendis la konton de %{target}" appeal_approved: Apelaciita appeal_pending: Apelacio pritraktiĝos + appeal_rejected: Apelacio malakceptita system_checks: database_schema_check: message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite @@ -958,6 +965,7 @@ eo: applications: created: Aplikaĵo sukcese kreita destroyed: Aplikaĵo sukcese forigita + logout: Elsaluti regenerate_token: Regeneri aliran ĵetonon token_regenerated: Alira ĵetono sukcese regeneria warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn! @@ -980,7 +988,7 @@ eo: link_to_otp: Enigu 2-faktorkodo de via telefono au regajnkodo link_to_webauth: Uzi vian sekurecan ŝlosilon log_in_with: Ensaluti per - login: Saluti + login: Ensaluti logout: Adiaŭi migrate_account: Movi al alia konto migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas agordi ĝin ĉi tie. @@ -994,6 +1002,8 @@ eo: resend_confirmation: Resendi la instrukciojn por konfirmi reset_password: Restarigi pasvorton rules: + accept: Akcepti + back: Reen preamble: Ĉi tioj fiksitas kaj devigitas de kontrolantoj de %{domain}. title: Bazaj reguloj. security: Sekureco @@ -1012,7 +1022,7 @@ eo: account_status: Statuso de la konto confirming: Retpoŝtokonfirmo bezonas kompletigitis. functional: Via konto estas tute funkcia. - pending: Via apliko ankarou bezonas kontrolon de nia teamo. Vi ricevos retpoŝto malantau ol aprobo. + pending: Via aliĝo estos kontrolita de nia teamo. Tio povas bezoni iom da tempo. Vi ricevos retpoŝtmesaĝon se via aliĝo estas aprobita. redirecting_to: Via konto estas neaktiva ĉar ĝi nun alidirektas al %{acct}. view_strikes: Vidi antauaj admonoj kontra via konto too_fast: Formularo sendita tro rapide, klopodu denove. @@ -1342,7 +1352,7 @@ eo: subject: "%{name} diskonigis vian mesaĝon" title: Nova diskonigo status: - subject: "%{name} ĵus afiŝita" + subject: "%{name} ĵus afiŝis" update: subject: "%{name} redaktis afiŝon" notifications: @@ -1575,7 +1585,7 @@ eo: '7889238': 3 monatoj min_age_label: Aĝlimo min_favs: Konservi mesaĝojn stelumitajn almenaŭ - min_favs_hint: Ne forigas mesaĝojn de vi kiuj ricevis almenaŭ tiom da stelumoj. Lasu malplena por forigi mesaĝojn sendepende de la nombro de stelumoj + min_favs_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 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: @@ -1695,7 +1705,7 @@ eo: success: Via sekureca ŝlosilo estis sukcese forigita. invalid_credential: Nevalida sekureca ŝlosilo nickname_hint: Enigu alinomon de via nova sekurecŝlosilo - not_enabled: Vu ne ebligas WebAuthn ĝis nun + not_enabled: Vi ankoraŭ ne ŝaltis WebAuth not_supported: Ĉi tiu legilo ne povas uzi sekurecŝlosilojn otp_required: Por uzi sekurecŝlosilojn, ebligu 2-faktoran autentigon unue. registered_on: Registrigita je %{date} diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 9b0ab12cce..bf65495b92 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -91,6 +91,7 @@ es-AR: moderation: active: Activas all: Todas + disabled: Deshabilitadas pending: Pendientes silenced: Limitada suspended: Suspendidas @@ -133,6 +134,7 @@ es-AR: search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico search_same_ip: Otros usuarios con la misma dirección IP + security: Seguridad security_measures: only_password: Sólo contraseña password_and_2fa: Contraseña y 2FA @@ -427,6 +429,7 @@ es-AR: resolve: Resolver dominio title: Bloquear nuevo dominio de correo electrónico no_email_domain_block_selected: No se cambiaron bloques de dominio ya que no se seleccionó ninguno + not_permitted: No permitidos resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tené cuidado de no bloquear los principales proveedores de correo electrónico. resolved_through_html: Resuelto a través de %{domain} title: Dominios bloqueados de correo electrónico @@ -473,6 +476,7 @@ es-AR: content_policies: comment: Nota interna description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios. + limited_federation_mode_description_html: Podés elegir si permit´s la federación con este dominio. policies: reject_media: Rechazar medios reject_reports: Rechazar denuncias @@ -585,11 +589,13 @@ es-AR: assign_to_self: Asignármela a mí assigned: Moderador asignado by_target_domain: Dominio de la cuenta denunciada + cancel: Cancelar category: Categoría category_description_html: El motivo por el que se denunció esta cuenta o contenido será citado en las comunicaciones con la cuenta denunciada comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm: Confirmar confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar mensajes @@ -792,6 +798,7 @@ es-AR: suspend: "%{name} suspendió la cuenta de %{target}" appeal_approved: Apelado appeal_pending: Apelación pendiente + appeal_rejected: Apelación rechazada system_checks: database_schema_check: message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecutalas para asegurarte de que la aplicación funciona según lo esperado @@ -827,6 +834,7 @@ es-AR: other: Compartido por %{count} personas durante la última semana title: Enlaces en tendencia usage_comparison: Compartido %{today} veces hoy, comparado con la/s %{yesterday} vez/veces de ayer + not_allowed_to_trend: No se permite la tendencia only_allowed: Sólo permitidas pending_review: Revisión pendiente preview_card_providers: @@ -958,6 +966,7 @@ es-AR: applications: created: Aplicación creada exitosamente destroyed: Aplicación eliminada exitosamente + logout: Cerrar sesión regenerate_token: Regenerar clave de acceso token_regenerated: Clave de acceso regenerada exitosamente warning: Ojo con estos datos. ¡Nunca los compartas con nadie! @@ -994,6 +1003,8 @@ es-AR: resend_confirmation: Reenviar correo electrónico de confirmación reset_password: Cambiar contraseña rules: + accept: Aceptar + back: Volver preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}. title: Algunas reglas básicas. security: Seguridad @@ -1040,22 +1051,22 @@ es-AR: invalid_signature: no es una firma Ed25519 válida date: formats: - default: "%Y.%b.%d" - with_month_name: "%Y.%B.%d" + default: "%d de %b de %Y" + with_month_name: "%d de %B de %Y" datetime: distance_in_words: - about_x_hours: "%{count}h" - about_x_months: "%{count}M" - about_x_years: "%{count}A" - almost_x_years: "%{count}A" + about_x_hours: "%{count}hrs." + about_x_months: "%{count}mes." + about_x_years: "%{count}año." + almost_x_years: "%{count}año." half_a_minute: Recién - less_than_x_minutes: "%{count}min" + less_than_x_minutes: "%{count}min." less_than_x_seconds: Recién - over_x_years: "%{count}A" - x_days: "%{count}D" - x_minutes: "%{count}min" - x_months: "%{count}M" - x_seconds: "%{count}s" + over_x_years: "%{count}año." + x_days: "%{count}día." + x_minutes: "%{count}min." + x_months: "%{count}mes." + x_seconds: "%{count}seg." deletes: challenge_not_passed: La información que ingresaste no es correcta confirm_password: Ingresá tu contraseña actual para verificar tu identidad @@ -1141,7 +1152,7 @@ es-AR: featured_tags: add_new: Agregar nueva errors: - limit: Alcanzaste el máximo de etiquetas destacadas + limit: Ya estableciste el número máximo de etiquetas hint_html: "¿Qué son las etiquetas destacadas? Son etiquetas que se muestran de forma permanente en tu perfil público y permiten a los usuarios navegar por tus mensajes públicos que contengan esas etiquetas. Las etiquetas destacadas son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: @@ -1253,7 +1264,7 @@ es-AR: title: Invitar a gente lists: errors: - limit: Alcanzaste el máximo de listas + limit: Alcanzaste el número máximo de listas login_activities: authentication_methods: otp: aplicación de autenticación de dos factores @@ -1573,7 +1584,7 @@ es-AR: '7889238': 3 meses min_age_label: Umbral de edad min_favs: Conservar mensajes marcados como favoritos de por lo menos - min_favs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos. + min_favs_hint: No elimina ninguno de tus mensajes que haya recibido al menos esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos. min_reblogs: Conservar adhesiones de por lo menos min_reblogs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de adhesiones. Dejá en blanco para eliminar mensajes independientemente de su número de adhesiones. stream_entries: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 486a122b14..700db78689 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1140,8 +1140,6 @@ es-MX: storage: Almacenamiento featured_tags: add_new: Añadir nuevo - errors: - limit: Ya has alcanzado la cantidad máxima de hashtags hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: @@ -1251,9 +1249,6 @@ es-MX: expires_at: Expira uses: Usos title: Invitar a gente - lists: - errors: - limit: Has alcanzado la cantidad máxima de listas login_activities: authentication_methods: otp: aplicación de autenticación en dos pasos @@ -1573,7 +1568,6 @@ es-MX: '7889238': 3 meses min_age_label: Umbral de tiempo min_favs: Mantener mensajes con un número de favoritos mayor que - min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos min_reblogs: Mantener publicaciones reblogueadas más de min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos stream_entries: diff --git a/config/locales/es.yml b/config/locales/es.yml index 38cee2adbb..4c28aa8a02 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -91,6 +91,7 @@ es: moderation: active: Activo all: Todos + disabled: Deshabilitado pending: Pendiente silenced: Limitado suspended: Suspendidos @@ -133,6 +134,7 @@ es: search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo search_same_ip: Otros usuarios con la misma IP + security: Seguridad security_measures: only_password: Sólo contraseña password_and_2fa: Contraseña y 2FA @@ -427,6 +429,7 @@ es: resolve: Resolver dominio title: Nueva entrada en la lista negra de correo no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado + not_permitted: No permitido resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tenga cuidado de no bloquear los principales proveedores de correo electrónico. resolved_through_html: Resuelto a través de %{domain} title: Lista negra de correo @@ -473,6 +476,7 @@ es: content_policies: comment: Nota interna description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios. + limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio. policies: reject_media: Rechazar multimedia reject_reports: Rechazar informes @@ -585,11 +589,13 @@ es: assign_to_self: Asignármela a mí assigned: Moderador asignado by_target_domain: Dominio de la cuenta reportada + cancel: Cancelar category: Categoría category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm: Confirmar confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicaciones @@ -792,6 +798,7 @@ es: suspend: "%{name} suspendió la cuenta de %{target}" appeal_approved: Apelado appeal_pending: Apelación pendiente + appeal_rejected: Apelación rechazada system_checks: database_schema_check: message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería @@ -827,6 +834,7 @@ es: other: Compartido por %{count} personas durante la última semana title: Enlaces en tendencia usage_comparison: Compartido %{today} veces hoy, comparado con %{yesterday} ayer + not_allowed_to_trend: No permitido para tendencia only_allowed: Sólo las permitidas pending_review: Revisión pendiente preview_card_providers: @@ -958,6 +966,7 @@ es: applications: created: Aplicación creada exitosamente destroyed: Apicación eliminada exitosamente + logout: Cerrar sesión regenerate_token: Regenerar token de acceso token_regenerated: Token de acceso regenerado exitosamente warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! @@ -994,6 +1003,8 @@ es: resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña rules: + accept: Aceptar + back: Atrás preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. title: Algunas reglas básicas. security: Cambiar contraseña @@ -1573,7 +1584,7 @@ es: '7889238': 3 meses min_age_label: Umbral de tiempo min_favs: Mantener mensajes con un número de favoritos mayor que - min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos + min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos min_reblogs: Mantener publicaciones reblogueadas más de min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos stream_entries: diff --git a/config/locales/et.yml b/config/locales/et.yml index 12dabbbc21..602e79c46f 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -91,6 +91,7 @@ et: moderation: active: Aktiivne all: Kõik + disabled: Keelatud pending: Ootel silenced: Vaigistatud suspended: Kustutatud @@ -133,6 +134,7 @@ et: search: Otsi search_same_email_domain: Muud kasutajad sama e-posti domeeniga search_same_ip: Teised kasutajad, kellel on sama IP + security: Turvalisus security_measures: only_password: Ainult salasõna password_and_2fa: Salasõna ja 2-etapine autentimine (2FA) @@ -427,6 +429,7 @@ et: resolve: Domeeni lahendamine title: Blokeeri uus e-posti domeen no_email_domain_block_selected: Ühtegi e-posti domeeni keeldu ei muudetud, kuna midagi polnud valitud + not_permitted: Ei ole lubatud resolved_dns_records_hint_html: Domeeninimi lahendub järgnevateks MX-domeenideks, mis vastutavad e-kirjade vastuvõtmise eest. MX-domeeni blokeerimine blokeerib liitumistaotlused kõigilt e-postiaadressidelt, mis kasutavad sama MX-domeeni, kuigi kasutatav domeeninimi on erinev. Ole tähelepanelik, et mitte blokeerida suuremaid e-postiteenuse pakkujaid. resolved_through_html: Lahendatud %{domain} kaudu title: E-posti keelunimekiri @@ -473,6 +476,7 @@ et: content_policies: comment: Sisemine märge description_html: On võimalik kirjeldada sisureeglid kõigile kontodele sellelt domeenilt ja alamdomeenidelt. + limited_federation_mode_description_html: Saad valida, kas selle domeeniga on födereerumine lubatud. policies: reject_media: Meedia hülgamine reject_reports: Lükka raportid tagasi @@ -585,11 +589,13 @@ et: assign_to_self: Määra mulle assigned: Määratud moderaator by_target_domain: Teavitatud konto domeen + cancel: Tühista category: Kategooria category_description_html: Põhjus, miks sellest kontost ja/või sisust teatati, kaasatakse raporteeritud kontoga suhtlemisel comment: none: Pole comment_description_html: 'Täiendava infona kirjutas %{name}:' + confirm: Kinnita confirm_action: Kinnita @%{acct} modereering created_at: Teavitatud delete_and_resolve: Kustuta postitused @@ -792,6 +798,7 @@ et: suspend: "%{name} kustutas %{target} konto" appeal_approved: Vaidlustatud appeal_pending: Vaidlustus on ootel + appeal_rejected: Vaidlustus tagasi lükatud system_checks: database_schema_check: message_html: On ootel andmebaasi migreerimisi. Rakenduse ootuspäraseks toimimiseks palun käivita need @@ -827,6 +834,7 @@ et: other: Jagatud %{count} kasutaja poolt viimase nädala jooksul title: Trendikad viited usage_comparison: Jagatud %{today} korda täna, eile %{yesterday} korda + not_allowed_to_trend: Trend ei ole lubatud only_allowed: Ainult lubatud pending_review: Ootab ülevaatust preview_card_providers: @@ -958,6 +966,7 @@ et: applications: created: Rakenduse loomine õnnestus destroyed: Rakenduse kustutamine õnnestus + logout: Logi välja regenerate_token: Loo uus access token token_regenerated: Access tokeni loomine õnnestus warning: Ole nende andmetega ettevaatlikud. Ära jaga neid kellegagi! @@ -994,6 +1003,8 @@ et: resend_confirmation: Saada kinnitusjuhendid uuesti reset_password: Salasõna lähtestamine rules: + accept: Nõus + back: Tagasi preamble: Neist kinnipidamist jälgivad %{domain} moderaatorid. title: Mõned põhireeglid. security: Turvalisus @@ -1573,7 +1584,9 @@ 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 lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust, jäta 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: diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 917a70e401..7a6d1c46ca 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -91,6 +91,7 @@ eu: moderation: active: Aktiboa all: Denak + disabled: Desgaituta pending: Zain silenced: Mugatua suspended: Kanporatua @@ -133,6 +134,7 @@ eu: search: Bilatu search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean search_same_ip: IP bera duten beste erabiltzaileak + security: Segurtasuna security_measures: only_password: Soilik pasahitza password_and_2fa: Pasahitza eta 2FA @@ -429,6 +431,7 @@ eu: resolve: Ebatzi domeinua title: Sarrera berria e-mail zerrenda beltzean no_email_domain_block_selected: Ez da eposta domeinu blokeorik aldatu ez delako bat ere hautatu + not_permitted: Baimendu gabea resolved_dns_records_hint_html: Domeinu-izena ondorengo MX domeinuetara ebazten da, zeinek eposta onartzeko ardura duten. MX domeinu bat blokeatzeak MX domeinu hori erabiltzen duen edozein helbide elektronikotatik izena-ematea blokeatzen du, baita ikusgai dagoen domeinu-izena beste bat bada ere. Kontuz ibili eposta hornitzaile nagusiak blokeatu gabe. resolved_through_html: "%{domain} domeinuaren bidez ebatzia" title: E-mail zerrenda beltza @@ -475,6 +478,7 @@ eu: content_policies: comment: Barne-oharra description_html: Domeinu honetako eta bere azpi-domeinuetako kontu guztiei aplikatuko zaizkien eduki-politikak definitu ditzakezu. + limited_federation_mode_description_html: Domeinu honekin federatu ahal izatea baimendu dezakezu. policies: reject_media: Errefusatu multimediak reject_reports: Errefusatu salaketak @@ -587,11 +591,13 @@ eu: assign_to_self: Esleitu niri assigned: Esleitutako moderatzailea by_target_domain: Jakinarazitako kontuaren domeinua + cancel: Utzi category: Kategoria category_description_html: Kontu edo/eta eduki hau salatu izanaren arrazoia salatutako kontuarekiko komunikazioan aipatuko da comment: none: Bat ere ez comment_description_html: 'Informazio gehiago emateko, %{name} idatzi:' + confirm: Berretsi confirm_action: "@%{acct} kontuaren aurkako moderazio-ekintza baieztatu" created_at: Salatua delete_and_resolve: Ezabatu bidalketak @@ -794,6 +800,7 @@ eu: suspend: "%{name} erabiltzaileak %{target} kontua kanporatu du" appeal_approved: Apelatua appeal_pending: Apelazioa zain + appeal_rejected: Apelazioa baztertuta system_checks: database_schema_check: message_html: Aplikatu gabeko datu-basearen migrazioak daude. Exekutatu aplikazioak esperotako portaera izan dezan @@ -829,6 +836,7 @@ eu: other: "%{count} pertsonak partekatua azken astean" title: Esteken joerak usage_comparison: "%{today} aldiz partekatua gaur, atzo %{yesterday} aldiz" + not_allowed_to_trend: Joeretan agertzeko baimenik gabe only_allowed: Soilik onartutakoak pending_review: Berrikusketaren zain preview_card_providers: @@ -960,6 +968,7 @@ eu: applications: created: Aplikazioa ongi sortu da destroyed: Aplikazioa ongi ezabatu da + logout: Amaitu saioa regenerate_token: Birsortu sarbide token-a token_regenerated: Sarbide token-a ongi birsortu da warning: Kontuz datu hauekin, ez partekatu inoiz inorekin! @@ -996,6 +1005,8 @@ eu: resend_confirmation: Birbidali berresteko argibideak reset_password: Berrezarri pasahitza rules: + accept: Onartu + back: Atzera preamble: Hauek %{domain} instantziako moderatzaileek ezarriak eta betearaziak dira. title: Oinarrizko arau batzuk. security: Segurtasuna @@ -1143,7 +1154,7 @@ eu: featured_tags: add_new: Gehitu berria errors: - limit: Gehienezko traola kopurua nabarmendu duzu jada + limit: Gehienezko traola kopurua erakutsi duzu jada hint_html: "Zer dira nabarmendutako traolak? Zure profilean toki nabarmendu batean agertzen dira eta jendeari traola hau daukaten bidalketa publikoak arakatzea ahalbidetzen diote. Sormen lana edo epe luzerako proiektuak jarraitzeko primerakoak dira." filters: contexts: @@ -1255,7 +1266,7 @@ eu: title: Gonbidatu jendea lists: errors: - limit: Gehieneko zerrenda kopurura heldu zara + limit: Gehienezko zerrenda kopurura iritsi zara login_activities: authentication_methods: otp: bi faktoreko autentifikazio aplikazioa @@ -1575,7 +1586,7 @@ eu: '7889238': 3 hilabete min_age_label: Denbora muga min_favs: Mantendu gogoko kopuru hau duten bidalketak - min_favs_hint: Gutxienez gogoko kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero gogoko kopurua ez da kontuan hartuko bidalketak ezabatzean + min_favs_hint: Gogoko dutenen kopuru hau gutxienez duten bidalketak ez dira ezabatuko. Hutsik utzi, gogoko dutenen kopurua aintzat hartu gabe bidalketak ezabatzeko min_reblogs: Mantendu bultzada kopuru hau duten bidalketak min_reblogs_hint: Gutxienez bultzada kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero bultzada kopurua ez da kontuan hartuko bidalketak ezabatzean stream_entries: diff --git a/config/locales/fa.yml b/config/locales/fa.yml index e4ba9441c3..8bdf0709c2 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -872,8 +872,6 @@ fa: storage: تصویرهای ذخیره‌شده featured_tags: add_new: افزودن تازه - errors: - limit: شما بیشترین تعداد مجاز برچسب‌ها را دارید hint_html: "برچسب‌های برگزیده چیستند؟ این برچسب‌ها به طور واضحی روی نمایهٔ عمومیتان نمایش یافته می‌گذارد افراد فرسته‌های عمومیتان زیرشان را مرور کنند. ابزاری عالی برای دنبال کردن آثار خلاقانه یا پروژه‌های بلندمدت است." filters: contexts: @@ -947,9 +945,6 @@ fa: expires_at: تاریخ انقضا uses: استفاده‌ها title: دعوت دیگران - lists: - errors: - limit: به بیشینهٔ مقدار سیاهه‌ها رسیدید login_activities: authentication_methods: otp: کارهٔ تأیید هویت دوعاملی @@ -1243,7 +1238,6 @@ fa: '7889238': ۳ ماه min_age_label: کرانهٔ سن min_favs: نگه داشتن فرسته‌هایی با برگزینش بیش از - min_favs_hint: هیچ یک از فرسته‌هایتان را که بیش از این تعداد برگزیده شده باشند، حذف نمی‌کند. برای حذف فرسته‌ها فارغ از تعداد برگزینش‌هایشان، خالی بگذارید min_reblogs: نگه داشتن فرسته‌هایی با تقویت بیش از min_reblogs_hint: هیچ یک از فرسته‌هایتان را که بیش از این تعداد تقویت شده باشند، حذف نمی‌کند. برای حذف فرسته‌ها فارغ از تعداد تقویت‌هایشان، خالی بگذارید stream_entries: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 99011f819a..655f0113f5 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -91,6 +91,7 @@ fi: moderation: active: Aktiivinen all: Kaikki + disabled: Ei käytössä pending: Odottavat silenced: Rajoitettu suspended: Jäähyllä @@ -133,6 +134,7 @@ fi: search: Hae search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus search_same_ip: Muut käyttäjät, joilla on sama IP-osoite + security: Suojaus security_measures: only_password: Vain salasana password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen @@ -427,6 +429,7 @@ fi: resolve: Ratkaise verkkotunnus title: Uusi sähköpostiestolistan merkintä no_email_domain_block_selected: Sähköpostin verkkotunnuksia ei muutettu, koska yhtään ei valittu + not_permitted: Ei sallittu resolved_dns_records_hint_html: Verkkotunnuksen nimi määräytyy seuraaviin MX-verkkotunnuksiin, jotka ovat viime kädessä vastuussa sähköpostin vastaanottamisesta. MX-verkkotunnuksen estäminen estää kirjautumisen mistä tahansa sähköpostiosoitteesta, joka käyttää samaa MX-verkkotunnusta, vaikka näkyvä verkkotunnuksen nimi olisikin erilainen. Varo estämästä suuria sähköpostin palveluntarjoajia. resolved_through_html: Ratkaistu %{domain} kautta title: Sähköpostiestolista @@ -473,6 +476,7 @@ fi: content_policies: comment: Sisäinen huomautus description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin. + limited_federation_mode_description_html: Voit valita sallitaanko federointi tällä verkkotunnuksella. policies: reject_media: Hylkää media reject_reports: Hylkää raportit @@ -585,11 +589,13 @@ fi: assign_to_self: Ota tehtäväksi assigned: Määritetty valvoja by_target_domain: Ilmoitetun tilin verkkotunnus + cancel: Peruuta category: Kategoria category_description_html: Syy, miksi tämä tili ja/tai sisältö ilmoitettiin, mainitaan yhteydenotossa ilmoitettuun tiliin comment: none: Ei mitään comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:' + confirm: Vahvista confirm_action: Vahvista moderointitoiminto käyttäjää @%{acct} kohtaan created_at: Raportoitu delete_and_resolve: Poista viestejä @@ -792,6 +798,7 @@ fi: suspend: "%{name} jäädytti käyttäjän %{target} tilin" appeal_approved: Valitti appeal_pending: Valitus vireillä + appeal_rejected: Muutoksenhaku hylättiin system_checks: database_schema_check: message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla @@ -827,6 +834,7 @@ fi: other: Jakanut %{count} henkilöä viimeisen viikon aikana title: Suositut linkit usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday} + not_allowed_to_trend: Ei saa trendata only_allowed: Vain sallittu pending_review: Odottaa tarkistusta preview_card_providers: @@ -958,6 +966,7 @@ fi: applications: created: Sovelluksen luonti onnistui destroyed: Sovelluksen poisto onnistui + logout: Uloskirjautuminen regenerate_token: Luo pääsytunnus uudelleen token_regenerated: Pääsytunnuksen uudelleenluonti onnistui warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! @@ -994,13 +1003,15 @@ fi: resend_confirmation: Lähetä vahvistusohjeet uudestaan reset_password: Palauta salasana rules: + accept: Hyväksy + back: Takaisin preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä." title: Joitakin perussääntöjä. security: Tunnukset set_new_password: Aseta uusi salasana setup: email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin. - email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa. + email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit vaihtaa sen tilin asetuksista. title: Asetukset sign_in: preamble_html: Kirjaudu sisään %{domain}-tunnuksillasi. Jos tilisi sijaitsee eri palvelimella, et voi sisäänkirjautua täällä. @@ -1253,7 +1264,7 @@ fi: title: Kutsu ihmisiä lists: errors: - limit: Sinulla on jo suurin sallittu määrä listoja + limit: Olet saavuttanut listojen enimmäismäärän login_activities: authentication_methods: otp: kaksivaiheinen todennussovellus @@ -1573,7 +1584,7 @@ fi: '7889238': 3 kuukautta min_age_label: Ikäraja min_favs: Pidä viestit suosikeissa vähintään - min_favs_hint: Ei poista yhtään julkaisuasi, jotka ovat saaneet vähintään tämän määrän tykkäyksiä. Jätä tyhjäksi, jos haluat poistaa julkaisuja tykkäyksien määrästä riippumatta + min_favs_hint: Ei poista julkaisujasi, joita on tykätty vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi julkaisut tykkäyskertojen määrästä riippumatta min_reblogs: Pidä viestit tehostettuna vähintään min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä stream_entries: @@ -1662,13 +1673,13 @@ fi: silence: Rajoitettu tili suspend: Tilin käyttäminen jäädytetty welcome: - edit_profile_action: Aseta profiili - 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. + edit_profile_action: Määritä profiili + edit_profile_step: Voit mukauttaa profiiliasi mm. profiilikuvalla ja uudella näyttönimellä. Voit myös valita haluatko tarkastaa ja hyväksyä uudet seuraajat itse. 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 aihetunnisteilla. Kannattaa myös esittäytyä! Käytä aihetunnistetta #esittely.' + final_step: 'Aloita julkaiseminen! Vaikkei sinulla ole seuraajia, voivat muut nähdä julkiset julkaisusi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä käyttämällä aihetunnistetta #introductions.' 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. + full_handle_hint: Kerro tämä kavereillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut muiden palvelimien kautta. subject: Tervetuloa Mastodoniin title: Tervetuloa mukaan, %{name}! users: diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 874bdc17f2..5f5648b4d2 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -91,6 +91,7 @@ fo: moderation: active: Virkin all: Allar + disabled: Óvirkið pending: Í bíðistøðu silenced: Avmarkað suspended: Avbrotin @@ -133,6 +134,7 @@ fo: search: Leita search_same_email_domain: Aðrir brúkarir eru við sama teldupost domaini search_same_ip: Aðrir brúkarar við somu IP + security: Trygd security_measures: only_password: Bara loyniorð password_and_2fa: Loyniorð og 2FA @@ -427,6 +429,7 @@ fo: resolve: Loys navnaøki title: Blokera nýtt teldupostanavnaøki no_email_domain_block_selected: Ongar teldupostanavnaøkisblokeringar vóru broyttar, tí ongar vóru valdar + not_permitted: Ikki loyvt resolved_dns_records_hint_html: Navnaøkið verður loyst til hesi MX navnaøki, sum í síðsta enda hava ábyrgdina av at móttaka teldupost. At blokera eitt MX navnaøki fer at blokera tilmeldingar frá einum og hvørjum teldupoststaði, sum brúkar sama MX navnaøki, sjálvt um sjónliga navnaøkið er eitt annað. Ansa eftir ikki at blokera stórar veitarar av telduposti resolved_through_html: Loyst gjøgnum %{domain} title: Blokeraði teldupostanavnaøki @@ -473,6 +476,7 @@ fo: content_policies: comment: Innanhýsis viðmerking description_html: Tú kanst áseta innihaldspolitikkir, sum verða áløgd øllum kontum frá hesum navnaøkinum og øllum tess undirnavnaøkjum. + limited_federation_mode_description_html: Tú kanst velja, hvørt tú loyvir sameining við hetta navnaøkið. policies: reject_media: Vraka miðil reject_reports: Vraka meldingar @@ -585,11 +589,13 @@ fo: assign_to_self: Tilluta mær assigned: Tilnevnt umsjónarfólk by_target_domain: Navnaøki hjá meldaðu kontuni + cancel: Angra category: Bólkur category_description_html: Orsøkin, at hendan kontan og/ella tilfarið var melda verður fráboðað í samskifti við meldaðu kontuni comment: none: Eingin comment_description_html: 'Fyri at veita fleiri upplýsingar skrivaði %{name}:' + confirm: Vátta confirm_action: Vátta umsjónaratgerð móti @%{acct} created_at: Meldað delete_and_resolve: Strika postar @@ -792,6 +798,7 @@ fo: suspend: "%{name} setti kontuna hjá %{target} úr gildi" appeal_approved: Kært appeal_pending: Kæra bíðar eftir avgerð + appeal_rejected: Kæra vrakað system_checks: database_schema_check: message_html: Dátugrunnaflytingar bíða. Vinarliga koyr flytingarnar fyri at tryggja at skipanin skikkar sær sum hon skal @@ -827,6 +834,7 @@ fo: other: Deilt av %{count} persónum seinastu vikuna title: Vælumtókt leinki usage_comparison: Deilt %{today} ferð í dag, samanborið við %{yesterday} ferð í gjár + not_allowed_to_trend: Ikki loyvt at gerast rák only_allowed: Einans loyvd pending_review: Bíðar eftir eftirkannan preview_card_providers: @@ -958,6 +966,7 @@ fo: applications: created: Umsókn stovnað destroyed: Umsókn strikað + logout: Rita út regenerate_token: Ger atgongdstekn av nýggjum token_regenerated: Atgongdsteknið gjørt av nýggjum warning: Ver varin við hesum dátum. Deil tað aldrin við nakran! @@ -994,6 +1003,8 @@ fo: resend_confirmation: Send góðkenningarvegleiðing umaftur reset_password: Endurstilla loyniorð rules: + accept: Góðtak + back: Aftur preamble: Hesi eru ásett og uppihildin av umsjónarfólkunum á %{domain}. title: Nakrar grundreglur. security: Trygd diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 504ab8486b..23c822e10f 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -91,6 +91,7 @@ fr-QC: moderation: active: Actifs all: Tous + disabled: Désactivé pending: En cours de traitement silenced: Limité suspended: Suspendus @@ -133,6 +134,7 @@ fr-QC: search: Rechercher search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel search_same_ip: Autres utilisateur·rice·s avec la même IP + security: Sécurité security_measures: only_password: Mot de passe uniquement password_and_2fa: Mot de passe et 2FA @@ -427,17 +429,18 @@ fr-QC: resolve: Résoudre le domaine title: Nouveau blocage de domaine de courriel no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné + not_permitted: Non autorisé resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure. resolved_through_html: Résolu par %{domain} title: Blocage de domaines de courriel export_domain_allows: new: - title: Autoriser l'importation de domaine + title: Importer les autorisations de domaine no_file: Aucun fichier sélectionné export_domain_blocks: import: - description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste. - existing_relationships_warning: Relations de suivi existantes + description_html: Vous êtes sur le point d'importer une liste de bloqueurs de domaine. Veuillez examiner cette liste très attentivement, surtout si vous ne l'avez pas créée vous-même. + existing_relationships_warning: Relations d'abonnement existantes private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}' private_comment_template: Importé depuis %{source} le %{date} title: Importer des blocages de domaine @@ -473,6 +476,7 @@ fr-QC: content_policies: comment: Note interne description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines. + limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine. policies: reject_media: Rejeter les médias reject_reports: Rejeter les signalements @@ -585,11 +589,13 @@ fr-QC: assign_to_self: Me l’assigner assigned: Modérateur assigné by_target_domain: Domaine du compte signalé + cancel: Annuler category: Catégorie category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé comment: none: Aucun comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :' + confirm: Confirmer confirm_action: Confirmer l'action de modération contre @%{acct} created_at: Signalé delete_and_resolve: Supprimer les messages @@ -729,8 +735,8 @@ fr-QC: preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon. title: Rétention du contenu default_noindex: - desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes - title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche + desc_html: Affecte tous les comptes qui n'ont pas modifié ce paramètre + title: Par défaut, ne pas indexer les comptes dans les moteurs de recherche discovery: follow_recommendations: Suivre les recommandations preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. @@ -792,6 +798,7 @@ fr-QC: suspend: "%{name} a suspendu le compte de %{target}" appeal_approved: Appel soumis appeal_pending: Appel en attente + appeal_rejected: Appel rejeté system_checks: database_schema_check: message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu @@ -958,6 +965,7 @@ fr-QC: applications: created: Application créée avec succès destroyed: Application supprimée avec succès + logout: Se déconnecter regenerate_token: Régénérer le jeton d’accès token_regenerated: Jeton d’accès régénéré avec succès warning: Soyez prudent·e avec ces données. Ne les partagez pas ! @@ -966,7 +974,7 @@ fr-QC: apply_for_account: Demander un compte change_password: Mot de passe confirmations: - wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. + wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -994,6 +1002,7 @@ fr-QC: resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe rules: + back: Retour preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}. title: Quelques règles de base. security: Sécurité @@ -1003,7 +1012,7 @@ fr-QC: 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. + preamble_html: Connectez-vous avec vos identifiants sur %{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é. @@ -1140,8 +1149,6 @@ fr-QC: storage: Médias stockés featured_tags: add_new: Ajouter un nouveau hashtag - errors: - limit: Vous avez déjà mis en avant le nombre maximum de hashtags hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme." filters: contexts: @@ -1251,9 +1258,6 @@ fr-QC: expires_at: Expire uses: Utilisations title: Inviter des gens - lists: - errors: - limit: Vous avez atteint le nombre maximum de listes login_activities: authentication_methods: otp: application d'authentification à deux facteurs @@ -1396,7 +1400,7 @@ fr-QC: activity: Activité du compte confirm_follow_selected_followers: Voulez-vous vraiment suivre les abonné⋅e⋅s sélectionné⋅e⋅s ? confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ? - confirm_remove_selected_follows: Voulez-vous vraiment suivre les abonnements sélectionnés ? + confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ? dormant: Dormant follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s followers: Abonné·e @@ -1573,7 +1577,6 @@ fr-QC: '7889238': 3 mois min_age_label: Seuil d'ancienneté min_favs: Conserver les messages mis en favoris au moins - min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris min_reblogs: Conserver les messages partagés au moins min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages stream_entries: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 278fc9e777..640a5dc321 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -91,6 +91,7 @@ fr: moderation: active: Actifs all: Tous + disabled: Désactivé pending: En cours de traitement silenced: Limité suspended: Suspendus @@ -133,6 +134,7 @@ fr: search: Rechercher search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel search_same_ip: Autres utilisateur·rice·s avec la même IP + security: Sécurité security_measures: only_password: Mot de passe uniquement password_and_2fa: Mot de passe et A2F @@ -427,6 +429,7 @@ fr: resolve: Résoudre le domaine title: Nouveau blocage de domaine de courriel no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné + not_permitted: Non autorisé resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure. resolved_through_html: Résolu par %{domain} title: Blocage de domaines de courriel @@ -473,6 +476,7 @@ fr: content_policies: comment: Note interne description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines. + limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine. policies: reject_media: Rejeter les médias reject_reports: Rejeter les signalements @@ -585,11 +589,13 @@ fr: assign_to_self: Me l’assigner assigned: Modérateur assigné by_target_domain: Domaine du compte signalé + cancel: Annuler category: Catégorie category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé comment: none: Aucun comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :' + confirm: Confirmer confirm_action: Confirmer l'action de modération contre @%{acct} created_at: Signalé delete_and_resolve: Supprimer les messages @@ -792,6 +798,7 @@ fr: suspend: "%{name} a suspendu le compte de %{target}" appeal_approved: Appel soumis appeal_pending: Appel en attente + appeal_rejected: Appel rejeté system_checks: database_schema_check: message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu @@ -827,6 +834,7 @@ fr: other: Partagé par %{count} personnes au cours de la dernière semaine title: Liens tendances usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier + not_allowed_to_trend: Non autorisé à apparaître dans les tendances only_allowed: Autorisées seulement pending_review: En attente de révision preview_card_providers: @@ -841,7 +849,7 @@ fr: description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement. disallow: Proscrire le message disallow_account: Proscrire l'auteur·rice - no_status_selected: Aucune publication en tendance n'a été changée car aucune n'a été sélectionnée + no_status_selected: Aucun message tendance n'a été modifié car aucun n'était sélectionné not_discoverable: L'auteur⋅rice n'a pas choisi de pouvoir être découvert⋅e shared_by: one: Partagé ou ajouté aux favoris une fois @@ -958,6 +966,7 @@ fr: applications: created: Application créée avec succès destroyed: Application supprimée avec succès + logout: Se déconnecter regenerate_token: Régénérer le jeton d’accès token_regenerated: Jeton d’accès régénéré avec succès warning: Soyez prudent·e avec ces données. Ne les partagez pas ! @@ -994,6 +1003,8 @@ fr: resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe rules: + accept: Accepter + back: Retour preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}. title: Quelques règles de base. security: Sécurité diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 74d211e363..cdb7a80c46 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -91,6 +91,7 @@ fy: moderation: active: Aktyf all: Alle + disabled: Utskeakele pending: Yn ôfwachting silenced: Beheind suspended: Utsteld @@ -133,6 +134,7 @@ fy: search: Sykje search_same_email_domain: Oare brûkers mei itselde e-maildomein search_same_ip: Oare brûkers mei itselde IP-adres + security: Befeiliging security_measures: only_password: Allinnich wachtwurd password_and_2fa: Wachtwurd en 2FA @@ -427,6 +429,7 @@ fy: 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 + not_permitted: Net tastien 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 @@ -473,6 +476,7 @@ fy: 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. + limited_federation_mode_description_html: Jo kinne kieze oft jo federaasje mei dit domein tastean wolle. policies: reject_media: Mediabestannen wegerje reject_reports: Rapportaazjes wegerje @@ -585,11 +589,13 @@ fy: assign_to_self: Oan my tawize assigned: Tawizen moderator by_target_domain: Domein fan rapportearre account + cancel: Annulearje 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}:' + confirm: Befêstigje confirm_action: Moderaasjemaatregelen tsjin %{acct} befêstigje created_at: Rapportearre op delete_and_resolve: Berjocht fuortsmite @@ -792,6 +798,7 @@ fy: suspend: Account %{target} is troch %{name} útsteld appeal_approved: Beswier yntsjinne appeal_pending: Beswier yn behanneling + appeal_rejected: Beswier ôfwêzen 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 @@ -827,6 +834,7 @@ fy: other: Dizze wike troch %{count} persoanen dield title: Trending keppelingen usage_comparison: Hjoed %{today} kear dield, fergelike mei %{yesterday} kear juster + not_allowed_to_trend: Trending wurdt net tastien only_allowed: Allinnich goedkarre pending_review: Moat noch beoardiele wurde preview_card_providers: @@ -958,6 +966,7 @@ fy: applications: created: Oanmeitsjen tapassing slagge destroyed: Fuortsmiten tapassing slagge + logout: Ofmelde regenerate_token: Tagongskoade opnij oanmeitsje token_regenerated: Opnij oanmeitsjen tagongskoade slagge warning: Wês foarsichtich mei dizze gegevens. Diel it nea mei in oar! @@ -994,6 +1003,8 @@ fy: resend_confirmation: Ferstjoer de befêstigingsynstruksjes nochris reset_password: Wachtwurd opnij ynstelle rules: + accept: Akseptearje + back: Tebek preamble: Dizze binne fêststeld en wurde yn stân hâlden troch de moderatoaren fan %{domain}. title: Inkelde basisrigels. security: Befeiliging diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 073f2bad00..4aa2ae98b9 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -433,10 +433,6 @@ ga: next: An céad eile older: Níos sine prev: Ceann roimhe seo - preferences: - other: Eile - posting_defaults: Posting defaults - public_timelines: Public timelines relationships: follow_selected_followers: Lean leantóirí roghnaithe followers: Leantóirí diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 1091c52e16..5db509b6f5 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1176,8 +1176,6 @@ gd: storage: Stòras mheadhanan featured_tags: add_new: Cuir fear ùr ris - errors: - limit: Bhrosnaich thu an uiread as motha de thagaichean hais mu thràth hint_html: "Dè th’ anns na tagaichean hais brosnaichte? Thèid an sealltainn gu follaiseach air a’ phròifil phoblach agad agus ’s urrainnear na postaichean poblach agad sa bheil na tagaichean hais sònraichte sin a bhrabhsadh leotha. ’S e deagh-acainn a th’ annta airson sùil a chumail air obair chruthachail no pròiseactan fada." filters: contexts: @@ -1303,9 +1301,6 @@ gd: expires_at: Falbhaidh an ùine air uses: Cleachdadh title: Thoir cuireadh do dhaoine - lists: - errors: - limit: Ràinig thu na tha ceadaichte dhut de liostaichean login_activities: authentication_methods: otp: aplacaid dearbhaidh dhà-cheumnaich @@ -1637,7 +1632,6 @@ gd: '7889238': 3 mìosan min_age_label: Stairsneach aoise min_favs: Cùm na tha ’na annsachd aig co-dhiù - min_favs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’nan annsachd an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’nan annsachd min_reblogs: Cùm na tha ’ga bhrosnachadh le co-dhiù min_reblogs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’gam brosnachadh an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’gam brosnachadh stream_entries: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 6885000ac5..b51d0f7071 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -91,6 +91,7 @@ gl: moderation: active: Activa all: Todo + disabled: Desactivada pending: Pendente silenced: Limitada suspended: Suspendidos @@ -133,6 +134,7 @@ gl: search: Procurar search_same_email_domain: Outras usuarias co mesmo dominio de email search_same_ip: Outras usuarias co mesmo IP + security: Seguridade security_measures: only_password: Só contrasinal password_and_2fa: Contrasinal e 2FA @@ -427,6 +429,7 @@ gl: resolve: Resolver dominio title: Nova entrada na listaxe negra de email no_email_domain_block_selected: Non se cambiou ningún bloqueo de dominio de email porque non se seleccionou ningún + not_permitted: Non permitido resolved_dns_records_hint_html: O nome de dominio resolve os seguintes rexistros MX, que son os últimos responsables da aceptación de emails. Bloqueando un dominio MX rexeitarás calquera enderezo de email que use este dominio MX, incluso se o nome de dominio visible é outro. Ten coidado de non bloquear os principais provedores. resolved_through_html: Resolto a través de %{domain} title: Listaxe negra de email @@ -473,6 +476,7 @@ gl: content_policies: comment: Nota interna description_html: Podes definir políticas acerca do contido que serán aplicadas a tódalas contas deste dominio e tódolos seus subdominios. + limited_federation_mode_description_html: Podes elexir se permites a federación con este dominio. policies: reject_media: Rexeitar multimedia reject_reports: Rexeitar denuncias @@ -585,11 +589,13 @@ gl: assign_to_self: Asignarme assigned: Moderador asignado by_target_domain: Dominio da conta denunciada + cancel: Cancelar category: Categoría category_description_html: A razón para denunciar esta conta ou contido será citada na comunicación coa conta denunciada comment: none: Ningún comment_description_html: 'Como información engadida, %{name} escribiu:' + confirm: Confirmar confirm_action: Confirma a acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicacións @@ -792,6 +798,7 @@ gl: suspend: "%{name} suspendeu a conta de %{target}" appeal_approved: Recurrida appeal_pending: Apelación pendente + appeal_rejected: Apelación rexeitada system_checks: database_schema_check: message_html: Existen migracións pendentes na base de datos. Bota man desta tarefa para facer que a aplicación funcione como se agarda dela @@ -827,6 +834,7 @@ gl: other: Compartido por %{count} persoas na última semana title: Ligazóns en voga usage_comparison: Compartido %{today} veces hoxe, comparado con %{yesterday} onte + not_allowed_to_trend: Non permitido como tendencia only_allowed: Só as permitidas pending_review: Revisión pendente preview_card_providers: @@ -958,6 +966,7 @@ gl: applications: created: Creouse con éxito este aplicativo destroyed: Eliminouse con éxito o aplicativo + logout: Pechar sesión regenerate_token: Votar a xenerar o testemuño de acceso token_regenerated: Rexenerouse con éxito o testemuño de acceso warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén! @@ -994,6 +1003,8 @@ gl: resend_confirmation: Reenviar as intruccións de confirmación reset_password: Restablecer contrasinal rules: + accept: Aceptar + back: Volver preamble: Son establecidas e aplicadas pola moderación de %{domain}. title: Algunhas regras básicas. security: Seguranza @@ -1141,7 +1152,7 @@ gl: featured_tags: add_new: Engadir novo errors: - limit: Xa acadaches o número máximo de cancelos + limit: Xa sinalaches o número máximo de cancelos permitido hint_html: "¿Qué son os cancelos destacados? Móstranse destacados no teu perfil público e permítenlle a outras persoas ver os teus toots públicos nos que os utilizaches. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo." filters: contexts: @@ -1253,7 +1264,7 @@ gl: title: Convidar xente lists: errors: - limit: Acadou o número máximo de listas + limit: Xa acadaches o número máximo de listas login_activities: authentication_methods: otp: app para autenticación con dous factores @@ -1573,7 +1584,7 @@ gl: '7889238': 3 meses min_age_label: Límite temporal min_favs: Manter as publicacións favoritas máis de - min_favs_hint: Non elimina ningunha das túas publicacións que recibiron máis desta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos + min_favs_hint: Non elimina ningunha das túas publicacións que recibiron alomenos esta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos min_reblogs: Manter publicacións promovidas máis de min_reblogs_hint: Non elimina ningunha das túas publicacións se foron promovidas máis deste número de veces. Deixa en branco para eliminar publicacións independentemente do seu número de promocións stream_entries: diff --git a/config/locales/he.yml b/config/locales/he.yml index 6c213c5301..30a8796448 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -95,6 +95,7 @@ he: moderation: active: פעילים all: הכל + disabled: מושבת pending: בהמתנה silenced: מוגבלים suspended: מושהים @@ -139,6 +140,7 @@ he: search: חיפוש search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל search_same_ip: משתמשים אחרים מאותה כתובת IP + security: אבטחה security_measures: only_password: סיסמה בלבד password_and_2fa: סיסמה ואימות דו-שלבי @@ -443,6 +445,7 @@ he: resolve: פתור דומיין title: חסימת דומיין דוא"ל no_email_domain_block_selected: לא בוצעו שינויים לחסימת דומייני דוא"ל שכן לא נבחרו דומיינים + not_permitted: נאסר resolved_dns_records_hint_html: שם הדומיין מוביל לדומייניי ה-MX הבאים, שהם בסופו של דבר אחראיים לקבלת דוא"ל. חסימת דומיין MX תוביל לחסימת הרשמות מכל כתובת דוא"ל שעושה שימוש בדומיין MX זה, אפילו אם הדומיין הגלוי שונה. יש להמנע מלחסום ספקי דוא"ל מובילים. resolved_through_html: נמצא דרך %{domain} title: דומייניי דוא"ל חסומים @@ -493,6 +496,7 @@ he: content_policies: comment: הערה פנימית description_html: ביכולתך להגדיר מדיניות תוכן שתופעל על כל החשבונות מדומיין זה ומתת-דומייניו. + limited_federation_mode_description_html: ניתן לבחור אם להרשות תקשורת הדדית עם שרת זה. policies: reject_media: דחיית מדיה reject_reports: דחיית דו"חות @@ -609,11 +613,13 @@ he: assign_to_self: הקצה אלי assigned: מנחה מוקצה by_target_domain: דומיין החשבון המדווח + cancel: ביטול category: קטגוריה category_description_html: הסיבה בגללה חשבון זה ו/או תוכנו דווחו תצוטט בתקשורת עם החשבון המדווח comment: none: ללא comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:' + confirm: אישור confirm_action: נא לאשר פעולת משמעת לגבי חשבון %{acct} created_at: מדווח delete_and_resolve: מחיקת הודעות @@ -820,6 +826,7 @@ he: suspend: "%{name} השעה/תה את חשבונו/ה של %{target}" appeal_approved: עורער appeal_pending: בהמתנה לערעור + appeal_rejected: הערעור נדחה system_checks: database_schema_check: message_html: נדרשות הגירות מבני נתונים. אנא הריצו אותן כדי להבטיח שהיישום מתנהג כצפוי @@ -857,6 +864,7 @@ he: two: הופץ על ידי %{count} אנשים בשבוע האחרון title: קישוריות חמות usage_comparison: הופץ %{today} פעמים היום, לעומת %{yesterday} אתמול + not_allowed_to_trend: לא מורשה להופיע כנושא חם only_allowed: רק כאלה שהותרו pending_review: בהמתנה לבדיקה preview_card_providers: @@ -994,6 +1002,7 @@ he: applications: created: ישום נוצר בהצלחה destroyed: ישום נמחק בהצלחה + logout: יציאה regenerate_token: יצירת אסימון גישה מחדש token_regenerated: אסימון גישה יוצר מחדש בהצלחה warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד! @@ -1030,6 +1039,8 @@ he: resend_confirmation: שלח הוראות אימות בשנית reset_password: איפוס סיסמה rules: + accept: הסכמה + back: בחזרה preamble: אלו נקבעים ונאכפים ע"י המנחים של %{domain}. title: כמה חוקים בסיסיים. security: אבטחה @@ -1177,7 +1188,7 @@ he: featured_tags: add_new: הוספת חדש errors: - limit: המספר המירבי של התגיות כבר מוצג + limit: הצגת כבר את המספר המירבי של תגיות נבחרות hint_html: "מהן תגיות נבחרות? הן מוצגות במובלט בפרופיל הפומבי שלך ומאפשר לאנשים לעיין בהודעות הפומביות שלך המסומנות בתגיות אלה. הן כלי אדיר למעקב אחר עבודות יצירה ופרוייקטים לטווח ארוך." filters: contexts: @@ -1305,7 +1316,7 @@ he: title: הזמנת אנשים lists: errors: - limit: הגעת למספר הרשימות המירבי. + limit: הגעת למספר הרשימות המירבי login_activities: authentication_methods: otp: יישומון אימות דו-שלבי @@ -1637,7 +1648,7 @@ he: '7889238': 3 חודשים min_age_label: סף גיל min_favs: השאר הודעות מחובבות לפחות - min_favs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של חיבובים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר החיבובים שקיבלו + min_favs_hint: לא תימחקנה הודעות שלך שקיבלו לפחות מספר זה של חיבובים. אם יישאר ריק, הודעות תימחקנה ללא תלות במספר החיבובים שלהן. min_reblogs: שמור הודעות מהודהדות לפחות min_reblogs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר ההדהודים שקיבלו stream_entries: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index a9315b1f24..7b98cc77cd 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -91,6 +91,7 @@ hu: moderation: active: Aktív all: Összes + disabled: Letiltva pending: Függőben silenced: Korlátozott suspended: Felfüggesztve @@ -133,6 +134,7 @@ hu: search: Keresés search_same_email_domain: Felhasználók ugyanezzel az email domainnel search_same_ip: Más felhasználók ugyanezzel az IP-vel + security: Biztonság security_measures: only_password: Csak jelszó password_and_2fa: Jelszó és kétlépcsős hitelesítés @@ -427,6 +429,7 @@ hu: resolve: Domain feloldása title: Új e-mail domain tiltása no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva + not_permitted: Nem engedélyezett resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat. resolved_through_html: Feloldva %{domain}-n keresztül title: Tiltott e-mail domainek @@ -473,6 +476,7 @@ hu: content_policies: comment: Belső megjegyzés description_html: Definiálhatsz tartalmi szabályokat, melyek ezen domain és minden aldomain fiókjára vonatkozni fognak. + limited_federation_mode_description_html: Eldöntheted, hogy engeded-e a föderációt ezzel a domainnel. policies: reject_media: Média elutasítása reject_reports: Bejelentések elutasítása @@ -585,11 +589,13 @@ hu: assign_to_self: Magamhoz rendelés assigned: Hozzárendelt moderátor by_target_domain: A bejelentett fiók domainje + cancel: Mégse category: Kategória category_description_html: A fiók vagy tartalom bejelentésének oka a jelentett fiókkal kapcsolatos kommunikációban idézve lesz comment: none: Egyik sem comment_description_html: 'Hogy további információkat adjon, %{name} ezt írta:' + confirm: Megerősítés confirm_action: Moderációs művelet jóváhagyása @%{acct} fiókon created_at: Jelentve delete_and_resolve: Bejegyzések törlése @@ -792,6 +798,7 @@ hu: suspend: "%{name} felfüggesztette %{target} fiókját" appeal_approved: Megfellebbezve appeal_pending: Fellebbezés folyamatban + appeal_rejected: Fellebbezés visszautasítva system_checks: database_schema_check: message_html: Vannak esedékes adatbázis migrációink. Kérlek, futtasd őket, hogy biztosítsd, hogy az alkalmazás megfelelően működjön @@ -827,6 +834,7 @@ hu: other: "%{count} ember osztotta meg a múlt héten" title: Felkapott hivatkozások usage_comparison: "%{today} alkalommal lett ma megosztva, a tegnapi %{yesterday} alkalomhoz képest" + not_allowed_to_trend: Nem engedélyezett a trendekben only_allowed: Csak engedélyezett pending_review: Áttekintésre vár preview_card_providers: @@ -958,6 +966,7 @@ hu: applications: created: Alkalmazás sikeresen létrehozva destroyed: Alkalmazás sikeresen eltávolítva + logout: Kijelentkezés regenerate_token: Hozzáférési kulcs újragenerálása token_regenerated: Hozzáférési kulcs sikeresen újragenerálva warning: Ez érzékeny adat. Soha ne oszd meg másokkal! @@ -994,6 +1003,8 @@ hu: resend_confirmation: Megerősítési lépések újraküldése reset_password: Jelszó visszaállítása rules: + accept: Elfogadás + back: Vissza preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be. title: Néhány alapszabály. security: Biztonság @@ -1141,7 +1152,7 @@ hu: featured_tags: add_new: Új hozzáadása errors: - limit: Már kiemelted a maximálisan engedélyezett számú hashtaget + limit: Elérted a maximálisan kitűzhető hashtagek számát hint_html: "Mik a kiemelt hashtagek? Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó bejegyzéseidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére." filters: contexts: @@ -1253,7 +1264,7 @@ hu: title: Meghívások lists: errors: - limit: Elérted a hozzáadható listák maximális számát + limit: Elérted a listák maximális számát login_activities: authentication_methods: otp: kétlépcsős azonosító alkalmazás @@ -1573,7 +1584,7 @@ hu: '7889238': 3 hónap min_age_label: Korhatár min_favs: Bejegyzések megtartása, melyeket többször jelöltek kedvencnek, mint - min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket ennél többször jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket + min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket legalább ennyiszer jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket min_reblogs: Bejegyzések megtartása, melyeket többször toltak meg, mint min_reblogs_hint: Egyetlen olyan bejegyzésedet sem törli, melyet ennél többször toltak meg. Hagyd üresen, hogy a megtolások számától függetlenül töröljük a bejegyzéseket stream_entries: diff --git a/config/locales/id.yml b/config/locales/id.yml index 10f7e6629b..da16e7836e 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1093,8 +1093,6 @@ id: storage: Penyimpanan media featured_tags: add_new: Tambah baru - errors: - limit: Anda sudah menampilkan tagar unggulan dengan jumlah maksimum hint_html: "Apa itu tagar yang diunggulkan? Mereka ditampilkan secara mencolok di profil publik Anda dan mengizinkan orang-orang untuk menjelajahi kiriman publik khususnya yang ada di bawah tagar tersebut. Mereka adalah alat yang bagus untuk melacak pekerjaan kreatif atau proyek jangka panjang." filters: contexts: @@ -1196,9 +1194,6 @@ id: expires_at: Kedaluwarsa uses: Penggunaan title: Undang orang - lists: - errors: - limit: Daftar Anda telah mencapai jumlah maksimum login_activities: authentication_methods: otp: aplikasi otentikasi dua-faktor @@ -1509,7 +1504,6 @@ id: '7889238': 3 bulan min_age_label: Batas usia min_favs: Simpan kiriman favorit lebih dari - min_favs_hint: Tidak menghapus kiriman Anda yang mendapatkan sekian favorit. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah favoritnya min_reblogs: Simpan kiriman yang di-boost lebih dari min_reblogs_hint: Tidak menghapus kiriman Anda yang di-boost lebih dari sekian kali. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah boost-nya stream_entries: diff --git a/config/locales/io.yml b/config/locales/io.yml index 808023e40d..809ef45462 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1069,8 +1069,6 @@ io: storage: Konservado di kontenajo featured_tags: add_new: Insertez novo - errors: - limit: Vu ja estelis maxima hashtagi hint_html: "Quo esas estelita hashtagi? Ol montresas eminente che vua publika profilo e povigas personi vidar vua publika posti partikulare kun ta hashtagi. Oli esas bona utensilo por jeretar kreiva agaji e longa projetaji." filters: contexts: @@ -1179,9 +1177,6 @@ io: expires_at: Expiros uses: Uzi title: Invitez personi - lists: - errors: - limit: Vu astingas maxima listi login_activities: authentication_methods: otp: 2-faktoryurizessoftwaro @@ -1498,7 +1493,6 @@ io: '7889238': 3 monati min_age_label: Oldeslimito min_favs: Retenez favorizita posti mine - min_favs_hint: Ne efacas irga vua posti quo ganis mine ca favorizquanto. Restez quale vakua por efacar posti sen suciar olia favorizquanto min_reblogs: Retenez bustita posti mine min_reblogs_hint: Ne efacas irga vua posti quo bustigesos mine ca foyoquanto. Restez quale vakua por efacar posti sen suciar olia foyoquanto stream_entries: diff --git a/config/locales/is.yml b/config/locales/is.yml index e68bbb2f39..56005196ff 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -91,6 +91,7 @@ is: moderation: active: Virkur all: Allt + disabled: Óvirkt pending: Í bið silenced: Takmarkað suspended: Í frysti @@ -133,6 +134,7 @@ is: search: Leita search_same_email_domain: Aðra notendur með sama tölvupóstlén search_same_ip: Aðrir notendur með sama IP-vistfang + security: Öryggi security_measures: only_password: Aðeins lykilorð password_and_2fa: Lykilorð og 2-þátta auðkenning @@ -427,6 +429,7 @@ is: resolve: Leysa lén title: Útiloka nýtt tölvupóstlén no_email_domain_block_selected: Engum útilokunum tölvupóstléna var breytt þar sem ekkert var valið + not_permitted: Ekki leyft resolved_dns_records_hint_html: Heiti lénsins vísar til eftirfarandi MX-léna, sem bera endanlega ábyrgð á að tölvupóstur skili sér. Útilokun á MX-léni mun koma í veg fyrir nýskráningar með hverju því tölvupóstfangi sem notar sama MX-lén, jafnvel þótt sýnilega lénsheitið sé frábrugðið. Farðu varlega svo þú útilokir ekki algengar tölvupóstþjónustur. resolved_through_html: Leyst í gegnum %{domain} title: Útilokuð tölvupóstlén @@ -473,6 +476,7 @@ is: content_policies: comment: Innri minnispunktur description_html: Þú getur skilgreint stefnu varðandi efni sem verður beitt á alla aðganga frá þessu léni og öllum undirlénum þess. + limited_federation_mode_description_html: Þú getur valið hvort leyfa eigi skýjasamband við þetta lén. policies: reject_media: Hafna myndefni reject_reports: Hafna kærum @@ -585,11 +589,13 @@ is: assign_to_self: Úthluta mér assigned: Úthlutaður umsjónarmaður by_target_domain: Lén kærða notandaaðgangsins + cancel: Hætta við category: Flokkur category_description_html: Ástæðan fyrir því að þessi notandaaðgangur og/eða efni hans var kært mun verða tiltekin í samskiptum við kærðan notandaaðgang comment: none: Ekkert comment_description_html: 'Til að gefa nánari upplýsingar skrifaði %{name}:' + confirm: Staðfesta confirm_action: Staðfesta umsjónaraðgerðir gagnvart @%{acct} created_at: Tilkynnt delete_and_resolve: Eyða færslum @@ -792,6 +798,7 @@ is: suspend: "%{name} setti notandaaðganginn %{target} í frysti" appeal_approved: Áfrýjað appeal_pending: Áfrýjun í bið + appeal_rejected: Áfrýjun hafnað system_checks: database_schema_check: message_html: Það eru fyrirliggjandi yfirfærslur á gagnagrunnum. Keyrðu þær til að tryggja að forritið hegði sér eins og skyldi @@ -827,6 +834,7 @@ is: other: Deilt af %{count} aðilum síðustu vikuna title: Vinsælir tenglar usage_comparison: Deilt %{today} sinnum í dag, samanborið við %{yesterday} í gær + not_allowed_to_trend: Ekki leyft að verða vinsælt only_allowed: Aðeins leyfð pending_review: Bíður eftir yfirlestri preview_card_providers: @@ -958,6 +966,7 @@ is: applications: created: Það tókst að búa til forrit destroyed: Það tókst að eyða forriti + logout: Skrá út regenerate_token: Endurgera aðgangsteikn token_regenerated: Það tókst að endurgera aðgangsteiknið warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum! @@ -994,6 +1003,8 @@ is: resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur reset_password: Endursetja lykilorð rules: + accept: Samþykkja + back: Til baka preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}. title: Nokkrar grunnreglur. security: Öryggi @@ -1141,7 +1152,7 @@ is: featured_tags: add_new: Bæta við nýju errors: - limit: Þú ert þegar búin/n að gefa hámarksfjölda myllumerkja aukið vægi + limit: Þú hefur þegar gefið hámarksfjölda myllumerkja aukið vægi hint_html: "Hvað eru myllumerki með aukið vægi? Þau eru birt áberandi á opinbera notandasniðinu þínu og gera fólki kleift að fletta í gegnum opinberu færslurnar þínar sérstaklega undir þessum myllumerkjum. Þau eru frábær aðferð við að halda utan um skapandi vinnu eða langtíma verkefni." filters: contexts: diff --git a/config/locales/it.yml b/config/locales/it.yml index d0c7168afd..3531cfc7d9 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -91,6 +91,7 @@ it: moderation: active: Attivo all: Tutto + disabled: Disattivato pending: In sospeso silenced: Limitato suspended: Sospeso @@ -133,6 +134,7 @@ it: search: Cerca search_same_email_domain: Altri utenti con lo stesso dominio email search_same_ip: Altri utenti con lo stesso IP + security: Sicurezza security_measures: only_password: Solo password password_and_2fa: Password e A2F @@ -427,6 +429,7 @@ it: resolve: Risolvi dominio title: Nuova voce della lista nera delle email no_email_domain_block_selected: Nessun blocco di dominio di posta elettronica è stato modificato in quanto nessuno è stato selezionato + not_permitted: Non consentito resolved_dns_records_hint_html: Il nome di dominio si risolve ai seguenti domini MX, che sono in ultima analisi responsabili per l'accettazione di e-mail. Il blocco di un dominio MX bloccherà le iscrizioni da qualsiasi indirizzo e-mail che utilizza lo stesso dominio MX, anche se il nome di dominio visibile è diverso. Fai attenzione a non bloccare i principali provider di posta elettronica. resolved_through_html: Risolto attraverso %{domain} title: Lista nera email @@ -473,6 +476,7 @@ it: content_policies: comment: Nota interna description_html: Puoi definire le politiche del contenuto che saranno applicate a tutti i profili da questo dominio e ognuno dei suoi sottodomini. + limited_federation_mode_description_html: Puoi scegliere se consentire la federazione con questo dominio. policies: reject_media: Rifiuta multimedia reject_reports: Rifiuta rapporti @@ -585,11 +589,13 @@ it: assign_to_self: Assegna a me assigned: Moderatore assegnato by_target_domain: Dominio dell'account segnalato + cancel: Annulla category: Categoria category_description_html: Il motivo per cui questo account e/o contenuto è stato segnalato sarà citato nella comunicazione con l'account segnalato comment: none: Nessuno comment_description_html: 'Per fornire ulteriori informazioni, %{name} ha scritto:' + confirm: Conferma confirm_action: Conferma l'azione di moderazione contro @%{acct} created_at: Segnalato delete_and_resolve: Cancella post @@ -792,6 +798,7 @@ it: suspend: "%{name} ha sospeso l'account di %{target}" appeal_approved: Sottoposto ad appello appeal_pending: Appello in attesa + appeal_rejected: Appello respinto system_checks: database_schema_check: message_html: Ci sono migrazioni del database in attesa. Sei pregato di eseguirle per assicurarti che l'applicazione si comporti come previsto @@ -827,6 +834,7 @@ it: other: Condiviso da %{count} persone nell'ultima settimana title: Link in tendenza usage_comparison: Condiviso %{today} volte oggi, rispetto a %{yesterday} ieri + not_allowed_to_trend: Non è consentito il trend only_allowed: Solo consentiti pending_review: Revisione in sospeso preview_card_providers: @@ -960,6 +968,7 @@ it: applications: created: Applicazione creata con successo destroyed: Applicazione eliminata con successo + logout: Disconnettiti regenerate_token: Rigenera il token di accesso token_regenerated: Token di accesso rigenerato warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro! @@ -996,6 +1005,8 @@ it: resend_confirmation: Invia di nuovo le istruzioni di conferma reset_password: Resetta la password rules: + accept: Accetta + back: Indietro preamble: Questi sono impostati e applicati dai moderatori di %{domain}. title: Alcune regole di base. security: Credenziali @@ -1575,7 +1586,7 @@ it: '7889238': 3 mesi min_age_label: Soglia di età min_favs: Conserva i post preferiti più di - min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto più di questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti + min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto almeno questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti min_reblogs: Conserva i post condivisi più di min_reblogs_hint: Non cancella nessuno dei tuoi post che è stato condiviso più di questo numero di volte. Lascia vuoto per cancellare i post indipendentemente dal loro numero di condivisioni stream_entries: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 288d56ca5b..bea0085c95 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -89,6 +89,7 @@ ja: moderation: active: アクティブ all: すべて + disabled: 無効 pending: 承認待ち silenced: 制限 suspended: 停止済み @@ -130,6 +131,7 @@ ja: search: 検索 search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー search_same_ip: 同じIPのユーザーを検索 + security: 認証方法 security_measures: only_password: パスワードのみ password_and_2fa: パスワードと二要素認証 @@ -419,6 +421,7 @@ ja: resolve: ドメイン解決 title: 新規メールドメインブロック no_email_domain_block_selected: 何も選択されていないためメールドメインブロックを変更しませんでした + not_permitted: 権限がありません resolved_dns_records_hint_html: ドメイン名はDNSでMXドメインに名前解決され、最終的にメールを受け付ける役割を担います。目に見えるドメイン名が異なっていても、同じMXドメインを使用するメールアドレスからのアカウント登録がブロックされます。主要なメールプロバイダーをブロックしないように注意して下さい。 resolved_through_html: "%{domain}を通して解決しました" title: メールドメインブロック @@ -463,6 +466,7 @@ ja: content_policies: comment: 内部メモ description_html: このドメインとそのサブドメインのすべてのアカウントに適用されるコンテンツポリシーを定義できます。 + limited_federation_mode_description_html: このドメインとの連合を許可するかどうかを選択できます。 policies: reject_media: メディアを拒否する reject_reports: 通報を拒否 @@ -573,11 +577,13 @@ ja: assign_to_self: 担当になる assigned: 担当者 by_target_domain: ドメイン + cancel: キャンセル category: カテゴリー category_description_html: 選択した理由は通報されたアカウントへの連絡時に引用されます comment: none: なし comment_description_html: "%{name}からの詳細情報:" + confirm: 確認 confirm_action: "@%{acct} さんに対するアクション" created_at: 通報日時 delete_and_resolve: 投稿を削除 @@ -778,6 +784,7 @@ ja: suspend: "%{name}さんが%{target}さんのアカウントを停止しました" appeal_approved: 抗議済み appeal_pending: 保留中の抗議 + appeal_rejected: 却下済みの抗議 system_checks: database_schema_check: message_html: 未実行のデータベースマイグレーションがあります。実行して正常に動作するようにしてください。 @@ -812,6 +819,7 @@ ja: other: 週間%{count}人に共有されました title: トレンドリンク usage_comparison: 今日は%{today}回、昨日は%{yesterday}回共有されました + not_allowed_to_trend: 未許可のトレンド only_allowed: 許可済み pending_review: 保留中 preview_card_providers: @@ -940,6 +948,7 @@ ja: applications: created: アプリが作成されました destroyed: アプリが削除されました + logout: ログアウト regenerate_token: アクセストークンの再生成 token_regenerated: アクセストークンが再生成されました warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください! @@ -976,6 +985,8 @@ ja: resend_confirmation: 確認メールを再送する reset_password: パスワードを再発行 rules: + accept: 同意する + back: 戻る preamble: これらは %{domain} モデレータによって設定され、実施されます。 title: いくつかのルールがあります。 security: セキュリティ @@ -1123,7 +1134,7 @@ ja: featured_tags: add_new: 追加 errors: - limit: 注目のハッシュタグの上限に達しました + limit: すでに注目のハッシュタグの上限数に達しています hint_html: "注目のハッシュタグとは? プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。" filters: contexts: @@ -1227,7 +1238,7 @@ ja: title: 新規ユーザーの招待 lists: errors: - limit: リストの上限に達しました + limit: リストの上限数に達しています login_activities: authentication_methods: otp: 二要素認証アプリ @@ -1541,7 +1552,7 @@ ja: '7889238': 3ヶ月 min_age_label: 投稿を保持する期間 min_favs: お気に入りの基準値 - min_favs_hint: この数以上、お気に入りされた投稿を削除せずに残します。空白にしておくと、お気に入りに登録された数に関わらず投稿を削除します。 + min_favs_hint: この数以上、お気に入り登録された投稿を削除せずに残します。空白にしておくと、お気に入りの数に関わらず投稿を削除します。 min_reblogs: ブーストの基準値 min_reblogs_hint: この数以上、ブーストされた投稿を削除せずに残します。空白にしておくと、ブーストされた数に関わらず投稿を削除します。 stream_entries: diff --git a/config/locales/ka.yml b/config/locales/ka.yml index ff08987d9a..dcc7e6580e 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -344,9 +344,6 @@ ka: expires_at: ვადა გასდის uses: მოხმარება title: მოიწვიეთ ხალხი - lists: - errors: - limit: მიაღწიეთ სიების მაქსიმალურ ოდენობას media_attachments: validations: images_and_video: ვიდეოს დართვა სტატუსზე, რომელიც უკვე მოიცავს სურათებს, ვერ მოხერხდება @@ -392,10 +389,6 @@ ka: next: შემდეგი older: ძველი prev: წინა - preferences: - other: სხვა - posting_defaults: Posting defaults - public_timelines: Public timelines remote_follow: missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა sessions: diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 7f77b2be78..ead31b695f 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -627,10 +627,6 @@ kab: next: Γer zdat older: Aqbuṛ prev: Win iɛeddan - preferences: - other: Wiyaḍ - posting_defaults: Posting defaults - public_timelines: Public timelines privacy_policy: title: Tasertit tabaḍnit relationships: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 4c71895880..1adddf3c86 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -453,8 +453,6 @@ kk: storage: Медиа жинақ featured_tags: add_new: Жаңасын қосу - errors: - limit: Хэштег лимитинен асып кеттіңіз hint_html: " Ерекшеліктері бар хэштегтер дегеніміз не? Олар жалпыға қол жетімді профильде көрсетіледі және адамдарға сіздің жалпы хабарламаларыңызды сол хэштегтердің астына қарауға мүмкіндік береді. Олар шығармашылық жұмыстарды немесе ұзақ мерзімді жобаларды бақылаудың тамаша құралы." filters: contexts: @@ -521,9 +519,6 @@ kk: expires_at: Аяқталу мерзімі uses: Қолданыс title: Адам шақыру - lists: - errors: - limit: Сіз тізімдердің максимум мөлшеріне жеттіңіз media_attachments: validations: images_and_video: Жазбаға видео қоса алмайсыз, тек сурет қосуға болады diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a216953e3e..8e8f7ec6b8 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -89,6 +89,7 @@ ko: moderation: active: 활동 all: 전체 + disabled: 비활성화됨 pending: 대기 중 silenced: 제한됨 suspended: 정지 중 @@ -130,6 +131,7 @@ ko: search: 검색 search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들 search_same_ip: 같은 IP의 다른 사용자들 + security: 보안 security_measures: only_password: 암호만 password_and_2fa: 암호와 2단계 인증 @@ -158,7 +160,7 @@ ko: unsilenced_msg: 성공적으로 %{username} 계정을 제한 해제했습니다 unsubscribe: 구독 해제 unsuspended_msg: 성공적으로 %{username} 계정을 정지 해제했습니다 - username: 아이디 + username: 사용자명 view_domain: 도메인의 요약 보기 warn: 경고 web: 웹 @@ -421,6 +423,7 @@ ko: resolve: 도메인 검사 title: 새 이메일 도메인 차단 no_email_domain_block_selected: 아무 것도 선택 되지 않아 어떤 이메일 도메인 차단도 변경되지 않았습니다 + not_permitted: 권한 없음 resolved_dns_records_hint_html: 도메인 네임은 다음의 MX 도메인으로 연결되어 있으며, 이메일을 받는데 필수적입니다. MX 도메인을 차단하면 같은 MX 도메인을 사용하는 어떤 이메일이라도 가입할 수 없게 되며, 보여지는 도메인이 다르더라도 적용됩니다. 주요 이메일 제공자를 차단하지 않도록 조심하세요. resolved_through_html: "%{domain}을 통해 리졸빙됨" title: Email 도메인 차단 @@ -465,6 +468,7 @@ ko: content_policies: comment: 내부 참고사항 description_html: 이 도메인과 하위 도메인의 모든 계정에 적용될 콘텐츠 정책을 정의할 수 있습니다. + limited_federation_mode_description_html: 이 도메인의 연합을 허용할지 선택할 수 있습니다. policies: reject_media: 미디어 거부 reject_reports: 신고 거부 @@ -575,11 +579,13 @@ ko: assign_to_self: 나에게 할당하기 assigned: 할당된 중재자 by_target_domain: 신고된 계정의 도메인 + cancel: 취소 category: 카테고리 category_description_html: 이 계정 또는 게시물이 신고된 이유는 신고된 계정과의 의사소통 과정에 인용됩니다 comment: none: 없음 comment_description_html: '더 많은 정보를 위해, %{name} 님이 작성했습니다:' + confirm: 확정 confirm_action: "@%{acct}에 취할 중재 결정에 대한 확인" created_at: 신고 시각 delete_and_resolve: 게시물 삭제 @@ -780,6 +786,7 @@ ko: suspend: "%{name} 님이 %{target}의 계정을 정지시켰습니다" appeal_approved: 이의제기됨 appeal_pending: 이의제기 대기중 + appeal_rejected: 이의 제기 거절됨 system_checks: database_schema_check: message_html: 대기 중인 데이터베이스 마이그레이션이 있습니다. 애플리케이션이 예상대로 동작할 수 있도록 마이그레이션을 실행해 주세요 @@ -814,6 +821,7 @@ ko: other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다 title: 유행하는 링크 usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다 + not_allowed_to_trend: 트렌드에 오를 수 없음 only_allowed: 허용된 것만 pending_review: 심사 대기 preview_card_providers: @@ -942,6 +950,7 @@ ko: applications: created: 애플리케이션이 성공적으로 생성되었습니다 destroyed: 애플리케이션이 성공적으로 삭제되었습니다 + logout: 로그아웃 regenerate_token: 토큰 재생성 token_regenerated: 액세스 토큰이 성공적으로 재생성되었습니다 warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요! @@ -978,6 +987,8 @@ ko: resend_confirmation: 확인 메일을 다시 보내기 reset_password: 암호 재설정 rules: + accept: 수락 + back: 뒤로가기 preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다. title: 몇 개의 규칙이 있습니다. security: 보안 @@ -1055,8 +1066,8 @@ ko: email_reconfirmation_html: 아직 확인 메일이 도착하지 않은 경우, 다시 요청할 수 있습니다 irreversible: 계정을 복구하거나 다시 사용할 수 없게 됩니다 more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요. - username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다 - username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다 + username_available: 이 사용자명을 다시 쓸 수 있게 됩니다. + username_unavailable: 이 사용자명은 앞으로도 쓸 수 없는 채로 남게 됩니다. disputes: strikes: action_taken: 내려진 징계 @@ -1094,7 +1105,7 @@ ko: '403': 이 페이지를 표시할 권한이 없습니다. '404': 찾으려는 페이지가 존재하지 않습니다. '406': 이 페이지는 요청한 자료형으로 제공되지 않습니다. - '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다. + '410': 보려는 페이지는 더 이상 여기에 존재하지 않습니다. '422': content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까? title: 보안 인증 실패 @@ -1112,7 +1123,7 @@ ko: date: 날짜 download: 아카이브 다운로드 hint_html: 당신의 게시물과 업로드 된 미디어의 아카이브를 요청할 수 있습니다. 내보내지는 데이터는 ActivityPub 포맷입니다. 호환 되는 모든 소프트웨어에서 읽을 수 있습니다. 7일마다 새로운 아카이브를 요청할 수 있습니다. - in_progress: 당신의 아카이브를 컴파일 중입니다… + in_progress: 아카이브를 컴파일 중... request: 아카이브 요청하기 size: 크기 blocks: 차단 @@ -1125,12 +1136,12 @@ ko: featured_tags: add_new: 추가 errors: - limit: 이미 추천 해시태그의 개수가 최대입니다 + limit: 추천 해시태그 최대 개수를 초과합니다 hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다." filters: contexts: account: 프로필 - home: 홈 타임라인 + home: 홈 & 리스트 notifications: 알림 public: 퍼블릭 타임라인 thread: 대화 @@ -1229,7 +1240,7 @@ ko: title: 초대 lists: errors: - limit: 리스트 최대치에 도달했습니다 + limit: 리스트 최대 개수를 초과합니다 login_activities: authentication_methods: otp: 2단계 인증 앱 @@ -1243,7 +1254,7 @@ ko: title: 인증 이력 media_attachments: validations: - images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부 할 수 없습니다 + images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다. not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요! too_many: 최대 4개까지 첨부할 수 있습니다 migrations: diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 0990d97682..255026db16 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1113,8 +1113,6 @@ ku: storage: Bîrdanaka medyayê featured_tags: add_new: Yeka nû tevlî bike - errors: - limit: Te jixwe berê pirtirîn hashtag destnîşan kiriye hint_html: " Hashtagên destnîşankirî çi ne? Ew bi eşkere li ser profîla te ya gelemperî têne xuyakirin û dihêlin ku mirov bi taybetî di binê wan hashtagan de li şandiyên te yên gelemperî bigere. Ew ji bo şopandina karên afirîner an projeyên demdirêj amûrek girîng in." filters: contexts: @@ -1224,9 +1222,6 @@ ku: expires_at: Diqede uses: Bikaranîn title: Mirovan vexwîne - lists: - errors: - limit: Tu gihîştî hejmara rêzika a herî zêde login_activities: authentication_methods: otp: sepandina rastandina du-gavî @@ -1543,7 +1538,6 @@ ku: '7889238': 3 meh min_age_label: Şêmûga demê min_favs: Peyamên ku ji wê zêdetir hatine ecibandin veşêre - min_favs_hint: Şandî ku ji evqas hezkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe min_reblogs: Şandiyên ku bêtir hatine bilindkirin veşêre min_reblogs_hint: Şandî ku ji ji vê hejmarê bêtir bilindkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe stream_entries: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 28c9419591..b6dd360dbe 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -331,8 +331,6 @@ lt: storage: Medijos sandėlis featured_tags: add_new: Pridėti naują - errors: - limit: Jūs jau naudojate maksimalų galimą saitažodžių(#) kiekį filters: contexts: home: Namų laiko juosta @@ -385,9 +383,6 @@ lt: expires_at: Pasibaigia uses: Naudojimai title: Pakviesti žmones - lists: - errors: - limit: Jūs pasieketė maksimalų sąrašų skaičių media_attachments: validations: images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką @@ -424,10 +419,6 @@ lt: next: Kitas older: Senesnis prev: Ankstesnis - preferences: - other: Kita - posting_defaults: Posting defaults - public_timelines: Public timelines remote_follow: missing_resource: Jūsų paskyros nukreipimo URL nerasta scheduled_statuses: diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 31e1ba77fb..64963199cd 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -93,6 +93,7 @@ lv: moderation: active: Aktīvie all: Visi + disabled: Atspējots pending: Gaida silenced: Ierobežotie suspended: Apturētie @@ -136,6 +137,7 @@ lv: search: Meklēt search_same_email_domain: Citi lietotāji ar tādu pašu e-pasta domēnu search_same_ip: Citi lietotāji ar tādu pašu IP + security: Drošība security_measures: only_password: Tikai parole password_and_2fa: Parole un 2FA @@ -435,6 +437,7 @@ lv: resolve: Atrisināt domēnu title: Bloķēt jaunu e-pasta domēnu no_email_domain_block_selected: Neviens e-pasta domēna bloks netika mainīts, jo neviens netika atlasīts + not_permitted: Nav atļauta resolved_dns_records_hint_html: Domēna nosaukums tiek izmantots tālāk norādītajos MX domēnos, kas galu galā ir atbildīgi par e-pasta pieņemšanu. Bloķējot MX domēnu, tiks bloķēta reģistrēšanās no jebkuras e-pasta adreses, kas izmanto vienu un to pašu MX domēnu, pat ja redzamais domēna nosaukums atšķiras. Esi uzmanīgs, lai nebloķētu lielākos e-pasta pakalpojumu sniedzējus. resolved_through_html: Atrisināts, izmantojot %{domain} title: Bloķētie e-pasta domēni @@ -483,6 +486,7 @@ lv: content_policies: 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. + limited_federation_mode_description_html: Tu vari izvēlēties, vai atļaut federāciju ar šo domēnu. policies: reject_media: Noraidīt multividi reject_reports: Noraidīt ziņojumus @@ -597,11 +601,13 @@ lv: assign_to_self: Piešķirt man assigned: Piešķirtais moderators by_target_domain: Ziņotā konta domēns + cancel: Atcelt category: Kategorija category_description_html: Iemesls kāpēc šis konts un / vai saturs tika ziņots, tiks minēts saziņā ar paziņoto kontu comment: none: Neviens comment_description_html: 'Lai sniegtu vairāk informācijas, %{name} rakstīja:' + confirm: Apstiprināt confirm_action: Apstipriniet regulēšanas darbību pret @%{acct} created_at: Ziņoti delete_and_resolve: Izdzēst rakstus @@ -706,7 +712,7 @@ lv: manage_settings: Pārvaldīt Iestatījumus manage_settings_description: Ļauj lietotājiem mainīt vietnes iestatījumus manage_taxonomies: Pārvaldīt Taksonomijas - manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālo saturu un atjaunināt atsauces iestatījumus + manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālāko saturu un atjaunināt atsauces iestatījumus manage_user_access: Pārvaldīt Lietotāju Piekļuves manage_user_access_description: Ļauj lietotājiem atspējot citu lietotāju divu faktoru autentifikāciju, mainīt savu e-pasta adresi un atiestatīt paroli manage_users: Pārvaldīt Lietotājus @@ -792,7 +798,7 @@ lv: reblogs: Reblogi status_changed: Ziņa mainīta title: Konta ziņas - trending: Tendences + trending: Populārākie visibility: Redzamība with_media: Ar multividi strikes: @@ -806,6 +812,7 @@ lv: suspend: "%{name} apturēja %{target} kontu" appeal_approved: Pārsūdzēts appeal_pending: Apelācija tiek izskatīta + appeal_rejected: Apelācija noraidīta system_checks: database_schema_check: message_html: Notiek datubāzu migrācijas. Lūdzu, palaid tās, lai nodrošinātu, ka lietojumprogramma darbojas, kā paredzēts @@ -842,6 +849,7 @@ lv: zero: Pēdējās nedēļas laikā kopīgoja %{count} personas title: Populārākās saites usage_comparison: Šodien kopīgots %{today} reizes, salīdzinot ar %{yesterday} vakar + not_allowed_to_trend: Popularizešana nav atļauta only_allowed: Tikai atļautās pending_review: Gaida pārskatīšanu preview_card_providers: @@ -888,7 +896,7 @@ lv: other: Pēdējās nedēļas laikā izmantoja %{count} personas zero: Pēdējās nedēļas laikā izmantoja %{count} personas title: Tendences - trending: Tendences + trending: Populārākie warning_presets: add_new: Pievienot jaunu delete: Dzēst @@ -976,6 +984,7 @@ lv: applications: created: Lietojumprogramma ir veiksmīgi izveidota destroyed: Lietojumprogramma ir veiksmīgi dzēsta + logout: Iziet regenerate_token: Atjaunot piekļuves marķieri token_regenerated: Piekļuves marķieris veiksmīgi atjaunots warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem! @@ -1012,6 +1021,8 @@ lv: resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus reset_password: Atiestatīt paroli rules: + accept: Pieņemt + back: Atpakaļ preamble: Tos iestata un ievieš %{domain} moderatori. title: Daži pamatnoteikumi. security: Drošība @@ -1046,7 +1057,7 @@ lv: close: Vai vienkārši aizver šo logu. return: Parādīt lietotāja profilu web: Doties uz tīmekli - title: Seko %{acct} + title: Sekot %{acct} challenge: confirm: Turpināt hint_html: "Padoms: Nākamās stundas laikā mēs tev vairs neprasīsim paroli." @@ -1207,7 +1218,7 @@ lv: hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni. title: Filtrētās ziņas footer: - trending_now: Šobrīd tendences + trending_now: Šobrīd populārākie generic: all: Visi all_items_on_page_selected_html: @@ -1251,7 +1262,7 @@ lv: blocking: Bloķēšanas saraksts bookmarks: Grāmatzīmes domain_blocking: Bloķēto domēnu saraksts - following: Sekojamo lietotāju saraksts + following: Turpmākais saraksts muting: Apklusināto lietotāju saraksts upload: Augšupielādēt invites: @@ -1279,7 +1290,7 @@ lv: title: Uzaicināt cilvēkus lists: errors: - limit: Esi sasniedzis maksimālo sarakstu skaitu + limit: Jūs esat sasniedzis maksimālo sarakstu skaitu login_activities: authentication_methods: otp: divfaktoru autentifikācijas lietotne @@ -1605,7 +1616,7 @@ lv: '7889238': 3 mēneši 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_favs_hint: Nedzēš nevienu jūsu ziņu, kas ir saņēmusi vismaz tik daudz izcēlumu. Atstājiet tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu 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: diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 1fc856c64f..2bee9fee14 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -971,7 +971,6 @@ ms: '63113904': 2 tahun '7889238': 3 bulan min_favs: Simpan hantaran digemarkan sekurang-kurangnya - min_favs_hint: Tidak memadamkan mana-mana hantaran anda yang telah menerima sekurang-kurangnya jumlah gemaran ini. Biarkan kosong untuk memadamkan hantaran tanpa mengira nombor gemaran stream_entries: pinned: Hantaran disemat sensitive_content: Kandungan sensitif diff --git a/config/locales/my.yml b/config/locales/my.yml index 3a86851c9e..a2aaeece03 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -1,6 +1,8 @@ --- my: about: + about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။ + hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon" title: အကြောင်း accounts: follow: စောင့်ကြည့်မယ် @@ -20,6 +22,7 @@ my: accounts: add_email_domain_block: ဒိုမိန်းကိုပိတ်မည် approve: အတည်ပြုပါ + approved_msg: "%{username} ၏ စာရင်းသွင်းခြင်းကို အတည်ပြုပြီးပါပြီ" are_you_sure: သေချာပါသလား။ avatar: ကိုယ်စားပြုရုပ်ပုံ by_domain: ဒိုမိန်း @@ -31,6 +34,7 @@ my: submit: အီးမေးလ်ပြောင်းပါ။ title: "%{username} အတွက် အီးမေးလ်ပြောင်းပါ" change_role: + changed_msg: အခန်းကဏ္ဍကို ပြောင်းလဲပြီးပါပြီ။ label: အခန်းကဏ္ဍ ပြောင်းလဲရန် no_role: အခန်းကဏ္ဍမရှိ title: "%{username} အတွက် အခန်းကဏ္ဍပြောင်းပါ" @@ -65,6 +69,7 @@ my: moderation: active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း all: အားလုံး + disabled: ပိတ်ထားသည် pending: ဆိုင်းငံ့ထားခြင်း silenced: ကန့်သတ်ထားသော suspended: ရပ်ဆိုင်းထားခြင်း @@ -73,6 +78,7 @@ my: most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ perform_full_suspension: ရပ်ဆိုင်းရန် promote: အထောက်အကူ protocol: လုပ်ထုံးလုပ်နည်း @@ -89,9 +95,11 @@ my: send: အတည်ပြုထားသောအီးမေးလ် ပြန်ပို့ပေးရန် success: အတည်ပြုထားသောအီးမေးလ် ပို့ပြီးပါပြီ။ reset: ပြန်သတ်မှတ်မည် + resubscribe: ပြန်လည်စာရင်းသွင်းပါ role: အခန်းကဏ္ဍ search: ရှာရန် search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ + security: လုံခြုံရေး security_measures: only_password: စကားဝှက်ဖြင့်သာ password_and_2fa: စကားဝှက်နှင့် 2FA @@ -110,43 +118,121 @@ my: unsubscribe: စာရင်းမှထွက်ရန် unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ" username: အသုံးပြုသူအမည် + view_domain: ဒိုမိန်းအတွက် အကျဉ်းချုပ်ကို ကြည့်ပါ web: ဝဘ် + whitelisted: ဖက်ဒီကို ခွင့်ပြုခဲ့သည် action_logs: action_types: + approve_appeal: အယူခံကို အတည်ပြုပါ approve_user: အသုံးပြုသူကို အတည်ပြုရန် change_email_user: အသုံးပြုသူအတွက် အီးမေးလ်ပြောင်းရန် change_role_user: အသုံးပြုသူ၏ အခန်းကဏ္ဍကို ပြောင်းလဲရန် confirm_user: အသုံးပြုသူကို လက်ခံရန် + create_account_warning: သတိပေးချက်ဖန်တီးပါ create_announcement: ကြေညာချက်ဖန်တီးပါ + create_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖန်တီးရန် create_custom_emoji: စိတ်ကြိုက်အီမိုဂျီ ဖန်တီးပါ + create_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖန်တီးရန် + create_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖန်တီးရန် + create_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖန်တီးရန် create_ip_block: IP စည်းမျဉ်း ဖန်တီးရန် + create_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖန်တီးပါ create_user_role: အခန်းကဏ္ဍဖန်တီးပါ destroy_announcement: ကြေညာချက်ကို ဖျက်ပါ + destroy_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖျက်ရန် destroy_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖျက်ရန် + destroy_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖျက်ရန် + destroy_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန် + destroy_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန် destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ destroy_status: Post ကို ဖျက်ပါ destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ disable_2fa_user: 2FA ကို ပိတ်ပါ disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ + disable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ပိတ်ထားသည် disable_user: အသုံးပြုသူကို ပိတ်ပါ enable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖွင့်ပါ + enable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ဖွင့်ထားသည် enable_user: အသုံးပြုသူကို ဖွင့်ပါ memorialize_account: အမှတ်တရအကောင့် promote_user: အသုံးပြုသူ မြှင့်တင်ရန် + reject_appeal: အယူခံဝင်မှုကို ငြင်းပယ်ပါ reject_user: အသုံးပြုသူ ဖယ်ရှားရန် remove_avatar_user: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ + reopen_report: အစီရင်ခံစာပြန်ဖွင့်ရန် + resend_user: အတည်ပြုရန် မေးလ်ကို ပြန်ပို့ပေးရန် + reset_password_user: စကားဝှက်ကို ပြန်လည်ရယူမည် + resolve_report: အစီရင်ခံစာကို ဖြေရှင်းရန် silence_account: အကောင့် ကန့်သတ်ပါ suspend_account: အကောင့် ရပ်ဆိုင်းပါ + unassigned_report: အစီရင်ခံစာ ဖြုတ်ရန် + unblock_email_account: အီးမေးလ်လိပ်စာ ပြန်ဖွင့်ရန် update_announcement: ကြေညာချက်ပြင်ဆင်ရန် update_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပြင်ဆင်ရန် + update_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ပြင်ဆင်ရန် update_ip_block: IP စည်းမျဉ်း ပြင်ဆင်ရန် update_status: ပို့စ်ပြင်ဆင်ရန် update_user_role: အခန်းကဏ္ဍပြင်ဆင်ရန် actions: + 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} ၏ အီးမေးလ်လိပ်စာကို အတည်ပြုခဲ့သည်" + create_account_warning_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_ip_block_html: "%{name} က IP %{target} အတွက် စည်းမျဉ်းကို ဖန်တီးထားသည်" + create_user_role_html: "%{name} က %{target} အခန်းကဏ္ဍကို ဖန်တီးပြီးပါပြီ" + demote_user_html: "%{name} က အသုံးပြုသူ %{target} ကို ဖြုတ်ပြီးပါပြီ" + destroy_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ဖျက်လိုက်သည်" + destroy_canonical_email_block_html: ဟက်ရှ် %{target} ဖြင့် %{name} အီးမေးလ်ပိတ်သိမ်းထားခြင်းကို ဖယ်ရှားပြီးပါပြီ 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_instance_html: "%{name} က ဒိုမိန်း %{target} ကို ဖယ်ရှားခဲ့သည်" + destroy_ip_block_html: "%{name} က IP %{target} အတွက် စည်းမျဉ်းကို ဖျက်ထားသည်" + destroy_status_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}" + enable_sign_in_token_auth_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} ၏ ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားခဲ့သည်" + reopen_report_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} ကို ဖြုတ်ထားသည်" + unblock_email_account_html: "%{name} က %{target} ၏ အီးမေးလ်လိပ်စာကို ပြန်ဖွင့်ခဲ့သည်" + unsensitive_account_html: "%{name} က %{target} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားခြင်းမရှိပါ" + unsuspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်" + update_announcement_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} အခန်းကဏ္ဍကို ပြောင်းလဲခဲ့ပါသည်" deleted_account: အကောင့်ဖျက်ပြီးပါပြီ empty: မှတ်တမ်းများ မတွေ့ပါ။ + filter_by_action: လုပ်ဆောင်ချက်အလိုက် စစ်ထုတ်ရန် + filter_by_user: အသုံးပြုသူအလိုက် စစ်ထုတ်ရန် + title: မှတ်တမ်းများစစ်ဆေးခြင်း announcements: destroyed_msg: ကြေညာချက် ဖျက်ပြီးပါပြီ edit: @@ -161,6 +247,7 @@ my: unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ updated_msg: ကြေညာချက်ကို ပြင်ဆင်ပြီးပါပြီ။ custom_emojis: + assign_category: အမျိုးအစားသတ်မှတ်ရန် by_domain: ဒိုမိန်း copy: ကူးယူပါ create_new_category: အမျိုးအစားအသစ်ဖန်တီးရန် @@ -169,15 +256,20 @@ my: destroyed_msg: အီမိုဂျီ ဖျက်ပစ်လိုက်ပါပြီ။ disable: ပိတ်ပါ disabled: ပိတ်ပြီးပါပြီ + disabled_msg: ထိုအီမိုဂျီကို ပိတ်ပြီးပါပြီ emoji: အီမိုဂျီ enable: ဖွင့်ပါ enabled: ဖွင့်ထားသည် + enabled_msg: ထိုအီမိုဂျီကို ဖွင့်ပြီးပါပြီ image_hint: PNG သို့မဟုတ် GIF %{size} အထိ list: စာရင်း listed: စာရင်းသွင်းထားသည် new: title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ + no_emoji_selected: မည်သည့်အီမိုဂျီကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။ title: စိတ်ကြိုက်အီမိုဂျီများ + uncategorized: အမျိုးအစားခွဲခြားထားခြင်းမရှိပါ unlist: စာရင်းမသွင်းထားပါ unlisted: စာရင်းမသွင်းထားပါ update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ @@ -185,21 +277,54 @@ my: upload: တင္ရန် dashboard: active_users: လက်ရှိအသုံးပြုသူများ + interactions: အပြန်အလှန်ဆက်သွယ်မှုများ media_storage: မီဒီယာသိုလှောင်မှု new_users: အသုံးပြုသူအသစ်များ + pending_appeals_html: + other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း" + pending_users_html: + other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ" + software: ဆော့ဖ်ဝဲလ် + sources: အကောင့်ဖွင့်ခြင်းဆိုင်ရာ သတင်းရင်းမြစ်များ + space: နေရာလွတ်အသုံးပြုမှု + title: ဒက်ရှ်ဘုတ်မြင်ကွင်း top_languages: လက်ရှိအသုံးများလျက်ရှိသည့် ဘာသာစကား top_servers: လက်ရှိအသုံးများလျက်ရှိသည့် ဆာဗာများ website: ဝဘ်ဆိုဒ် + disputes: + appeals: + empty: အယူခံဝင်ထားခြင်းမရှိပါ။ + title: အယူခံဝင်ထားခြင်းများ + domain_allows: + add_new: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုရန် + created_msg: ဒိုမိန်းကို ဖက်ဒီအတွက် ခွင့်ပြုပြီးပါပြီ + export: ထုတ်ယူခြင်း + import: ထည့်သွင်းခြင်း + undo: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်မပြုပါ domain_blocks: + add_new: ဒိုမိန်းပိတ်ပင်ခြင်းအသစ် ထည့်ပါ + created_msg: ဒိုမိန်းပိတ်ပင်ခြင်းကို ယခုလုပ်ဆောင်နေပါသည် domain: ဒိုမိန်း + edit: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ရန် + export: ထုတ်ယူခြင်း + import: ထည့်သွင်းခြင်း new: + create: ပိတ်ပင်ခြင်း ဖန်တီးရန် severity: silence: ကန့်သတ် suspend: ရပ်ဆိုင်းပါ + title: ဒိုမိန်းပိတ်ပင်ထားခြင်းအသစ် + no_domain_block_selected: မည်သည့်ဒိုမိန်းပိတ်ပင်ထားခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။ private_comment: သီးသန့်မှတ်ချက် + private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။ public_comment: အများမြင်မှတ်ချက် + reject_media: မီဒီယာဖိုင်များကို ဖယ်ရှားပါ + undo: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြန်ဖျက်ရန် + view: ဒိုမိန်းပိတ်ပင်ခြင်းကို ကြည့်ရန် email_domain_blocks: add_new: အသစ် ထည့်ပါ + created_msg: အီးမေးလ်ဒိုမိန်းကို ပိတ်ပင်နိုင်ခဲ့ပါသည် delete: ဖျက်ပါ dns: types: @@ -207,9 +332,21 @@ my: domain: ဒိုမိန်း new: create: ဒိုမိန်းထည့်ပါ + resolve: ဒိုမိန်းကို ဖြေရှင်းရန် + title: အီးမေးလ်ဒိုမိန်းအသစ်ကို ပိတ်ရန် + no_email_domain_block_selected: မည်သည့်အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + not_permitted: ခွင့်ပြုထားခြင်းမရှိပါ + resolved_through_html: "%{domain} မှတစ်ဆင့် ဖြေရှင်းခဲ့သည်" + title: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းများ export_domain_allows: no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ။ export_domain_blocks: + import: + private_comment_template: "%{date} တွင် %{source} မှ ထည့်သွင်းခဲ့သည်" + title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန် + invalid_domain_block: အောက်ပါအမှား(များ)ကြောင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒိုမိန်းပိတ်ပင်ထားမှုများကို ကျော်သွားခဲ့သည် - %{error} + new: + title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန် no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ follow_recommendations: language: ဘာသာစကားအတွက် @@ -217,8 +354,11 @@ my: instances: back_to_all: အားလုံး back_to_limited: ကန့်သတ်ထားသည် + back_to_warning: သတိပေးချက် + by_domain: ဒိုမိန်း confirm_purge: ဤဒိုမိန်းမှ အချက်အလက်များကို အပြီးတိုင်ဖျက်လိုသည်မှာ သေချာပါသလား။ content_policies: + limited_federation_mode_description_html: ဤဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုမလား။ policies: reject_media: မီဒီယာဖယ်ရှားရန် reject_reports: အစီရင်ခံစာများ ဖယ်ရှားရန် @@ -226,9 +366,13 @@ my: suspend: ရပ်ဆိုင်းပါ policy: မူဝါဒ dashboard: + instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ + instance_accounts_measure: သိမ်းဆည်းထားသော အကောင့်များ instance_followers_measure: ကျွန်ုပ်တို့၏စောင့်ကြည့်သူများ အဲ့ဒီနေရာမှာပါ instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ + instance_media_attachments_measure: သိမ်းဆည်းထားသော မီဒီယာပူးတွဲဖိုင်များ + instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ delivery: all: အားလုံး unavailable: မရရှိနိုင်ပါ @@ -238,6 +382,11 @@ my: title: စိစစ်ခြင်း private_comment: သီးသန့်မှတ်ချက် public_comment: အများမြင်မှတ်ချက် + title: ဖက်ဒီ + total_blocked_by_us: ကျွန်ုပ်တို့မှ ပိတ်ပင်ထားခြင်း + total_followed_by_them: "၎င်းတို့မှ စောင့်ကြည့်ခဲ့သည်" + total_followed_by_us: ကျွန်ုပ်တို့မှ စောင့်ကြည့်ခဲ့သည် + total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ" total_storage: မီဒီယာ ပူးတွဲချက်များ invites: filter: @@ -257,6 +406,7 @@ my: '94670856': ၃ နှစ် new: title: IP စည်းမျဉ်းအသစ်ဖန်တီးပါ + no_ip_block_selected: မည်သည့် IP စည်းမျဉ်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ title: IP စည်းမျဉ်းများ relationships: title: "%{acct} နှင့် ပတ်သက်မှု" @@ -266,37 +416,66 @@ my: disabled: ပိတ်ထားသည် enable: ဖွင့်ပါ enabled: ဖွင့်ထားသည် + save_and_enable: သိမ်းပြီး ဖွင့်ရန် status: အခြေအနေ reports: account: notes: other: "%{count} မှတ်စု" + action_log: မှတ်တမ်းများစစ်ဆေးခြင်း are_you_sure: သေချာပါသလား။ assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန် assigned: စိစစ်သူကို တာဝန်ပေးရန် + cancel: ပယ်ဖျက်မည် category: အမျိုးအစား + comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -" + confirm: အတည်ပြုမည် + confirm_action: "@%{acct} ကို စိစစ်အကဲဖြတ်ခြင်းအား အတည်ပြုပါ" delete_and_resolve: ပို့စ်များကို ဖျက်ပါ + forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ + forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်" + mark_as_resolved: ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ + mark_as_unresolved: မဖြေရှင်းရသေးကြောင်း အမှတ်အသားပြုပါ + no_one_assigned: တစ်ယောက်မျှမရှိပါ notes: create: မှတ်စုထည့်ရန် + create_and_resolve: မှတ်စုဖြင့် ဖြေရှင်းပါ create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန် delete: ဖျက်ပါ title: မှတ်စုများ + remote_user_placeholder: "%{instance} မှ အဝေးကနေအသုံးပြုသူ" reopen: အစီရင်ခံစာပြန်ဖွင့်ရန် report: "#%{id} အစီရင်ခံရန်" resolved: ဖြေရှင်းပြီးပါပြီ + skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန် status: အခြေအနေ summary: + action_preambles: + delete_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို ဖယ်ရှား တော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ - + mark_as_sensitive_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို သတိထားရသောပို့စ်များ အဖြစ် အမှတ်အသားပြုတော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ - + silence_html: သင်သည် @%{acct} ၏ အကောင့်ကို ကန့်သတ် တော့မည်ဖြစ်သည်။ ၎င်းမှာ - + suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ - actions: suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း" delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်" + unassign: တာဝန်မှဖြုတ်ရန် + unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action} + unresolved: မဖြေရှင်းရသေးပါ updated_at: ပြင်ဆင်ပြီးပါပြီ view_profile: ပရိုဖိုင်ကြည့်ရန် roles: add_new: အခန်းကဏ္ဍထည့်ပါ + assigned_users: + other: "%{count} အသုံးပြုသူ" categories: + administration: စီမံခန့်ခွဲခြင်း devops: DevOps + invites: ဖိတ်ခေါ်ခြင်း moderation: စိစစ်ခြင်း + special: အထူး delete: ဖျက်ပါ + edit: "'%{name} ၏ အခန်းကဏ္ဍကို ပြင်ဆင်ရန်" + everyone: မူလသတ်မှတ်ထားသည့် ခွင့်ပြုချက်များ permissions_count: other: "%{count} ခွင့်ပြုချက်" privileges: @@ -306,17 +485,31 @@ my: invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန် manage_announcements: ကြေညာချက်များကို စီမံပါ manage_announcements_description: ဆာဗာပေါ်တွင် ကြေညာချက်များစီမံရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန် + manage_appeals: အယူခံဝင်ထားခြင်းများကို စီမံပါ + manage_appeals_description: စိစစ်အရေးယူမှုများအပေါ် အယူခံဝင်မှုများ ပြန်လည်သုံးသပ်ရန်အတွက် အသုံးပြုသူများအား ခွင့်ပြုရန် + manage_blocks: ပိတ်ပင်ထားမှုများကို စီမံပါ + manage_custom_emojis: စိတ်ကြိုက်အီမိုဂျီများကို ပြင်ဆင်ရန် + manage_custom_emojis_description: အသုံးပြုသူများအား ဆာဗာပေါ်တွင် စိတ်ကြိုက်အီမိုဂျီများကို စီမံခန့်ခွဲရန် ခွင့်ပြုသည်။ + manage_federation: ဖက်ဒီကို စီမံပါ + manage_federation_description: အသုံးပြုသူများအား အခြားဒိုမိန်းများနှင့် ပိတ်ပင်ခြင်း၊ ဖက်ဒီခွင့်ပြုခြင်းနှင့် ပေးပို့နိုင်မှုကို ထိန်းချုပ်ခြင်းတို့ကို ခွင့်ပြုသည်။ + manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန် manage_reports: အစီရင်ခံစာများကို စီမံပါ manage_roles: အခန်းကဏ္ဍများကို စီမံပါ manage_rules: စည်းမျဉ်းများကို စီမံပါ manage_settings: သတ်မှတ်ချက်များကို စီမံပါ + manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန် + manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ manage_users: အသုံးပြုသူများကို စီမံပါ + view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန် + view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည် view_devops: DevOps + title: အခန်းကဏ္ဍများ rules: delete: ဖျက်ပါ title: ဆာဗာစည်းမျဉ်းများ settings: about: + manage_rules: ဆာဗာစည်းမျဉ်းများကို စီမံရန် title: အကြောင်း appearance: title: ပုံပန်းသဏ္ဌာန် @@ -324,20 +517,31 @@ my: profile_directory: ပရိုဖိုင်လမ်းညွှန် domain_blocks: all: လူတိုင်း + disabled: မည်သူ့ကိုမျှ + users: အကောင့်ဝင်ထားသော ပြည်တွင်းအသုံးပြုသူများအတွက် + registrations_mode: + modes: + open: မည်သူမဆို အကောင့်ဖွင့်နိုင်ပါသည် title: ဆာဗာသတ်မှတ်ချက်များ site_uploads: delete: တင်ထားသောဖိုင်ဖျက်ရန် statuses: account: ရေးသားသူ + application: အက်ပလီကေးရှင်း back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန် deleted: ဖျက်ပြီးပါပြီ favourites: အကြိုက်ဆုံးများ language: ဘာသာစကား media: title: မီဒီယာ + open: ပို့စ်ဖွင့်ရန် original_status: မူရင်းပို့စ် title: အကောင့်ပို့စ်များ with_media: မီဒီယာနှင့်အတူ + strikes: + actions: + delete_statuses: "%{name} မှ %{target} ၏ ပို့စ်များကို ဖျက်ခဲ့သည်" + none: "%{name} မှ %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်" system_checks: rules_check: action: ဆာဗာစည်းမျဉ်းများကို စီမံရန် @@ -345,10 +549,14 @@ my: allow: ခွင့်ပြု approved: အတည်ပြုပြီးပါပြီ disallow: ခွင့်မပြု + links: + allow: လင့်ခ်ကို ခွင့်ပြုရန် + disallow: လင့်ခ်ကို ခွင့်မပြုရန် rejected: ဖယ်ရှားပြီးပါပြီ statuses: allow: ပို့စ်တင်ခွင့်ပြုရန် disallow: ပို့စ်ကို တင်ခွင့်မပြုရန် + title: လက်ရှိခေတ်စားနေသော ပို့စ်များ tags: dashboard: tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ @@ -358,6 +566,8 @@ my: listable: အကြံပြုနိုင်ပါသည် not_usable: အသုံးမပြုနိုင်ပါ usable: အသုံးပြုနိုင်သည် + title: လက်ရှိခေတ်စားမှုများ + trending: လက်ရှိခေတ်စားနေခြင်း warning_presets: add_new: အသစ်ထည့်ပါ delete: ဖျက်ပါ @@ -369,6 +579,10 @@ my: enabled: လက်ရှိ events: ပွဲအစီအစဉ်များ status: အခြေအနေ + admin_mailer: + new_appeal: + actions: + none: သတိပေးချက် appearance: localization: guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။ @@ -396,6 +610,8 @@ my: registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ" security: လုံခြုံရေး set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။ + sign_in: + title: "%{domain} သို့ အကောင့်ဝင်ရန်" status: account_status: အကောင့်အခြေအနေ authorize_follow: @@ -409,6 +625,7 @@ my: challenge: confirm: ဆက်လုပ်မည် invalid_password: စကားဝှက် မမှန်ပါ + prompt: ဆက်လက်လုပ်ဆောင်ရန်အတွက် စကားဝှက်အတည်ပြုပါ date: formats: default: "%b %d, %Y" @@ -432,6 +649,8 @@ my: success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ disputes: strikes: + appeals: + submit: အယူခံဝင်ခွင့်ပြုရန် status: "#%{id} ပို့စ်" title: "%{date} မှ %{action}" title_actions: @@ -442,14 +661,20 @@ my: '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. - '429': Too many requests + '422': + content: လုံခြုံရေး အတည်ပြုခြင်း မအောင်မြင်ပါ။ သင်သည် ကွတ်ကီးများကို ပိတ်ပင်ထားပါသလား။ + '429': တောင်းဆိုမှု များနေပါသည် + '500': + title: ဤစာမျက်နှာမှာ မမှန်ကန်ပါ '503': The page could not be served due to a temporary server failure. exports: archive_takeout: date: ရက်စွဲ + download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ size: အရွယ်အစား blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း csv: CSV + domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ lists: စာရင်းများ storage: မီဒီယာသိုလှောင်မှု featured_tags: @@ -470,11 +695,23 @@ my: statuses: other: "%{count} ပို့စ်" title: စစ်ထုတ်ခြင်းများ + new: + save: စစ်ထုတ်မှုအသစ် သိမ်းပါ + title: စစ်ထုတ်မှုအသစ် ထည့်ပါ + statuses: + index: + title: စစ်ထုတ်ထားသော ပို့စ်များ generic: all: အားလုံး copy: ကူးယူပါ delete: ဖျက်ပါ today: ယနေ့ + imports: + preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။ + types: + blocking: ပိတ်ပင်ထားသည့်စာရင်း + domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း + upload: တင္ရန် invites: expires_in: '1800': ၃၀ မိနစ် @@ -501,9 +738,15 @@ my: redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည် notification_mailer: follow: + body: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။" + subject: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။" title: စောင့်ကြည့်သူအသစ် + follow_request: + action: စောင့်ကြည့်ရန်တောင်းဆိုမှုများကို ပြင်ဆင်ရန် + title: စောင့်ကြည့်ခွင့်ပြုရန် တောင်းဆိုမှုအသစ် mention: action: စာပြန်ရန် + body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်- subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည် status: subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ" @@ -607,6 +850,7 @@ my: two_factor_authentication: add: ထည့်ရန် disable: 2FA ကို ပိတ်ပါ + disabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ပြီးပါပြီ edit: ပြင်ဆင်ရန် enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည် enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ @@ -614,18 +858,33 @@ my: user_mailer: appeal_approved: action: သင့်အကောင့်သို့ သွားပါ + appeal_rejected: + title: အယူခံကို ပယ်ချခဲ့သည် suspicious_sign_in: change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ warning: + appeal: အယူခံတင်သွင်းပါ explanation: disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။ suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။ reason: အကြောင်းပြချက် - subject: + delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ" none: "%{acct} အတွက် သတိပေးချက်" + silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည် + title: + delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည် + none: သတိပေးချက် + suspend: အကောင့်ရပ်ဆိုင်းထားသည် welcome: edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန် edit_profile_step: ပရိုဖိုင်ဓာတ်ပုံတစ်ပုံ တင်ခြင်း၊ ဖော်ပြမည့်အမည် ပြောင်းလဲခြင်းနှင့် အခြားအရာများပြုလုပ်ခြင်းတို့ဖြင့် သင့်ပရိုဖိုင်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။ စောင့်ကြည့်သူအသစ်များ သင့်ကိုစောင့်ကြည့်ခွင့်မပြုမီ ပြန်လည်သုံးသပ်ရန်အတွက် ဆုံးဖြတ်နိုင်ပါသည်။ + explanation: ဤသည်မှာ သင် စတင်အသုံးပြုနိုင်ရန်အတွက် အကြံပြုချက်အချို့ဖြစ်ပါသည် + final_action: ပို့စ် တင်ရန် + subject: Mastodon မှ လှိုက်လှဲစွာကြိုဆိုပါသည်။ + users: + follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ + invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် webauthn_credentials: delete: ဖျက်ရန် registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d49a9b684d..b7a69b830e 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -91,6 +91,7 @@ nl: moderation: active: Actief all: Alles + disabled: Uitgeschakeld pending: In afwachting silenced: Beperkt suspended: Opgeschort @@ -133,6 +134,7 @@ nl: search: Zoeken search_same_email_domain: Andere gebruikers met hetzelfde e-maildomein search_same_ip: Andere gebruikers met hetzelfde IP-adres + security: Beveiliging security_measures: only_password: Alleen wachtwoord password_and_2fa: Wachtwoord en tweestapsverificatie @@ -427,6 +429,7 @@ nl: resolve: Domein opzoeken title: Nieuw e-maildomein blokkeren no_email_domain_block_selected: Er werden geen e-maildomeinblokkades gewijzigd, omdat er geen enkele werd geselecteerd + not_permitted: Niet toegestaan resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert. resolved_through_html: Geblokkeerd via %{domain} title: Geblokkeerde e-maildomeinen @@ -473,6 +476,7 @@ nl: content_policies: comment: Interne reden description_html: Je kunt het beleid bepalen dat op de accounts van dit domein en alle subdomeinen van toepassing is. + limited_federation_mode_description_html: Je kunt kiezen of je federatie met dit domein wilt toestaan. policies: reject_media: Mediabestanden weigeren reject_reports: Rapportages weigeren @@ -585,11 +589,13 @@ nl: assign_to_self: Aan mij toewijzen assigned: Toegewezen moderator by_target_domain: Domein van gerapporteerde account + cancel: Annuleren category: Category category_description_html: De reden waarom dit account en/of inhoud werd gerapporteerd wordt aan het gerapporteerde account medegedeeld comment: none: Geen comment_description_html: 'Om meer informatie te verstrekken, schreef %{name}:' + confirm: Bevestigen confirm_action: Bevestig moderatiemaatregel tegen @%{acct} created_at: Gerapporteerd op delete_and_resolve: Bericht verwijderen @@ -792,6 +798,7 @@ nl: suspend: "%{name} schortte het account %{target} op" appeal_approved: Bezwaar ingediend appeal_pending: Bezwaar in behandeling + appeal_rejected: Bezwaar afgewezen system_checks: database_schema_check: message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort @@ -827,6 +834,7 @@ nl: other: Deze week door %{count} mensen gedeeld title: Trending links usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren + not_allowed_to_trend: Trending worden niet toegestaan only_allowed: Alleen goedgekeurde pending_review: In afwachting van beoordeling preview_card_providers: @@ -958,6 +966,7 @@ nl: applications: created: Aanmaken toepassing geslaagd destroyed: Verwijderen toepassing geslaagd + logout: Uitloggen regenerate_token: Toegangscode opnieuw aanmaken token_regenerated: Opnieuw aanmaken toegangscode geslaagd warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders! @@ -994,6 +1003,8 @@ nl: resend_confirmation: Verstuur de bevestigingsinstructies nogmaals reset_password: Wachtwoord opnieuw instellen rules: + accept: Accepteren + back: Terug preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}. title: Enkele basisregels. security: Beveiliging @@ -1141,7 +1152,7 @@ nl: featured_tags: add_new: Nieuwe toevoegen errors: - limit: Je hebt al het maximaal aantal hashtags uitgelicht + limit: Je hebt al het maximale aantal hashtags uitgelicht hint_html: "Wat zijn uitgelichte hashtags? Deze worden prominent op jouw openbare profiel getoond en stelt mensen in staat om jouw openbare berichten per hashtag te bekijken. Het zijn een goed hulpmiddel om creatieve werkzaamheden of langetermijnprojecten bij te houden." filters: contexts: @@ -1253,7 +1264,7 @@ nl: title: Mensen uitnodigen lists: errors: - limit: Je hebt het maximaal aantal lijsten bereikt + limit: Je hebt het maximum aantal lijsten bereikt login_activities: authentication_methods: otp: tweestapsverificatie-app diff --git a/config/locales/nn.yml b/config/locales/nn.yml index c7797627f0..5ecc6d35f7 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1098,8 +1098,6 @@ nn: storage: Medielagring featured_tags: add_new: Legg til ny - errors: - limit: Du har allereie så mange emneknaggar som det går an å ha hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." filters: contexts: @@ -1207,9 +1205,6 @@ nn: expires_at: Vert ugyldig uses: Bruk title: By folk inn - lists: - errors: - limit: Du har nådd grensa for kor mange lister du kan ha login_activities: authentication_methods: otp: to-faktor autentiseringsapp @@ -1523,7 +1518,6 @@ nn: '7889238': 3 månader min_age_label: Aldersterskel min_favs: Behold innlegg som er favorittmarkert av minst - min_favs_hint: Sletter ingen av dine innlegg som har mottatt minst dette antalet favorittmerkingar. Lat vere blank for å slette innlegg uavhengig av antal favorittmerkingar min_reblogs: Behold innlegg fremhevet av minst min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger stream_entries: diff --git a/config/locales/no.yml b/config/locales/no.yml index 7b6560547c..b8abdc6cac 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -91,6 +91,7 @@ moderation: active: Aktive all: Alle + disabled: Deaktivert pending: Avventer silenced: Begrenset suspended: Utvist @@ -133,6 +134,7 @@ search: Søk search_same_email_domain: Andre brukere med samme E-postdomene search_same_ip: Andre brukere med den samme IP-en + security: Sikkerhet security_measures: only_password: Bare passord password_and_2fa: Passord og 2FA @@ -427,6 +429,7 @@ resolve: Løs domene title: Ny blokkeringsoppføring av e-postdomene no_email_domain_block_selected: Ingen e-postdomeneblokker ble endret da ingen ble valgt + not_permitted: Ikke tillatt resolved_dns_records_hint_html: Domenenavnet løser seg til følgende MX-domener som er til slutt ansvarlige for å motta e-post. Blokkering av et MX-domene vil blokkere signaler fra en hvilken som helst e-postadresse som bruker samme MX-domene, selv om det synlige domenenavnet er annerledes. Vær forsiktig så du ikke blokkerer store e-posttilbydere. resolved_through_html: Løst gjennom %{domain} title: Blokkering av e-postdomene @@ -441,6 +444,7 @@ private_comment_description_html: 'For å hjelpe deg med å holde oversikt over hvor importerte blokkeringer kommer fra, vil de bli opprettet med følgende private kommentar: %{comment}' private_comment_template: Importert fra %{source} den %{date} title: Importer domeneblokkeringer + invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}' new: title: Importer domeneblokkeringer no_file: Ingen fil valgt @@ -575,17 +579,23 @@ mark_as_sensitive_description_html: Mediene i de rapporterte innleggene vil bli merket som følsomme, og en advarsel vil bli notert for å hjelpe deg eskalere ved fremtidige overtredelser fra samme konto. other_description_html: Se flere alternativer for å kontrollere kontoens atferd og tilpasse kommunikasjonen til den oppgitte 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. Lukker alle rapporter mot denne kontoen. + suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen. actions_description_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dersom du tar noen entydige tiltak mot den oppgitte kontoen, blir det sendt en e-post til dem, unntatt når Søppelpost -kategorien er valgt. + actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet. add_to_report: Legg til mer i rapporten are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilegnet moderator by_target_domain: Domenet av rapportert bruker + cancel: Avbryt category: Kategori category_description_html: Årsaken til at denne kontoen og/eller innholdet er blitt rapportert vil bli henvist i forbindelse med den rapporterte kontoen comment: none: Ingen comment_description_html: 'For å gi mer informasjon, %{name} skrev:' + confirm: Bekreft + confirm_action: Bekreft moderasjonshandling mot @%{acct} created_at: Rapportert delete_and_resolve: Slettede innlegg forwarded: Videresendt @@ -602,6 +612,7 @@ placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer... title: Notater notes_description_html: Se og skriv notater til andre moderatorer og deg selv i fremtiden + processed_msg: 'Rapport #%{id} er behandlet' quick_actions_description_html: 'Ta en rask handling eller bla ned for å se rapportert innhold:' remote_user_placeholder: ekstern bruker fra %{instance} reopen: Gjenåpne rapporten @@ -614,6 +625,12 @@ status: Status statuses: Rapportert innhold statuses_description_html: Innholdet som tilbys, vil bli nevnt i forbindelse med den rapporterte kontoen + summary: + action_preambles: + delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:' + mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:' + silence_html: 'Du er i ferd med å avgrense @%{acct} sin konto. Dette vil:' + suspend_html: 'Du er i ferd med å stoppe @%{acct} sin konto. Dette vil:' target_origin: Opprinnelse for innrapportert konto title: Rapporter unassign: Fjern tilegning @@ -1075,8 +1092,6 @@ storage: Medialagring featured_tags: add_new: Legg til ny - errors: - limit: Du har allerede fremhevet det maksimale antal hashtags hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." filters: contexts: @@ -1182,9 +1197,6 @@ expires_at: Utløper uses: Bruk title: Inviter personer - lists: - errors: - limit: Du har nådd det maksimale antall lister login_activities: authentication_methods: otp: to-faktor autentiseringsapp @@ -1501,7 +1513,6 @@ '7889238': 3 måneder min_age_label: Terskel for alder min_favs: Behold innlegg som er favorittmarkert av minst - min_favs_hint: Sletter ikke noen av dine innlegg som har mottatt minst dette antall favorittmarkeringer. La stå tom for å slette innlegg uavhengig av antall favorittmarkeringer min_reblogs: Behold innlegg fremhevet av minst min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger stream_entries: diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 7af4a339da..fb185f7c05 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -600,8 +600,6 @@ oc: storage: Mèdias gardats featured_tags: add_new: Ajustar una etiqueta nòva - errors: - limit: Avètz ja utilizat lo maximum d’etiquetas filters: contexts: account: Perfils @@ -681,9 +679,6 @@ oc: expires_at: Expirats uses: Usatges title: Convidar de monde - lists: - errors: - limit: Avètz atengut lo maximum de listas login_activities: authentication_methods: password: senhal @@ -947,7 +942,6 @@ oc: '7889238': 3 meses min_age_label: Sulhet d’ancianetat min_favs: Gardar al mens las publicacion en favorit - min_favs_hint: Suprimís pas las publicacions qu’an recebut al mens aquesta quantitat de favorits. Daissar blanc per suprimir las publicacion quina quantitat de favorits qu’ajan min_reblogs: Gardar las publicacions partejadas al mens min_reblogs_hint: Suprimís pas vòstras publicacions qu’an agut aqueste nombre de partiment. Daissar blanc per suprimir las publicacions sens far cas als partiments stream_entries: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index f2c1ccdae2..8a30f8e967 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -95,6 +95,7 @@ pl: moderation: active: Aktywne all: Wszystkie + disabled: Wyłączone pending: Oczekujące silenced: Ograniczone suspended: Zawieszone @@ -139,6 +140,7 @@ pl: search: Szukaj search_same_email_domain: Inni użytkownicy z tym samym e-mail w tej domenie search_same_ip: Inni użytkownicy z tym samym IP + security: Bezpieczeństwo security_measures: only_password: Tylko hasło password_and_2fa: Hasło i 2FA @@ -443,6 +445,7 @@ pl: resolve: Rozwiąż domenę title: Nowa blokada domeny e-mail no_email_domain_block_selected: Żadne blokady domeny e-mail nie zostały zmienione, ponieważ żadne z nich nie zostały wybrane + not_permitted: Brak uprawnień resolved_dns_records_hint_html: Nazwa domeny rozwiązuje się do następujących domen MX, które są ostatecznie odpowiedzialne za przyjmowanie wiadomości e-mail. Blokowanie domeny MX spowoduje zablokowanie rejestracji z dowolnego adresu e-mail, który używa tej samej domeny MX, nawet jeśli widoczna nazwa domeny jest inna. Uważaj, aby nie blokować głównych dostawców poczty elektronicznej. resolved_through_html: Rozwiązano przez %{domain} title: Blokowanie domen e-mail @@ -493,6 +496,7 @@ pl: content_policies: comment: Wewnętrzna notatka description_html: Możesz zdefiniować zasady treści, które zostaną zastosowane do wszystkich kont z tej domeny i jej subdomen. + limited_federation_mode_description_html: Możesz wybrać, czy zezwolić na federację z tą domeną. policies: reject_media: Odrzucaj media reject_reports: Odrzucaj zgłoszenia @@ -609,11 +613,13 @@ pl: assign_to_self: Przypisz do siebie assigned: Przypisany moderator by_target_domain: Domena zgłaszanego konta + cancel: Anuluj category: Kategoria category_description_html: Powód, dla którego to konto i/lub zawartość zostały zgłoszone, będzie cytowany w komunikacji ze zgłoszonym kontem comment: none: Brak comment_description_html: 'Aby dostarczyć więcej informacji, %{name} napisał:' + confirm: Potwierdź confirm_action: Potwierdzenie działań moderacyjnych wobec @%{acct} created_at: Zgłoszono delete_and_resolve: Usuń posty @@ -820,6 +826,7 @@ pl: suspend: "%{name} zawiesił(-a) konto %{target}" appeal_approved: Odwołanie appeal_pending: Odwołanie w toku + appeal_rejected: Odwołanie odrzucone system_checks: database_schema_check: message_html: Istnieją oczekujące migracje bazy danych. Uruchom je, aby upewnić się, że aplikacja działa tak, jak powinna @@ -857,6 +864,7 @@ pl: other: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia title: Popularne linki usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj + not_allowed_to_trend: Wyłączona widoczność w popularnych only_allowed: Tylko dozwolone pending_review: Oczekuje na przegląd preview_card_providers: @@ -994,6 +1002,7 @@ pl: applications: created: Pomyślnie utworzono aplikację destroyed: Pomyślnie usunięto aplikację + logout: Wyloguj się regenerate_token: Wygeneruj nowy token dostępu token_regenerated: Pomyślnie wygenerowano nowy token dostępu warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu! @@ -1030,6 +1039,8 @@ pl: resend_confirmation: Ponownie prześlij instrukcje weryfikacji reset_password: Zresetuj hasło rules: + accept: Zaakceptuj + back: Wróć preamble: Są one ustawione i wymuszone przez moderatorów %{domain}. title: Kilka podstawowych zasad. security: Bezpieczeństwo @@ -1177,7 +1188,7 @@ pl: featured_tags: add_new: Dodaj nowy errors: - limit: Już przekroczyłeś(-aś) maksymalną liczbę wyróżnionych hashtagów + limit: Przekroczono maksymalną liczbę hasztagów hint_html: "Czym są wyróżnione hashtagi? Są one na stałe wyświetlane na Twoim profilu i pozwalają innym na przeglądanie Twoich wpisów używających tych hashtagów. Są doskonałym narzędziem do śledzenia kreatywnej twórczości czy długoterminowych projektów." filters: contexts: @@ -1305,7 +1316,7 @@ pl: title: Zaproś użytkowników lists: errors: - limit: Przekroczyłeś maksymalną liczbę utworzonych list + limit: Przekroczono maksymalną liczbę utworzonych list login_activities: authentication_methods: otp: aplikacja weryfikacji dwuetapowej diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index cbd35cd298..dcbaa027df 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1128,8 +1128,6 @@ pt-BR: storage: Armazenamento de mídia featured_tags: add_new: Adicionar hashtag - errors: - limit: Você atingiu o limite de hashtags em destaque hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." filters: contexts: @@ -1239,9 +1237,6 @@ pt-BR: expires_at: Expira em uses: Usos title: Convidar pessoas - lists: - errors: - limit: Você atingiu o máximo de listas login_activities: authentication_methods: otp: autenticação de dois fatores @@ -1561,7 +1556,6 @@ pt-BR: '7889238': 3 meses min_age_label: Validade min_favs: Manter publicações favoritadas por ao menos - min_favs_hint: Não exclui publicações que receberam pelo menos esta quantidade de favoritos. Deixe em branco para excluir publicações independentemente da quantidade de favoritos 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: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index fb296988f6..de920c3550 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -91,6 +91,7 @@ pt-PT: moderation: active: Activo all: Todos + disabled: Desativado pending: Pendente silenced: Limitadas suspended: Supensos @@ -133,6 +134,7 @@ pt-PT: search: Pesquisar 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: Segurança security_measures: only_password: Apenas palavra-passe password_and_2fa: Palavra-passe e 2FA @@ -427,6 +429,7 @@ pt-PT: resolve: Domínio de resolução title: Novo bloqueio de domínio de e-mail no_email_domain_block_selected: Nenhum bloqueio de domínio de e-mail foi alterado pois nenhum foi selecionado + not_permitted: Não permitido resolved_dns_records_hint_html: O nome de domínio resolve para os seguintes domínios MX, que são, em última análise, responsáveis por aceitar o e-mail. Bloquear um domínio MX irá bloquear as inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo quando o nome de domínio visível é diferente. Cuidado para não bloquear os principais provedores de e-mail. resolved_through_html: Resolvido através de %{domain} title: Domínios de e-mail bloqueados @@ -473,6 +476,7 @@ pt-PT: 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. + limited_federation_mode_description_html: Pode escolher se deseja permitir a federação com este domínio. policies: reject_media: Rejeitar media reject_reports: Rejeitar denúncias @@ -585,11 +589,13 @@ pt-PT: assign_to_self: Atribuída a mim assigned: Atribuída ao moderador by_target_domain: Domínio da conta denunciada + cancel: Cancelar category: Categorização category_description_html: A razão pela qual esta conta e/ou conteúdo foi denunciado será citada na comunicação com a conta denunciada comment: none: Nenhum comment_description_html: 'Para fornecer mais informações, %{name} escreveu:' + confirm: Confirmar confirm_action: Confirmar a ação de moderação contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicações @@ -792,6 +798,7 @@ pt-PT: suspend: "%{name} suspendeu a conta de %{target}" appeal_approved: Recorrido appeal_pending: Recurso pendente + appeal_rejected: Recurso rejeitado system_checks: database_schema_check: message_html: Há migrações de base de dados pendentes. Queira executá-las, para garantir que a aplicação se comporta como o esperado @@ -827,6 +834,7 @@ pt-PT: other: Partilhado por %{count} pessoas na última semana title: Ligações em alta usage_comparison: Partilhado %{today} vezes hoje, em comparação com %{yesterday} ontem + not_allowed_to_trend: Não permitido para tendência only_allowed: Apenas permitidos pending_review: Pendente de revisão preview_card_providers: @@ -958,6 +966,7 @@ pt-PT: applications: created: Aplicação correctamente criada destroyed: Aplicação correctamente eliminada + logout: Sair 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! @@ -994,6 +1003,8 @@ pt-PT: resend_confirmation: Reenviar instruções de confirmação reset_password: Criar nova palavra-passe rules: + accept: Aceitar + back: Retroceder preamble: Estas são definidas e aplicadas pelos moderadores de %{domain}. title: Algumas regras básicas. security: Alterar palavra-passe @@ -1140,8 +1151,6 @@ pt-PT: storage: Armazenamento de media featured_tags: add_new: Adicionar nova - errors: - 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: @@ -1251,9 +1260,6 @@ pt-PT: expires_at: Expira uses: Usos title: Convidar pessoas - lists: - errors: - limit: Número máximo de listas alcançado login_activities: authentication_methods: otp: aplicação de autenticação em duas etapas @@ -1573,7 +1579,6 @@ pt-PT: '7889238': 3 meses min_age_label: Limite de idade 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 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: diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 48cf790b77..f842988a23 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -576,9 +576,6 @@ ro: expires_at: Expiră uses: Utilizări title: Invită persoane - lists: - errors: - limit: Ați atins valoarea maximă a listelor media_attachments: validations: images_and_video: Nu se poate atașa un videoclip la o stare care conține deja imagini diff --git a/config/locales/ru.yml b/config/locales/ru.yml index b5fec6cfa7..983dfb4245 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -354,10 +354,10 @@ ru: new_users: новые пользователи opened_reports: жалоб открыто pending_appeals_html: - few: "%{count} аппеляции в ожидании" - many: "%{count} апелляций в ожидании" + few: "%{count} ожидают аппеляции" + many: "%{count} ожидают апелляции" one: "%{count} ожидает апелляции" - other: "%{count} апелляций в ожидании" + other: 'Ожидают апелляции: %{count}' pending_reports_html: few: "%{count} ожидающих отчета" many: "%{count} ожидающих отчетов" @@ -457,6 +457,7 @@ ru: private_comment_description_html: 'Чтобы помочь вам отслеживать откуда импортируются блокировка, импортированные блокировки будут созданы со следующим приватным комментарием: %{comment}' private_comment_template: Импортировано из %{source} %{date} title: Импорт доменных блокировок + invalid_domain_block: 'Один или несколько доменных блокировок были пропущены из-за следующих ошибок: %{error}' new: title: Импорт доменных блокировок no_file: Файл не выбран @@ -599,7 +600,10 @@ ru: mark_as_sensitive_description_html: Весь медиаконтент в обжалованных сообщениях будет отмечен как чувствительный, а претензия - записана, чтобы помочь вам в решении конфликтов при повторных нарушениях со стороны того же аккаунта. other_description_html: Посмотрите больше настроек для контроля поведения учётной записи и наладьте связь с аккаунтом с жалобой. resolve_description_html: Никаких действий не будет выполнено относительно доложенного содержимого. Жалоба будет закрыта. + silence_description_html: Учетная запись будет видна только тем пользователям, которые уже подписаны на неё, либо открыли его вручную. Это действие можно отменить в любой момент, и отменяет все жалобы против аккаунта. + suspend_description_html: Аккаунт и все его содержимое будут недоступны и в конечном итоге удалены, и взаимодействие с ним будет невозможно. Это действие можно отменить в течение 30 дней. Отменяет все жалобы против этого аккаунта. actions_description_html: Выберите действие, чтобы решить данную жалобу. Если вы выберите наказание против аккаунта, вы получите уведомление по E-Mail, проверяйте папку Спам. + actions_description_remote_html: Решите вопрос о том, какие меры необходимо принять для урегулирования этой жалобы. Это повлияет только на то, как ваш сервер взаимодействует с этим удаленным аккаунтом и обрабатывает его содержимое. add_to_report: Прикрепить ещё are_you_sure: Вы уверены? assign_to_self: Назначить себе @@ -639,13 +643,19 @@ ru: statuses: Содержимое относящееся к жалобе statuses_description_html: Нарушающее правила содержимое будет процитировано при коммуникации с фигурирующим в жалобе аккаунтом summary: + action_preambles: + suspend_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:' + actions: + delete_html: Удалить оскорбительные сообщения close_report: 'Отметить жалобу #%{id} как решённую' close_reports_html: Отметить все жалобы на @%{acct} как разрешённые delete_data_html: Удалить профиль и контент @%{acct} через 30 дней, если за это время они не будут разблокированы preview_preamble_html: "@%{acct} получит предупреждение со следующим содержанием:" + send_email_html: Отправить @%{acct} предупреждение на почту target_origin: Происхождение объекта жалобы title: Жалобы unassign: Снять назначение + unknown_action_msg: 'Неизвестное действие: %{action}' unresolved: Нерешённые updated_at: Обновлена view_profile: Открыть профиль @@ -745,6 +755,7 @@ ru: profile_directory: Каталог профилей public_timelines: Публичные ленты publish_discovered_servers: Публикация списка обнаруженных узлов + publish_statistics: Опубликовать стаитстику title: Обзор trends: Популярное domain_blocks: @@ -941,6 +952,7 @@ ru: title: Популярные посты new_trending_tags: no_approved_tags: На данный момент популярные подтвержденные хэштеги отсутствуют. + requirements: 'Каждый из этих кандидатов может превысить #%{rank} одобренных популярных хештегов. Сейчас это #%{lowest_tag_name} с числом %{lowest_tag_score}.' title: Популярные хэштеги subject: Новые тренды для проверки на %{instance} aliases: @@ -979,6 +991,8 @@ ru: auth: apply_for_account: Запросить аккаунт change_password: Пароль + confirmations: + wrong_email_hint: Если этот адрес электронной почты неверен, вы можете изменить его в настройках аккаунта. delete_account: Удалить учётную запись delete_account_html: Удалить свою учётную запись можно в два счёта здесь, но прежде у вас будет спрошено подтверждение. description: @@ -1152,8 +1166,6 @@ ru: storage: Ваши файлы featured_tags: add_new: Добавить - errors: - limit: Вы уже добавили максимальное число хэштегов hint_html: "Избранные хэштеги отображаются в вашем профиле и позволяют людям быстро найти посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ." filters: contexts: @@ -1279,9 +1291,6 @@ ru: expires_at: Истекает uses: Исп. title: Пригласить людей - lists: - errors: - limit: Вы достигли максимального числа списков login_activities: authentication_methods: otp: приложение двухфакторной аутентификации @@ -1613,7 +1622,6 @@ ru: '7889238': 3 месяца min_age_label: Возрастной порог min_favs: Порог отметок «избранного» - min_favs_hint: Не удаляет ваши посты, у которых количество отметок «избранного» достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества отметок. min_reblogs: Порог продвижений min_reblogs_hint: Не удаляет ваши посты, количество продвижений которых достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества продвижений. stream_entries: diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 3c6149be16..b23b1a02b1 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -640,8 +640,6 @@ sc: storage: Immagasinamentu featured_tags: add_new: Agiunghe noa - errors: - limit: As giai evidentziadu sa cantidade màssima de etichetas hint_html: "Ite sunt is etichetas in evidèntzia? Sunt ammustradas in evidèntzia in su profilu pùblicu tuo e permitint a sa gente de navigare is messàgios pùblicos tuos in cussas etichetas ispetzìficas. Sunt unu traste perfetu pro tènnere unu registru de òperas creativas o progetos longos." filters: contexts: @@ -713,9 +711,6 @@ sc: expires_at: Iscadit uses: Impreos title: Invita gente - lists: - errors: - limit: Cantidade màssima de listas cròmpida media_attachments: validations: images_and_video: Non si podet allegare unu vìdeu in una publicatzione chi cuntenet giai immàgines diff --git a/config/locales/sco.yml b/config/locales/sco.yml index accb1c9065..e2d3178847 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1103,8 +1103,6 @@ sco: storage: Media storage featured_tags: add_new: Add new - errors: - limit: Ye'v awriddy featurt the maximum amoont o hashtags hint_html: "Whit's featurt hashtags? They get pit prominently on yer public profile an alloo fowk fir tae broose yer public posts specifically unner thae hashtags. They'r a braw tuil fir keepin track o creative warks or lang-term projects." filters: contexts: @@ -1214,9 +1212,6 @@ sco: expires_at: Expires uses: Uises title: Invite fowk - lists: - errors: - limit: Ye'v hit the maximum amoont o lists login_activities: authentication_methods: otp: twa-factor authentication app @@ -1533,7 +1528,6 @@ sco: '7889238': 3 month min_age_label: Age threshaud min_favs: Keep posts favouritit at least - min_favs_hint: Disnae delete onie o yer posts thit's got at least this amoont o favourites. Lea blank fir tae delete posts regairdless o their nummer o favourites min_reblogs: Keep posts heezed at least min_reblogs_hint: Disnae delete onie o yer posts thit's been heezed at least this nummer o times. Lea blank fir tae delete posts regairdless o their number o heezes stream_entries: diff --git a/config/locales/si.yml b/config/locales/si.yml index 18260cba9e..f621037c90 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -931,8 +931,6 @@ si: storage: මාධ්‍ය ගබඩාව featured_tags: add_new: අලුතින් එකතු කරන්න - errors: - limit: ඔබ දැනටමත් උපරිම හෑෂ් ටැග් ප්‍රමාණය විශේෂාංග කර ඇත hint_html: "විශේෂාංගගත හැෂ් ටැග් මොනවාද? ඒවා ඔබේ පොදු පැතිකඩෙහි ප්‍රමුඛව ප්‍රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්‍රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ." filters: contexts: @@ -1016,9 +1014,6 @@ si: expires_at: කල් ඉකුත් වේ uses: භාවිතා කරයි title: මිනිසුන්ට ආරාධනා කරන්න - lists: - errors: - limit: ඔබ උපරිම ලැයිස්තු ප්‍රමාණයට ළඟා වී ඇත login_activities: authentication_methods: otp: ද්වි-සාධක සත්‍යාපන යෙදුම @@ -1326,7 +1321,6 @@ si: '7889238': මාස 3 යි min_age_label: වයස් සීමාව min_favs: අඩුම තරමින් පෝස්ට් ප්‍රිය කරන ලෙස තබා ගන්න - min_favs_hint: අවම වශයෙන් මෙම ප්‍රියතම ප්‍රමාණය ලබා ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත. ඔවුන්ගේ ප්‍රියතමයන් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න stream_entries: diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index c17b3b8988..32364cf7e4 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -3,7 +3,10 @@ ast: simple_form: hints: admin_account_action: - text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar amestar preconfiguraes p'aforrar tiempu + text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar alvertencies preconfiguraes p'aforrar tiempu + type_html: Escueyi qué facer con %{acct} + types: + none: Usa esta opción pa unviar una alvertencia al perfil, ensin aicionar nenguna otra aición. announcement: all_day: Al marcar la opción, namás apaecen les dates del intervalu de tiempu ends_at: Opcional. L'anunciu dexa de tar espublizáu na data qu'indiques @@ -68,8 +71,10 @@ ast: admin_account_action: include_statuses: Incluyir nel mensaxe los artículos de los que s'informó send_email_notification: Avisar al perfil per corréu electrónicu + text: Alvertencia personalizada type: Aición types: + sensitive: Marcar como cuenta sensible suspend: Suspender announcement: all_day: Eventu de tol día diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index e5696a56f5..4a2c532ce6 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -18,6 +18,8 @@ be: disable: Перадухіліць выкарыстанне акаунтаў, але не выдаляць і не хаваць іх змесціва. none: Выкарыстоўвай гэта для папярэджвання карыстальнікаў але без іншых наступстваў. sensitive: Прымусова адмячаць усе медыя карыстальніка як дэлікатныя. + silence: Забараніць карыстальніку пасты з публічнай бачнасцю, схаваць ягоныя допісы і апавяшчэнні ад людзей, якія на яго не падпісаныя. Закрывае ўсе скаргі на гэты ўліковы запіс. + suspend: Забараніць любыя ўзаемадзеянні ад ці з гэтым уліковым запісам і выдаліць ягонае змесціва. Можна адрабіць цягам 30 дзён. Закрывае ўсе скаргі на гэты ўліковы запіс. warning_preset_id: Неабавязкова. Вы можаце дадаць уласны тэкст напрыканцы шаблону announcement: all_day: Калі пазначана, будуць паказаны толькі даты з пазначанага прамежку часу @@ -72,6 +74,7 @@ be: hide: Поўнасцю схаваць адфільтраванае змесціва, дзейнічаць, нібы яго не існуе warn: Схаваць адфільтраваны кантэнт за папярэджаннем з назвай фільтру form_admin_settings: + activity_api_enabled: Падлік лакальна апублікаваных пастоў, актыўных карыстальнікаў і новых рэгістрацый у тыдзень backups_retention_period: Захоўваць створаныя архівы карыстальніка адзначаную колькасць дзён. bootstrap_timeline_accounts: Гэтыя ўліковыя запісы будуць замацаваны ў топе рэкамендацый для новых карыстальнікаў. closed_registrations_message: Паказваецца, калі рэгістрацыя закрытая @@ -79,6 +82,7 @@ be: custom_css: Вы можаце прымяняць карыстальніцкія стылі ў вэб-версіі Mastodon. mascot: Замяняе ілюстрацыю ў пашыраным вэб-інтэрфейсе. media_cache_retention_period: Спампаваныя медыя будуць выдаляцца пасля выстаўленай колькасці дзён, калі выстаўлены станоўчы лік, і спампоўвацца нанова па запыце. + peers_api_enabled: Спіс даменных імён, з якімі сутыкнуўся гэты сервер у федэсвеце. Дадзеныя аб тым, ці знаходзіцеся вы з пэўным серверам у федэрацыі, не ўключаныя, ёсць толькі тое, што ваш сервер ведае пра гэта. Гэта выкарыстоўваецца сэрвісамі, якія збіраюць статыстыку па федэрацыі ў агульным сэнсе. profile_directory: Дырэкторыя профіляў змяшчае спіс усіх карыстальнікаў, якія вырашылі быць бачнымі. require_invite_text: Калі рэгістрацыя патрабуе ручнога пацвержання, зрабіце поле "Чаму вы хочаце далучыцца?" абавязковым site_contact_email: Як людзі могуць звязацца з вамі па юрыдычных запытах або пытаннях падтрымкі. diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 3ec5e19e1c..213e519ce3 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -13,26 +13,26 @@ bg: include_statuses: Потребителят ще може да види кои публикации са довели до действието от страна на модератора или до предупреждението send_email_notification: Потребителят ще получи обяснение какво се е случило с неговия акаунт text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време - type_html: Изберете какво да сторите с %{acct} + type_html: Изберете какво ще правите с %{acct} types: disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт. none: Служи за изпращане на предупреждение до потребител, без да се активира друго действие. sensitive: Принудително отбелязване на прикачената от потребителя мултимедия като чувствителна. - silence: Забраняване на потребителя да публикува публично, скриване на неговите публикации и известия от други потребители, които не го следват. Затваря всички доклади срещу този акаунт. - suspend: Забрана на всякаква интеракция с този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт. + silence: Предотвратяване на потребителя да може да публикува с обществена видимост, скриване на публикациите му и известията от хората, които не го следват. Затваря всички доклади срещу този акаунт. + suspend: Предотвратяване на всякакво взаимодействие от или към този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт. warning_preset_id: По избор. Можете да добавите допълнително текст накрая на предварително настроения текст announcement: all_day: Когато е избрана настройката, само датите от времевия диапазон ще бъдат показани ends_at: По избор. В зададеното време обявлението ще бъде автоматично премахнато - scheduled_at: Ако се остави празно, обявлението ще се публикува незабавно + scheduled_at: Оставете празно, за да публикувате оповестяването веднага starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон - text: Можете да използвате синтаксиса на обикновени публикации. Не забравяйте, че обявлението ще заеме известно място от екрана на потребителя + text: Може да употребявате синтаксиса на публикации. Имайте предвид, че оповестяването ще заема известно място от екрана на потребителя appeal: text: Можете да възразите срещу провинение само веднъж defaults: autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват - avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела - bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят + avatar: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела + bot: Сигнализиране до другите, че акаунтът изпълнява предимно автоматизирани деяния и може да не се наблюдава context: Един или повече контексти, към които да се приложи филтърът current_password: От съображения за сигурност, въведете паролата на текущия акаунт current_username: Въведете потребителското име на текущия профил, за да потвърдите @@ -44,12 +44,12 @@ bg: inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно locale: Езикът на потребителския интерфейс, известиятата по имейл и насочените известия - locked: Изисква ръчно одобрение на последователите. По подразбиране, публикациите са достъпни само до последователи. + locked: Ръчно управляване кой може да ви последва, одобрявайки заявките за последване password: Използвайте поне 8 символа phrase: Ще съвпадне без значение дали са главни или малки букви, или ако е предупреждение към публикация scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални. setting_aggregate_reblogs: Без показване на нови подсилвания за публикации, които са неотдавна подсилени (засяга само новополучени подсилвания) - setting_always_send_emails: Обикновено известия по имейл няма да бъдат изпратени при активно използване на Mastodon + setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване setting_display_media_default: Скриване на мултимедия отбелязана като деликатна setting_display_media_hide_all: Винаги да се скрива мултимедията @@ -57,10 +57,10 @@ bg: setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва setting_noindex: Засяга вашите публикации и публичен профил setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви - setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити + setting_use_blurhash: Преливането е въз основа на цветовете на скритите визуализации, но се замъгляват подробностите setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала username: Вашето потребителско име ще е неповторим в %{domain} - whole_word: Ако ключовата дума/фраза е стриктно буквеноцифрена, ще бъде приложена само, ако съвпадне с цялата дума + whole_word: Ако ключовата дума или фраза е само буквеноцифрена, то ще се приложи само, ако съвпадне с цялата дума domain_allow: domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени email_domain_block: @@ -72,15 +72,15 @@ bg: action: Изберете кое действие да се извърши, прецеждайки съвпаденията на публикацията actions: hide: Напълно скриване на филтрираното съдържание, сякаш не съществува - warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра + warn: Скриване на филтрираното съдържание зад предупреждение, споменавайки заглавието на филтъра form_admin_settings: activity_api_enabled: Брой публикувани постове, активни потребители и нови регистрации за седмицата - backups_retention_period: Запазване на генерираните потребителски архиви за посочения брой дни. + backups_retention_period: Задържане на породените потребителски архиви за определения брой дни. bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители. closed_registrations_message: Показва се, когато е затворено за регистрации content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо. custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon. - mascot: Можете да заместите илюстрацията в разширения уеб интерфейс. + mascot: Замества илюстрацията в разширения уеб интерфейс. media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване. peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл. profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми. @@ -89,12 +89,12 @@ bg: site_contact_username: Как хората могат да ви достигнат в Mastodon. site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown. site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е? - site_terms: Използвайте собствени правила за поверителност или оставете празно, за да използвате тези по подразбиране. Може да се структурира с Markdown синтаксис. - site_title: Как могат хората да наричат вашия сървър, освен името на домейна. + site_terms: Употребявайте свои правила за поверителност или оставете празно, за да използвате стандартните правила. Може да се структурира със синтаксиса на Markdown. + site_title: Как могат хората да се обръщат към сървъра ви, освен по името на домейна. status_page_url: Адресът на страницата, където хората могат да видят състоянието на този сървър по време на прекъсване - theme: Темата, която нови и невлезли потребители ще виждат. - thumbnail: Изображение в резолюция около 2:1, показвана до информацията за вашия сървър. - timeline_preview: Невлезлите потребители ще могат да преглеждат най-новите публични публикации, налични на сървъра. + theme: Темата, която излизащи от системата посетители и нови потребители виждат. + thumbnail: Образ в съотношение около 2:1, показвано до информацията за сървъра ви. + timeline_preview: Излизащите от системата посетители ще може да разглеждат най-новите публични публикации, налични на сървъра. trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие. trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви. trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено. @@ -121,12 +121,12 @@ bg: tag: name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо user: - chosen_languages: Само публикации на езиците с отметка ще бъдат показвани в публичните инфопотоци + chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси role: Ролите управляват какви права има потребителят user_role: color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат highlighted: Това прави ролята публично видима - name: Публично име за ролята, ако ролята е настроена да се показва като значка + name: Публично име на ролята, ако ролята е зададена да се показва като значка permissions_as_keys: Потребители с тази роля ще имат достъп до... position: По-висшата роля може да разреши конфликти в някои ситуации. Някои действия могат да бъдат извършени само за роли с по-нисък приоритет webhook: diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index c51fda6613..d965f6b714 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -208,7 +208,7 @@ cy: setting_display_media_show_all: Dangos popeth setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro setting_hide_network: Cuddio eich graff cymdeithasol - setting_noindex: Peidio mynegeio peiriannau chwilio + setting_noindex: Eithrio rhag gael eich mynegeio gan beiriannau chwilio setting_reduce_motion: Lleihau mudiant mewn animeiddiadau setting_show_application: Datgelu rhaglen a ddefnyddir i anfon postiadau setting_system_font_ui: Defnyddio ffont rhagosodedig y system @@ -255,7 +255,7 @@ cy: site_title: Enw'r gweinydd status_page_url: URL tudalen statws theme: Thema ragosodedig - thumbnail: Lluniau bach gweinydd + thumbnail: Bawdlun y gweinydd timeline_preview: Caniatáu mynediad heb ei ddilysu i linellau amser cyhoeddus trendable_by_default: Caniatáu pynciau llosg heb adolygiad trends: Galluogi pynciau llosg diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index b7baf6aff3..0090c2f96d 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -8,7 +8,7 @@ de: acct: Gib profilname@domain des Kontos an, zu dem du umziehen möchtest account_warning_preset: text: Du kannst Beitragssyntax verwenden, wie z. B. URLs, Hashtags und Erwähnungen - title: Optional. Für den Empfänger nicht sichtbar + title: Optional. Für Empfänger*in nicht sichtbar admin_account_action: 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 @@ -16,7 +16,7 @@ de: 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. + none: Dem Account eine Verwarnung zuschicken, ohne dabei eine andere Aktion vorzunehmen. sensitive: Erzwingen, dass alle Medienanhänge dieses Profils mit einer Inhaltswarnung versehen werden. silence: Verhindert, dass dieses Profil öffentlich sichtbare Beiträge verfassen kann, und verbirgt alle Beiträge und Benachrichtigungen vor Personen, die diesem Profil nicht folgen. Alle Meldungen zu diesem Konto werden geschlossen. suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. @@ -28,7 +28,7 @@ de: starts_at: Optional. Nur für den Fall, dass deine Ankündigung an einen bestimmten Zeitraum gebunden ist text: Du kannst die reguläre Syntax wie für Beiträge verwenden, also auch Profile erwähnen und Hashtags nutzen. Bitte beachte den Platz, den die Ankündigung auf dem Bildschirm der Benutzer*innen einnehmen wird appeal: - text: Du kannst nur einmal Einspruch gegen einen Verstoß einlegen + text: Du kannst nur einmal Einspruch gegen eine Maßnahme einlegen defaults: autofollow: Personen, die sich über deine Einladung registrieren, folgen automatisch deinem Profil avatar: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert @@ -99,9 +99,9 @@ de: trends: Trends zeigen, welche Beiträge, Hashtags und Nachrichten auf deinem Server immer beliebter werden. trends_as_landing_page: Zeigt Trendinhalte abgemeldeter Benutzer und Besucher anstelle einer Beschreibung dieses Servers an. Erfordert, dass Trends aktiviert sind. form_challenge: - current_password: Du betrittst einen gesicherten Bereich + current_password: Du betrittst einen sicheren Bereich imports: - data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde + data: CSV-Datei, die von einem Mastodon-Server exportiert worden ist invite_request: text: Dies wird uns bei der Überprüfung deiner Anmeldung behilflich sein ip_block: @@ -109,7 +109,7 @@ de: 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 selbst aussperrst! severities: - no_access: Blockiere Zugriff auf alle Ressourcen + no_access: Zugriff auf alle Ressourcen blockieren 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 @@ -117,7 +117,7 @@ de: text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp sessions: otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:' - webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und ihn, wenn notwendig, antippst. + webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst. tag: name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen user: @@ -130,12 +130,12 @@ de: permissions_as_keys: Benutzer*innen mit dieser Rolle haben Zugriff auf... 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: Wähle die zu sendenden Termine + events: Zu sendende Ereignisse auswählen url: Wo Ereignisse hingesendet werden labels: account: fields: - name: Bezeichnung + name: Beschriftung value: Inhalt account_alias: acct: Adresse des alten Kontos @@ -146,15 +146,15 @@ de: title: Titel admin_account_action: include_statuses: Beitragsmeldungen in die E-Mail mit anfügen - send_email_notification: Nutzer*in per E-Mail benachrichtigen - text: Benutzerdefinierte Warnung + send_email_notification: Benachrichtigung per E-Mail + text: Benutzerdefinierte Verwarnung type: Aktion types: disable: Einfrieren - none: Warnung senden + none: Nur Verwarnung sensitive: Inhaltswarnung - silence: Einschränkung - suspend: Sperren + silence: Stummschalten + suspend: Sperre warning_preset_id: Warnungsvorlage verwenden announcement: all_day: Ganztägiges Ereignis @@ -163,18 +163,18 @@ de: starts_at: Beginn der Ankündigung text: Ankündigung appeal: - text: Erkläre, warum diese Entscheidung rückgängig gemacht werden soll + text: Begründe, weshalb diese Entscheidung zurückgenommen werden sollte defaults: autofollow: Meinem Profil automatisch folgen avatar: Profilbild - bot: Dies ist ein Bot-Konto + bot: Dieses Profil ist ein Bot chosen_languages: Sprachen einschränken confirm_new_password: Neues Passwort bestätigen confirm_password: Passwort bestätigen context: Filter nach Bereichen current_password: Derzeitiges Passwort data: Daten - discoverable: Konto für andere empfehlen + discoverable: Dieses Konto anderen empfehlen display_name: Anzeigename email: E-Mail-Adresse expires_in: Läuft ab @@ -187,7 +187,7 @@ de: locked: Geschütztes Profil max_uses: Maximale Verwendungen new_password: Neues Passwort - note: Über mich + note: Biografie otp_attempt: Zwei-Faktor-Authentisierung password: Passwort phrase: Wort oder Formulierung @@ -217,10 +217,10 @@ de: setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemandem entfolgt wird setting_use_blurhash: Farbverlauf für verborgene Medien anzeigen setting_use_pending_items: Langsamer Modus - severity: Schweregrad - sign_in_token_attempt: Sicherheitscode + severity: Einschränkung + sign_in_token_attempt: Sicherheitsschlüssel title: Titel - type: Art des Imports + type: Typ username: Profilname username_or_email: Profilname oder E-Mail whole_word: Phrasensuche mit exakter Zeichenfolge erzwingen @@ -231,7 +231,7 @@ de: filters: actions: hide: Vollständig ausblenden - warn: Mit einer Warnung ausblenden + warn: Mit einer Inhaltswarnung ausblenden form_admin_settings: activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API backups_retention_period: Aufbewahrungsfrist für Archive @@ -244,12 +244,12 @@ de: peers_api_enabled: Veröffentliche Liste bekannter Server in der API profile_directory: Profilverzeichnis aktivieren registrations_mode: Wer darf ein neues Konto registrieren? - require_invite_text: Grund für den Beitritt verlangen + require_invite_text: Begründung für Beitritt verlangen 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_extended_description: Detaillierte Beschreibung + site_extended_description: Erweiterte Beschreibung site_short_description: Serverbeschreibung site_terms: Datenschutzerklärung site_title: Servername @@ -267,7 +267,7 @@ de: invite: comment: Kommentar invite_request: - text: Warum möchtest du beitreten? + text: Weshalb möchtest du beitreten? ip_block: comment: Kommentar ip: IP-Adresse @@ -290,10 +290,10 @@ de: rule: text: Regel tag: - listable: Erlaube diesem Hashtag, im Profilverzeichnis zu erscheinen + listable: Erlaube, dass dieser Hashtag in Suchen und Empfehlungen erscheint name: Hashtag - trendable: Erlaube es, diesen Hashtag in den Trends erscheinen zu lassen - usable: Beiträgen erlauben, diesen Hashtag zu verwenden + trendable: Erlaube, dass dieser Hashtag in den Trends erscheint + usable: Erlaube, dass dieser Hashtag in Beiträgen erscheint user: role: Rolle user_role: diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index d28435c7df..6b4d50d8ef 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -18,6 +18,8 @@ el: disable: Αποτρέψτε το χρήστη από τη χρήση του λογαριασμού του, αλλά όχι διαγραφή ή απόκρυψη των περιεχομένων του. none: Χρησιμοποιήστε αυτό για να στείλετε μια προειδοποίηση στον χρήστη, χωρίς να ενεργοποιήσετε οποιαδήποτε άλλη ενέργεια. sensitive: Εξαναγκάστε όλα τα συνημμένα πολυμέσα αυτού του χρήστη να επισημαίνονται ως ευαίσθητα. + silence: Αποτρέψτε τον χρήστη από το να μπορεί να δημοσιεύει με δημόσια ορατότητα, να αποκρύπτει τις δημοσιεύσεις του και τις ειδοποιήσεις του από άτομα που δεν τις ακολουθούν. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού. + suspend: Αποτροπή οποιασδήποτε αλληλεπίδρασης από ή προς αυτόν τον λογαριασμό και διαγραφή των περιεχομένων του. Αναστρέψιμο εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού. warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο announcement: all_day: Όταν είναι επιλεγμένο, θα εμφανίζονται μόνο οι ημερομηνίες εντός της χρονικής διάρκειας @@ -25,6 +27,8 @@ el: scheduled_at: Αν μείνει κενό, η ενημέρωση θα δημοσιευτεί αμέσως starts_at: Προαιρετικό, για την περίπτωση που η ανακοίνωση αφορά συγκεκριμένη χρονική διάρκεια text: Δεκτό το συντακτικό των τουτ. Παρακαλούμε έχε υπόψιν σου το χώρο που θα καταλάβει η ανακοίνωση στην οθόνη του χρήστη + appeal: + text: Μπορείτε να κάνετε έφεση σε μια ποινή μόνο μία φορά defaults: autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px @@ -33,6 +37,7 @@ el: current_password: Για λόγους ασφαλείας παρακαλώ γράψε τον κωδικό του τρέχοντος λογαριασμού current_username: Για επιβεβαίωση, παρακαλώ γράψε το όνομα χρήστη του τρέχοντος λογαριασμού digest: Αποστέλλεται μόνο μετά από μακρά περίοδο αδράνειας και μόνο αν έχεις λάβει προσωπικά μηνύματα κατά την απουσία σου + discoverable: Επιτρέψτε στον λογαριασμό σας να ανακαλυφθεί από αγνώστους μέσω συστάσεων, τάσεων και άλλων χαρακτηριστικών email: Θα σου σταλεί email επιβεβαίωσης fields: Μπορείς να έχεις έως 4 σημειώσεις σε μορφή πίνακα στο προφίλ σου header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px @@ -59,9 +64,20 @@ el: domain_allow: domain: Ο τομέας αυτός θα επιτρέπεται να ανακτά δεδομένα από αυτό τον διακομιστή και τα εισερχόμενα δεδομένα θα επεξεργάζονται και θα αποθηκεύονται email_domain_block: + domain: Αυτό μπορεί να είναι το όνομα τομέα που εμφανίζεται στη διεύθυνση email ή η εγγραφή MX που χρησιμοποιεί. Θα ελέγχονται κατά την εγγραφή. with_dns_records: Θα γίνει απόπειρα ανάλυσης των εγγραφών DNS του τομέα και τα αποτελέσματα θα μπουν και αυτά σε μαύρη λίστα featured_tag: name: 'Εδώ είναι μερικά από τα hashtags που χρησιμοποιήσατε περισσότερο πρόσφατα:' + filters: + action: Επιλέξτε ποια ενέργεια θα εκτελεστεί όταν μια δημοσίευση ταιριάζει με το φίλτρο + actions: + hide: Πλήρης αποκρυψη του φιλτραρισμένου περιεχομένου, συμπεριφέρεται σαν να μην υπήρχε + warn: Απόκρυψη φιλτραρισμένου περιεχομένου πίσω από μια προειδοποίηση που αναφέρει τον τίτλο του φίλτρου + form_admin_settings: + activity_api_enabled: Καταμέτρηση τοπικά δημοσιευμένων δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαία πακέτα + backups_retention_period: Διατήρηση αρχείων χρηστών που δημιουργήθηκαν για τον καθορισμένο αριθμό ημερών. + bootstrap_timeline_accounts: Αυτοί οι λογαριασμοί θα καρφιτσωθούν στην κορυφή των νέων χρηστών που ακολουθούν τις συστάσεις. + closed_registrations_message: Εμφανίζεται όταν κλείνουν οι εγγραφές form_challenge: current_password: Μπαίνεις σε ασφαλή περιοχή imports: diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 9cb8dae478..b8edaf6368 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -39,7 +39,7 @@ ko: digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기 discoverable: 추천, 트렌드 및 기타 기능을 통해 낯선 사람이 내 계정을 발견할 수 있도록 허용합니다 email: 당신은 확인 메일을 받게 됩니다 - fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다 + fields: 프로필에 최대 4개의 항목을 표로 표시할 수 있습니다. header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨 inbox_url: 사용 할 릴레이 서버의 프론트페이지에서 URL을 복사합니다 irreversible: 필터링 된 게시물은 나중에 필터가 사라지더라도 돌아오지 않게 됩니다 @@ -175,7 +175,7 @@ ko: current_password: 현재 암호 입력 data: 데이터 discoverable: 계정을 다른 사람들에게 추천하기 - display_name: 표시되는 이름 + display_name: 표시 이름 email: 이메일 주소 expires_in: 만료시각 fields: 프로필 메타데이터 diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index 67c6daf4b3..47137d801e 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -40,13 +40,13 @@ sr: fields: Можете имати до 4 ставке приказане као табела на вашем налогу header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px inbox_url: Копирајте URL са насловне стране релеја који желите користити - irreversible: Филтриранe трубе ће нестати неповратно, чак и ако је филтер касније уклоњен - locale: Језик корисничког интерфејса, е-поште и мобилних обавештења + irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен + locale: Језик корисничког окружења, е-поште и мобилних обавештења locked: Захтева да појединачно одобрите пратиоце password: Користите најмање 8 знакова - phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају трубе + phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају објаве scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне. - setting_aggregate_reblogs: Не показуј нова дељења за трубе које су недавно подељене (утиче само на недавно примљена дељења) + setting_aggregate_reblogs: Не приказуј нова подржавања за објаве које су недавно подржане (утиче само на недавно примљена подржавања) setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом setting_display_media_default: Сакриј медије означене као осетљиве @@ -54,7 +54,7 @@ sr: setting_display_media_show_all: Увек прикажи медије означене као осетљиве setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу setting_noindex: Утиче на Ваш јавни налог и статусне стране - setting_show_application: Апликација коју користиш за објављивање биће приказана у детаљном приказу твојих објава + setting_show_application: Апликација коју користите за објављивање ће бити приказана у детаљном приказу ваших објава setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава username: Ваш надимак ће бити јединствен на %{domain} @@ -77,7 +77,7 @@ sr: closed_registrations_message: Приказује се када су пријаве затворене content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно. custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона. - mascot: Замењује илустрацију у напредном веб интерфејсу. + mascot: Замењује илустрацију у напредном веб окружењу. media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев. profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви. require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони @@ -115,10 +115,10 @@ sr: tag: name: Могу се само променити мала слова у велика, на пример, да би било читљивије user: - chosen_languages: Када означите, трубе у изабраним језицима ће се приказати на јавној временској линији + chosen_languages: Када је означено, објаве у изабраним језицима ће бити приказане на јавној временској линији role: Улога контролише које дозволе корисник има user_role: - color: Боја која ће се користити за улогу у целом корисничком интерфејсу, као RGB, у хексадецималном формату + color: Боја која ће се користити за улогу у целом корисничком окружењу, као RGB у хексадецималном формату highlighted: Ово чини улогу јавно видљивом name: Јавни назив улоге, ако је улога подешена да се приказује као значка permissions_as_keys: Корисници са овом улогом ће имати приступ... @@ -185,24 +185,24 @@ sr: otp_attempt: Двофакторски код password: Лозинка phrase: Кључна реч или фраза - setting_advanced_layout: Омогући напредни веб интерфејс + setting_advanced_layout: Омогући напредно веб окружење setting_aggregate_reblogs: Групиши дељења у временским линијама setting_always_send_emails: Увек шаљи обавештења е-поштом - setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове + setting_auto_play_gif: Аутоматски репродукуј анимиране GIF-ове setting_boost_modal: Прикажи дијалог за потврду пре давања подршке setting_crop_images: Изрежи слике у непроширеним објавама на 16x9 setting_default_language: Језик објављивања setting_default_privacy: Приватност објава setting_default_sensitive: Увек означи мултимедију као осетљиву - setting_delete_modal: Прикажи дијалог за потврду пре брисања тута + setting_delete_modal: Прикажи дијалог за потврду пре брисања објаве setting_disable_swiping: Онемогући покрете превлачења setting_display_media: Приказ медија setting_display_media_default: Подразумевано setting_display_media_hide_all: Сакриј све setting_display_media_show_all: Прикажи све - setting_expand_spoilers: Увек прошити трубе које су означене упозорењем садржаја + setting_expand_spoilers: Увек прошири објаве које су означене упозорењем садржаја setting_hide_network: Сакриј своју мрежу - setting_noindex: Одјави се од индексирања search engine-а + setting_noindex: Онемогући индексирање претраживача setting_reduce_motion: Смањи покрете у анимацијама setting_show_application: Откриј апликацију која се користи за слање постова setting_system_font_ui: Користи системски фонт diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml index 16ece9d2ca..02ef592c93 100644 --- a/config/locales/simple_form.zh-HK.yml +++ b/config/locales/simple_form.zh-HK.yml @@ -18,6 +18,8 @@ zh-HK: disable: 禁止該使用者使用他們的帳號,但是不刪除或隱藏他們的內容。 none: 用這個來警告該使用者,而不進行其他操作。 sensitive: 強制標記此用戶的所有媒體附件為敏感內容。 + silence: 禁止該使用者發佈公開帖文,沒有追蹤他們的人不會看到其帖文和通知。關閉所有對該帳號的檢舉報告。 + suspend: 禁止與該帳號的所有互動,並移除其內容。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。 warning_preset_id: 選用。你仍可在預設訊息的結尾加入自訂文字 announcement: all_day: 勾選後,只會顯示出時間範圍中的日期部分 @@ -72,6 +74,7 @@ zh-HK: hide: 完全隱藏被篩選的內容,猶如它不存在般。 warn: 將已篩選的內容隱藏在篩選器標題的警告後面。 form_admin_settings: + activity_api_enabled: 每週本站發佈的帖文、活躍使用者及新註冊的數量 backups_retention_period: 繼續封存生成的使用者到指定的天數。 bootstrap_timeline_accounts: 這些帳號會被置頂在新使用者的追蹤建議上。 closed_registrations_message: 關閉註冊時顯示 @@ -79,6 +82,7 @@ zh-HK: custom_css: 你可以在 Mastodon 網頁版套用自訂樣式。 mascot: 覆蓋進階網頁介面中的插圖。 media_cache_retention_period: 當設定為正數時,已下載的媒體檔案將在指定天數後被刪除,並視乎需要重新下載。 + peers_api_enabled: 本伺服器於聯邦宇宙相遇的網域名單。這裏不包括你與某伺服器有否聯網的數據,僅表示你的伺服器已知的網域。這是供收集一般跨站數據的服務使用。 profile_directory: 個人檔案目錄羅列了所有選擇被發現的使用者。 require_invite_text: 如果需要手動審核註冊,請將「為何你想加入?」文字欄設定為必填,而非選填。 site_contact_email: 大家如何聯絡你有關法律或支援的查詢。 @@ -87,11 +91,13 @@ zh-HK: site_short_description: 用作辨別你的伺服器的一段簡短描述。誰營運它,它為誰服務的? site_terms: 使用你的私隱政策,或者留空使用預設的,可以用 Markdown 語法編寫。 site_title: 除了域名以外,其他人會如何指稱你的伺服器。 + status_page_url: 可在服務中斷期間,查看此伺服器狀態的網頁網址 theme: 未登入訪客和新使用者看到的主題。 thumbnail: 一幅約 2:1 的圖片顯示在你的伺服器資訊的旁邊。 timeline_preview: 未登入的訪客能夠瀏覽伺服器上最新的公開帖文。 trendable_by_default: 跳過對趨勢內容的手動審查,事後仍可從趨勢中刪除個別項目。 trends: 趨勢顯示哪些帖文、標籤和新聞故事在你的伺服器上較有吸引力。 + trends_as_landing_page: 向未登入的使用者及訪客展示趨勢內容,而非只有此伺服器的描述。需要啟用趨勢。 form_challenge: current_password: 你正要進入安全區域 imports: @@ -227,6 +233,7 @@ zh-HK: hide: 完全隱藏 warn: 警告並隱藏 form_admin_settings: + activity_api_enabled: 在 API 中發佈使用者活動的匯總統計數據 backups_retention_period: 封存使用者保留期 bootstrap_timeline_accounts: 總是向新使用者推薦這些帳號 closed_registrations_message: 無法註冊時的自訂訊息 @@ -234,6 +241,7 @@ zh-HK: custom_css: 自訂 CSS mascot: 自訂吉祥物 (舊版) media_cache_retention_period: 媒體快取保留期 + peers_api_enabled: 在 API 中發佈已知的伺服器名單 profile_directory: 啟用個人檔案目錄 registrations_mode: 誰能註冊 require_invite_text: 提供一個加入的理由 @@ -245,11 +253,13 @@ zh-HK: site_short_description: 伺服器描述 site_terms: 私隱政策 site_title: 伺服器名稱 + status_page_url: 狀態頁網址 theme: 預設主題 thumbnail: 伺服器縮圖 timeline_preview: 允許未經認證的人存取公共時間軸 trendable_by_default: 允許未經審核的趨勢 trends: 啟用趨勢 + trends_as_landing_page: 使用趨勢作為登陸頁面 interactions: must_be_follower: 隱藏你關注者以外的人的通知 must_be_following: 隱藏你不關注的人的通知 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 8c50b8e94f..5f974c6fd1 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -154,7 +154,7 @@ zh-TW: none: 什麼也不做 sensitive: 敏感内容 silence: 安靜 - suspend: 停權並不可逆的刪除帳號資料 + suspend: 停權並永久刪除帳號資料 warning_preset_id: 使用警告預設 announcement: all_day: 全天活動 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 6ec3c0c7df..d50da0041a 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -95,6 +95,7 @@ sk: moderation: active: Aktívny/a all: Všetko + disabled: Blokovaný pending: Čakajúci silenced: Obmedzený suspended: Vylúčený/á @@ -133,6 +134,7 @@ sk: search: Hľadaj search_same_email_domain: Iní užívatelia s tou istou emailovou doménou search_same_ip: Ostatní užívatelia s rovnakou IP adresou + security: Zabezpečenie security_measures: only_password: Iba heslo password_and_2fa: Heslo a dvoj-faktorové overovanie @@ -345,6 +347,7 @@ sk: create: Pridaj doménu resolve: Preveď doménu title: Nový email na zablokovanie + not_permitted: Nepovolená resolved_through_html: Prevedená cez %{domain} title: Blokované emailové adresy export_domain_allows: @@ -459,9 +462,11 @@ sk: assign_to_self: Priraď sebe assigned: Priradený moderátor by_target_domain: Doména nahláseného účtu + cancel: Zruš category: Kategória comment: none: Žiadne + confirm: Potvrď created_at: Nahlásené delete_and_resolve: Vymaž príspevky forwarded: Preposlané @@ -658,6 +663,7 @@ sk: applications: created: Aplikácia bola vytvorená úspešne destroyed: Aplikáciu sa podarilo odstrániť + logout: Odhlás sa regenerate_token: Znovu vygeneruj prístupový token token_regenerated: Prístupový token bol úspešne vygenerovaný znova warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj! @@ -683,6 +689,8 @@ sk: registration_closed: "%{instance} neprijíma nových členov" resend_confirmation: Zašli potvrdzujúce pokyny znovu reset_password: Obnov heslo + rules: + back: Späť security: Zabezpečenie set_new_password: Nastav nové heslo setup: @@ -788,7 +796,7 @@ sk: featured_tags: add_new: Pridaj nový errors: - limit: Už si si predvolil/a najvyšší možný počet obľúbených haštagov + limit: Už si si predvolil/a najvyšší možný počet haštagov filters: contexts: account: Profily @@ -865,7 +873,7 @@ sk: title: Pozvi ľudí lists: errors: - limit: Dosiahli ste maximálny možný počet zoznamov + limit: Dosiahli ste maximálny počet zoznamov login_activities: authentication_methods: password: heslom diff --git a/config/locales/sl.yml b/config/locales/sl.yml index e2f712d7f8..18009d3729 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -95,6 +95,7 @@ sl: moderation: active: Dejaven all: Vse + disabled: Onemogočeno pending: Na čakanju silenced: Omejeno suspended: Suspendiran @@ -139,6 +140,7 @@ sl: search: Iskanje search_same_email_domain: Drugi uporabniki z isto e-poštno domeno search_same_ip: Drugi uporabniki z istim IP + security: Varnost security_measures: only_password: Samo geslo password_and_2fa: Geslo in 2FA @@ -443,6 +445,7 @@ sl: resolve: Razreši domeno title: Nov vnos e-pošte na črni seznam no_email_domain_block_selected: Nobena domena e-računa ni bila spremenjena, ker nobena ni bila izbrana + not_permitted: Ni dovoljeno resolved_dns_records_hint_html: Ime domene se razreši na naslednje domene MX, ki so končno odgovorne za sprejemanje e-pošte. Blokiranje domene MX bo blokiralo prijave s poljubnega e-poštnega naslova, ki uporablja isto domeno MX, tudi če je vidno ime domene drugačno. Pazite, da ne blokirate večjih ponudnikov e-pošte. resolved_through_html: Razrešeno prek %{domain} title: Črni seznam e-pošt @@ -493,6 +496,7 @@ sl: content_policies: comment: Interna opomba description_html: Določite lahko pravila (t.i. politike), ki bodo veljale za vse račune te domene ter vseh njenih poddomen. + limited_federation_mode_description_html: Izberete lahko, ali dovolite federacijo s to domeno. policies: reject_media: Zavrni večpredstavnost reject_reports: Zavrni prijave @@ -609,11 +613,13 @@ sl: assign_to_self: Dodeli meni assigned: Dodeljen moderator by_target_domain: Domena prijavljenega računa + cancel: Prekliči category: Kategorija category_description_html: Razlog, zakaj je ta račun in/ali vsebina prijavljena, bo naveden v komunikaciji z računom iz prijave comment: none: Brez comment_description_html: 'V pojasnilo je %{name} zapisal/a:' + confirm: Potrdi confirm_action: Potrdite dejanje moderiranja proti @%{acct} created_at: Prijavljeno delete_and_resolve: Izbriši objave @@ -820,6 +826,7 @@ sl: suspend: "%{name} je suspendiral/a račun uporabnika %{target}" appeal_approved: Pritoženo appeal_pending: Čakajoč na ugovor + appeal_rejected: Pritožba zavrnjena system_checks: database_schema_check: message_html: Na čakanju so migracije zbirke podatkov. Prosimo, izvedite jih, da zagotovite, da se program vede pričakovano @@ -857,6 +864,7 @@ sl: two: Delili %{count} osebi v zadnjem tednu title: Povezave v trendu usage_comparison: Danes deljeno %{today}-krat, včeraj pa %{yesterday}-krat + not_allowed_to_trend: Ni dovoljeno, da bi bilo v trendu only_allowed: Samo dovoljeni pending_review: Čakajoče na pregled preview_card_providers: @@ -994,6 +1002,7 @@ sl: applications: created: Aplikacija je bila uspešno ustvarjena destroyed: Aplikacija je bila uspešno izbrisana + logout: Odjava regenerate_token: Obnovite dostopni žeton token_regenerated: Dostopni žeton je bil uspešno regeneriran warning: Bodite zelo previdni s temi podatki. Nikoli jih ne delite z nikomer! @@ -1030,6 +1039,8 @@ sl: resend_confirmation: Ponovno pošlji navodila za potrditev reset_password: Ponastavi geslo rules: + accept: Sprejmi + back: Nazaj preamble: Slednje določajo in njihovo spoštovanje zagotavljajo moderatorji %{domain}. title: Nekaj osnovnih pravil. security: Varnost @@ -1637,7 +1648,7 @@ sl: '7889238': 3 mesece min_age_label: Starostna meja min_favs: Obrži objave priljubljene vsaj - min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno količino priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov + min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno število priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov min_reblogs: Obdrži objave izpostavljene vsaj min_reblogs_hint: Ne izbriše nobene od vaših objav, ki je bila vsaj tolikokrat podprta. Pustite prazno, če želite izbrisati objave ne glede na število izpostavitev stream_entries: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 961a14d47e..a36b667d84 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -91,6 +91,7 @@ sq: moderation: active: Aktiv all: Krejt + disabled: I çaktivizuar pending: Pezull silenced: I kufizuar suspended: Të pezulluara @@ -133,6 +134,7 @@ sq: search: Kërkoni search_same_email_domain: Të tjerë përdorues me të njëjtën përkatësi email-i search_same_ip: Të tjerë përdorues me të njëjtën IP + security: Siguri security_measures: only_password: Vetëm fjalëkalim password_and_2fa: Fjalëkalim dhe 2FA @@ -427,6 +429,7 @@ sq: resolve: Ftilloje përkatësinë title: Zë i ri email në listë bllokimesh no_email_domain_block_selected: S’u ndryshuan blloqe përkatësish email, ngaqë s’qe përzgjedhur ndonjë + not_permitted: Jo i lejuar resolved_dns_records_hint_html: Emri i përkatësisë jep u përket përkatësive vijuese MX, që janë përgjegjëset për pranim email-esh. Bllokimi i një përkatësie MX do të bllokojë regjistrime nga çfarëdo adrese email që përdor të njëjtën përkatësi MX, edhe nëse emri i dukshëm i përkatësisë është i ndryshëm. Jini i kujdesshëm të mos bllokoni shërbime të njohur email-esh. resolved_through_html: Zgjidhur përmes %{domain} title: Listë bllokimesh email-esh @@ -472,6 +475,7 @@ sq: content_policies: comment: Shënim i brendshëm description_html: Mund të përkufizoni rregulla lënde që do të zbatohen mbi krejt llogaritë prej kësaj përkatësie dhe cilësdo nënpërkatësi të saj. + limited_federation_mode_description_html: Mund të zgjidhni të lejohet ose jo federimi me këtë përkatësi. policies: reject_media: Mos prano media reject_reports: Hidh tej raportimet @@ -584,11 +588,13 @@ sq: assign_to_self: Caktojani vetes assigned: Iu caktua moderator by_target_domain: Përkatësi e llogarisë së raportuar + cancel: Anuloje category: Kategori category_description_html: Arsyeja pse kjo llogari dhe/ose lëndë raportohet do të citohet te komunikimi me llogarinë e raportuar comment: none: Asnjë comment_description_html: 'Për të dhënë më tepër informacion, %{name} shkroi:' + confirm: Ripohojeni confirm_action: Ripohoni veprim moderimi kundër @%{acct} created_at: Raportuar më delete_and_resolve: Fshiji postimet @@ -789,6 +795,7 @@ sq: suspend: "%{name} e pezulloi llogarinë e %{target}" appeal_approved: Apeluar appeal_pending: Apelim pezull + appeal_rejected: Apelimi u hodh poshtë system_checks: database_schema_check: message_html: Ka migrime bazash të dhënash pezull. Ju lutemi, kryejini, për të qenë të sigurt se aplikacioni sillet siç priteet @@ -953,6 +960,7 @@ sq: applications: created: Aplikimi u krijua me sukses destroyed: Aplikimi u fshi me sukses + logout: Dalje regenerate_token: Riprodho token hyrjesh token_regenerated: Token-i i hyrjeve u riprodhua me sukses warning: Bëni shumë kujdes me ato të dhëna. Mos ia jepni kurrë njeriu! @@ -989,6 +997,8 @@ sq: resend_confirmation: Ridërgo udhëzime ripohimi reset_password: Ricaktoni fjalëkalimin rules: + accept: Pranoje + back: Mbrapsht preamble: Këto vendosen dhe zbatimi i tyre është nën kujdesin e moderatorëve të %{domain}. title: Disa rregulla bazë. security: Siguri @@ -1136,7 +1146,7 @@ sq: featured_tags: add_new: Shtoni të re errors: - limit: Keni përdorur tashmë si të zgjedhur sasinë maksimum të hashtag-ëve + limit: Keni përdorur tashmë numrin maksimum të hashtag-ëve hint_html: "Çfarë janë hashtag-ët e zgjedhur? Këta shfaqen dukshëm te profili juaj publik dhe u lejojnë të tjerëve të shfletojnë postime tuajt publikë posaçërisht nën këta hashtag-ë. Janë një mjet i goditur për të ndjekur punë krijuese ose projekte afatgjata." filters: contexts: @@ -1248,7 +1258,7 @@ sq: title: Ftoni njerëz lists: errors: - limit: Keni mbërritur në numrin maksimum të sasisë së listave + limit: Keni mbërritur në numrin maksimum të listave login_activities: authentication_methods: otp: aplikacion mirëfilltësimi dyfaktorësh @@ -1568,7 +1578,7 @@ sq: '7889238': 3 muaj min_age_label: Prag moshe min_favs: Mbaji postimet e parapëlqyera më shumë se - min_favs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër parapëlqimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të parapëlqimeve për to + min_favs_hint: Mos fshini ndonjë nga postimet tuaja që kanë marrë të paktën këtë numër si të parapëlqyer. Lëreni të zbrazët, që të fshihen postime pavarësisht nga numri se sa herë janë të parapëlqyer min_reblogs: Mbaji postimet e përforcuara më shumë se min_reblogs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër përforcimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të përforcimeve për to stream_entries: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 1a4a2b7b1e..fdb5d21859 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -256,9 +256,6 @@ sr-Latn: expires_at: Ističe uses: Korišćenja title: Pozovi ljude - lists: - errors: - limit: Dostigli ste limit broja listi media_attachments: validations: images_and_video: Ne može da se prikači video na status koji već ima slike @@ -286,10 +283,6 @@ sr-Latn: pagination: next: Sledeći prev: Prethodni - preferences: - other: Ostali - posting_defaults: Posting defaults - public_timelines: Public timelines remote_follow: missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog sessions: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 656b6f7638..8cb4bcb393 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -290,7 +290,7 @@ sr: disable: Искључи disabled: Искључен enable: Укључи - enable_hint: Када се омогући, Ваш сервер ће бити претплаћен на све јавне трубе са овог релеја, и почеће да шаље своје јавне трубу на њега. + enable_hint: Када се омогући, ваш сервер ће бити претплаћен на све јавне објаве са овог релеја, и почеће да шаље јавне објаве овог сервера на њега. enabled: Укључен inbox_url: URL Релеја pending: Чека се одобрење релеја @@ -359,6 +359,7 @@ sr: title: Подразумевано искључи кориснике из индексирања претраживача discovery: public_timelines: Јавне временске линије + title: Откривање statuses: back_to_account: Назад на страну налога media: @@ -377,6 +378,17 @@ sr: body: "%{reporter} је пријавио %{target}" body_remote: Нека са домена %{domain} је пријавио %{target} subject: Нова пријава за %{instance} (#%{id}) + appearance: + advanced_web_interface: Напредно веб окружење + advanced_web_interface_hint: 'Ако желите да искористите целу ширину екрана, напредно веб окружење вам омогућује да конфигуришете много различитих колона да бисте видели онолико информација у исто време колико желите: почетну страницу, обавештења, здружену временску линију, било који број листа и хеш ознака.' + animations_and_accessibility: Анимације и приступачност + confirmation_dialogs: Дијалози потврде + discovery: Откривање + localization: + body: Mastodon преводе добровољци. + guide_link_text: Свако може допринети. + sensitive_content: Осетљив садржај + toot_layout: Распоред објава application_mailer: notification_preferences: Промени преференце Е-поште settings: 'Промени подешавања е-поште: %{link}' @@ -481,7 +493,7 @@ sr: generic: changes_saved_msg: Измене успешно сачуване! copy: Копирај - save_changes: Сними измене + save_changes: Сачувај промене validation_errors: few: Нешто није баш како треба! Прегледајте %{count} грешке испод one: Нешто није баш како треба! Прегледајте грешке испод @@ -517,9 +529,6 @@ sr: expires_at: Истиче uses: Коришћења title: Позовите људе - lists: - errors: - limit: Достигли сте лимит броја листи media_attachments: validations: images_and_video: Не може да се прикачи видео на статус који већ има слике @@ -552,7 +561,9 @@ sr: subject: "%{name} је подржао/ла Ваш статус" title: Нова подршка notifications: + email_events: Догађаји за обавештења е-поштом email_events_hint: 'Изаберите дешавања за која желите да примате обавештења:' + other_settings: Остала подешавања обавештења pagination: newer: Новије next: Следеће @@ -560,6 +571,7 @@ sr: prev: Претходни preferences: other: Остало + posting_defaults: Подразумевана подешавања објављивања public_timelines: Јавне временске линије remote_follow: missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог @@ -609,7 +621,7 @@ sr: back: Назад на Мастодон delete: Брисање налога development: Развој - edit_profile: Измена налога + edit_profile: Уређивање профила export: Извоз података import: Увоз import_and_export: Увоз и извоз @@ -632,6 +644,7 @@ sr: other: "%{count} видео записа" boosted_from_html: Подржано од %{acct_link} content_warning: 'Упозорење на садржај: %{warning}' + default_language: Исто као језик окружења disallowed_hashtags: few: 'садржи забрањене хештегове: %{tags}' one: 'садржи забрањени хештег: %{tags}' diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 8558843d1c..86f9805e4c 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1127,8 +1127,6 @@ sv: storage: Medialagring featured_tags: add_new: Lägg till ny - errors: - limit: Du har redan det maximala antalet utvalda hashtaggar hint_html: "Vad är utvalda hashtaggar? De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt." filters: contexts: @@ -1238,9 +1236,6 @@ sv: expires_at: Utgår uses: Användningar title: Bjud in andra - lists: - errors: - limit: Du har nått det maximala antalet listor login_activities: authentication_methods: otp: tvåfaktorsautentiseringsapp @@ -1557,7 +1552,6 @@ sv: '7889238': 3 månader min_age_label: Åldersgräns min_favs: Behåll favoritmarkerade inlägg i minst - min_favs_hint: Raderar inte något av dina inlägg som har blivit favoritmarkerat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal favoritmarkeringar min_reblogs: Behåll boostade inlägg i minst min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar stream_entries: diff --git a/config/locales/th.yml b/config/locales/th.yml index a18385f596..a4be17222f 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -89,6 +89,7 @@ th: moderation: active: ใช้งานอยู่ all: ทั้งหมด + disabled: ปิดใช้งานอยู่ pending: รอดำเนินการ silenced: จำกัดอยู่ suspended: ระงับอยู่ @@ -130,6 +131,7 @@ th: search: ค้นหา search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน + security: ความปลอดภัย security_measures: only_password: รหัสผ่านเท่านั้น password_and_2fa: รหัสผ่านและ 2FA @@ -419,6 +421,7 @@ th: resolve: แปลงที่อยู่โดเมน title: ปิดกั้นโดเมนอีเมลใหม่ no_email_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนอีเมลเนื่องจากไม่มีการเลือก + not_permitted: ไม่ได้รับอนุญาต resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกันก็ตาม ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่ resolved_through_html: แปลงที่อยู่ผ่าน %{domain} title: โดเมนอีเมลที่ปิดกั้นอยู่ @@ -463,6 +466,7 @@ th: content_policies: comment: หมายเหตุภายใน description_html: คุณสามารถกำหนดนโยบายเนื้อหาที่จะนำไปใช้กับบัญชีทั้งหมดจากโดเมนนี้และโดเมนย่อยใดก็ตามของโดเมน + limited_federation_mode_description_html: คุณสามารถเลือกได้ว่าจะอนุญาตการติดต่อกับภายนอกกับโดเมนนี้หรือไม่ policies: reject_media: ปฏิเสธสื่อ reject_reports: ปฏิเสธรายงาน @@ -573,11 +577,13 @@ th: assign_to_self: มอบหมายให้ฉัน assigned: ผู้ควบคุมที่ได้รับมอบหมาย by_target_domain: โดเมนของบัญชีที่ได้รับการรายงาน + cancel: ยกเลิก category: หมวดหมู่ category_description_html: จะอ้างถึงเหตุผลที่บัญชีและ/หรือเนื้อหานี้ได้รับการรายงานในการสื่อสารกับบัญชีที่ได้รับการรายงาน comment: none: ไม่มี comment_description_html: 'เพื่อให้ข้อมูลเพิ่มเติม %{name} ได้เขียน:' + confirm: ยืนยัน confirm_action: ยืนยันการกระทำการควบคุมต่อ @%{acct} created_at: รายงานเมื่อ delete_and_resolve: ลบโพสต์ @@ -778,6 +784,7 @@ th: suspend: "%{name} ได้ระงับบัญชีของ %{target}" appeal_approved: อุทธรณ์แล้ว appeal_pending: รอดำเนินการการอุทธรณ์ + appeal_rejected: ปฏิเสธการอุทธรณ์แล้ว system_checks: database_schema_check: message_html: มีการโยกย้ายฐานข้อมูลที่รอดำเนินการ โปรดเรียกใช้การโยกย้ายเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานตามที่คาดไว้ @@ -812,6 +819,7 @@ th: other: แบ่งปันโดย %{count} คนในช่วงสัปดาห์ที่ผ่านมา title: ลิงก์ที่กำลังนิยม usage_comparison: แบ่งปัน %{today} ครั้งวันนี้ เทียบกับ %{yesterday} เมื่อวานนี้ + not_allowed_to_trend: ไม่ได้รับอนุญาตให้ขึ้นแนวโน้ม only_allowed: อนุญาตเท่านั้น pending_review: การตรวจทานที่รอดำเนินการ preview_card_providers: @@ -940,6 +948,7 @@ th: applications: created: สร้างแอปพลิเคชันสำเร็จ destroyed: ลบแอปพลิเคชันสำเร็จ + logout: ออกจากระบบ regenerate_token: สร้างโทเคนการเข้าถึงใหม่ token_regenerated: สร้างโทเคนการเข้าถึงใหม่สำเร็จ warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม! @@ -976,6 +985,8 @@ th: resend_confirmation: ส่งคำแนะนำการยืนยันใหม่ reset_password: ตั้งรหัสผ่านใหม่ rules: + accept: ยอมรับ + back: ย้อนกลับ preamble: มีการตั้งและบังคับใช้กฎโดยผู้ควบคุมของ %{domain} title: กฎพื้นฐานบางประการ security: ความปลอดภัย diff --git a/config/locales/tr.yml b/config/locales/tr.yml index fb254e11b4..0e0edb4216 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -59,25 +59,25 @@ tr: destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı" disable: Dondur disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak - disable_two_factor_authentication: 2 adımlı doğrulamayı kapat + disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat disabled: Kapalı display_name: Görünen isim domain: Alan adı edit: Düzenle email: E-posta email_status: E-posta durumu - enable: Dondurmayı Kaldır + enable: Etkinleştir enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir enabled: Etkin enabled_msg: "%{username} hesabı başarıyla çözüldü" - followers: Takipçiler + followers: Takipçi follows: Takip edilen header: Üstbilgi inbox_url: Gelen kutusu bağlantısı invite_request_text: Katılma gerekçeleri invited_by: Tarafından davet edildi ip: IP - joined: Katıldı + joined: Katılma tarihi location: all: Hepsi local: Yerel @@ -91,9 +91,10 @@ tr: moderation: active: Etkin all: Hepsi - pending: Bekliyor + disabled: Devre dışı bırakıldı + pending: Bekleyen silenced: Sınırlı - suspended: Uzaklaştırılanlar + suspended: Askıya Alınan title: Denetim moderation_notes: Denetleme notları most_recent_activity: Son aktivite @@ -111,7 +112,7 @@ tr: promote: Yükselt protocol: Protokol public: Herkese açık - push_subscription_expires: PuSH aboneliği dolumu + push_subscription_expires: PuSH aboneliği sona erdi redownload: Profili yenile redownloaded_msg: "%{username} kullanıcısının profili kökenden başarıyla yenilendi" reject: Reddet @@ -133,6 +134,7 @@ tr: search: Ara search_same_email_domain: Aynı e-posta alan adına sahip diğer kullanıcılar search_same_ip: Aynı IP adresine sahip diğer kullanıcılar + security: Güvenlik security_measures: only_password: Sadece parola password_and_2fa: Parola ve İki aşamalı doğrulama @@ -144,7 +146,7 @@ tr: targeted_reports: Başkaları tarafından şikayet edildi silence: Sustur silenced: Susturulmuş - statuses: Durumlar + statuses: Gönderiler strikes: Önceki eylemler subscribe: Abone ol suspend: Askıya al @@ -168,7 +170,7 @@ tr: whitelisted: Beyaz listede action_logs: action_types: - approve_appeal: İtirazı Kabul Et + approve_appeal: İtirazı Onayla approve_user: Kullanıcıyı Onayla assigned_to_self_report: Raporu Ata change_email_user: Kullanıcı E-postasını Değiştir @@ -427,6 +429,7 @@ tr: resolve: Alan adı çözümleme title: Yeni e-posta kara liste girişi no_email_domain_block_selected: Seçim yapılmadığından hiç bir e-posta alan adı engeli değiştirilmedi + not_permitted: İzin verilmedi resolved_dns_records_hint_html: Alan adı aşağıdaki MX alan adlarına çözümleniyor, ancak hiç biri nihayetinde e-posta kabulünden sorum değil. Bir MX alan adını engellemek, görünen alan adı farklı osa bile aynı MX alan adını kullanan e-posta adreslerinden gelen kayıtları engelleyecektir. Başlıca e-posta sağlayıcıları engellememek için dikkatli olun. resolved_through_html: "%{domain} aracılığıyla çözümlendi" title: E-posta kara listesi @@ -473,6 +476,7 @@ tr: content_policies: comment: İç not description_html: Bu alan adındaki ve alt alan adlarındaki tüm hesaplara uygulanacak içerik ilkeleri belirleyebilirsiniz. + limited_federation_mode_description_html: Bu alan adıyla birleştirmeye izin verip vermediğinizi seçebilirsiniz. policies: reject_media: Medyayı reddet reject_reports: Şikayetleri reddet @@ -585,11 +589,13 @@ tr: assign_to_self: Bana ata assigned: Denetleyici atandı by_target_domain: Şikayet edilen hesabın alan adı + cancel: İptal et category: Kategori category_description_html: Bu hesap ve/veya içeriğin bildirilme gerekçesi, bildirilen hesapla iletişimde alıntılanacaktır comment: none: Yok comment_description_html: 'Daha fazla bilgi vermek için %{name} şunu yazdı:' + confirm: Onayla confirm_action: "%{acct} üzerindeki denetleme eylemini onayla" created_at: Şikayet edildi delete_and_resolve: Gönderileri sil @@ -629,11 +635,13 @@ tr: actions: delete_html: Kuralı ihlal eden gönderileri kaldır mark_as_sensitive_html: Kuralı ihlal eden gönderilerin medyasını hassas olarak işaretle + silence_html: "@%{acct} hesabının erişimini oldukça kısıtla: profili ve içeriği sadece onları halihazırda takip edenler veya manuel olarak hesabına erişenlerce mümkün olacak" suspend_html: "@%{acct} hesabını askıya al, profilini ve içeriğini erişilmez ve etkileşimi imkansız yap" close_report: "#%{id} bildirimini çözüldü olarak işaretle" close_reports_html: "@%{acct} hesabına yönelik tüm bildirimleri çözüldü olarak işaretle" delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa @%{acct} hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil preview_preamble_html: "@%{acct} aşağıdaki içerikle bir uyarı alacaktır:" + record_strike_html: "@%{acct} hesabına karşı bir eylem kaydet, böylece bu hesabın gelecekteki ihlallerini üst makama taşımanıza yardımcı olacaktır" send_email_html: "@%{acct} adlı kullanıcıya uyarı e-maili gönder" warning_placeholder: İsteğe bağlı ek nedenden denetim eylemi. target_origin: Şikayet edilen hesabın kökeni @@ -790,6 +798,7 @@ tr: suspend: "%{name}, %{target} kullanıcısının hesabını askıya aldı" appeal_approved: İtiraz Edildi appeal_pending: İtiraz bekliyor + appeal_rejected: İtiraz reddedildi system_checks: database_schema_check: message_html: Beklemede olan veritabanı güncellemeleri mevcut. Uygulamanın beklenildiği gibi çalışması için lütfen onları çalıştırın @@ -825,6 +834,7 @@ tr: other: Geçen hafta %{count} kişi paylaştı title: Öne çıkan bağlantılar usage_comparison: Bugün %{today} kere paylaşıldı, dün %{yesterday} kere paylaşılmıştı + not_allowed_to_trend: Öne çıkma izni yok only_allowed: Sadece izin verilenler pending_review: İnceleme bekliyor preview_card_providers: @@ -956,6 +966,7 @@ tr: applications: created: Uygulama başarıyla oluşturuldu destroyed: Uygulama başarıyla silindi + logout: Oturumu kapat regenerate_token: Erişim belirtecini yeniden oluştur token_regenerated: Erişim belirteci başarıyla oluşturuldu warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın! @@ -992,6 +1003,8 @@ tr: resend_confirmation: Onaylama talimatlarını tekrar gönder reset_password: Parolayı sıfırla rules: + accept: Onayla + back: Geri preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır. title: Bazı temel kurallar. security: Güvenlik @@ -1139,7 +1152,7 @@ tr: featured_tags: add_new: Yeni ekle errors: - limit: Zaten azami hashtag miktarı belirlediniz + limit: Zaten azami etiket sayısını öne çıkardınız hint_html: "Öne çıkan etiketler nelerdir? Genel profilinizde belirgin bir şekilde görüntülenirler ve kişilerin genel yayınlarınıza özellikle bu etiketler altında göz atmalarına izin verir. Yaratıcı çalışmaları veya uzun vadeli projeleri takip etmek için harika bir araçtır." filters: contexts: @@ -1251,7 +1264,7 @@ tr: title: İnsanları davet et lists: errors: - limit: En yüksek liste sayısına ulaştınız + limit: Azami liste sayısına ulaştınız login_activities: authentication_methods: otp: iki aşamalı kimlik doğrulama uygulaması @@ -1571,7 +1584,7 @@ tr: '7889238': 3 ay min_age_label: Zaman eşiği min_favs: Şundan daha fazla beğenilen gönderileri sakla - min_favs_hint: Bu belirtilenden daha fazla beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın + min_favs_hint: En az bu belirtilen kadar beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın min_reblogs: Şundan daha fazla teşvik edilen gönderileri sakla min_reblogs_hint: Bu belirtilenden daha fazla teşvik edilen gönderilerinizin herhangi birini silmez. Teşvik sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın stream_entries: diff --git a/config/locales/tt.yml b/config/locales/tt.yml index 01b491b11b..9e03822489 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -179,10 +179,6 @@ tt: next: Киләсе prev: Алдыгы truncate: "…" - preferences: - other: Башка - posting_defaults: Posting defaults - public_timelines: Public timelines relationships: following: Язылгансыз sessions: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index dd6d42daaa..b90f014001 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -95,6 +95,7 @@ uk: moderation: active: Активний all: Усі + disabled: Вимкнено pending: Очікують silenced: Обмежені suspended: Призупинені @@ -139,6 +140,7 @@ uk: search: Пошук search_same_email_domain: Інші користувачі з тим самим поштовим доменом search_same_ip: Інші користувачі з тим самим IP + security: Безпека security_measures: only_password: Лише пароль password_and_2fa: Пароль та 2FA @@ -443,6 +445,7 @@ uk: resolve: Розв'язати домен title: Нове блокування поштового домену no_email_domain_block_selected: Жодні налаштування блокування доменів електронної пошти не було змінено, оскільки жоден з них не було обрано + not_permitted: Не дозволено resolved_dns_records_hint_html: Ім'я домену резолвиться в наступні домени MX, які в кінцевому рахунку відповідають за прийняття електронної пошти. Блокування домену MX заблокує реєстрацію з будь-якої e-mail адреси, яка використовує однаковий домен MX, навіть якщо доменне ім'я буде інакше. Будьте обережні, щоб не блокувати великих поштових провайдерів. resolved_through_html: Розв'язано через %{domain} title: Чорний список поштових доменів @@ -493,6 +496,7 @@ uk: content_policies: comment: Внутрішня примітка description_html: Ви можете визначити правила вмісту що буде застосовано до всіх облікових записів із цього домену та будь-якого з його піддоменів. + limited_federation_mode_description_html: Ви можете вибрати, чи дозволити федерацію з цим доменом. policies: reject_media: Відхилити медіа reject_reports: Відхилити скарги @@ -609,11 +613,13 @@ uk: assign_to_self: Призначити мені assigned: Призначений модератор by_target_domain: Домен облікового запису, на який скаржаться + cancel: Скасувати category: Категорія category_description_html: Причина скарги на цей обліковий запис та/або вміст, яку буде вказано у звіті comment: none: Немає comment_description_html: 'Щоб надати більше відомостей, %{name} пише:' + confirm: Підтвердити confirm_action: Підтвердьте модераційну дію щодо @%{acct} created_at: Створено delete_and_resolve: Видалити дописи @@ -820,6 +826,7 @@ uk: suspend: "%{name} заморожує обліковий запис %{target}" appeal_approved: Оскаржено appeal_pending: Оскарження в очікуванні + appeal_rejected: Апеляцію відхилено system_checks: database_schema_check: message_html: Існують відкладені перенесення бази даних. Запустіть їх, щоб забезпечити очікувану роботу програми @@ -857,6 +864,7 @@ uk: other: Поширили %{count} людей за останній тиждень title: Популярні посилання usage_comparison: Сьогодні поширено %{today} разів, у порівнянні з %{yesterday} вчора + not_allowed_to_trend: Не допускається тенденція only_allowed: Тільки дозволене pending_review: Очікує перевірки preview_card_providers: @@ -994,6 +1002,7 @@ uk: applications: created: Застосунок успішно створений destroyed: Застосунок успішно видалений + logout: Вийти regenerate_token: Перегенерувати токен доступу token_regenerated: Токен доступу успішне перегенеровано warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким! @@ -1030,6 +1039,8 @@ uk: resend_confirmation: Повторно відправити інструкції з підтвердження reset_password: Скинути пароль rules: + accept: Прийняти + back: Назад preamble: Вони налаштовані та закріплені модераторами %{domain}. title: Деякі основні правила. security: Зміна паролю @@ -1637,7 +1648,7 @@ uk: '7889238': 3 місяці min_age_label: Поріг давності min_favs: Залишати дописи в обраному більше ніж - min_favs_hint: Не видаляти ваших дописів, що отримали більше вказаної кількості додавання до закладок. Залиште порожнім, щоб видаляти дописи незалежно від кількості їхнього додавання до обраних + min_favs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень min_reblogs: Залишати дописи, поширені більше ніж min_reblogs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень stream_entries: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 3417761099..c4ffaa1dea 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -89,6 +89,7 @@ vi: moderation: active: Hoạt động all: Tất cả + disabled: Đã tắt pending: Chờ silenced: Hạn chế suspended: Vô hiệu hóa @@ -130,6 +131,7 @@ vi: search: Tìm kiếm search_same_email_domain: Tra cứu email search_same_ip: Tra cứu IP + security: Bảo mật security_measures: only_password: Chỉ mật khẩu password_and_2fa: Mật khẩu và 2FA @@ -419,6 +421,7 @@ vi: resolve: Xử lý tên miền title: Chặn tên miền email mới no_email_domain_block_selected: Không có chặn e-mail nào thay đổi vì không có mục nào được chọn + not_permitted: Không cho phép resolved_dns_records_hint_html: Tên miền phân giải thành các tên miền MX sau, các tên miền này chịu trách nhiệm cuối cùng trong việc chấp nhận email. Chặn tên miền MX sẽ chặn đăng ký từ bất kỳ địa chỉ email nào sử dụng cùng một tên miền MX, ngay cả khi tên miền hiển thị là khác. Cẩn thận đừng chặn những dịch vụ email lớn. resolved_through_html: Đã xử lý thông qua %{domain} title: Tên miền email đã chặn @@ -463,6 +466,7 @@ vi: content_policies: comment: Lưu ý nội bộ description_html: Bạn có thể xác định các chính sách nội dung sẽ được áp dụng cho tất cả các tài khoản trên máy chủ này và bất kỳ tên miền phụ nào của nó. + limited_federation_mode_description_html: Bạn có thể chọn nếu muốn cho phép liên hợp với máy chủ này. policies: reject_media: Từ chối media reject_reports: Từ chối báo cáo @@ -573,11 +577,13 @@ vi: assign_to_self: Giao cho tôi assigned: Người xử lý by_target_domain: Tên tài khoản bị báo cáo + cancel: Hủy bỏ category: Phân loại category_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ comment: none: Không có mô tả comment_description_html: "%{name} cho biết thêm:" + confirm: Xác nhận confirm_action: Xác nhận kiểm duyệt với %{acct} created_at: Báo cáo lúc delete_and_resolve: Xóa tút @@ -778,6 +784,7 @@ vi: suspend: "%{name} đã vô hiệu hóa %{target}" appeal_approved: Đã khiếu nại appeal_pending: Đang kháng cáo + appeal_rejected: Khiếu nại bị từ chối system_checks: database_schema_check: message_html: Có cơ sở dữ liệu đang chờ xử lý. Xin khởi động nó để ứng dụng có thể hoạt động một cách ổn định nhất @@ -812,6 +819,7 @@ vi: other: "%{count} người chia sẻ tuần rồi" title: Liên kết nổi bật usage_comparison: Chia sẻ %{today} lần hôm nay, so với %{yesterday} lần hôm qua + not_allowed_to_trend: Không được phép thành xu hướng only_allowed: Chỉ cho phép pending_review: Đang chờ preview_card_providers: @@ -940,6 +948,7 @@ vi: applications: created: Đơn đăng ký được tạo thành công destroyed: Đã xóa đơn đăng ký + logout: Đăng xuất regenerate_token: Tạo lại mã truy cập token_regenerated: Mã truy cập được tạo lại thành công warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai! @@ -976,6 +985,8 @@ vi: resend_confirmation: Gửi lại email xác minh reset_password: Đặt lại mật khẩu rules: + accept: Chấp nhận + back: Quay lại preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}. title: Nội quy máy chủ. security: Bảo mật @@ -1541,7 +1552,6 @@ vi: '7889238': 3 tháng min_age_label: Thời điểm min_favs: Giữ những tút yêu thích lâu hơn - min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết min_reblogs: Giữ những tút đã đăng lại lâu hơn min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết stream_entries: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 78b0f5d133..300a20ecd6 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -89,6 +89,7 @@ zh-CN: moderation: active: 活跃 all: 全部 + disabled: 已禁用 pending: 待审核 silenced: 受限 suspended: 已封禁 @@ -130,6 +131,7 @@ zh-CN: search: 搜索 search_same_email_domain: 其他具有相同电子邮箱域名的用户 search_same_ip: 具有相同IP的其他用户 + security: 安全性 security_measures: only_password: 仅密码 password_and_2fa: 密码和双重认证 @@ -419,6 +421,7 @@ zh-CN: resolve: 解析域名 title: 添加电子邮件域名屏蔽 no_email_domain_block_selected: 没有任何项目被选中,因此未能更改电子邮件域名屏蔽列表 + not_permitted: 未允许 resolved_dns_records_hint_html: 该域名解析的 MX 记录所指向的域名如下,这些域名被用于接收电子邮件。 即使电子邮件地址域名与 MX 域名不同,屏蔽一个 MX 域名意味着阻止任何使用相同 MX 域名的电子邮件地址注册本站账户。 请小心不要误屏蔽主要的电子邮件提供商。 resolved_through_html: 通过 %{domain} 解析 title: 电子邮件域名屏蔽 @@ -463,6 +466,7 @@ zh-CN: content_policies: comment: 内部备注 description_html: 你可以设置应用于此域名所有账号和其所有子域名的内容策略。 + limited_federation_mode_description_html: 您可以选择是否允许与该联邦联合。 policies: reject_media: 拒收媒体 reject_reports: 拒收举报 @@ -573,11 +577,13 @@ zh-CN: assign_to_self: 接管 assigned: 已接管的监察员 by_target_domain: 被举报账户的域名 + cancel: 取消 category: 类别 category_description_html: 在与被举报账户的通信时,将引用该账号和/或内容被举报的原因 comment: none: 没有 comment_description_html: "%{name} 补充道:" + confirm: 确认 confirm_action: 确认对 @%{acct} 的管理操作 created_at: 举报时间 delete_and_resolve: 删除嘟文 @@ -778,6 +784,7 @@ zh-CN: suspend: "%{name} 封禁了用户 %{target}" appeal_approved: 已申诉 appeal_pending: 申诉待处理 + appeal_rejected: 申诉已驳回 system_checks: database_schema_check: message_html: 有待处理的数据库迁移。请运行它们以确保应用程序正常运行。 @@ -812,6 +819,7 @@ zh-CN: other: 过去一周内被 %{count} 个人分享过 title: 热门链接 usage_comparison: 今日被分享 %{today} 次,前一日为 %{yesterday} 次 + not_allowed_to_trend: 不允许的趋势 only_allowed: 仅显示已允许的内容 pending_review: 待审核 preview_card_providers: @@ -940,6 +948,7 @@ zh-CN: applications: created: 应用创建成功 destroyed: 应用删除成功 + logout: 登出 regenerate_token: 重置访问令牌 token_regenerated: 访问令牌重置成功 warning: 一定小心,千万不要把它分享给任何人! @@ -976,6 +985,8 @@ zh-CN: resend_confirmation: 重新发送确认邮件 reset_password: 重置密码 rules: + accept: 接受 + back: 返回 preamble: 这些由 %{domain} 监察员设置和执行。 title: 一些基本规则。 security: 账户安全 @@ -1123,7 +1134,7 @@ zh-CN: featured_tags: add_new: 添加新条目 errors: - limit: 你所推荐的话题标签数已达上限 + limit: 您所推荐的话题标签数已达上限 hint_html: "什么是精选话题标签? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。" filters: contexts: @@ -1227,7 +1238,7 @@ zh-CN: title: 邀请用户 lists: errors: - limit: 你所建立的列表数量已经达到上限 + limit: 您已达到列表数量的上限 login_activities: authentication_methods: otp: 双因素认证应用 @@ -1541,7 +1552,7 @@ zh-CN: '7889238': 3个月 min_age_label: 过期阈值 min_favs: 保留如下嘟文:喜欢数超过 - min_favs_hint: 喜欢数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。 + min_favs_hint: 喜欢数超过该阈值的的嘟文都不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。 min_reblogs: 保留如下嘟文:转嘟数超过 min_reblogs_hint: 转嘟数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少转嘟,都将被删除。 stream_entries: diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 3400405d46..1a3238b741 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -89,6 +89,7 @@ zh-HK: moderation: active: 活躍 all: 全部 + disabled: 已停用 pending: 處理中 silenced: 受限 suspended: 已停權 @@ -130,6 +131,7 @@ zh-HK: search: 搜尋 search_same_email_domain: 其他有相同電郵網域的使用者 search_same_ip: 其他有相同 IP 位址的使用者 + security: 安全性 security_measures: only_password: 僅密碼 password_and_2fa: 密碼和兩步認證 @@ -419,6 +421,7 @@ zh-HK: resolve: 解析網域 title: 新增電郵網域阻隔 no_email_domain_block_selected: 未選取任何電郵網域限制,因此並未變更 + not_permitted: 無權限 resolved_dns_records_hint_html: 域名解析為以下 MX 網域,這些網域主要用來接收電子郵件。封鎖一個 MX 網域,即使域名看起來不同,也會阻止任何用相同 MX 網域的電郵地址進行註冊。注意不要封鎖主要的電子郵件供應商。 resolved_through_html: 透過 %{domain} 解析 title: 電郵網域阻隔 @@ -433,6 +436,7 @@ zh-HK: private_comment_description_html: 為了幫助你追蹤匯入封鎖的源頭,匯入的封鎖會在建立時將會有以下的私密備註:%{comment} private_comment_template: 於 %{date} 從 %{source} 匯入 title: 匯入封鎖的網域 + invalid_domain_block: 由於以下錯誤,已略過一個或多個域名封鎖:%{error} new: title: 匯入封鎖的網域 no_file: 未選擇檔案 @@ -462,6 +466,7 @@ zh-HK: content_policies: comment: 內部備註 description_html: 你可以自行制訂內容政策,政策將用於此網域和其子網域的所有帳號。 + limited_federation_mode_description_html: 你可選擇是否允許此網域加入跨站。 policies: reject_media: 拒絕接收媒體 reject_reports: 拒絕檢舉 @@ -563,17 +568,23 @@ zh-HK: mark_as_sensitive_description_html: 被檢舉的帖文中的媒體會被標記為敏感內容,並記錄一次警告,以便日後加快處理同一帳號的違規行為。 other_description_html: 查看更多控制帳號行為,以及自訂與被檢舉帳號溝通的選項。 resolve_description_html: 不會對被檢舉的帳號採取任何動作,也不會記錄警告,檢舉報告將會結案。 + silence_description_html: 此帳號將會只有追蹤者或手動搜尋它的人才可以看見,大幅限制了它的曝光。你可隨時恢復它。關閉所有對此帳號的檢舉報告。 + suspend_description_html: 此帳號及其所有內容將不可再被存取,並且最終會被刪除,無法再進行互動。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。 actions_description_html: 決定對此檢舉採取哪種措施。如果對被檢舉帳號採取懲罰措施,除非選取了垃圾訊息分類,否則將向他們發送一封電郵通知。 + actions_description_remote_html: 決定對此檢舉採取哪種動作。這只會影響你的伺服器與此遠端帳號的通訊和處理其內容的方式。 add_to_report: 加入更多到檢舉 are_you_sure: 你確認嗎? assign_to_self: 指派給自己 assigned: 指派版主 by_target_domain: 被舉報帳號的域名 + cancel: 取消 category: 分類 category_description_html: 此帳號及/或內容被檢舉的原因,將會被引用在與被檢舉帳號的通訊中。 comment: none: 沒有 comment_description_html: 為了提供更多資訊,%{name} 寫道: + confirm: 確定 + confirm_action: 確認對 @%{acct} 執行管理操作 created_at: 日期 delete_and_resolve: 刪除帖文 forwarded: 已轉寄 @@ -590,6 +601,7 @@ zh-HK: placeholder: 記錄已執行的動作,或其他相關的更新…… title: 筆記 notes_description_html: 查看並給其他管理員和日後的自己留下筆記 + processed_msg: '已成功處理檢舉報告 #%{id}' quick_actions_description_html: 採取快捷操作或向下捲動以查看檢舉內容: remote_user_placeholder: 來自 %{instance} 的遠端使用者 reopen: 重開舉報個案 @@ -602,9 +614,28 @@ zh-HK: status: 狀態 statuses: 被檢舉的內容 statuses_description_html: 違規內容將被引用在被檢舉帳號的通訊中 + summary: + action_preambles: + delete_html: 你即將移除 @%{acct} 的部份帖文。這會: + mark_as_sensitive_html: 你即將把 @%{acct} 的部份帖文標記敏感內容。這會: + silence_html: 你即將限制 @%{acct} 的帳號。這會: + suspend_html: 你即將把 @%{acct} 的帳號停權。這會: + actions: + delete_html: 移除違規帖文 + mark_as_sensitive_html: 將違規帖文的媒體標記為敏感內容 + silence_html: 僅讓 @%{acct} 的追蹤者和手動搜尋其個人檔案的人看到他的個人檔案和內容,從而大幅限制其曝光。 + suspend_html: 把 @%{acct} 停權,使其個人檔案和內容無法被存取和互動。 + close_report: '將檢舉報告 #%{id} 標記為已解決' + close_reports_html: 將針對 @%{acct}所有檢舉報告標記為已解決 + delete_data_html: 從現在起 30 天後移除 @%{acct} 的個人檔案和內容,除非在此期間撤銷對他們的停權。 + preview_preamble_html: "@%{acct} 將收到警告,內容如下:" + record_strike_html: 記錄對 @%{acct} 的警告,有助你加快處理此帳號日後的違規行為 + send_email_html: 向 @%{acct} 發送警告郵件 + warning_placeholder: 選填審核動作的補充理由。 target_origin: 被檢舉帳號來源 title: 舉報 unassign: 取消指派 + unknown_action_msg: 未知的動作:%{action} unresolved: 未處理 updated_at: 更新 view_profile: 查看個人檔案 @@ -697,6 +728,8 @@ zh-HK: preamble: 呈現有趣的內容有助於吸引不認識 Mastodon 的使用者新手上路。控制各種探索功能在你的伺服器上的運作方式。 profile_directory: 個人檔案目錄 public_timelines: 公共時間軸 + publish_discovered_servers: 公開已知的伺服器 + publish_statistics: 公佈統計數據 title: 探索 trends: 熱門 domain_blocks: @@ -751,6 +784,7 @@ zh-HK: suspend: "%{name} 將 %{target} 的帳號停權" appeal_approved: 已申訴 appeal_pending: 申訴待審中 + appeal_rejected: 申訴被駁回 system_checks: database_schema_check: message_html: 有待處理的資料庫轉移 (database migration) 。請執行以確保應用程式行為合乎預期 @@ -785,6 +819,7 @@ zh-HK: other: 上週有 %{count} 人分享 title: 熱門連結 usage_comparison: 今天被分享了 %{today} 次,相較於昨天 %{yesterday} 次 + not_allowed_to_trend: 不允許登上趨勢 only_allowed: 僅允許 pending_review: 等待審核中 preview_card_providers: @@ -913,6 +948,7 @@ zh-HK: applications: created: 已建立應用程式 destroyed: 已刪除應用程式 + logout: 登出 regenerate_token: 重設 token token_regenerated: 已重設 token warning: 警告,不要把它分享給任何人! @@ -920,6 +956,8 @@ zh-HK: auth: apply_for_account: 申請帳號 change_password: 密碼 + confirmations: + wrong_email_hint: 如果該電郵地址不正確,你可以在帳號設定中修改。 delete_account: 刪除帳號 delete_account_html: 如果你想刪除你的帳號,請點擊這裡繼續。你需要確認你的操作。 description: @@ -947,6 +985,8 @@ zh-HK: resend_confirmation: 重發確認指示電郵 reset_password: 重設密碼 rules: + accept: 接受 + back: 返回 preamble: 這些是由 %{domain} 管理員制訂和執行的。 title: 一些基本規則。 security: 登入資訊 @@ -1093,8 +1133,6 @@ zh-HK: storage: 媒體容量大小 featured_tags: add_new: 新增 - errors: - limit: 你所推薦的標籤數量已經達到上限 hint_html: "甚麼是推薦主題標籤? 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!" filters: contexts: @@ -1196,9 +1234,6 @@ zh-HK: expires_at: 失效時間 uses: 已使用次數 title: 邀請用戶 - lists: - errors: - limit: 你所建立的列表數量已經達到上限 login_activities: authentication_methods: otp: 兩步認證軟體 @@ -1339,6 +1374,9 @@ zh-HK: unrecognized_emoji: 不能識別這個emoji relationships: activity: 帳戶活動 + confirm_follow_selected_followers: 你確定要追蹤選取的追蹤者嗎? + confirm_remove_selected_followers: 你確定要移除選取的追蹤者嗎? + confirm_remove_selected_follows: 你確定要移除選取的追蹤者嗎? dormant: 潛在 follow_selected_followers: 關注所選的追隨者 followers: 追隨者 @@ -1509,7 +1547,6 @@ zh-HK: '7889238': 3 個月 min_age_label: 按時間篩選 min_favs: 保留超過嘟文最愛門檻 - min_favs_hint: 如果您嘟文已收到超過最愛門檻則不會刪除。留白表示不論最愛數量皆刪除嘟文。 min_reblogs: 保留超過嘟文轉嘟門檻 min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。 stream_entries: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index c83dc27067..750f15f0b5 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -11,7 +11,7 @@ zh-TW: followers: other: 跟隨者 following: 正在跟隨 - instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。 + instance_actor_flash: 此帳號是用來代表此伺服器的虛擬執行者,而非個別使用者。它的用途為維繫聯邦宇宙,且不應被停權。 last_active: 上次活躍時間 link_verified_on: 此連結的所有權已在 %{date} 檢查過 nothing_here: 暫時沒有內容可供顯示! @@ -32,7 +32,7 @@ zh-TW: add_email_domain_block: 將電子郵件網域加入黑名單 approve: 批准 approved_msg: 成功審核了 %{username} 的新帳號申請 - are_you_sure: 您確定嗎? + are_you_sure: 您確定嗎? avatar: 大頭貼 by_domain: 站點 change_email: @@ -54,7 +54,7 @@ zh-TW: delete: 刪除資料 deleted: 已刪除 demote: 降級 - destroyed_msg: 即將刪除 %{username} 的數據 + destroyed_msg: 即將刪除 %{username} 的資料 disable: 停用 disable_sign_in_token_auth: 停用電子郵件 token 驗證 disable_two_factor_authentication: 停用兩階段認證 @@ -89,6 +89,7 @@ zh-TW: moderation: active: 活躍 all: 全部 + disabled: 已停用 pending: 等待中 silenced: 受限的 suspended: 已停權 @@ -130,6 +131,7 @@ zh-TW: search: 搜尋 search_same_email_domain: 其他有同個電子郵件網域的使用者 search_same_ip: 其他有同個 IP 的使用者 + security: 安全性 security_measures: only_password: 僅使用密碼 password_and_2fa: 密碼及兩階段驗證 (2FA) @@ -146,8 +148,8 @@ zh-TW: subscribe: 訂閱 suspend: 停權 suspended: 已停權 - suspension_irreversible: 已永久刪除這個帳號的數據。雖然這個帳號的數據已被永久刪除,但是您仍然可以取消暫停這個帳號。 - suspension_reversible_hint_html: 這個帳號已被暫停,所有數據將會在 %{date} 被刪除。在此之前,您可以完全回復您的帳號。如果您想即時刪除這個帳號的數據,您可以在下面進行操作。 + suspension_irreversible: 已永久刪除此帳號的資料。您可以取消這個帳號的停權狀態,但無法還原已刪除的資料。 + suspension_reversible_hint_html: 這個帳號已被停權,所有資料將會於 %{date} 被刪除。在此之前,此帳號可以被完全復原。如果您想即時刪除這個帳號的資料,可以在下面進行操作。 title: 帳號 unblock_email: 解除封鎖電子郵件地址 unblocked_email_msg: 成功解除封鎖 %{username} 的電子郵件地址 @@ -157,7 +159,7 @@ zh-TW: undo_suspension: 取消停權 unsilenced_msg: 成功解除 %{username} 的帳號限制 unsubscribe: 取消訂閱 - unsuspended_msg: 成功取消暫停 %{username} 的帳號 + unsuspended_msg: 已成功取消停權 %{username} 的帳號 username: 使用者名稱 view_domain: 查看站台概要 warn: 警告 @@ -242,11 +244,11 @@ zh-TW: create_user_role_html: "%{name} 建立了 %{target} 角色" demote_user_html: "%{name} 將使用者 %{target} 降級" destroy_announcement_html: "%{name} 刪除了公告 %{target}" - destroy_canonical_email_block_html: "%{name} 取消了 hash 為 %{target} 之 e-mail 的封鎖" + destroy_canonical_email_block_html: "%{name} 已解除封鎖 hash 為 %{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} 的嘟文" @@ -270,12 +272,12 @@ zh-TW: resolve_report_html: "%{name} 處理了 %{target} 的檢舉" sensitive_account_html: "%{name} 將 %{target} 的媒體檔案標記為敏感內容" silence_account_html: "%{name} 靜音了使用者 %{target}" - suspend_account_html: "%{name} 停權了使用者 %{target}" + suspend_account_html: "%{name} 已停權 %{target} 的帳號" unassigned_report_html: "%{name} 取消指派 %{target} 的檢舉" - unblock_email_account_html: "%{name} 解除封鎖了 %{target} 的電子郵件地址" + unblock_email_account_html: "%{name} 已解除封鎖 %{target} 的電子郵件地址" unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案的敏感狀態取消" unsilence_account_html: "%{name} 取消了使用者 %{target} 的靜音狀態" - unsuspend_account_html: "%{name} 取消了使用者 %{target} 的停權狀態" + unsuspend_account_html: "%{name} 已取消停權 %{target} 的帳號" update_announcement_html: "%{name} 更新了公告 %{target}" update_custom_emoji_html: "%{name} 更新了自訂表情符號 %{target}" update_domain_block_html: "%{name} 更新了 %{target} 之網域封鎖" @@ -378,7 +380,7 @@ zh-TW: domain: 站點 edit: 更改封鎖的站台 existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。 - existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先把他取消封鎖。 + existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先 解除封鎖。 export: 匯出 import: 匯入 new: @@ -402,7 +404,7 @@ zh-TW: reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關 reject_reports: 拒絕檢舉 reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關 - undo: 復原欲封鎖域名 + undo: 撤銷網域封鎖 view: 顯示阻擋的網域 email_domain_blocks: add_new: 加入新項目 @@ -419,6 +421,7 @@ zh-TW: resolve: 解析網域 title: 新增電子郵件黑名單項目 no_email_domain_block_selected: 因未選取電子郵件網域黑名單,所以什麼事都沒發生 + not_permitted: 無權限 resolved_dns_records_hint_html: 網域名稱解析為以下 MX 網域,這些網域最終負責接收電子郵件。封鎖 MX 網域將會封鎖任何來自使用相同 MX 網域的電子郵件註冊,即便可見的域名是不同的也一樣。請注意,不要封鎖主要的電子郵件服務提供商。 resolved_through_html: 透過 %{domain} 解析 title: 電子郵件黑名單 @@ -465,6 +468,7 @@ zh-TW: content_policies: comment: 內部備註 description_html: 您可以定義對所有此網域帳號及其子網域所實施之內容政策。 + limited_federation_mode_description_html: 您可以選擇是否允許此網域加入聯邦宇宙。 policies: reject_media: 拒絕多媒體 reject_reports: 拒絕檢舉 @@ -553,8 +557,8 @@ zh-TW: status: 狀態 title: 中繼 report_notes: - created_msg: 檢舉備註建立成功! - destroyed_msg: 檢舉備註刪除成功! + created_msg: 已成功新增檢舉備註! + destroyed_msg: 已成功刪除檢舉備註! reports: account: notes: @@ -571,15 +575,17 @@ zh-TW: actions_description_html: 決定應對此報告採取何種行動。若您對檢舉之帳號採取懲罰措施,則將對他們發送 e-mail 通知,如非選擇了 垃圾郵件 類別。 actions_description_remote_html: 決定將對此檢舉報告採取何種動作。這將僅作用於您的伺服器與此遠端帳號及其內容之通訊行為。 add_to_report: 加入更多至報告 - are_you_sure: 您確定嗎? + are_you_sure: 您確定嗎? assign_to_self: 指派給自己 assigned: 指派站務 by_target_domain: 檢舉帳號之網域 + cancel: 取消 category: 分類 category_description_html: 此帳號及/或被檢舉內容之原因會被引用在檢舉帳號通知中 comment: none: 無 comment_description_html: 提供更多資訊,%{name} 寫道: + confirm: 確認 confirm_action: 確認對 @%{acct} 執行站務動作 created_at: 日期 delete_and_resolve: 刪除嘟文 @@ -615,12 +621,12 @@ zh-TW: delete_html: 您將要 移除 某些 @%{acct} 之嘟文。此將會: mark_as_sensitive_html: 您將要 標記 某些 @%{acct} 之嘟文為 敏感內容 。此將會: silence_html: 您將要 限制 @%{acct} 之帳號。此將會: - suspend_html: 您將要 暫停 @%{acct} 之帳號。此將會: + suspend_html: 您將要 停權 @%{acct} 之帳號。此將會: actions: delete_html: 移除違反規則之嘟文 mark_as_sensitive_html: 將違反規則之嘟文多媒體標記為敏感內容 silence_html: 藉由標記他們的個人檔案與內容為僅可見於已跟隨帳號或手動查詢此個人檔案,此將嚴格地限制 @%{acct} 之觸及率 - suspend_html: 暫停 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動 + suspend_html: 停權 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動 close_report: '將檢舉報告 #%{id} 標記為已處理' close_reports_html: 將 所有 對於 @%{acct} 之檢舉報告標記為已處理 delete_data_html: 於即日起 30 天後刪除 @%{acct}之個人檔案與內容,除非他們於期限前被解除暫停 @@ -780,6 +786,7 @@ zh-TW: suspend: "%{name} 將 %{target} 的帳號停權" appeal_approved: 已申訴 appeal_pending: 申訴待審中 + appeal_rejected: 申訴被駁回 system_checks: database_schema_check: message_html: 發現尚待處理的資料庫遷移 (database migration)。請執行它們以確保應用程式如期運行。 @@ -790,7 +797,7 @@ zh-TW: version_comparison: Elasticsearch %{running_version} 版正在執行,需要 %{required_version} 版。 rules_check: action: 管理服务器规则 - message_html: 您没有定義任何伺服器規則。 + message_html: 您尚未定義任何伺服器規則。 sidekiq_process_check: message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態 tags: @@ -814,6 +821,7 @@ zh-TW: other: 上週被 %{count} 名使用者分享 title: 熱門連結 usage_comparison: 於今日被 %{today} 人分享,相較於昨日 %{yesterday} 人 + not_allowed_to_trend: 不允許登上熱門 only_allowed: 僅允許 pending_review: 等待審核中 preview_card_providers: @@ -861,7 +869,7 @@ zh-TW: add_new: 新增 delete: 刪除 edit_preset: 編輯預設警告 - empty: 您未曾定義任何預設警告 + empty: 您尚未定義任何預設警告。 title: 管理預設警告 webhooks: add_new: 新增端點 @@ -942,6 +950,7 @@ zh-TW: applications: created: 已建立應用程式 destroyed: 已刪除應用程式 + logout: 登出 regenerate_token: 重新產生存取 token token_regenerated: 已重新產生存取 token warning: 警告,不要把它分享給任何人! @@ -978,6 +987,8 @@ zh-TW: resend_confirmation: 重新寄送確認指引 reset_password: 重設密碼 rules: + accept: 接受 + back: 上一頁 preamble: 這些被 %{domain} 的管管們制定以及實施。 title: 一些基本守則。 security: 登入資訊 @@ -987,10 +998,10 @@ zh-TW: email_settings_hint_html: 請確認 e-mail 是否傳送至 %{email} 。如果電子郵件地址不正確的話,可以從帳號設定修改。 title: 設定 sign_in: - preamble_html: 請登入您於 %{domain} 之帳號密碼。若您的帳號託管於其他伺服器,您將無法於此登入。 + preamble_html: 請使用您在 %{domain} 的帳號密碼登入。若您的帳號託管於其他伺服器,您將無法在此登入。 title: 登入 %{domain} sign_up: - preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。 + preamble: 在這個 Mastodon 伺服器上有個帳號的話,您將能跟隨聯邦宇宙網路中的任何人,無論他們的帳號託管於哪個伺服器。 title: 讓我們一起設定 %{domain} 吧! status: account_status: 帳號狀態 @@ -1092,7 +1103,7 @@ zh-TW: errors: '400': 您所送出的請求無效或格式不正確。 '403': 您沒有檢視這個頁面的權限。 - '404': 您所尋找的網頁不存在。 + '404': 您要找的頁面不存在。 '406': 此頁面無法以請求的格式顯示。 '410': 您所尋找的網頁此處已不存在。 '422': @@ -1125,7 +1136,7 @@ zh-TW: featured_tags: add_new: 新增 errors: - limit: 您所推薦的標籤數量已經達到上限 + limit: 您所推薦的主題標籤數量已達上限 hint_html: "推薦主題標籤是什麼? 這些主題標籤將顯示於您的公開個人檔案頁,訪客可以藉此閱覽您標示了這些標籤的嘟文,拿來展示創意作品或者長期更新的專案很好用唷!" filters: contexts: @@ -1229,7 +1240,7 @@ zh-TW: title: 邀請使用者 lists: errors: - limit: 您所建立的列表數量已經達到上限 + limit: 您所建立的列表數量已達上限 login_activities: authentication_methods: otp: 兩階段驗證應用程式 @@ -1372,7 +1383,7 @@ zh-TW: activity: 帳號動態 confirm_follow_selected_followers: 您確定要跟隨這些選取的跟隨者嗎? confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎? - confirm_remove_selected_follows: 您確定要移除這些選取的正在跟隨您的帳號嗎? + confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎? dormant: 潛水中 follow_selected_followers: 跟隨所選取的跟隨者 followers: 跟隨者 @@ -1487,8 +1498,8 @@ zh-TW: open_in_web: 以網頁開啟 over_character_limit: 超過了 %{max} 字的限制 pin_errors: - direct: 無法釘選只有僅提及使用者可見之嘟文 - limit: 您所置頂的嘟文數量已經達到上限 + direct: 不能釘選只對被提及的使用者顯示的嘟文 + limit: 釘選嘟文的數量已達上限 ownership: 不能釘選他人的嘟文 reblog: 不能釘選轉嘟 poll: @@ -1506,7 +1517,7 @@ zh-TW: visibilities: direct: 私訊 private: 僅限跟隨者 - private_long: 只有跟隨您的人能看到 + private_long: 只有跟隨者能看到 public: 公開 public_long: 所有人都能看到 unlisted: 不在公開時間軸顯示 @@ -1524,8 +1535,8 @@ zh-TW: keep_direct_hint: 不會刪除任何您的私訊 keep_media: 保留包含媒體內容的嘟文 keep_media_hint: 不會刪除您包含媒體內容之嘟文 - keep_pinned: 保留釘選嘟文 - keep_pinned_hint: 不會刪除您的釘選嘟文 + keep_pinned: 保留釘選的嘟文 + keep_pinned_hint: 不會刪除您釘選的嘟文 keep_polls: 保留投票 keep_polls_hint: 不會刪除您的投票 keep_self_bookmark: 保留您已標記為書籤之嘟文 @@ -1547,7 +1558,7 @@ zh-TW: min_reblogs: 保留超過嘟文轉嘟門檻 min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除該嘟文。 stream_entries: - pinned: 釘選嘟文 + pinned: 釘選的嘟文 reblogged: 轉嘟 sensitive_content: 敏感內容 strikes: @@ -1610,7 +1621,7 @@ zh-TW: delete_statuses: 您的某些嘟文被發現違反了一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。 disable: 您無法繼續使用您的帳號,但您的個人頁面及其他資料內容保持不變。您可以要求一份您的資料備份,帳號異動設定,或是刪除帳號。 mark_statuses_as_sensitive: 您的部份嘟文已被 %{instance} 的管理員標記為敏感內容。這代表了人們必須在顯示預覽前點擊嘟文中的媒體。您可以在將來嘟文時自己將媒體標記為敏感內容。 - sensitive: 由此刻起,您所有上傳的媒體檔案將被標記為敏感內容,並且隱藏於點擊警告之後。 + sensitive: 您之後上傳的所有媒體檔案會被標為敏感內容,並且被隱藏起來,須點擊警告按鈕才會顯示。 silence: 您仍然可以使用您的帳號,但僅有已跟隨您的人才能看到您在此伺服器的嘟文,您也可能會從各式探索功能中被排除。但其他人仍可手動跟隨您。 suspend: 您將不能使用您的帳號,您的個人檔案頁面及其他資料將不再能被存取。您仍可於約 30 日內資料被完全刪除前要求下載您的資料,但我們仍會保留一部份基本資料,以防止有人規避停權處罰。 reason: 原因: @@ -1630,7 +1641,7 @@ zh-TW: none: 警告 sensitive: 帳號已標記為敏感內容 silence: 帳號已被限制 - suspend: 帳號己被停用 + suspend: 帳號己被停權 welcome: edit_profile_action: 設定個人檔案 edit_profile_step: 您可以設定您的個人檔案,包括上傳大頭貼、變更顯示名稱等等。您也可以選擇在新的跟隨者跟隨前,先對他們進行審核。 @@ -1638,7 +1649,7 @@ zh-TW: final_action: 開始嘟嘟 final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。' full_handle: 您的完整帳號名稱 - full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或著跟隨您。 + full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。 subject: 歡迎來到 Mastodon title: "%{name} 誠摯歡迎您的加入!" users: From 6bd700379925746ea8408bb4d5b0c99dba1506e6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Feb 2023 05:28:56 -0500 Subject: [PATCH 0538/1220] Fix mispelled spec filenames (#23834) --- .rubocop_todo.yml | 16 ++++++++-------- ..._spec.rb => change_emails_controller_spec.rb} | 0 ...es_controller.rb => roles_controller_spec.rb} | 0 ...helper_spec.rb => action_logs_helper_spec.rb} | 0 ....rb => remove_from_followers_service_spec.rb} | 0 5 files changed, 8 insertions(+), 8 deletions(-) rename spec/controllers/admin/{change_email_controller_spec.rb => change_emails_controller_spec.rb} (100%) rename spec/controllers/admin/users/{roles_controller.rb => roles_controller_spec.rb} (100%) rename spec/helpers/admin/{action_log_helper_spec.rb => action_logs_helper_spec.rb} (100%) rename spec/services/{remove_from_follwers_service_spec.rb => remove_from_followers_service_spec.rb} (100%) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0bdf72084c..8d546ff42e 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -73,7 +73,7 @@ Lint/EmptyBlock: - 'spec/fabricators/setting_fabricator.rb' - 'spec/fabricators/system_key_fabricator.rb' - 'spec/fabricators/web_setting_fabricator.rb' - - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/helpers/admin/action_logs_helper_spec.rb' - 'spec/lib/activitypub/adapter_spec.rb' - 'spec/models/account_alias_spec.rb' - 'spec/models/account_deletion_request_spec.rb' @@ -579,7 +579,7 @@ RSpec/DescribedClass: - 'spec/services/purge_domain_service_spec.rb' - 'spec/services/reblog_service_spec.rb' - 'spec/services/reject_follow_service_spec.rb' - - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/services/remove_from_followers_service_spec.rb' - 'spec/services/remove_status_service_spec.rb' - 'spec/services/unallow_domain_service_spec.rb' - 'spec/services/unblock_service_spec.rb' @@ -592,7 +592,7 @@ RSpec/DescribedClass: # This cop supports unsafe autocorrection (--autocorrect-all). RSpec/EmptyExampleGroup: Exclude: - - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/helpers/admin/action_logs_helper_spec.rb' - 'spec/models/account_alias_spec.rb' - 'spec/models/account_deletion_request_spec.rb' - 'spec/models/account_moderation_note_spec.rb' @@ -864,7 +864,7 @@ RSpec/MissingExampleGroupArgument: - 'spec/controllers/accounts_controller_spec.rb' - 'spec/controllers/activitypub/collections_controller_spec.rb' - 'spec/controllers/admin/statuses_controller_spec.rb' - - 'spec/controllers/admin/users/roles_controller.rb' + - 'spec/controllers/admin/users/roles_controller_spec.rb' - 'spec/controllers/api/v1/accounts_controller_spec.rb' - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb' - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb' @@ -1060,7 +1060,7 @@ RSpec/NamedSubject: - 'spec/services/purge_domain_service_spec.rb' - 'spec/services/reblog_service_spec.rb' - 'spec/services/reject_follow_service_spec.rb' - - 'spec/services/remove_from_follwers_service_spec.rb' + - 'spec/services/remove_from_followers_service_spec.rb' - 'spec/services/remove_status_service_spec.rb' - 'spec/services/report_service_spec.rb' - 'spec/services/resolve_account_service_spec.rb' @@ -1149,7 +1149,7 @@ RSpec/Rails/InferredSpecType: - 'spec/controllers/admin/accounts_controller_spec.rb' - 'spec/controllers/admin/action_logs_controller_spec.rb' - 'spec/controllers/admin/base_controller_spec.rb' - - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/change_emails_controller_spec.rb' - 'spec/controllers/admin/confirmations_controller_spec.rb' - 'spec/controllers/admin/dashboard_controller_spec.rb' - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' @@ -1235,7 +1235,7 @@ RSpec/Rails/InferredSpecType: - 'spec/controllers/well_known/webfinger_controller_spec.rb' - 'spec/helpers/accounts_helper_spec.rb' - 'spec/helpers/admin/account_moderation_notes_helper_spec.rb' - - 'spec/helpers/admin/action_log_helper_spec.rb' + - 'spec/helpers/admin/action_logs_helper_spec.rb' - 'spec/helpers/flashes_helper_spec.rb' - 'spec/helpers/formatting_helper_spec.rb' - 'spec/helpers/home_helper_spec.rb' @@ -1398,7 +1398,7 @@ RSpec/SubjectStub: # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames. RSpec/VerifiedDoubles: Exclude: - - 'spec/controllers/admin/change_email_controller_spec.rb' + - 'spec/controllers/admin/change_emails_controller_spec.rb' - 'spec/controllers/admin/confirmations_controller_spec.rb' - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' - 'spec/controllers/admin/domain_allows_controller_spec.rb' diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_emails_controller_spec.rb similarity index 100% rename from spec/controllers/admin/change_email_controller_spec.rb rename to spec/controllers/admin/change_emails_controller_spec.rb diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller_spec.rb similarity index 100% rename from spec/controllers/admin/users/roles_controller.rb rename to spec/controllers/admin/users/roles_controller_spec.rb diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_logs_helper_spec.rb similarity index 100% rename from spec/helpers/admin/action_log_helper_spec.rb rename to spec/helpers/admin/action_logs_helper_spec.rb diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_followers_service_spec.rb similarity index 100% rename from spec/services/remove_from_follwers_service_spec.rb rename to spec/services/remove_from_followers_service_spec.rb From f4f91bc295fd423bdc81ca17f0f9491ed6cd897e Mon Sep 17 00:00:00 2001 From: Tim Lucas Date: Thu, 23 Feb 2023 22:58:42 +1100 Subject: [PATCH 0539/1220] Increase contrast of upload progress background (#23836) --- app/javascript/styles/mastodon-light/diff.scss | 4 ++++ app/javascript/styles/mastodon/components.scss | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 01725cf968..58f161f811 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -258,6 +258,10 @@ html { border-color: $ui-base-color; } +.upload-progress__backdrop { + background: $ui-base-color; +} + // Change the background colors of statuses .focusable:focus { background: $ui-base-color; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 49a5bda34f..583acfac0e 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4543,7 +4543,7 @@ a.status-card.compact:hover { width: 100%; height: 6px; border-radius: 6px; - background: $ui-base-lighter-color; + background: darken($simple-background-color, 8%); position: relative; margin-top: 5px; } From 20b80c62ff9b8e31a9a35a3d827fcd4c9b68248b Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 23 Feb 2023 16:52:40 +0100 Subject: [PATCH 0540/1220] Change auto-deletion throttling constants to better scale with server size (#23320) --- .../accounts_statuses_cleanup_scheduler.rb | 24 +++++++------------ ...ccounts_statuses_cleanup_scheduler_spec.rb | 10 -------- 2 files changed, 8 insertions(+), 26 deletions(-) diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb index 09e0b37f06..f237f1dc9c 100644 --- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb +++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb @@ -7,7 +7,7 @@ class Scheduler::AccountsStatusesCleanupScheduler # This limit is mostly to be nice to the fediverse at large and not # generate too much traffic. # This also helps limiting the running time of the scheduler itself. - MAX_BUDGET = 50 + MAX_BUDGET = 150 # This is an attempt to spread the load across instances, as various # accounts are likely to have various followers. @@ -15,28 +15,22 @@ class Scheduler::AccountsStatusesCleanupScheduler # This is an attempt to limit the workload generated by status removal # jobs to something the particular instance can handle. - PER_THREAD_BUDGET = 5 + PER_THREAD_BUDGET = 6 # Those avoid loading an instance that is already under load - MAX_DEFAULT_SIZE = 2 + MAX_DEFAULT_SIZE = 200 MAX_DEFAULT_LATENCY = 5 - MAX_PUSH_SIZE = 5 + MAX_PUSH_SIZE = 500 MAX_PUSH_LATENCY = 10 + # 'pull' queue has lower priority jobs, and it's unlikely that pushing # deletes would cause much issues with this queue if it didn't cause issues # with default and push. Yet, do not enqueue deletes if the instance is # lagging behind too much. - MAX_PULL_SIZE = 500 - MAX_PULL_LATENCY = 300 + MAX_PULL_SIZE = 10_000 + MAX_PULL_LATENCY = 5.minutes.to_i - # This is less of an issue in general, but deleting old statuses is likely - # to cause delivery errors, and thus increase the number of jobs to be retried. - # This doesn't directly translate to load, but connection errors and a high - # number of dead instances may lead to this spiraling out of control if - # unchecked. - MAX_RETRY_SIZE = 50_000 - - sidekiq_options retry: 0, lock: :until_executed + sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i def perform return if under_load? @@ -73,8 +67,6 @@ class Scheduler::AccountsStatusesCleanupScheduler end def under_load? - return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE - queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY) end diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index b977bc1fbc..9ed8da1bac 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -25,7 +25,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do }, ] end - let(:retry_size) { 0 } before do queue_stub = double @@ -35,7 +34,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do allow(Sidekiq::ProcessSet).to receive(:new).and_return(process_set_stub) sidekiq_stats_stub = double - allow(sidekiq_stats_stub).to receive(:retry_size).and_return(retry_size) allow(Sidekiq::Stats).to receive(:new).and_return(sidekiq_stats_stub) # Create a bunch of old statuses @@ -72,14 +70,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do expect(subject.under_load?).to be true end end - - context 'when there is a huge amount of jobs to retry' do - let(:retry_size) { 1_000_000 } - - it 'returns true' do - expect(subject.under_load?).to be true - end - end end describe '#get_budget' do From 19614ba2477f3d12468f5ec251ce1cc5f8c6210c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Feb 2023 17:17:48 -0500 Subject: [PATCH 0541/1220] Rename ActivityPub Serializer Specs (#23844) --- .rubocop_todo.yml | 20 +++++++++---------- .../{note_spec.rb => note_serializer_spec.rb} | 0 ...spec.rb => update_poll_serializer_spec.rb} | 0 3 files changed, 10 insertions(+), 10 deletions(-) rename spec/serializers/activitypub/{note_spec.rb => note_serializer_spec.rb} (100%) rename spec/serializers/activitypub/{update_poll_spec.rb => update_poll_serializer_spec.rb} (100%) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8d546ff42e..6b2369fd45 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -557,8 +557,8 @@ RSpec/DescribedClass: - 'spec/presenters/account_relationships_presenter_spec.rb' - 'spec/presenters/instance_presenter_spec.rb' - 'spec/presenters/status_relationships_presenter_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/serializers/rest/account_serializer_spec.rb' - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' @@ -698,8 +698,8 @@ RSpec/FilePath: - 'spec/lib/activitypub/tag_manager_spec.rb' - 'spec/lib/ostatus/tag_manager_spec.rb' - 'spec/lib/sanitize_config_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' @@ -733,8 +733,8 @@ RSpec/HookArgument: - 'spec/helpers/instance_helper_spec.rb' - 'spec/models/user_spec.rb' - 'spec/rails_helper.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/services/import_service_spec.rb' - 'spec/spec_helper.rb' @@ -755,8 +755,8 @@ RSpec/InstanceVariable: - 'spec/models/concerns/account_interactions_spec.rb' - 'spec/models/concerns/remotable_spec.rb' - 'spec/models/public_feed_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/services/remove_status_service_spec.rb' - 'spec/services/search_service_spec.rb' - 'spec/services/unblock_domain_service_spec.rb' @@ -1022,8 +1022,8 @@ RSpec/NamedSubject: - 'spec/policies/tag_policy_spec.rb' - 'spec/policies/user_policy_spec.rb' - 'spec/presenters/familiar_followers_presenter_spec.rb' - - 'spec/serializers/activitypub/note_spec.rb' - - 'spec/serializers/activitypub/update_poll_spec.rb' + - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/serializers/rest/account_serializer_spec.rb' - 'spec/services/account_search_service_spec.rb' - 'spec/services/account_statuses_cleanup_service_spec.rb' diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_serializer_spec.rb similarity index 100% rename from spec/serializers/activitypub/note_spec.rb rename to spec/serializers/activitypub/note_serializer_spec.rb diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_serializer_spec.rb similarity index 100% rename from spec/serializers/activitypub/update_poll_spec.rb rename to spec/serializers/activitypub/update_poll_serializer_spec.rb From 8000a8f2309d428c2ce72fe5ffba940754d55339 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 24 Feb 2023 20:04:38 +0100 Subject: [PATCH 0542/1220] Add `lang` attribute to preview card (#23869) --- app/javascript/mastodon/features/status/components/card.jsx | 3 ++- app/serializers/rest/preview_card_serializer.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx index 34fac10105..b588c83e4e 100644 --- a/app/javascript/mastodon/features/status/components/card.jsx +++ b/app/javascript/mastodon/features/status/components/card.jsx @@ -196,11 +196,12 @@ export default class Card extends React.PureComponent { const interactive = card.get('type') !== 'link'; const className = classnames('status-card', { horizontal, compact, interactive }); const title = interactive ? {card.get('title')} : {card.get('title')}; + const language = card.get('language') || ''; const ratio = card.get('width') / card.get('height'); const height = (compact && !embedded) ? (width / (16 / 9)) : (width / ratio); const description = ( -
    +
    {title} {!(horizontal || compact) &&

    {trim(card.get('description') || '', maxDescription)}

    } {provider} diff --git a/app/serializers/rest/preview_card_serializer.rb b/app/serializers/rest/preview_card_serializer.rb index 66ff47d22e..8413b23d85 100644 --- a/app/serializers/rest/preview_card_serializer.rb +++ b/app/serializers/rest/preview_card_serializer.rb @@ -3,7 +3,7 @@ class REST::PreviewCardSerializer < ActiveModel::Serializer include RoutingHelper - attributes :url, :title, :description, :type, + attributes :url, :title, :description, :language, :type, :author_name, :author_url, :provider_name, :provider_url, :html, :width, :height, :image, :embed_url, :blurhash From 730bb3e211a84a2f30e3e2bbeae3f77149824a68 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 24 Feb 2023 14:06:32 -0500 Subject: [PATCH 0543/1220] Remove unused HTML Validator (#23866) --- .rubocop_todo.yml | 1 - app/validators/html_validator.rb | 20 -------------------- config/locales/an.yml | 2 -- config/locales/ar.yml | 2 -- config/locales/be.yml | 2 -- config/locales/bg.yml | 2 -- config/locales/ca.yml | 2 -- config/locales/ckb.yml | 2 -- config/locales/co.yml | 2 -- config/locales/cs.yml | 2 -- config/locales/cy.yml | 2 -- config/locales/da.yml | 2 -- config/locales/de.yml | 2 -- config/locales/el.yml | 2 -- config/locales/en.yml | 2 -- config/locales/eo.yml | 2 -- config/locales/es-AR.yml | 2 -- config/locales/es-MX.yml | 2 -- config/locales/es.yml | 2 -- config/locales/et.yml | 2 -- config/locales/eu.yml | 2 -- config/locales/fa.yml | 2 -- config/locales/fi.yml | 2 -- config/locales/fo.yml | 2 -- config/locales/fr-QC.yml | 2 -- config/locales/fr.yml | 2 -- config/locales/fy.yml | 2 -- config/locales/gd.yml | 2 -- config/locales/gl.yml | 2 -- config/locales/he.yml | 2 -- config/locales/hu.yml | 2 -- config/locales/id.yml | 2 -- config/locales/io.yml | 2 -- config/locales/is.yml | 2 -- config/locales/it.yml | 2 -- config/locales/ja.yml | 2 -- config/locales/kk.yml | 2 -- config/locales/ko.yml | 2 -- config/locales/ku.yml | 2 -- config/locales/lv.yml | 2 -- config/locales/nl.yml | 2 -- config/locales/nn.yml | 2 -- config/locales/no.yml | 2 -- config/locales/oc.yml | 2 -- config/locales/pl.yml | 2 -- config/locales/pt-BR.yml | 2 -- config/locales/pt-PT.yml | 2 -- config/locales/ru.yml | 2 -- config/locales/sc.yml | 2 -- config/locales/sco.yml | 2 -- config/locales/si.yml | 2 -- config/locales/sk.yml | 2 -- config/locales/sl.yml | 2 -- config/locales/sq.yml | 2 -- config/locales/sv.yml | 2 -- config/locales/th.yml | 2 -- config/locales/tr.yml | 2 -- config/locales/uk.yml | 2 -- config/locales/vi.yml | 2 -- config/locales/zh-CN.yml | 2 -- config/locales/zh-HK.yml | 2 -- config/locales/zh-TW.yml | 2 -- 62 files changed, 141 deletions(-) delete mode 100644 app/validators/html_validator.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6b2369fd45..8cd4afa5af 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2113,7 +2113,6 @@ Style/MutableConstant: - 'app/services/delete_account_service.rb' - 'app/services/fetch_link_card_service.rb' - 'app/services/resolve_url_service.rb' - - 'app/validators/html_validator.rb' - 'lib/mastodon/snowflake.rb' - 'spec/controllers/api/base_controller_spec.rb' diff --git a/app/validators/html_validator.rb b/app/validators/html_validator.rb deleted file mode 100644 index b85b9769fb..0000000000 --- a/app/validators/html_validator.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -class HtmlValidator < ActiveModel::EachValidator - ERROR_RE = /Opening and ending tag mismatch|Unexpected end tag/ - - def validate_each(record, attribute, value) - return if value.blank? - - errors = html_errors(value) - - record.errors.add(attribute, I18n.t('html_validator.invalid_markup', error: errors.first.to_s)) unless errors.empty? - end - - private - - def html_errors(str) - fragment = Nokogiri::HTML.fragment(options[:wrap_with] ? "<#{options[:wrap_with]}>#{str}" : str) - fragment.errors.select { |error| ERROR_RE.match?(error.message) } - end -end diff --git a/config/locales/an.yml b/config/locales/an.yml index b1b32fc123..3a6ddda1b7 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1183,8 +1183,6 @@ an: validation_errors: one: Bella cosa no ye bien! Per favor, revisa la error other: Bella cosa no ye bien! Per favor, revise %{count} errors mas abaixo - html_validator: - invalid_markup: 'contiene codigo HTML no valido: %{error}' imports: errors: invalid_csv_file: 'Fichero CSV no valido. Error: %{error}' diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e8b1de6a93..5ab26083a2 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1217,8 +1217,6 @@ ar: other: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه two: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه zero: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه - html_validator: - invalid_markup: 'يحتوي على علامة HTML غير صالحة: %{error}' imports: errors: invalid_csv_file: 'ملف CSV غير صالح. خطأ: %{error}' diff --git a/config/locales/be.yml b/config/locales/be.yml index 24dd86285b..17fcabe9b0 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1270,8 +1270,6 @@ be: many: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй one: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце памылку ніжэй other: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй - html_validator: - invalid_markup: 'змяшчае несапраўдную разметку HTML: %{error}' imports: errors: invalid_csv_file: 'Несапраўдны файл CSV. Памылка: %{error}' diff --git a/config/locales/bg.yml b/config/locales/bg.yml index d0d1888c0c..adaf31d852 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1215,8 +1215,6 @@ bg: validation_errors: one: Нещо още не е напълно наред! Прегледайте грешката долу other: Нещо още не е напълно наред! Прегледайте %{count} грешки долу - html_validator: - invalid_markup: 'съдържа невалидно HTML маркиране: %{error}' imports: errors: invalid_csv_file: 'Невалиден файл CSV. Грешка: %{error}' diff --git a/config/locales/ca.yml b/config/locales/ca.yml index afaf9e06db..68c5db23e4 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1220,8 +1220,6 @@ ca: validation_errors: one: Alguna cosa no va bé! Si us plau, revisa l'error other: Alguna cosa no va bé! Si us plau, revisa %{count} errors més a baix - html_validator: - invalid_markup: 'conté HTML markup no vàlid: %{error}' imports: errors: invalid_csv_file: 'Fitxer CSV invàlid. Error: %{error}' diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index 5b945d442e..2cfa5dfee8 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -756,8 +756,6 @@ ckb: validation_errors: one: شتێک هێشتا تەواو ڕاست نیە تکایە چاو بە هەڵەکەی خوارەوە بخشێنەوە other: هێشتا تەواو ڕاست نیە تکایە چاو بە هەڵەی %{count} خوارەوە بخشێنەوە - html_validator: - invalid_markup: 'نیشانەی HTML نادروستی تێدایە: %{error}' imports: modes: merge: یەکخستن diff --git a/config/locales/co.yml b/config/locales/co.yml index 4a26920186..6cf1f28b33 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -716,8 +716,6 @@ co: validation_errors: one: Qualcosa ùn và bè! Verificate u prublemu quì sottu other: Qualcosa ùn và bè! Verificate %{count} prublemi quì sottu - html_validator: - invalid_markup: 'cuntene codice HTML invalidu: %{error}' imports: errors: over_rows_processing_limit: cuntene più di %{count} filari diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 8c5fdd1dba..f6796ec6b8 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1245,8 +1245,6 @@ cs: many: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyb uvedených níže one: Něco ještě není úplně v pořádku! Zkontrolujte prosím chybu uvedenou níže other: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyb uvedených níže - html_validator: - invalid_markup: 'obsahuje neplatný HTML kód: %{error}' imports: errors: invalid_csv_file: 'Neplatný soubor CSV. Chyba: %{error}' diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 1e07fcedf6..14ecbe7034 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1320,8 +1320,6 @@ cy: other: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod, os gwelwch yn dda two: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} wall isod, os gwelwch yn dda zero: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda - html_validator: - invalid_markup: 'yn cynnwys markup HTML annilys: %{error}' imports: errors: invalid_csv_file: 'Ffeil CSV annilys. Gwall: %{error}' diff --git a/config/locales/da.yml b/config/locales/da.yml index 52313defa1..e0468d6c70 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1216,8 +1216,6 @@ da: validation_errors: one: Noget er ikke er helt i vinkel! Tjek fejlen nedenfor other: Noget er ikke er helt i vinkel! Tjek de %{count} fejl nedenfor - html_validator: - invalid_markup: 'indeholder ugyldig HTML-markup: %{error}' imports: errors: invalid_csv_file: 'Ugyldig CSV-fil. Fejl: %{error}' diff --git a/config/locales/de.yml b/config/locales/de.yml index 6679ebd23e..d5aa904f97 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1220,8 +1220,6 @@ de: validation_errors: one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler other: Etwas ist noch nicht ganz richtig! Bitte korrigiere %{count} Fehler - html_validator: - invalid_markup: 'enthält ungültiges HTML-Markup: %{error}' imports: errors: invalid_csv_file: 'Ungültige CSV-Datei. Fehler: %{error}' diff --git a/config/locales/el.yml b/config/locales/el.yml index 3d28a0e0ab..9a0ac8dbd2 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -857,8 +857,6 @@ el: validation_errors: one: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε το παρακάτω σφάλμα other: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε τα παρακάτω %{count} σφάλματα - html_validator: - invalid_markup: 'περιέχει λάθος μορφοποίηση HTML: %{error}' imports: errors: invalid_csv_file: 'Μη έγκυρο αρχείο CSV. Σφάλμα: %{error}' diff --git a/config/locales/en.yml b/config/locales/en.yml index 594a030b90..9f8ba7ce78 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1220,8 +1220,6 @@ en: validation_errors: one: Something isn't quite right yet! Please review the error below other: Something isn't quite right yet! Please review %{count} errors below - html_validator: - invalid_markup: 'contains invalid HTML markup: %{error}' imports: errors: invalid_csv_file: 'Invalid CSV file. Error: %{error}' diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 34a6895315..151ca2429f 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1221,8 +1221,6 @@ eo: validation_errors: one: Io mise okazis! Bonvolu konsulti la suban erar-raporton other: Io mise okazis! Bonvolu konsulti la subajn %{count} erar-raportojn - html_validator: - invalid_markup: 'havas nevalidan HTML-markadon: %{error}' imports: errors: invalid_csv_file: Nevalida CSV-dosiero. %{error} diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index bf65495b92..8d934011cd 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1220,8 +1220,6 @@ es-AR: validation_errors: one: "¡Falta algo! Por favor, revisá el error abajo" other: "¡Falta algo! Por favor, revisá los %{count} errores abajo" - html_validator: - invalid_markup: 'contiene markup HTML no válido: %{error}' imports: errors: invalid_csv_file: 'Archivo CSV no válido. Error: %{error}' diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 700db78689..0ce2a894ae 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1207,8 +1207,6 @@ es-MX: validation_errors: one: "¡Algo no está bien! Por favor, revisa el error" other: "¡Algo no está bien! Por favor, revise %{count} errores más abajo" - html_validator: - invalid_markup: 'contiene código HTML no válido: %{error}' imports: errors: invalid_csv_file: 'Archivo CSV no válido. Error: %{error}' diff --git a/config/locales/es.yml b/config/locales/es.yml index 4c28aa8a02..aaf438b17b 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1220,8 +1220,6 @@ es: validation_errors: one: "¡Algo no está bien! Por favor, revisa el error" other: "¡Algo no está bien! Por favor, revise %{count} errores más abajo" - html_validator: - invalid_markup: 'contiene código HTML no válido: %{error}' imports: errors: invalid_csv_file: 'Archivo CSV no válido. Error: %{error}' diff --git a/config/locales/et.yml b/config/locales/et.yml index 602e79c46f..1b5910154e 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1220,8 +1220,6 @@ et: validation_errors: 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: errors: invalid_csv_file: 'Vigane CSV-fail. Tõrge: %{error}' diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 7a6d1c46ca..b9a9482bf5 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1222,8 +1222,6 @@ eu: validation_errors: one: Zerbait ez dabil ongi! Egiaztatu beheko errorea mesedez other: Zerbait ez dabil ongi! Egiaztatu beheko %{count} erroreak mesedez - html_validator: - invalid_markup: 'HTML markaketa baliogabea du: %{error}' imports: errors: invalid_csv_file: 'CSV fitxategi baliogabea. Errorea: %{error}' diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 8bdf0709c2..88366c7b95 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -904,8 +904,6 @@ fa: validation_errors: one: یک چیزی هنوز درست نیست! لطفاً خطاهای زیر را ببینید other: یک چیزی هنوز درست نیست! لطفاً %{count} خطای زیر را ببینید - html_validator: - invalid_markup: 'دارای نشانه‌گذاری نامعتبر HTML است: %{error}' imports: errors: over_rows_processing_limit: دارای بیش از %{count} ردیف diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 655f0113f5..8a77fa8a57 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1220,8 +1220,6 @@ fi: validation_errors: one: Kaikki ei ole aivan oikein! Tarkasta alla oleva virhe other: Kaikki ei ole aivan oikein! Tarkasta alla olevat %{count} virhettä - html_validator: - invalid_markup: 'sisältää virheellisen HTML-merkinnän: %{error}' imports: errors: invalid_csv_file: 'Epäkelpo CSV-tiedosto. Virhe: %{error}' diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 5f5648b4d2..db3aca3693 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1220,8 +1220,6 @@ fo: validation_errors: one: Okkurt er ikki heilt rætt enn! Vinarliga eftirhygg feilin niðanfyri other: Okkurt er ikki heilt rætt enn! Vinarliga eftirhygg teir %{count} feilirnar niðanfyri - html_validator: - invalid_markup: 'inniheldur ógyldugt HTML markup: %{error}' imports: errors: invalid_csv_file: 'Ógildug CSV-fíla. Error: %{error}' diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 23c822e10f..4c69085b61 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -1216,8 +1216,6 @@ fr-QC: validation_errors: one: Quelque chose ne va pas ! Veuillez vérifiez l’erreur ci-dessous other: Certaines choses ne vont pas ! Veuillez vérifier les %{count} erreurs ci-dessous - html_validator: - invalid_markup: 'contient un balisage HTML invalide: %{error}' imports: errors: invalid_csv_file: 'Fichier CSV non valide. Erreur : %{error}' diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 640a5dc321..c3ec4bdc7a 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1220,8 +1220,6 @@ fr: validation_errors: one: Quelque chose ne va pas ! Veuillez vérifiez l’erreur ci-dessous other: Certaines choses ne vont pas ! Veuillez vérifier les %{count} erreurs ci-dessous - html_validator: - invalid_markup: 'contient un balisage HTML invalide: %{error}' imports: errors: invalid_csv_file: 'Fichier CSV non valide. Erreur : %{error}' diff --git a/config/locales/fy.yml b/config/locales/fy.yml index cdb7a80c46..45e15a4d2f 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1220,8 +1220,6 @@ fy: 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}' diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 5db509b6f5..f47c99073d 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1257,8 +1257,6 @@ gd: one: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air an %{count} mhearachd gu h-ìosal other: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air an %{count} mearachd gu h-ìosal two: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air an %{count} mhearachd gu h-ìosal - html_validator: - invalid_markup: 'tha HTML markup mì-dhligheach ann: %{error}' imports: errors: invalid_csv_file: 'Faidhle CSV mì-dhligheach. Mearachd: %{error}' diff --git a/config/locales/gl.yml b/config/locales/gl.yml index b51d0f7071..cdb128f927 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1220,8 +1220,6 @@ gl: validation_errors: one: Algo non está ben de todo! Por favor revise abaixo o erro other: Algo aínda non está ben! Por favor revise os %{count} erros abaixo - html_validator: - invalid_markup: 'contén cancelos HTML non válidas: %{error}' imports: errors: invalid_csv_file: 'Ficheiro CSV non válido. Erro: %{error}' diff --git a/config/locales/he.yml b/config/locales/he.yml index 30a8796448..064e127a0d 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1270,8 +1270,6 @@ he: one: משהו עדיין לא בסדר! נא לעיין בשגיאה להלן other: משהו עדיין לא בסדר! נא לעיין ב-%{count} השגיאות להלן two: משהו עדיין לא בסדר! נא לעיין ב-%{count} השגיאות להלן - html_validator: - invalid_markup: 'מכיל קוד HTML לא תקין: %{error}' imports: errors: invalid_csv_file: 'קובץ CSV שבור. שגיאה: %{error}' diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 7b98cc77cd..620e8d6799 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1220,8 +1220,6 @@ hu: validation_errors: one: Valami nincs rendjén! Tekintsd meg a hibát lent other: Valami nincs rendjén! Tekintsd meg a(z) %{count} hibát lent - html_validator: - invalid_markup: 'hibás HTML leíró: %{error}' imports: errors: invalid_csv_file: 'Érvénytelen CSV-fájl. Hiba: %{error}' diff --git a/config/locales/id.yml b/config/locales/id.yml index da16e7836e..2363cc66ac 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1153,8 +1153,6 @@ id: today: hari ini validation_errors: other: Ada yang belum benar! Silakan tinjau %{count} kesalahan di bawah ini - html_validator: - invalid_markup: 'berisi markup HTML yang tidak valid: %{error}' imports: errors: invalid_csv_file: 'Berkas CVS tidak sah. Kesalahan: %{error}' diff --git a/config/locales/io.yml b/config/locales/io.yml index 809ef45462..9ef6c03128 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1136,8 +1136,6 @@ io: validation_errors: one: Ulo ne eventis senprobleme! Voluntez konsultar la suba eror-raporto other: Ulo ne eventis senprobleme! Voluntez konsultar la suba %{count} eror-raporti - html_validator: - invalid_markup: 'kontenas nevalida kompozuro di HTML: %{error}' imports: errors: over_rows_processing_limit: kontenas plu kam %{count} horizontala lineo diff --git a/config/locales/is.yml b/config/locales/is.yml index 56005196ff..5f63482522 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1220,8 +1220,6 @@ is: validation_errors: one: Ennþá er ekk alvegi allt í lagi! Skoðaðu vel villuna hér fyrir neðan other: Ennþá er ekki alveg allt í lagi! Skoðaðu vel villurnar %{count} hér fyrir neðan - html_validator: - invalid_markup: 'inniheldur ógildar HTML-merkingar: %{error}' imports: errors: invalid_csv_file: 'Ógild CSV-skrá. Villa: %{error}' diff --git a/config/locales/it.yml b/config/locales/it.yml index 3531cfc7d9..9256ed49d9 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1222,8 +1222,6 @@ it: validation_errors: one: Qualcosa ancora non va bene! Per favore, controlla l'errore qui sotto other: Qualcosa ancora non va bene! Per favore, controlla i %{count} errori qui sotto - html_validator: - invalid_markup: 'contiene markup HTML non valido: %{error}' imports: errors: invalid_csv_file: 'File CSV non valido. Errore: %{error}' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index bea0085c95..374fdaf84a 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1195,8 +1195,6 @@ ja: today: 今日 validation_errors: other: エラーが発生しました! 以下の%{count}件のエラーを確認してください - html_validator: - invalid_markup: '無効なHTMLマークアップが含まれています: %{error}' imports: errors: invalid_csv_file: '無効なCSVファイルです。エラー: %{error}' diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 1adddf3c86..959f7b0f01 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -481,8 +481,6 @@ kk: validation_errors: one: Бір нәрсе дұрыс емес! Төмендегі қатені қараңыз other: Бір нәрсе дұрыс емес! Төмендегі %{count} қатені қараңыз - html_validator: - invalid_markup: 'жарамсыз HTML код: %{error}' imports: modes: merge: Біріктіру diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 8e8f7ec6b8..a8fe44087f 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1197,8 +1197,6 @@ ko: today: 오늘 validation_errors: other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오 - html_validator: - invalid_markup: '올바르지 않은 HTML 마크업을 포함하고 있습니다: %{error}' imports: errors: invalid_csv_file: '올바르지 않은 CSV 파일입니다. 오류: %{error}' diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 255026db16..899cd936a0 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1180,8 +1180,6 @@ ku: validation_errors: one: Tiştek hîn ne rast e! Ji kerema xwe çewtiya li jêr di ber çavan re derbas bike other: Tiştek hîn ne rast e! Ji kerema xwe %{count} çewtî li jêr di ber çavan re derbas bike - html_validator: - invalid_markup: 'di nav de nîşana HTML a nederbasdar heye: %{error}' imports: errors: invalid_csv_file: 'Pelê CSV nederbasdar e. Çewtî: %{error}' diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 64963199cd..8bcb23c602 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1245,8 +1245,6 @@ lv: one: Kaut kas vēl nav īsti kārtībā! Lūdzu, pārskati zemāk norādīto kļūdu other: Kaut kas vēl nav īsti kārtībā! Lūdzu, pārskati %{count} kļūdas zemāk zero: "%{count} kļūdu" - html_validator: - invalid_markup: 'satur nederīgu HTML marķējumu: %{error}' imports: errors: invalid_csv_file: 'Nederīgs CSV fails. Kļūda: %{error}' diff --git a/config/locales/nl.yml b/config/locales/nl.yml index b7a69b830e..e9a63e9d83 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1220,8 +1220,6 @@ nl: validation_errors: one: Er is iets niet helemaal goed! Bekijk onderstaande fout other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten - html_validator: - invalid_markup: 'bevat ongeldige HTML-opmaak: %{error}' imports: errors: invalid_csv_file: 'Ongeldig CSV-bestand. Fout: %{error}' diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 5ecc6d35f7..f6bae8c5c7 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1163,8 +1163,6 @@ nn: validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til other: Noe er ikke helt riktig ennå. Det er ennå %{count} feil å rette på - html_validator: - invalid_markup: 'rommar ugild HTML-kode: %{error}' imports: errors: invalid_csv_file: 'Ugyldig CSV-fil. Feil: %{error}' diff --git a/config/locales/no.yml b/config/locales/no.yml index b8abdc6cac..3036ce050f 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1155,8 +1155,6 @@ validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til other: Noe er ikke helt riktig ennå. Det er ennå %{count} feil å rette på - html_validator: - invalid_markup: 'inneholder ugyldig HTML-markør: %{error}' imports: errors: invalid_csv_file: 'Ugyldig CSV-fil. Feil: %{error}' diff --git a/config/locales/oc.yml b/config/locales/oc.yml index fb185f7c05..1d5ed61fe7 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -640,8 +640,6 @@ oc: validation_errors: one: I a quicòm que truca ! Mercés de corregir l’error çai-jos other: I a quicòm que truca ! Mercés de corregir las %{count} errors çai-jos - html_validator: - invalid_markup: 'conten un balisatge HTML invalid : %{error}' imports: modes: merge: Fondre diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 8a30f8e967..90a6aaf9ee 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1270,8 +1270,6 @@ pl: many: Coś jest wciąż nie tak! Przejrzyj %{count} poniższych błędów one: Coś jest wciąż nie tak! Przyjrzyj się poniższemu błędowi other: Coś jest wciąż nie tak! Przejrzyj poniższe błędy (%{count}) - html_validator: - invalid_markup: 'zawiera nieprawidłową składnię HTML: %{error}' imports: errors: invalid_csv_file: 'Nieprawidłowy plik CSV. Błąd: %{error}' diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index dcbaa027df..79ad3e839a 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1195,8 +1195,6 @@ pt-BR: validation_errors: one: Algo não está certo! Analise o erro abaixo other: Algo não está certo! Analise os %{count} erros abaixo - html_validator: - invalid_markup: 'contém HTML inválido: %{error}' imports: errors: invalid_csv_file: 'Arquivo CSV inválido. Erro: %{error}' diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index de920c3550..701be825e9 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1218,8 +1218,6 @@ pt-PT: validation_errors: 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: errors: invalid_csv_file: 'Arquivo CSV inválido. Erro: %{error}' diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 983dfb4245..28402b46b1 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1247,8 +1247,6 @@ ru: many: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже - html_validator: - invalid_markup: 'невалидная разметка HTML: %{error}' imports: errors: invalid_csv_file: 'Неверный файл CSV. Ошибка: %{error}' diff --git a/config/locales/sc.yml b/config/locales/sc.yml index b23b1a02b1..3a84f81702 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -670,8 +670,6 @@ sc: validation_errors: one: Calicuna cosa ancora no est andende. Bide sa faddina in bàsciu other: Calicuna cosa ancora no est andende. Bide is %{count} faddinas in bàsciu - html_validator: - invalid_markup: 'cuntenet etichetas HTML non vàlidas: %{error}' imports: errors: over_rows_processing_limit: cuntenet prus de %{count} filas diff --git a/config/locales/sco.yml b/config/locales/sco.yml index e2d3178847..6cd4be0601 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1170,8 +1170,6 @@ sco: validation_errors: one: Somethin isnae quite richt yit! Please luik ower the error ablow other: Somethin isnae quite richt yit! Please review %{count} errors ablow - html_validator: - invalid_markup: 'contains invalid HTML mairkup: %{error}' imports: errors: invalid_csv_file: 'Invalid CSV file. Error: %{error}' diff --git a/config/locales/si.yml b/config/locales/si.yml index f621037c90..9a639b720d 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -973,8 +973,6 @@ si: validation_errors: one: යමක් තවමත් හරි නැත! කරුණාකර පහත දෝෂය සමාලෝචනය කරන්න other: යමක් තවමත් හරි නැත! කරුණාකර පහත දෝෂ %{count} ක් සමාලෝචනය කරන්න - html_validator: - invalid_markup: 'වලංගු නොවන HTML සලකුණු අඩංගු වේ: %{error}' imports: errors: over_rows_processing_limit: පේළි %{count} කට වඩා අඩංගු වේ diff --git a/config/locales/sk.yml b/config/locales/sk.yml index d50da0041a..da653857fb 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -828,8 +828,6 @@ sk: many: Niečo ešte nieje celkom v poriadku! Prosím skontroluj %{count} chýb uvedených nižšie one: Niečo ešte nieje celkom v poriadku! Prosím skontroluj chybu uvedenú nižšie other: Niečo ešte nieje celkom v poriadku! Prosím skontroluj %{count} chyby uvedené nižšie - html_validator: - invalid_markup: 'obsahuje neplatný HTML kód: %{error}' imports: errors: over_rows_processing_limit: obsahuje viac než %{count} riadkov diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 18009d3729..7cabc0cd86 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1270,8 +1270,6 @@ sl: one: Nekaj še ni čisto v redu! Spodaj si oglejte napako other: Nekaj še ni čisto v redu! Spodaj si oglejte %{count} napak two: Nekaj še ni čisto v redu! Spodaj si oglejte %{count} napaki - html_validator: - invalid_markup: 'vsebuje neveljavno oznako HTML: %{error}' imports: errors: invalid_csv_file: 'Neveljavna datoteka CSV. Napaka: %{error}' diff --git a/config/locales/sq.yml b/config/locales/sq.yml index a36b667d84..467aa8967e 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1214,8 +1214,6 @@ sq: validation_errors: one: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni gabimin më poshtë other: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni %{count} gabimet më poshtë - html_validator: - invalid_markup: 'përmban elementë HTML të pavlefshëm: %{error}' imports: errors: invalid_csv_file: 'Kartelë CSV e pavlefshme. Gabim: %{error}' diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 86f9805e4c..c5ad5a8da3 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1194,8 +1194,6 @@ sv: validation_errors: one: Något är inte riktigt rätt ännu! Kontrollera felet nedan other: Något är inte riktigt rätt ännu! Kontrollera dom %{count} felen nedan - html_validator: - invalid_markup: 'innehåller ogiltig HTML: %{error}' imports: errors: invalid_csv_file: 'Ogiltig CSV-fil. Felmeddelande: %{error}' diff --git a/config/locales/th.yml b/config/locales/th.yml index a4be17222f..9c4a7bfc58 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1195,8 +1195,6 @@ th: today: วันนี้ validation_errors: other: ยังมีบางอย่างไม่ถูกต้อง! โปรดตรวจทาน %{count} ข้อผิดพลาดด้านล่าง - html_validator: - invalid_markup: 'มีมาร์กอัป HTML ที่ไม่ถูกต้อง: %{error}' imports: errors: invalid_csv_file: 'ไฟล์ CSV ไม่ถูกต้อง ข้อผิดพลาด: %{error}' diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 0e0edb4216..90a4208f0a 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1220,8 +1220,6 @@ tr: validation_errors: one: Bir şeyler ters gitti! Lütfen aşağıdaki hatayı gözden geçiriniz other: Bir şeyler ters gitti! Lütfen aşağıdaki %{count} hatayı gözden geçiriniz - html_validator: - invalid_markup: 'geçersiz HTML markup içermektedir: %{error}' imports: errors: invalid_csv_file: 'Geçersiz CSV dosyası. Hata: %{error}' diff --git a/config/locales/uk.yml b/config/locales/uk.yml index b90f014001..347f7414dc 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1270,8 +1270,6 @@ uk: many: Щось досі не гаразд! Перегляньте %{count} повідомлень про помилки one: Щось досі не гаразд! Перегляньте повідомлення про помилку other: Щось досі не гаразд! Перегляньте %{count} повідомлень про помилки - html_validator: - invalid_markup: 'містить неприпустиму HTML розмітку: %{error}' imports: errors: invalid_csv_file: 'Хибний файл CSV. Помилка: %{error}' diff --git a/config/locales/vi.yml b/config/locales/vi.yml index c4ffaa1dea..269e4f4b06 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1195,8 +1195,6 @@ vi: today: hôm nay validation_errors: other: Đã có %{count} lỗi xảy ra! Xem chi tiết bên dưới - html_validator: - invalid_markup: 'chứa đánh dấu HTML không hợp lệ: %{error}' imports: errors: invalid_csv_file: 'Tập tin CSV không hợp lệ. Lỗi: %{error}' diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 300a20ecd6..e8ca1910a7 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1195,8 +1195,6 @@ zh-CN: today: 今天 validation_errors: other: 出错啦!检查一下下面 %{count} 处出错的地方吧 - html_validator: - invalid_markup: '包含无效的 HTML 标记: %{error}' imports: errors: invalid_csv_file: '无效的 CSV 文件。错误: %{error}' diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 1a3238b741..adaad2c1cf 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1193,8 +1193,6 @@ zh-HK: today: 今天 validation_errors: other: 提交的資料有 %{count} 項問題 - html_validator: - invalid_markup: 含有無效的HTML標記:%{error} imports: errors: invalid_csv_file: 無效的 CSV 檔案。錯誤:%{error} diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 750f15f0b5..04752a294e 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1197,8 +1197,6 @@ zh-TW: today: 今天 validation_errors: other: 唔…這是什麼鳥?請檢查以下 %{count} 項錯誤 - html_validator: - invalid_markup: 含有無效的 HTML 語法:%{error} imports: errors: invalid_csv_file: 無效的 CSV 檔案。錯誤訊息:%{error} From 859eb01aacc27fa01a8d4063f26a5a1f81e5d3a9 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 25 Feb 2023 14:28:59 +0100 Subject: [PATCH 0544/1220] Fix building vanilla flavor after JSX change --- app/javascript/flavours/vanilla/theme.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/javascript/flavours/vanilla/theme.yml b/app/javascript/flavours/vanilla/theme.yml index 3f0b278993..ccab925aa9 100644 --- a/app/javascript/flavours/vanilla/theme.yml +++ b/app/javascript/flavours/vanilla/theme.yml @@ -1,13 +1,13 @@ # (REQUIRED) The location of the pack files inside `pack_directory`. pack: admin: - - admin.js - - public.js - auth: public.js + - admin.jsx + - public.jsx + auth: public.jsx common: filename: common.js stylesheet: true - embed: public.js + embed: public.jsx error: error.js home: filename: application.js @@ -18,9 +18,9 @@ pack: - features/notifications mailer: modal: - public: public.js - settings: public.js - share: share.js + public: public.jsx + settings: public.jsx + share: share.jsx # (OPTIONAL) The directory which contains localization files for # the flavour, relative to this directory. From 81ef21a0c802f1d905f37a2a818544a8b400793c Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Sat, 25 Feb 2023 14:34:32 +0100 Subject: [PATCH 0545/1220] [Glitch] Rename JSX files with proper `.jsx` extension Port 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 to glitch-soc Signed-off-by: Claire --- .../glitch/components/{account.js => account.jsx} | 0 .../components/admin/{Counter.js => Counter.jsx} | 0 .../components/admin/{Dimension.js => Dimension.jsx} | 0 ...ortReasonSelector.js => ReportReasonSelector.jsx} | 0 .../components/admin/{Retention.js => Retention.jsx} | 0 .../components/admin/{Trends.js => Trends.jsx} | 0 .../{animated_number.js => animated_number.jsx} | 0 .../{attachment_list.js => attachment_list.jsx} | 0 .../{autosuggest_emoji.js => autosuggest_emoji.jsx} | 0 ...utosuggest_hashtag.js => autosuggest_hashtag.jsx} | 0 .../{autosuggest_input.js => autosuggest_input.jsx} | 0 ...osuggest_textarea.js => autosuggest_textarea.jsx} | 0 .../glitch/components/{avatar.js => avatar.jsx} | 0 .../{avatar_composite.js => avatar_composite.jsx} | 0 .../{avatar_overlay.js => avatar_overlay.jsx} | 0 .../glitch/components/{blurhash.js => blurhash.jsx} | 0 .../glitch/components/{button.js => button.jsx} | 0 .../glitch/components/{check.js => check.jsx} | 0 .../glitch/components/{column.js => column.jsx} | 0 ...{column_back_button.js => column_back_button.jsx} | 0 ...ck_button_slim.js => column_back_button_slim.jsx} | 0 .../{column_header.js => column_header.jsx} | 0 .../{common_counter.js => common_counter.jsx} | 0 ...{dismissable_banner.js => dismissable_banner.jsx} | 0 .../components/{display_name.js => display_name.jsx} | 0 .../glitch/components/{domain.js => domain.jsx} | 0 .../{dropdown_menu.js => dropdown_menu.jsx} | 0 .../edited_timestamp/{index.js => index.jsx} | 0 .../{error_boundary.js => error_boundary.jsx} | 0 .../flavours/glitch/components/{gifv.js => gifv.jsx} | 0 .../glitch/components/{hashtag.js => hashtag.jsx} | 0 .../flavours/glitch/components/{icon.js => icon.jsx} | 0 .../components/{icon_button.js => icon_button.jsx} | 0 .../{icon_with_badge.js => icon_with_badge.jsx} | 0 .../glitch/components/{image.js => image.jsx} | 0 .../{inline_account.js => inline_account.jsx} | 0 ..._article.js => intersection_observer_article.jsx} | 0 .../flavours/glitch/components/{link.js => link.jsx} | 0 .../glitch/components/{load_gap.js => load_gap.jsx} | 0 .../components/{load_more.js => load_more.jsx} | 0 .../components/{load_pending.js => load_pending.jsx} | 0 .../{loading_indicator.js => loading_indicator.jsx} | 0 .../flavours/glitch/components/{logo.js => logo.jsx} | 0 .../{media_attachments.js => media_attachments.jsx} | 0 .../{media_gallery.js => media_gallery.jsx} | 0 .../{missing_indicator.js => missing_indicator.jsx} | 0 .../components/{modal_root.js => modal_root.jsx} | 0 .../{navigation_portal.js => navigation_portal.jsx} | 0 ...d_in_indicator.js => not_signed_in_indicator.jsx} | 0 ...rge_buttons.js => notification_purge_buttons.jsx} | 0 .../components/{permalink.js => permalink.jsx} | 0 ...eholder.js => picture_in_picture_placeholder.jsx} | 0 .../flavours/glitch/components/{poll.js => poll.jsx} | 0 .../components/{radio_button.js => radio_button.jsx} | 0 ...ation_indicator.js => regeneration_indicator.jsx} | 0 ...{relative_timestamp.js => relative_timestamp.jsx} | 0 .../{scrollable_list.js => scrollable_list.jsx} | 0 .../{server_banner.js => server_banner.jsx} | 0 .../components/{setting_text.js => setting_text.jsx} | 0 .../components/{short_number.js => short_number.jsx} | 0 .../glitch/components/{skeleton.js => skeleton.jsx} | 0 .../glitch/components/{spoilers.js => spoilers.jsx} | 0 .../glitch/components/{status.js => status.jsx} | 0 .../{status_action_bar.js => status_action_bar.jsx} | 0 .../{status_content.js => status_content.jsx} | 0 .../{status_header.js => status_header.jsx} | 0 .../components/{status_icons.js => status_icons.jsx} | 0 .../components/{status_list.js => status_list.jsx} | 0 .../{status_prepend.js => status_prepend.jsx} | 0 ...visibility_icon.js => status_visibility_icon.jsx} | 0 .../{timeline_hint.js => timeline_hint.jsx} | 0 .../{account_container.js => account_container.jsx} | 0 .../{admin_component.js => admin_component.jsx} | 0 .../{compose_container.js => compose_container.jsx} | 0 .../{domain_container.js => domain_container.jsx} | 0 .../glitch/containers/{mastodon.js => mastodon.jsx} | 0 .../{media_container.js => media_container.jsx} | 0 .../glitch/features/about/{index.js => index.jsx} | 0 .../components/{account_note.js => account_note.jsx} | 0 .../components/{action_bar.js => action_bar.jsx} | 0 .../{featured_tags.js => featured_tags.jsx} | 0 ...ollow_request_note.js => follow_request_note.jsx} | 0 .../account/components/{header.js => header.jsx} | 0 ...le_column_header.js => profile_column_header.jsx} | 0 .../account/{navigation.js => navigation.jsx} | 0 .../components/{media_item.js => media_item.jsx} | 0 .../features/account_gallery/{index.js => index.jsx} | 0 .../components/{header.js => header.jsx} | 0 ...ited_account_hint.js => limited_account_hint.jsx} | 0 .../components/{moved_note.js => moved_note.jsx} | 0 .../{header_container.js => header_container.jsx} | 0 .../account_timeline/{index.js => index.jsx} | 0 .../glitch/features/audio/{index.js => index.jsx} | 0 .../glitch/features/blocks/{index.js => index.jsx} | 0 .../bookmarked_statuses/{index.js => index.jsx} | 0 .../{index.js => index.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../community_timeline/{index.js => index.jsx} | 0 .../components/{action_bar.js => action_bar.jsx} | 0 ...utosuggest_account.js => autosuggest_account.jsx} | 0 .../{character_counter.js => character_counter.jsx} | 0 .../components/{compose_form.js => compose_form.jsx} | 0 .../compose/components/{dropdown.js => dropdown.jsx} | 0 .../{dropdown_menu.js => dropdown_menu.jsx} | 0 ..._picker_dropdown.js => emoji_picker_dropdown.jsx} | 0 .../compose/components/{header.js => header.jsx} | 0 .../{language_dropdown.js => language_dropdown.jsx} | 0 .../{navigation_bar.js => navigation_bar.jsx} | 0 .../compose/components/{options.js => options.jsx} | 0 .../components/{poll_form.js => poll_form.jsx} | 0 .../{privacy_dropdown.js => privacy_dropdown.jsx} | 0 .../components/{publisher.js => publisher.jsx} | 0 .../{reply_indicator.js => reply_indicator.jsx} | 0 .../compose/components/{search.js => search.jsx} | 0 .../{search_results.js => search_results.jsx} | 0 .../{text_icon_button.js => text_icon_button.jsx} | 0 .../{textarea_icons.js => textarea_icons.jsx} | 0 .../compose/components/{upload.js => upload.jsx} | 0 .../components/{upload_form.js => upload_form.jsx} | 0 .../{upload_progress.js => upload_progress.jsx} | 0 .../compose/components/{warning.js => warning.jsx} | 0 ...n_container.js => sensitive_button_container.jsx} | 0 .../{warning_container.js => warning_container.jsx} | 0 .../glitch/features/compose/{index.js => index.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../components/{conversation.js => conversation.jsx} | 0 ...{conversations_list.js => conversations_list.jsx} | 0 .../features/direct_timeline/{index.js => index.jsx} | 0 .../components/{account_card.js => account_card.jsx} | 0 .../features/directory/{index.js => index.jsx} | 0 .../features/domain_blocks/{index.js => index.jsx} | 0 .../explore/components/{story.js => story.jsx} | 0 .../glitch/features/explore/{index.js => index.jsx} | 0 .../glitch/features/explore/{links.js => links.jsx} | 0 .../features/explore/{results.js => results.jsx} | 0 .../features/explore/{statuses.js => statuses.jsx} | 0 .../explore/{suggestions.js => suggestions.jsx} | 0 .../glitch/features/explore/{tags.js => tags.jsx} | 0 .../favourited_statuses/{index.js => index.jsx} | 0 .../features/favourites/{index.js => index.jsx} | 0 .../{added_to_filter.js => added_to_filter.jsx} | 0 .../filters/{select_filter.js => select_filter.jsx} | 0 .../components/{account.js => account.jsx} | 0 .../follow_recommendations/{index.js => index.jsx} | 0 .../{account_authorize.js => account_authorize.jsx} | 0 .../features/follow_requests/{index.js => index.jsx} | 0 .../features/followed_tags/{index.js => index.jsx} | 0 .../features/followers/{index.js => index.jsx} | 0 .../features/following/{index.js => index.jsx} | 0 .../generic_not_found/{index.js => index.jsx} | 0 .../{announcements.js => announcements.jsx} | 0 .../components/{trends.js => trends.jsx} | 0 .../features/getting_started/{index.js => index.jsx} | 0 .../getting_started_misc/{index.js => index.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../hashtag_timeline/{index.js => index.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../features/home_timeline/{index.js => index.jsx} | 0 .../interaction_modal/{index.js => index.jsx} | 0 .../keyboard_shortcuts/{index.js => index.jsx} | 0 .../components/{account.js => account.jsx} | 0 .../list_adder/components/{list.js => list.jsx} | 0 .../features/list_adder/{index.js => index.jsx} | 0 .../components/{account.js => account.jsx} | 0 .../{edit_list_form.js => edit_list_form.jsx} | 0 .../list_editor/components/{search.js => search.jsx} | 0 .../features/list_editor/{index.js => index.jsx} | 0 .../features/list_timeline/{index.js => index.jsx} | 0 .../{new_list_form.js => new_list_form.jsx} | 0 .../glitch/features/lists/{index.js => index.jsx} | 0 .../features/local_settings/{index.js => index.jsx} | 0 .../navigation/{index.js => index.jsx} | 0 .../navigation/item/{index.js => index.jsx} | 0 .../page/deprecated_item/{index.js => index.jsx} | 0 .../local_settings/page/{index.js => index.jsx} | 0 .../local_settings/page/item/{index.js => index.jsx} | 0 .../glitch/features/mutes/{index.js => index.jsx} | 0 .../components/{admin_report.js => admin_report.jsx} | 0 .../components/{admin_signup.js => admin_signup.jsx} | 0 ...lear_column_button.js => clear_column_button.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../components/{filter_bar.js => filter_bar.jsx} | 0 .../components/{follow.js => follow.jsx} | 0 .../{follow_request.js => follow_request.jsx} | 0 ...mission_button.js => grant_permission_button.jsx} | 0 .../components/{notification.js => notification.jsx} | 0 ...banner.js => notifications_permission_banner.jsx} | 0 .../components/{overlay.js => overlay.jsx} | 0 .../{pill_bar_button.js => pill_bar_button.jsx} | 0 .../components/{report.js => report.jsx} | 0 .../{setting_toggle.js => setting_toggle.jsx} | 0 .../features/notifications/{index.js => index.jsx} | 0 .../components/{footer.js => footer.jsx} | 0 .../components/{header.js => header.jsx} | 0 .../picture_in_picture/{index.js => index.jsx} | 0 .../pinned_accounts_editor/{index.js => index.jsx} | 0 .../features/pinned_statuses/{index.js => index.jsx} | 0 .../features/privacy_policy/{index.js => index.jsx} | 0 .../{column_settings.js => column_settings.jsx} | 0 .../features/public_timeline/{index.js => index.jsx} | 0 .../glitch/features/reblogs/{index.js => index.jsx} | 0 .../features/report/{category.js => category.jsx} | 0 .../features/report/{comment.js => comment.jsx} | 0 .../report/components/{option.js => option.jsx} | 0 .../{status_check_box.js => status_check_box.jsx} | 0 .../glitch/features/report/{rules.js => rules.jsx} | 0 .../features/report/{statuses.js => statuses.jsx} | 0 .../glitch/features/report/{thanks.js => thanks.jsx} | 0 .../standalone/compose/{index.js => index.jsx} | 0 .../components/{action_bar.js => action_bar.jsx} | 0 .../features/status/components/{card.js => card.jsx} | 0 .../{detailed_status.js => detailed_status.jsx} | 0 .../glitch/features/status/{index.js => index.jsx} | 0 .../{index.js => index.jsx} | 0 .../{actions_modal.js => actions_modal.jsx} | 0 .../components/{audio_modal.js => audio_modal.jsx} | 0 .../components/{block_modal.js => block_modal.jsx} | 0 .../components/{boost_modal.js => boost_modal.jsx} | 0 .../features/ui/components/{bundle.js => bundle.jsx} | 0 ...undle_column_error.js => bundle_column_error.jsx} | 0 ...{bundle_modal_error.js => bundle_modal_error.jsx} | 0 .../features/ui/components/{column.js => column.jsx} | 0 .../{column_header.js => column_header.jsx} | 0 .../components/{column_link.js => column_link.jsx} | 0 .../{column_loading.js => column_loading.jsx} | 0 .../{column_subheading.js => column_subheading.jsx} | 0 .../components/{columns_area.js => columns_area.jsx} | 0 ...re_history_modal.js => compare_history_modal.jsx} | 0 .../{compose_panel.js => compose_panel.jsx} | 0 ...{confirmation_modal.js => confirmation_modal.jsx} | 0 ...ttings_modal.js => deprecated_settings_modal.jsx} | 0 ...account_banner.js => disabled_account_banner.jsx} | 0 .../components/{doodle_modal.js => doodle_modal.jsx} | 0 .../{drawer_loading.js => drawer_loading.jsx} | 0 .../components/{embed_modal.js => embed_modal.jsx} | 0 .../{favourite_modal.js => favourite_modal.jsx} | 0 .../components/{filter_modal.js => filter_modal.jsx} | 0 .../{focal_point_modal.js => focal_point_modal.jsx} | 0 ...olumn_link.js => follow_requests_column_link.jsx} | 0 .../features/ui/components/{header.js => header.jsx} | 0 .../components/{image_loader.js => image_loader.jsx} | 0 .../components/{image_modal.js => image_modal.jsx} | 0 .../components/{link_footer.js => link_footer.jsx} | 0 .../ui/components/{list_panel.js => list_panel.jsx} | 0 .../components/{media_modal.js => media_modal.jsx} | 0 .../{modal_loading.js => modal_loading.jsx} | 0 .../ui/components/{modal_root.js => modal_root.jsx} | 0 .../ui/components/{mute_modal.js => mute_modal.jsx} | 0 .../{navigation_panel.js => navigation_panel.jsx} | 0 .../{onboarding_modal.js => onboarding_modal.jsx} | 0 .../components/{report_modal.js => report_modal.jsx} | 0 .../{sign_in_banner.js => sign_in_banner.jsx} | 0 .../components/{upload_area.js => upload_area.jsx} | 0 .../components/{video_modal.js => video_modal.jsx} | 0 .../{zoomable_image.js => zoomable_image.jsx} | 0 .../glitch/features/ui/{index.js => index.jsx} | 0 ...ct_router_helpers.js => react_router_helpers.jsx} | 0 .../util/{reduced_motion.js => reduced_motion.jsx} | 0 .../glitch/features/video/{index.js => index.jsx} | 0 app/javascript/flavours/glitch/{main.js => main.jsx} | 0 .../flavours/glitch/packs/{admin.js => admin.jsx} | 0 .../flavours/glitch/packs/{public.js => public.jsx} | 0 .../flavours/glitch/packs/{share.js => share.jsx} | 0 app/javascript/flavours/glitch/theme.yml | 12 ++++++------ .../flavours/glitch/utils/{icons.js => icons.jsx} | 0 265 files changed, 6 insertions(+), 6 deletions(-) rename app/javascript/flavours/glitch/components/{account.js => account.jsx} (100%) rename app/javascript/flavours/glitch/components/admin/{Counter.js => Counter.jsx} (100%) rename app/javascript/flavours/glitch/components/admin/{Dimension.js => Dimension.jsx} (100%) rename app/javascript/flavours/glitch/components/admin/{ReportReasonSelector.js => ReportReasonSelector.jsx} (100%) rename app/javascript/flavours/glitch/components/admin/{Retention.js => Retention.jsx} (100%) rename app/javascript/flavours/glitch/components/admin/{Trends.js => Trends.jsx} (100%) rename app/javascript/flavours/glitch/components/{animated_number.js => animated_number.jsx} (100%) rename app/javascript/flavours/glitch/components/{attachment_list.js => attachment_list.jsx} (100%) rename app/javascript/flavours/glitch/components/{autosuggest_emoji.js => autosuggest_emoji.jsx} (100%) rename app/javascript/flavours/glitch/components/{autosuggest_hashtag.js => autosuggest_hashtag.jsx} (100%) rename app/javascript/flavours/glitch/components/{autosuggest_input.js => autosuggest_input.jsx} (100%) rename app/javascript/flavours/glitch/components/{autosuggest_textarea.js => autosuggest_textarea.jsx} (100%) rename app/javascript/flavours/glitch/components/{avatar.js => avatar.jsx} (100%) rename app/javascript/flavours/glitch/components/{avatar_composite.js => avatar_composite.jsx} (100%) rename app/javascript/flavours/glitch/components/{avatar_overlay.js => avatar_overlay.jsx} (100%) rename app/javascript/flavours/glitch/components/{blurhash.js => blurhash.jsx} (100%) rename app/javascript/flavours/glitch/components/{button.js => button.jsx} (100%) rename app/javascript/flavours/glitch/components/{check.js => check.jsx} (100%) rename app/javascript/flavours/glitch/components/{column.js => column.jsx} (100%) rename app/javascript/flavours/glitch/components/{column_back_button.js => column_back_button.jsx} (100%) rename app/javascript/flavours/glitch/components/{column_back_button_slim.js => column_back_button_slim.jsx} (100%) rename app/javascript/flavours/glitch/components/{column_header.js => column_header.jsx} (100%) rename app/javascript/flavours/glitch/components/{common_counter.js => common_counter.jsx} (100%) rename app/javascript/flavours/glitch/components/{dismissable_banner.js => dismissable_banner.jsx} (100%) rename app/javascript/flavours/glitch/components/{display_name.js => display_name.jsx} (100%) rename app/javascript/flavours/glitch/components/{domain.js => domain.jsx} (100%) rename app/javascript/flavours/glitch/components/{dropdown_menu.js => dropdown_menu.jsx} (100%) rename app/javascript/flavours/glitch/components/edited_timestamp/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/components/{error_boundary.js => error_boundary.jsx} (100%) rename app/javascript/flavours/glitch/components/{gifv.js => gifv.jsx} (100%) rename app/javascript/flavours/glitch/components/{hashtag.js => hashtag.jsx} (100%) rename app/javascript/flavours/glitch/components/{icon.js => icon.jsx} (100%) rename app/javascript/flavours/glitch/components/{icon_button.js => icon_button.jsx} (100%) rename app/javascript/flavours/glitch/components/{icon_with_badge.js => icon_with_badge.jsx} (100%) rename app/javascript/flavours/glitch/components/{image.js => image.jsx} (100%) rename app/javascript/flavours/glitch/components/{inline_account.js => inline_account.jsx} (100%) rename app/javascript/flavours/glitch/components/{intersection_observer_article.js => intersection_observer_article.jsx} (100%) rename app/javascript/flavours/glitch/components/{link.js => link.jsx} (100%) rename app/javascript/flavours/glitch/components/{load_gap.js => load_gap.jsx} (100%) rename app/javascript/flavours/glitch/components/{load_more.js => load_more.jsx} (100%) rename app/javascript/flavours/glitch/components/{load_pending.js => load_pending.jsx} (100%) rename app/javascript/flavours/glitch/components/{loading_indicator.js => loading_indicator.jsx} (100%) rename app/javascript/flavours/glitch/components/{logo.js => logo.jsx} (100%) rename app/javascript/flavours/glitch/components/{media_attachments.js => media_attachments.jsx} (100%) rename app/javascript/flavours/glitch/components/{media_gallery.js => media_gallery.jsx} (100%) rename app/javascript/flavours/glitch/components/{missing_indicator.js => missing_indicator.jsx} (100%) rename app/javascript/flavours/glitch/components/{modal_root.js => modal_root.jsx} (100%) rename app/javascript/flavours/glitch/components/{navigation_portal.js => navigation_portal.jsx} (100%) rename app/javascript/flavours/glitch/components/{not_signed_in_indicator.js => not_signed_in_indicator.jsx} (100%) rename app/javascript/flavours/glitch/components/{notification_purge_buttons.js => notification_purge_buttons.jsx} (100%) rename app/javascript/flavours/glitch/components/{permalink.js => permalink.jsx} (100%) rename app/javascript/flavours/glitch/components/{picture_in_picture_placeholder.js => picture_in_picture_placeholder.jsx} (100%) rename app/javascript/flavours/glitch/components/{poll.js => poll.jsx} (100%) rename app/javascript/flavours/glitch/components/{radio_button.js => radio_button.jsx} (100%) rename app/javascript/flavours/glitch/components/{regeneration_indicator.js => regeneration_indicator.jsx} (100%) rename app/javascript/flavours/glitch/components/{relative_timestamp.js => relative_timestamp.jsx} (100%) rename app/javascript/flavours/glitch/components/{scrollable_list.js => scrollable_list.jsx} (100%) rename app/javascript/flavours/glitch/components/{server_banner.js => server_banner.jsx} (100%) rename app/javascript/flavours/glitch/components/{setting_text.js => setting_text.jsx} (100%) rename app/javascript/flavours/glitch/components/{short_number.js => short_number.jsx} (100%) rename app/javascript/flavours/glitch/components/{skeleton.js => skeleton.jsx} (100%) rename app/javascript/flavours/glitch/components/{spoilers.js => spoilers.jsx} (100%) rename app/javascript/flavours/glitch/components/{status.js => status.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_action_bar.js => status_action_bar.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_content.js => status_content.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_header.js => status_header.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_icons.js => status_icons.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_list.js => status_list.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_prepend.js => status_prepend.jsx} (100%) rename app/javascript/flavours/glitch/components/{status_visibility_icon.js => status_visibility_icon.jsx} (100%) rename app/javascript/flavours/glitch/components/{timeline_hint.js => timeline_hint.jsx} (100%) rename app/javascript/flavours/glitch/containers/{account_container.js => account_container.jsx} (100%) rename app/javascript/flavours/glitch/containers/{admin_component.js => admin_component.jsx} (100%) rename app/javascript/flavours/glitch/containers/{compose_container.js => compose_container.jsx} (100%) rename app/javascript/flavours/glitch/containers/{domain_container.js => domain_container.jsx} (100%) rename app/javascript/flavours/glitch/containers/{mastodon.js => mastodon.jsx} (100%) rename app/javascript/flavours/glitch/containers/{media_container.js => media_container.jsx} (100%) rename app/javascript/flavours/glitch/features/about/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{account_note.js => account_note.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{action_bar.js => action_bar.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{featured_tags.js => featured_tags.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{follow_request_note.js => follow_request_note.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{header.js => header.jsx} (100%) rename app/javascript/flavours/glitch/features/account/components/{profile_column_header.js => profile_column_header.jsx} (100%) rename app/javascript/flavours/glitch/features/account/{navigation.js => navigation.jsx} (100%) rename app/javascript/flavours/glitch/features/account_gallery/components/{media_item.js => media_item.jsx} (100%) rename app/javascript/flavours/glitch/features/account_gallery/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/account_timeline/components/{header.js => header.jsx} (100%) rename app/javascript/flavours/glitch/features/account_timeline/components/{limited_account_hint.js => limited_account_hint.jsx} (100%) rename app/javascript/flavours/glitch/features/account_timeline/components/{moved_note.js => moved_note.jsx} (100%) rename app/javascript/flavours/glitch/features/account_timeline/containers/{header_container.js => header_container.jsx} (100%) rename app/javascript/flavours/glitch/features/account_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/audio/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/blocks/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/bookmarked_statuses/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/closed_registrations_modal/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/community_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/community_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{action_bar.js => action_bar.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{autosuggest_account.js => autosuggest_account.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{character_counter.js => character_counter.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{compose_form.js => compose_form.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{dropdown.js => dropdown.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{dropdown_menu.js => dropdown_menu.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{header.js => header.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{language_dropdown.js => language_dropdown.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{navigation_bar.js => navigation_bar.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{options.js => options.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{poll_form.js => poll_form.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{privacy_dropdown.js => privacy_dropdown.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{publisher.js => publisher.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{reply_indicator.js => reply_indicator.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{search.js => search.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{search_results.js => search_results.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{text_icon_button.js => text_icon_button.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{textarea_icons.js => textarea_icons.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{upload.js => upload.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{upload_form.js => upload_form.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{upload_progress.js => upload_progress.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/components/{warning.js => warning.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/containers/{sensitive_button_container.js => sensitive_button_container.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/containers/{warning_container.js => warning_container.jsx} (100%) rename app/javascript/flavours/glitch/features/compose/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/direct_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/direct_timeline/components/{conversation.js => conversation.jsx} (100%) rename app/javascript/flavours/glitch/features/direct_timeline/components/{conversations_list.js => conversations_list.jsx} (100%) rename app/javascript/flavours/glitch/features/direct_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/directory/components/{account_card.js => account_card.jsx} (100%) rename app/javascript/flavours/glitch/features/directory/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/domain_blocks/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/components/{story.js => story.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{links.js => links.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{results.js => results.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{statuses.js => statuses.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{suggestions.js => suggestions.jsx} (100%) rename app/javascript/flavours/glitch/features/explore/{tags.js => tags.jsx} (100%) rename app/javascript/flavours/glitch/features/favourited_statuses/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/favourites/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/filters/{added_to_filter.js => added_to_filter.jsx} (100%) rename app/javascript/flavours/glitch/features/filters/{select_filter.js => select_filter.jsx} (100%) rename app/javascript/flavours/glitch/features/follow_recommendations/components/{account.js => account.jsx} (100%) rename app/javascript/flavours/glitch/features/follow_recommendations/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/follow_requests/components/{account_authorize.js => account_authorize.jsx} (100%) rename app/javascript/flavours/glitch/features/follow_requests/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/followed_tags/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/followers/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/following/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/generic_not_found/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/getting_started/components/{announcements.js => announcements.jsx} (100%) rename app/javascript/flavours/glitch/features/getting_started/components/{trends.js => trends.jsx} (100%) rename app/javascript/flavours/glitch/features/getting_started/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/getting_started_misc/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/hashtag_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/hashtag_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/home_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/home_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/interaction_modal/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/keyboard_shortcuts/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/list_adder/components/{account.js => account.jsx} (100%) rename app/javascript/flavours/glitch/features/list_adder/components/{list.js => list.jsx} (100%) rename app/javascript/flavours/glitch/features/list_adder/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/list_editor/components/{account.js => account.jsx} (100%) rename app/javascript/flavours/glitch/features/list_editor/components/{edit_list_form.js => edit_list_form.jsx} (100%) rename app/javascript/flavours/glitch/features/list_editor/components/{search.js => search.jsx} (100%) rename app/javascript/flavours/glitch/features/list_editor/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/list_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/lists/components/{new_list_form.js => new_list_form.jsx} (100%) rename app/javascript/flavours/glitch/features/lists/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/navigation/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/navigation/item/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/page/deprecated_item/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/page/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/local_settings/page/item/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/mutes/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{admin_report.js => admin_report.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{admin_signup.js => admin_signup.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{clear_column_button.js => clear_column_button.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{filter_bar.js => filter_bar.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{follow.js => follow.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{follow_request.js => follow_request.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{grant_permission_button.js => grant_permission_button.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{notification.js => notification.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{notifications_permission_banner.js => notifications_permission_banner.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{overlay.js => overlay.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{pill_bar_button.js => pill_bar_button.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{report.js => report.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/components/{setting_toggle.js => setting_toggle.jsx} (100%) rename app/javascript/flavours/glitch/features/notifications/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/picture_in_picture/components/{footer.js => footer.jsx} (100%) rename app/javascript/flavours/glitch/features/picture_in_picture/components/{header.js => header.jsx} (100%) rename app/javascript/flavours/glitch/features/picture_in_picture/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/pinned_accounts_editor/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/pinned_statuses/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/privacy_policy/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/public_timeline/components/{column_settings.js => column_settings.jsx} (100%) rename app/javascript/flavours/glitch/features/public_timeline/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/reblogs/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/report/{category.js => category.jsx} (100%) rename app/javascript/flavours/glitch/features/report/{comment.js => comment.jsx} (100%) rename app/javascript/flavours/glitch/features/report/components/{option.js => option.jsx} (100%) rename app/javascript/flavours/glitch/features/report/components/{status_check_box.js => status_check_box.jsx} (100%) rename app/javascript/flavours/glitch/features/report/{rules.js => rules.jsx} (100%) rename app/javascript/flavours/glitch/features/report/{statuses.js => statuses.jsx} (100%) rename app/javascript/flavours/glitch/features/report/{thanks.js => thanks.jsx} (100%) rename app/javascript/flavours/glitch/features/standalone/compose/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/status/components/{action_bar.js => action_bar.jsx} (100%) rename app/javascript/flavours/glitch/features/status/components/{card.js => card.jsx} (100%) rename app/javascript/flavours/glitch/features/status/components/{detailed_status.js => detailed_status.jsx} (100%) rename app/javascript/flavours/glitch/features/status/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/subscribed_languages_modal/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{actions_modal.js => actions_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{audio_modal.js => audio_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{block_modal.js => block_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{boost_modal.js => boost_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{bundle.js => bundle.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{bundle_column_error.js => bundle_column_error.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{bundle_modal_error.js => bundle_modal_error.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{column.js => column.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{column_header.js => column_header.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{column_link.js => column_link.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{column_loading.js => column_loading.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{column_subheading.js => column_subheading.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{columns_area.js => columns_area.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{compare_history_modal.js => compare_history_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{compose_panel.js => compose_panel.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{confirmation_modal.js => confirmation_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{deprecated_settings_modal.js => deprecated_settings_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{disabled_account_banner.js => disabled_account_banner.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{doodle_modal.js => doodle_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{drawer_loading.js => drawer_loading.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{embed_modal.js => embed_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{favourite_modal.js => favourite_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{filter_modal.js => filter_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{focal_point_modal.js => focal_point_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{follow_requests_column_link.js => follow_requests_column_link.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{header.js => header.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{image_loader.js => image_loader.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{image_modal.js => image_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{link_footer.js => link_footer.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{list_panel.js => list_panel.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{media_modal.js => media_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{modal_loading.js => modal_loading.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{modal_root.js => modal_root.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{mute_modal.js => mute_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{navigation_panel.js => navigation_panel.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{onboarding_modal.js => onboarding_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{report_modal.js => report_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{sign_in_banner.js => sign_in_banner.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{upload_area.js => upload_area.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{video_modal.js => video_modal.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/components/{zoomable_image.js => zoomable_image.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/util/{react_router_helpers.js => react_router_helpers.jsx} (100%) rename app/javascript/flavours/glitch/features/ui/util/{reduced_motion.js => reduced_motion.jsx} (100%) rename app/javascript/flavours/glitch/features/video/{index.js => index.jsx} (100%) rename app/javascript/flavours/glitch/{main.js => main.jsx} (100%) rename app/javascript/flavours/glitch/packs/{admin.js => admin.jsx} (100%) rename app/javascript/flavours/glitch/packs/{public.js => public.jsx} (100%) rename app/javascript/flavours/glitch/packs/{share.js => share.jsx} (100%) rename app/javascript/flavours/glitch/utils/{icons.js => icons.jsx} (100%) diff --git a/app/javascript/flavours/glitch/components/account.js b/app/javascript/flavours/glitch/components/account.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/account.js rename to app/javascript/flavours/glitch/components/account.jsx diff --git a/app/javascript/flavours/glitch/components/admin/Counter.js b/app/javascript/flavours/glitch/components/admin/Counter.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/admin/Counter.js rename to app/javascript/flavours/glitch/components/admin/Counter.jsx diff --git a/app/javascript/flavours/glitch/components/admin/Dimension.js b/app/javascript/flavours/glitch/components/admin/Dimension.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/admin/Dimension.js rename to app/javascript/flavours/glitch/components/admin/Dimension.jsx diff --git a/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.js b/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/admin/ReportReasonSelector.js rename to app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx diff --git a/app/javascript/flavours/glitch/components/admin/Retention.js b/app/javascript/flavours/glitch/components/admin/Retention.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/admin/Retention.js rename to app/javascript/flavours/glitch/components/admin/Retention.jsx diff --git a/app/javascript/flavours/glitch/components/admin/Trends.js b/app/javascript/flavours/glitch/components/admin/Trends.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/admin/Trends.js rename to app/javascript/flavours/glitch/components/admin/Trends.jsx diff --git a/app/javascript/flavours/glitch/components/animated_number.js b/app/javascript/flavours/glitch/components/animated_number.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/animated_number.js rename to app/javascript/flavours/glitch/components/animated_number.jsx diff --git a/app/javascript/flavours/glitch/components/attachment_list.js b/app/javascript/flavours/glitch/components/attachment_list.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/attachment_list.js rename to app/javascript/flavours/glitch/components/attachment_list.jsx diff --git a/app/javascript/flavours/glitch/components/autosuggest_emoji.js b/app/javascript/flavours/glitch/components/autosuggest_emoji.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/autosuggest_emoji.js rename to app/javascript/flavours/glitch/components/autosuggest_emoji.jsx diff --git a/app/javascript/flavours/glitch/components/autosuggest_hashtag.js b/app/javascript/flavours/glitch/components/autosuggest_hashtag.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/autosuggest_hashtag.js rename to app/javascript/flavours/glitch/components/autosuggest_hashtag.jsx diff --git a/app/javascript/flavours/glitch/components/autosuggest_input.js b/app/javascript/flavours/glitch/components/autosuggest_input.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/autosuggest_input.js rename to app/javascript/flavours/glitch/components/autosuggest_input.jsx diff --git a/app/javascript/flavours/glitch/components/autosuggest_textarea.js b/app/javascript/flavours/glitch/components/autosuggest_textarea.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/autosuggest_textarea.js rename to app/javascript/flavours/glitch/components/autosuggest_textarea.jsx diff --git a/app/javascript/flavours/glitch/components/avatar.js b/app/javascript/flavours/glitch/components/avatar.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/avatar.js rename to app/javascript/flavours/glitch/components/avatar.jsx diff --git a/app/javascript/flavours/glitch/components/avatar_composite.js b/app/javascript/flavours/glitch/components/avatar_composite.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/avatar_composite.js rename to app/javascript/flavours/glitch/components/avatar_composite.jsx diff --git a/app/javascript/flavours/glitch/components/avatar_overlay.js b/app/javascript/flavours/glitch/components/avatar_overlay.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/avatar_overlay.js rename to app/javascript/flavours/glitch/components/avatar_overlay.jsx diff --git a/app/javascript/flavours/glitch/components/blurhash.js b/app/javascript/flavours/glitch/components/blurhash.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/blurhash.js rename to app/javascript/flavours/glitch/components/blurhash.jsx diff --git a/app/javascript/flavours/glitch/components/button.js b/app/javascript/flavours/glitch/components/button.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/button.js rename to app/javascript/flavours/glitch/components/button.jsx diff --git a/app/javascript/flavours/glitch/components/check.js b/app/javascript/flavours/glitch/components/check.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/check.js rename to app/javascript/flavours/glitch/components/check.jsx diff --git a/app/javascript/flavours/glitch/components/column.js b/app/javascript/flavours/glitch/components/column.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/column.js rename to app/javascript/flavours/glitch/components/column.jsx diff --git a/app/javascript/flavours/glitch/components/column_back_button.js b/app/javascript/flavours/glitch/components/column_back_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/column_back_button.js rename to app/javascript/flavours/glitch/components/column_back_button.jsx diff --git a/app/javascript/flavours/glitch/components/column_back_button_slim.js b/app/javascript/flavours/glitch/components/column_back_button_slim.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/column_back_button_slim.js rename to app/javascript/flavours/glitch/components/column_back_button_slim.jsx diff --git a/app/javascript/flavours/glitch/components/column_header.js b/app/javascript/flavours/glitch/components/column_header.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/column_header.js rename to app/javascript/flavours/glitch/components/column_header.jsx diff --git a/app/javascript/flavours/glitch/components/common_counter.js b/app/javascript/flavours/glitch/components/common_counter.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/common_counter.js rename to app/javascript/flavours/glitch/components/common_counter.jsx diff --git a/app/javascript/flavours/glitch/components/dismissable_banner.js b/app/javascript/flavours/glitch/components/dismissable_banner.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/dismissable_banner.js rename to app/javascript/flavours/glitch/components/dismissable_banner.jsx diff --git a/app/javascript/flavours/glitch/components/display_name.js b/app/javascript/flavours/glitch/components/display_name.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/display_name.js rename to app/javascript/flavours/glitch/components/display_name.jsx diff --git a/app/javascript/flavours/glitch/components/domain.js b/app/javascript/flavours/glitch/components/domain.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/domain.js rename to app/javascript/flavours/glitch/components/domain.jsx diff --git a/app/javascript/flavours/glitch/components/dropdown_menu.js b/app/javascript/flavours/glitch/components/dropdown_menu.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/dropdown_menu.js rename to app/javascript/flavours/glitch/components/dropdown_menu.jsx diff --git a/app/javascript/flavours/glitch/components/edited_timestamp/index.js b/app/javascript/flavours/glitch/components/edited_timestamp/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/edited_timestamp/index.js rename to app/javascript/flavours/glitch/components/edited_timestamp/index.jsx diff --git a/app/javascript/flavours/glitch/components/error_boundary.js b/app/javascript/flavours/glitch/components/error_boundary.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/error_boundary.js rename to app/javascript/flavours/glitch/components/error_boundary.jsx diff --git a/app/javascript/flavours/glitch/components/gifv.js b/app/javascript/flavours/glitch/components/gifv.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/gifv.js rename to app/javascript/flavours/glitch/components/gifv.jsx diff --git a/app/javascript/flavours/glitch/components/hashtag.js b/app/javascript/flavours/glitch/components/hashtag.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/hashtag.js rename to app/javascript/flavours/glitch/components/hashtag.jsx diff --git a/app/javascript/flavours/glitch/components/icon.js b/app/javascript/flavours/glitch/components/icon.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/icon.js rename to app/javascript/flavours/glitch/components/icon.jsx diff --git a/app/javascript/flavours/glitch/components/icon_button.js b/app/javascript/flavours/glitch/components/icon_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/icon_button.js rename to app/javascript/flavours/glitch/components/icon_button.jsx diff --git a/app/javascript/flavours/glitch/components/icon_with_badge.js b/app/javascript/flavours/glitch/components/icon_with_badge.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/icon_with_badge.js rename to app/javascript/flavours/glitch/components/icon_with_badge.jsx diff --git a/app/javascript/flavours/glitch/components/image.js b/app/javascript/flavours/glitch/components/image.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/image.js rename to app/javascript/flavours/glitch/components/image.jsx diff --git a/app/javascript/flavours/glitch/components/inline_account.js b/app/javascript/flavours/glitch/components/inline_account.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/inline_account.js rename to app/javascript/flavours/glitch/components/inline_account.jsx diff --git a/app/javascript/flavours/glitch/components/intersection_observer_article.js b/app/javascript/flavours/glitch/components/intersection_observer_article.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/intersection_observer_article.js rename to app/javascript/flavours/glitch/components/intersection_observer_article.jsx diff --git a/app/javascript/flavours/glitch/components/link.js b/app/javascript/flavours/glitch/components/link.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/link.js rename to app/javascript/flavours/glitch/components/link.jsx diff --git a/app/javascript/flavours/glitch/components/load_gap.js b/app/javascript/flavours/glitch/components/load_gap.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/load_gap.js rename to app/javascript/flavours/glitch/components/load_gap.jsx diff --git a/app/javascript/flavours/glitch/components/load_more.js b/app/javascript/flavours/glitch/components/load_more.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/load_more.js rename to app/javascript/flavours/glitch/components/load_more.jsx diff --git a/app/javascript/flavours/glitch/components/load_pending.js b/app/javascript/flavours/glitch/components/load_pending.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/load_pending.js rename to app/javascript/flavours/glitch/components/load_pending.jsx diff --git a/app/javascript/flavours/glitch/components/loading_indicator.js b/app/javascript/flavours/glitch/components/loading_indicator.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/loading_indicator.js rename to app/javascript/flavours/glitch/components/loading_indicator.jsx diff --git a/app/javascript/flavours/glitch/components/logo.js b/app/javascript/flavours/glitch/components/logo.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/logo.js rename to app/javascript/flavours/glitch/components/logo.jsx diff --git a/app/javascript/flavours/glitch/components/media_attachments.js b/app/javascript/flavours/glitch/components/media_attachments.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/media_attachments.js rename to app/javascript/flavours/glitch/components/media_attachments.jsx diff --git a/app/javascript/flavours/glitch/components/media_gallery.js b/app/javascript/flavours/glitch/components/media_gallery.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/media_gallery.js rename to app/javascript/flavours/glitch/components/media_gallery.jsx diff --git a/app/javascript/flavours/glitch/components/missing_indicator.js b/app/javascript/flavours/glitch/components/missing_indicator.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/missing_indicator.js rename to app/javascript/flavours/glitch/components/missing_indicator.jsx diff --git a/app/javascript/flavours/glitch/components/modal_root.js b/app/javascript/flavours/glitch/components/modal_root.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/modal_root.js rename to app/javascript/flavours/glitch/components/modal_root.jsx diff --git a/app/javascript/flavours/glitch/components/navigation_portal.js b/app/javascript/flavours/glitch/components/navigation_portal.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/navigation_portal.js rename to app/javascript/flavours/glitch/components/navigation_portal.jsx diff --git a/app/javascript/flavours/glitch/components/not_signed_in_indicator.js b/app/javascript/flavours/glitch/components/not_signed_in_indicator.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/not_signed_in_indicator.js rename to app/javascript/flavours/glitch/components/not_signed_in_indicator.jsx diff --git a/app/javascript/flavours/glitch/components/notification_purge_buttons.js b/app/javascript/flavours/glitch/components/notification_purge_buttons.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/notification_purge_buttons.js rename to app/javascript/flavours/glitch/components/notification_purge_buttons.jsx diff --git a/app/javascript/flavours/glitch/components/permalink.js b/app/javascript/flavours/glitch/components/permalink.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/permalink.js rename to app/javascript/flavours/glitch/components/permalink.jsx diff --git a/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js b/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/picture_in_picture_placeholder.js rename to app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx diff --git a/app/javascript/flavours/glitch/components/poll.js b/app/javascript/flavours/glitch/components/poll.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/poll.js rename to app/javascript/flavours/glitch/components/poll.jsx diff --git a/app/javascript/flavours/glitch/components/radio_button.js b/app/javascript/flavours/glitch/components/radio_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/radio_button.js rename to app/javascript/flavours/glitch/components/radio_button.jsx diff --git a/app/javascript/flavours/glitch/components/regeneration_indicator.js b/app/javascript/flavours/glitch/components/regeneration_indicator.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/regeneration_indicator.js rename to app/javascript/flavours/glitch/components/regeneration_indicator.jsx diff --git a/app/javascript/flavours/glitch/components/relative_timestamp.js b/app/javascript/flavours/glitch/components/relative_timestamp.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/relative_timestamp.js rename to app/javascript/flavours/glitch/components/relative_timestamp.jsx diff --git a/app/javascript/flavours/glitch/components/scrollable_list.js b/app/javascript/flavours/glitch/components/scrollable_list.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/scrollable_list.js rename to app/javascript/flavours/glitch/components/scrollable_list.jsx diff --git a/app/javascript/flavours/glitch/components/server_banner.js b/app/javascript/flavours/glitch/components/server_banner.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/server_banner.js rename to app/javascript/flavours/glitch/components/server_banner.jsx diff --git a/app/javascript/flavours/glitch/components/setting_text.js b/app/javascript/flavours/glitch/components/setting_text.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/setting_text.js rename to app/javascript/flavours/glitch/components/setting_text.jsx diff --git a/app/javascript/flavours/glitch/components/short_number.js b/app/javascript/flavours/glitch/components/short_number.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/short_number.js rename to app/javascript/flavours/glitch/components/short_number.jsx diff --git a/app/javascript/flavours/glitch/components/skeleton.js b/app/javascript/flavours/glitch/components/skeleton.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/skeleton.js rename to app/javascript/flavours/glitch/components/skeleton.jsx diff --git a/app/javascript/flavours/glitch/components/spoilers.js b/app/javascript/flavours/glitch/components/spoilers.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/spoilers.js rename to app/javascript/flavours/glitch/components/spoilers.jsx diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status.js rename to app/javascript/flavours/glitch/components/status.jsx diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_action_bar.js rename to app/javascript/flavours/glitch/components/status_action_bar.jsx diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_content.js rename to app/javascript/flavours/glitch/components/status_content.jsx diff --git a/app/javascript/flavours/glitch/components/status_header.js b/app/javascript/flavours/glitch/components/status_header.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_header.js rename to app/javascript/flavours/glitch/components/status_header.jsx diff --git a/app/javascript/flavours/glitch/components/status_icons.js b/app/javascript/flavours/glitch/components/status_icons.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_icons.js rename to app/javascript/flavours/glitch/components/status_icons.jsx diff --git a/app/javascript/flavours/glitch/components/status_list.js b/app/javascript/flavours/glitch/components/status_list.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_list.js rename to app/javascript/flavours/glitch/components/status_list.jsx diff --git a/app/javascript/flavours/glitch/components/status_prepend.js b/app/javascript/flavours/glitch/components/status_prepend.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_prepend.js rename to app/javascript/flavours/glitch/components/status_prepend.jsx diff --git a/app/javascript/flavours/glitch/components/status_visibility_icon.js b/app/javascript/flavours/glitch/components/status_visibility_icon.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/status_visibility_icon.js rename to app/javascript/flavours/glitch/components/status_visibility_icon.jsx diff --git a/app/javascript/flavours/glitch/components/timeline_hint.js b/app/javascript/flavours/glitch/components/timeline_hint.jsx similarity index 100% rename from app/javascript/flavours/glitch/components/timeline_hint.js rename to app/javascript/flavours/glitch/components/timeline_hint.jsx diff --git a/app/javascript/flavours/glitch/containers/account_container.js b/app/javascript/flavours/glitch/containers/account_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/account_container.js rename to app/javascript/flavours/glitch/containers/account_container.jsx diff --git a/app/javascript/flavours/glitch/containers/admin_component.js b/app/javascript/flavours/glitch/containers/admin_component.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/admin_component.js rename to app/javascript/flavours/glitch/containers/admin_component.jsx diff --git a/app/javascript/flavours/glitch/containers/compose_container.js b/app/javascript/flavours/glitch/containers/compose_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/compose_container.js rename to app/javascript/flavours/glitch/containers/compose_container.jsx diff --git a/app/javascript/flavours/glitch/containers/domain_container.js b/app/javascript/flavours/glitch/containers/domain_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/domain_container.js rename to app/javascript/flavours/glitch/containers/domain_container.jsx diff --git a/app/javascript/flavours/glitch/containers/mastodon.js b/app/javascript/flavours/glitch/containers/mastodon.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/mastodon.js rename to app/javascript/flavours/glitch/containers/mastodon.jsx diff --git a/app/javascript/flavours/glitch/containers/media_container.js b/app/javascript/flavours/glitch/containers/media_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/containers/media_container.js rename to app/javascript/flavours/glitch/containers/media_container.jsx diff --git a/app/javascript/flavours/glitch/features/about/index.js b/app/javascript/flavours/glitch/features/about/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/about/index.js rename to app/javascript/flavours/glitch/features/about/index.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/account_note.js b/app/javascript/flavours/glitch/features/account/components/account_note.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/account_note.js rename to app/javascript/flavours/glitch/features/account/components/account_note.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/action_bar.js b/app/javascript/flavours/glitch/features/account/components/action_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/action_bar.js rename to app/javascript/flavours/glitch/features/account/components/action_bar.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/featured_tags.js b/app/javascript/flavours/glitch/features/account/components/featured_tags.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/featured_tags.js rename to app/javascript/flavours/glitch/features/account/components/featured_tags.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/follow_request_note.js b/app/javascript/flavours/glitch/features/account/components/follow_request_note.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/follow_request_note.js rename to app/javascript/flavours/glitch/features/account/components/follow_request_note.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/header.js rename to app/javascript/flavours/glitch/features/account/components/header.jsx diff --git a/app/javascript/flavours/glitch/features/account/components/profile_column_header.js b/app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/components/profile_column_header.js rename to app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx diff --git a/app/javascript/flavours/glitch/features/account/navigation.js b/app/javascript/flavours/glitch/features/account/navigation.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account/navigation.js rename to app/javascript/flavours/glitch/features/account/navigation.jsx diff --git a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_gallery/components/media_item.js rename to app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx diff --git a/app/javascript/flavours/glitch/features/account_gallery/index.js b/app/javascript/flavours/glitch/features/account_gallery/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_gallery/index.js rename to app/javascript/flavours/glitch/features/account_gallery/index.jsx diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/header.js b/app/javascript/flavours/glitch/features/account_timeline/components/header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_timeline/components/header.js rename to app/javascript/flavours/glitch/features/account_timeline/components/header.jsx diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js b/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.js rename to app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js b/app/javascript/flavours/glitch/features/account_timeline/components/moved_note.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js rename to app/javascript/flavours/glitch/features/account_timeline/components/moved_note.jsx diff --git a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js rename to app/javascript/flavours/glitch/features/account_timeline/containers/header_container.jsx diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.js b/app/javascript/flavours/glitch/features/account_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/account_timeline/index.js rename to app/javascript/flavours/glitch/features/account_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/audio/index.js b/app/javascript/flavours/glitch/features/audio/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/audio/index.js rename to app/javascript/flavours/glitch/features/audio/index.jsx diff --git a/app/javascript/flavours/glitch/features/blocks/index.js b/app/javascript/flavours/glitch/features/blocks/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/blocks/index.js rename to app/javascript/flavours/glitch/features/blocks/index.jsx diff --git a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/bookmarked_statuses/index.js rename to app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx diff --git a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/closed_registrations_modal/index.js rename to app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx diff --git a/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/community_timeline/components/column_settings.js rename to app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/community_timeline/index.js b/app/javascript/flavours/glitch/features/community_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/community_timeline/index.js rename to app/javascript/flavours/glitch/features/community_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.js b/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/action_bar.js rename to app/javascript/flavours/glitch/features/compose/components/action_bar.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/autosuggest_account.js b/app/javascript/flavours/glitch/features/compose/components/autosuggest_account.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/autosuggest_account.js rename to app/javascript/flavours/glitch/features/compose/components/autosuggest_account.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/character_counter.js b/app/javascript/flavours/glitch/features/compose/components/character_counter.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/character_counter.js rename to app/javascript/flavours/glitch/features/compose/components/character_counter.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/compose_form.js b/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/compose_form.js rename to app/javascript/flavours/glitch/features/compose/components/compose_form.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown.js b/app/javascript/flavours/glitch/features/compose/components/dropdown.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/dropdown.js rename to app/javascript/flavours/glitch/features/compose/components/dropdown.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js b/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js rename to app/javascript/flavours/glitch/features/compose/components/dropdown_menu.jsx 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.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.js rename to app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/header.js b/app/javascript/flavours/glitch/features/compose/components/header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/header.js rename to app/javascript/flavours/glitch/features/compose/components/header.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/language_dropdown.js rename to app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/navigation_bar.js rename to app/javascript/flavours/glitch/features/compose/components/navigation_bar.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/options.js b/app/javascript/flavours/glitch/features/compose/components/options.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/options.js rename to app/javascript/flavours/glitch/features/compose/components/options.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/poll_form.js b/app/javascript/flavours/glitch/features/compose/components/poll_form.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/poll_form.js rename to app/javascript/flavours/glitch/features/compose/components/poll_form.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js b/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js rename to app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/publisher.js b/app/javascript/flavours/glitch/features/compose/components/publisher.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/publisher.js rename to app/javascript/flavours/glitch/features/compose/components/publisher.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/reply_indicator.js b/app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/reply_indicator.js rename to app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/search.js b/app/javascript/flavours/glitch/features/compose/components/search.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/search.js rename to app/javascript/flavours/glitch/features/compose/components/search.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/search_results.js b/app/javascript/flavours/glitch/features/compose/components/search_results.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/search_results.js rename to app/javascript/flavours/glitch/features/compose/components/search_results.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/text_icon_button.js b/app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/text_icon_button.js rename to app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/textarea_icons.js b/app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/textarea_icons.js rename to app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/upload.js b/app/javascript/flavours/glitch/features/compose/components/upload.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/upload.js rename to app/javascript/flavours/glitch/features/compose/components/upload.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_form.js b/app/javascript/flavours/glitch/features/compose/components/upload_form.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/upload_form.js rename to app/javascript/flavours/glitch/features/compose/components/upload_form.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_progress.js b/app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/upload_progress.js rename to app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx diff --git a/app/javascript/flavours/glitch/features/compose/components/warning.js b/app/javascript/flavours/glitch/features/compose/components/warning.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/components/warning.js rename to app/javascript/flavours/glitch/features/compose/components/warning.jsx diff --git a/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.js b/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.js rename to app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx diff --git a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js b/app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/containers/warning_container.js rename to app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx diff --git a/app/javascript/flavours/glitch/features/compose/index.js b/app/javascript/flavours/glitch/features/compose/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/compose/index.js rename to app/javascript/flavours/glitch/features/compose/index.jsx diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js rename to app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/direct_timeline/components/conversation.js rename to app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js b/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.js rename to app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx diff --git a/app/javascript/flavours/glitch/features/direct_timeline/index.js b/app/javascript/flavours/glitch/features/direct_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/direct_timeline/index.js rename to app/javascript/flavours/glitch/features/direct_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.js b/app/javascript/flavours/glitch/features/directory/components/account_card.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/directory/components/account_card.js rename to app/javascript/flavours/glitch/features/directory/components/account_card.jsx diff --git a/app/javascript/flavours/glitch/features/directory/index.js b/app/javascript/flavours/glitch/features/directory/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/directory/index.js rename to app/javascript/flavours/glitch/features/directory/index.jsx diff --git a/app/javascript/flavours/glitch/features/domain_blocks/index.js b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/domain_blocks/index.js rename to app/javascript/flavours/glitch/features/domain_blocks/index.jsx diff --git a/app/javascript/flavours/glitch/features/explore/components/story.js b/app/javascript/flavours/glitch/features/explore/components/story.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/components/story.js rename to app/javascript/flavours/glitch/features/explore/components/story.jsx diff --git a/app/javascript/flavours/glitch/features/explore/index.js b/app/javascript/flavours/glitch/features/explore/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/index.js rename to app/javascript/flavours/glitch/features/explore/index.jsx diff --git a/app/javascript/flavours/glitch/features/explore/links.js b/app/javascript/flavours/glitch/features/explore/links.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/links.js rename to app/javascript/flavours/glitch/features/explore/links.jsx diff --git a/app/javascript/flavours/glitch/features/explore/results.js b/app/javascript/flavours/glitch/features/explore/results.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/results.js rename to app/javascript/flavours/glitch/features/explore/results.jsx diff --git a/app/javascript/flavours/glitch/features/explore/statuses.js b/app/javascript/flavours/glitch/features/explore/statuses.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/statuses.js rename to app/javascript/flavours/glitch/features/explore/statuses.jsx diff --git a/app/javascript/flavours/glitch/features/explore/suggestions.js b/app/javascript/flavours/glitch/features/explore/suggestions.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/suggestions.js rename to app/javascript/flavours/glitch/features/explore/suggestions.jsx diff --git a/app/javascript/flavours/glitch/features/explore/tags.js b/app/javascript/flavours/glitch/features/explore/tags.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/explore/tags.js rename to app/javascript/flavours/glitch/features/explore/tags.jsx diff --git a/app/javascript/flavours/glitch/features/favourited_statuses/index.js b/app/javascript/flavours/glitch/features/favourited_statuses/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/favourited_statuses/index.js rename to app/javascript/flavours/glitch/features/favourited_statuses/index.jsx diff --git a/app/javascript/flavours/glitch/features/favourites/index.js b/app/javascript/flavours/glitch/features/favourites/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/favourites/index.js rename to app/javascript/flavours/glitch/features/favourites/index.jsx diff --git a/app/javascript/flavours/glitch/features/filters/added_to_filter.js b/app/javascript/flavours/glitch/features/filters/added_to_filter.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/filters/added_to_filter.js rename to app/javascript/flavours/glitch/features/filters/added_to_filter.jsx diff --git a/app/javascript/flavours/glitch/features/filters/select_filter.js b/app/javascript/flavours/glitch/features/filters/select_filter.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/filters/select_filter.js rename to app/javascript/flavours/glitch/features/filters/select_filter.jsx diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.js b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/follow_recommendations/components/account.js rename to app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/index.js b/app/javascript/flavours/glitch/features/follow_recommendations/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/follow_recommendations/index.js rename to app/javascript/flavours/glitch/features/follow_recommendations/index.jsx diff --git a/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.js b/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.js rename to app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx diff --git a/app/javascript/flavours/glitch/features/follow_requests/index.js b/app/javascript/flavours/glitch/features/follow_requests/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/follow_requests/index.js rename to app/javascript/flavours/glitch/features/follow_requests/index.jsx diff --git a/app/javascript/flavours/glitch/features/followed_tags/index.js b/app/javascript/flavours/glitch/features/followed_tags/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/followed_tags/index.js rename to app/javascript/flavours/glitch/features/followed_tags/index.jsx diff --git a/app/javascript/flavours/glitch/features/followers/index.js b/app/javascript/flavours/glitch/features/followers/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/followers/index.js rename to app/javascript/flavours/glitch/features/followers/index.jsx diff --git a/app/javascript/flavours/glitch/features/following/index.js b/app/javascript/flavours/glitch/features/following/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/following/index.js rename to app/javascript/flavours/glitch/features/following/index.jsx diff --git a/app/javascript/flavours/glitch/features/generic_not_found/index.js b/app/javascript/flavours/glitch/features/generic_not_found/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/generic_not_found/index.js rename to app/javascript/flavours/glitch/features/generic_not_found/index.jsx diff --git a/app/javascript/flavours/glitch/features/getting_started/components/announcements.js b/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/getting_started/components/announcements.js rename to app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx diff --git a/app/javascript/flavours/glitch/features/getting_started/components/trends.js b/app/javascript/flavours/glitch/features/getting_started/components/trends.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/getting_started/components/trends.js rename to app/javascript/flavours/glitch/features/getting_started/components/trends.jsx diff --git a/app/javascript/flavours/glitch/features/getting_started/index.js b/app/javascript/flavours/glitch/features/getting_started/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/getting_started/index.js rename to app/javascript/flavours/glitch/features/getting_started/index.jsx diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.js b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/getting_started_misc/index.js rename to app/javascript/flavours/glitch/features/getting_started_misc/index.jsx diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.js rename to app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.js b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/hashtag_timeline/index.js rename to app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/home_timeline/components/column_settings.js rename to app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/home_timeline/index.js b/app/javascript/flavours/glitch/features/home_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/home_timeline/index.js rename to app/javascript/flavours/glitch/features/home_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.js b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/interaction_modal/index.js rename to app/javascript/flavours/glitch/features/interaction_modal/index.jsx diff --git a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js rename to app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx diff --git a/app/javascript/flavours/glitch/features/list_adder/components/account.js b/app/javascript/flavours/glitch/features/list_adder/components/account.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_adder/components/account.js rename to app/javascript/flavours/glitch/features/list_adder/components/account.jsx diff --git a/app/javascript/flavours/glitch/features/list_adder/components/list.js b/app/javascript/flavours/glitch/features/list_adder/components/list.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_adder/components/list.js rename to app/javascript/flavours/glitch/features/list_adder/components/list.jsx diff --git a/app/javascript/flavours/glitch/features/list_adder/index.js b/app/javascript/flavours/glitch/features/list_adder/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_adder/index.js rename to app/javascript/flavours/glitch/features/list_adder/index.jsx diff --git a/app/javascript/flavours/glitch/features/list_editor/components/account.js b/app/javascript/flavours/glitch/features/list_editor/components/account.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_editor/components/account.js rename to app/javascript/flavours/glitch/features/list_editor/components/account.jsx diff --git a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.js rename to app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx diff --git a/app/javascript/flavours/glitch/features/list_editor/components/search.js b/app/javascript/flavours/glitch/features/list_editor/components/search.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_editor/components/search.js rename to app/javascript/flavours/glitch/features/list_editor/components/search.jsx diff --git a/app/javascript/flavours/glitch/features/list_editor/index.js b/app/javascript/flavours/glitch/features/list_editor/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_editor/index.js rename to app/javascript/flavours/glitch/features/list_editor/index.jsx diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.js b/app/javascript/flavours/glitch/features/list_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/list_timeline/index.js rename to app/javascript/flavours/glitch/features/list_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/lists/components/new_list_form.js b/app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/lists/components/new_list_form.js rename to app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx diff --git a/app/javascript/flavours/glitch/features/lists/index.js b/app/javascript/flavours/glitch/features/lists/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/lists/index.js rename to app/javascript/flavours/glitch/features/lists/index.jsx diff --git a/app/javascript/flavours/glitch/features/local_settings/index.js b/app/javascript/flavours/glitch/features/local_settings/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/index.js rename to app/javascript/flavours/glitch/features/local_settings/index.jsx diff --git a/app/javascript/flavours/glitch/features/local_settings/navigation/index.js b/app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/navigation/index.js rename to app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx diff --git a/app/javascript/flavours/glitch/features/local_settings/navigation/item/index.js b/app/javascript/flavours/glitch/features/local_settings/navigation/item/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/navigation/item/index.js rename to app/javascript/flavours/glitch/features/local_settings/navigation/item/index.jsx diff --git a/app/javascript/flavours/glitch/features/local_settings/page/deprecated_item/index.js b/app/javascript/flavours/glitch/features/local_settings/page/deprecated_item/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/page/deprecated_item/index.js rename to app/javascript/flavours/glitch/features/local_settings/page/deprecated_item/index.jsx diff --git a/app/javascript/flavours/glitch/features/local_settings/page/index.js b/app/javascript/flavours/glitch/features/local_settings/page/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/page/index.js rename to app/javascript/flavours/glitch/features/local_settings/page/index.jsx 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.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/local_settings/page/item/index.js rename to app/javascript/flavours/glitch/features/local_settings/page/item/index.jsx diff --git a/app/javascript/flavours/glitch/features/mutes/index.js b/app/javascript/flavours/glitch/features/mutes/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/mutes/index.js rename to app/javascript/flavours/glitch/features/mutes/index.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/admin_report.js b/app/javascript/flavours/glitch/features/notifications/components/admin_report.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/admin_report.js rename to app/javascript/flavours/glitch/features/notifications/components/admin_report.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/admin_signup.js b/app/javascript/flavours/glitch/features/notifications/components/admin_signup.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/admin_signup.js rename to app/javascript/flavours/glitch/features/notifications/components/admin_signup.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.js b/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/clear_column_button.js rename to app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js b/app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/column_settings.js rename to app/javascript/flavours/glitch/features/notifications/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.js b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/filter_bar.js rename to app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/follow.js b/app/javascript/flavours/glitch/features/notifications/components/follow.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/follow.js rename to app/javascript/flavours/glitch/features/notifications/components/follow.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/follow_request.js b/app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/follow_request.js rename to app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/grant_permission_button.js b/app/javascript/flavours/glitch/features/notifications/components/grant_permission_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/grant_permission_button.js rename to app/javascript/flavours/glitch/features/notifications/components/grant_permission_button.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/notification.js b/app/javascript/flavours/glitch/features/notifications/components/notification.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/notification.js rename to app/javascript/flavours/glitch/features/notifications/components/notification.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.js rename to app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/overlay.js b/app/javascript/flavours/glitch/features/notifications/components/overlay.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/overlay.js rename to app/javascript/flavours/glitch/features/notifications/components/overlay.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js b/app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.js rename to app/javascript/flavours/glitch/features/notifications/components/pill_bar_button.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/report.js b/app/javascript/flavours/glitch/features/notifications/components/report.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/report.js rename to app/javascript/flavours/glitch/features/notifications/components/report.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js b/app/javascript/flavours/glitch/features/notifications/components/setting_toggle.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/components/setting_toggle.js rename to app/javascript/flavours/glitch/features/notifications/components/setting_toggle.jsx diff --git a/app/javascript/flavours/glitch/features/notifications/index.js b/app/javascript/flavours/glitch/features/notifications/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/notifications/index.js rename to app/javascript/flavours/glitch/features/notifications/index.jsx diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/picture_in_picture/components/footer.js rename to app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.js b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/picture_in_picture/components/header.js rename to app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/index.js b/app/javascript/flavours/glitch/features/picture_in_picture/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/picture_in_picture/index.js rename to app/javascript/flavours/glitch/features/picture_in_picture/index.jsx diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.js b/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/pinned_accounts_editor/index.js rename to app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx diff --git a/app/javascript/flavours/glitch/features/pinned_statuses/index.js b/app/javascript/flavours/glitch/features/pinned_statuses/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/pinned_statuses/index.js rename to app/javascript/flavours/glitch/features/pinned_statuses/index.jsx diff --git a/app/javascript/flavours/glitch/features/privacy_policy/index.js b/app/javascript/flavours/glitch/features/privacy_policy/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/privacy_policy/index.js rename to app/javascript/flavours/glitch/features/privacy_policy/index.jsx diff --git a/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/public_timeline/components/column_settings.js rename to app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx diff --git a/app/javascript/flavours/glitch/features/public_timeline/index.js b/app/javascript/flavours/glitch/features/public_timeline/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/public_timeline/index.js rename to app/javascript/flavours/glitch/features/public_timeline/index.jsx diff --git a/app/javascript/flavours/glitch/features/reblogs/index.js b/app/javascript/flavours/glitch/features/reblogs/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/reblogs/index.js rename to app/javascript/flavours/glitch/features/reblogs/index.jsx diff --git a/app/javascript/flavours/glitch/features/report/category.js b/app/javascript/flavours/glitch/features/report/category.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/category.js rename to app/javascript/flavours/glitch/features/report/category.jsx diff --git a/app/javascript/flavours/glitch/features/report/comment.js b/app/javascript/flavours/glitch/features/report/comment.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/comment.js rename to app/javascript/flavours/glitch/features/report/comment.jsx diff --git a/app/javascript/flavours/glitch/features/report/components/option.js b/app/javascript/flavours/glitch/features/report/components/option.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/components/option.js rename to app/javascript/flavours/glitch/features/report/components/option.jsx diff --git a/app/javascript/flavours/glitch/features/report/components/status_check_box.js b/app/javascript/flavours/glitch/features/report/components/status_check_box.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/components/status_check_box.js rename to app/javascript/flavours/glitch/features/report/components/status_check_box.jsx diff --git a/app/javascript/flavours/glitch/features/report/rules.js b/app/javascript/flavours/glitch/features/report/rules.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/rules.js rename to app/javascript/flavours/glitch/features/report/rules.jsx diff --git a/app/javascript/flavours/glitch/features/report/statuses.js b/app/javascript/flavours/glitch/features/report/statuses.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/statuses.js rename to app/javascript/flavours/glitch/features/report/statuses.jsx diff --git a/app/javascript/flavours/glitch/features/report/thanks.js b/app/javascript/flavours/glitch/features/report/thanks.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/report/thanks.js rename to app/javascript/flavours/glitch/features/report/thanks.jsx diff --git a/app/javascript/flavours/glitch/features/standalone/compose/index.js b/app/javascript/flavours/glitch/features/standalone/compose/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/standalone/compose/index.js rename to app/javascript/flavours/glitch/features/standalone/compose/index.jsx diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/status/components/action_bar.js rename to app/javascript/flavours/glitch/features/status/components/action_bar.jsx diff --git a/app/javascript/flavours/glitch/features/status/components/card.js b/app/javascript/flavours/glitch/features/status/components/card.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/status/components/card.js rename to app/javascript/flavours/glitch/features/status/components/card.jsx diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.js b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/status/components/detailed_status.js rename to app/javascript/flavours/glitch/features/status/components/detailed_status.jsx diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/status/index.js rename to app/javascript/flavours/glitch/features/status/index.jsx diff --git a/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js b/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/subscribed_languages_modal/index.js rename to app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/actions_modal.js b/app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/actions_modal.js rename to app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/audio_modal.js b/app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/audio_modal.js rename to app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/block_modal.js b/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/block_modal.js rename to app/javascript/flavours/glitch/features/ui/components/block_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/boost_modal.js b/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/boost_modal.js rename to app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle.js b/app/javascript/flavours/glitch/features/ui/components/bundle.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/bundle.js rename to app/javascript/flavours/glitch/features/ui/components/bundle.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js rename to app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js b/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.js rename to app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/column.js b/app/javascript/flavours/glitch/features/ui/components/column.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/column.js rename to app/javascript/flavours/glitch/features/ui/components/column.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/column_header.js b/app/javascript/flavours/glitch/features/ui/components/column_header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/column_header.js rename to app/javascript/flavours/glitch/features/ui/components/column_header.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/column_link.js b/app/javascript/flavours/glitch/features/ui/components/column_link.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/column_link.js rename to app/javascript/flavours/glitch/features/ui/components/column_link.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/column_loading.js b/app/javascript/flavours/glitch/features/ui/components/column_loading.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/column_loading.js rename to app/javascript/flavours/glitch/features/ui/components/column_loading.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/column_subheading.js b/app/javascript/flavours/glitch/features/ui/components/column_subheading.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/column_subheading.js rename to app/javascript/flavours/glitch/features/ui/components/column_subheading.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/columns_area.js b/app/javascript/flavours/glitch/features/ui/components/columns_area.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/columns_area.js rename to app/javascript/flavours/glitch/features/ui/components/columns_area.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.js b/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/compare_history_modal.js rename to app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/compose_panel.js b/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/compose_panel.js rename to app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js rename to app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js b/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.js rename to app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.js rename to app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/doodle_modal.js b/app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/doodle_modal.js rename to app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/drawer_loading.js b/app/javascript/flavours/glitch/features/ui/components/drawer_loading.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/drawer_loading.js rename to app/javascript/flavours/glitch/features/ui/components/drawer_loading.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/embed_modal.js b/app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/embed_modal.js rename to app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/favourite_modal.js rename to app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/filter_modal.js b/app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/filter_modal.js rename to app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx 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.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/focal_point_modal.js rename to app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.js b/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.js rename to app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/header.js b/app/javascript/flavours/glitch/features/ui/components/header.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/header.js rename to app/javascript/flavours/glitch/features/ui/components/header.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/image_loader.js b/app/javascript/flavours/glitch/features/ui/components/image_loader.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/image_loader.js rename to app/javascript/flavours/glitch/features/ui/components/image_loader.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/image_modal.js b/app/javascript/flavours/glitch/features/ui/components/image_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/image_modal.js rename to app/javascript/flavours/glitch/features/ui/components/image_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.js b/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/link_footer.js rename to app/javascript/flavours/glitch/features/ui/components/link_footer.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/list_panel.js b/app/javascript/flavours/glitch/features/ui/components/list_panel.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/list_panel.js rename to app/javascript/flavours/glitch/features/ui/components/list_panel.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/media_modal.js b/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/media_modal.js rename to app/javascript/flavours/glitch/features/ui/components/media_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_loading.js b/app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/modal_loading.js rename to app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.js b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/modal_root.js rename to app/javascript/flavours/glitch/features/ui/components/modal_root.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/mute_modal.js b/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/mute_modal.js rename to app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.js b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/navigation_panel.js rename to app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js rename to app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/report_modal.js b/app/javascript/flavours/glitch/features/ui/components/report_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/report_modal.js rename to app/javascript/flavours/glitch/features/ui/components/report_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js rename to app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/upload_area.js b/app/javascript/flavours/glitch/features/ui/components/upload_area.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/upload_area.js rename to app/javascript/flavours/glitch/features/ui/components/upload_area.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/video_modal.js b/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/video_modal.js rename to app/javascript/flavours/glitch/features/ui/components/video_modal.jsx diff --git a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.js b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/components/zoomable_image.js rename to app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx diff --git a/app/javascript/flavours/glitch/features/ui/index.js b/app/javascript/flavours/glitch/features/ui/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/index.js rename to app/javascript/flavours/glitch/features/ui/index.jsx diff --git a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js rename to app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx diff --git a/app/javascript/flavours/glitch/features/ui/util/reduced_motion.js b/app/javascript/flavours/glitch/features/ui/util/reduced_motion.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/ui/util/reduced_motion.js rename to app/javascript/flavours/glitch/features/ui/util/reduced_motion.jsx diff --git a/app/javascript/flavours/glitch/features/video/index.js b/app/javascript/flavours/glitch/features/video/index.jsx similarity index 100% rename from app/javascript/flavours/glitch/features/video/index.js rename to app/javascript/flavours/glitch/features/video/index.jsx diff --git a/app/javascript/flavours/glitch/main.js b/app/javascript/flavours/glitch/main.jsx similarity index 100% rename from app/javascript/flavours/glitch/main.js rename to app/javascript/flavours/glitch/main.jsx diff --git a/app/javascript/flavours/glitch/packs/admin.js b/app/javascript/flavours/glitch/packs/admin.jsx similarity index 100% rename from app/javascript/flavours/glitch/packs/admin.js rename to app/javascript/flavours/glitch/packs/admin.jsx diff --git a/app/javascript/flavours/glitch/packs/public.js b/app/javascript/flavours/glitch/packs/public.jsx similarity index 100% rename from app/javascript/flavours/glitch/packs/public.js rename to app/javascript/flavours/glitch/packs/public.jsx diff --git a/app/javascript/flavours/glitch/packs/share.js b/app/javascript/flavours/glitch/packs/share.jsx similarity index 100% rename from app/javascript/flavours/glitch/packs/share.js rename to app/javascript/flavours/glitch/packs/share.jsx diff --git a/app/javascript/flavours/glitch/theme.yml b/app/javascript/flavours/glitch/theme.yml index 2a2cf30b53..672dd54406 100644 --- a/app/javascript/flavours/glitch/theme.yml +++ b/app/javascript/flavours/glitch/theme.yml @@ -1,13 +1,13 @@ # (REQUIRED) The location of the pack files. pack: admin: - - packs/admin.js - - packs/public.js - auth: packs/public.js + - packs/admin.jsx + - packs/public.jsx + auth: packs/public.jsx common: filename: packs/common.js stylesheet: true - embed: packs/public.js + embed: packs/public.jsx error: packs/error.js home: filename: packs/home.js @@ -18,9 +18,9 @@ pack: - flavours/glitch/async/notifications mailer: modal: - public: packs/public.js + public: packs/public.jsx settings: packs/settings.js - share: packs/share.js + share: packs/share.jsx # (OPTIONAL) The directory which contains localization files for # the flavour, relative to this directory. The contents of this diff --git a/app/javascript/flavours/glitch/utils/icons.js b/app/javascript/flavours/glitch/utils/icons.jsx similarity index 100% rename from app/javascript/flavours/glitch/utils/icons.js rename to app/javascript/flavours/glitch/utils/icons.jsx From 31455f05fb361aa2f73a2af9704fff7bd64ff486 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 21 Feb 2023 09:23:39 +0100 Subject: [PATCH 0546/1220] [Glitch] Add `lang` tag to native language names in language picker Port 7207a98d3990124c6dc1df2187475695c800e65f to glitch-soc Signed-off-by: Claire --- .../glitch/features/compose/components/language_dropdown.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx index 3f8411ab14..03fb899f88 100644 --- a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx @@ -210,7 +210,7 @@ class LanguageDropdownMenu extends React.PureComponent { return (
    - {lang[2]} ({lang[1]}) + {lang[2]} ({lang[1]})
    ); }; From 56bec60f25a33e4454c8777f7a0c6a8c3f821d0f Mon Sep 17 00:00:00 2001 From: Botao Wang Date: Tue, 21 Feb 2023 18:06:13 +0900 Subject: [PATCH 0547/1220] [Glitch] Fix sidebar cut-off on small screens in admin UI Port 7adde24a95218048f14c29bee0d25afaeae99509 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/admin.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 61036fc70c..2c2c8965eb 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -384,7 +384,7 @@ $content-width: 840px; position: fixed; z-index: 10; width: 100%; - height: calc(100vh - 56px); + height: calc(100% - 56px); left: 0; bottom: 0; overflow-y: auto; From 28cb77bd072d80faae04d2167830c8ba9b4b73b7 Mon Sep 17 00:00:00 2001 From: Tim Lucas Date: Thu, 23 Feb 2023 22:58:42 +1100 Subject: [PATCH 0548/1220] [Glitch] Increase contrast of upload progress background Port f4f91bc295fd423bdc81ca17f0f9491ed6cd897e to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/components/compose_form.scss | 2 +- .../flavours/glitch/styles/mastodon-light/diff.scss | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss index 4b800dcd8f..64fbe9e080 100644 --- a/app/javascript/flavours/glitch/styles/components/compose_form.scss +++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss @@ -535,7 +535,7 @@ border-radius: 6px; width: 100%; height: 6px; - background: $ui-base-lighter-color; + background: darken($simple-background-color, 8%); } .upload-progress__tracker { diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index bb97ecb5f4..a1064ecf4d 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -258,6 +258,10 @@ html { border-color: $ui-base-color; } +.upload-progress__backdrop { + background: $ui-base-color; +} + // Change the background colors of statuses .focusable:focus { background: $ui-base-color; From b632c5a55a1180f4e30a5e396e90944546d87190 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 24 Feb 2023 20:04:38 +0100 Subject: [PATCH 0549/1220] [Glitch] Add `lang` attribute to preview card Port 8000a8f2309d428c2ce72fe5ffba940754d55339 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/status/components/card.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/status/components/card.jsx b/app/javascript/flavours/glitch/features/status/components/card.jsx index 6a306ed148..359dbbc207 100644 --- a/app/javascript/flavours/glitch/features/status/components/card.jsx +++ b/app/javascript/flavours/glitch/features/status/components/card.jsx @@ -188,11 +188,12 @@ export default class Card extends React.PureComponent { const interactive = card.get('type') !== 'link'; const className = classnames('status-card', { horizontal, compact, interactive }); const title = interactive ? {card.get('title')} : {card.get('title')}; + const language = card.get('language') || ''; const ratio = card.get('width') / card.get('height'); const height = (compact && !embedded) ? (width / (16 / 9)) : (width / ratio); const description = ( -
    +
    {title} {!(horizontal || compact) &&

    {trim(card.get('description') || '', maxDescription)}

    } {provider} From ac8512a73aade4cbca5d043a429160da2f01ad75 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 25 Feb 2023 21:28:46 +0100 Subject: [PATCH 0550/1220] Add glitch-soc's win95.scss and reset.scss to stylelint's ingore list --- stylelint.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stylelint.config.js b/stylelint.config.js index c8c07a05bc..b56e6f9cb7 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -2,6 +2,8 @@ module.exports = { extends: ['stylelint-config-standard-scss'], ignoreFiles: [ 'app/javascript/styles/mastodon/reset.scss', + 'app/javascript/flavours/glitch/styles/reset.scss', + 'app/javascript/styles/win95.scss', 'node_modules/**/*', 'vendor/**/*', ], From cc94cc86aec60d3817f40047bc358fce5b1dbc91 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 25 Feb 2023 21:20:01 +0100 Subject: [PATCH 0551/1220] Fix glitch-soc SCSS code style and refactor closer to upstream --- .../flavours/glitch/styles/_mixins.scss | 2 +- .../flavours/glitch/styles/accounts.scss | 4 +- .../flavours/glitch/styles/admin.scss | 2 +- .../flavours/glitch/styles/basics.scss | 94 +++++++++++++++++-- .../glitch/styles/components/accounts.scss | 17 ++-- .../glitch/styles/components/columns.scss | 9 +- .../styles/components/compose_form.scss | 31 +++--- .../glitch/styles/components/directory.scss | 1 - .../glitch/styles/components/doodle.scss | 10 +- .../glitch/styles/components/drawer.scss | 2 +- .../glitch/styles/components/index.scss | 6 +- .../styles/components/local_settings.scss | 2 +- .../glitch/styles/components/media.scss | 1 - .../glitch/styles/components/metadata.scss | 0 .../glitch/styles/components/modal.scss | 7 +- .../glitch/styles/components/search.scss | 4 +- .../glitch/styles/components/status.scss | 12 ++- .../flavours/glitch/styles/containers.scss | 3 +- .../flavours/glitch/styles/dashboard.scss | 1 - .../glitch/styles/mastodon-light/diff.scss | 2 +- .../flavours/glitch/styles/polls.scss | 2 - .../flavours/glitch/styles/variables.scss | 2 + 22 files changed, 144 insertions(+), 70 deletions(-) delete mode 100644 app/javascript/flavours/glitch/styles/components/metadata.scss diff --git a/app/javascript/flavours/glitch/styles/_mixins.scss b/app/javascript/flavours/glitch/styles/_mixins.scss index 90f748c51d..b23c4dbb7b 100644 --- a/app/javascript/flavours/glitch/styles/_mixins.scss +++ b/app/javascript/flavours/glitch/styles/_mixins.scss @@ -48,7 +48,7 @@ width: inherit; max-width: none; height: 250px; - border-radius: 0px; + border-radius: 0; } } diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss index 2158a691ff..abe2e8616f 100644 --- a/app/javascript/flavours/glitch/styles/accounts.scss +++ b/app/javascript/flavours/glitch/styles/accounts.scss @@ -60,6 +60,7 @@ width: 48px; height: 48px; @include avatar-size(48px); + padding-top: 2px; img { @@ -68,7 +69,8 @@ display: block; margin: 0; border-radius: 4px; - @include avatar-radius(); + @include avatar-radius; + background: darken($ui-base-color, 8%); object-fit: cover; } diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 2c2c8965eb..240c90735e 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -1219,7 +1219,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/flavours/glitch/styles/basics.scss b/app/javascript/flavours/glitch/styles/basics.scss index 25aa68f7e2..84977eb397 100644 --- a/app/javascript/flavours/glitch/styles/basics.scss +++ b/app/javascript/flavours/glitch/styles/basics.scss @@ -2,6 +2,7 @@ @if type-of($color) == 'color' { $color: str-slice(ie-hex-str($color), 4); } + @return '%23' + unquote($color); } @@ -15,7 +16,7 @@ body { text-rendering: optimizelegibility; font-feature-settings: 'kern'; text-size-adjust: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0%); -webkit-tap-highlight-color: transparent; &.system-font { @@ -31,8 +32,8 @@ body { // Helvetica Neue => Older macOS <10.11 // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0) font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', - 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', - 'Helvetica Neue', $font-sans-serif, sans-serif; + Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + $font-sans-serif, sans-serif; } &.app-body { @@ -131,12 +132,14 @@ body { vertical-align: middle; margin: 20px; - img { - display: block; - max-width: 470px; - width: 100%; - height: auto; - margin-top: -120px; + &__illustration { + img { + display: block; + max-width: 470px; + width: 100%; + height: auto; + margin-top: -120px; + } } h1 { @@ -159,13 +162,18 @@ button { .app-holder { &, - & > div { + & > div, + & > noscript { display: flex; width: 100%; align-items: center; justify-content: center; outline: 0 !important; } + + & > noscript { + height: 100vh; + } } .layout-single-column .app-holder { @@ -182,6 +190,72 @@ button { } } +.app-holder noscript { + flex-direction: column; + font-size: 16px; + font-weight: 400; + line-height: 1.7; + color: lighten($error-red, 4%); + text-align: center; + + & > div { + max-width: 500px; + } + + p { + margin-bottom: 0.85em; + + &:last-child { + margin-bottom: 0; + } + } + + a { + color: $highlight-text-color; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } + + &__footer { + color: $dark-text-color; + font-size: 13px; + + a { + color: $dark-text-color; + } + } + + button { + display: inline; + border: 0; + background: transparent; + color: $dark-text-color; + font: inherit; + padding: 0; + margin: 0; + line-height: inherit; + cursor: pointer; + outline: 0; + transition: color 300ms linear; + text-decoration: underline; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + + &.copied { + color: $valid-value-color; + transition: none; + } + } +} + .logo-resources { // Not using display: none because of https://bugs.chromium.org/p/chromium/issues/detail?id=258029 visibility: hidden; diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss index 89faaae6ad..b95cffbb41 100644 --- a/app/javascript/flavours/glitch/styles/components/accounts.scss +++ b/app/javascript/flavours/glitch/styles/components/accounts.scss @@ -62,11 +62,11 @@ } .account__avatar { - @include avatar-radius(); + @include avatar-radius; + display: block; position: relative; cursor: pointer; - width: 36px; height: 36px; background-size: 36px 36px; @@ -79,11 +79,13 @@ &-composite { @include avatar-radius; + overflow: hidden; position: relative; & div { @include avatar-radius; + float: left; position: relative; box-sizing: border-box; @@ -104,24 +106,24 @@ } .account__avatar-overlay { - position: relative; @include avatar-size(48px); position: relative; &-base { - @include avatar-radius(); + @include avatar-radius; @include avatar-size(36px); img { @include avatar-radius; + width: 100%; height: 100%; } } &-overlay { - @include avatar-radius(); + @include avatar-radius; @include avatar-size(24px); position: absolute; @@ -131,6 +133,7 @@ img { @include avatar-radius; + width: 100%; height: 100%; } @@ -746,8 +749,6 @@ display: block; box-sizing: border-box; width: calc(100% + 20px); - margin: 0; - margin-top: 5px; color: $secondary-text-color; background: $ui-base-color; padding: 10px; @@ -774,6 +775,7 @@ display: flex; align-items: center; flex-direction: column; + &__message { color: $darker-text-color; padding: 8px 0; @@ -784,6 +786,7 @@ text-align: center; margin-bottom: 16px; } + &__action { display: flex; justify-content: space-between; diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss index 263a9ce785..fd4bb95b5f 100644 --- a/app/javascript/flavours/glitch/styles/components/columns.scss +++ b/app/javascript/flavours/glitch/styles/components/columns.scss @@ -428,6 +428,7 @@ $ui-header-height: 55px; button { @extend .column-header__button; + background: transparent; text-align: center; padding: 10px 5px; @@ -491,6 +492,7 @@ $ui-header-height: 55px; // notif cleaning drawer &.ncd { transition: none; + &.collapsed { max-height: 0; opacity: 0.7; @@ -579,8 +581,8 @@ $ui-header-height: 55px; font-size: inherit; flex: auto; background-color: $ui-base-color; - transition-property: background-color, box-shadow; transition: all 0.2s ease; + transition-property: background-color, box-shadow; &[disabled] { cursor: not-allowed; @@ -771,7 +773,7 @@ $ui-header-height: 55px; .column-select { &__control { - @include search-input(); + @include search-input; &::placeholder { color: lighten($darker-text-color, 4%); @@ -845,7 +847,8 @@ $ui-header-height: 55px; } &__menu { - @include search-popout(); + @include search-popout; + padding: 0; background: $ui-secondary-color; } diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss index 64fbe9e080..aa2cc664ee 100644 --- a/app/javascript/flavours/glitch/styles/components/compose_form.scss +++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss @@ -94,7 +94,6 @@ .compose-form__sensitive-button { padding: 10px; padding-top: 0; - font-size: 14px; font-weight: 500; @@ -155,17 +154,14 @@ .reply-indicator__content { position: relative; - margin: 10px 0; - padding: 0 12px; font-size: 14px; line-height: 20px; - color: $inverted-text-color; word-wrap: break-word; font-weight: 400; - overflow: visible; - white-space: pre-wrap; - padding-top: 5px; overflow: hidden; + padding-top: 5px; + color: $inverted-text-color; + white-space: pre-wrap; p, pre, @@ -355,19 +351,18 @@ } .autosuggest-textarea__suggestions { - display: block; - position: absolute; box-sizing: border-box; - top: 100%; - border-radius: 0 0 4px 4px; - padding: 6px; - width: 100%; - color: $inverted-text-color; - background: $ui-secondary-color; - box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); - font-size: 14px; - z-index: 99; display: none; + position: absolute; + top: 100%; + width: 100%; + z-index: 99; + box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); + background: $ui-secondary-color; + border-radius: 0 0 4px 4px; + color: $inverted-text-color; + font-size: 14px; + padding: 6px; } .autosuggest-textarea__suggestions--visible { diff --git a/app/javascript/flavours/glitch/styles/components/directory.scss b/app/javascript/flavours/glitch/styles/components/directory.scss index 4c914f1638..5c763764d8 100644 --- a/app/javascript/flavours/glitch/styles/components/directory.scss +++ b/app/javascript/flavours/glitch/styles/components/directory.scss @@ -37,7 +37,6 @@ display: inline-block; padding: 6px 0; line-height: 18px; - cursor: default; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; diff --git a/app/javascript/flavours/glitch/styles/components/doodle.scss b/app/javascript/flavours/glitch/styles/components/doodle.scss index eddc1a2a81..52c7cd54a0 100644 --- a/app/javascript/flavours/glitch/styles/components/doodle.scss +++ b/app/javascript/flavours/glitch/styles/components/doodle.scss @@ -1,15 +1,17 @@ -$doodleBg: #d9e1e8; +$doodle-background: #d9e1e8; + .doodle-modal { @extend .boost-modal; + width: unset; } .doodle-modal__container { - background: $doodleBg; + background: $doodle-background; text-align: center; line-height: 0; // remove weird gap under canvas canvas { - border: 5px solid $doodleBg; + border: 5px solid $doodle-background; } } @@ -24,7 +26,6 @@ $doodleBg: #d9e1e8; .doodle-toolbar { line-height: 1; - display: flex; flex-direction: column; flex-grow: 0; @@ -42,6 +43,7 @@ $doodleBg: #d9e1e8; input[type='text'] { width: 40px; } + span.val { display: inline-block; text-align: left; diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss index 2c2f251683..9de5a4435b 100644 --- a/app/javascript/flavours/glitch/styles/components/drawer.scss +++ b/app/javascript/flavours/glitch/styles/components/drawer.scss @@ -98,7 +98,7 @@ } .search-popout { - @include search-popout(); + @include search-popout; } .navigation-bar { diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index c52f395120..dde5e4c745 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -1321,12 +1321,10 @@ button.icon-button.active i.fa-retweet { right: 0; bottom: -1px; padding-left: 15px; // space for the box shadow to be visible - z-index: 999; align-items: center; justify-content: flex-end; cursor: pointer; - display: flex; .wrappy { @@ -1554,7 +1552,7 @@ button.icon-button.active i.fa-retweet { } @keyframes heartbeat { - from { + 0% { transform: scale(1); transform-origin: center center; animation-timing-function: ease-out; @@ -1804,9 +1802,11 @@ noscript { 0% { opacity: 1; } + 30% { opacity: 0.75; } + 100% { opacity: 1; } diff --git a/app/javascript/flavours/glitch/styles/components/local_settings.scss b/app/javascript/flavours/glitch/styles/components/local_settings.scss index cd441a0c03..52516cfb52 100644 --- a/app/javascript/flavours/glitch/styles/components/local_settings.scss +++ b/app/javascript/flavours/glitch/styles/components/local_settings.scss @@ -94,7 +94,7 @@ .glitch.local-settings__page { display: block; flex: auto; - padding: 15px 20px 15px 20px; + padding: 15px 20px; width: 360px; overflow-y: auto; } diff --git a/app/javascript/flavours/glitch/styles/components/media.scss b/app/javascript/flavours/glitch/styles/components/media.scss index 0216daa127..6d6b8bc0e9 100644 --- a/app/javascript/flavours/glitch/styles/components/media.scss +++ b/app/javascript/flavours/glitch/styles/components/media.scss @@ -595,7 +595,6 @@ .player-button { display: inline-block; outline: 0; - flex: 0 0 auto; background: transparent; padding: 5px; diff --git a/app/javascript/flavours/glitch/styles/components/metadata.scss b/app/javascript/flavours/glitch/styles/components/metadata.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss index fc9ba3a189..65060f4224 100644 --- a/app/javascript/flavours/glitch/styles/components/modal.scss +++ b/app/javascript/flavours/glitch/styles/components/modal.scss @@ -75,7 +75,6 @@ width: 100%; height: 100%; box-sizing: border-box; - display: none; flex-direction: column; align-items: center; justify-content: center; @@ -99,7 +98,6 @@ height: 100%; box-sizing: border-box; padding: 25px; - display: none; flex-direction: column; align-items: center; justify-content: center; @@ -685,7 +683,6 @@ display: block; box-sizing: border-box; width: 100%; - margin: 0; color: $inverted-text-color; background: $simple-background-color; padding: 10px; @@ -820,7 +817,6 @@ font-family: inherit; font-size: 14px; resize: none; - border: 0; outline: 0; border-radius: 4px; border: 1px solid $ui-secondary-color; @@ -987,7 +983,6 @@ padding-left: 20px; padding-right: 20px; padding-bottom: 10px; - font-size: 14px; label, @@ -1135,7 +1130,7 @@ width: 100%; border: 0; padding: 10px; - font-family: 'mastodon-font-monospace', monospace; + font-family: mastodon-font-monospace, monospace; background: $ui-base-color; color: $primary-text-color; font-size: 14px; diff --git a/app/javascript/flavours/glitch/styles/components/search.scss b/app/javascript/flavours/glitch/styles/components/search.scss index b8078bdb60..a6e98a868f 100644 --- a/app/javascript/flavours/glitch/styles/components/search.scss +++ b/app/javascript/flavours/glitch/styles/components/search.scss @@ -4,7 +4,7 @@ } .search__input { - @include search-input(); + @include search-input; display: block; padding: 15px; @@ -181,7 +181,7 @@ 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/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss index 9280ef8365..7f94b25e9f 100644 --- a/app/javascript/flavours/glitch/styles/components/status.scss +++ b/app/javascript/flavours/glitch/styles/components/status.scss @@ -332,6 +332,7 @@ 0% { opacity: 0; } + 100% { opacity: 1; } @@ -417,7 +418,7 @@ text-overflow: ellipsis; padding-top: 0; - &:after { + &::after { content: ''; position: absolute; top: 0; @@ -435,13 +436,15 @@ text-decoration: none; } } - &:focus > .status__content:after { + + &:focus > .status__content::after { background: linear-gradient( rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1) ); } - &.status-direct > .status__content:after { + + &.status-direct > .status__content::after { background: linear-gradient( rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1) @@ -458,7 +461,7 @@ } .notification__message { - margin: -10px 0px 10px 0; + margin: -10px 0 10px; } } @@ -1098,7 +1101,6 @@ a.status-card.compact:hover { position: absolute; top: 0; left: 0; - pointer-events: 0; width: 100%; height: 100%; border-left: 4px solid $highlight-text-color; diff --git a/app/javascript/flavours/glitch/styles/containers.scss b/app/javascript/flavours/glitch/styles/containers.scss index a3aee7eef3..b908515460 100644 --- a/app/javascript/flavours/glitch/styles/containers.scss +++ b/app/javascript/flavours/glitch/styles/containers.scss @@ -74,6 +74,7 @@ width: 40px; height: 40px; @include avatar-size(40px); + margin-right: 10px; img { @@ -82,7 +83,7 @@ display: block; margin: 0; border-radius: 4px; - @include avatar-radius(); + @include avatar-radius; } } diff --git a/app/javascript/flavours/glitch/styles/dashboard.scss b/app/javascript/flavours/glitch/styles/dashboard.scss index bb103e9ce0..f25765d1da 100644 --- a/app/javascript/flavours/glitch/styles/dashboard.scss +++ b/app/javascript/flavours/glitch/styles/dashboard.scss @@ -37,7 +37,6 @@ text-align: center; font-weight: 500; font-size: 24px; - line-height: 21px; color: $primary-text-color; margin-bottom: 20px; line-height: 30px; diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index a1064ecf4d..ef248bf4fc 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -759,7 +759,7 @@ html { } } -.status.collapsed .status__content:after { +.status.collapsed .status__content::after { background: linear-gradient( rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1) diff --git a/app/javascript/flavours/glitch/styles/polls.scss b/app/javascript/flavours/glitch/styles/polls.scss index 5b40aaebee..a4ce14a094 100644 --- a/app/javascript/flavours/glitch/styles/polls.scss +++ b/app/javascript/flavours/glitch/styles/polls.scss @@ -85,7 +85,6 @@ width: 100%; font-size: 14px; color: $inverted-text-color; - display: block; outline: 0; font-family: inherit; background: $simple-background-color; @@ -116,7 +115,6 @@ box-sizing: border-box; width: 18px; height: 18px; - flex: 0 0 auto; margin-inline-end: 10px; top: -1px; border-radius: 50%; diff --git a/app/javascript/flavours/glitch/styles/variables.scss b/app/javascript/flavours/glitch/styles/variables.scss index 25658bb0c8..0132da51f3 100644 --- a/app/javascript/flavours/glitch/styles/variables.scss +++ b/app/javascript/flavours/glitch/styles/variables.scss @@ -41,6 +41,7 @@ $highlight-text-color: lighten($ui-highlight-color, 8%) !default; $action-button-color: $ui-base-lighter-color !default; $passive-text-color: $gold-star !default; $active-passive-text-color: $success-green !default; + // For texts on inverted backgrounds $inverted-text-color: $ui-base-color !default; $lighter-text-color: $ui-base-lighter-color !default; @@ -51,6 +52,7 @@ $cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; // Variables for components $media-modal-media-max-width: 100%; + // put margins on top and bottom of image to avoid the screen covered by image. $media-modal-media-max-height: 80%; From b91756fd4d475edff890e460c44b3a7245ad51e2 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 25 Feb 2023 23:47:21 +0100 Subject: [PATCH 0552/1220] Move misc rules from components/index.scss to components/misc.scss --- .../glitch/styles/components/index.scss | 1815 +---------------- .../glitch/styles/components/misc.scss | 1813 ++++++++++++++++ 2 files changed, 1814 insertions(+), 1814 deletions(-) create mode 100644 app/javascript/flavours/glitch/styles/components/misc.scss diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index dde5e4c745..497b66b3ec 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -1,1817 +1,4 @@ -.app-body { - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; -} - -.animated-number { - display: inline-flex; - flex-direction: column; - align-items: stretch; - overflow: hidden; - position: relative; -} - -.link-button { - display: block; - font-size: 15px; - line-height: 20px; - color: $highlight-text-color; - border: 0; - background: transparent; - padding: 0; - cursor: pointer; - text-decoration: none; - - &--destructive { - color: $error-value-color; - } - - &:hover, - &:active { - text-decoration: underline; - } - - &:disabled { - color: $ui-primary-color; - cursor: default; - } -} - -.button { - background-color: darken($ui-highlight-color, 3%); - border: 10px none; - border-radius: 4px; - box-sizing: border-box; - color: $primary-text-color; - cursor: pointer; - display: inline-block; - font-family: inherit; - font-size: 15px; - font-weight: 500; - letter-spacing: 0; - line-height: 22px; - overflow: hidden; - padding: 7px 18px; - position: relative; - text-align: center; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - width: auto; - - &:active, - &:focus, - &:hover { - background-color: $ui-highlight-color; - } - - &--destructive { - &:active, - &:focus, - &:hover { - background-color: $error-red; - transition: none; - } - } - - &:disabled { - background-color: $ui-primary-color; - cursor: default; - } - - &.button-alternative { - color: $inverted-text-color; - background: $ui-primary-color; - - &:active, - &:focus, - &:hover { - background-color: lighten($ui-primary-color, 4%); - } - } - - &.button-alternative-2 { - background: $ui-base-lighter-color; - - &:active, - &:focus, - &:hover { - background-color: lighten($ui-base-lighter-color, 4%); - } - } - - &.button-secondary { - font-size: 16px; - line-height: 36px; - height: auto; - color: $darker-text-color; - text-transform: none; - background: transparent; - padding: 6px 17px; - border: 1px solid $ui-primary-color; - - &:active, - &:focus, - &:hover { - border-color: lighten($ui-primary-color, 4%); - color: lighten($darker-text-color, 4%); - text-decoration: none; - } - - &:disabled { - opacity: 0.5; - } - } - - &.button-tertiary { - background: transparent; - padding: 6px 17px; - color: $highlight-text-color; - border: 1px solid $highlight-text-color; - - &:active, - &:focus, - &:hover { - background: $ui-highlight-color; - color: $primary-text-color; - border: 0; - padding: 7px 18px; - } - - &:disabled { - opacity: 0.5; - } - - &.button--confirmation { - color: $valid-value-color; - border-color: $valid-value-color; - - &:active, - &:focus, - &:hover { - background: $valid-value-color; - color: $primary-text-color; - } - } - - &.button--destructive { - color: $error-value-color; - border-color: $error-value-color; - - &:active, - &:focus, - &:hover { - background: $error-value-color; - color: $primary-text-color; - } - } - } - - &.button--block { - display: block; - width: 100%; - } - - .layout-multiple-columns &.button--with-bell { - font-size: 12px; - padding: 0 8px; - } -} - -.icon-button { - display: inline-block; - padding: 0; - color: $action-button-color; - border: 0; - border-radius: 4px; - background: transparent; - cursor: pointer; - transition: all 100ms ease-in; - transition-property: background-color, color; - text-decoration: none; - - a { - color: inherit; - text-decoration: none; - } - - &:hover, - &:active, - &:focus { - color: lighten($action-button-color, 7%); - background-color: rgba($action-button-color, 0.15); - transition: all 200ms ease-out; - transition-property: background-color, color; - } - - &:focus { - background-color: rgba($action-button-color, 0.3); - } - - &.disabled { - color: darken($action-button-color, 13%); - background-color: transparent; - cursor: default; - } - - &.active { - color: $highlight-text-color; - } - - &.copyable { - transition: background 300ms linear; - } - - &.copied { - background: $valid-value-color; - transition: none; - } - - &::-moz-focus-inner { - border: 0; - } - - &::-moz-focus-inner, - &:focus, - &:active { - outline: 0 !important; - } - - &.inverted { - color: $lighter-text-color; - - &:hover, - &:active, - &:focus { - color: darken($lighter-text-color, 7%); - background-color: rgba($lighter-text-color, 0.15); - } - - &:focus { - background-color: rgba($lighter-text-color, 0.3); - } - - &.disabled { - color: lighten($lighter-text-color, 7%); - background-color: transparent; - } - - &.active { - color: $highlight-text-color; - - &.disabled { - color: lighten($highlight-text-color, 13%); - } - } - } - - &.overlayed { - box-sizing: content-box; - background: rgba($base-overlay-background, 0.6); - color: rgba($primary-text-color, 0.7); - border-radius: 4px; - padding: 2px; - - &:hover { - background: rgba($base-overlay-background, 0.9); - } - } - - &--with-counter { - display: inline-flex; - align-items: center; - width: auto !important; - padding: 0 4px 0 2px; - } - - &__counter { - display: inline-block; - width: auto; - margin-left: 4px; - font-size: 12px; - font-weight: 500; - } -} - -.text-icon, -.text-icon-button { - font-weight: 600; - font-size: 11px; - line-height: 27px; - cursor: default; -} - -.text-icon-button { - color: $lighter-text-color; - border: 0; - border-radius: 4px; - background: transparent; - cursor: pointer; - padding: 0 3px; - outline: 0; - transition: all 100ms ease-in; - transition-property: background-color, color; - - &:hover, - &:active, - &:focus { - color: darken($lighter-text-color, 7%); - background-color: rgba($lighter-text-color, 0.15); - transition: all 200ms ease-out; - transition-property: background-color, color; - } - - &:focus { - background-color: rgba($lighter-text-color, 0.3); - } - - &.disabled { - color: lighten($lighter-text-color, 20%); - background-color: transparent; - cursor: default; - } - - &.active { - color: $highlight-text-color; - } - - &::-moz-focus-inner { - border: 0; - } - - &::-moz-focus-inner, - &:focus, - &:active { - outline: 0 !important; - } -} - -body > [data-popper-placement] { - z-index: 3; -} - -.invisible { - font-size: 0; - line-height: 0; - display: inline-block; - width: 0; - height: 0; - position: absolute; - - img, - svg { - margin: 0 !important; - border: 0 !important; - padding: 0 !important; - width: 0 !important; - height: 0 !important; - } -} - -.ellipsis { - &::after { - content: '…'; - } -} - -.notification__favourite-icon-wrapper { - left: 0; - position: absolute; - - .fa.star-icon { - color: $gold-star; - } -} - -.icon-button.star-icon.active { - color: $gold-star; -} - -.icon-button.bookmark-icon.active { - color: $red-bookmark; -} - -.no-reduce-motion .icon-button.star-icon { - &.activate { - & > .fa-star { - animation: spring-rotate-in 1s linear; - } - } - - &.deactivate { - & > .fa-star { - animation: spring-rotate-out 1s linear; - } - } -} - -.notification__display-name { - color: inherit; - font-weight: 500; - text-decoration: none; - - &:hover { - color: $primary-text-color; - text-decoration: underline; - } -} - -.display-name { - display: block; - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - - a { - color: inherit; - text-decoration: inherit; - } - - strong { - display: block; - } - - > a:hover { - strong { - text-decoration: underline; - } - } - - &.inline { - padding: 0; - height: 18px; - font-size: 15px; - line-height: 18px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - - strong { - display: inline; - height: auto; - font-size: inherit; - line-height: inherit; - } - - span { - display: inline; - height: auto; - font-size: inherit; - line-height: inherit; - } - } -} - -.display-name__html { - font-weight: 500; -} - -.display-name__account { - font-size: 14px; -} - -.image-loader { - position: relative; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ - - * { - scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ - } - - &::-webkit-scrollbar, - *::-webkit-scrollbar { - width: 0; - height: 0; - background: transparent; /* Chrome/Safari/Webkit */ - } - - .image-loader__preview-canvas { - max-width: $media-modal-media-max-width; - max-height: $media-modal-media-max-height; - background: url('~images/void.png') repeat; - object-fit: contain; - } - - .loading-bar__container { - position: relative; - } - - .loading-bar { - position: absolute; - } - - &.image-loader--amorphous .image-loader__preview-canvas { - display: none; - } -} - -.zoomable-image { - position: relative; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - - img { - max-width: $media-modal-media-max-width; - max-height: $media-modal-media-max-height; - width: auto; - height: auto; - object-fit: contain; - } -} - -.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; -} - -.dropdown__content { - display: none; - position: absolute; -} - -.dropdown-menu__separator { - border-bottom: 1px solid darken($ui-secondary-color, 8%); - margin: 5px 7px 6px; - height: 0; -} - -.dropdown-menu { - background: $ui-secondary-color; - padding: 4px 0; - border-radius: 4px; - box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); - z-index: 9999; - - &__text-button { - display: inline; - color: inherit; - background: transparent; - border: 0; - margin: 0; - padding: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; - - &:focus { - outline: 1px dotted; - } - } - - &__container { - &__header { - border-bottom: 1px solid darken($ui-secondary-color, 8%); - padding: 4px 14px; - padding-bottom: 8px; - font-size: 13px; - line-height: 18px; - color: $inverted-text-color; - } - - &__list { - list-style: none; - - &--scrollable { - max-height: 300px; - overflow-y: scroll; - } - } - - &--loading { - display: flex; - align-items: center; - justify-content: center; - padding: 30px 45px; - } - } -} - -.dropdown-menu__arrow { - position: absolute; - - &::before { - content: ''; - display: block; - width: 14px; - height: 5px; - background-color: $ui-secondary-color; - mask-image: url("data:image/svg+xml;utf8,"); - } - - &.top { - bottom: -5px; - - &::before { - transform: rotate(180deg); - } - } - - &.right { - left: -9px; - - &::before { - transform: rotate(-90deg); - } - } - - &.bottom { - top: -5px; - } - - &.left { - right: -9px; - - &::before { - transform: rotate(90deg); - } - } -} - -.dropdown-menu__item { - font-size: 13px; - line-height: 18px; - display: block; - color: $inverted-text-color; - - a, - button { - font-family: inherit; - font-size: inherit; - line-height: inherit; - display: block; - width: 100%; - padding: 4px 14px; - border: 0; - margin: 0; - box-sizing: border-box; - text-decoration: none; - background: $ui-secondary-color; - color: inherit; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - text-align: inherit; - - &:focus, - &:hover, - &:active { - background: $ui-highlight-color; - color: $secondary-text-color; - outline: 0; - } - } -} - -.dropdown-menu__item--text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding: 4px 14px; -} - -.dropdown-menu__item.edited-timestamp__history__item { - border-bottom: 1px solid darken($ui-secondary-color, 8%); - - &:last-child { - border-bottom: 0; - } - - &.dropdown-menu__item--text, - a, - button { - padding: 8px 14px; - } -} - -.inline-account { - display: inline-flex; - align-items: center; - vertical-align: top; - - .account__avatar { - margin-right: 5px; - border-radius: 50%; - } - - strong { - font-weight: 600; - } -} - -.dropdown--active .dropdown__content { - display: block; - line-height: 18px; - max-width: 311px; - right: 0; - text-align: left; - z-index: 9999; - - & > ul { - list-style: none; - background: $ui-secondary-color; - padding: 4px 0; - border-radius: 4px; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.4); - min-width: 140px; - position: relative; - } - - &.dropdown__right { - right: 0; - } - - &.dropdown__left { - & > ul { - left: -98px; - } - } - - & > ul > li > a { - font-size: 13px; - line-height: 18px; - display: block; - padding: 4px 14px; - box-sizing: border-box; - text-decoration: none; - background: $ui-secondary-color; - color: $inverted-text-color; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - - &:focus { - outline: 0; - } - - &:hover { - background: $ui-highlight-color; - color: $secondary-text-color; - } - } -} - -.dropdown__icon { - vertical-align: middle; -} - -.static-content { - padding: 10px; - padding-top: 20px; - color: $dark-text-color; - - h1 { - font-size: 16px; - font-weight: 500; - margin-bottom: 40px; - text-align: center; - } - - p { - font-size: 13px; - margin-bottom: 20px; - } -} - -.column, -.drawer { - flex: 1 1 100%; - overflow: hidden; -} - -@media screen and (min-width: 631px) { - .columns-area { - padding: 0; - } - - .column, - .drawer { - flex: 0 0 auto; - padding: 10px; - padding-left: 5px; - padding-right: 5px; - - &:first-child { - padding-left: 10px; - } - - &:last-child { - padding-right: 10px; - } - } - - .columns-area > div { - .column, - .drawer { - padding-left: 5px; - padding-right: 5px; - } - } -} - -.tabs-bar { - box-sizing: border-box; - display: flex; - background: lighten($ui-base-color, 8%); - flex: 0 0 auto; - overflow-y: auto; -} - -.tabs-bar__link { - display: block; - flex: 1 1 auto; - padding: 15px 10px; - padding-bottom: 13px; - color: $primary-text-color; - text-decoration: none; - text-align: center; - font-size: 14px; - font-weight: 500; - border-bottom: 2px solid lighten($ui-base-color, 8%); - transition: all 50ms linear; - transition-property: border-bottom, background, color; - - .fa { - font-weight: 400; - font-size: 16px; - } - - &:hover, - &:focus, - &:active { - @include multi-columns('screen and (min-width: 631px)') { - background: lighten($ui-base-color, 14%); - border-bottom-color: lighten($ui-base-color, 14%); - } - } - - &.active { - border-bottom: 2px solid $ui-highlight-color; - color: $highlight-text-color; - } - - span { - margin-left: 5px; - display: none; - } - - span.icon { - margin-left: 0; - display: inline; - } -} - -.icon-with-badge { - position: relative; - - &__badge { - position: absolute; - left: 9px; - top: -13px; - background: $ui-highlight-color; - border: 2px solid lighten($ui-base-color, 8%); - padding: 1px 6px; - border-radius: 6px; - font-size: 10px; - font-weight: 500; - line-height: 14px; - color: $primary-text-color; - } - - &__issue-badge { - position: absolute; - left: 11px; - bottom: 1px; - display: block; - background: $error-red; - border-radius: 50%; - width: 0.625rem; - height: 0.625rem; - } -} - -.column-link--transparent .icon-with-badge__badge { - border-color: darken($ui-base-color, 8%); -} - -.scrollable { - overflow-y: scroll; - overflow-x: hidden; - flex: 1 1 auto; - -webkit-overflow-scrolling: touch; - - &.optionally-scrollable { - overflow-y: auto; - } - - @supports (display: grid) { - // hack to fix Chrome <57 - contain: strict; - } - - &--flex { - display: flex; - flex-direction: column; - } - - &__append { - flex: 1 1 auto; - position: relative; - min-height: 120px; - } - - .scrollable { - flex: 1 1 auto; - } -} - -.scrollable.fullscreen { - @supports (display: grid) { - // hack to fix Chrome <57 - contain: none; - } -} - -.react-toggle { - display: inline-block; - position: relative; - cursor: pointer; - background-color: transparent; - border: 0; - padding: 0; - user-select: none; - -webkit-tap-highlight-color: rgba($base-overlay-background, 0); - -webkit-tap-highlight-color: transparent; -} - -.react-toggle-screenreader-only { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.react-toggle--disabled { - cursor: not-allowed; - opacity: 0.5; - transition: opacity 0.25s; -} - -.react-toggle-track { - width: 50px; - height: 24px; - padding: 0; - border-radius: 30px; - background-color: $ui-base-color; - transition: background-color 0.2s ease; -} - -.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) - .react-toggle-track { - background-color: darken($ui-base-color, 10%); -} - -.react-toggle--checked .react-toggle-track { - background-color: darken($ui-highlight-color, 2%); -} - -.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) - .react-toggle-track { - background-color: $ui-highlight-color; -} - -.react-toggle-track-check { - position: absolute; - width: 14px; - height: 10px; - top: 0; - bottom: 0; - margin-top: auto; - margin-bottom: auto; - line-height: 0; - left: 8px; - opacity: 0; - transition: opacity 0.25s ease; -} - -.react-toggle--checked .react-toggle-track-check { - opacity: 1; - transition: opacity 0.25s ease; -} - -.react-toggle-track-x { - position: absolute; - width: 10px; - height: 10px; - top: 0; - bottom: 0; - margin-top: auto; - margin-bottom: auto; - line-height: 0; - right: 10px; - opacity: 1; - transition: opacity 0.25s ease; -} - -.react-toggle--checked .react-toggle-track-x { - opacity: 0; -} - -.react-toggle-thumb { - position: absolute; - top: 1px; - left: 1px; - width: 22px; - height: 22px; - border: 1px solid $ui-base-color; - border-radius: 50%; - background-color: darken($simple-background-color, 2%); - box-sizing: border-box; - transition: all 0.25s ease; - transition-property: border-color, left; -} - -.react-toggle--checked .react-toggle-thumb { - left: 27px; - border-color: $ui-highlight-color; -} - -.getting-started__wrapper, -.getting_started, -.flex-spacer { - background: $ui-base-color; -} - -.getting-started__wrapper { - position: relative; - overflow-y: auto; -} - -.flex-spacer { - flex: 1 1 auto; -} - -.getting-started { - background: $ui-base-color; - flex: 1 0 auto; - - p { - color: $secondary-text-color; - } - - a { - color: $dark-text-color; - } - - &__trends { - flex: 0 1 auto; - opacity: 1; - animation: fade 150ms linear; - margin-top: 10px; - - h4 { - border-bottom: 1px solid lighten($ui-base-color, 8%); - padding: 10px; - font-size: 12px; - text-transform: uppercase; - font-weight: 500; - - a { - color: $darker-text-color; - text-decoration: none; - } - } - - @media screen and (max-height: 810px) { - .trends__item:nth-of-type(3) { - display: none; - } - } - - @media screen and (max-height: 720px) { - .trends__item:nth-of-type(2) { - display: none; - } - } - - @media screen and (max-height: 670px) { - display: none; - } - - .trends__item { - border-bottom: 0; - padding: 10px; - - &__current { - color: $darker-text-color; - } - } - } -} - -.column-link__badge { - display: inline-block; - border-radius: 4px; - font-size: 12px; - line-height: 19px; - font-weight: 500; - background: $ui-base-color; - padding: 4px 8px; - margin: -6px 10px; -} - -.keyboard-shortcuts { - padding: 8px 0 0; - overflow: hidden; - - thead { - position: absolute; - left: -9999px; - } - - td { - padding: 0 10px 8px; - } - - kbd { - display: inline-block; - padding: 3px 5px; - background-color: lighten($ui-base-color, 8%); - border: 1px solid darken($ui-base-color, 4%); - } -} - -.setting-text { - color: $darker-text-color; - background: transparent; - border: 0; - border-bottom: 2px solid $ui-primary-color; - outline: 0; - box-sizing: border-box; - display: block; - font-family: inherit; - margin-bottom: 10px; - padding: 7px 0; - width: 100%; - - &:focus, - &:active { - color: $primary-text-color; - border-bottom-color: $ui-highlight-color; - } - - @include limited-single-column('screen and (max-width: 600px)') { - font-size: 16px; - } - - &.light { - color: $inverted-text-color; - border-bottom: 2px solid lighten($ui-base-color, 27%); - - &:focus, - &:active { - color: $inverted-text-color; - border-bottom-color: $ui-highlight-color; - } - } -} - -button.icon-button i.fa-retweet { - background-position: 0 0; - height: 19px; - transition: background-position 0.9s steps(10); - transition-duration: 0s; - vertical-align: middle; - width: 22px; - - &::before { - display: none !important; - } -} - -button.icon-button.active i.fa-retweet { - transition-duration: 0.9s; - background-position: 0 100%; -} - -.reduce-motion button.icon-button i.fa-retweet, -.reduce-motion button.icon-button.active i.fa-retweet { - transition: none; -} - -.reduce-motion button.icon-button.disabled i.fa-retweet { - color: darken($action-button-color, 13%); -} - -.load-more { - display: block; - color: $dark-text-color; - background-color: transparent; - border: 0; - font-size: inherit; - text-align: center; - line-height: inherit; - margin: 0; - padding: 15px; - box-sizing: border-box; - width: 100%; - clear: both; - text-decoration: none; - - &:hover { - background: lighten($ui-base-color, 2%); - } -} - -.load-gap { - border-bottom: 1px solid lighten($ui-base-color, 8%); -} - -.timeline-hint { - text-align: center; - color: $darker-text-color; - padding: 15px; - box-sizing: border-box; - width: 100%; - cursor: default; - - strong { - font-weight: 500; - } - - a { - color: $highlight-text-color; - text-decoration: none; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - color: lighten($highlight-text-color, 4%); - } - } -} - -.missing-indicator { - padding-top: 20px + 48px; - - .regeneration-indicator__figure { - background-image: url('~flavours/glitch/images/elephant_ui_disappointed.svg'); - } -} - -.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy { - border-top: 1px solid $ui-base-color; -} - -.notification__dismiss-overlay { - overflow: hidden; - position: absolute; - top: 0; - right: 0; - bottom: -1px; - padding-left: 15px; // space for the box shadow to be visible - z-index: 999; - align-items: center; - justify-content: flex-end; - cursor: pointer; - display: flex; - - .wrappy { - width: $dismiss-overlay-width; - align-self: stretch; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: lighten($ui-base-color, 8%); - border-left: 1px solid lighten($ui-base-color, 20%); - box-shadow: 0 0 5px black; - border-bottom: 1px solid $ui-base-color; - } - - .ckbox { - border: 2px solid $ui-primary-color; - border-radius: 2px; - width: 30px; - height: 30px; - font-size: 20px; - color: $darker-text-color; - text-shadow: 0 0 5px black; - display: flex; - justify-content: center; - align-items: center; - } - - &:focus { - outline: 0 !important; - - .ckbox { - box-shadow: 0 0 1px 1px $ui-highlight-color; - } - } -} - -.text-btn { - display: inline-block; - padding: 0; - font-family: inherit; - font-size: inherit; - color: inherit; - border: 0; - background: transparent; - cursor: pointer; -} - -.loading-indicator { - color: $dark-text-color; - font-size: 12px; - font-weight: 400; - text-transform: uppercase; - overflow: visible; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - display: flex; - align-items: center; - justify-content: center; -} - -.circular-progress { - color: lighten($ui-base-color, 26%); - animation: 1.4s linear 0s infinite normal none running simple-rotate; - - circle { - stroke: currentColor; - stroke-dasharray: 80px, 200px; - stroke-dashoffset: 0; - animation: circular-progress 1.4s ease-in-out infinite; - } -} - -@keyframes circular-progress { - 0% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: 0; - } - - 50% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -15px; - } - - 100% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -125px; - } -} - -@keyframes simple-rotate { - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -} - -@keyframes spring-rotate-in { - 0% { - transform: rotate(0deg); - } - - 30% { - transform: rotate(-484.8deg); - } - - 60% { - transform: rotate(-316.7deg); - } - - 90% { - transform: rotate(-375deg); - } - - 100% { - transform: rotate(-360deg); - } -} - -@keyframes spring-rotate-out { - 0% { - transform: rotate(-360deg); - } - - 30% { - transform: rotate(124.8deg); - } - - 60% { - transform: rotate(-43.27deg); - } - - 90% { - transform: rotate(15deg); - } - - 100% { - transform: rotate(0deg); - } -} - -.spoiler-button { - top: 0; - left: 0; - width: 100%; - height: 100%; - position: absolute; - z-index: 100; - - &--minified { - display: flex; - left: 4px; - top: 4px; - width: auto; - height: auto; - align-items: center; - } - - &--click-thru { - pointer-events: none; - } - - &--hidden { - display: none; - } - - &__overlay { - display: block; - background: transparent; - width: 100%; - height: 100%; - border: 0; - - &__label { - display: inline-block; - background: rgba($base-overlay-background, 0.5); - border-radius: 8px; - padding: 8px 12px; - color: $primary-text-color; - font-weight: 500; - font-size: 14px; - } - - &:hover, - &:focus, - &:active { - .spoiler-button__overlay__label { - background: rgba($base-overlay-background, 0.8); - } - } - - &:disabled { - .spoiler-button__overlay__label { - background: rgba($base-overlay-background, 0.5); - } - } - } -} - -.setting-toggle { - display: block; - line-height: 24px; -} - -.setting-toggle__label, -.setting-meta__label { - color: $darker-text-color; - display: inline-block; - margin-bottom: 14px; - margin-left: 8px; - vertical-align: middle; -} - -.column-settings__row .radio-button { - display: block; -} - -.setting-meta__label { - float: right; -} - -@keyframes heartbeat { - 0% { - transform: scale(1); - transform-origin: center center; - animation-timing-function: ease-out; - } - - 10% { - transform: scale(0.91); - animation-timing-function: ease-in; - } - - 17% { - transform: scale(0.98); - animation-timing-function: ease-out; - } - - 33% { - transform: scale(0.87); - animation-timing-function: ease-in; - } - - 45% { - transform: scale(1); - animation-timing-function: ease-out; - } -} - -.pulse-loading { - animation: heartbeat 1.5s ease-in-out infinite both; -} - -.upload-area { - align-items: center; - background: rgba($base-overlay-background, 0.8); - display: flex; - height: 100vh; - justify-content: center; - left: 0; - opacity: 0; - position: fixed; - top: 0; - visibility: hidden; - width: 100vw; - z-index: 2000; - - * { - pointer-events: none; - } -} - -.upload-area__drop { - width: 320px; - height: 160px; - display: flex; - box-sizing: border-box; - position: relative; - padding: 8px; -} - -.upload-area__background { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - border-radius: 4px; - background: $ui-base-color; - box-shadow: 0 0 5px rgba($base-shadow-color, 0.2); -} - -.upload-area__content { - flex: 1; - display: flex; - align-items: center; - justify-content: center; - color: $secondary-text-color; - font-size: 18px; - font-weight: 500; - border: 2px dashed $ui-base-lighter-color; - border-radius: 4px; -} - -.dropdown--active .emoji-button img { - opacity: 1; - filter: none; -} - -.loading-bar { - background-color: $ui-highlight-color; - height: 3px; - position: fixed; - top: 0; - left: 0; - z-index: 9999; -} - -.icon-badge-wrapper { - position: relative; -} - -.icon-badge { - position: absolute; - display: block; - right: -0.25em; - top: -0.25em; - background-color: $ui-highlight-color; - border-radius: 50%; - font-size: 75%; - width: 1em; - height: 1em; -} - -.conversation { - display: flex; - border-bottom: 1px solid lighten($ui-base-color, 8%); - padding: 5px; - padding-bottom: 0; - - &:focus { - background: lighten($ui-base-color, 2%); - outline: 0; - } - - &__avatar { - flex: 0 0 auto; - padding: 10px; - padding-top: 12px; - position: relative; - cursor: pointer; - } - - &__unread { - display: inline-block; - background: $highlight-text-color; - border-radius: 50%; - width: 0.625rem; - height: 0.625rem; - margin: -0.1ex 0.15em 0.1ex; - } - - &__content { - flex: 1 1 auto; - padding: 10px 5px; - padding-right: 15px; - overflow: hidden; - - &__info { - overflow: hidden; - display: flex; - flex-direction: row-reverse; - justify-content: space-between; - } - - &__relative-time { - font-size: 15px; - color: $darker-text-color; - padding-left: 15px; - } - - &__names { - color: $darker-text-color; - font-size: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - margin-bottom: 4px; - flex-basis: 90px; - flex-grow: 1; - - a { - color: $primary-text-color; - text-decoration: none; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } - } - - .status__content { - margin: 0; - } - } - - &--unread { - background: lighten($ui-base-color, 2%); - - &:focus { - background: lighten($ui-base-color, 4%); - } - - .conversation__content__info { - font-weight: 700; - } - - .conversation__content__relative-time { - color: $primary-text-color; - } - } -} - -.ui .flash-message { - margin-top: 10px; - margin-left: auto; - margin-right: auto; - margin-bottom: 0; - min-width: 75%; -} - -::-webkit-scrollbar-thumb { - border-radius: 0; -} - -noscript { - text-align: center; - - img { - width: 200px; - opacity: 0.5; - animation: flicker 4s infinite; - } - - div { - font-size: 14px; - margin: 30px auto; - color: $secondary-text-color; - max-width: 400px; - - a { - color: $highlight-text-color; - text-decoration: underline; - - &:hover { - text-decoration: none; - } - } - - a { - word-break: break-word; - } - } -} - -@keyframes flicker { - 0% { - opacity: 1; - } - - 30% { - opacity: 0.75; - } - - 100% { - opacity: 1; - } -} - +@import 'misc'; @import 'boost'; @import 'accounts'; @import 'domains'; diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss new file mode 100644 index 0000000000..2cd9b75037 --- /dev/null +++ b/app/javascript/flavours/glitch/styles/components/misc.scss @@ -0,0 +1,1813 @@ +.app-body { + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +.animated-number { + display: inline-flex; + flex-direction: column; + align-items: stretch; + overflow: hidden; + position: relative; +} + +.link-button { + display: block; + font-size: 15px; + line-height: 20px; + color: $highlight-text-color; + border: 0; + background: transparent; + padding: 0; + cursor: pointer; + text-decoration: none; + + &--destructive { + color: $error-value-color; + } + + &:hover, + &:active { + text-decoration: underline; + } + + &:disabled { + color: $ui-primary-color; + cursor: default; + } +} + +.button { + background-color: darken($ui-highlight-color, 3%); + border: 10px none; + border-radius: 4px; + box-sizing: border-box; + color: $primary-text-color; + cursor: pointer; + display: inline-block; + font-family: inherit; + font-size: 15px; + font-weight: 500; + letter-spacing: 0; + line-height: 22px; + overflow: hidden; + padding: 7px 18px; + position: relative; + text-align: center; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + width: auto; + + &:active, + &:focus, + &:hover { + background-color: $ui-highlight-color; + } + + &--destructive { + &:active, + &:focus, + &:hover { + background-color: $error-red; + transition: none; + } + } + + &:disabled { + background-color: $ui-primary-color; + cursor: default; + } + + &.button-alternative { + color: $inverted-text-color; + background: $ui-primary-color; + + &:active, + &:focus, + &:hover { + background-color: lighten($ui-primary-color, 4%); + } + } + + &.button-alternative-2 { + background: $ui-base-lighter-color; + + &:active, + &:focus, + &:hover { + background-color: lighten($ui-base-lighter-color, 4%); + } + } + + &.button-secondary { + font-size: 16px; + line-height: 36px; + height: auto; + color: $darker-text-color; + text-transform: none; + background: transparent; + padding: 6px 17px; + border: 1px solid $ui-primary-color; + + &:active, + &:focus, + &:hover { + border-color: lighten($ui-primary-color, 4%); + color: lighten($darker-text-color, 4%); + text-decoration: none; + } + + &:disabled { + opacity: 0.5; + } + } + + &.button-tertiary { + background: transparent; + padding: 6px 17px; + color: $highlight-text-color; + border: 1px solid $highlight-text-color; + + &:active, + &:focus, + &:hover { + background: $ui-highlight-color; + color: $primary-text-color; + border: 0; + padding: 7px 18px; + } + + &:disabled { + opacity: 0.5; + } + + &.button--confirmation { + color: $valid-value-color; + border-color: $valid-value-color; + + &:active, + &:focus, + &:hover { + background: $valid-value-color; + color: $primary-text-color; + } + } + + &.button--destructive { + color: $error-value-color; + border-color: $error-value-color; + + &:active, + &:focus, + &:hover { + background: $error-value-color; + color: $primary-text-color; + } + } + } + + &.button--block { + display: block; + width: 100%; + } + + .layout-multiple-columns &.button--with-bell { + font-size: 12px; + padding: 0 8px; + } +} + +.icon-button { + display: inline-block; + padding: 0; + color: $action-button-color; + border: 0; + border-radius: 4px; + background: transparent; + cursor: pointer; + transition: all 100ms ease-in; + transition-property: background-color, color; + text-decoration: none; + + a { + color: inherit; + text-decoration: none; + } + + &:hover, + &:active, + &:focus { + color: lighten($action-button-color, 7%); + background-color: rgba($action-button-color, 0.15); + transition: all 200ms ease-out; + transition-property: background-color, color; + } + + &:focus { + background-color: rgba($action-button-color, 0.3); + } + + &.disabled { + color: darken($action-button-color, 13%); + background-color: transparent; + cursor: default; + } + + &.active { + color: $highlight-text-color; + } + + &.copyable { + transition: background 300ms linear; + } + + &.copied { + background: $valid-value-color; + transition: none; + } + + &::-moz-focus-inner { + border: 0; + } + + &::-moz-focus-inner, + &:focus, + &:active { + outline: 0 !important; + } + + &.inverted { + color: $lighter-text-color; + + &:hover, + &:active, + &:focus { + color: darken($lighter-text-color, 7%); + background-color: rgba($lighter-text-color, 0.15); + } + + &:focus { + background-color: rgba($lighter-text-color, 0.3); + } + + &.disabled { + color: lighten($lighter-text-color, 7%); + background-color: transparent; + } + + &.active { + color: $highlight-text-color; + + &.disabled { + color: lighten($highlight-text-color, 13%); + } + } + } + + &.overlayed { + box-sizing: content-box; + background: rgba($base-overlay-background, 0.6); + color: rgba($primary-text-color, 0.7); + border-radius: 4px; + padding: 2px; + + &:hover { + background: rgba($base-overlay-background, 0.9); + } + } + + &--with-counter { + display: inline-flex; + align-items: center; + width: auto !important; + padding: 0 4px 0 2px; + } + + &__counter { + display: inline-block; + width: auto; + margin-left: 4px; + font-size: 12px; + font-weight: 500; + } +} + +.text-icon, +.text-icon-button { + font-weight: 600; + font-size: 11px; + line-height: 27px; + cursor: default; +} + +.text-icon-button { + color: $lighter-text-color; + border: 0; + border-radius: 4px; + background: transparent; + cursor: pointer; + padding: 0 3px; + outline: 0; + transition: all 100ms ease-in; + transition-property: background-color, color; + + &:hover, + &:active, + &:focus { + color: darken($lighter-text-color, 7%); + background-color: rgba($lighter-text-color, 0.15); + transition: all 200ms ease-out; + transition-property: background-color, color; + } + + &:focus { + background-color: rgba($lighter-text-color, 0.3); + } + + &.disabled { + color: lighten($lighter-text-color, 20%); + background-color: transparent; + cursor: default; + } + + &.active { + color: $highlight-text-color; + } + + &::-moz-focus-inner { + border: 0; + } + + &::-moz-focus-inner, + &:focus, + &:active { + outline: 0 !important; + } +} + +body > [data-popper-placement] { + z-index: 3; +} + +.invisible { + font-size: 0; + line-height: 0; + display: inline-block; + width: 0; + height: 0; + position: absolute; + + img, + svg { + margin: 0 !important; + border: 0 !important; + padding: 0 !important; + width: 0 !important; + height: 0 !important; + } +} + +.ellipsis { + &::after { + content: '…'; + } +} + +.notification__favourite-icon-wrapper { + left: 0; + position: absolute; + + .fa.star-icon { + color: $gold-star; + } +} + +.icon-button.star-icon.active { + color: $gold-star; +} + +.icon-button.bookmark-icon.active { + color: $red-bookmark; +} + +.no-reduce-motion .icon-button.star-icon { + &.activate { + & > .fa-star { + animation: spring-rotate-in 1s linear; + } + } + + &.deactivate { + & > .fa-star { + animation: spring-rotate-out 1s linear; + } + } +} + +.notification__display-name { + color: inherit; + font-weight: 500; + text-decoration: none; + + &:hover { + color: $primary-text-color; + text-decoration: underline; + } +} + +.display-name { + display: block; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + a { + color: inherit; + text-decoration: inherit; + } + + strong { + display: block; + } + + > a:hover { + strong { + text-decoration: underline; + } + } + + &.inline { + padding: 0; + height: 18px; + font-size: 15px; + line-height: 18px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + + strong { + display: inline; + height: auto; + font-size: inherit; + line-height: inherit; + } + + span { + display: inline; + height: auto; + font-size: inherit; + line-height: inherit; + } + } +} + +.display-name__html { + font-weight: 500; +} + +.display-name__account { + font-size: 14px; +} + +.image-loader { + position: relative; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + scrollbar-width: none; /* Firefox */ + -ms-overflow-style: none; /* IE 10+ */ + + * { + scrollbar-width: none; /* Firefox */ + -ms-overflow-style: none; /* IE 10+ */ + } + + &::-webkit-scrollbar, + *::-webkit-scrollbar { + width: 0; + height: 0; + background: transparent; /* Chrome/Safari/Webkit */ + } + + .image-loader__preview-canvas { + max-width: $media-modal-media-max-width; + max-height: $media-modal-media-max-height; + background: url('~images/void.png') repeat; + object-fit: contain; + } + + .loading-bar__container { + position: relative; + } + + .loading-bar { + position: absolute; + } + + &.image-loader--amorphous .image-loader__preview-canvas { + display: none; + } +} + +.zoomable-image { + position: relative; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + + img { + max-width: $media-modal-media-max-width; + max-height: $media-modal-media-max-height; + width: auto; + height: auto; + object-fit: contain; + } +} + +.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; +} + +.dropdown__content { + display: none; + position: absolute; +} + +.dropdown-menu__separator { + border-bottom: 1px solid darken($ui-secondary-color, 8%); + margin: 5px 7px 6px; + height: 0; +} + +.dropdown-menu { + background: $ui-secondary-color; + padding: 4px 0; + border-radius: 4px; + box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); + z-index: 9999; + + &__text-button { + display: inline; + color: inherit; + background: transparent; + border: 0; + margin: 0; + padding: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; + + &:focus { + outline: 1px dotted; + } + } + + &__container { + &__header { + border-bottom: 1px solid darken($ui-secondary-color, 8%); + padding: 4px 14px; + padding-bottom: 8px; + font-size: 13px; + line-height: 18px; + color: $inverted-text-color; + } + + &__list { + list-style: none; + + &--scrollable { + max-height: 300px; + overflow-y: scroll; + } + } + + &--loading { + display: flex; + align-items: center; + justify-content: center; + padding: 30px 45px; + } + } +} + +.dropdown-menu__arrow { + position: absolute; + + &::before { + content: ''; + display: block; + width: 14px; + height: 5px; + background-color: $ui-secondary-color; + mask-image: url("data:image/svg+xml;utf8,"); + } + + &.top { + bottom: -5px; + + &::before { + transform: rotate(180deg); + } + } + + &.right { + left: -9px; + + &::before { + transform: rotate(-90deg); + } + } + + &.bottom { + top: -5px; + } + + &.left { + right: -9px; + + &::before { + transform: rotate(90deg); + } + } +} + +.dropdown-menu__item { + font-size: 13px; + line-height: 18px; + display: block; + color: $inverted-text-color; + + a, + button { + font-family: inherit; + font-size: inherit; + line-height: inherit; + display: block; + width: 100%; + padding: 4px 14px; + border: 0; + margin: 0; + box-sizing: border-box; + text-decoration: none; + background: $ui-secondary-color; + color: inherit; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + text-align: inherit; + + &:focus, + &:hover, + &:active { + background: $ui-highlight-color; + color: $secondary-text-color; + outline: 0; + } + } +} + +.dropdown-menu__item--text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding: 4px 14px; +} + +.dropdown-menu__item.edited-timestamp__history__item { + border-bottom: 1px solid darken($ui-secondary-color, 8%); + + &:last-child { + border-bottom: 0; + } + + &.dropdown-menu__item--text, + a, + button { + padding: 8px 14px; + } +} + +.inline-account { + display: inline-flex; + align-items: center; + vertical-align: top; + + .account__avatar { + margin-right: 5px; + border-radius: 50%; + } + + strong { + font-weight: 600; + } +} + +.dropdown--active .dropdown__content { + display: block; + line-height: 18px; + max-width: 311px; + right: 0; + text-align: left; + z-index: 9999; + + & > ul { + list-style: none; + background: $ui-secondary-color; + padding: 4px 0; + border-radius: 4px; + box-shadow: 0 0 15px rgba($base-shadow-color, 0.4); + min-width: 140px; + position: relative; + } + + &.dropdown__right { + right: 0; + } + + &.dropdown__left { + & > ul { + left: -98px; + } + } + + & > ul > li > a { + font-size: 13px; + line-height: 18px; + display: block; + padding: 4px 14px; + box-sizing: border-box; + text-decoration: none; + background: $ui-secondary-color; + color: $inverted-text-color; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + &:focus { + outline: 0; + } + + &:hover { + background: $ui-highlight-color; + color: $secondary-text-color; + } + } +} + +.dropdown__icon { + vertical-align: middle; +} + +.static-content { + padding: 10px; + padding-top: 20px; + color: $dark-text-color; + + h1 { + font-size: 16px; + font-weight: 500; + margin-bottom: 40px; + text-align: center; + } + + p { + font-size: 13px; + margin-bottom: 20px; + } +} + +.column, +.drawer { + flex: 1 1 100%; + overflow: hidden; +} + +@media screen and (min-width: 631px) { + .columns-area { + padding: 0; + } + + .column, + .drawer { + flex: 0 0 auto; + padding: 10px; + padding-left: 5px; + padding-right: 5px; + + &:first-child { + padding-left: 10px; + } + + &:last-child { + padding-right: 10px; + } + } + + .columns-area > div { + .column, + .drawer { + padding-left: 5px; + padding-right: 5px; + } + } +} + +.tabs-bar { + box-sizing: border-box; + display: flex; + background: lighten($ui-base-color, 8%); + flex: 0 0 auto; + overflow-y: auto; +} + +.tabs-bar__link { + display: block; + flex: 1 1 auto; + padding: 15px 10px; + padding-bottom: 13px; + color: $primary-text-color; + text-decoration: none; + text-align: center; + font-size: 14px; + font-weight: 500; + border-bottom: 2px solid lighten($ui-base-color, 8%); + transition: all 50ms linear; + transition-property: border-bottom, background, color; + + .fa { + font-weight: 400; + font-size: 16px; + } + + &:hover, + &:focus, + &:active { + @include multi-columns('screen and (min-width: 631px)') { + background: lighten($ui-base-color, 14%); + border-bottom-color: lighten($ui-base-color, 14%); + } + } + + &.active { + border-bottom: 2px solid $ui-highlight-color; + color: $highlight-text-color; + } + + span { + margin-left: 5px; + display: none; + } + + span.icon { + margin-left: 0; + display: inline; + } +} + +.icon-with-badge { + position: relative; + + &__badge { + position: absolute; + left: 9px; + top: -13px; + background: $ui-highlight-color; + border: 2px solid lighten($ui-base-color, 8%); + padding: 1px 6px; + border-radius: 6px; + font-size: 10px; + font-weight: 500; + line-height: 14px; + color: $primary-text-color; + } + + &__issue-badge { + position: absolute; + left: 11px; + bottom: 1px; + display: block; + background: $error-red; + border-radius: 50%; + width: 0.625rem; + height: 0.625rem; + } +} + +.column-link--transparent .icon-with-badge__badge { + border-color: darken($ui-base-color, 8%); +} + +.scrollable { + overflow-y: scroll; + overflow-x: hidden; + flex: 1 1 auto; + -webkit-overflow-scrolling: touch; + + &.optionally-scrollable { + overflow-y: auto; + } + + @supports (display: grid) { + // hack to fix Chrome <57 + contain: strict; + } + + &--flex { + display: flex; + flex-direction: column; + } + + &__append { + flex: 1 1 auto; + position: relative; + min-height: 120px; + } + + .scrollable { + flex: 1 1 auto; + } +} + +.scrollable.fullscreen { + @supports (display: grid) { + // hack to fix Chrome <57 + contain: none; + } +} + +.react-toggle { + display: inline-block; + position: relative; + cursor: pointer; + background-color: transparent; + border: 0; + padding: 0; + user-select: none; + -webkit-tap-highlight-color: rgba($base-overlay-background, 0); + -webkit-tap-highlight-color: transparent; +} + +.react-toggle-screenreader-only { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.react-toggle--disabled { + cursor: not-allowed; + opacity: 0.5; + transition: opacity 0.25s; +} + +.react-toggle-track { + width: 50px; + height: 24px; + padding: 0; + border-radius: 30px; + background-color: $ui-base-color; + transition: background-color 0.2s ease; +} + +.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { + background-color: darken($ui-base-color, 10%); +} + +.react-toggle--checked .react-toggle-track { + background-color: darken($ui-highlight-color, 2%); +} + +.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) + .react-toggle-track { + background-color: $ui-highlight-color; +} + +.react-toggle-track-check { + position: absolute; + width: 14px; + height: 10px; + top: 0; + bottom: 0; + margin-top: auto; + margin-bottom: auto; + line-height: 0; + left: 8px; + opacity: 0; + transition: opacity 0.25s ease; +} + +.react-toggle--checked .react-toggle-track-check { + opacity: 1; + transition: opacity 0.25s ease; +} + +.react-toggle-track-x { + position: absolute; + width: 10px; + height: 10px; + top: 0; + bottom: 0; + margin-top: auto; + margin-bottom: auto; + line-height: 0; + right: 10px; + opacity: 1; + transition: opacity 0.25s ease; +} + +.react-toggle--checked .react-toggle-track-x { + opacity: 0; +} + +.react-toggle-thumb { + position: absolute; + top: 1px; + left: 1px; + width: 22px; + height: 22px; + border: 1px solid $ui-base-color; + border-radius: 50%; + background-color: darken($simple-background-color, 2%); + box-sizing: border-box; + transition: all 0.25s ease; + transition-property: border-color, left; +} + +.react-toggle--checked .react-toggle-thumb { + left: 27px; + border-color: $ui-highlight-color; +} + +.getting-started__wrapper, +.getting_started, +.flex-spacer { + background: $ui-base-color; +} + +.getting-started__wrapper { + position: relative; + overflow-y: auto; +} + +.flex-spacer { + flex: 1 1 auto; +} + +.getting-started { + background: $ui-base-color; + flex: 1 0 auto; + + p { + color: $secondary-text-color; + } + + a { + color: $dark-text-color; + } + + &__trends { + flex: 0 1 auto; + opacity: 1; + animation: fade 150ms linear; + margin-top: 10px; + + h4 { + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 10px; + font-size: 12px; + text-transform: uppercase; + font-weight: 500; + + a { + color: $darker-text-color; + text-decoration: none; + } + } + + @media screen and (max-height: 810px) { + .trends__item:nth-of-type(3) { + display: none; + } + } + + @media screen and (max-height: 720px) { + .trends__item:nth-of-type(2) { + display: none; + } + } + + @media screen and (max-height: 670px) { + display: none; + } + + .trends__item { + border-bottom: 0; + padding: 10px; + + &__current { + color: $darker-text-color; + } + } + } +} + +.column-link__badge { + display: inline-block; + border-radius: 4px; + font-size: 12px; + line-height: 19px; + font-weight: 500; + background: $ui-base-color; + padding: 4px 8px; + margin: -6px 10px; +} + +.keyboard-shortcuts { + padding: 8px 0 0; + overflow: hidden; + + thead { + position: absolute; + left: -9999px; + } + + td { + padding: 0 10px 8px; + } + + kbd { + display: inline-block; + padding: 3px 5px; + background-color: lighten($ui-base-color, 8%); + border: 1px solid darken($ui-base-color, 4%); + } +} + +.setting-text { + color: $darker-text-color; + background: transparent; + border: 0; + border-bottom: 2px solid $ui-primary-color; + outline: 0; + box-sizing: border-box; + display: block; + font-family: inherit; + margin-bottom: 10px; + padding: 7px 0; + width: 100%; + + &:focus, + &:active { + color: $primary-text-color; + border-bottom-color: $ui-highlight-color; + } + + @include limited-single-column('screen and (max-width: 600px)') { + font-size: 16px; + } + + &.light { + color: $inverted-text-color; + border-bottom: 2px solid lighten($ui-base-color, 27%); + + &:focus, + &:active { + color: $inverted-text-color; + border-bottom-color: $ui-highlight-color; + } + } +} + +button.icon-button i.fa-retweet { + background-position: 0 0; + height: 19px; + transition: background-position 0.9s steps(10); + transition-duration: 0s; + vertical-align: middle; + width: 22px; + + &::before { + display: none !important; + } +} + +button.icon-button.active i.fa-retweet { + transition-duration: 0.9s; + background-position: 0 100%; +} + +.reduce-motion button.icon-button i.fa-retweet, +.reduce-motion button.icon-button.active i.fa-retweet { + transition: none; +} + +.reduce-motion button.icon-button.disabled i.fa-retweet { + color: darken($action-button-color, 13%); +} + +.load-more { + display: block; + color: $dark-text-color; + background-color: transparent; + border: 0; + font-size: inherit; + text-align: center; + line-height: inherit; + margin: 0; + padding: 15px; + box-sizing: border-box; + width: 100%; + clear: both; + text-decoration: none; + + &:hover { + background: lighten($ui-base-color, 2%); + } +} + +.load-gap { + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.timeline-hint { + text-align: center; + color: $darker-text-color; + padding: 15px; + box-sizing: border-box; + width: 100%; + cursor: default; + + strong { + font-weight: 500; + } + + a { + color: $highlight-text-color; + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: underline; + color: lighten($highlight-text-color, 4%); + } + } +} + +.missing-indicator { + padding-top: 20px + 48px; + + .regeneration-indicator__figure { + background-image: url('~flavours/glitch/images/elephant_ui_disappointed.svg'); + } +} + +.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy { + border-top: 1px solid $ui-base-color; +} + +.notification__dismiss-overlay { + overflow: hidden; + position: absolute; + top: 0; + right: 0; + bottom: -1px; + padding-left: 15px; // space for the box shadow to be visible + z-index: 999; + align-items: center; + justify-content: flex-end; + cursor: pointer; + display: flex; + + .wrappy { + width: $dismiss-overlay-width; + align-self: stretch; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: lighten($ui-base-color, 8%); + border-left: 1px solid lighten($ui-base-color, 20%); + box-shadow: 0 0 5px black; + border-bottom: 1px solid $ui-base-color; + } + + .ckbox { + border: 2px solid $ui-primary-color; + border-radius: 2px; + width: 30px; + height: 30px; + font-size: 20px; + color: $darker-text-color; + text-shadow: 0 0 5px black; + display: flex; + justify-content: center; + align-items: center; + } + + &:focus { + outline: 0 !important; + + .ckbox { + box-shadow: 0 0 1px 1px $ui-highlight-color; + } + } +} + +.text-btn { + display: inline-block; + padding: 0; + font-family: inherit; + font-size: inherit; + color: inherit; + border: 0; + background: transparent; + cursor: pointer; +} + +.loading-indicator { + color: $dark-text-color; + font-size: 12px; + font-weight: 400; + text-transform: uppercase; + overflow: visible; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + align-items: center; + justify-content: center; +} + +.circular-progress { + color: lighten($ui-base-color, 26%); + animation: 1.4s linear 0s infinite normal none running simple-rotate; + + circle { + stroke: currentColor; + stroke-dasharray: 80px, 200px; + stroke-dashoffset: 0; + animation: circular-progress 1.4s ease-in-out infinite; + } +} + +@keyframes circular-progress { + 0% { + stroke-dasharray: 1px, 200px; + stroke-dashoffset: 0; + } + + 50% { + stroke-dasharray: 100px, 200px; + stroke-dashoffset: -15px; + } + + 100% { + stroke-dasharray: 100px, 200px; + stroke-dashoffset: -125px; + } +} + +@keyframes simple-rotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +@keyframes spring-rotate-in { + 0% { + transform: rotate(0deg); + } + + 30% { + transform: rotate(-484.8deg); + } + + 60% { + transform: rotate(-316.7deg); + } + + 90% { + transform: rotate(-375deg); + } + + 100% { + transform: rotate(-360deg); + } +} + +@keyframes spring-rotate-out { + 0% { + transform: rotate(-360deg); + } + + 30% { + transform: rotate(124.8deg); + } + + 60% { + transform: rotate(-43.27deg); + } + + 90% { + transform: rotate(15deg); + } + + 100% { + transform: rotate(0deg); + } +} + +.spoiler-button { + top: 0; + left: 0; + width: 100%; + height: 100%; + position: absolute; + z-index: 100; + + &--minified { + display: flex; + left: 4px; + top: 4px; + width: auto; + height: auto; + align-items: center; + } + + &--click-thru { + pointer-events: none; + } + + &--hidden { + display: none; + } + + &__overlay { + display: block; + background: transparent; + width: 100%; + height: 100%; + border: 0; + + &__label { + display: inline-block; + background: rgba($base-overlay-background, 0.5); + border-radius: 8px; + padding: 8px 12px; + color: $primary-text-color; + font-weight: 500; + font-size: 14px; + } + + &:hover, + &:focus, + &:active { + .spoiler-button__overlay__label { + background: rgba($base-overlay-background, 0.8); + } + } + + &:disabled { + .spoiler-button__overlay__label { + background: rgba($base-overlay-background, 0.5); + } + } + } +} + +.setting-toggle { + display: block; + line-height: 24px; +} + +.setting-toggle__label, +.setting-meta__label { + color: $darker-text-color; + display: inline-block; + margin-bottom: 14px; + margin-left: 8px; + vertical-align: middle; +} + +.column-settings__row .radio-button { + display: block; +} + +.setting-meta__label { + float: right; +} + +@keyframes heartbeat { + 0% { + transform: scale(1); + transform-origin: center center; + animation-timing-function: ease-out; + } + + 10% { + transform: scale(0.91); + animation-timing-function: ease-in; + } + + 17% { + transform: scale(0.98); + animation-timing-function: ease-out; + } + + 33% { + transform: scale(0.87); + animation-timing-function: ease-in; + } + + 45% { + transform: scale(1); + animation-timing-function: ease-out; + } +} + +.pulse-loading { + animation: heartbeat 1.5s ease-in-out infinite both; +} + +.upload-area { + align-items: center; + background: rgba($base-overlay-background, 0.8); + display: flex; + height: 100vh; + justify-content: center; + left: 0; + opacity: 0; + position: fixed; + top: 0; + visibility: hidden; + width: 100vw; + z-index: 2000; + + * { + pointer-events: none; + } +} + +.upload-area__drop { + width: 320px; + height: 160px; + display: flex; + box-sizing: border-box; + position: relative; + padding: 8px; +} + +.upload-area__background { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + border-radius: 4px; + background: $ui-base-color; + box-shadow: 0 0 5px rgba($base-shadow-color, 0.2); +} + +.upload-area__content { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + color: $secondary-text-color; + font-size: 18px; + font-weight: 500; + border: 2px dashed $ui-base-lighter-color; + border-radius: 4px; +} + +.dropdown--active .emoji-button img { + opacity: 1; + filter: none; +} + +.loading-bar { + background-color: $ui-highlight-color; + height: 3px; + position: fixed; + top: 0; + left: 0; + z-index: 9999; +} + +.icon-badge-wrapper { + position: relative; +} + +.icon-badge { + position: absolute; + display: block; + right: -0.25em; + top: -0.25em; + background-color: $ui-highlight-color; + border-radius: 50%; + font-size: 75%; + width: 1em; + height: 1em; +} + +.conversation { + display: flex; + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 5px; + padding-bottom: 0; + + &:focus { + background: lighten($ui-base-color, 2%); + outline: 0; + } + + &__avatar { + flex: 0 0 auto; + padding: 10px; + padding-top: 12px; + position: relative; + cursor: pointer; + } + + &__unread { + display: inline-block; + background: $highlight-text-color; + border-radius: 50%; + width: 0.625rem; + height: 0.625rem; + margin: -0.1ex 0.15em 0.1ex; + } + + &__content { + flex: 1 1 auto; + padding: 10px 5px; + padding-right: 15px; + overflow: hidden; + + &__info { + overflow: hidden; + display: flex; + flex-direction: row-reverse; + justify-content: space-between; + } + + &__relative-time { + font-size: 15px; + color: $darker-text-color; + padding-left: 15px; + } + + &__names { + color: $darker-text-color; + font-size: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-bottom: 4px; + flex-basis: 90px; + flex-grow: 1; + + a { + color: $primary-text-color; + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: underline; + } + } + } + + .status__content { + margin: 0; + } + } + + &--unread { + background: lighten($ui-base-color, 2%); + + &:focus { + background: lighten($ui-base-color, 4%); + } + + .conversation__content__info { + font-weight: 700; + } + + .conversation__content__relative-time { + color: $primary-text-color; + } + } +} + +.ui .flash-message { + margin-top: 10px; + margin-left: auto; + margin-right: auto; + margin-bottom: 0; + min-width: 75%; +} + +::-webkit-scrollbar-thumb { + border-radius: 0; +} + +noscript { + text-align: center; + + img { + width: 200px; + opacity: 0.5; + animation: flicker 4s infinite; + } + + div { + font-size: 14px; + margin: 30px auto; + color: $secondary-text-color; + max-width: 400px; + + a { + color: $highlight-text-color; + text-decoration: underline; + + &:hover { + text-decoration: none; + } + } + + a { + word-break: break-word; + } + } +} + +@keyframes flicker { + 0% { + opacity: 1; + } + + 30% { + opacity: 0.75; + } + + 100% { + opacity: 1; + } +} From d3eefead3014175b264cb56f6f4cb552cbaaeac6 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sun, 26 Feb 2023 20:13:27 +0100 Subject: [PATCH 0553/1220] Add `lang` attribute to media and poll options (#23891) --- app/javascript/mastodon/components/gifv.jsx | 5 ++++- .../mastodon/components/media_attachments.jsx | 6 +++++- .../mastodon/components/media_gallery.jsx | 15 +++++++++------ app/javascript/mastodon/components/poll.jsx | 5 ++++- app/javascript/mastodon/components/status.jsx | 3 +++ .../mastodon/components/status_content.jsx | 2 +- .../account_gallery/components/media_item.jsx | 3 +++ app/javascript/mastodon/features/audio/index.jsx | 4 +++- .../status/components/detailed_status.jsx | 3 +++ .../features/ui/components/audio_modal.jsx | 7 +++++-- .../ui/components/compare_history_modal.jsx | 11 +++++++---- .../features/ui/components/image_loader.jsx | 5 ++++- .../features/ui/components/media_modal.jsx | 13 +++++++++++-- .../features/ui/components/video_modal.jsx | 12 ++++++++++-- .../features/ui/components/zoomable_image.jsx | 5 ++++- app/javascript/mastodon/features/video/index.jsx | 4 +++- 16 files changed, 79 insertions(+), 24 deletions(-) diff --git a/app/javascript/mastodon/components/gifv.jsx b/app/javascript/mastodon/components/gifv.jsx index 1f0f99b464..9ec201c6cc 100644 --- a/app/javascript/mastodon/components/gifv.jsx +++ b/app/javascript/mastodon/components/gifv.jsx @@ -6,6 +6,7 @@ export default class GIFV extends React.PureComponent { static propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, width: PropTypes.number, height: PropTypes.number, onClick: PropTypes.func, @@ -35,7 +36,7 @@ export default class GIFV extends React.PureComponent { }; render () { - const { src, width, height, alt } = this.props; + const { src, width, height, alt, lang } = this.props; const { loading } = this.state; return ( @@ -48,6 +49,7 @@ export default class GIFV extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} onClick={this.handleClick} /> )} @@ -58,6 +60,7 @@ export default class GIFV extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} muted loop autoPlay diff --git a/app/javascript/mastodon/components/media_attachments.jsx b/app/javascript/mastodon/components/media_attachments.jsx index 565a303301..0e25e59734 100644 --- a/app/javascript/mastodon/components/media_attachments.jsx +++ b/app/javascript/mastodon/components/media_attachments.jsx @@ -10,6 +10,7 @@ export default class MediaAttachments extends ImmutablePureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, + lang: PropTypes.string, height: PropTypes.number, width: PropTypes.number, }; @@ -48,7 +49,7 @@ export default class MediaAttachments extends ImmutablePureComponent { }; render () { - const { status, width, height } = this.props; + const { status, lang, width, height } = this.props; const mediaAttachments = status.get('media_attachments'); if (mediaAttachments.size === 0) { @@ -64,6 +65,7 @@ export default class MediaAttachments extends ImmutablePureComponent { ( - + @@ -188,6 +190,7 @@ class Item extends React.PureComponent { className='media-gallery__item-gifv-thumbnail' aria-label={attachment.get('description')} title={attachment.get('description')} + lang={lang} role='application' src={attachment.get('url')} onClick={this.handleClick} @@ -227,6 +230,7 @@ class MediaGallery extends React.PureComponent { sensitive: PropTypes.bool, standalone: PropTypes.bool, media: ImmutablePropTypes.list.isRequired, + lang: PropTypes.string, size: PropTypes.object, height: PropTypes.number.isRequired, onOpenMedia: PropTypes.func.isRequired, @@ -310,9 +314,8 @@ class MediaGallery extends React.PureComponent { } render () { - const { media, intl, sensitive, height, defaultWidth, standalone, autoplay } = this.props; + const { media, lang, intl, sensitive, height, defaultWidth, standalone, autoplay } = this.props; const { visible } = this.state; - const width = this.state.width || defaultWidth; let children, spoilerButton; @@ -333,9 +336,9 @@ class MediaGallery extends React.PureComponent { const uncached = media.every(attachment => attachment.get('type') === 'unknown'); if (standalone && this.isFullSizeEligible()) { - children = ; + children = ; } else { - children = media.take(4).map((attachment, i) => ); + children = media.take(4).map((attachment, i) => ); } if (uncached) { diff --git a/app/javascript/mastodon/components/poll.jsx b/app/javascript/mastodon/components/poll.jsx index 95a900c49f..7efedfe345 100644 --- a/app/javascript/mastodon/components/poll.jsx +++ b/app/javascript/mastodon/components/poll.jsx @@ -40,6 +40,7 @@ class Poll extends ImmutablePureComponent { static propTypes = { poll: ImmutablePropTypes.map, + lang: PropTypes.string, intl: PropTypes.object.isRequired, disabled: PropTypes.bool, refresh: PropTypes.func, @@ -126,7 +127,7 @@ class Poll extends ImmutablePureComponent { }; renderOption (option, optionIndex, showResults) { - const { poll, disabled, intl } = this.props; + const { poll, lang, disabled, intl } = this.props; const pollVotesCount = poll.get('voters_count') || poll.get('votes_count'); const percent = pollVotesCount === 0 ? 0 : (option.get('votes_count') / pollVotesCount) * 100; const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count')); @@ -159,6 +160,7 @@ class Poll extends ImmutablePureComponent { onKeyPress={this.handleOptionKeyPress} aria-checked={active} aria-label={option.get('title')} + lang={lang} data-index={optionIndex} /> )} @@ -175,6 +177,7 @@ class Poll extends ImmutablePureComponent { diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 2e2d966345..a48230bafa 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -417,6 +417,7 @@ class Status extends ImmutablePureComponent { ( + ); if (status.get('spoiler_text').length > 0) { diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.jsx b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx index d6d60ebda7..53b04acfd3 100644 --- a/app/javascript/mastodon/features/account_gallery/components/media_item.jsx +++ b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx @@ -76,6 +76,7 @@ export default class MediaItem extends ImmutablePureComponent { {attachment.get('description')} ); @@ -95,6 +96,7 @@ export default class MediaItem extends ImmutablePureComponent { {attachment.get('description')} @@ -105,6 +107,7 @@ export default class MediaItem extends ImmutablePureComponent { className='media-gallery__item-gifv-thumbnail' aria-label={attachment.get('description')} title={attachment.get('description')} + lang={status.get('language')} role='application' src={attachment.get('url')} onMouseEnter={this.handleMouseEnter} diff --git a/app/javascript/mastodon/features/audio/index.jsx b/app/javascript/mastodon/features/audio/index.jsx index bf954c06d4..9a9de02ae8 100644 --- a/app/javascript/mastodon/features/audio/index.jsx +++ b/app/javascript/mastodon/features/audio/index.jsx @@ -28,6 +28,7 @@ class Audio extends React.PureComponent { static propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, poster: PropTypes.string, duration: PropTypes.number, width: PropTypes.number, @@ -458,7 +459,7 @@ class Audio extends React.PureComponent { }; render () { - const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; + const { src, intl, alt, lang, editable, autoPlay, sensitive, blurhash } = this.props; const { paused, muted, volume, currentTime, duration, buffer, dragging, revealed } = this.state; const progress = Math.min((currentTime / duration) * 100, 100); @@ -503,6 +504,7 @@ class Audio extends React.PureComponent { onKeyDown={this.handleAudioKeyDown} title={alt} aria-label={alt} + lang={lang} />
    diff --git a/app/javascript/mastodon/features/status/components/detailed_status.jsx b/app/javascript/mastodon/features/status/components/detailed_status.jsx index 064231ffe3..f9ff57261c 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.jsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.jsx @@ -139,6 +139,7 @@ class DetailedStatus extends ImmutablePureComponent {
    {currentVersion.get('spoiler_text').length > 0 && ( -
    +

    )} -
    +
    {!!currentVersion.get('poll') && (
    @@ -82,6 +84,7 @@ class CompareHistoryModal extends React.PureComponent { ))} @@ -89,7 +92,7 @@ class CompareHistoryModal extends React.PureComponent {
    )} - +
    diff --git a/app/javascript/mastodon/features/ui/components/image_loader.jsx b/app/javascript/mastodon/features/ui/components/image_loader.jsx index 92aeef5c4f..9093eab28e 100644 --- a/app/javascript/mastodon/features/ui/components/image_loader.jsx +++ b/app/javascript/mastodon/features/ui/components/image_loader.jsx @@ -8,6 +8,7 @@ export default class ImageLoader extends PureComponent { static propTypes = { alt: PropTypes.string, + lang: PropTypes.string, src: PropTypes.string.isRequired, previewSrc: PropTypes.string, width: PropTypes.number, @@ -18,6 +19,7 @@ export default class ImageLoader extends PureComponent { static defaultProps = { alt: '', + lang: '', width: null, height: null, }; @@ -129,7 +131,7 @@ export default class ImageLoader extends PureComponent { }; render () { - const { alt, src, width, height, onClick } = this.props; + const { alt, lang, src, width, height, onClick } = this.props; const { loading } = this.state; const className = classNames('image-loader', { @@ -154,6 +156,7 @@ export default class ImageLoader extends PureComponent { ) : ( ({ + language: state.getIn(['statuses', statusId, 'language']), +}); + +export default @connect(mapStateToProps, null, null, { forwardRef: true }) +@injectIntl class MediaModal extends ImmutablePureComponent { static propTypes = { @@ -129,7 +135,7 @@ class MediaModal extends ImmutablePureComponent { }; render () { - const { media, statusId, intl, onClose } = this.props; + const { media, language, statusId, intl, onClose } = this.props; const { navigationHidden } = this.state; const index = this.getIndex(); @@ -149,6 +155,7 @@ class MediaModal extends ImmutablePureComponent { width={width} height={height} alt={image.get('description')} + lang={language} key={image.get('url')} onClick={this.toggleNavigation} zoomButtonHidden={this.state.zoomButtonHidden} @@ -171,6 +178,7 @@ class MediaModal extends ImmutablePureComponent { onCloseVideo={onClose} detailed alt={image.get('description')} + lang={language} key={image.get('url')} /> ); @@ -182,6 +190,7 @@ class MediaModal extends ImmutablePureComponent { height={height} key={image.get('preview_url')} alt={image.get('description')} + lang={language} onClick={this.toggleNavigation} /> ); diff --git a/app/javascript/mastodon/features/ui/components/video_modal.jsx b/app/javascript/mastodon/features/ui/components/video_modal.jsx index abaccbe985..1737d52dba 100644 --- a/app/javascript/mastodon/features/ui/components/video_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/video_modal.jsx @@ -2,15 +2,22 @@ import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Video from 'mastodon/features/video'; +import { connect } from 'react-redux'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Footer from 'mastodon/features/picture_in_picture/components/footer'; import { getAverageFromBlurhash } from 'mastodon/blurhash'; -export default class VideoModal extends ImmutablePureComponent { +const mapStateToProps = (state, { statusId }) => ({ + language: state.getIn(['statuses', statusId, 'language']), +}); + +export default @connect(mapStateToProps, null, null, { forwardRef: true }) +class VideoModal extends ImmutablePureComponent { static propTypes = { media: ImmutablePropTypes.map.isRequired, statusId: PropTypes.string, + language: PropTypes.string, options: PropTypes.shape({ startTime: PropTypes.number, autoPlay: PropTypes.bool, @@ -31,7 +38,7 @@ export default class VideoModal extends ImmutablePureComponent { } render () { - const { media, statusId, onClose } = this.props; + const { media, statusId, language, onClose } = this.props; const options = this.props.options || {}; return ( @@ -49,6 +56,7 @@ export default class VideoModal extends ImmutablePureComponent { autoFocus detailed alt={media.get('description')} + lang={language} />
    diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx index 3b2bb02861..7faba4c101 100644 --- a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx +++ b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx @@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent { static propTypes = { alt: PropTypes.string, + lang: PropTypes.string, src: PropTypes.string.isRequired, width: PropTypes.number, height: PropTypes.number, @@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent { static defaultProps = { alt: '', + lang: '', width: null, height: null, }; @@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent { }; render () { - const { alt, src, width, height, intl } = this.props; + const { alt, lang, src, width, height, intl } = this.props; const { scale, lockTranslate } = this.state; const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll'; const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : ''; @@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent { ref={this.setImageRef} alt={alt} title={alt} + lang={lang} src={src} width={width} height={height} diff --git a/app/javascript/mastodon/features/video/index.jsx b/app/javascript/mastodon/features/video/index.jsx index 8d63394aaf..dc722a7a77 100644 --- a/app/javascript/mastodon/features/video/index.jsx +++ b/app/javascript/mastodon/features/video/index.jsx @@ -102,6 +102,7 @@ class Video extends React.PureComponent { frameRate: PropTypes.string, src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, width: PropTypes.number, height: PropTypes.number, sensitive: PropTypes.bool, @@ -524,7 +525,7 @@ class Video extends React.PureComponent { } render () { - const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, detailed, sensitive, editable, blurhash, autoFocus } = this.props; + const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, 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 = {}; @@ -585,6 +586,7 @@ class Video extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} width={width} height={height} volume={volume} From 4bb39ac3c37fc5319898300c1067bb47443d6041 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 27 Feb 2023 03:31:15 -0500 Subject: [PATCH 0554/1220] Fix single-record invalid condition on PollVote (#23810) --- app/models/poll_vote.rb | 1 + app/validators/vote_validator.rb | 26 +++++++++++++++-- spec/models/poll_vote_spec.rb | 49 ++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 3 deletions(-) diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb index 00eaedd129..92d74a6dbc 100644 --- a/app/models/poll_vote.rb +++ b/app/models/poll_vote.rb @@ -23,6 +23,7 @@ class PollVote < ApplicationRecord after_create_commit :increment_counter_cache delegate :local?, to: :account + delegate :multiple?, :expired?, to: :poll, prefix: true def object_type :vote diff --git a/app/validators/vote_validator.rb b/app/validators/vote_validator.rb index b1692562d4..9c55f9ab6d 100644 --- a/app/validators/vote_validator.rb +++ b/app/validators/vote_validator.rb @@ -2,13 +2,13 @@ class VoteValidator < ActiveModel::Validator def validate(vote) - vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll.expired? + vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll_expired? vote.errors.add(:base, I18n.t('polls.errors.invalid_choice')) if invalid_choice?(vote) - if vote.poll.multiple? && vote.poll.votes.where(account: vote.account, choice: vote.choice).exists? + if vote.poll_multiple? && already_voted_for_same_choice_on_multiple_poll?(vote) vote.errors.add(:base, I18n.t('polls.errors.already_voted')) - elsif !vote.poll.multiple? && vote.poll.votes.where(account: vote.account).exists? + elsif !vote.poll_multiple? && already_voted_on_non_multiple_poll?(vote) vote.errors.add(:base, I18n.t('polls.errors.already_voted')) end end @@ -18,4 +18,24 @@ class VoteValidator < ActiveModel::Validator def invalid_choice?(vote) vote.choice.negative? || vote.choice >= vote.poll.options.size end + + def already_voted_for_same_choice_on_multiple_poll?(vote) + if vote.persisted? + account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists? + else + account_votes_on_same_poll(vote).where(choice: vote.choice).exists? + end + end + + def already_voted_on_non_multiple_poll?(vote) + if vote.persisted? + account_votes_on_same_poll(vote).where.not(poll_votes: { id: vote }).exists? + else + account_votes_on_same_poll(vote).exists? + end + end + + def account_votes_on_same_poll(vote) + vote.poll.votes.where(account: vote.account) + end end diff --git a/spec/models/poll_vote_spec.rb b/spec/models/poll_vote_spec.rb index 563f346993..6886a82aa8 100644 --- a/spec/models/poll_vote_spec.rb +++ b/spec/models/poll_vote_spec.rb @@ -10,4 +10,53 @@ RSpec.describe PollVote, type: :model do expect(poll_vote.object_type).to eq :vote end end + + describe 'validations' do + context 'with a vote on an expired poll' do + it 'marks the vote invalid' do + poll = Fabricate.build(:poll, expires_at: 30.days.ago) + + vote = Fabricate.build(:poll_vote, poll: poll) + expect(vote).to_not be_valid + end + end + + context 'with invalid choices' do + it 'marks vote invalid with negative choice' do + poll = Fabricate.build(:poll) + + vote = Fabricate.build(:poll_vote, poll: poll, choice: -100) + expect(vote).to_not be_valid + end + + it 'marks vote invalid with choice in excess of options' do + poll = Fabricate.build(:poll, options: %w(a b c)) + + vote = Fabricate.build(:poll_vote, poll: poll, choice: 10) + expect(vote).to_not be_valid + end + end + + context 'with a poll where multiple is true' do + it 'does not allow a second vote on same choice from same account' do + poll = Fabricate(:poll, multiple: true, options: %w(a b c)) + first_vote = Fabricate(:poll_vote, poll: poll, choice: 1) + expect(first_vote).to be_valid + + second_vote = Fabricate.build(:poll_vote, account: first_vote.account, poll: poll, choice: 1) + expect(second_vote).to_not be_valid + end + end + + context 'with a poll where multiple is false' do + it 'does not allow a second vote from same account' do + poll = Fabricate(:poll, multiple: false, options: %w(a b c)) + first_vote = Fabricate(:poll_vote, poll: poll) + expect(first_vote).to be_valid + + second_vote = Fabricate.build(:poll_vote, account: first_vote.account, poll: poll) + expect(second_vote).to_not be_valid + end + end + end end From 9ee83a9f3bf5a20f30bf001019993a2eb262322f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 27 Feb 2023 10:35:47 -0500 Subject: [PATCH 0555/1220] Add policies and serializers groups to simplecov output (#23897) --- spec/spec_helper.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ddc872fc84..25f3140026 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,8 +5,10 @@ GC.disable if ENV['DISABLE_SIMPLECOV'] != 'true' require 'simplecov' SimpleCov.start 'rails' do - add_group 'Services', 'app/services' + add_group 'Policies', 'app/policies' add_group 'Presenters', 'app/presenters' + add_group 'Serializers', 'app/serializers' + add_group 'Services', 'app/services' add_group 'Validators', 'app/validators' end end From 055ed5a6166b8b6a5cdde9e8247fd2a606755a65 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 27 Feb 2023 13:03:35 -0500 Subject: [PATCH 0556/1220] Remove unused InstancePresenter#sample_accounts method (#23900) --- app/presenters/instance_presenter.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index e3ba984f74..50e2a51566 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -74,10 +74,6 @@ class InstancePresenter < ActiveModelSerializers::Model Rails.cache.fetch('distinct_domain_count') { Instance.count } end - def sample_accounts - Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.local.discoverable.popular.limit(3) } - end - def version Mastodon::Version.to_s end From cc3633539edfd987fb1d0b6cd722af28f342d008 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 28 Feb 2023 05:56:50 -0500 Subject: [PATCH 0557/1220] Remove unused admin/announcements helper (#23899) --- app/helpers/admin/announcements_helper.rb | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 app/helpers/admin/announcements_helper.rb diff --git a/app/helpers/admin/announcements_helper.rb b/app/helpers/admin/announcements_helper.rb deleted file mode 100644 index 0c053ddec3..0000000000 --- a/app/helpers/admin/announcements_helper.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -module Admin::AnnouncementsHelper - def time_range(announcement) - if announcement.all_day? - safe_join([l(announcement.starts_at.to_date), ' - ', l(announcement.ends_at.to_date)]) - else - safe_join([l(announcement.starts_at), ' - ', l(announcement.ends_at)]) - end - end -end From f8848a5c8bfb17fb419c11b3c060c6a4d023addc Mon Sep 17 00:00:00 2001 From: Shlee Date: Tue, 28 Feb 2023 12:30:28 +0000 Subject: [PATCH 0558/1220] [Dependashlee] Update to Puma 6.1.0 (#23795) --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 479a4eeac7..17b0b287de 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ ruby '>= 2.7.0', '< 3.3.0' gem 'pkg-config', '~> 1.5' gem 'rexml', '~> 3.2' -gem 'puma', '~> 5.6' +gem 'puma', '~> 6.1' gem 'rails', '~> 6.1.7' gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 1.2' diff --git a/Gemfile.lock b/Gemfile.lock index a78a647574..965832094e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -506,7 +506,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (5.0.1) - puma (5.6.5) + puma (6.1.0) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -853,7 +853,7 @@ DEPENDENCIES pry-byebug (~> 3.10) pry-rails (~> 0.3) public_suffix (~> 5.0) - puma (~> 5.6) + puma (~> 6.1) pundit (~> 2.3) rack (~> 2.2.6) rack-attack (~> 6.6) From 6185efbc3cb87541ee872d67c26911b3b03915e3 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 28 Feb 2023 08:33:34 -0500 Subject: [PATCH 0559/1220] Admin mailer spec coverage improvement (#23863) --- spec/mailers/admin_mailer_spec.rb | 62 +++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/spec/mailers/admin_mailer_spec.rb b/spec/mailers/admin_mailer_spec.rb index 29fb586a34..132c6c7586 100644 --- a/spec/mailers/admin_mailer_spec.rb +++ b/spec/mailers/admin_mailer_spec.rb @@ -23,4 +23,66 @@ RSpec.describe AdminMailer, type: :mailer do expect(mail.body.encoded).to eq("Mike,\r\n\r\nJohn has reported Mike\r\n\r\nView: https://cb6e6126.ngrok.io/admin/reports/#{report.id}\r\n") end end + + describe '.new_appeal' do + let(:appeal) { Fabricate(:appeal) } + let(:recipient) { Fabricate(:account, username: 'Kurt') } + let(:mail) { described_class.new_appeal(recipient, appeal) } + + before do + recipient.user.update(locale: :en) + end + + it 'renders the headers' do + expect(mail.subject).to eq("#{appeal.account.username} is appealing a moderation decision on cb6e6126.ngrok.io") + expect(mail.to).to eq [recipient.user_email] + expect(mail.from).to eq ['notifications@localhost'] + end + + it 'renders the body' do + expect(mail.body.encoded).to match "#{appeal.account.username} is appealing a moderation decision by #{appeal.strike.account.username}" + end + end + + describe '.new_pending_account' do + let(:recipient) { Fabricate(:account, username: 'Barklums') } + let(:user) { Fabricate(:user) } + let(:mail) { described_class.new_pending_account(recipient, user) } + + before do + recipient.user.update(locale: :en) + end + + it 'renders the headers' do + expect(mail.subject).to eq("New account up for review on cb6e6126.ngrok.io (#{user.account.username})") + expect(mail.to).to eq [recipient.user_email] + expect(mail.from).to eq ['notifications@localhost'] + end + + it 'renders the body' do + expect(mail.body.encoded).to match 'The details of the new account are below. You can approve or reject this application.' + end + end + + describe '.new_trends' do + let(:recipient) { Fabricate(:account, username: 'Snurf') } + let(:links) { [] } + let(:statuses) { [] } + let(:tags) { [] } + let(:mail) { described_class.new_trends(recipient, links, tags, statuses) } + + before do + recipient.user.update(locale: :en) + end + + it 'renders the headers' do + expect(mail.subject).to eq('New trends up for review on cb6e6126.ngrok.io') + expect(mail.to).to eq [recipient.user_email] + expect(mail.from).to eq ['notifications@localhost'] + end + + it 'renders the body' do + expect(mail.body.encoded).to match 'The following items need a review before they can be displayed publicly' + end + end end From 56489cdc4f0d96202dda3c3f688295e8dabb66ee Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 28 Feb 2023 08:59:19 -0500 Subject: [PATCH 0560/1220] Autofix Rubocop Style/HashConversion (#23852) --- .rubocop_todo.yml | 7 ------- app/services/import_service.rb | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8cd4afa5af..22e1a99c12 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2056,13 +2056,6 @@ Style/HashAsLastArrayItem: - 'app/services/notify_service.rb' - 'db/migrate/20181024224956_migrate_account_conversations.rb' -# Offense count: 1 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowSplatArgument. -Style/HashConversion: - Exclude: - - 'app/services/import_service.rb' - # Offense count: 12 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. diff --git a/app/services/import_service.rb b/app/services/import_service.rb index 7a68e4ca35..940c236d4c 100644 --- a/app/services/import_service.rb +++ b/app/services/import_service.rb @@ -67,7 +67,7 @@ class ImportService < BaseService def import_relationships!(action, undo_action, overwrite_scope, limit, extra_fields = {}) local_domain_suffix = "@#{Rails.configuration.x.local_domain}" - items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), Hash[extra_fields.map { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }]] }.reject { |(id, _)| id.blank? } + items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), extra_fields.to_h { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }] }.reject { |(id, _)| id.blank? } if @import.overwrite? presence_hash = items.each_with_object({}) { |(id, extra), mapping| mapping[id] = [true, extra] } From cb97ba7a2f195f1c816d89f05c8c8f7783b979d8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 28 Feb 2023 15:01:05 +0100 Subject: [PATCH 0561/1220] New Crowdin updates (#23802) Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ar.json | 8 +- app/javascript/mastodon/locales/ast.json | 2 +- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/es-AR.json | 6 +- app/javascript/mastodon/locales/es.json | 2 +- app/javascript/mastodon/locales/fi.json | 4 +- app/javascript/mastodon/locales/hi.json | 14 +- app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/kab.json | 4 +- app/javascript/mastodon/locales/ko.json | 14 +- app/javascript/mastodon/locales/lt.json | 2 +- app/javascript/mastodon/locales/ms.json | 20 +- app/javascript/mastodon/locales/my.json | 284 ++++++++++----------- app/javascript/mastodon/locales/nn.json | 2 +- app/javascript/mastodon/locales/sv.json | 6 +- app/javascript/mastodon/locales/tt.json | 20 +- app/javascript/mastodon/locales/zh-TW.json | 36 +-- config/locales/activerecord.bg.yml | 2 +- config/locales/activerecord.de.yml | 2 +- config/locales/activerecord.fy.yml | 10 +- config/locales/activerecord.kab.yml | 4 + config/locales/activerecord.pt-BR.yml | 2 +- config/locales/ar.yml | 16 ++ config/locales/ast.yml | 29 ++- config/locales/bg.yml | 17 +- config/locales/da.yml | 6 +- config/locales/de.yml | 4 +- config/locales/devise.de.yml | 4 +- config/locales/devise.et.yml | 6 +- config/locales/devise.fy.yml | 6 +- config/locales/devise.my.yml | 46 +++- config/locales/devise.zh-TW.yml | 2 +- config/locales/doorkeeper.ast.yml | 8 +- config/locales/doorkeeper.ko.yml | 56 ++-- config/locales/doorkeeper.my.yml | 19 ++ config/locales/doorkeeper.sr.yml | 12 +- config/locales/doorkeeper.zh-TW.yml | 6 +- config/locales/el.yml | 31 +++ config/locales/es-MX.yml | 17 ++ config/locales/es.yml | 4 +- config/locales/fr-QC.yml | 8 + config/locales/ko.yml | 2 +- config/locales/nn.yml | 17 ++ config/locales/pt-BR.yml | 11 + config/locales/pt-PT.yml | 6 + config/locales/ru.yml | 11 + config/locales/simple_form.ar.yml | 3 + config/locales/simple_form.fr-QC.yml | 6 +- config/locales/simple_form.it.yml | 2 +- config/locales/simple_form.ko.yml | 20 +- config/locales/simple_form.my.yml | 120 +++++++++ config/locales/simple_form.sr.yml | 8 +- config/locales/simple_form.sv.yml | 10 + config/locales/simple_form.zh-TW.yml | 14 +- config/locales/sr.yml | 105 +++++++- config/locales/sv.yml | 33 +++ config/locales/vi.yml | 1 + config/locales/zh-HK.yml | 6 + config/locales/zh-TW.yml | 196 +++++++------- 60 files changed, 897 insertions(+), 421 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 3e685efec0..cf5dfb55bf 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -138,7 +138,7 @@ "compose_form.poll.remove_option": "إزالة هذا الخيار", "compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة", "compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط", - "compose_form.publish": "انشر", + "compose_form.publish": "نشر", "compose_form.publish_form": "انشر", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "احفظ التعديلات", @@ -176,7 +176,7 @@ "conversation.delete": "احذف المحادثة", "conversation.mark_as_read": "اعتبرها كمقروءة", "conversation.open": "اعرض المحادثة", - "conversation.with": "بـ {names}", + "conversation.with": "مع {names}", "copypaste.copied": "تم نسخه", "copypaste.copy": "انسخ", "directory.federated": "مِن الفديفرس المعروف", @@ -215,7 +215,7 @@ "empty_column.bookmarked_statuses": "ليس لديك أية منشورات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.", "empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!", "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.", - "empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.", + "empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.", "empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!", "empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.", "empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", @@ -245,7 +245,7 @@ "filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.", "filter_modal.added.context_mismatch_title": "عدم تطابق السياق!", "filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.", - "filter_modal.added.expired_title": "تصفية منتهية الصلاحية!", + "filter_modal.added.expired_title": "عامل تصفية انتهت صلاحيته!", "filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.", "filter_modal.added.review_and_configure_title": "إعدادات التصفية", "filter_modal.added.settings_link": "صفحة الإعدادات", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 54bab60d04..018d950d74 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -383,7 +383,7 @@ "navigation_bar.filters": "Pallabres desactivaes", "navigation_bar.follow_requests": "Solicitúes de siguimientu", "navigation_bar.followed_tags": "Followed hashtags", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "Perfiles que sigues ya te siguen", "navigation_bar.lists": "Llistes", "navigation_bar.logout": "Zarrar la sesión", "navigation_bar.mutes": "Perfiles colos avisos desactivaos", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 7736877d92..b3cdd4fda5 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -16,7 +16,7 @@ "account.badges.bot": "Bot", "account.badges.group": "Gruppe", "account.block": "@{name} blockieren", - "account.block_domain": "Alles von {domain} verstecken", + "account.block_domain": "{domain} sperren", "account.blocked": "Blockiert", "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen", "account.cancel_follow_request": "Folgeanfrage zurückziehen", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index c1994b5f9c..f48187e5da 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -32,9 +32,9 @@ "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", - "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}", + "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}", "account.following": "Siguiendo", - "account.following_counter": "{count, plural, other {{counter} Siguiendo}}", + "account.following_counter": "{count, plural, other {Siguiendo a {counter}}}", "account.follows.empty": "Todavía este usuario no sigue a nadie.", "account.follows_you": "Te sigue", "account.go_to_profile": "Ir al perfil", @@ -57,7 +57,7 @@ "account.requested_follow": "{name} solicitó seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar adhesiones de @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Mensaje} other {{counter} Mensajes}}", + "account.statuses_counter": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", "account.unblock": "Desbloquear a @{name}", "account.unblock_domain": "Desbloquear dominio {domain}", "account.unblock_short": "Desbloquear", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 61800fd6bb..47c6edd829 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -51,7 +51,7 @@ "account.muted": "Silenciado", "account.open_original_page": "Abrir página original", "account.posts": "Publicaciones", - "account.posts_with_replies": "Publicaciones y respuestas", + "account.posts_with_replies": "Pub. y respuestas", "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento", "account.requested_follow": "{name} ha solicitado seguirte", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index a1decf1ed0..f41082ed7f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -29,7 +29,7 @@ "account.featured_tags.last_status_at": "Viimeisin viesti {date}", "account.featured_tags.last_status_never": "Ei viestejä", "account.featured_tags.title": "Käyttäjän {name} esillä olevat aihetunnisteet", - "account.follow": "Seuratut", + "account.follow": "Seuraa", "account.followers": "Seuraajat", "account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.", "account.followers_counter": "{count, plural, one {{counter} seuraaja} other {{counter} seuraajaa}}", @@ -582,7 +582,7 @@ "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", - "status.replied_to": "Vastasit käyttäjälle {name}", + "status.replied_to": "Vastaus käyttäjälle {name}", "status.reply": "Vastaa", "status.replyAll": "Vastaa ketjuun", "status.report": "Raportoi @{name}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 3ac57d50d4..24745cca59 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.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, one {{counter} भोंपू} other {{counter} भोंपू}}", @@ -128,7 +128,7 @@ "compose.language.search": "भाषाएँ खोजें...", "compose_form.direct_message_warning_learn_more": "और जानें", "compose_form.encryption_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.hashtag_warning": "ये पोस्ट किसी भी हैशटैग में लिस्ट नहीं किया जाएगा क्योंकि ये पब्लिक नहीं है। सिर्फ पब्लिक पोस्ट ही हैशटैग से खोजे जा सकते हैं।", "compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।", "compose_form.lock_disclaimer.lock": "लॉक्ड", "compose_form.placeholder": "What is on your mind?", @@ -221,7 +221,7 @@ "empty_column.favourites": "अभी तक किसी ने भी इस टूट को पसंद (स्टार) नहीं किया है. जब भी कोई इसे पसंद करेगा, उनका नाम यहाँ दिखेगा।", "empty_column.follow_recommendations": "ऐसा लगता है कि आपके लिए कोई सुझाव जेनरेट नहीं किया जा सका. आप उन लोगों को खोजने के लिए सर्च का उपयोग करने का प्रयास कर सकते हैं जिन्हें आप जानते हैं या ट्रेंडिंग हैशटैग का पता लगा सकते हैं।", "empty_column.follow_requests": "अभी तक किसी ने भी आपका अनुसरण करने की विनती नहीं की है. जब भी कोई आपको विनती भेजेगा, वो यहाँ दिखेगी.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "आपने किसी हैशटैग को फॉलो नहीं किया है। जैसे ही आप फॉलो करेंगे, आपके फॉलो किए गए हैशटैग यहां दिखेंगे।", "empty_column.hashtag": "यह हैशटैग अभी तक खाली है।", "empty_column.home": "आपकी मुख्य कालक्रम अभी खली है. अन्य उपयोगकर्ताओं से मिलने के लिए और अपनी गतिविधियां शुरू करने के लिए या तो {public} पर जाएं या खोज का उपयोग करें।", "empty_column.home.suggestions": "कुछ सुझाव देखिए", @@ -240,8 +240,8 @@ "explore.suggested_follows": "आपके लिए", "explore.title": "एक्स्प्लोर", "explore.trending_links": "समाचार", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_statuses": "पोस्ट्स", + "explore.trending_tags": "हैशटैग्स", "filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।", "filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!", "filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।", @@ -264,7 +264,7 @@ "follow_request.authorize": "अधिकार दें", "follow_request.reject": "अस्वीकार करें", "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।", - "followed_tags": "Followed hashtags", + "followed_tags": "फॉलो किए गए हैशटैग्स", "footer.about": "अबाउट", "footer.directory": "प्रोफाइल्स डायरेक्टरी", "footer.get_app": "अप्प प्राप्त करें", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट", "footer.privacy_policy": "प्राइवेसी पालिसी", "footer.source_code": "सोर्स कोड देखें", - "footer.status": "Status", + "footer.status": "स्टेटस", "generic.saved": "सेव्ड", "getting_started.heading": "पहले कदम रखें", "hashtag.column_header.tag_mode.all": "और {additional}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 56ef257c9f..0d5b08b683 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -312,7 +312,7 @@ "keyboard_shortcuts.column": "Setja virkni í dálk", "keyboard_shortcuts.compose": "Setja virkni á textainnsetningarreit", "keyboard_shortcuts.description": "Lýsing", - "keyboard_shortcuts.direct": "að opna dálk með beinum skilaboðum", + "keyboard_shortcuts.direct": "Opna dálk með beinum skilaboðum", "keyboard_shortcuts.down": "Fara neðar í listanum", "keyboard_shortcuts.enter": "Opna færslu", "keyboard_shortcuts.favourite": "Eftirlætisfærsla", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index e7b4808145..7914b54ab1 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -474,7 +474,7 @@ "relative_time.full.seconds": "{number, plural, one {# secondo} other {# secondi}} fa", "relative_time.hours": "{number}h", "relative_time.just_now": "ora", - "relative_time.minutes": "{number} minuti", + "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "oggi", "reply_indicator.cancel": "Annulla", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 3d6021b6e1..c3eb3d37c5 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -10,7 +10,7 @@ "about.domain_blocks.suspended.title": "Suspended", "about.not_available": "This information has not been made available on this server.", "about.powered_by": "Decentralized social media powered by {mastodon}", - "about.rules": "Server rules", + "about.rules": "Ilugan n uqeddac", "account.account_note_header": "Tazmilt", "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin", "account.badges.bot": "Aṛubut", @@ -83,7 +83,7 @@ "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", "bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis", "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": "Uh, ala !", "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": "Tuccḍa deg uẓeṭṭa", "bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index cf428b3d8c..e5a73258d5 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -145,7 +145,7 @@ "compose_form.sensitive.hide": "미디어를 민감함으로 설정하기", "compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다", "compose_form.sensitive.unmarked": "미디어가 열람주의로 설정 되어 있지 않습니다", - "compose_form.spoiler.marked": "콘텐츠 경고 제거", + "compose_form.spoiler.marked": "열람주의 제거", "compose_form.spoiler.unmarked": "열람 주의 문구 추가", "compose_form.spoiler_placeholder": "경고 문구를 여기에 작성하세요", "confirmation_modal.cancel": "취소", @@ -224,7 +224,7 @@ "empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.", "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람들을 팔로우 하여 채워보세요. {suggestions}", - "empty_column.home.suggestions": "몇몇의 제안 보기", + "empty_column.home.suggestions": "몇몇 제안 보기", "empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.", "empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.", "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.", @@ -259,7 +259,7 @@ "filter_modal.select_filter.title": "이 게시물을 필터", "filter_modal.title.status": "게시물 필터", "follow_recommendations.done": "완료", - "follow_recommendations.heading": "게시물을 받아 볼 사람들을 팔로우 하세요! 여기 몇몇의 추천이 있습니다.", + "follow_recommendations.heading": "게시물을 받아 볼 사람을 팔로우하세요! 여기 몇몇 추천이 있습니다.", "follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!", "follow_request.authorize": "허가", "follow_request.reject": "거부", @@ -400,7 +400,7 @@ "notification.follow": "{name} 님이 나를 팔로우했습니다", "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", "notification.mention": "{name}님의 멘션", - "notification.own_poll": "내 투표가 끝났습니다", + "notification.own_poll": "투표를 마쳤습니다.", "notification.poll": "참여했던 투표가 끝났습니다.", "notification.reblog": "{name} 님이 부스트했습니다", "notification.status": "{name} 님이 방금 게시물을 올렸습니다", @@ -589,13 +589,13 @@ "status.sensitive_warning": "민감한 내용", "status.share": "공유", "status.show_filter_reason": "그냥 표시하기", - "status.show_less": "적게 보기", + "status.show_less": "접기", "status.show_less_all": "모두 접기", - "status.show_more": "더 보기", + "status.show_more": "펼치기", "status.show_more_all": "모두 펼치기", "status.show_original": "원본 보기", "status.translate": "번역", - "status.translated_from_with": "{lang}에서 {provider}를 사용해 번역됨", + "status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨", "status.uncached_media_warning": "사용할 수 없음", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index c7a27873de..a2dac91ca1 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -1,7 +1,7 @@ { "about.blocks": "Moderatorių prižiūrimi serveriai", "about.contact": "Kontaktai:", - "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.disclaimer": "Mastodon, tai nemokama, atviro kodo programa, kuriuos prekybinis ženklas priklauso Mastodon GmbH.", "about.domain_blocks.no_reason_available": "Priežastis nežinoma", "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.", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 3f971026ed..a003f42f4b 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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "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.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?", @@ -237,11 +237,11 @@ "errors.unexpected_crash.copy_stacktrace": "Salin surih tindanan ke papan keratan", "errors.unexpected_crash.report_issue": "Laporkan masalah", "explore.search_results": "Hasil carian", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Untuk anda", "explore.title": "Terokai", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Baru", + "explore.trending_statuses": "Hantar", + "explore.trending_tags": "-Hashtags", "filter_modal.added.context_mismatch_explanation": "Kumpulan penapis ini tidak terpakai pada konteks di mana anda mengakses hantaran ini. Jika anda ingin hantaran ini untuk ditapis dalam konteks ini juga, anda perlu menyunting penapis tersebut.", "filter_modal.added.context_mismatch_title": "Konteks tidak sepadan!", "filter_modal.added.expired_explanation": "Kumpulan filter ini telah tamat tempoh, anda perlu mengubah tarikh luput untuk melaksanakannya.", @@ -264,7 +264,7 @@ "follow_request.authorize": "Benarkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", - "followed_tags": "Followed hashtags", + "followed_tags": "Topik terpilih", "footer.about": "Perihal", "footer.directory": "Direktori profil", "footer.get_app": "Dapatkan app", @@ -272,7 +272,7 @@ "footer.keyboard_shortcuts": "Pintasan papan kekunci", "footer.privacy_policy": "Dasar privasi", "footer.source_code": "Lihat kod sumber", - "footer.status": "Status", + "footer.status": "Status:", "generic.saved": "Disimpan", "getting_started.heading": "Mari bermula", "hashtag.column_header.tag_mode.all": "dan {additional}", @@ -382,7 +382,7 @@ "navigation_bar.favourites": "Kegemaran", "navigation_bar.filters": "Perkataan yang dibisukan", "navigation_bar.follow_requests": "Permintaan ikutan", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Ikuti hashtag", "navigation_bar.follows_and_followers": "Ikutan dan pengikut", "navigation_bar.lists": "Senarai", "navigation_bar.logout": "Log keluar", @@ -544,9 +544,9 @@ "server_banner.server_stats": "Statistik pelayan:", "sign_in_banner.create_account": "Cipta akaun", "sign_in_banner.sign_in": "Daftar masuk", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Daftar masuk untuk mengikut profil atau tanda pagar, menggemari, mengkongsi dan membalas kepada hantaran, atau berinteraksi daripada akaun anda pada pelayan lain.", "status.admin_account": "Buka antara muka penyederhanaan untuk @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "antara muka penyederhanaan", "status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan", "status.block": "Sekat @{name}", "status.bookmark": "Tanda buku", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 366544d2a2..3c1cec63f2 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -102,7 +102,7 @@ "column.blocks": "ဘလော့ထားသောအကောင့်များ", "column.bookmarks": "မှတ်တမ်းများ", "column.community": "ဒေသတွင်း အချိန်ဇယား", - "column.direct": "တိုက်ရိုက် မက်ဆေ့ခ်ျများ", + "column.direct": "တိုက်ရိုက်မက်ဆေ့ခ်ျများ", "column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n", "column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်", "column.favourites": "အကြိုက်ဆုံးများ", @@ -121,7 +121,7 @@ "column_header.show_settings": "ဆက်တင်များကို ပြပါ။", "column_header.unpin": "မတွဲတော့ပါ", "column_subheading.settings": "ဆက်တင်များ", - "community.column_settings.local_only": "Local only", + "community.column_settings.local_only": "ပြည်တွင်း၌သာ", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Remote only", "compose.language.change": "ဘာသာစကား ပြောင်းမည်", @@ -195,32 +195,32 @@ "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", "emoji_button.clear": "ရှင်းလင်းမည်", - "emoji_button.custom": "Custom", + "emoji_button.custom": "စိတ်ကြိုက်", "emoji_button.flags": "Flags", "emoji_button.food": "အစားအသောက်", - "emoji_button.label": "Insert emoji", + "emoji_button.label": "အီမိုဂျီထည့်ပါ", "emoji_button.nature": "သဘာဝ", - "emoji_button.not_found": "No matching emojis found", + "emoji_button.not_found": "ကိုက်ညီသော အီမိုဂျီများ ရှာမတွေ့ပါ", "emoji_button.objects": "Objects", "emoji_button.people": "လူများ", "emoji_button.recent": "မကြာခဏ အသုံးပြုသော", "emoji_button.search": "ရှာရန်...", - "emoji_button.search_results": "Search results", - "emoji_button.symbols": "Symbols", - "emoji_button.travel": "Travel & Places", - "empty_column.account_suspended": "Account suspended", + "emoji_button.search_results": "ရှာဖွေမှု ရလဒ်များ", + "emoji_button.symbols": "သင်္ကေတများ", + "emoji_button.travel": "ခရီးသွားခြင်း နှင့် နေရာများ", + "empty_column.account_suspended": "အကောင့်ရပ်ဆိုင်းထားသည်", "empty_column.account_timeline": "No posts found", - "empty_column.account_unavailable": "Profile unavailable", + "empty_column.account_unavailable": "ပရိုဖိုင် မရနိုင်ပါ", "empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", - "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", - "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။", + "empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", + "empty_column.favourites": "ဤပို့စ်ကို အကြိုက်တွေ့သူ မရှိသေးပါ။ တစ်စုံတစ်ယောက်က ကြိုက်နှစ်သက်ပါက ဤနေရာတွင် ပြထားပါမည်။", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.follow_requests": "သင့်တွင် စောင့်ကြည့်ရန် တောင်းဆိုမှုများ မရှိသေးပါ။ သင်လက်ခံရရှိပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", @@ -231,12 +231,12 @@ "empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်", "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", - "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.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.explanation_addons": "ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ခဲ့ပါ။ ဤအမှားသည် Browser add-on ထည့်သွင်းထားမှုများ သို့မဟုတ် အလိုအလျောက် ဘာသာပြန်ကိရိယာများကြောင့် ဖြစ်နိုင်သည်။", + "error.unexpected_crash.next_steps": "စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ ၎င်းမှာ အကူအညီမဖြစ်ပါက သင်သည် အခြား Browser သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်လက်အသုံးပြုနိုင်ပါမည်။", "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": "Report issue", - "explore.search_results": "Search results", + "errors.unexpected_crash.report_issue": "အဆင်မပြေမှုကို တိုင်ကြားရန်", + "explore.search_results": "ရှာဖွေမှုရလဒ်များ", "explore.suggested_follows": "သင့်အတွက်", "explore.title": "စူးစမ်းရန်", "explore.trending_links": "သတင်းများ", @@ -247,50 +247,50 @@ "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": "စစ်ထုတ်မှု သတ်မှတ်ချက်များ", "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.short_explanation": "ဤပို့စ်ကို အောက်ပါ စစ်ထုတ်မှုအမျိုးအစားတွင် ပေါင်းထည့်ထားပါသည် - {title}။", + "filter_modal.added.title": "စစ်ထုတ်မှု ထည့်သွင်းပြီးပါပြီ။", "filter_modal.select_filter.context_mismatch": "does not apply to this context", "filter_modal.select_filter.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", - "follow_recommendations.done": "Done", - "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "filter_modal.select_filter.prompt_new": "အမျိုးအစားအသစ် - {name}", + "filter_modal.select_filter.search": "ရှာရန် သို့မဟုတ် ဖန်တီးရန်", + "filter_modal.select_filter.subtitle": "ရှိပြီးသားအမျိုးအစားကို သုံးပါ သို့မဟုတ် အသစ်တစ်ခု ဖန်တီးပါ", + "filter_modal.select_filter.title": "ဤပို့စ်ကို စစ်ထုတ်ပါ", + "filter_modal.title.status": "ပို့စ်တစ်ခု စစ်ထုတ်ပါ", + "follow_recommendations.done": "ပြီးပါပြီ", + "follow_recommendations.heading": "သင်မြင်လိုသော သူများထံမှ ပို့စ်များကို စောင့်ကြည့်ပါ။ ဤတွင် အကြံပြုချက်အချို့ရှိပါသည်။", "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!", "follow_request.authorize": "Authorize", - "follow_request.reject": "Reject", + "follow_request.reject": "ဖယ်ရှားပါ", "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.", "followed_tags": "Followed hashtags", "footer.about": "အကြောင်း", - "footer.directory": "Profiles directory", - "footer.get_app": "Get the app", - "footer.invite": "Invite people", - "footer.keyboard_shortcuts": "Keyboard shortcuts", - "footer.privacy_policy": "Privacy policy", + "footer.directory": "ပရိုဖိုင်များလမ်းညွှန်", + "footer.get_app": "အက်ပ်ကို ရယူပါ", + "footer.invite": "လူများကို ဖိတ်ပါ", + "footer.keyboard_shortcuts": "ကီးဘုတ်အမြန်ခလုတ်များ", + "footer.privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ", "footer.source_code": "မူရင်းကုဒ်အားကြည့်ရှုမည်", "footer.status": "အခြေအနေ", "generic.saved": "သိမ်းဆည်းထားပြီး", "getting_started.heading": "စတင်မည်", - "hashtag.column_header.tag_mode.all": "and {additional}", - "hashtag.column_header.tag_mode.any": "or {additional}", - "hashtag.column_header.tag_mode.none": "without {additional}", - "hashtag.column_settings.select.no_options_message": "No suggestions found", + "hashtag.column_header.tag_mode.all": "နှင့် {additional}", + "hashtag.column_header.tag_mode.any": "သို့မဟုတ် {additional}", + "hashtag.column_header.tag_mode.none": "မပါဘဲ {additional}", + "hashtag.column_settings.select.no_options_message": "အကြံပြုချက်မတွေ့ပါ", "hashtag.column_settings.select.placeholder": "Enter hashtags…", "hashtag.column_settings.tag_mode.all": "All of these", "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", - "home.column_settings.basic": "Basic", + "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်", + "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ", + "home.column_settings.basic": "အခြေခံ", "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", - "home.hide_announcements": "Hide announcements", - "home.show_announcements": "Show announcements", + "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", + "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", + "home.show_announcements": "ကြေညာချက်များကို ပြပါ", "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", @@ -299,10 +299,10 @@ "interaction_modal.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.title.favourite": "Favourite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.favourite": "အကြိုက်ဆုံး {name} ၏ ပို့စ်", + "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်", "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", + "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.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -312,7 +312,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "ဖော်ပြချက်", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "တိုက်ရိုက်မက်ဆေ့ချ်ကော်လံကို ဖွင့်ရန်", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -345,8 +345,8 @@ "lightbox.expand": "ပုံကိုဖွင့်ပါ", "lightbox.next": "ရှေ့သို့", "lightbox.previous": "Previous", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ", + "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။", "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", "lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။", "lists.delete": "စာရင်းကိုဖျက်ပါ", @@ -374,37 +374,37 @@ "navigation_bar.bookmarks": "မှတ်ထားသည်များ", "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", "navigation_bar.explore": "Explore", - "navigation_bar.favourites": "Favourites", + "navigation_bar.favourites": "အကြိုက်ဆုံးများ", "navigation_bar.filters": "Muted words", - "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.follow_requests": "တောင်းဆိုချက်များကို စောင့်ကြည့်ပါ", "navigation_bar.followed_tags": "Followed hashtags", - "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.lists": "Lists", - "navigation_bar.logout": "Logout", + "navigation_bar.follows_and_followers": "စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း", + "navigation_bar.lists": "စာရင်းများ", + "navigation_bar.logout": "ထွက်မယ်", "navigation_bar.mutes": "Muted users", - "navigation_bar.personal": "Personal", - "navigation_bar.pins": "Pinned posts", + "navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ", + "navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", - "navigation_bar.search": "Search", - "navigation_bar.security": "Security", - "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "navigation_bar.search": "ရှာရန်", + "navigation_bar.security": "လုံခြုံရေး", + "not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။", "notification.admin.report": "{name} reported {target}", - "notification.admin.sign_up": "{name} signed up", + "notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်", "notification.favourite": "{name} favourited your status", - "notification.follow": "{name} followed you", - "notification.follow_request": "{name} has requested to follow you", - "notification.mention": "{name} mentioned you", + "notification.follow": "{name} သင့်ကို စောင့်ကြည့်ခဲ့သည်", + "notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်", + "notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်", "notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ", "notification.poll": "သင်ပါဝင်ခဲ့သော စစ်တမ်းပြီးပါပြီ", "notification.reblog": "{name} boosted your status", - "notification.status": "{name} just posted", - "notification.update": "{name} edited a post", + "notification.status": "{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ", + "notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်", "notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ", "notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်", "notifications.column_settings.admin.report": "New reports:", @@ -413,29 +413,29 @@ "notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ", "notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ", "notifications.column_settings.filter_bar.category": "Quick filter bar", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", - "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ", + "notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -", "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mentions:", "notifications.column_settings.poll": "စစ်တမ်းရလဒ်", - "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.push": "အသိပေးချက်များအား ရအောင်ပို့ခြင်း", "notifications.column_settings.reblog": "Boosts:", - "notifications.column_settings.show": "Show in column", - "notifications.column_settings.sound": "Play sound", - "notifications.column_settings.status": "New posts:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.show": "ကော်လံတွင်ပြပါ", + "notifications.column_settings.sound": "အသံဖွင့်မည်", + "notifications.column_settings.status": "ပို့စ်အသစ်များ -", + "notifications.column_settings.unread_notifications.category": "မဖတ်ရသေးသောအသိပေးချက်များ -", "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.update": "ပြင်ဆင်ထားမှုများ -", "notifications.filter.all": "အားလုံး", "notifications.filter.boosts": "အားပေးမည်", "notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ", "notifications.filter.follows": "ဖောလိုးမည်", "notifications.filter.mentions": " မန်းရှင်းမည်", "notifications.filter.polls": "စစ်တမ်းရလဒ်", - "notifications.filter.statuses": "Updates from people you follow", + "notifications.filter.statuses": "သင်စောင့်ကြည့်သူများထံမှ အပ်ဒိတ်များ", "notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်", - "notifications.group": "{count} notifications", - "notifications.mark_as_read": "Mark every notification as read", + "notifications.group": "အသိပေးချက်များ {count} ခု", + "notifications.mark_as_read": "အသိပေးချက်တိုင်းကို ဖတ်ပြီးကြောင်း အမှတ်အသားပြုပါ", "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", @@ -462,9 +462,9 @@ "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", "privacy_policy.last_updated": "Last updated {date}", - "privacy_policy.title": "Privacy Policy", - "refresh": "Refresh", - "regeneration_indicator.label": "Loading…", + "privacy_policy.title": "ကိုယ်ရေးအချက်အလက်မူဝါဒ", + "refresh": "ပြန်လည်စတင်ပါ", + "regeneration_indicator.label": "လုပ်ဆောင်နေသည်…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", @@ -473,7 +473,7 @@ "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", - "relative_time.just_now": "now", + "relative_time.just_now": "ယခု", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "ယနေ့", @@ -516,13 +516,13 @@ "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", - "report_notification.categories.other": "Other", + "report_notification.categories.other": "အခြား", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", "search.placeholder": "ရှာဖွေရန်", "search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ", - "search_popout.search_format": "Advanced search format", + "search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်", "search_popout.tips.status": "ပို့စ်", @@ -534,29 +534,29 @@ "search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ", "search_results.statuses": "ပို့စ်တင်မယ်", "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", - "search_results.title": "Search for {q}", + "search_results.title": "{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": "လက်ရှိအသုံးပြုသူများ", "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": "ပိုမိုသိရှိရန်", "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": "အကောင့်ဖန်တီးမည်", + "sign_in_banner.sign_in": "အကောင့်ဝင်မည်", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also 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": "@{name} ကိုဘလော့မည်", - "status.bookmark": "Bookmark", + "status.bookmark": "မှတ်ထားသည်များ", "status.cancel_reblog_private": "Unboost", "status.cannot_reblog": "This post cannot be boosted", "status.copy": "Copy link to status", - "status.delete": "Delete", + "status.delete": "ဖျက်ရန်", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", - "status.edit": "Edit", + "status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်", + "status.edit": "ပြင်ဆင်ရန်", "status.edited": "Edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", @@ -574,86 +574,86 @@ "status.mute_conversation": "Mute conversation", "status.open": "ပို့စ်ကိုချဲ့ထွင်မည်", "status.pin": "Pin on profile", - "status.pinned": "Pinned post", - "status.read_more": "Read more", + "status.pinned": "ပင်တွဲထားသောပို့စ်", + "status.read_more": "ပိုမိုဖတ်ရှုရန်", "status.reblog": "Boost", "status.reblog_private": "Boost with original visibility", "status.reblogged_by": "{name} boosted", "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", - "status.remove_bookmark": "Remove bookmark", - "status.replied_to": "Replied to {name}", - "status.reply": "Reply", + "status.remove_bookmark": "မှတ်ထားသည်များကို ဖယ်ရှားပါ", + "status.replied_to": "{name} ကို စာပြန်ခဲ့သည်", + "status.reply": "စာပြန်ရန်", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", - "status.sensitive_warning": "Sensitive content", - "status.share": "Share", - "status.show_filter_reason": "Show anyway", - "status.show_less": "Show less", - "status.show_less_all": "Show less for all", - "status.show_more": "Show more", - "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.uncached_media_warning": "Not available", + "status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ", + "status.share": "မျှဝေ", + "status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ", + "status.show_less": "အနည်းငယ်သာ ပြပါ", + "status.show_less_all": "အားလုံးအတွက် အနည်းငယ်သာ ပြပါ", + "status.show_more": "ပိုမိုပြရန်", + "status.show_more_all": "အားလုံးအတွက် ပိုပြပါ", + "status.show_original": "မူရင်းပြပါ", + "status.translate": "ဘာသာပြန်ပါ", + "status.translated_from_with": "{provider} ကို အသုံးပြု၍ {lang} မှ ဘာသာပြန်ထားသည်", + "status.uncached_media_warning": "မရနိုင်ပါ", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "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.target": "Change subscribed languages for {target}", + "subscribed_languages.save": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ", + "subscribed_languages.target": "{target} အတွက် စာရင်းသွင်းထားသော ဘာသာစကားများကို ပြောင်းပါ", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", - "tabs_bar.federated_timeline": "Federated", - "tabs_bar.home": "Home", - "tabs_bar.local_timeline": "Local", - "tabs_bar.notifications": "Notifications", + "tabs_bar.federated_timeline": "ဖက်ဒီ", + "tabs_bar.home": "ပင်မစာမျက်နှာ", + "tabs_bar.local_timeline": "ပြည်တွင်း", + "tabs_bar.notifications": "အသိပေးချက်များ", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", - "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", - "timeline_hint.resources.followers": "Followers", - "timeline_hint.resources.follows": "Follows", - "timeline_hint.resources.statuses": "Older posts", + "timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။", + "timeline_hint.resources.followers": "စောင့်ကြည့်သူများ", + "timeline_hint.resources.follows": "စောင့်ကြည့်မယ်", + "timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", - "trends.trending_now": "Trending now", + "trends.trending_now": "လက်ရှိခေတ်စားနေသော ပို့စ်များ", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", "units.short.million": "{count}M", "units.short.thousand": "{count}K", "upload_area.title": "Drag & drop to upload", - "upload_button.label": "Add images, a video or an audio file", - "upload_error.limit": "File upload limit exceeded.", + "upload_button.label": "ပုံများ၊ ဗီဒီယို သို့မဟုတ် အသံဖိုင်တစ်ခု ထည့်ပါ", + "upload_error.limit": "ဖိုင်အများဆုံးတင်နိုင်မည့်ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။", "upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ", "upload_form.audio_description": "အကြားအာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", "upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", - "upload_form.description_missing": "No description added", - "upload_form.edit": "Edit", + "upload_form.description_missing": "ဖော်ပြချက် မထည့်ပါ", + "upload_form.edit": "ပြင်ရန်", "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", + "upload_form.undo": "ဖျက်ရန်", "upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", "upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.apply": "Apply", "upload_modal.applying": "Applying…", - "upload_modal.choose_image": "Choose image", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.choose_image": "ပုံရွေးပါ", + "upload_modal.description_placeholder": "သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ္ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေး ဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်", "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.edit_media": "မီဒီယာကို ပြင်ဆင်ရန်", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preparing_ocr": "OCR ပြင်ဆင်နေသည်…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "တင်နေသည်...", - "upload_progress.processing": "Processing…", - "video.close": "Close video", - "video.download": "Download file", - "video.exit_fullscreen": "Exit full screen", - "video.expand": "Expand video", - "video.fullscreen": "Full screen", - "video.hide": "Hide video", - "video.mute": "Mute sound", - "video.pause": "Pause", - "video.play": "Play", - "video.unmute": "Unmute sound" + "upload_progress.processing": "လုပ်ဆောင်နေသည်…", + "video.close": "ဗီဒီယိုကို ပိတ်ပါ", + "video.download": "ဖိုင်ကို ဒေါင်းလုဒ်လုပ်ပါ", + "video.exit_fullscreen": "မျက်နှာပြင်အပြည့်မှ ထွက်ပါ", + "video.expand": "ဗီဒီယိုကို ချဲ့ပါ", + "video.fullscreen": "မျက်နှာပြင်အပြည့်", + "video.hide": "ဗီဒီယိုကို ဖျောက်ပါ", + "video.mute": "အသံပိတ်ထားပါ", + "video.pause": "ခဏရပ်ပါ", + "video.play": "ဖွင့်ပါ", + "video.unmute": "အသံပြန်ဖွင့်ပါ" } diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 9ed91cc345..33026253a1 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 {Fylgjar {counter}} other {Fylgjar {counter}}}", + "account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}", "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", "account.follows_you": "Fylgjer deg", "account.go_to_profile": "Gå til profil", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 75a9467be2..47efca424b 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -221,7 +221,7 @@ "empty_column.favourites": "Ingen har favoritmarkerat detta inlägg än. När någon gör det kommer de synas här.", "empty_column.follow_recommendations": "Det ser ut som om inga förslag kan genereras till dig. Du kan prova att använda sök för att leta efter personer som du kanske känner eller utforska trendande hash-taggar.", "empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Du följer inga hashtags ännu. När du gör det kommer de att dyka upp här.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", "empty_column.home": "Din hemma-tidslinje är tom! Följ fler användare för att fylla den. {suggestions}", "empty_column.home.suggestions": "Se några förslag", @@ -264,7 +264,7 @@ "follow_request.authorize": "Godkänn", "follow_request.reject": "Avvisa", "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.", - "followed_tags": "Followed hashtags", + "followed_tags": "Följda hashtags", "footer.about": "Om", "footer.directory": "Profilkatalog", "footer.get_app": "Skaffa appen", @@ -544,7 +544,7 @@ "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Skapa konto", "sign_in_banner.sign_in": "Logga in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Logga in för att följa profiler eller hashtags, favoritmarkera, dela och svara på inlägg. Du kan också interagera med ditt konto på en annan server.", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", "status.admin_domain": "Öppet modereringsgränssnitt för @{domain}", "status.admin_status": "Öppna detta inlägg i modereringsgränssnittet", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 76009ba1e5..41098618ce 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -7,7 +7,7 @@ "about.domain_blocks.silenced.explanation": "Гадәттә, сез бу серверның профильләрен һәм эчтәлеген күрмәячәксез, әгәр сез аларны ачыктан-ачык карамасагыз яки бу адымнарны үтәп язылмасагыз.", "about.domain_blocks.silenced.title": "Чикле", "about.domain_blocks.suspended.explanation": "Бу серверның бернинди мәгълүматлары да эшкәртелмәячәк, сакланмаячак яки алмаштырылмаячак, бу сервердан кулланучылар белән үзара бәйләнешне яки аралашуны мөмкин итми.", - "about.domain_blocks.suspended.title": "Асылмалы", + "about.domain_blocks.suspended.title": "Блокланган", "about.not_available": "Бу серверда бу мәгълүмат юк иде.", "about.powered_by": "Децентрализованные социаль челтәрләр нигезендә {mastodon}", "about.rules": "Сервер кагыйдәләре", @@ -39,22 +39,22 @@ "account.follows_you": "Сезгә язылган", "account.go_to_profile": "Профильгә күчү", "account.hide_reblogs": "Скрывать көчен нче @{name}", - "account.joined_short": "Кушылу", - "account.languages": "Подписка телләрен үзгәртү", + "account.joined_short": "Кушылды", + "account.languages": "Сайланган телләрен үзгәртү", "account.link_verified_on": "Бу сылтамага милек хокукы тикшерелде {date}", "account.locked_info": "Бу - ябык аккаунт. Аны язылучылар гына күрә ала.", "account.media": "Медиа", "account.mention": "@{name} искәртү", "account.moved_to": "{name} аларның яңа счеты хәзер күрсәтте:", - "account.mute": "Тавышсыз @{name}", - "account.mute_notifications": "Отключите хәбәрләр нче @{name}", - "account.muted": "Тавышсыз", + "account.mute": "@{name} кулланучыга әһәмият бирмәү", + "account.mute_notifications": "@{name} кулланучыдан хәбәрләргә әһәмият бирмәү", + "account.muted": "Әһәмият бирмәнгән", "account.open_original_page": "Чыганак битен ачу", - "account.posts": "Toots", - "account.posts_with_replies": "Toots and replies", - "account.report": "Хисап @{name}", + "account.posts": "Пост", + "account.posts_with_replies": "Пост һәм җавап", + "account.report": "@{name} кулланучыга шикаять итү", "account.requested": "Awaiting approval", - "account.requested_follow": "{name} сиңа иярүеңне сорады", + "account.requested_follow": "{name} Сезгә язылу соравын җиберде", "account.share": "Уртаклашу @{name} профиль", "account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 3af82e86ed..4e5cfb876c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -104,14 +104,14 @@ "column.community": "本站時間軸", "column.direct": "私訊", "column.directory": "瀏覽個人檔案", - "column.domain_blocks": "已封鎖的網域", + "column.domain_blocks": "已封鎖網域", "column.favourites": "最愛", "column.follow_requests": "跟隨請求", "column.home": "首頁", "column.lists": "列表", "column.mutes": "已靜音的使用者", "column.notifications": "通知", - "column.pins": "釘選嘟文", + "column.pins": "釘選的嘟文", "column.public": "聯邦時間軸", "column_back_button.label": "上一頁", "column_header.hide_settings": "隱藏設定", @@ -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": "取消跟隨", @@ -190,7 +190,7 @@ "dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。", "dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。", - "dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。", + "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。", "embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。", "embed.preview": "它將顯示成這樣:", "emoji_button.activity": "活動", @@ -246,7 +246,7 @@ "filter_modal.added.context_mismatch_title": "不符合情境!", "filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期以套用。", "filter_modal.added.expired_title": "過期的過濾器!", - "filter_modal.added.review_and_configure": "若欲檢視和進一步設定此過濾器類別,請至 {settings_link}。", + "filter_modal.added.review_and_configure": "要檢視和進一步設定此過濾器類別,請至 {settings_link}。", "filter_modal.added.review_and_configure_title": "過濾器設定", "filter_modal.added.settings_link": "設定頁面", "filter_modal.added.short_explanation": "此嘟文已被新增至以下過濾器類別:{title}。", @@ -306,11 +306,11 @@ "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.back": "上一頁", + "keyboard_shortcuts.blocked": "開啟「封鎖使用者」列表", "keyboard_shortcuts.boost": "轉嘟", - "keyboard_shortcuts.column": "聚焦至其中一欄的嘟文", - "keyboard_shortcuts.compose": "聚焦至撰寫文字區塊", + "keyboard_shortcuts.column": "將游標移至其中一欄", + "keyboard_shortcuts.compose": "將游標移至文字撰寫區塊", "keyboard_shortcuts.description": "說明", "keyboard_shortcuts.direct": "開啟私訊欄", "keyboard_shortcuts.down": "往下移動", @@ -332,13 +332,13 @@ "keyboard_shortcuts.profile": "開啟作者的個人檔案頁面", "keyboard_shortcuts.reply": "回應嘟文", "keyboard_shortcuts.requests": "開啟跟隨請求列表", - "keyboard_shortcuts.search": "聚焦至搜尋框", + "keyboard_shortcuts.search": "將游標移至搜尋框", "keyboard_shortcuts.spoilers": "顯示或隱藏內容警告之嘟文", "keyboard_shortcuts.start": "開啟「開始使用」欄位", "keyboard_shortcuts.toggle_hidden": "顯示或隱藏在內容警告之後的嘟文", "keyboard_shortcuts.toggle_sensitivity": "顯示或隱藏媒體", "keyboard_shortcuts.toot": "發個新嘟文", - "keyboard_shortcuts.unfocus": "取消輸入文字區塊或搜尋之焦點", + "keyboard_shortcuts.unfocus": "跳離文字撰寫區塊或搜尋框", "keyboard_shortcuts.up": "往上移動", "lightbox.close": "關閉", "lightbox.compress": "折疊圖片檢視框", @@ -376,27 +376,27 @@ "navigation_bar.compose": "撰寫新嘟文", "navigation_bar.direct": "私訊", "navigation_bar.discover": "探索", - "navigation_bar.domain_blocks": "已封鎖的網域", + "navigation_bar.domain_blocks": "已封鎖網域", "navigation_bar.edit_profile": "編輯個人檔案", "navigation_bar.explore": "探索", "navigation_bar.favourites": "最愛", "navigation_bar.filters": "已靜音的關鍵字", "navigation_bar.follow_requests": "跟隨請求", - "navigation_bar.followed_tags": "已跟隨主題標籤", + "navigation_bar.followed_tags": "已跟隨的主題標籤", "navigation_bar.follows_and_followers": "跟隨中與跟隨者", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", "navigation_bar.mutes": "已靜音的使用者", "navigation_bar.personal": "個人", - "navigation_bar.pins": "釘選嘟文", + "navigation_bar.pins": "釘選的嘟文", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "聯邦時間軸", "navigation_bar.search": "搜尋", "navigation_bar.security": "安全性", "not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。", - "notification.admin.report": "{name} 檢舉了 {target}", + "notification.admin.report": "{name} 已檢舉 {target}", "notification.admin.sign_up": "{name} 已經註冊", - "notification.favourite": "{name} 把您的嘟文加入了最愛", + "notification.favourite": "{name} 已將您的嘟文加入最愛", "notification.follow": "{name} 跟隨了您", "notification.follow_request": "{name} 要求跟隨您", "notification.mention": "{name} 提到了您", @@ -404,7 +404,7 @@ "notification.poll": "您曾投過的投票已經結束", "notification.reblog": "{name} 轉嘟了您的嘟文", "notification.status": "{name} 剛剛嘟文", - "notification.update": "{name} 編輯了嘟文", + "notification.update": "{name} 已編輯嘟文", "notifications.clear": "清除通知", "notifications.clear_confirmation": "您確定要永久清除您的通知嗎?", "notifications.column_settings.admin.report": "新檢舉報告:", @@ -544,7 +544,7 @@ "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "新增帳號", "sign_in_banner.sign_in": "登入", - "sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文。您也能與您其他伺服器之帳號進行互動。", + "sign_in_banner.text": "登入以跟隨個人檔案和主題標籤,或收藏、分享和回覆嘟文。您也可以使用您的帳號在其他伺服器上進行互動。", "status.admin_account": "開啟 @{name} 的管理介面", "status.admin_domain": "開啟 {domain} 的管理介面", "status.admin_status": "在管理介面開啟此嘟文", diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml index 2fd0791715..8b1e44ee4c 100644 --- a/config/locales/activerecord.bg.yml +++ b/config/locales/activerecord.bg.yml @@ -41,7 +41,7 @@ bg: attributes: email: blocked: използва се забранен доставчик на услуга за е-поща - unreachable: изглежда, че не съществува + unreachable: изглежда не съществува role_id: elevated: не може да е по-висока от текущата ви роля user_role: diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml index 0c25cea8c0..c45d3ae8c8 100644 --- a/config/locales/activerecord.de.yml +++ b/config/locales/activerecord.de.yml @@ -28,7 +28,7 @@ de: doorkeeper/application: attributes: website: - invalid: ist keine gültige Adresse + invalid: ist keine gültige URL import: attributes: data: diff --git a/config/locales/activerecord.fy.yml b/config/locales/activerecord.fy.yml index cc10d817d5..22f0c0d15d 100644 --- a/config/locales/activerecord.fy.yml +++ b/config/locales/activerecord.fy.yml @@ -43,13 +43,13 @@ fy: blocked: brûkt in net tastiene e-mailprovider unreachable: liket net te bestean role_id: - elevated: kin net heger wêze as dyn aktuele rol + elevated: kin net heger wêze as jo aktuele rol user_role: attributes: permissions_as_keys: dangerous: rjochten tafoegje dy’t net feilich binne foar de basisrol - elevated: kin gjin rjochten tafoegje dy’t dyn aktuele rol net besit - own_role: kin net mei dyn aktuele rol wizige wurde + elevated: kin gjin rjochten tafoegje dy’t jo aktuele rol net besit + own_role: kin net mei jo aktuele rol wizige wurde position: - elevated: kin net heger wêze as dyn aktuele rol - own_role: kin net mei dyn aktuele rol wizige wurde + elevated: kin net heger wêze as jo aktuele rol + own_role: kin net mei jo aktuele rol wizige wurde diff --git a/config/locales/activerecord.kab.yml b/config/locales/activerecord.kab.yml index 5b3d06634d..909ff68c24 100644 --- a/config/locales/activerecord.kab.yml +++ b/config/locales/activerecord.kab.yml @@ -25,3 +25,7 @@ kab: attributes: reblog: taken: n iddaden yellan yakan + user: + attributes: + email: + unreachable: ur d-ttban ara d akken yella diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml index 9aa9af62ed..eb29b5a3a8 100644 --- a/config/locales/activerecord.pt-BR.yml +++ b/config/locales/activerecord.pt-BR.yml @@ -43,7 +43,7 @@ pt-BR: blocked: usa provedor de e-mail não permitido unreachable: parece não existir role_id: - elevated: não pode ser maior do que seu cargo atual + elevated: não pode ser maior que seu cargo atual user_role: attributes: permissions_as_keys: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 5ab26083a2..32130cc7da 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -114,6 +114,13 @@ ar: pending: في انتظار المراجعة perform_full_suspension: تعليق الحساب previous_strikes: العقوبات السابقة + previous_strikes_description_html: + few: لدى هذا الحساب %{count} إنذارات. + many: لدى هذا الحساب %{count} إنذارًا. + one: هذا الحساب لديه %{count}انذار. + other: لدى هذا الحساب %{count} إنذار. + two: لدى هذا الحساب %{count} إنذاران اثنان. + zero: هذا الحساب لديه %{count}انذار. promote: ترقية protocol: البروتوكول public: عمومي @@ -880,6 +887,13 @@ ar: trending_rank: 'المتداولة #%{rank}' usable: يمكن استخدامه usage_comparison: تم استخدامه %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس + used_by_over_week: + few: مستخدَم من قِبل %{count} أشخاص خلال الأسبوع الماضي + many: مستخدَم من قِبل %{count} شخصا خلال الأسبوع الماضي + one: مستخدَم من قِبل %{count} شخص واحد خلال الأسبوع الماضي + other: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي + two: مستخدَم من قِبل %{count} شخصين خلال الأسبوع الماضي + zero: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي title: المتداوَلة trending: المتداولة warning_presets: @@ -1150,6 +1164,8 @@ ar: storage: ذاكرة التخزين featured_tags: add_new: أضف واحدًا جديدا + errors: + limit: لقد قمت بالفعل بعرض الحد الأقصى من عدد الوسوم hint_html: "ما هي الوسوم الرائجة؟ يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل." filters: contexts: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 536e3887cb..afdb5176c4 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -6,7 +6,7 @@ ast: hosted_on: 'Mastodon ta agospiáu en: %{domain}' title: Tocante a accounts: - last_active: Última actividá + last_active: última actividá nothing_here: "¡Equí nun hai nada!" posts: one: Artículu @@ -20,6 +20,7 @@ ast: accounts: add_email_domain_block: Bloquiar el dominiu de corréu electrónicu approved_msg: Aprobóse correutamente la solicitú de rexistru de «%{username}» + are_you_sure: "¿De xuru que quies facer esta aición?" avatar: Avatar by_domain: Dominiu confirming: En confirmación @@ -39,6 +40,7 @@ ast: login_status: Estáu del aniciu de la sesión moderation: pending: Pendiente + title: Moderación most_recent_activity: L'actividá más recién most_recent_ip: La IP más recién perform_full_suspension: Suspender @@ -201,12 +203,19 @@ ast: known_accounts: one: "%{count} cuenta conocida" other: "%{count} cuentes conocíes" + moderation: + title: Moderación private_comment: Comentariu priváu public_comment: Comentariu públicu title: Federación total_reported: Informes d'esa instancia invites: deactivate_all: Desactivalo too + filter: + all: Too + available: Disponible + expired: Caducó + title: Peñera title: Invitaciones ip_blocks: expires_in: @@ -231,6 +240,7 @@ ast: silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta. actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría Puxarra. add_to_report: Amestar más al informe + are_you_sure: "¿De xuru que quies facer esta aición?" category: Categoría category_description_html: El motivu pol que s'informó d'esta cuenta y/o conteníu cítase na comunicación cola cuenta de la que s'informó comment_description_html: 'Pa fornir más información, %{name} escribió:' @@ -268,6 +278,7 @@ ast: administration: Alministración devops: DevOps invites: Invitaciones + moderation: Moderación edit: Edición del rol «%{name}» everyone: Permisos predeterminaos permissions_count: @@ -339,6 +350,7 @@ ast: strikes: actions: delete_statuses: "%{name} desanició l'artículu de: %{target}" + disable: "%{name} conxeló la cuenta de: %{target}" mark_statuses_as_sensitive: "%{name} marcó l'artículu de %{target} como sensible" none: "%{name} unvió una alvertencia a %{target}" sensitive: "%{name} marcó la cuenta de %{target} como sensible" @@ -433,6 +445,7 @@ ast: notification_preferences: Camudar les preferencies de los mensaxes de corréu electrónicu applications: created: L'aplicación creóse correutamente + destroyed: L'aplicación desanicióse correutamente regenerate_token: Volver xenerar el pase d'accesu token_regenerated: El pase d'accesu volvió xenerase correutamente warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide! @@ -520,12 +533,14 @@ ast: action_taken: Aición tomada appeal: Apellación appeal_rejected: Refugóse l'apellación + appeal_submitted_at: Data de l'apellación appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste. appeals: submit: Unviu d'una apellación approve_appeal: Aprobar l'apellación associated_report: Informe asociáu created_at: Data + recipient: Dirixóse a reject_appeal: Refugar l'apellación status: 'Artículu #%{id}' status_removed: L'artículu xá se quitó del sistema @@ -570,6 +585,7 @@ ast: public: Llinies de tiempu públiques thread: Conversaciones edit: + add_keyword: Amestar una pallabra clave keywords: Pallabres clave statuses: Artículos individuales errors: @@ -654,6 +670,8 @@ ast: incoming_migrations_html: Pa migrar d'otra cuenta a esta, primero tienes de
    crear un nomatu de cuenta. warning: followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva + moderation: + title: Moderación notification_mailer: admin: sign_up: @@ -778,6 +796,7 @@ ast: notifications: Avisos preferences: Preferencies profile: Perfil + relationships: Perfiles que sigues ya te siguen statuses_cleanup: Desaniciu automáticu d'artículos two_factor_authentication: Autenticación en dos pasos webauthn_authentication: Llaves de seguranza @@ -819,8 +838,16 @@ ast: exceptions: Esceiciones interaction_exceptions: Esceiciones basaes nes interaiciones keep_direct: Caltener los mensaxes direutos + keep_direct_hint: Nun desanicia nengún mensaxe direutu + keep_media: Caltener los artículos con elementos multimedia + keep_media_hint: Nun desanicia nengún artículu de to que contenta elementos multimedia keep_pinned: Caltener los artículos fixaos keep_polls: Caltener les encuestes + keep_polls_hint: Nun desanicia nenguna encuesta de to + keep_self_bookmark: Caltener los artículos que metieres en Marcadores + keep_self_bookmark_hint: Nun desanicia nengún artículu que metieres en Marcadores + keep_self_fav: Caltener los artículos que seyan favoritos + keep_self_fav_hint: Nun desanicia nengún artículu que marcares como favoritu min_age: '1209600': 2 selmanes '15778476': 6 meses diff --git a/config/locales/bg.yml b/config/locales/bg.yml index adaf31d852..7483c562b0 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -105,7 +105,7 @@ bg: not_subscribed: Без абонамент pending: Изчаква преглед perform_full_suspension: Спиране - previous_strikes: Предишни нарушения + previous_strikes: Предишни предупреждения previous_strikes_description_html: one: Този акаунт има едно нарушение. other: Този акунт има %{count} нарушения. @@ -231,7 +231,7 @@ bg: actions: approve_appeal_html: "%{name} одобри обжалването на решение за модериране от %{target}" approve_user_html: "%{name} одобри регистрирането от %{target}" - assigned_to_self_report_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}" @@ -613,6 +613,7 @@ bg: placeholder: Опишете какви действия са били предприети или всякакви други свързани нови неща... title: Бележки notes_description_html: Прегледайте и оставете бележки за други модератори и за вас самите след време + processed_msg: Доклад №%{id} успешно обработен quick_actions_description_html: 'Предприемете бързо действие или превъртете надолу, за да видите докладваното съдържание:' remote_user_placeholder: отдалеченият потребител от %{instance} reopen: Отваряне пак на доклад @@ -633,10 +634,14 @@ bg: suspend_html: 'На път сте да спрете акаунта на @%{acct}. Това ще:' actions: delete_html: Премахване на обидните публикации + mark_as_sensitive_html: Означаване на мултимедийните обидни публикации като деликатни silence_html: Силно ограничаване достигането на @%{acct}, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила + suspend_html: Спирането на @%{acct} ще направи профилът и съдържанието недостъпни и невъзможни за взаимодействие close_report: Отбелязване на доклад №%{id} като решен close_reports_html: Означаване на всички доклади срещу @%{acct} като решени + delete_data_html: Изтриване на профила и съдържанието на @%{acct} за 30 дни от сега, освен ако междувременно не получи спиране preview_preamble_html: "@%{acct} ще получи предупреждение със следното съдържание:" + record_strike_html: Запис на предупреждение против @%{acct}, за да ви помогне при изострянето на бъдещи нарушения от този акаунт send_email_html: Изпращане на предупредително е-писмо на @%{acct} warning_placeholder: Незадължителни допълнителни причини за модераторско действие. target_origin: Произход на докладвания акаунт @@ -1020,7 +1025,7 @@ bg: functional: Вашият акаунт е в изправност. pending: Вашето приложение чака преглед от нашия екип. Това може да отнеме време. Ще получите имейл, ако приложението е одобрено. redirecting_to: Вашият акаунт е бездеен, защото сега се пренасочва към %{acct}. - view_strikes: Преглед на предишните нарушения за вашия акаунт + view_strikes: Преглед на предишните предупреждения против акаунта ви too_fast: Образецът подаден пребързо, опитайте пак. use_security_key: Употреба на ключ за сигурност authorize_follow: @@ -1083,7 +1088,7 @@ bg: strikes: action_taken: Предприето действие appeal: Обжалване - appeal_approved: Това нарушение беше успешно обжалвано и е вече невалидно + appeal_approved: Това предупреждение беше успешно обжалвано и е вече невалидно appeal_rejected: Обжалването е отхвърлено appeal_submitted_at: Подадено обжалване appealed_msg: Вашето обжалване е отхвърлено. Ако е одобрено, то ще бъдете известени. @@ -1492,7 +1497,7 @@ bg: profile: Профил relationships: Последвания и последователи statuses_cleanup: Автоматично изтриване на публикации - strikes: Нарушения + strikes: Модериране на предупреждения two_factor_authentication: Двустепенно удостоверяване webauthn_authentication: Ключове за сигурност statuses: @@ -1586,7 +1591,7 @@ bg: sensitive_content: Деликатно съдържание strikes: errors: - too_late: Късно е за обжалване на това нарушение + too_late: Твърде късно е за обжалване на това предупреждение tags: does_not_match_previous_name: не съвпада с предишното име themes: diff --git a/config/locales/da.yml b/config/locales/da.yml index e0468d6c70..38111748d8 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -990,7 +990,7 @@ da: migrate_account: Flyt til en anden konto migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér. or_log_in_with: Eller log ind med - privacy_policy_agreement_html: Jeg accepterer Fortrolighedspolitikken + privacy_policy_agreement_html: Jeg accepterer privatlivspolitikken providers: cas: CAS saml: SAML @@ -1077,7 +1077,7 @@ da: email_contact_html: Hvis det stadig ikke ankommer, kan du sende en e-mail til %{email} for hjælp email_reconfirmation_html: Modtager du ikke bekræftelses-e-mailen, kan du anmode om en ny irreversible: Du vil ikke kunne gendanne/genaktivere din konto - more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken. + more_details_html: For yderligere oplysningerer, tjek privatlivspolitikken. username_available: Dit brugernavn vil blive tilgængeligt igen username_unavailable: Dit brugernavn vil forblive utilgængeligt disputes: @@ -1392,7 +1392,7 @@ da: posting_defaults: Standarder for indlæg public_timelines: Offentlige tidslinjer privacy_policy: - title: Fortrolighedspolitik + title: Privatlivspolitik reactions: errors: limit_reached: Grænse for forskellige reaktioner nået diff --git a/config/locales/de.yml b/config/locales/de.yml index d5aa904f97..69284b09f9 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -735,8 +735,8 @@ de: preamble: Lege fest, wie lange nutzergenerierte Inhalte auf deiner Mastodon-Instanz gespeichert werden. title: Cache & Archive default_noindex: - desc_html: Betrifft alle Benutzer, die diese Einstellung nicht selbst geändert haben - title: Benutzer standardmäßig von der Suchmaschinen-Indizierung ausnehmen + desc_html: Betrifft alle Benutzer*innen, die diese Einstellung bei sich nicht geändert haben + title: Profile standardmäßig von der Suchmaschinen-Indizierung ausnehmen discovery: follow_recommendations: Folgeempfehlungen preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index 577cf13004..c4d41aa620 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -20,9 +20,9 @@ de: confirmation_instructions: action: E-Mail-Adresse verifizieren action_with_app: Bestätigen – und dann zur App %{app} zurückkehren - explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. + explanation: Du hast mit dieser E-Mail-Adresse ein Konto auf %{host} erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. - extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen. + extra_html: Bitte beachte auch die Serverregeln und unsere Datenschutzerklärung. subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}' title: E-Mail-Adresse verifizieren email_changed: diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index 9fd54d1422..c15801f4cc 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -48,15 +48,15 @@ et: title: Salasõna lähtestamine two_factor_disabled: 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' + subject: 'Mastodon: Kaheastmeline autentimine välja lülitatud' title: 2FA keelatud two_factor_enabled: 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' + subject: 'Mastodon: kaheastmeline autentimine sisse lülitatud' title: 2FA lubatud two_factor_recovery_codes_changed: explanation: Eelmised taastekoodid on nüüd kehtetud ning loodud uued. - subject: 'Mastodon: Kahe-etapise autentimise taastuskoodid taasloodud' + subject: 'Mastodon: Kaheastmelise autentimise taastuskoodid taasloodud' title: 2FA taastekoodid muudetud unlock_instructions: subject: 'Mastodon: Lahti lukustamis juhendid' diff --git a/config/locales/devise.fy.yml b/config/locales/devise.fy.yml index 3a7ead83e3..fd246227a2 100644 --- a/config/locales/devise.fy.yml +++ b/config/locales/devise.fy.yml @@ -6,13 +6,13 @@ fy: send_instructions: Do ûntfangst fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. send_paranoid_instructions: As dyn e-mailadres yn de database stiet, ûntfangsto fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. failure: - already_authenticated: Do bist al oanmeld. + already_authenticated: Jo binne al oanmeld. inactive: Jo account is noch net aktivearre. invalid: "%{authentication_keys} of wachtwurd ûnjildich." last_attempt: Do hast noch ien besykjen oer eardat dyn account blokkearre wurdt. - locked: Dyn account is blokkearre. + locked: Jo account is blokkearre. not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich." - pending: Dyn account moat noch hieltyd beoardiele wurde. + pending: Jo account moat noch hieltyd beoardiele wurde. timeout: Dyn sesje is ferrûn, meld dy opnij oan. unauthenticated: Jo moatte oanmelde of registrearje. unconfirmed: Do moatst earst dyn account befêstigje. diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml index 14b26845ae..4a5500aed4 100644 --- a/config/locales/devise.my.yml +++ b/config/locales/devise.my.yml @@ -3,14 +3,16 @@ my: devise: confirmations: confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။ - send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ - send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ failure: already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။ + inactive: သင့်အကောင့်မှာ အတည်မဖြစ်သေးပါ။ invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။ locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။ not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ + pending: သင့်အကောင့်အား စိစစ်ဆဲဖြစ်သည်။ timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။ unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။ unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။ @@ -18,33 +20,46 @@ my: confirmation_instructions: action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ + explanation: "%{host} တွင် ဤအီးမေးလ်လိပ်စာဖြင့် သင် အကောင့်တစ်ခု ဖန်တီးထားပြီးဖြစ်သည်။ သင် ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် အကောင့်အား အသက်ဝင်စေနိုင်သည်။ အကယ်၍ သင်ဖန်တီးထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။" + explanation_when_pending: "%{host} သို့ ဖိတ်ခေါ်မှုတစ်ခုကို ဤအီးမေးလ်လိပ်စာဖြင့် သင်တောင်းဆိုခဲ့သည်။ အီးမေးလ်လိပ်စာကို သင်အတည်ပြုပြီးပါက ကျွန်ုပ်တို့အနေဖြင့် သင့်တောင်းဆိုမှုအား စိစစ်မည်ဖြစ်သည်။ သင့်အနေဖြင့် မိမိအကောင့်အတွင်း ဝင်ရောက်၍ အသေးစိတ်အချက်အလက်များအား ပြုပြင်နိုင်သည် (သို့) မိမိအကောင့်အား ဖျက်နိုင်သည်။ သို့သော် သင့်အကောင့်ကို အတည်ပြုမပြီးမချင်း သင့်အနေဖြင့် လုပ်ငန်းဆောင်တာအများစုအား ဆောင်ရွက်နိုင်မည် မဟုတ်ပေ။ သင်၏ အကောင့်တောင်းဆိုမှု ငြင်းဆန်ခံရပါက သင့်အချက်အလက်များအား ဖယ်ရှားပေးမည်ဖြစ်သည်။ သင့်အနေဖြင့် တခြားအရေးယူဆောင်ရွက်ရန် မလိုအပ်ပါ။ အကယ်၍ ယခုတောင်းဆိုမှုအား သင်ပြုလုပ်ထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။" extra_html: ကျေးဇူးပြု၍ ဆာဗာစည်းမျဉ်းများ နှင့် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများကိုလည်း စစ်ဆေးကြည့်ပါ။ subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ email_changed: explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် - + extra: သင့်အီးမေးလ်လိပ်စာ မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။ subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ' title: အီးမေးလ်လိပ်စာအသစ် password_change: explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။ + extra: သင့်စကားဝှက် မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။ subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ' title: စကားဝှက်ပြောင်းလဲသွားပြီ reconfirmation_instructions: explanation: သင်၏အီးမေးလ်လိပ်စာပြောင်းရန် လိပ်စာအသစ်အတည်ပြုပါ။ + extra: တစ်ကယ်လို့ ပြောင်းလဲမှုကို သင်တောင်းဆိုတာမဟုတ်ဘူးဆိုရင် ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အပေါ်မှ လင့်ခ်ကိုမဝင်မချင်း သင့်အီးမေးလ်ပြောင်းသွားမည်မဟုတ်ပါ subject: 'Mastodon: %{instance} အတွက်အီးမေးလ်အတည်ပြုပါ' title: အီးမေးလ်လိပ်စာစစ်ဆေးပါ reset_password_instructions: action: စကားဝှက်ပြောင်းမည် + explanation: သင့်အကောင့်အတွက် စကားဝှက်အသစ်တစ်ခု တောင်းဆိုခဲ့သည်။ + extra: သင်မတောင်းဆိုထားပါက ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အထက်ဖော်ပြပါလင့်ခ်ကို သင်ဝင်ရောက်ပြီး အသစ်တစ်ခုမဖန်တီးမချင်း သင့်စကားဝှက်သည် ပြောင်းလဲမည်မဟုတ်ပါ။ subject: 'Mastodon: စကားဝှက်ညွှန်ကြားချက် ပြန်လည်သတ်မှတ်မည်' title: စကားဝှက်ပြန်လည်သတ်မှတ်မည် two_factor_disabled: + explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ အီးမေးလ်လိပ်စာနှင့် စကားဝှက်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။ subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်' title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည် two_factor_enabled: + explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ဖွင့်ထားသည်။ TOTP အက်ပ်မှ ထုတ်ပေးသည့် တိုကင်တစ်ခုမှာ အကောင့်ဝင်ရန်အတွက် လိုအပ်ပါသည်။ subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်' title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည် two_factor_recovery_codes_changed: + explanation: ယခင်ပြန်လည်ရယူသည့်ကုဒ်များမှာ မမှန်ကန်သောကြောင့် အသစ်များကို ထုတ်ပေးခဲ့သည်။ + subject: Mastodon - နှစ်ဆင့်ခံလုံခြုံရေး ပြန်လည်ရယူသည့်ကုဒ်များကို ပြန်လည်ထုတ်ပေးခြင်း title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် ပြန်လည်ရယူသည့်ကုဒ်နံပါတ်များ ပြောင်းလဲခဲ့သည် + unlock_instructions: + subject: Mastodon - ညွှန်ကြားချက်များကို လော့ခ်ဖွင့်ပါ webauthn_credential: added: explanation: ဖော်ပြပါလုံခြုံရေးသော့ချက်အား သင့်အကောင့်ထဲသို့ထည့်ပြီးပါပြီ @@ -55,16 +70,43 @@ my: subject: 'Mastodon: လုံခြုံရေးသော့ချက် ဖျက်လိုက်ပါပြီ' title: လုံခြုံရေးသော့ချက်များထဲမှတစ်ခု ဖျက်လိုက်ပါပြီ webauthn_disabled: + explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီးများဖြင့် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ TOTP အက်ပ်မှထုတ်ပေးသည့် တိုကင်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။ + subject: Mastodon - လုံခြုံရေးကီးများဖြင့် အထောက်အထားစိစစ်ခြင်းကို ပိတ်ထားသည် title: လုံခြုံရေးသော့ချက်များ ပိတ်ပြီးပါပြီ webauthn_enabled: + explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည်။ အကောင့်ဝင်ရန်အတွက် သင်၏လုံခြုံရေးကီးကို ယခုအသုံးပြုနိုင်ပါပြီ။ + subject: Mastodon - လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည် title: လုံခြုံရေးသော့ချက်များ ဖွင့်ပြီးပါပြီ + omniauth_callbacks: + failure: "“%{reason}” ကြောင့် %{kind} မှ သင့်ကို စစ်မှန်ကြောင်း အထောက်အထား မပြနိုင်ပါ။" + success: "%{kind} အကောင့်မှ အထောက်အထားပြပြီးပါပြီ။" + passwords: + no_token: စကားဝှက်ပြန်လည်သတ်မှတ်ခြင်းအီးမေးလ်မှ မလာပါက ဤစာမျက်နှာကို သင်ဝင်ရောက်၍မရနိုင်ပါ။ အကယ်၍ ၎င်းမှလာပါက ပေးထားသော URL အပြည့်အစုံကို အသုံးပြုရပါမည်။ + send_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + 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: သင့်အကောင့်ကို မွမ်းမံပြင်ဆင်ထားသော်လည်း သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန် လိုအပ်ပါသည်။ ကျေးဇူးပြု၍ သင့်အီးမေးလ်ကို စစ်ဆေးပြီး သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန်အတွက် အတည်ပြုလင့်ခ်အား နှိပ်ပါ။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ updated: သင့်အကောင့်အားအောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။ sessions: already_signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။ signed_in: အောင်မြင်စွာအကောင့်ဝင်ပြီးပါပြီ။ signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။ + unlocks: + send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အကောင့်လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်လက်ခံရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + send_paranoid_instructions: အကယ်၍ သင့်တွင် အကောင့်ရှိပါက မိနစ်အနည်းငယ်အတွင်း လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ + unlocked: သင့်အကောင့်ကို လော့ခ်ဖွင့်ပြီးပါပြီ။ ရှေ့ဆက်ရန်အတွက် အကောင့်ဝင်ပါ။ errors: messages: + already_confirmed: အတည်ပြုပြီးဖြစ်သည်။ ကျေးဇူးပြု၍ အကောင့်ဝင်ကြည့်ပါ။ + confirmation_period_expired: "%{period} အတွင်း အတည်ပြုရန် လိုအပ်ပြီး အသစ်တစ်ခု တောင်းဆိုပါ" expired: သည် သက်တမ်းကျော်လွန်သွားပြီ။ ကျေးဇူးပြု၍အသစ်တစ်ခု တောင်းဆိုပါ not_found: ရှာမတွေ့ပါ + not_locked: လော့ခ် မချထားပါ diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index 85b775b0b6..3c1968e50b 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -20,7 +20,7 @@ zh-TW: confirmation_instructions: action: 驗證電子郵件地址 action_with_app: 確認並返回 %{app} - explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。 + explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。 extra_html: 同時也請看看伺服器規則服務條款。 subject: Mastodon:%{instance} 確認說明 diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index 628de6524a..61d6c4ad1f 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -14,6 +14,8 @@ ast: destroy: Destruyir edit: Editar submit: Unviar + confirmations: + destroy: "¿De xuru que quies facer esta aición?" form: error: "¡Meca! Revisa los errores posibles del formulariu" help: @@ -46,6 +48,8 @@ ast: authorized_applications: buttons: revoke: Revocar + confirmations: + revoke: "¿De xuru que quies facer esta aición?" index: description_html: Estes son les aplicaciones que puen acceder a la cuenta cola API. Si equí hai aplicaciones que nun conoces o hai dalguna aplicación que nun funciona correutamente, pues revocar el so accesu. never_used: Enxamás s'usó @@ -94,7 +98,7 @@ ast: admin:write: modifica tolos datos del sirvidor crypto: usa'l cifráu de puntu a puntu follow: modifica les rellaciones de les cuentes - push: receición d'avisos push + push: recibe avisos push read: llee tolos datos de les cuentes read:accounts: mira la información de les cuentes read:blocks: mira les cuentes bloquiaes @@ -118,5 +122,5 @@ ast: write:media: xube ficheros multimedia write:mutes: desactiva los avisos de perfiles ya de conversaciones write:notifications: borra los avisos - write:reports: informa d'otres perfiles + write:reports: informa d'otros perfiles write:statuses: espubliza artículos diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 504fefd281..584ff7219a 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -4,7 +4,7 @@ ko: attributes: doorkeeper/application: name: 애플리케이션 이름 - redirect_uri: 리다이렉트 URI + redirect_uri: 리디렉트 URI scopes: 범위 website: 애플리케이션 웹사이트 errors: @@ -15,7 +15,7 @@ ko: fragment_present: fragment를 포함할 수 없습니다 invalid_uri: 올바른 URI 이어야 합니다. relative_uri: 절대경로 URI 이어야 합니다 - secured_uri: " HTTPS/SSL URI 이어야 합니다." + secured_uri: HTTPS/SSL URI 이어야 합니다. doorkeeper: applications: buttons: @@ -31,16 +31,16 @@ ko: form: error: 이런! 오류를 확인하세요 help: - native_redirect_uri: "%{native_redirect_uri} 을/를 이용해 로컬 테스트를 할 수 있습니다" + native_redirect_uri: "%{native_redirect_uri}에서 로컬 테스트를 할 수 있습니다." redirect_uri: 한 줄에 하나의 URI를 작성하세요 scopes: 스페이스로 범위를 구분하세요. 빈 칸으로 놔두면 기본 범위를 사용합니다. index: application: 애플리케이션 callback_url: 콜백 URL delete: 삭제 - empty: 애플리케이션이 없습니다. + empty: 앱이 없습니다. name: 이름 - new: 새 애플리케이션 + new: 새로운 앱 scopes: 범위 show: 표시 title: 내 응용프로그램 @@ -52,7 +52,7 @@ ko: callback_urls: 콜백 URL scopes: 범위 secret: 클라이언트 비밀키 - title: '애플리케이션: %{name}' + title: '앱: %{name}' authorizations: buttons: authorize: 승인 @@ -60,11 +60,11 @@ ko: error: title: 오류가 발생하였습니다 new: - prompt_html: "%{client_name}이 당신의 계정에 대한 접근 권한을 요청합니다. 이것은 제3자의 응용프로그램입니다. 이것을 신뢰하지 않는다면, 권한을 승인하지 말아야 합니다." + prompt_html: "%{client_name} 제3자 앱이 귀하의 계정에 접근하기 위한 권한을 요청했습니다. 이 앱을 신뢰할 수 없다면 요청을 승인하지 마십시오." review_permissions: 권한 검토 title: 승인 필요 show: - title: 이 승인 코드를 복사하여 애플리케이션에 붙여넣으세요 + title: 이 승인 코드를 복사해 앱에 붙여 넣어야 합니다. authorized_applications: buttons: revoke: 삭제 @@ -72,7 +72,7 @@ ko: revoke: 확실합니까? index: authorized_at: "%{date}에 승인됨" - description_html: 당신의 계정에 API를 통해 접근 가능한 응용프로그램의 목록입니다. 알 수 없는 응용프로그램, 혹은 잘못된 행동을 하고 있는 응용프로그램이 있다면, 권한을 취소할 수 있습니다. + description_html: 이 계정에 API를 통해 접근 가능한 앱의 목록입니다. 알 수 없는 앱이나 잘못된 행위를 하는 앱이 있다면 권한을 취소할 수 있습니다. last_used_at: "%{date}에 마지막으로 사용됨" never_used: 사용되지 않음 scopes: 권한 @@ -82,7 +82,7 @@ ko: messages: access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다. credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 암호 자격증명이 실패하였습니다. - invalid_client: 알 수 없는 클라이언트이기 때문에 클라이언트 인증이 실패하였습니다, 클라이언트 자격증명이 포함되지 않았거나, 지원 되지 않는 메소드입니다. + invalid_client: 클라이언트를 확인할 수 없기 때문에 인증이 실패하였습니다. 클라이언트 자격 증명이 포함되지 않았거나 지원되지 않는 메소드입니다. invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다. invalid_redirect_uri: 리디렉션 URI가 올바르지 않습니다 invalid_request: @@ -104,14 +104,14 @@ ko: flash: applications: create: - notice: 애플리케이션이 생성 되었습니다. + notice: 앱이 생성 되었습니다. destroy: - notice: 애플리케이션이 삭제 되었습니다. + notice: 앱을 삭제했습니다. update: - notice: 애플리케이션이 갱신 되었습니다. + notice: 앱을 갱신했습니다. authorized_applications: destroy: - notice: 애플리케이션이 삭제되었습니다. + notice: 운영자에 의해 앱이 해지되었습니다. grouped_scopes: access: read: 읽기 전용 권한 @@ -142,7 +142,7 @@ ko: layouts: admin: nav: - applications: 애플리케이션 + applications: 앱 oauth2_provider: OAuth2 제공자 application: title: OAuth 인증이 필요합니다 @@ -164,26 +164,26 @@ ko: admin:write:ip_blocks: IP 차단에 모더레이션 조치 취하기 admin:write:reports: 신고에 모더레이션 조치 취하기 crypto: 종단간 암호화 사용 - follow: 계정의 관계를 수정 - push: 푸시 알림을 받기 - read: 계정의 모든 데이터를 읽기 - read:accounts: 계정의 정보를 보기 - read:blocks: 차단을 보기 + follow: 계정 관계 수정 + push: 푸시 알림 받기 + read: 계정의 모든 데이터 읽기 + read:accounts: 계정 정보 보기 + read:blocks: 차단 보기 read:bookmarks: 내 북마크 보기 - read:favourites: 관심글을 보기 - read:filters: 필터를 보기 - read:follows: 팔로우를 보기 - read:lists: 리스트를 보기 - read:mutes: 뮤트를 보기 + read:favourites: 좋아요 보기 + read:filters: 필터 보기 + read:follows: 팔로우 보기 + read:lists: 리스트 보기 + read:mutes: 뮤트 보기 read:notifications: 알림 보기 read:reports: 신고 보기 read:search: 당신의 권한으로 검색 - read:statuses: 게시물 모두 보기 + read:statuses: 모든 게시물 보기 write: 계정 정보 수정 write:accounts: 프로필 수정 - write:blocks: 계정이나 도메인 차단 + write:blocks: 계정 및 도메인 차단 write:bookmarks: 게시물을 북마크에 넣기 - write:conversations: 뮤트와 대화 삭제 + write:conversations: 뮤트 및 대화 삭제 write:favourites: 관심글 지정 write:filters: 필터 만들기 write:follows: 사람을 팔로우 diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml index 345a3b2649..8a92d7e79f 100644 --- a/config/locales/doorkeeper.my.yml +++ b/config/locales/doorkeeper.my.yml @@ -12,6 +12,7 @@ my: doorkeeper/application: attributes: redirect_uri: + fragment_present: အပိုင်းတစ်ပိုင်း မပါဝင်နိုင်ပါ။ invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။ relative_uri: URI ဖြစ်ရမည်။ secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။ @@ -59,6 +60,7 @@ my: error: title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည် new: + prompt_html: "%{client_name} က သင့်အကောင့်သို့ ဝင်ရောက်ရန် ခွင့်ပြုချက်ရယူလိုပါသည်။ ၎င်းမှာ ပြင်ပကြားခံအက်ပလီကေးရှင်းတစ်ခုဖြစ်သည်။ သင် မယုံကြည်ပါက ၎င်းကိုခွင့်မပြုသင့်ပါ။" review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ title: ခွင့်ပြုချက် လိုအပ်သည် show: @@ -74,16 +76,29 @@ my: last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်" never_used: မသုံးဖူးပါ scopes: ခွင့်ပြုချက်များ + superapp: အတွင်းပိုင်း title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ errors: messages: access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။ credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။ + invalid_client: Client အထောက်အထားစိစစ်မှု မအောင်မြင်ခြင်းမှာ အမည်မသိ Client ဖြစ်ခြင်း၊ Client စစ်မှန်ကြောင်းအထောက်အထားမပါဝင်ခြင်း သို့မဟုတ် ပံ့ပိုးမထားသည့် အထောက်အထားဖြစ်နေခြင်းကြောင့် ဖြစ်ပါသည်။ invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။ + invalid_request: + missing_param: ပျောက်နေသည့် လိုအပ်သောအရာ - %{value}။ + request_not_authorized: ခွင့်ပြုချက်တောင်းခံရန် လိုအပ်ပါသည်။ တောင်းဆိုမှုခွင့်ပြုချက်အတွက် လိုအပ်သောအရာမှာ ပျောက်ဆုံးနေခြင်း သို့မဟုတ် မမှန်ကန်ခြင်း ကြောင့်ဖြစ်ပါသည်။ + unknown: တောင်းဆိုချက်တွင် ပံ့ပိုးမထားသော တန်ဖိုးတစ်ခုပါဝင်သည့် လိုအပ်သောအချက်အလက်တစ်ခု ပျောက်ဆုံးနေပါသည် သို့မဟုတ် ပုံစံမှားယွင်းနေပါသည်။ + invalid_resource_owner: ပံ့ပိုးပေးထားသည့် မူလပိုင်ရှင်အထောက်အထားများမှာ မမှန်ကန်ပါ သို့မဟုတ် မူလပိုင်ရှင်ကို ရှာမတွေ့ပါ။ + invalid_scope: တောင်းဆိုထားသော နယ်ပယ်မှာ မမှန်ကန်ခြင်း၊ မသိခြင်း သို့မဟုတ် ပုံစံမမှန်ကန်ခြင်းတို့ကြောင့် ဖြစ်ပါသည်။ invalid_token: expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည် unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ + resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator ကို ပြုပြင်မွမ်းမံမှုအားဖယ်ရှားထားခြင်းကြောင့် မူလပိုင်ရှင်ရှာဖွေခြင်းမှာ မအောင်မြင်ပါ။ + server_error: ခွင့်ပြုထားသောဆာဗာသည် တောင်းဆိုချက်ကို မဖြည့်ဆည်းပေးနိုင်သည့် မမျှော်လင့်ထားသော အခြေအနေတစ်ခုကို ကြုံတွေ့ခဲ့ရသည်။ + temporarily_unavailable: ဆာဗာမှာ ယာယီအလုပ်များပိုလုပ်နေရခြင်း သို့မဟုတ် ဆာဗာပြုပြင်ထိန်းသိမ်းမှုတို့ကြောင့် တောင်းဆိုချက်ကို လောလောဆယ်တွင် ကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါ။ + unauthorized_client: ဤနည်းလမ်းကို အသုံးပြု၍ Client မှ ဤတောင်းဆိုမှုကို ဆောင်ရွက်ခွင့်မရှိပါ။ + unsupported_grant_type: တရားဝင်ခွင့်ပြုချက်အမျိုးအစားကို ခွင့်ပြုချက်ဆာဗာမှ မပံ့ပိုးထားပါ။ unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။ flash: applications: @@ -100,6 +115,7 @@ my: access: read: ဖတ်ခွင့်သာရှိသည် read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည် + write: ပြင်ခွင့်သာရှိသည် title: accounts: အကောင့်များ admin/accounts: အကောင့်စီမံခန့်ခွဲမှု @@ -132,6 +148,7 @@ my: scopes: admin:read: ဆာဗာရှိ အချက်အလက်အားလုံးကို ဖတ်ပါ admin:read:accounts: အကောင့်အားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ + admin:read:canonical_email_blocks: ပိတ်ပင်ထားသော Canonical Email အားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ admin:read:domain_allows: ခွင့်ပြုထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ admin:read:domain_blocks: ပိတ်ပင်ထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ admin:read:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းအားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ @@ -139,6 +156,7 @@ my: admin:read:reports: မှတ်တမ်းများနှင့် တိုင်ကြားထားသောအကောင့်များအားလုံး၏ အရေးကြီးသော အချက်အလက်ကို ဖတ်ပါ။ admin:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ + admin:write:canonical_email_blocks: Canonical Email ပိတ်ပင်ထားမှုများအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ @@ -158,6 +176,7 @@ my: read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ + read:search: သင့်ကိုယ်စား ရှာဖွေပါ read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml index 887a218953..db399b05f6 100644 --- a/config/locales/doorkeeper.sr.yml +++ b/config/locales/doorkeeper.sr.yml @@ -122,16 +122,18 @@ sr: admin/accounts: Администрација налога admin/all: Све функције администрације admin/reports: Администрација пријава + all: Потпуни приступ вашем Mastodon налогу blocks: Блокирани bookmarks: Обележивачи conversations: Разговори crypto: End-to-end енкрипција favourites: Омиљени filters: Филтери + follow: Праћења, игнорисања и блокирања follows: Праћени lists: Листе media: Мултимедијални прилози - mutes: Утишани + mutes: Игнорисани notifications: Обавештења push: Прослеђена обавештења reports: Пријаве @@ -157,7 +159,7 @@ sr: admin:write:ip_blocks: изврши модераторске активности на IP блоковима admin:write:reports: вршење модераторских активности над извештајима crypto: коришћење end-to-end енкрипције - follow: прати, блокира, одблокира и отпрати налоге + follow: мења односе налога push: примање прослеђених обавештења read: чита податке Вашег налога read:accounts: погледај информације о налозима @@ -167,7 +169,7 @@ sr: read:filters: погледај своје филтере read:follows: погледај кога пратиш read:lists: погледај своје листе - read:mutes: погледај своје утишане + read:mutes: погледај игнорисања read:notifications: погледај своја обавештења read:reports: погледај своје пријаве read:search: претражи у своје име @@ -176,13 +178,13 @@ sr: write:accounts: измени свој профил write:blocks: блокирај налоге и домене write:bookmarks: обележи објаве - write:conversations: утишај и обриши разговоре + write:conversations: игнориши и избриши разговоре write:favourites: омиљене објаве write:filters: креирај филтере write:follows: прати кориснике write:lists: креирај листе write:media: отпреми медијске датотеке - write:mutes: утишај коринсике и разговоре + write:mutes: игнориши кориснике и разговоре write:notifications: обриши своја обавештења write:reports: пријави друге кориснике write:statuses: објави објаве diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index da5597c85c..6d07717e1d 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -131,7 +131,7 @@ zh-TW: filters: 過濾器 follow: 跟隨、靜音與封鎖 follows: 跟隨的使用者 - lists: 名單 + lists: 列表 media: 多媒體附加檔案 mutes: 靜音 notifications: 通知 @@ -168,12 +168,12 @@ zh-TW: push: 接收帳號的推播通知 read: 讀取您所有的帳號資料 read:accounts: 檢視帳號資訊 - read:blocks: 檢視您的封鎖名單 + read:blocks: 檢視您的封鎖列表 read:bookmarks: 檢視您的書籤 read:favourites: 檢視您收藏的最愛 read:filters: 檢視您的過濾條件 read:follows: 檢視您跟隨的人 - read:lists: 檢視您的名單 + read:lists: 檢視您的列表 read:mutes: 檢視您靜音的人 read:notifications: 檢視您的通知 read:reports: 檢視您的檢舉 diff --git a/config/locales/el.yml b/config/locales/el.yml index 9a0ac8dbd2..7994f71740 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -278,6 +278,15 @@ el: suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target} unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target} unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}" + unsensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα + unsilence_account_html: Ο/Η %{name} αφαίρεσε το όριο του λογαριασμού του/της %{target} + unsuspend_account_html: Ο/Η %{name} επανέφερε τον λογαριασμό του/της %{target} + update_announcement_html: Ο/Η %{name} ενημέρωση την ανακοίνωση %{target} + update_custom_emoji_html: Ο/Η %{name} ενημέρωσε το emoji %{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} deleted_account: διαγραμμένος λογαριασμός empty: Δεν βρέθηκαν αρχεία καταγραφής. filter_by_action: Φιλτράρισμα ανά ενέργεια @@ -322,6 +331,7 @@ el: listed: Αναφερθέντα new: title: Προσθήκη νέου προσαρμοσμένου emoji + no_emoji_selected: Δεν άλλαξαν τα emoji καθώς δεν επιλέχθηκε κανένα not_permitted: Δεν επιτρέπεται να κάνετε αυτή την λειτουργία overwrite: Αντικατάσταση shortcode: Σύντομος κωδικός @@ -335,12 +345,30 @@ el: upload: Ανέβασμα dashboard: active_users: ενεργοί χρήστες + interactions: αλληλεπιδράσεις + media_storage: Αποθηκευτικός Χώρος new_users: νέοι χρήστες + opened_reports: αναφορές που ανοίχτηκαν + pending_reports_html: + one: "%{count} εκκρεμής αναφορά" + other: "%{count} εκκρεμείς αναφορές" + pending_tags_html: + one: "%{count} εκκρεμής ετικέτα" + other: "%{count} εκκρεμείς ετικέτες" + pending_users_html: + one: "%{count} χρήστης σε εκκρεμότητα" + other: "%{count} χρήστες σε εκκρεμότητα" + resolved_reports: επιλυμμένες αναφορές software: Λογισμικό + sources: Πηγές εγγραφής space: Κατανάλωση χώρου title: Ταμπλό + top_languages: Κορυφαίες ενεργές γλώσσες + top_servers: Κορυφαίοι ενεργοί διακομιστές + website: Ιστοσελίδα disputes: appeals: + empty: Καμία ένσταση. title: Εφέσεις domain_allows: add_new: Έγκριση τομέα @@ -363,10 +391,13 @@ el: create: Δημιουργία αποκλεισμού hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς. severity: + desc_html: Ο περιορισμός θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων. noop: Κανένα silence: Περιορισμός suspend: Αναστολή title: Αποκλεισμός νέου τομέα + no_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας + not_permitted: Δεν επιτρπέπεται να εκτελέσετε αυτήν την ενέργεια private_comment: Ιδιωτικό σχόλιο private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές. public_comment: Δημόσιο σχόλιο diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 0ce2a894ae..1267c49172 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -91,6 +91,7 @@ es-MX: moderation: active: Activo all: Todos + disabled: Deshabilitado pending: Pendiente silenced: Limitado suspended: Suspendidos @@ -133,6 +134,7 @@ es-MX: search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo search_same_ip: Otros usuarios con la misma IP + security: Seguridad security_measures: only_password: Sólo contraseña password_and_2fa: Contraseña y 2FA @@ -427,6 +429,7 @@ es-MX: resolve: Resolver dominio title: Nueva entrada en la lista negra de correo no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado + not_permitted: No permitido resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tenga cuidado de no bloquear los principales proveedores de correo electrónico. resolved_through_html: Resuelto a través de %{domain} title: Lista negra de correo @@ -473,6 +476,7 @@ es-MX: content_policies: comment: Nota interna description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios. + limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio. policies: reject_media: Rechazar multimedia reject_reports: Rechazar informes @@ -585,11 +589,13 @@ es-MX: assign_to_self: Asignármela a mí assigned: Moderador asignado by_target_domain: Dominio de la cuenta reportada + cancel: Cancelar category: Categoría category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada comment: none: Ninguno comment_description_html: 'Para proporcionar más información, %{name} escribió:' + confirm: Confirmar confirm_action: Confirmar acción de moderación contra @%{acct} created_at: Denunciado delete_and_resolve: Eliminar publicaciones @@ -792,6 +798,7 @@ es-MX: suspend: "%{name} suspendio la cuenta de %{target}" appeal_approved: Apelado appeal_pending: Apelación pendiente + appeal_rejected: Apelación rechazada system_checks: database_schema_check: message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería @@ -827,6 +834,7 @@ es-MX: other: Compartido por %{count} personas durante la última semana title: Enlaces en tendencia usage_comparison: Compartido %{today} veces hoy, comparado a %{yesterday} ayer + not_allowed_to_trend: No permitido para tendencia only_allowed: Sólo las permitidas pending_review: Revisión pendiente preview_card_providers: @@ -958,6 +966,7 @@ es-MX: applications: created: Aplicación creada exitosamente destroyed: Apicación eliminada exitosamente + logout: Cerrar sesión regenerate_token: Regenerar token de acceso token_regenerated: Token de acceso regenerado exitosamente warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! @@ -994,6 +1003,8 @@ es-MX: resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña rules: + accept: Aceptar + back: Atrás preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. title: Algunas reglas básicas. security: Cambiar contraseña @@ -1140,6 +1151,8 @@ es-MX: storage: Almacenamiento featured_tags: add_new: Añadir nuevo + errors: + limit: Ya has alcanzado la cantidad máxima de hashtags hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: @@ -1247,6 +1260,9 @@ es-MX: expires_at: Expira uses: Usos title: Invitar a gente + lists: + errors: + limit: Has alcanzado la cantidad máxima de listas login_activities: authentication_methods: otp: aplicación de autenticación en dos pasos @@ -1566,6 +1582,7 @@ es-MX: '7889238': 3 meses min_age_label: Umbral de tiempo min_favs: Mantener mensajes con un número de favoritos mayor que + min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos min_reblogs: Mantener publicaciones reblogueadas más de min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos stream_entries: diff --git a/config/locales/es.yml b/config/locales/es.yml index aaf438b17b..f87042792f 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -476,7 +476,7 @@ es: content_policies: comment: Nota interna description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios. - limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio. + limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio. policies: reject_media: Rechazar multimedia reject_reports: Rechazar informes @@ -925,7 +925,7 @@ es: new_report: body: "%{reporter} ha reportado a %{target}" body_remote: Alguien de %{domain} a reportado a %{target} - subject: Nuevo reporte para la %{instance} (#%{id}) + subject: Nuevo informe para %{instance} (#%{id}) new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 4c69085b61..76788b995d 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -834,6 +834,7 @@ fr-QC: other: Partagé par %{count} personnes au cours de la dernière semaine title: Liens tendances usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier + not_allowed_to_trend: Non autorisé à apparaître dans les tendances only_allowed: Autorisées seulement pending_review: En attente de révision preview_card_providers: @@ -1002,6 +1003,7 @@ fr-QC: resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe rules: + accept: Accepter back: Retour preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}. title: Quelques règles de base. @@ -1149,6 +1151,8 @@ fr-QC: storage: Médias stockés featured_tags: add_new: Ajouter un nouveau hashtag + errors: + limit: Vous avez déjà mis en avant le nombre maximum de hashtags hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme." filters: contexts: @@ -1256,6 +1260,9 @@ fr-QC: expires_at: Expire uses: Utilisations title: Inviter des gens + lists: + errors: + limit: Vous avez atteint le nombre maximum de listes login_activities: authentication_methods: otp: application d'authentification à deux facteurs @@ -1575,6 +1582,7 @@ fr-QC: '7889238': 3 mois min_age_label: Seuil d'ancienneté min_favs: Conserver les messages mis en favoris au moins + min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris min_reblogs: Conserver les messages partagés au moins min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages stream_entries: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a8fe44087f..fb778f803f 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1466,7 +1466,7 @@ ko: export: 데이터 내보내기 featured_tags: 추천 해시태그 import: 데이터 가져오기 - import_and_export: 가져오기 / 내보내기 + import_and_export: 가져오기 & 내보내기 migrate: 계정 이동 notifications: 알림 preferences: 사용자 설정 diff --git a/config/locales/nn.yml b/config/locales/nn.yml index f6bae8c5c7..49f30bab09 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -91,6 +91,7 @@ nn: moderation: active: Aktiv all: Alle + disabled: Deaktivert pending: Ventar på svar silenced: Avgrensa suspended: Utvist @@ -133,6 +134,7 @@ nn: search: Søk search_same_email_domain: Andre brukarar med same e-postdomene search_same_ip: Andre brukarar med same IP + security: Sikkerhet security_measures: only_password: Kun passord password_and_2fa: Passord og 2FA @@ -421,6 +423,7 @@ nn: resolve: Løs domene title: Ny blokkeringsoppføring av e-postdomene no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde + not_permitted: Ikke tillatt resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. Pass på så du ikkje blokkerer dei store e-postleverandørane. resolved_through_html: Løyst gjennom %{domain} title: Blokkerte e-postadresser @@ -435,6 +438,7 @@ nn: private_comment_description_html: 'For å hjelpa deg med å halda oversikt over kvar importerte blokkeringar kjem frå, vil dei bli oppretta med fylgjande private kommentar: %{comment}' private_comment_template: Importert frå %{source} den %{date} title: Importer domeneblokkeringar + invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}' new: title: Importer domeneblokkeringar no_file: Inga fil vald @@ -569,17 +573,23 @@ nn: 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. Lukker alle rapporter mot denne kontoen. + suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen. 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. + actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet. 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 + cancel: Avbryt 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}:' + confirm: Bekreft + confirm_action: Bekreft moderasjonshandling mot @%{acct} created_at: Rapportert delete_and_resolve: Slett innlegg forwarded: Videresendt @@ -596,6 +606,7 @@ nn: 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 + processed_msg: 'Rapport #%{id} er behandlet' 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 @@ -608,6 +619,12 @@ nn: status: Status statuses: Rapportert innhold statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen + summary: + action_preambles: + delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:' + mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:' + silence_html: 'Du er i ferd med å avgrense @%{acct} sin konto. Dette vil:' + suspend_html: 'Du er i ferd med å stoppe @%{acct} sin konto. Dette vil:' target_origin: Opprinnelse for innrapportert konto title: Rapportar unassign: Avset diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 79ad3e839a..d855721077 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -91,6 +91,7 @@ pt-BR: moderation: active: Ativo all: Todos + disabled: Desativado pending: Pendente silenced: Limitado suspended: Suspendido @@ -133,6 +134,7 @@ pt-BR: search: Buscar search_same_email_domain: Outros usuários com o mesmo domínio de e-mail search_same_ip: Outros usuários com o mesmo IP + security: Segurança security_measures: only_password: Apenas senha password_and_2fa: Senha e autenticação de dois fatores @@ -426,6 +428,7 @@ pt-BR: resolve: Resolver domínio title: Nova entrada de lista negra de e-mail no_email_domain_block_selected: Nenhum bloco de domínio de e-mail foi alterado, pois nenhum foi selecionado + not_permitted: Não permitido resolved_dns_records_hint_html: O nome de domínio resolve os seguintes domínios MX, que são responsáveis finais por aceitar o e-mail. Bloquear um domínio MX bloqueará inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo que o nome de domínio visível seja diferente. Cuidado para não bloquear os principais provedores de e-mail. resolved_through_html: Resolvido através de %{domain} title: Lista de negra de e-mail @@ -580,11 +583,13 @@ pt-BR: assign_to_self: Atribuir para si assigned: Moderador responsável by_target_domain: Domínio da conta denunciada + cancel: Cancelar category: Categoria category_description_html: O motivo pelo qual esta conta e/ou conteúdo foi denunciado será citado na comunicação com a conta denunciada comment: none: Nenhum comment_description_html: 'Para fornecer mais informações, %{name} escreveu:' + confirm: Confirmar created_at: Denunciado delete_and_resolve: Excluir publicações forwarded: Encaminhados @@ -601,6 +606,7 @@ pt-BR: placeholder: Descreva quais ações foram tomadas ou quaisquer outras atualizações relacionadas... title: Notas notes_description_html: Visualize e deixe anotações para outros moderadores e para você mesmo no futuro + processed_msg: 'Relatório #%{id} processado com sucesso' quick_actions_description_html: 'Tome uma ação rápida ou role para baixo para ver o conteúdo denunciado:' remote_user_placeholder: o usuário remoto de %{instance} reopen: Reabrir denúncia @@ -982,6 +988,8 @@ pt-BR: resend_confirmation: Reenviar instruções de confirmação reset_password: Redefinir senha rules: + accept: Aceitar + back: Voltar preamble: Estes são definidos e aplicados pelos moderadores de %{domain}. title: Algumas regras básicas. security: Segurança @@ -1235,6 +1243,9 @@ pt-BR: expires_at: Expira em uses: Usos title: Convidar pessoas + lists: + errors: + limit: Você atingiu o número máximo de listas login_activities: authentication_methods: otp: autenticação de dois fatores diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 701be825e9..d3649ba40d 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1151,6 +1151,8 @@ pt-PT: storage: Armazenamento de media featured_tags: add_new: Adicionar nova + errors: + limit: Já destacou o número máximo de hashtags permitido 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: @@ -1258,6 +1260,9 @@ pt-PT: expires_at: Expira uses: Usos title: Convidar pessoas + lists: + errors: + limit: Atingiu o número máximo de listas permitido login_activities: authentication_methods: otp: aplicação de autenticação em duas etapas @@ -1577,6 +1582,7 @@ pt-PT: '7889238': 3 meses min_age_label: Limite de idade min_favs: Manter pelo menos as publicações dos marcadores + min_favs_hint: Não elimina nenhuma das suas publicações que tenha recebido pelo menos este número de favoritos. Deixe em branco para eliminar publicações, independentemente do seu número de favoritos 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: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 28402b46b1..9b8749b818 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -95,6 +95,7 @@ ru: moderation: active: Действующие all: Все + disabled: Отключено pending: В ожидании silenced: Ограниченные suspended: Заблокированные @@ -139,6 +140,7 @@ ru: search: Поиск search_same_email_domain: Другие пользователи с тем же доменом электронной почты search_same_ip: Другие пользователи с таким же IP + security: Безопасность security_measures: only_password: Только пароль password_and_2fa: Пароль и 2FA @@ -443,6 +445,7 @@ ru: resolve: Проверить домен title: Новая блокировка по домену no_email_domain_block_selected: Блоки домена электронной почты не были изменены, так как не были выбраны + not_permitted: Не разрешено resolved_dns_records_hint_html: Доменное имя устраняется на следующие MX-домены, которые в конечном итоге отвечают за прием электронной почты. Блокировка MX-домена будет блокировать регистрации с любого адреса электронной почты, который использует тот же MX-домен, даже если видимое доменное имя отличается от него. Будьте осторожны, чтобы не блокировать основных поставщиков электронной почты resolved_through_html: Разрешено через %{domain} title: Блокировка e-mail доменов @@ -493,6 +496,7 @@ ru: content_policies: comment: Внутренняя заметка description_html: Вы можете определить политики контента, которые будут применяться ко всем учетным записям этого домена и любого из его субдоменов. + limited_federation_mode_description_html: Вы можете выбрать, разрешать ли объединение с этим доменом. policies: reject_media: Отклонить медиа reject_reports: Отклонять жалобы @@ -609,11 +613,13 @@ ru: assign_to_self: Назначить себе assigned: Назначенный модератор by_target_domain: Домен объекта жалобы + cancel: Отменить category: Категория category_description_html: Причина, по которой были доложены этот пользователь или содержимое, будет указана при коммуникации с фигурирующим в жалобе пользователем comment: none: Нет comment_description_html: 'В дополнение, %{name} добавил(а) следующий комментарий:' + confirm: Подтвердить created_at: Создана delete_and_resolve: Удалить посты forwarded: Переслано @@ -810,6 +816,7 @@ ru: suspend: "%{name} приостановил аккаунт %{target}" appeal_approved: Обжаловано appeal_pending: Обжалование в обработке + appeal_rejected: Апелляция отклонена system_checks: database_schema_check: message_html: Есть отложенные миграции базы данных. Запустите их, чтобы убедиться, что приложение работает должным образом @@ -847,6 +854,7 @@ ru: other: Поделился %{count} человек за последнюю неделю title: Актуальные ссылки usage_comparison: Поделились %{today} раз сегодня, по сравнению с %{yesterday} вчера + not_allowed_to_trend: Не допущено в популярное only_allowed: Только разрешенное pending_review: Ожидает рассмотрения preview_card_providers: @@ -984,6 +992,7 @@ ru: applications: created: Приложение успешно создано destroyed: Приложение успешно удалено + logout: Выйти regenerate_token: Повторно сгенерировать токен доступа token_regenerated: Токен доступа успешно сгенерирован warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем! @@ -1020,6 +1029,8 @@ ru: resend_confirmation: Повторить отправку инструкции для подтверждения reset_password: Сбросить пароль rules: + accept: Принять + back: Назад preamble: Они устанавливаются и применяются модераторами %{domain}. title: Несколько основных правил. security: Безопасность diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 267d2292cb..61befb9e64 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -19,6 +19,7 @@ ar: none: استخدم هذه لإرسال تحذير للمستخدم، دون تشغيل أو إثارة أي إجراء آخر. sensitive: إجبار جميع مرفقات الوسائط لهذا المستخدم على أن تكون حساسة. silence: منع المستخدم من القدرة على النشر للعامة، وإخفاء مشاركاته وإشعاراته لمن لا يتبعونه. إغلاق جميع التقارير المقترنة بهذا الحساب. + suspend: منع أي تفاعل من هذا الحساب أو إليه وحذف محتوياته. يمكن التراجع عنه في غضون 30 يوما. إغلاق جميع التقارير المفتوحة ضد هذا الحساب. warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج announcement: all_day: إن أختير، سيتم عرض تواريخ النطاق الزمني فقط @@ -95,6 +96,7 @@ ar: timeline_preview: الزوار الذين سجلوا خروجهم سيكونون قادرين على تصفح أحدث المشاركات العامة المتاحة على الخادم. trendable_by_default: تخطي مراجعة المحتوى التريند اليدوي. لا يزال من الممكن الإزالة اللاحقة للعناصر الفردية من التريندات. trends: تظهر التريندز أي المشاركات وعلامات وقصص الأخبار التي تجذب الانتباه على الخادم الخاص بك. + trends_as_landing_page: إظهار المحتوى المتداوَل للمستخدمين والزوار غير المسجلين بدلاً من وصف هذا الخادم. يتطلب هذا تفعيل المتداولة. form_challenge: current_password: إنك بصدد الدخول إلى منطقة آمنة imports: @@ -230,6 +232,7 @@ ar: hide: إخفاء بالكامل warn: إخفاء بتحذير form_admin_settings: + activity_api_enabled: نشر مُجمل الإحصائيات عن نشاط المستخدمين في واجهة برمجة التطبيقات API backups_retention_period: فترة الاحتفاظ بأرشيف المستخدم bootstrap_timeline_accounts: أوصي دائما بهذه الحسابات للمستخدمين الجدد closed_registrations_message: رسالة مخصصة عندما يكون التسجيل غير متاح diff --git a/config/locales/simple_form.fr-QC.yml b/config/locales/simple_form.fr-QC.yml index bc78f0ae65..541bc8be6a 100644 --- a/config/locales/simple_form.fr-QC.yml +++ b/config/locales/simple_form.fr-QC.yml @@ -82,7 +82,7 @@ fr-QC: custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon. mascot: Remplace l'illustration dans l'interface Web avancée. media_cache_retention_period: Les fichiers multimédias téléchargés seront supprimés après le nombre de jours spécifiés lorsque la valeur est positive, et seront téléchargés à nouveau sur demande. - peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fediverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général. + peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fédiverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général. 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. @@ -91,11 +91,13 @@ fr-QC: 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. site_title: Comment les personnes peuvent se référer à votre serveur en plus de son nom de domaine. + status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s. thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur. timeline_preview: Les visiteurs déconnectés pourront parcourir les derniers messages publics disponibles sur le serveur. trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup. trends: Les tendances montrent quelles publications, hashtags et actualités sont en train de gagner en traction sur votre serveur. + trends_as_landing_page: Afficher le contenu tendance au lieu d'une description de ce serveur pour les comptes déconnectés et les non-inscrit⋅e⋅s. Nécessite que les tendances soient activées. form_challenge: current_password: Vous entrez une zone sécurisée imports: @@ -251,11 +253,13 @@ fr-QC: site_short_description: Description du serveur site_terms: Politique de confidentialité site_title: Nom du serveur + status_page_url: URL de la page de l'état du serveur theme: Thème par défaut thumbnail: Miniature du serveur timeline_preview: Autoriser l’accès non authentifié aux fils publics trendable_by_default: Autoriser les tendances sans révision préalable trends: Activer les tendances + trends_as_landing_page: Utiliser les tendances comme page d'accueil interactions: must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas must_be_following: Bloquer les notifications des personnes que vous ne suivez pas diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 3af09275fb..189b9bfc50 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -259,7 +259,7 @@ it: timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche trendable_by_default: Consenti le tendenze senza revisione preventiva trends: Abilita le tendenze - trends_as_landing_page: Utilizza le tendenze come pagina di destinazione + trends_as_landing_page: Usa le tendenze come pagina di destinazione interactions: must_be_follower: Blocca notifiche da chi non ti segue must_be_following: Blocca notifiche dalle persone che non segui diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index b8edaf6368..294fc548bb 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -101,7 +101,7 @@ ko: form_challenge: current_password: 당신은 보안 구역에 진입하고 있습니다 imports: - data: 다른 마스토돈 서버에서 추출된 CSV 파일 + data: 다른 마스토돈 서버에서 내보낸 CSV 파일 invite_request: text: 이 정보는 신청을 검토하는데 도움을 줄 수 있습니다. ip_block: @@ -116,7 +116,7 @@ ko: rule: text: 이 서버 사용자들이 지켜야 할 규칙과 요구사항을 설명해주세요. 짧고 간단하게 작성해주세요 sessions: - otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:' + otp: '휴대전화에서 생성된 이중 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:' webauthn: USB 키라면 삽입했는지 확인하고, 필요하다면 누르세요. tag: name: 읽기 쉽게하기 위한 글자의 대소문자만 변경할 수 있습니다. @@ -150,11 +150,11 @@ ko: text: 커스텀 경고 type: 조치 types: - disable: 비활성화 - none: 아무 것도 하지 않기 + disable: 동결 + none: 경고 보내기 sensitive: 민감함 silence: 제한 - suspend: 정지하고 되돌릴 수 없는 데이터 삭제 + suspend: 정지 warning_preset_id: 경고 틀 사용하기 announcement: all_day: 종일 일정 @@ -163,7 +163,7 @@ ko: starts_at: 이벤트 시작 text: 공지사항 appeal: - text: 이 결정이 왜 번복되어야 하는지에 대해 설명해주세요 + text: 이 결정을 번복해야만 하는 이유가 무엇입니까 defaults: autofollow: 초대를 통한 팔로우 avatar: 아바타 @@ -188,7 +188,7 @@ ko: max_uses: 사용 횟수 제한 new_password: 새로운 암호 입력 note: 자기소개 - otp_attempt: 2단계 인증 코드 + otp_attempt: 이중 인증 코드 password: 암호 phrase: 키워드 또는 문장 setting_advanced_layout: 고급 웹 UI 활성화 @@ -206,11 +206,11 @@ ko: setting_display_media_default: 기본 setting_display_media_hide_all: 모두 가리기 setting_display_media_show_all: 모두 보이기 - setting_expand_spoilers: 열람주의 툿을 항상 펼치기 + setting_expand_spoilers: 열람주의 게시물을 항상 펼치기 setting_hide_network: 내 인맥 숨기기 setting_noindex: 검색엔진의 인덱싱을 거절 setting_reduce_motion: 애니메이션 줄이기 - setting_show_application: 툿 작성에 사용한 앱을 공개 + setting_show_application: 게시물 작성에 쓰인 애플리케이션 공개 setting_system_font_ui: 시스템의 기본 글꼴을 사용 setting_theme: 사이트 테마 setting_trends: 오늘의 유행 보이기 @@ -305,7 +305,7 @@ ko: webhook: events: 활성화된 이벤트 url: 엔드포인트 URL - 'no': 아니오 + 'no': 아니요 not_recommended: 추천하지 않음 recommended: 추천함 required: diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml index 5e1fc6bee9..8a1cefc94b 100644 --- a/config/locales/simple_form.my.yml +++ b/config/locales/simple_form.my.yml @@ -1 +1,121 @@ +--- my: + simple_form: + hints: + defaults: + password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။ + setting_display_media_hide_all: မီဒီယာကို အမြဲတမ်းဖျောက်ထားပါ + setting_display_media_show_all: မီဒီယာကို အမြဲတမ်းပြပါ + setting_hide_network: သင်စောင့်ကြည့်မည့်သူများနှင့် သင့်ကိုစောင့်ကြည့်မည့်သူများကို သင့်ပရိုဖိုင်တွင် ဖျောက်ထားနိုင်ပါသည် + setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည် + setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည် + imports: + data: အခြား Mastodon ဆာဗာမှ CSV ဖိုင်ကို ပို့ထားသည် + invite_request: + text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်" + ip_block: + severities: + sign_up_requires_approval: အကောင့်အသစ်များသည် သင့်ခွင့်ပြုချက်လိုအပ်ပါသည် + sessions: + otp: သင့်ဖုန်းအက်ပ်မှထုတ်ပေးသောနှစ်ဆင့်ခံလုံခြုံရေးကုဒ်ကို ထည့်ပါ သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုပါ - + labels: + account: + fields: + value: အကြောင်းအရာ + account_alias: + acct: အကောင့်ဟောင်းကို ကိုင်တွယ်ပါ။ + account_migration: + acct: အကောင့်သစ်ကို ကိုင်တွယ်ပါ။ + account_warning_preset: + title: ခေါင်းစဥ် + admin_account_action: + type: လုပ်ဆောင်ချက် + types: + none: သတိပေးချက်ပေးပို့ပါ + silence: ကန့်သတ် + announcement: + text: ကြေညာချက် + defaults: + avatar: ကိုယ်စားပြုရုပ်ပုံ + bot: ဤသည်မှာ ဘော့တ်အကောင့်တစ်ခုဖြစ်သည်။ + chosen_languages: ဘာသာစကားများကို စစ်ထုတ်ထားခြင်း + confirm_new_password: စကားဝှက်အသစ်ကို အတည်ပြုပါ + confirm_password: စကားဝှက်ကို အတည်ပြုပါ။ + context: အကြောင်းအရာများကို စစ်ထုတ်ပါ။ + current_password: လက်ရှိစကားဝှက် + data: အချက်အလက် + display_name: ဖော်ပြမည့်အမည် + email: အီးမေးလ်လိပ်စာ + header: မျက်နှာဖုံးပုံ + honeypot: "%{label} (မဖြည့်ပါနှင့်)" + new_password: စကားဝှက်အသစ် + note: ကိုယ်ရေးအကျဉ်း + otp_attempt: နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် + password: စကားဝှက် + phrase: အဓိကစကားလုံး သို့မဟုတ် စကားစု + setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ + setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ + setting_display_media: မီဒီယာဖော်ပြမှု + setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ + setting_display_media_show_all: အားလုံးပြရန် + setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ + setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ + setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ + sign_in_token_attempt: လုံခြုံရေးကုဒ် + title: ခေါင်းစဥ် + username: အသုံးပြုသူအမည် + username_or_email: အသုံးပြုသူအမည် သို့မဟုတ် အီးမေးလ် + featured_tag: + name: Hashtag + form_admin_settings: + custom_css: စိတ်ကြိုက်ပြုလုပ်ထားသော CSS + mascot: စိတ်ကြိုက်ပြုလုပ်ထားသော mascot (legacy) + registrations_mode: ဘယ်သူတွေ အကောင့်ဖွင့်နိုင်မလဲ + require_invite_text: ပါဝင်ရန် အကြောင်းပြချက်တစ်ခု လိုအပ်ပါသည် + show_domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများကိုပြရန် + show_domain_blocks_rationale: ဒိုမိန်းများကို ဘာကြောင့် ပိတ်ဆို့ထားရကြောင်း ပြရန် + site_contact_email: ဆက်သွယ်ရမည့် အီးမေးလ် + site_contact_username: ဆက်သွယ်ရမည့် အသုံးပြုသူအမည် + site_short_description: ဆာဗာဖော်ပြချက် + site_terms: ကိုယ်ရေးအချက်အလက်မူဝါဒ + site_title: ဆာဗာအမည် + thumbnail: ဆာဗာ ပုံသေး + interactions: + must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ + must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ + must_be_following_dm: သင် စောင့်ကြည့်မထားသူများထံမှ တိုက်ရိုက်မက်ဆေ့ချ်များကို ပိတ်ပါ + invite: + comment: မှတ်ချက် + invite_request: + text: သင် ဘာကြောင့် ပါဝင်ချင်တာလဲ။ + ip_block: + comment: မှတ်ချက် + ip: IP + severities: + sign_up_block: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ပါ + sign_up_requires_approval: အကောင့်ဖွင့်ခြင်းများကို ကန့်သတ်ပါ + severity: စည်းမျဉ်း + notification_emails: + favourite: တစ်စုံတစ်ဦးက သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်။ + follow: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ခဲ့သည် + follow_request: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုခဲ့သည် + mention: တစ်စုံတစ်ဦးက သင့်ကို ဖော်ပြခဲ့သည် + pending_account: အကောင့်အသစ်ကို ပြန်လည်သုံးသပ်ရန် လိုအပ်သည် + rule: + text: စည်းမျဉ်း + tag: + name: Hashtag + user: + role: အခန်းကဏ္ဍ + user_role: + name: အမည် + permissions_as_keys: ခွင့်ပြုချက်များ + position: ဦးစားပေး + 'no': မလုပ်ပါ + required: + mark: "*" + text: လိုအပ်သော + title: + sessions: + webauthn: အကောင့်ဝင်ရန်အတွက် သင့်လုံခြုံရေးကီးများထဲမှ တစ်ခုကို အသုံးပြုပါ + 'yes': ဟုတ်ကဲ့ diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index 47137d801e..cb11250ad1 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -7,12 +7,12 @@ sr: account_migration: acct: Наведи корисничко_име@домен налога на који желиш да пређеш account_warning_preset: - text: Можете користити синтаксу труба, као што су нпр. УРЛ-ова, тарабе и помињања + text: Можете користити синтаксу објава, као што су URL адресе, хеш ознаке и помињања title: Опционо. Није видљиво примаоцу admin_account_action: include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога - text_html: Опционално. Можете користити синтаксу труба. Можете додати упозоравајућа преподешавање да сачувате време + text_html: Опционално. Можете користити синтаксу објава. Можете додати унапред одређене поставке упозорења за уштеду времена type_html: Изаберите шта да радите са %{acct} types: disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај. @@ -29,7 +29,7 @@ sr: text: На брисање се можеш жалити само једном defaults: autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити - avatar: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px + avatar: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа context: Један или више контекста у којима треба да се примени филтер current_password: Унеси лозинку текућег налога из безбедносних разлога @@ -38,7 +38,7 @@ sr: discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција email: Биће вам послата е-пошта са потврдом fields: Можете имати до 4 ставке приказане као табела на вашем налогу - header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px + header: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px inbox_url: Копирајте URL са насловне стране релеја који желите користити irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен locale: Језик корисничког окружења, е-поште и мобилних обавештења diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index ede921615c..cf914b0583 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -18,6 +18,8 @@ sv: disable: Förhindra användaren från att använda sitt konto, men radera eller dölj inte innehållet. none: Använd det här för att skicka en varning till användaren, utan att vidta någon ytterligare åtgärd. sensitive: Tvinga alla denna användares mediebilagor till att flaggas som känsliga. + silence: Hindra användaren från att kunna göra offentliga inlägg, göm deras inlägg och notiser från folk som inte följer dem. Stänger alla anmälningar mot detta kontot. + suspend: Förhindrar all interaktion från eller till detta konto och ta bort dess innehåll. Går att ångra inom 30 dagar. Stänger alla anmälningar mot detta konto. warning_preset_id: Valfri. Du kan lägga till anpassad text i slutet av förinställningen announcement: all_day: När det är markerat visas endast datum för tidsintervallet @@ -72,6 +74,7 @@ sv: hide: Dölj det filtrerade innehållet helt (beter sig som om det inte fanns) warn: Dölj det filtrerade innehållet bakom en varning som visar filtrets rubrik form_admin_settings: + activity_api_enabled: Antalet lokalt publicerade inlägg, aktiva användare och nya registrerade konton per vecka backups_retention_period: Behåll genererade användararkiv i det angivna antalet dagar. bootstrap_timeline_accounts: Dessa konton kommer fästas högst upp i nya användares följrekommendationer. closed_registrations_message: Visas när nyregistreringar är avstängda @@ -79,6 +82,7 @@ sv: custom_css: Du kan använda anpassade stilar på webbversionen av Mastodon. mascot: Åsidosätter illustrationen i det avancerade webbgränssnittet. media_cache_retention_period: Nedladdade mediefiler kommer raderas efter det angivna antalet dagar, om inställt till ett positivt värde, och laddas ned på nytt vid behov. + peers_api_enabled: En lista över domänen den här servern har stött på i fediversum. Ingen data inkluderas om du har federerat med servern, bara att din server känner till den. Detta används av tjänster som samlar statistik om federering i allmänhet. profile_directory: Profilkatalogen visar alla användare som har samtyckt till att bli upptäckbara. require_invite_text: Gör fältet "Varför vill du gå med?" obligatoriskt när nyregistreringar kräver manuellt godkännande site_contact_email: Hur människor kan nå dig för juridiska spörsmål eller supportfrågor. @@ -87,11 +91,13 @@ sv: site_short_description: En kort beskrivning för att unikt identifiera din server. Vem är det som driver den, vilka är den till för? site_terms: Använd din egen sekretesspolicy eller lämna tomt för att använda standardinställningen. Kan struktureras med Markdown-syntax. site_title: Hur folk kan hänvisa till din server förutom med dess domännamn. + status_page_url: URL till en sida där personer kan se serverns status under ett driftavbrott theme: Tema som utloggade besökare och nya användare ser. thumbnail: En bild i cirka 2:1-proportioner som visas tillsammans med din serverinformation. timeline_preview: Utloggade besökare kommer kunna bläddra bland de senaste offentliga inläggen som finns på servern. trendable_by_default: Hoppa över manuell granskning av trendande innehåll. Enskilda objekt kan ändå raderas från trender retroaktivt. trends: Trender visar vilka inlägg, hashtaggar och nyheter det pratas om på din server. + trends_as_landing_page: Visa trendande innehåll för utloggade användare och besökare istället för en beskrivning om servern. Kräver att trender är aktiverat. form_challenge: current_password: Du går in i ett säkert område imports: @@ -227,6 +233,7 @@ sv: hide: Dölj helt warn: Dölj med en varning form_admin_settings: + activity_api_enabled: Publicera aggregerad statistik om användaraktivitet i API:et backups_retention_period: Lagringsperiod för användararkivet bootstrap_timeline_accounts: Rekommendera alltid dessa konton till nya användare closed_registrations_message: Anpassat meddelande när nyregistreringar inte är tillgängliga @@ -234,6 +241,7 @@ sv: custom_css: Anpassad CSS mascot: Anpassad maskot (tekniskt arv) media_cache_retention_period: Tid för bibehållande av mediecache + peers_api_enabled: Publicera lista över upptäckta servrar i API:et profile_directory: Aktivera profilkatalog registrations_mode: Vem kan registrera sig require_invite_text: Kräv anledning för att gå med @@ -245,11 +253,13 @@ sv: site_short_description: Serverbeskrivning site_terms: Integritetspolicy site_title: Servernamn + status_page_url: URL för statussida theme: Standardtema thumbnail: Serverns tumnagelbild timeline_preview: Tillåt oautentiserad åtkomst till offentliga tidslinjer trendable_by_default: Tillåt trender utan föregående granskning trends: Aktivera trender + trends_as_landing_page: Använd trender som landningssida interactions: must_be_follower: Blockera notiser från icke-följare must_be_following: Blockera notiser från personer du inte följer diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 5f974c6fd1..8a2bcc0a1f 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -49,7 +49,7 @@ zh-TW: phrase: 無論是嘟文的本文或是內容警告都會被過濾 scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。 setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文) - setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送 e-mail 通知 + setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送電子郵件通知 setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示 setting_display_media_default: 隱藏標為敏感內容的媒體 setting_display_media_hide_all: 總是隱藏所有媒體 @@ -62,10 +62,10 @@ zh-TW: username: 您的使用者名稱將在 %{domain} 是獨一無二的 whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用 domain_allow: - domain: 此域名將能夠攫取本站資料,而自域名該發出的資料也會於本站處理和留存。 + domain: 此網域將能夠攫取本站資料,而自該網域發出的資料也會於本站處理和留存。 email_domain_block: domain: 這可以是顯示在電子郵件中的網域名稱,或是其使用的 MX 紀錄。其將在註冊時檢查。 - with_dns_records: Mastodon 會嘗試解析所給域名的 DNS 記錄,解析結果一致者將一併封鎖 + with_dns_records: Mastodon 會嘗試解析所給網域的 DNS 記錄,解析結果一致者將一併封鎖 featured_tag: name: 這些是您最近使用的一些主題標籤: filters: @@ -107,7 +107,7 @@ zh-TW: ip_block: comment: 可選的,但請記得您為何添加這項規則。 expires_in: IP 位址是經常共用或轉手的有限資源,不建議無限期地封鎖特定 IP 位址。 - ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要把自己給一併封鎖掉囉! + ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要將自己給一併封鎖掉囉! severities: no_access: 封鎖對所有資源存取 sign_up_block: 無法註冊新帳號 @@ -154,7 +154,7 @@ zh-TW: none: 什麼也不做 sensitive: 敏感内容 silence: 安靜 - suspend: 停權並永久刪除帳號資料 + suspend: 停權並不可逆的刪除帳號資料 warning_preset_id: 使用警告預設 announcement: all_day: 全天活動 @@ -193,7 +193,7 @@ zh-TW: phrase: 關鍵字或片語 setting_advanced_layout: 啟用進階網頁介面 setting_aggregate_reblogs: 時間軸中的群組轉嘟 - setting_always_send_emails: 總是發送 e-mail 通知 + setting_always_send_emails: 總是發送電子郵件通知 setting_auto_play_gif: 自動播放 GIF 動畫 setting_boost_modal: 轉嘟前先詢問我 setting_crop_images: 將未展開嘟文中的圖片裁剪至 16x9 @@ -283,7 +283,7 @@ zh-TW: follow: 當有使用者跟隨您時,傳送電子郵件通知 follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知 mention: 當有使用者在嘟文提及您時,傳送電子郵件通知 - pending_account: 需要審核的新帳號 + pending_account: 有新的帳號需要審核 reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知 report: 新回報已遞交 trending_tag: 新熱門趨勢需要審核 diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8cb4bcb393..8a56fa7f30 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -105,6 +105,7 @@ sr: reject: Одбаци remove_avatar: Уклони аватар remove_header: Одстрани заглавље + removed_avatar_msg: Слика аватара корисника %{username} је успешно уклоњена resend_confirmation: already_confirmed: Овој корисник е веќе потврден send: Препрати го е-мајлот за потврда @@ -152,10 +153,13 @@ sr: disable_user: Онемогући корисника enable_user: Омогући корисника reject_user: Одбаци корисника + remove_avatar_user: Уклони аватар silence_account: Ограничи налог suspend_account: Обустави налог update_status: Уреди објаву update_user_role: Уреди улогу + actions: + remove_avatar_user_html: "%{name} је уклонио аватар корисника %{target}" deleted_account: обрисан налог filter_by_action: Филтрирај по активности filter_by_user: Филтрирај по кориснику @@ -236,6 +240,9 @@ sr: create: Додај домен title: Нова ставка е-поштe у црној листи title: Црна листа E-поште + export_domain_blocks: + import: + existing_relationships_warning: Постојећи односи у облику праћења follow_recommendations: status: Статус instances: @@ -283,6 +290,8 @@ sr: new: title: Креирај ново IP правило no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано + relationships: + title: Односи корисника %{acct} relays: add_new: Додај нови релеј delete: Обриши @@ -404,14 +413,14 @@ sr: your_token: Ваш приступни токен auth: change_password: Лозинка - delete_account: Обриши налог - delete_account_html: Ако желите да обришете Ваш налог, можете наставити овде. Бићете упитани да потврдите. + delete_account: Брисање налога + delete_account_html: Ако желите да избришете ваш налог, можете наставити овде. Од вас ће се тражити потврда. didnt_get_confirmation: Нисте добили поруку са упутствима за потврду налога? forgot_password: Заборавили сте лозинку? invalid_reset_password_token: Токен за ресетовање лозинке је неисправан или је истекао. Затражите нови. login: Пријави се logout: Одјава - migrate_account: Помери у други налог + migrate_account: Премештање у други налог migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то подесити овде. or_log_in_with: Или се пријавите са providers: @@ -422,6 +431,9 @@ sr: reset_password: Ресетуј лозинку security: Безбедност set_new_password: Постави нову лозинку + status: + account_status: Статус налога + functional: Ваш налог је потпуно оперативан. authorize_follow: already_following: Већ пратите овај налог error: Нажалост, десила се грешка при тражењу удаљеног налога @@ -466,15 +478,20 @@ sr: archive_takeout: date: Датум download: Преузмите Вашу архиву - hint_html: Можете затражити архиву ваших труба и отпремљених медија. Извезени подаци ће бити у АктивитиПаб формату, који можете читати са било којим усаглашеним софтвером. Архиву можете затражити сваких 7 дана. + hint_html: Можете затражити архиву ваших објава и отпремљених медија. Извезени подаци ће бити у ActivityPub формату, који може читати било који компатибилан софтвер. Архиву можете затражити сваких 7 дана. in_progress: Састављање ваше архиве... - request: Затражите Вашу архиву + request: Затражите своју архиву size: Величина blocks: Блокирали сте domain_blocks: Блокови домена lists: Листе - mutes: Ућуткали сте + mutes: Игноришете storage: Мултимедијално складиште + featured_tags: + add_new: Додај нову + errors: + limit: Већ сте истакли максималан број хеш ознака + hint_html: "Шта су истакнуте хеш онаке? Оне се приказују истакнуто на вашем јавном профилу и омогућују људима да прегледају ваше јавне објаве конкретно под тим хеш ознакама. Оне су сјајан алат за праћење креативних радова или дугорочних пројеката." filters: contexts: home: Временска линија почетне @@ -487,6 +504,7 @@ sr: invalid_context: Ниједан или неважећи контекст испоручен index: delete: Избриши + empty: Немате филтере. title: Филтери new: title: Додај нови филтер @@ -535,6 +553,8 @@ sr: too_many: Не може се прикачити више од 4 фајла migrations: acct: корисник@домен новог налога + incoming_migrations: Премештање из другог налога + incoming_migrations_html: Да бисте прешли са другог налога на овај, прво морате креирате псеудоним налога. moderation: title: Модерација notification_mailer: @@ -573,18 +593,38 @@ sr: other: Остало posting_defaults: Подразумевана подешавања објављивања public_timelines: Јавне временске линије + relationships: + activity: Активност налога + confirm_follow_selected_followers: Да ли сте сигурни да желите да пратите изабране пратиоце? + confirm_remove_selected_followers: Да ли сте сигурни да желите да уклоните изабране пратиоце? + confirm_remove_selected_follows: Да ли сте сигурни да желите да уклоните изабрана праћења? + dormant: Неактиван + follow_selected_followers: Прати изабране пратиоце + followers: Пратиоци + following: Праћења + invited: Позван + last_active: Последњи пут активан + most_recent: Најновији + moved: Премештен + mutual: Заједнички + primary: Примарни + relationship: Однос + remove_selected_domains: Уклони све пратиоце са изабраних домена + remove_selected_followers: Уклони изабране пратиоце + remove_selected_follows: Отпрати изабране кориснике + status: Статус налога remote_follow: missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог scheduled_statuses: - over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан - over_total_limit: Прекорачили сте границу од %{limit} планираних труба + over_daily_limit: Прекорачили сте границу од %{limit} планираних објава за данас + over_total_limit: Прекорачили сте границу од %{limit} планираних објава too_soon: Планирани датум мора бити у будућности sessions: activity: Последња активност browser: Веб читач browsers: alipay: Алипеј - chrome: Хром + chrome: Chrome edge: Мајкрософт Еџ electron: Електрон firefox: Фајерфокс @@ -609,13 +649,16 @@ sr: linux: Линукса mac: Мека other: непознате платформе - windows: Виндоуза - windows_mobile: Виндоуз мобилног - windows_phone: Виндоуз телефона + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: Опозови revoke_success: Сесија успешно опозвана title: Сесије + view_authentication_history: Погледајте историју аутентификације вашег налога settings: + account: Налог + account_settings: Подешавања налога appearance: Изглед authorized_apps: Ауторизоване апликације back: Назад на Мастодон @@ -623,6 +666,7 @@ sr: development: Развој edit_profile: Уређивање профила export: Извоз података + featured_tags: Истакнуте хеш ознаке import: Увоз import_and_export: Увоз и извоз migrate: Пребацивање налога @@ -630,6 +674,7 @@ sr: preferences: Подешавања profile: Налог relationships: Праћења и пратиоци + statuses_cleanup: Аутоматско брисање објава two_factor_authentication: Двофакторска идентификација statuses: attached: @@ -652,7 +697,7 @@ sr: open_in_web: Отвори у вебу over_character_limit: ограничење од %{max} карактера прекорачено pin_errors: - limit: Већ имате прикачен највећи број труба + limit: Већ сте закачили максималан број објава ownership: Туђа објава се не може закачити reblog: Подршка не може да се прикачи show_more: Прикажи још @@ -664,6 +709,40 @@ sr: public_long: Свако може да види unlisted: Неизлистано unlisted_long: Свако може да види, али није излистано на јавним временским линијама + statuses_cleanup: + enabled: Аутоматски избриши старе објаве + enabled_hint: Аутоматски брише ваше објаве када достигну одређени старосни праг, осим ако се не подударају са једним од изузетака у наставку + exceptions: Изузеци + explanation: Пошто је брисање објава скупа операција, ово се ради полако током времена када сервер иначе није заузет. Из тог разлога, ваше објаве могу бити избрисане неко време након што достигну старосни праг. + ignore_favs: Игнориши омиљене + ignore_reblogs: Игнориши подржавања + interaction_exceptions: Изузеци засновани на интеракцијама + 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_hint: Не брише ваше сопствене објаве ако сте их означили као омиљене + min_age: + '1209600': 2 седмице + '15778476': 6 месеци + '2629746': 1 месец + '31556952': 1 година + '5259492': 2 месеца + '604800': 1 седмица + '63113904': 2 годинe + '7889238': 3 месеца + min_age_label: Старосни праг + min_favs: Задржи објаве означене као омиљене најмање + min_favs_hint: Не брише ниједну вашу објаву која је добила најмање овај број омиљених. Оставите празно за брисање објава без обзира на њихов број омиљених + min_reblogs_hint: Не брише ниједну вашу објаву која је била подржана најмање оволико пута. Оставите празно за брисање објава без обзира на њихов број подржавања stream_entries: pinned: Закачена објава reblogged: подржано diff --git a/config/locales/sv.yml b/config/locales/sv.yml index c5ad5a8da3..9352f0c19a 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -91,6 +91,7 @@ sv: moderation: active: Aktiv all: Alla + disabled: Inaktiverad pending: Väntande silenced: Begränsad suspended: Avstängda @@ -133,6 +134,7 @@ sv: search: Sök search_same_email_domain: Andra användare med samma e-postdomän search_same_ip: Annan användare med samma IP-adress + security: Säkerhet security_measures: only_password: Endast lösenord password_and_2fa: Lösenord och 2FA @@ -427,6 +429,7 @@ sv: resolve: Slå upp domän title: Blockera ny e-postdomän no_email_domain_block_selected: Inga blockeringar av e-postdomäner ändrades eftersom inga valdes + not_permitted: Ej tillåtet resolved_dns_records_hint_html: Domännamnet ger uppslag till följande MX-domäner, vilka är ytterst ansvariga för att e-post tas emot. Att blockera en MX-domän blockerar även registreringar från alla e-postadresser som använder samma MX-domän, även om det synliga domännamnet är annorlunda. Var noga med att inte blockera stora e-postleverantörer. resolved_through_html: Uppslagen genom %{domain} title: Blockerade e-postdomäner @@ -473,6 +476,7 @@ sv: content_policies: comment: Intern anteckning description_html: Du kan definiera innehållspolicyer som kommer tillämpas på alla konton från denna domän samt alla dess underdomäner. + limited_federation_mode_description_html: Du kan välja om du vill tillåta federering med den här domänen. policies: reject_media: Avvisa media reject_reports: Avvisa rapporter @@ -585,11 +589,13 @@ sv: assign_to_self: Tilldela till mig assigned: Tilldelad moderator by_target_domain: Domän för rapporterat konto + cancel: Avbryt category: Kategori category_description_html: Anledningen till att kontot och/eller innehållet rapporterades kommer att visas i kommunikation med det rapporterade kontot comment: none: Ingen comment_description_html: 'För att ge mer information, skrev %{name}:' + confirm: Bekräfta confirm_action: Bekräfta modereringsåtgärd mot @%{acct} created_at: Anmäld delete_and_resolve: Ta bort inlägg @@ -628,9 +634,20 @@ sv: suspend_html: 'Du håller på att stänga av @%{acct}s konto. Detta kommer:' actions: delete_html: Ta bort kränkande inlägg + mark_as_sensitive_html: Markera de anmälda inläggens media som känslig + silence_html: Begränsa kraftigt @%{acct} räckvidd genom att göra deras profil och innehåll bara synligt till folk som redan följer dom eller som manuellt söker upp deras profil + suspend_html: Stäng av @%{acct}, vilket gör deras profil och innehåll oåtkomligt och omöjligt att interagera med + close_report: 'Markera anmälningen #%{id} som löst' + close_reports_html: Markera alla anmälningar mot @%{acct} som lösta + delete_data_html: Ta bort @%{acct}s profil och innehåll om 30 dagar ifall deras avstängning inte tagits bort under tiden + preview_preamble_html: "@%{acct} kommer få en varning med följande innehåll:" + record_strike_html: Registrera en varning mot @%{acct} för att hjälpa dig eskalera vid framtida överträdelser från detta konto + send_email_html: Skicka @%{acct} ett varningsmejl + warning_placeholder: Valfri ytterligare resonemang för modereringsåtgärd. target_origin: Ursprung för anmält konto title: Anmälningar unassign: Otilldela + unknown_action_msg: 'Okänd åtgärd: %{action}' unresolved: Olösta updated_at: Uppdaterad view_profile: Visa profil @@ -781,6 +798,7 @@ sv: suspend: "%{name} stängde av %{target}s konto" appeal_approved: Överklagad appeal_pending: Överklagande väntar + appeal_rejected: Överklagan avslagen system_checks: database_schema_check: message_html: Det finns väntande databasmigreringar. Vänligen kör dem för att säkerställa att programmet beter sig som förväntat @@ -816,6 +834,7 @@ sv: other: Delad av %{count} personer under den senaste veckan title: Trendande länkar usage_comparison: Delade %{today} gånger idag, jämfört med %{yesterday} igår + not_allowed_to_trend: Inte tillåtet att trenda only_allowed: Endast tillåtna pending_review: Väntar på granskning preview_card_providers: @@ -947,6 +966,7 @@ sv: applications: created: Ansökan är framgångsrikt skapad destroyed: Ansökan är framgångsrikt borttagen + logout: Logga ut regenerate_token: Regenerera access token token_regenerated: Access token lyckades regenereras warning: Var mycket försiktig med denna data. Dela aldrig den med någon! @@ -954,6 +974,8 @@ sv: auth: apply_for_account: Ansök om konto change_password: Lösenord + confirmations: + wrong_email_hint: Om e-postadressen inte är rätt, kan du ändra den i kontoinställningarna. delete_account: Radera konto delete_account_html: Om du vill radera ditt konto kan du fortsätta här. Du kommer att bli ombedd att bekräfta. description: @@ -981,6 +1003,8 @@ sv: resend_confirmation: Skicka instruktionerna om bekräftelse igen reset_password: Återställ lösenord rules: + accept: Godkänn + back: Tillbaka preamble: Dessa bestäms och upprätthålls av moderatorerna för %{domain}. title: Några grundregler. security: Säkerhet @@ -1127,6 +1151,8 @@ sv: storage: Medialagring featured_tags: add_new: Lägg till ny + errors: + limit: Du har redan fäst det maximala antalet hashtags hint_html: "Vad är utvalda hashtaggar? De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt." filters: contexts: @@ -1234,6 +1260,9 @@ sv: expires_at: Utgår uses: Användningar title: Bjud in andra + lists: + errors: + limit: Du har nått det maximala antalet listor login_activities: authentication_methods: otp: tvåfaktorsautentiseringsapp @@ -1374,6 +1403,9 @@ sv: unrecognized_emoji: är inte en igenkänd emoji relationships: activity: Kontoaktivitet + confirm_follow_selected_followers: Är du säker på att du vill följa valda följare? + confirm_remove_selected_followers: Är du säker på att du vill ta bort valda följare? + confirm_remove_selected_follows: Är du säker på att du vill ta bort valda följare? dormant: Vilande follow_selected_followers: Följ valda personer followers: Följare @@ -1550,6 +1582,7 @@ sv: '7889238': 3 månader min_age_label: Åldersgräns min_favs: Behåll favoritmarkerade inlägg i minst + min_favs_hint: Raderar inte några av dina inlägg som har fått minst detta antalet av favoritmarkeringar. Lämna tomt för att ta bort inlägg oavsett hur många favoritmarkeringar de har fått min_reblogs: Behåll boostade inlägg i minst min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar stream_entries: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 269e4f4b06..538b9304b0 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1550,6 +1550,7 @@ vi: '7889238': 3 tháng min_age_label: Thời điểm min_favs: Giữ những tút yêu thích lâu hơn + min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết min_reblogs: Giữ những tút đã đăng lại lâu hơn min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết stream_entries: diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index adaad2c1cf..6538e34590 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1133,6 +1133,8 @@ zh-HK: storage: 媒體容量大小 featured_tags: add_new: 新增 + errors: + limit: 你推薦的標籤數量已達上限 hint_html: "甚麼是推薦主題標籤? 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!" filters: contexts: @@ -1232,6 +1234,9 @@ zh-HK: expires_at: 失效時間 uses: 已使用次數 title: 邀請用戶 + lists: + errors: + limit: 你已達到列表數量的上限 login_activities: authentication_methods: otp: 兩步認證軟體 @@ -1545,6 +1550,7 @@ zh-HK: '7889238': 3 個月 min_age_label: 按時間篩選 min_favs: 保留超過嘟文最愛門檻 + min_favs_hint: 收到此數量或更多最愛的帖文將不會被刪除。 留空可無視最愛數量刪除帖子 min_reblogs: 保留超過嘟文轉嘟門檻 min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。 stream_entries: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 04752a294e..a25818bca6 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -31,7 +31,7 @@ zh-TW: accounts: add_email_domain_block: 將電子郵件網域加入黑名單 approve: 批准 - approved_msg: 成功審核了 %{username} 的新帳號申請 + approved_msg: 已成功審核 %{username} 的新帳號申請 are_you_sure: 您確定嗎? avatar: 大頭貼 by_domain: 站點 @@ -113,13 +113,13 @@ zh-TW: redownload: 重新整理個人檔案 redownloaded_msg: 成功重新載入%{username} 的個人檔案頁面 reject: 拒絕 - rejected_msg: 成功婉拒了 %{username} 的新帳號申請 + rejected_msg: 已成功婉拒 %{username} 的新帳號申請 remote_suspension_irreversible: 此帳號之資料已被不可逆地刪除。 remote_suspension_reversible_hint_html: 這個帳號已於此伺服器被停權,所有資料將會於 %{date} 被刪除。在此之前,遠端伺服器可以完全回復此的帳號。如果您想即時刪除這個帳號的資料,您可以在下面進行操作。 remove_avatar: 取消大頭貼 remove_header: 移除開頭 - removed_avatar_msg: 成功刪除了 %{username} 的大頭貼 - removed_header_msg: 成功刪除了 %{username} 的封面圖片 + removed_avatar_msg: 已成功刪除 %{username} 的大頭貼 + removed_header_msg: 已成功刪除 %{username} 的封面圖片 resend_confirmation: already_confirmed: 此使用者已被確認 send: 重新發送驗證信 @@ -135,11 +135,11 @@ zh-TW: security_measures: only_password: 僅使用密碼 password_and_2fa: 密碼及兩階段驗證 (2FA) - sensitive: 敏感内容 + sensitive: 強制標記為敏感内容 sensitized: 已標記為敏感內容 shared_inbox_url: 共享收件匣 URL show: - created_reports: 建立檢舉 + created_reports: 新增檢舉 targeted_reports: 由其他人檢舉 silence: 靜音 silenced: 已靜音 @@ -154,7 +154,7 @@ zh-TW: unblock_email: 解除封鎖電子郵件地址 unblocked_email_msg: 成功解除封鎖 %{username} 的電子郵件地址 unconfirmed_email: 未確認的電子郵件地址 - undo_sensitized: 取消敏感狀態 + undo_sensitized: 取消強制標記為敏感內容 undo_silenced: 取消靜音 undo_suspension: 取消停權 unsilenced_msg: 成功解除 %{username} 的帳號限制 @@ -173,23 +173,23 @@ zh-TW: change_email_user: 變更使用者的電子郵件地址 change_role_user: 變更使用者角色 confirm_user: 確認使用者 - create_account_warning: 建立警告 - create_announcement: 建立公告 + create_account_warning: 新增警告 + create_announcement: 新增公告 create_canonical_email_block: 新增 E-mail 封鎖 - create_custom_emoji: 建立自訂顏文字 - create_domain_allow: 建立允許網域 - create_domain_block: 建立阻擋網域 + create_custom_emoji: 新增自訂顏文字 + create_domain_allow: 新增允許網域 + create_domain_block: 新增網域封鎖 create_email_domain_block: 新增電子郵件網域封鎖 create_ip_block: 新增IP規則 create_unavailable_domain: 新增無法存取的網域 - create_user_role: 建立角色 - demote_user: 把用戶降級 + create_user_role: 新增角色 + demote_user: 將用戶降級 destroy_announcement: 刪除公告 destroy_canonical_email_block: 刪除 E-mail 封鎖 destroy_custom_emoji: 刪除自訂顏文字 destroy_domain_allow: 刪除允許網域 - destroy_domain_block: 刪除阻擋網域 - destroy_email_domain_block: 刪除阻擋電郵網域 + destroy_domain_block: 刪除網域封鎖 + destroy_email_domain_block: 刪除電子郵件網域封鎖 destroy_instance: 清除網域 destroy_ip_block: 刪除 IP 規則 destroy_status: 刪除狀態 @@ -203,7 +203,7 @@ zh-TW: enable_sign_in_token_auth_user: 啟用使用者電子郵件 token 驗證 enable_user: 啓用帳號 memorialize_account: 設定成追悼帳號 - promote_user: 把用戶升級 + promote_user: 將用戶升級 reject_appeal: 駁回申訴 reject_user: 回絕使用者 remove_avatar_user: 刪除大頭貼 @@ -211,79 +211,79 @@ zh-TW: resend_user: 重新發送驗證信 reset_password_user: 重設密碼 resolve_report: 消除舉報 - sensitive_account: 把您的帳號的媒體標記為敏感內容 + sensitive_account: 將媒體強制標記為敏感內容 silence_account: 靜音帳號 suspend_account: 停權帳號 unassigned_report: 取消指派舉報 unblock_email_account: 解除封鎖電子郵件地址 - unsensitive_account: 取消把您的帳號的媒體設定為敏感內容 + unsensitive_account: 取消將媒體強制標記為敏感內容 unsilence_account: 取消帳號的靜音狀態 unsuspend_account: 取消帳號的暫停狀態 update_announcement: 更新公告 update_custom_emoji: 更新自訂顏文字 - update_domain_block: 更新封鎖網域 + update_domain_block: 更新網域封鎖 update_ip_block: 更新 IP 規則 update_status: 更新狀態 update_user_role: 更新角色 actions: - approve_appeal_html: "%{name} 批准了來自 %{target} 的審核決定申訴" - approve_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} 的電子郵件位址" + change_email_user_html: "%{name} 已變更使用者 %{target} 的電子郵件地址" + change_role_user_html: "%{name} 已變更 %{target} 的角色" + confirm_user_html: "%{name} 已確認使用者 %{target} 的電子郵件位址" create_account_warning_html: "%{name} 已對 %{target} 送出警告" - create_announcement_html: "%{name} 新增了公告 %{target}" - create_canonical_email_block_html: "%{name} 已封鎖了 hash 為 %{target} 之 e-mail" - create_custom_emoji_html: "%{name} 上傳了新自訂表情符號 %{target}" + create_announcement_html: "%{name} 已新增公告 %{target}" + create_canonical_email_block_html: "%{name} 已封鎖 hash 為 %{target} 的 e-mail" + 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_ip_block_html: "%{name} 已經設定了IP %{target} 的規則" + create_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_announcement_html: "%{name} 已刪除公告 %{target}" destroy_canonical_email_block_html: "%{name} 已解除封鎖 hash 為 %{target} 的電子郵件" - destroy_custom_emoji_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_instance_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} 的兩階段認證 (2FA) " - disable_custom_emoji_html: "%{name} 停用了自訂表情符號 %{target}" - disable_sign_in_token_auth_user_html: "%{name} 停用了 %{target} 之使用者電子郵件 token 驗證" + destroy_instance_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} 的兩階段認證 (2FA) " + disable_custom_emoji_html: "%{name} 已停用自訂表情符號 %{target}" + disable_sign_in_token_auth_user_html: "%{name} 已停用 %{target} 之使用者電子郵件 token 驗證" disable_user_html: "%{name} 將使用者 %{target} 設定為禁止登入" - enable_custom_emoji_html: "%{name} 啟用了自訂表情符號 %{target}" - enable_sign_in_token_auth_user_html: "%{name} 啟用了 %{target} 之使用者電子郵件 token 驗證" + enable_custom_emoji_html: "%{name} 已啟用自訂表情符號 %{target}" + enable_sign_in_token_auth_user_html: "%{name} 已啟用 %{target} 之使用者電子郵件 token 驗證" 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} 的大頭貼" + promote_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}" - reset_password_user_html: "%{name} 重新設定了使用者 %{target} 的密碼" - resolve_report_html: "%{name} 處理了 %{target} 的檢舉" + reset_password_user_html: "%{name} 已重新設定使用者 %{target} 的密碼" + resolve_report_html: "%{name} 已處理 %{target} 的檢舉" sensitive_account_html: "%{name} 將 %{target} 的媒體檔案標記為敏感內容" - silence_account_html: "%{name} 靜音了使用者 %{target}" + silence_account_html: "%{name} 已靜音使用者 %{target}" suspend_account_html: "%{name} 已停權 %{target} 的帳號" unassigned_report_html: "%{name} 取消指派 %{target} 的檢舉" unblock_email_account_html: "%{name} 已解除封鎖 %{target} 的電子郵件地址" - unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案的敏感狀態取消" - unsilence_account_html: "%{name} 取消了使用者 %{target} 的靜音狀態" + unsensitive_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}" - 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_announcement_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} 角色" deleted_account: 已刪除帳號 empty: 找不到 log filter_by_action: 按動作過濾 @@ -296,7 +296,7 @@ zh-TW: empty: 找不到公告。 live: 直播 new: - create: 建立公告 + create: 新增公告 title: 新增公告 publish: 發布 published_msg: 成功發布公告! @@ -374,13 +374,13 @@ zh-TW: import: 匯入 undo: 從聯邦宇宙白名單移除 domain_blocks: - add_new: 新增欲封鎖域名 + add_new: 新增網域黑名單 created_msg: 正在進行網域封鎖 destroyed_msg: 已撤銷網域封鎖 domain: 站點 edit: 更改封鎖的站台 - existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。 - existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先 解除封鎖。 + existing_domain_block: 您已對 %{name} 施加更嚴格的限制。 + existing_domain_block_html: 您已對 %{name} 施加更嚴格的限制,您需要先 解除封鎖。 export: 匯出 import: 匯入 new: @@ -391,7 +391,7 @@ zh-TW: noop: 無 silence: 靜音 suspend: 停權 - title: 新增封鎖站點 + title: 新增網域黑名單 no_domain_block_selected: 因未選取網域黑名單,所以什麼事都沒發生 not_permitted: 您無權執行此操作 obfuscate: 混淆網域名稱 @@ -405,7 +405,7 @@ zh-TW: reject_reports: 拒絕檢舉 reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關 undo: 撤銷網域封鎖 - view: 顯示阻擋的網域 + view: 顯示已封鎖網域 email_domain_blocks: add_new: 加入新項目 attempts_over_week: @@ -715,7 +715,7 @@ zh-TW: title: 關於 appearance: preamble: 客製化 Mastodon 網頁介面。 - title: 外觀設定 + title: 外觀 branding: preamble: 您的伺服器品牌使之從聯邦宇宙網路中其他伺服器間凸顯自己。此資訊可能於各種不同的環境中顯示,例如 Mastodon 網頁介面、原生應用程式、其他網頁上的連結預覽或是其他通訊應用程式等等。因此,請盡可能保持此資訊簡潔明朗。 title: 品牌化 @@ -777,13 +777,13 @@ zh-TW: with_media: 含有媒體檔案 strikes: actions: - delete_statuses: "%{name} 刪除了 %{target} 的嘟文" - disable: "%{name} 凍結了 %{target} 的帳號" + 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} 的帳號停權" + silence: "%{name} 已限制 %{target} 的帳號" + suspend: "%{name} 已將 %{target} 的帳號停權" appeal_approved: 已申訴 appeal_pending: 申訴待審中 appeal_rejected: 申訴被駁回 @@ -907,8 +907,8 @@ zh-TW: body: 以下是新帳號的詳細資訊。您可以同意或拒絕這項申請。 subject: "%{instance} 上有新帳號 (%{username}) 待審核" new_report: - body: "%{reporter} 檢舉了使用者 %{target}" - body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target} + body: "%{reporter} 已檢舉使用者 %{target}" + body_remote: 來自 %{domain} 的使用者已檢舉使用者 %{target} subject: 來自 %{instance} 的使用者檢舉(#%{id}) new_trends: body: 以下項目需要經過審核才能公開顯示: @@ -953,7 +953,7 @@ zh-TW: logout: 登出 regenerate_token: 重新產生存取 token token_regenerated: 已重新產生存取 token - warning: 警告,不要把它分享給任何人! + warning: 警告,不要將它分享給任何人! your_token: 您的 access token auth: apply_for_account: 申請帳號 @@ -1001,7 +1001,7 @@ zh-TW: preamble_html: 請使用您在 %{domain} 的帳號密碼登入。若您的帳號託管於其他伺服器,您將無法在此登入。 title: 登入 %{domain} sign_up: - preamble: 在這個 Mastodon 伺服器上有個帳號的話,您將能跟隨聯邦宇宙網路中的任何人,無論他們的帳號託管於哪個伺服器。 + preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。 title: 讓我們一起設定 %{domain} 吧! status: account_status: 帳號狀態 @@ -1013,7 +1013,7 @@ zh-TW: too_fast: 送出表單的速度太快跟不上,請稍後再試。 use_security_key: 使用安全金鑰 authorize_follow: - already_following: 您已經跟隨了這個使用者 + already_following: 您已經跟隨這個使用者 already_requested: 您早已向該帳號寄送跟隨請求 error: 對不起,搜尋其他站點使用者出現錯誤 follow: 跟隨 @@ -1099,7 +1099,7 @@ zh-TW: your_appeal_pending: 您已遞交申訴 your_appeal_rejected: 您的申訴已被駁回 domain_validator: - invalid_domain: 並非一個有效域名 + invalid_domain: 並非一個有效網域 errors: '400': 您所送出的請求無效或格式不正確。 '403': 您沒有檢視這個頁面的權限。 @@ -1129,7 +1129,7 @@ zh-TW: blocks: 您封鎖的使用者 bookmarks: 書籤 csv: CSV - domain_blocks: 域名封鎖 + domain_blocks: 網域封鎖 lists: 列表 mutes: 您靜音的使用者 storage: 儲存空間大小 @@ -1191,7 +1191,7 @@ zh-TW: deselect: 取消選擇全部 none: 無 order_by: 排序 - save_changes: 儲存修改 + save_changes: 儲存變更 select_all_matching_items: other: 選取 %{count} 個符合您搜尋的項目。 today: 今天 @@ -1209,10 +1209,10 @@ zh-TW: preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括跟隨的使用者、封鎖的使用者名單。 success: 資料上傳成功,正在匯入,請稍候 types: - blocking: 您封鎖的使用者名單 + blocking: 您封鎖的使用者列表 bookmarks: 書籤 - domain_blocking: 域名封鎖名單 - following: 您跟隨的使用者名單 + domain_blocking: 網域封鎖列表 + following: 您跟隨的使用者列表 muting: 您靜音的使用者名單 upload: 上傳 invites: @@ -1282,7 +1282,7 @@ zh-TW: before: 在進行下一步驟之前,請詳細閱讀以下説明: cooldown: 在轉移帳號後會有一段等待時間,在等待時間內您將無法再次轉移 disabled_account: 之後您的目前帳號將完全無法使用。但您可以存取資料匯出與重新啟用。 - followers: 此動作將會把目前帳號的所有跟隨者轉移至新帳號 + followers: 此動作將會將目前帳號的所有跟隨者轉移至新帳號 only_redirect_html: 或者,您也可以僅在您的個人檔案中設定重新導向。 other_data: 其他資料並不會自動轉移 redirect: 您目前的帳號將會在個人檔案頁面新增重新導向公告,並會被排除在搜尋結果之外 @@ -1297,7 +1297,7 @@ zh-TW: notification_mailer: admin: report: - subject: "%{name} 送出了一則檢舉報告" + subject: "%{name} 已送出一則檢舉報告" sign_up: subject: "%{name} 已進行註冊" favourite: @@ -1327,7 +1327,7 @@ zh-TW: status: subject: "%{name} 剛剛嘟文" update: - subject: "%{name} 編輯了嘟文" + subject: "%{name} 已編輯嘟文" notifications: email_events: 電子郵件通知設定 email_events_hint: 選取您想接收通知的事件: @@ -1379,11 +1379,11 @@ zh-TW: unrecognized_emoji: 並非一個可識別的 emoji relationships: activity: 帳號動態 - confirm_follow_selected_followers: 您確定要跟隨這些選取的跟隨者嗎? - confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎? + confirm_follow_selected_followers: 您確定要跟隨選取的跟隨者嗎? + confirm_remove_selected_followers: 您確定要移除選取的跟隨者嗎? confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎? dormant: 潛水中 - follow_selected_followers: 跟隨所選取的跟隨者 + follow_selected_followers: 跟隨選取的跟隨者 followers: 跟隨者 following: 跟隨中 invited: 已邀請 @@ -1394,8 +1394,8 @@ zh-TW: primary: 主要 relationship: 關係 remove_selected_domains: 從所選取網域中移除所有跟隨者 - remove_selected_followers: 移除所選取的跟隨者 - remove_selected_follows: 取消跟隨所選取使用者 + remove_selected_followers: 移除選取的跟隨者 + remove_selected_follows: 取消跟隨選取的使用者 status: 帳號狀態 remote_follow: missing_resource: 無法找到資源 @@ -1409,7 +1409,7 @@ zh-TW: tag: '帶有 #%{hashtag} 之公開嘟文' scheduled_statuses: over_daily_limit: 您已經超過了本日排定發嘟的限額 (%{limit}) - over_total_limit: 您已經超過了排定發嘟的限額 (%{limit}) + over_total_limit: 您已經超過排程發嘟的限額 (%{limit}) too_soon: 嘟文不可以改變過去哦,只能預定未來 (咦) sessions: activity: 最近活動 @@ -1457,7 +1457,7 @@ zh-TW: account: 帳號 account_settings: 帳號設定 aliases: 帳號別名 - appearance: 外觀設定 + appearance: 外觀 authorized_apps: 已授權應用程式 back: 回到 Mastodon delete: 刪除帳號 @@ -1494,9 +1494,9 @@ zh-TW: errors: in_reply_not_found: 您嘗試回覆的嘟文看起來不存在。 open_in_web: 以網頁開啟 - over_character_limit: 超過了 %{max} 字的限制 + over_character_limit: 已超過 %{max} 字的限制 pin_errors: - direct: 不能釘選只對被提及的使用者顯示的嘟文 + direct: 無法釘選只有僅提及使用者可見之嘟文 limit: 釘選嘟文的數量已達上限 ownership: 不能釘選他人的嘟文 reblog: 不能釘選轉嘟 @@ -1533,8 +1533,8 @@ zh-TW: keep_direct_hint: 不會刪除任何您的私訊 keep_media: 保留包含媒體內容的嘟文 keep_media_hint: 不會刪除您包含媒體內容之嘟文 - keep_pinned: 保留釘選的嘟文 - keep_pinned_hint: 不會刪除您釘選的嘟文 + keep_pinned: 保留釘選嘟文 + keep_pinned_hint: 不會刪除您的釘選嘟文 keep_polls: 保留投票 keep_polls_hint: 不會刪除您的投票 keep_self_bookmark: 保留您已標記為書籤之嘟文 @@ -1556,7 +1556,7 @@ zh-TW: min_reblogs: 保留超過嘟文轉嘟門檻 min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除該嘟文。 stream_entries: - pinned: 釘選的嘟文 + pinned: 釘選嘟文 reblogged: 轉嘟 sensitive_content: 敏感內容 strikes: @@ -1581,7 +1581,7 @@ zh-TW: enabled: 兩階段認證已啟用 enabled_success: 已成功啟用兩階段認證 generate_recovery_codes: 產生備用驗證碼 - lost_recovery_codes: 讓您可以在遺失手機時,使用備用驗證碼登入。若您遺失了備用驗證碼,可以在這裏產生一批新的,舊有的備用驗證碼將會失效。 + lost_recovery_codes: 讓您可以在遺失手機時,使用備用驗證碼登入。若您已遺失備用驗證碼,可於此產生一批新的,舊有的備用驗證碼將會失效。 methods: 兩步驟方式 otp: 驗證應用程式 recovery_codes: 備份備用驗證碼 @@ -1616,7 +1616,7 @@ zh-TW: spam: 垃圾訊息 violation: 該內容違反以下社群規章 explanation: - delete_statuses: 您的某些嘟文被發現違反了一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。 + delete_statuses: 您的某些嘟文被發現已違反一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。 disable: 您無法繼續使用您的帳號,但您的個人頁面及其他資料內容保持不變。您可以要求一份您的資料備份,帳號異動設定,或是刪除帳號。 mark_statuses_as_sensitive: 您的部份嘟文已被 %{instance} 的管理員標記為敏感內容。這代表了人們必須在顯示預覽前點擊嘟文中的媒體。您可以在將來嘟文時自己將媒體標記為敏感內容。 sensitive: 您之後上傳的所有媒體檔案會被標為敏感內容,並且被隱藏起來,須點擊警告按鈕才會顯示。 From b6602f68eb0dbe07ee2e9b8fb27ee048037c414e Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 2 Mar 2023 04:04:14 -0500 Subject: [PATCH 0562/1220] Spec coverage for HomeHelper (#23907) --- app/helpers/home_helper.rb | 12 +--- spec/helpers/home_helper_spec.rb | 112 +++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 10 deletions(-) diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index f41104709e..ea21960865 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -41,9 +41,9 @@ module HomeHelper def obscured_counter(count) if count <= 0 - 0 + '0' elsif count == 1 - 1 + '1' else '1+' end @@ -57,14 +57,6 @@ module HomeHelper end end - def optional_link_to(condition, path, options = {}, &block) - if condition - link_to(path, options, &block) - else - content_tag(:div, &block) - end - end - def sign_up_message if closed_registrations? t('auth.registration_closed', instance: site_hostname) diff --git a/spec/helpers/home_helper_spec.rb b/spec/helpers/home_helper_spec.rb index 77db327c2d..3d2c5fe248 100644 --- a/spec/helpers/home_helper_spec.rb +++ b/spec/helpers/home_helper_spec.rb @@ -8,4 +8,116 @@ RSpec.describe HomeHelper, type: :helper do expect(helper.default_props).to eq locale: I18n.locale end end + + describe 'account_link_to' do + context 'with a missing account' do + let(:account) { nil } + + it 'returns a button' do + result = helper.account_link_to(account) + + expect(result).to match t('about.contact_missing') + end + end + + context 'with a valid account' do + let(:account) { Fabricate(:account) } + + it 'returns a link to the account' do + without_partial_double_verification do + allow(helper).to receive(:current_account).and_return(account) + allow(helper).to receive(:prefers_autoplay?).and_return(false) + result = helper.account_link_to(account) + + expect(result).to match "@#{account.acct}" + end + end + end + end + + describe 'obscured_counter' do + context 'with a value of less than zero' do + let(:count) { -10 } + + it 'returns the correct string' do + expect(helper.obscured_counter(count)).to eq '0' + end + end + + context 'with a value of zero' do + let(:count) { 0 } + + it 'returns the correct string' do + expect(helper.obscured_counter(count)).to eq '0' + end + end + + context 'with a value of one' do + let(:count) { 1 } + + it 'returns the correct string' do + expect(helper.obscured_counter(count)).to eq '1' + end + end + + context 'with a value of more than one' do + let(:count) { 10 } + + it 'returns the correct string' do + expect(helper.obscured_counter(count)).to eq '1+' + end + end + end + + describe 'custom_field_classes' do + context 'with a verified field' do + let(:field) { instance_double(Account::Field, verified?: true) } + + it 'returns verified string' do + result = helper.custom_field_classes(field) + expect(result).to eq 'verified' + end + end + + context 'with a non-verified field' do + let(:field) { instance_double(Account::Field, verified?: false) } + + it 'returns verified string' do + result = helper.custom_field_classes(field) + expect(result).to eq 'emojify' + end + end + end + + describe 'sign_up_messages' do + context 'with closed registrations' do + it 'returns correct sign up message' do + allow(helper).to receive(:closed_registrations?).and_return(true) + result = helper.sign_up_message + + expect(result).to eq t('auth.registration_closed', instance: 'cb6e6126.ngrok.io') + end + end + + context 'with open registrations' do + it 'returns correct sign up message' do + allow(helper).to receive(:closed_registrations?).and_return(false) + allow(helper).to receive(:open_registrations?).and_return(true) + result = helper.sign_up_message + + expect(result).to eq t('auth.register') + end + end + + context 'with approved registrations' do + it 'returns correct sign up message' do + allow(helper).to receive(:closed_registrations?).and_return(false) + allow(helper).to receive(:open_registrations?).and_return(false) + allow(helper).to receive(:approved_registrations?).and_return(true) + result = helper.sign_up_message + + expect(result).to eq t('auth.apply_for_account') + end + end + end end From d9271126ce9f1d270b7e1af9692b4622d987a1af Mon Sep 17 00:00:00 2001 From: Stanislav Dobrovolschii Date: Thu, 2 Mar 2023 10:05:05 +0100 Subject: [PATCH 0563/1220] Add rspecs for FollowRecommendationsScheduler (#23890) --- spec/fabricators/user_fabricator.rb | 3 +- .../follow_recommendations_scheduler_spec.rb | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 spec/workers/scheduler/follow_recommendations_scheduler_spec.rb diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb index 967347319c..9031d5cd04 100644 --- a/spec/fabricators/user_fabricator.rb +++ b/spec/fabricators/user_fabricator.rb @@ -5,5 +5,6 @@ Fabricator(:user) do email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } } password '123456789' confirmed_at { Time.zone.now } - agreement true + current_sign_in_at { Time.zone.now } + agreement true end diff --git a/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb b/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb new file mode 100644 index 0000000000..18d5260e42 --- /dev/null +++ b/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::FollowRecommendationsScheduler do + let!(:target_accounts) do + Fabricate.times(3, :account) do + statuses(count: 6) + end + end + let!(:follower_accounts) do + Fabricate.times(5, :account) do + statuses(count: 6) + end + end + + describe '#perform' do + subject(:scheduled_run) { described_class.new.perform } + + context 'when there are accounts to recommend' do + before do + # Follow the target accounts by follow accounts to make them recommendable + follower_accounts.each do |follower_account| + target_accounts.each do |target_account| + Fabricate(:follow, account: follower_account, target_account: target_account) + end + end + end + + it 'creates recommendations' do + expect { scheduled_run }.to change(FollowRecommendation, :count).from(0).to(target_accounts.size) + expect(redis.zrange('follow_recommendations:en', 0, -1)).to match_array(target_accounts.pluck(:id).map(&:to_s)) + end + end + + context 'when there are no accounts to recommend' do + it 'does not create follow recommendations' do + expect { scheduled_run }.to_not change(FollowRecommendation, :count) + expect(redis.zrange('follow_recommendations:en', 0, -1)).to be_empty + end + end + end +end From 6047c84468b145da8c38b2f5f0fa1723276acca6 Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 2 Mar 2023 10:08:22 +0000 Subject: [PATCH 0564/1220] [Dependashlee] Bump color-blend from 3.0.1 to 4.0.0 (JS) (#23823) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3d923bbacf..6493662444 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "blurhash": "^2.0.5", "classnames": "^2.3.2", "cocoon-js-vanilla": "^1.3.0", - "color-blend": "^3.0.1", + "color-blend": "^4.0.0", "compression-webpack-plugin": "^6.1.1", "cross-env": "^7.0.3", "css-loader": "^5.2.7", diff --git a/yarn.lock b/yarn.lock index 2fd3352cf1..d614f7ce73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3373,10 +3373,10 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-blend@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-3.0.1.tgz#3882ed1190ca18760ffe11570d8537960171172b" - integrity sha512-KueDvNiKHAvVeApic0SxHZLyy4x3NELfTLzMHRpRRLi+9e2kWhpeWvtuH3Sjb92mOJYEUhRjb8z7lr4OqDv17Q== +color-blend@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-4.0.0.tgz#e9950e9fa5d6e552ff8bb107c39f7e83a0c1a3bb" + integrity sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw== color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" From 083e18e45b88f51e07837d21e2dd664efd0112cb Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 2 Mar 2023 10:41:32 +0000 Subject: [PATCH 0565/1220] [Dependashlee] Bump fuzzysort from 1.9.0 to 2.0.4 (JS) (#23822) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6493662444..fa9b650076 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "express": "^4.18.2", "file-loader": "^6.2.0", "font-awesome": "^4.7.0", - "fuzzysort": "^1.9.0", + "fuzzysort": "^2.0.4", "glob": "^8.1.0", "history": "^4.10.1", "http-link-header": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index d614f7ce73..04a247c49b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5263,10 +5263,10 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -fuzzysort@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-1.9.0.tgz#d36d27949eae22340bb6f7ba30ea6751b92a181c" - integrity sha512-MOxCT0qLTwLqmEwc7UtU045RKef7mc8Qz8eR4r2bLNEq9dy/c3ZKMEFp6IEst69otkQdFZ4FfgH2dmZD+ddX1g== +fuzzysort@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-2.0.4.tgz#a21d1ce8947eaf2797dc3b7c28c36db9d1165f84" + integrity sha512-Api1mJL+Ad7W7vnDZnWq5pGaXJjyencT+iKGia2PlHUcSsSzWwIQ3S1isiMpwpavjYtGd2FzhUIhnnhOULZgDw== gauge@^5.0.0: version "5.0.0" From 59f42c262b4faab3df7ec5fe2742f7707d58c285 Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 2 Mar 2023 10:45:14 +0000 Subject: [PATCH 0566/1220] [Dependashlee] Bump @github/webauthn-json from 0.5.7 to 2.1.1 (js) (#23819) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fa9b650076..1ab297d041 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@babel/preset-react": "^7.18.6", "@babel/runtime": "^7.21.0", "@gamestdio/websocket": "^0.3.2", - "@github/webauthn-json": "^0.5.7", + "@github/webauthn-json": "^2.1.1", "@rails/ujs": "^6.1.7", "abortcontroller-polyfill": "^1.7.5", "array-includes": "^3.1.6", diff --git a/yarn.lock b/yarn.lock index 04a247c49b..a856cf91dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1245,10 +1245,10 @@ resolved "https://registry.yarnpkg.com/@gamestdio/websocket/-/websocket-0.3.2.tgz#321ba0976ee30fd14e51dbf8faa85ce7b325f76a" integrity sha512-J3n5SKim+ZoLbe44hRGI/VYAwSMCeIJuBy+FfP6EZaujEpNchPRFcIsVQLWAwpU1bP2Ji63rC+rEUOd1vjUB6Q== -"@github/webauthn-json@^0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@github/webauthn-json/-/webauthn-json-0.5.7.tgz#143bc67f6e0f75f8d188e565741507bb08c31214" - integrity sha512-SUYsttDxFSvWvvJssJpwzjmRCqYfdfqC9VCmAHQYfdKCVelyJteCHo9/lK1CB72mx/jrl6cFNY08aua4J2jIyg== +"@github/webauthn-json@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@github/webauthn-json/-/webauthn-json-2.1.1.tgz#648e63fc28050917d2882cc2b27817a88cb420fc" + integrity sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" From 35dff48edf19a344cbf192b510033ba6785c367b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 2 Mar 2023 09:30:40 -0500 Subject: [PATCH 0567/1220] Add spec coverage for Admin::Trends::StatusesHelper (#23898) --- .../admin/trends/statuses_helper_spec.rb | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 spec/helpers/admin/trends/statuses_helper_spec.rb diff --git a/spec/helpers/admin/trends/statuses_helper_spec.rb b/spec/helpers/admin/trends/statuses_helper_spec.rb new file mode 100644 index 0000000000..92caae6909 --- /dev/null +++ b/spec/helpers/admin/trends/statuses_helper_spec.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Trends::StatusesHelper do + describe '.one_line_preview' do + before do + allow(helper).to receive(:current_user).and_return(Fabricate.build(:user)) + end + + context 'with a local status' do + let(:status) { Fabricate.build(:status, text: 'Test local status') } + + it 'renders a correct preview text' do + result = helper.one_line_preview(status) + + expect(result).to eq 'Test local status' + end + end + + context 'with a remote status' do + let(:status) { Fabricate.build(:status, uri: 'https://sfd.sdf', text: '

    Test remote status

    text

    ') } + + it 'renders a correct preview text' do + result = helper.one_line_preview(status) + + expect(result).to eq 'Test remote status' + end + end + + context 'with a status that has empty text' do + let(:status) { Fabricate.build(:status, text: '') } + + it 'renders a correct preview text' do + result = helper.one_line_preview(status) + + expect(result).to eq '' + end + end + + context 'with a status that has emoji' do + before { Fabricate(:custom_emoji, shortcode: 'florpy') } + + let(:status) { Fabricate(:status, text: 'hello there :florpy:') } + + it 'renders a correct preview text' do + result = helper.one_line_preview(status) + + expect(result).to match 'hello there' + expect(result).to match ' Date: Thu, 2 Mar 2023 09:55:37 -0500 Subject: [PATCH 0568/1220] Update rspec-rails to version 6.0.1 (#23908) --- Gemfile | 2 +- Gemfile.lock | 34 ++++++++++++++-------------- spec/services/search_service_spec.rb | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Gemfile b/Gemfile index 17b0b287de..354f6bd6cf 100644 --- a/Gemfile +++ b/Gemfile @@ -106,7 +106,7 @@ group :development, :test do gem 'i18n-tasks', '~> 1.0', require: false gem 'pry-byebug', '~> 3.10' gem 'pry-rails', '~> 0.3' - gem 'rspec-rails', '~> 5.1' + gem 'rspec-rails', '~> 6.0' gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false gem 'rubocop-rspec', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 965832094e..78774ac9cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -193,7 +193,7 @@ GEM cocoon (1.2.15) coderay (1.1.3) color_diff (0.1) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) connection_pool (2.3.0) cose (1.3.0) cbor (~> 0.5.9) @@ -585,26 +585,26 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) - rspec-core (3.11.0) - rspec-support (~> 3.11.0) - rspec-expectations (3.11.0) + rspec-core (3.12.1) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-mocks (3.11.1) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-rails (5.1.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - railties (>= 5.2) - rspec-core (~> 3.10) - rspec-expectations (~> 3.10) - rspec-mocks (~> 3.10) - rspec-support (~> 3.10) + rspec-support (~> 3.12.0) + rspec-rails (6.0.1) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.11) + rspec-expectations (~> 3.11) + rspec-mocks (~> 3.11) + rspec-support (~> 3.11) rspec-sidekiq (3.1.0) rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) - rspec-support (3.11.1) + rspec-support (3.12.0) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.45.1) @@ -869,7 +869,7 @@ DEPENDENCIES redis-namespace (~> 1.10) rexml (~> 3.2) rqrcode (~> 2.1) - rspec-rails (~> 5.1) + rspec-rails (~> 6.0) rspec-sidekiq (~> 3.1) rspec_junit_formatter (~> 0.6) rubocop diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 7ec334a56c..1ad0efe0af 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -77,7 +77,7 @@ describe SearchService, type: :service do it 'includes the tag in the results' do query = '#tag' tag = Tag.new - allow(Tag).to receive(:search_for).with('tag', 10, 0, exclude_unreviewed: nil).and_return([tag]) + allow(Tag).to receive(:search_for).with('tag', 10, 0, { exclude_unreviewed: nil }).and_return([tag]) results = subject.call(query, nil, 10) expect(Tag).to have_received(:search_for).with('tag', 10, 0, exclude_unreviewed: nil) From af578e8ce0aabdbe9c0cd3d72d6fa2cc30b7fc66 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 2 Mar 2023 10:21:04 -0500 Subject: [PATCH 0569/1220] Fix deprecation warning about merging conditions (#23618) --- app/models/account_filter.rb | 24 +++++++++++++++++++++--- spec/models/account_filter_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb index d27bb46fcf..1666ea883a 100644 --- a/app/models/account_filter.rb +++ b/app/models/account_filter.rb @@ -17,13 +17,13 @@ class AccountFilter attr_reader :params def initialize(params) - @params = params + @params = params.to_h.symbolize_keys end def results scope = Account.includes(:account_stat, user: [:ips, :invite_request]).without_instance_actor.reorder(nil) - params.each do |key, value| + relevant_params.each do |key, value| next if key.to_s == 'page' scope.merge!(scope_for(key, value)) if value.present? @@ -34,6 +34,16 @@ class AccountFilter private + def relevant_params + params.tap do |args| + args.delete(:origin) if origin_is_remote_and_domain_present? + end + end + + def origin_is_remote_and_domain_present? + params[:origin] == 'remote' && params[:by_domain].present? + end + def scope_for(key, value) case key.to_s when 'origin' @@ -94,7 +104,15 @@ class AccountFilter def order_scope(value) case value.to_s when 'active' - accounts_with_users.left_joins(:account_stat).order(Arel.sql('coalesce(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) desc, accounts.id desc')) + accounts_with_users + .left_joins(:account_stat) + .order( + Arel.sql( + <<~SQL.squish + COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) DESC, accounts.id DESC + SQL + ) + ) when 'recent' Account.recent else diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb index 853d20a0cb..3032260fef 100644 --- a/spec/models/account_filter_spec.rb +++ b/spec/models/account_filter_spec.rb @@ -18,4 +18,30 @@ describe AccountFilter do expect { filter.results }.to raise_error(/wrong/) end end + + describe 'with origin and by_domain interacting' do + let!(:local_account) { Fabricate(:account, domain: nil) } + let!(:remote_account_one) { Fabricate(:account, domain: 'example.org') } + let(:remote_account_two) { Fabricate(:account, domain: 'other.domain') } + + it 'works with domain first and origin remote' do + filter = described_class.new(by_domain: 'example.org', origin: 'remote') + expect(filter.results).to match_array [remote_account_one] + end + + it 'works with domain last and origin remote' do + filter = described_class.new(origin: 'remote', by_domain: 'example.org') + expect(filter.results).to match_array [remote_account_one] + end + + it 'works with domain first and origin local' do + filter = described_class.new(by_domain: 'example.org', origin: 'local') + expect(filter.results).to match_array [local_account] + end + + it 'works with domain last and origin local' do + filter = described_class.new(origin: 'local', by_domain: 'example.org') + expect(filter.results).to match_array [remote_account_one] + end + end end From 3a6451c867595fd58998ee1706589b15a69d993b Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:19:29 +0100 Subject: [PATCH 0570/1220] Add support for incoming rich text (#23913) --- app/javascript/styles/application.scss | 1 + app/javascript/styles/mastodon/rich_text.scss | 64 +++++++++++++++++++ lib/sanitize_ext/sanitize_config.rb | 19 ++---- spec/lib/sanitize_config_spec.rb | 28 ++++---- 4 files changed, 85 insertions(+), 27 deletions(-) create mode 100644 app/javascript/styles/mastodon/rich_text.scss diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss index 81a040108e..1b2969c234 100644 --- a/app/javascript/styles/application.scss +++ b/app/javascript/styles/application.scss @@ -23,3 +23,4 @@ @import 'mastodon/dashboard'; @import 'mastodon/rtl'; @import 'mastodon/accessibility'; +@import 'mastodon/rich_text'; diff --git a/app/javascript/styles/mastodon/rich_text.scss b/app/javascript/styles/mastodon/rich_text.scss new file mode 100644 index 0000000000..35901984b4 --- /dev/null +++ b/app/javascript/styles/mastodon/rich_text.scss @@ -0,0 +1,64 @@ +.status__content__text, +.e-content, +.reply-indicator__content { + pre, + blockquote { + margin-bottom: 20px; + white-space: pre-wrap; + unicode-bidi: plaintext; + + &:last-child { + margin-bottom: 0; + } + } + + blockquote { + padding-left: 10px; + border-left: 3px solid $darker-text-color; + color: $darker-text-color; + white-space: normal; + + p:last-child { + margin-bottom: 0; + } + } + + & > ul, + & > ol { + margin-bottom: 20px; + } + + b, + strong { + font-weight: 700; + } + + em, + i { + font-style: italic; + } + + ul, + ol { + margin-left: 2em; + + p { + margin: 0; + } + } + + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } +} + +.reply-indicator__content { + blockquote { + border-left-color: $inverted-text-color; + color: $inverted-text-color; + } +} diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index dc39e9c90f..9cc500c36e 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -51,29 +51,22 @@ class Sanitize end UNSUPPORTED_ELEMENTS_TRANSFORMER = lambda do |env| - return unless %w(h1 h2 h3 h4 h5 h6 blockquote pre ul ol li).include?(env[:node_name]) + return unless %w(h1 h2 h3 h4 h5 h6).include?(env[:node_name]) current_node = env[:node] - case env[:node_name] - when 'li' - current_node.traverse do |node| - next unless %w(p ul ol li).include?(node.name) - - node.add_next_sibling('
    ') if node.next_sibling - node.replace(node.children) unless node.text? - end - else - current_node.name = 'p' - end + current_node.name = 'strong' + current_node.wrap('

    ') end MASTODON_STRICT ||= freeze_config( - elements: %w(p br span a), + elements: %w(p br span a del pre blockquote code b strong u i em ul ol li), attributes: { 'a' => %w(href rel class), 'span' => %w(class), + 'ol' => %w(start reversed), + 'li' => %w(value), }, add_attributes: { diff --git a/spec/lib/sanitize_config_spec.rb b/spec/lib/sanitize_config_spec.rb index c9543ceb0c..a01122bed0 100644 --- a/spec/lib/sanitize_config_spec.rb +++ b/spec/lib/sanitize_config_spec.rb @@ -6,24 +6,16 @@ describe Sanitize::Config do describe '::MASTODON_STRICT' do subject { Sanitize::Config::MASTODON_STRICT } - it 'converts h1 to p' do - expect(Sanitize.fragment('

    Foo

    ', subject)).to eq '

    Foo

    ' + it 'converts h1 to p strong' do + expect(Sanitize.fragment('

    Foo

    ', subject)).to eq '

    Foo

    ' end - it 'converts ul to p' do - expect(Sanitize.fragment('

    Check out:

    • Foo
    • Bar
    ', subject)).to eq '

    Check out:

    Foo
    Bar

    ' + it 'keeps ul' do + expect(Sanitize.fragment('

    Check out:

    • Foo
    • Bar
    ', subject)).to eq '

    Check out:

    • Foo
    • Bar
    ' end - it 'converts p inside ul' do - expect(Sanitize.fragment('
    • Foo

      Bar

    • Baz
    ', subject)).to eq '

    Foo
    Bar
    Baz

    ' - end - - it 'converts ul inside ul' do - expect(Sanitize.fragment('
    • Foo
      • Bar
      • Baz
    ', subject)).to eq '

    Foo
    Bar
    Baz

    ' - end - - it 'keep links in lists' do - expect(Sanitize.fragment('

    Check out:

    ', subject)).to eq '

    Check out:

    joinmastodon.org
    Bar

    ' + it 'keeps start and reversed attributes of ol' do + expect(Sanitize.fragment('

    Check out:

    1. Foo
    2. Bar
    ', subject)).to eq '

    Check out:

    1. Foo
    2. Bar
    ' end it 'removes a without href' do @@ -45,5 +37,13 @@ describe Sanitize::Config do it 'keeps a with href' do expect(Sanitize.fragment('Test', subject)).to eq 'Test' end + + it 'removes a with unparsable href' do + expect(Sanitize.fragment('Test', subject)).to eq 'Test' + end + + it 'keeps a with supported scheme and no host' do + expect(Sanitize.fragment('Test', subject)).to eq 'Test' + end end end From c2a046ded1d47e2504df05568e34bc6a2a6dc810 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:25:15 +0100 Subject: [PATCH 0571/1220] =?UTF-8?q?Fix=20=E2=80=9CRemove=20all=20followe?= =?UTF-8?q?rs=20from=20the=20selected=20domains=E2=80=9D=20being=20more=20?= =?UTF-8?q?destructive=20than=20it=20claims=20(#23805)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/relationships_controller.rb | 4 ++-- app/models/form/account_batch.rb | 10 ++++---- .../remove_domains_from_followers_service.rb | 23 +++++++++++++++++++ app/views/relationships/show.html.haml | 2 +- .../relationships_controller_spec.rb | 11 ++++++++- 5 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 app/services/remove_domains_from_followers_service.rb diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index 96cce55e9e..baa34da22a 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -60,8 +60,8 @@ class RelationshipsController < ApplicationController 'unfollow' elsif params[:remove_from_followers] 'remove_from_followers' - elsif params[:block_domains] - 'block_domains' + elsif params[:block_domains] || params[:remove_domains_from_followers] + 'remove_domains_from_followers' end end diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb index 473622edf4..5a7fc7ed1b 100644 --- a/app/models/form/account_batch.rb +++ b/app/models/form/account_batch.rb @@ -17,8 +17,8 @@ class Form::AccountBatch unfollow! when 'remove_from_followers' remove_from_followers! - when 'block_domains' - block_domains! + when 'remove_domains_from_followers' + remove_domains_from_followers! when 'approve' approve! when 'reject' @@ -50,10 +50,8 @@ class Form::AccountBatch RemoveFromFollowersService.new.call(current_account, account_ids) end - def block_domains! - AfterAccountDomainBlockWorker.push_bulk(account_domains) do |domain| - [current_account.id, domain] - end + def remove_domains_from_followers! + RemoveDomainsFromFollowersService.new.call(current_account, account_domains) end def account_domains diff --git a/app/services/remove_domains_from_followers_service.rb b/app/services/remove_domains_from_followers_service.rb new file mode 100644 index 0000000000..d76763409d --- /dev/null +++ b/app/services/remove_domains_from_followers_service.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class RemoveDomainsFromFollowersService < BaseService + include Payloadable + + def call(source_account, target_domains) + source_account.passive_relationships.where(account_id: Account.where(domain: target_domains)).find_each do |follow| + follow.destroy + + create_notification(follow) if source_account.local? && !follow.account.local? && follow.account.activitypub? + end + end + + private + + def create_notification(follow) + ActivityPub::DeliveryWorker.perform_async(build_json(follow), follow.target_account_id, follow.account.inbox_url) + end + + def build_json(follow) + Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)) + end +end diff --git a/app/views/relationships/show.html.haml b/app/views/relationships/show.html.haml index 2899cd5140..f08e9c1df8 100644 --- a/app/views/relationships/show.html.haml +++ b/app/views/relationships/show.html.haml @@ -48,7 +48,7 @@ = 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? + = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_domains')]), name: :remove_domains_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship? .batch-table__body - if @accounts.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb index 39f455e038..53a5daa517 100644 --- a/spec/controllers/relationships_controller_spec.rb +++ b/spec/controllers/relationships_controller_spec.rb @@ -58,7 +58,7 @@ describe RelationshipsController do end context 'when select parameter is provided' do - subject { patch :update, params: { form_account_batch: { account_ids: [poopfeast.id] }, block_domains: '' } } + subject { patch :update, params: { form_account_batch: { account_ids: [poopfeast.id] }, remove_domains_from_followers: '' } } it 'soft-blocks followers from selected domains' do poopfeast.follow!(user.account) @@ -69,6 +69,15 @@ describe RelationshipsController do expect(poopfeast.following?(user.account)).to be false end + it 'does not unfollow users from selected domains' do + user.account.follow!(poopfeast) + + sign_in user, scope: :user + subject + + expect(user.account.following?(poopfeast)).to be true + end + include_examples 'authenticate user' include_examples 'redirects back to followers page' end From b55fc883b6181fb8080fbafd53bc7a9f1896b295 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:25:36 +0100 Subject: [PATCH 0572/1220] =?UTF-8?q?Fix=20duplicate=20=E2=80=9CPublish?= =?UTF-8?q?=E2=80=9D=20button=20on=20mobile=20(#23804)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/mastodon/features/ui/components/header.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/header.jsx b/app/javascript/mastodon/features/ui/components/header.jsx index 1384bebda0..92adc47a9c 100644 --- a/app/javascript/mastodon/features/ui/components/header.jsx +++ b/app/javascript/mastodon/features/ui/components/header.jsx @@ -22,8 +22,8 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -export default @connect(null, mapDispatchToProps) -@withRouter +export default @withRouter +@connect(null, mapDispatchToProps) class Header extends React.PureComponent { static contextTypes = { From f8bb4d0d6b1050de481187e9f034b8bbb649d931 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:36:18 +0100 Subject: [PATCH 0573/1220] Fix server error when failing to follow back followers from `/relationships` (#23787) --- app/controllers/relationships_controller.rb | 2 ++ app/models/form/account_batch.rb | 6 ++++++ config/locales/en.yml | 1 + 3 files changed, 9 insertions(+) diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index baa34da22a..de5dc58792 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -19,6 +19,8 @@ class RelationshipsController < ApplicationController @form.save rescue ActionController::ParameterMissing # Do nothing + rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound + flash[:alert] = I18n.t('relationships.follow_failure') if action_from_button == 'follow' ensure redirect_to relationships_path(filter_params) end diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb index 5a7fc7ed1b..6a05f8163a 100644 --- a/app/models/form/account_batch.rb +++ b/app/models/form/account_batch.rb @@ -35,9 +35,15 @@ class Form::AccountBatch private def follow! + error = nil + accounts.each do |target_account| FollowService.new.call(current_account, target_account) + rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound => e + error ||= e end + + raise error if error.present? end def unfollow! diff --git a/config/locales/en.yml b/config/locales/en.yml index 9f8ba7ce78..d142962b5a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1408,6 +1408,7 @@ en: 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_failure: Could not follow some of the selected accounts. follow_selected_followers: Follow selected followers followers: Followers following: Following From 02c6bad3ca7b59a8be6403fbbddd7d46346532dc Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:37:22 +0100 Subject: [PATCH 0574/1220] Change unintended SMTP read timeout from 5 seconds to 20 seconds (#23750) --- config/environments/production.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/environments/production.rb b/config/environments/production.rb index 99c9bb40c5..345a255a74 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -128,6 +128,7 @@ Rails.application.configure do enable_starttls_auto: enable_starttls_auto, tls: ENV['SMTP_TLS'].presence && ENV['SMTP_TLS'] == 'true', ssl: ENV['SMTP_SSL'].presence && ENV['SMTP_SSL'] == 'true', + read_timeout: 20, } config.action_mailer.delivery_method = ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp').to_sym From a1347f456e47e085ef1031b607cabd0683c496c2 Mon Sep 17 00:00:00 2001 From: Terry Garcia <10190993+TerryGarcia@users.noreply.github.com> Date: Fri, 3 Mar 2023 13:37:49 -0600 Subject: [PATCH 0575/1220] Switched bookmark and favourites around (#23701) --- .../mastodon/features/ui/components/navigation_panel.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx index 9a9309be05..755b19349d 100644 --- a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx @@ -82,8 +82,8 @@ class NavigationPanel extends React.Component { {signedIn && ( - + From f94aa70b814159964de660ac33bc797a1e01af30 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:44:02 +0100 Subject: [PATCH 0576/1220] Fix error when displaying post history of a trendable post in the admin interface (#23574) --- app/views/admin/statuses/show.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml index 62b49de8c8..4631e97f16 100644 --- a/app/views/admin/statuses/show.html.haml +++ b/app/views/admin/statuses/show.html.haml @@ -34,7 +34,7 @@ %td - if @status.trend.allowed? %abbr{ title: t('admin.trends.tags.current_score', score: @status.trend.score) }= t('admin.trends.tags.trending_rank', rank: @status.trend.rank) - - elsif @status.trend.requires_review? + - elsif @status.requires_review? = t('admin.trends.pending_review') - else = t('admin.trends.not_allowed_to_trend') From d6679d175181e425f52e5a6b062bc2c5545ce0cc Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:44:46 +0100 Subject: [PATCH 0577/1220] Add mail headers to avoid auto-replies (#23597) --- app/mailers/application_mailer.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 73b623576c..35f0b5fee1 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -7,9 +7,17 @@ class ApplicationMailer < ActionMailer::Base helper :instance helper :formatting + after_action :set_autoreply_headers! + protected def locale_for_account(account, &block) I18n.with_locale(account.user_locale || I18n.default_locale, &block) end + + def set_autoreply_headers! + headers['Precedence'] = 'list' + headers['X-Auto-Response-Suppress'] = 'All' + headers['Auto-Submitted'] = 'auto-generated' + end end From 8784498ebfc5508034f447d92645551d9d2c5907 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:45:12 +0100 Subject: [PATCH 0578/1220] Fix tootctl accounts migrate error due to typo (#23567) --- lib/mastodon/accounts_cli.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index db379eb853..98855cbd06 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -627,7 +627,7 @@ module Mastodon exit(1) end - unless options[:force] || migration.target_acount_id == account.moved_to_account_id + unless options[:force] || migration.target_account_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 From 6b16b77ab0f347e688f009c5a04961142b8dd203 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:45:55 +0100 Subject: [PATCH 0579/1220] Fix external authentication not running onboarding code for new users (#23458) --- app/models/concerns/omniauthable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb index b0aa5be6f1..41eae215b4 100644 --- a/app/models/concerns/omniauthable.rb +++ b/app/models/concerns/omniauthable.rb @@ -61,7 +61,7 @@ module Omniauthable user.account.avatar_remote_url = nil end - user.skip_confirmation! if email_is_verified + user.confirm! if email_is_verified user.save! user end From 3f52e717fa22e89a0eaf5f12f0fb9d2b121c7944 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:50:46 +0100 Subject: [PATCH 0580/1220] Add tests for moderation actions without custom text (#23184) --- .../admin/reports/actions_controller_spec.rb | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb index 3e42e4cb19..4c2624a408 100644 --- a/spec/controllers/admin/reports/actions_controller_spec.rb +++ b/spec/controllers/admin/reports/actions_controller_spec.rb @@ -57,6 +57,9 @@ describe Admin::Reports::ActionsController do let!(:media) { Fabricate(:media_attachment, account: target_account, status: statuses[0]) } let(:report) { Fabricate(:report, target_account: target_account, status_ids: statuses.map(&:id)) } let(:text) { 'hello' } + let(:common_params) do + { report_id: report.id, text: text } + end shared_examples 'common behavior' do it 'closes the report' do @@ -72,6 +75,26 @@ describe Admin::Reports::ActionsController do subject expect(response).to redirect_to(admin_reports_path) end + + context 'when text is unset' do + let(:common_params) do + { report_id: report.id } + end + + it 'closes the report' do + expect { subject }.to change { report.reload.action_taken? }.from(false).to(true) + end + + it 'creates a strike with the expected text' do + expect { subject }.to change { report.target_account.strikes.count }.by(1) + expect(report.target_account.strikes.last.text).to eq '' + end + + it 'redirects' do + subject + expect(response).to redirect_to(admin_reports_path) + end + end end shared_examples 'all action types' do @@ -124,13 +147,13 @@ describe Admin::Reports::ActionsController do end context 'action as submit button' do - subject { post :create, params: { report_id: report.id, text: text, action => '' } } + subject { post :create, params: common_params.merge({ action => '' }) } it_behaves_like 'all action types' end context 'action as submit button' do - subject { post :create, params: { report_id: report.id, text: text, moderation_action: action } } + subject { post :create, params: common_params.merge({ moderation_action: action }) } it_behaves_like 'all action types' end From de137e6bb0d69354b4be5d4a8d845f8bd90551ff Mon Sep 17 00:00:00 2001 From: Jamie Hoyle Date: Fri, 3 Mar 2023 19:53:37 +0000 Subject: [PATCH 0581/1220] Added support for specifying S3 storage classes in environment (#22480) --- config/initializers/paperclip.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index a2285427c8..9282c941da 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -90,6 +90,12 @@ if ENV['S3_ENABLED'] == 'true' ) end + if ENV.has_key?('S3_STORAGE_CLASS') + Paperclip::Attachment.default_options[:s3_headers].merge!( + 'X-Amz-Storage-Class' => ENV['S3_STORAGE_CLASS'] + ) + end + # Some S3-compatible providers might not actually be compatible with some APIs # used by kt-paperclip, see https://github.com/mastodon/mastodon/issues/16822 if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' From 0872f3e3d743a16533ac4fad4cd83b103047808c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C5=ABns=20Usovs?= Date: Fri, 3 Mar 2023 21:01:18 +0100 Subject: [PATCH 0582/1220] Allow streaming to connect to postgress with self-signed certs (#21431) --- package.json | 1 + streaming/index.js | 38 +------------------------------------- yarn.lock | 5 +++++ 3 files changed, 7 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 1ab297d041..15bf30925c 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "object.values": "^1.1.6", "path-complete-extname": "^1.0.0", "pg": "^8.5.0", + "pg-connection-string": "^2.5.0", "postcss": "^8.4.21", "postcss-loader": "^3.0.0", "promise.prototype.finally": "^3.1.4", diff --git a/streaming/index.js b/streaming/index.js index 32e3babaa4..ba7cfea191 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -7,6 +7,7 @@ const express = require('express'); const http = require('http'); const redis = require('redis'); const pg = require('pg'); +const dbUrlToConfig = require('pg-connection-string').parse; const log = require('npmlog'); const url = require('url'); const uuid = require('uuid'); @@ -23,43 +24,6 @@ dotenv.config({ log.level = process.env.LOG_LEVEL || 'verbose'; -/** - * @param {string} dbUrl - * @return {Object.} - */ -const dbUrlToConfig = (dbUrl) => { - if (!dbUrl) { - return {}; - } - - const params = url.parse(dbUrl, true); - const config = {}; - - if (params.auth) { - [config.user, config.password] = params.auth.split(':'); - } - - if (params.hostname) { - config.host = params.hostname; - } - - if (params.port) { - config.port = params.port; - } - - if (params.pathname) { - config.database = params.pathname.split('/')[1]; - } - - const ssl = params.query && params.query.ssl; - - if (ssl && ssl === 'true' || ssl === '1') { - config.ssl = true; - } - - return config; -}; - /** * @param {Object.} defaultConfig * @param {string} redisUrl diff --git a/yarn.lock b/yarn.lock index a856cf91dd..68cef79651 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8322,6 +8322,11 @@ pg-connection-string@^2.4.0: resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== +pg-connection-string@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" + integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== + pg-int8@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" From 5a8c651e8f0252c7135042e79396f782361302d9 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Mar 2023 21:06:31 +0100 Subject: [PATCH 0583/1220] Only offer translation for supported languages (#23879) --- .rubocop.yml | 4 + .../mastodon/components/status_content.jsx | 4 +- app/javascript/mastodon/initial_state.js | 2 - app/lib/translation_service.rb | 4 + app/lib/translation_service/deepl.rb | 46 +++++--- .../translation_service/libre_translate.rb | 38 +++++-- app/models/status.rb | 10 ++ app/serializers/initial_state_serializer.rb | 1 - app/serializers/rest/status_serializer.rb | 6 +- app/services/translate_status_service.rb | 2 +- spec/lib/translation_service/deepl_spec.rb | 100 ++++++++++++++++++ .../libre_translate_spec.rb | 71 +++++++++++++ spec/models/status_spec.rb | 79 ++++++++++++++ 13 files changed, 336 insertions(+), 31 deletions(-) create mode 100644 spec/lib/translation_service/deepl_spec.rb create mode 100644 spec/lib/translation_service/libre_translate_spec.rb diff --git a/.rubocop.yml b/.rubocop.yml index 27d778edfb..0a41c54b90 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -97,6 +97,10 @@ Rails/Exit: - 'lib/mastodon/cli_helper.rb' - 'lib/cli.rb' +RSpec/FilePath: + CustomTransform: + DeepL: deepl + RSpec/NotToNot: EnforcedStyle: to_not diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index a1c38171f2..f9c9fe0791 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -6,7 +6,7 @@ import { Link } from 'react-router-dom'; import classnames from 'classnames'; import PollContainer from 'mastodon/containers/poll_container'; import Icon from 'mastodon/components/icon'; -import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'mastodon/initial_state'; +import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state'; const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) @@ -220,7 +220,7 @@ class StatusContent extends React.PureComponent { const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); - const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); + const renderTranslate = this.props.onTranslate && status.get('translatable'); const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index d04c4a42d2..919e0fc282 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -80,7 +80,6 @@ * @property {boolean} use_blurhash * @property {boolean=} use_pending_items * @property {string} version - * @property {boolean} translation_enabled */ /** @@ -132,7 +131,6 @@ export const unfollowModal = getMeta('unfollow_modal'); export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); -export const translationEnabled = getMeta('translation_enabled'); export const languages = initialState?.languages; export const statusPageUrl = getMeta('status_page_url'); diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb index 285f309393..5ff93674a4 100644 --- a/app/lib/translation_service.rb +++ b/app/lib/translation_service.rb @@ -21,6 +21,10 @@ class TranslationService ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present? end + def supported?(_source_language, _target_language) + false + end + def translate(_text, _source_language, _target_language) raise NotImplementedError end diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index 151d33d909..deff95a1db 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -11,33 +11,53 @@ class TranslationService::DeepL < TranslationService end def translate(text, source_language, target_language) - request(text, source_language, target_language).perform do |res| + form = { text: text, source_lang: source_language&.upcase, target_lang: target_language, tag_handling: 'html' } + request(:post, '/v2/translate', form: form) do |res| + transform_response(res.body_with_limit) + end + end + + def supported?(source_language, target_language) + source_language.in?(languages('source')) && target_language.in?(languages('target')) + end + + private + + def languages(type) + Rails.cache.fetch("translation_service/deepl/languages/#{type}", expires_in: 7.days, race_condition_ttl: 1.minute) do + request(:get, "/v2/languages?type=#{type}") do |res| + # In DeepL, EN and PT are deprecated in favor of EN-GB/EN-US and PT-BR/PT-PT, so + # they are supported but not returned by the API. + extra = type == 'source' ? [nil] : %w(en pt) + languages = Oj.load(res.body_with_limit).map { |language| language['language'].downcase } + + languages + extra + end + end + end + + def request(verb, path, **options) + req = Request.new(verb, "#{base_url}#{path}", **options) + req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}") + req.perform do |res| case res.code when 429 raise TooManyRequestsError when 456 raise QuotaExceededError when 200...300 - transform_response(res.body_with_limit) + yield res else raise UnexpectedResponseError end end end - private - - def request(text, source_language, target_language) - req = Request.new(:post, endpoint_url, form: { text: text, source_lang: source_language&.upcase, target_lang: target_language, tag_handling: 'html' }) - req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}") - req - end - - def endpoint_url + def base_url if @plan == 'free' - 'https://api-free.deepl.com/v2/translate' + 'https://api-free.deepl.com' else - 'https://api.deepl.com/v2/translate' + 'https://api.deepl.com' end end diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb index 4ebe21e454..743e4d77f7 100644 --- a/app/lib/translation_service/libre_translate.rb +++ b/app/lib/translation_service/libre_translate.rb @@ -9,29 +9,45 @@ class TranslationService::LibreTranslate < TranslationService end def translate(text, source_language, target_language) - request(text, source_language, target_language).perform do |res| + body = Oj.dump(q: text, source: source_language.presence || 'auto', target: target_language, format: 'html', api_key: @api_key) + request(:post, '/translate', body: body) do |res| + transform_response(res.body_with_limit, source_language) + end + end + + def supported?(source_language, target_language) + languages.key?(source_language) && languages[source_language].include?(target_language) + end + + private + + def languages + Rails.cache.fetch('translation_service/libre_translate/languages', expires_in: 7.days, race_condition_ttl: 1.minute) do + request(:get, '/languages') do |res| + languages = Oj.load(res.body_with_limit).to_h { |language| [language['code'], language['targets']] } + languages[nil] = languages.values.flatten.uniq + languages + end + end + end + + def request(verb, path, **options) + req = Request.new(verb, "#{@base_url}#{path}", allow_local: true, **options) + req.add_headers('Content-Type': 'application/json') + req.perform do |res| case res.code when 429 raise TooManyRequestsError when 403 raise QuotaExceededError when 200...300 - transform_response(res.body_with_limit, source_language) + yield res else raise UnexpectedResponseError end end end - private - - def request(text, source_language, target_language) - body = Oj.dump(q: text, source: source_language.presence || 'auto', target: target_language, format: 'html', api_key: @api_key) - req = Request.new(:post, "#{@base_url}/translate", body: body, allow_local: true) - req.add_headers('Content-Type': 'application/json') - req - end - def transform_response(str, source_language) json = Oj.load(str, mode: :strict) diff --git a/app/models/status.rb b/app/models/status.rb index e7ea191a80..dd7ac2edb1 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -232,6 +232,16 @@ class Status < ApplicationRecord public_visibility? || unlisted_visibility? end + def translatable? + translate_target_locale = I18n.locale.to_s.split(/[_-]/).first + + distributable? && + content.present? && + language != translate_target_locale && + TranslationService.configured? && + TranslationService.configured.supported?(language, translate_target_locale) + end + alias sign? distributable? def with_media? diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 7905444e98..769ba653ed 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -30,7 +30,6 @@ class InitialStateSerializer < ActiveModel::Serializer timeline_preview: Setting.timeline_preview, activity_api_enabled: Setting.activity_api_enabled, single_user_mode: Rails.configuration.x.single_user_mode, - translation_enabled: TranslationService.configured?, trends_as_landing_page: Setting.trends_as_landing_page, status_page_url: Setting.status_page_url, } diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index e0b8f32a68..a422f5b258 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -4,7 +4,7 @@ class REST::StatusSerializer < ActiveModel::Serializer include FormattingHelper attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id, - :sensitive, :spoiler_text, :visibility, :language, + :sensitive, :spoiler_text, :visibility, :language, :translatable, :uri, :url, :replies_count, :reblogs_count, :favourites_count, :edited_at @@ -50,6 +50,10 @@ class REST::StatusSerializer < ActiveModel::Serializer object.account.user_shows_application? || (current_user? && current_user.account_id == object.account_id) end + def translatable + current_user? && object.translatable? + end + def visibility # This visibility is masked behind "private" # to avoid API changes because there are no diff --git a/app/services/translate_status_service.rb b/app/services/translate_status_service.rb index 539a0d9db5..92d8b62a05 100644 --- a/app/services/translate_status_service.rb +++ b/app/services/translate_status_service.rb @@ -6,7 +6,7 @@ class TranslateStatusService < BaseService include FormattingHelper def call(status, target_language) - raise Mastodon::NotPermittedError unless status.public_visibility? || status.unlisted_visibility? + raise Mastodon::NotPermittedError unless status.translatable? @status = status @content = status_content_format(@status) diff --git a/spec/lib/translation_service/deepl_spec.rb b/spec/lib/translation_service/deepl_spec.rb new file mode 100644 index 0000000000..aa24731860 --- /dev/null +++ b/spec/lib/translation_service/deepl_spec.rb @@ -0,0 +1,100 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe TranslationService::DeepL do + subject(:service) { described_class.new(plan, 'my-api-key') } + + let(:plan) { 'advanced' } + + before do + stub_request(:get, 'https://api.deepl.com/v2/languages?type=source').to_return( + body: '[{"language":"EN","name":"English"},{"language":"UK","name":"Ukrainian"}]' + ) + stub_request(:get, 'https://api.deepl.com/v2/languages?type=target').to_return( + body: '[{"language":"EN-GB","name":"English (British)"},{"language":"ZH","name":"Chinese"}]' + ) + end + + describe '#supported?' do + it 'supports included languages as source and target languages' do + expect(service.supported?('uk', 'en')).to be true + end + + it 'supports auto-detecting source language' do + expect(service.supported?(nil, 'en')).to be true + end + + it 'supports "en" and "pt" as target languages though not included in language list' do + expect(service.supported?('uk', 'en')).to be true + expect(service.supported?('uk', 'pt')).to be true + end + + it 'does not support non-included language as target language' do + expect(service.supported?('uk', 'nl')).to be false + end + + it 'does not support non-included language as source language' do + expect(service.supported?('da', 'en')).to be false + end + end + + describe '#translate' do + it 'returns translation with specified source language' do + stub_request(:post, 'https://api.deepl.com/v2/translate') + .with(body: 'text=Hasta+la+vista&source_lang=ES&target_lang=en&tag_handling=html') + .to_return(body: '{"translations":[{"detected_source_language":"ES","text":"See you soon"}]}') + + translation = service.translate('Hasta la vista', 'es', 'en') + expect(translation.detected_source_language).to eq 'es' + expect(translation.provider).to eq 'DeepL.com' + expect(translation.text).to eq 'See you soon' + end + + it 'returns translation with auto-detected source language' do + stub_request(:post, 'https://api.deepl.com/v2/translate') + .with(body: 'text=Guten+Tag&source_lang&target_lang=en&tag_handling=html') + .to_return(body: '{"translations":[{"detected_source_language":"DE","text":"Good Morning"}]}') + + translation = service.translate('Guten Tag', nil, 'en') + expect(translation.detected_source_language).to eq 'de' + expect(translation.provider).to eq 'DeepL.com' + expect(translation.text).to eq 'Good Morning' + end + end + + describe '#languages?' do + it 'returns source languages' do + expect(service.send(:languages, 'source')).to eq ['en', 'uk', nil] + end + + it 'returns target languages' do + expect(service.send(:languages, 'target')).to eq %w(en-gb zh en pt) + end + end + + describe '#request' do + before do + stub_request(:any, //) + # rubocop:disable Lint/EmptyBlock + service.send(:request, :get, '/v2/languages') { |res| } + # rubocop:enable Lint/EmptyBlock + end + + it 'uses paid plan base URL' do + expect(a_request(:get, 'https://api.deepl.com/v2/languages')).to have_been_made.once + end + + context 'with free plan' do + let(:plan) { 'free' } + + it 'uses free plan base URL' do + expect(a_request(:get, 'https://api-free.deepl.com/v2/languages')).to have_been_made.once + end + end + + it 'sends API key' do + expect(a_request(:get, 'https://api.deepl.com/v2/languages').with(headers: { Authorization: 'DeepL-Auth-Key my-api-key' })).to have_been_made.once + end + end +end diff --git a/spec/lib/translation_service/libre_translate_spec.rb b/spec/lib/translation_service/libre_translate_spec.rb new file mode 100644 index 0000000000..a6cb01884a --- /dev/null +++ b/spec/lib/translation_service/libre_translate_spec.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe TranslationService::LibreTranslate do + subject(:service) { described_class.new('https://libretranslate.example.com', 'my-api-key') } + + before do + stub_request(:get, 'https://libretranslate.example.com/languages').to_return( + body: '[{"code": "en","name": "English","targets": ["de","es"]},{"code": "da","name": "Danish","targets": ["en","de"]}]' + ) + end + + describe '#supported?' do + it 'supports included language pair' do + expect(service.supported?('en', 'de')).to be true + end + + it 'does not support reversed language pair' do + expect(service.supported?('de', 'en')).to be false + end + + it 'supports auto-detecting source language' do + expect(service.supported?(nil, 'de')).to be true + end + + it 'does not support auto-detecting for unsupported target language' do + expect(service.supported?(nil, 'pt')).to be false + end + end + + describe '#languages' do + subject(:languages) { service.send(:languages) } + + it 'includes supported source languages' do + expect(languages.keys).to eq ['en', 'da', nil] + end + + it 'includes supported target languages for source language' do + expect(languages['en']).to eq %w(de es) + end + + it 'includes supported target languages for auto-detected language' do + expect(languages[nil]).to eq %w(de es en) + end + end + + describe '#translate' do + it 'returns translation with specified source language' do + stub_request(:post, 'https://libretranslate.example.com/translate') + .with(body: '{"q":"Hasta la vista","source":"es","target":"en","format":"html","api_key":"my-api-key"}') + .to_return(body: '{"translatedText": "See you"}') + + translation = service.translate('Hasta la vista', 'es', 'en') + expect(translation.detected_source_language).to eq 'es' + expect(translation.provider).to eq 'LibreTranslate' + expect(translation.text).to eq 'See you' + end + + it 'returns translation with auto-detected source language' do + stub_request(:post, 'https://libretranslate.example.com/translate') + .with(body: '{"q":"Guten Morgen","source":"auto","target":"en","format":"html","api_key":"my-api-key"}') + .to_return(body: '{"detectedLanguage":{"confidence":92,"language":"de"},"translatedText":"Good morning"}') + + translation = service.translate('Guten Morgen', nil, 'en') + expect(translation.detected_source_language).to be_nil + expect(translation.provider).to eq 'LibreTranslate' + expect(translation.text).to eq 'Good morning' + end + end +end diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 1e58c6d0d1..1f6cfc7967 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -114,6 +114,85 @@ RSpec.describe Status, type: :model do end end + describe '#translatable?' do + before do + allow(TranslationService).to receive(:configured?).and_return(true) + allow(TranslationService).to receive(:configured).and_return(TranslationService.new) + allow(TranslationService.configured).to receive(:supported?).with('es', 'en').and_return(true) + + subject.language = 'es' + subject.visibility = :public + end + + context 'all conditions are satisfied' do + it 'returns true' do + expect(subject.translatable?).to be true + end + end + + context 'translation service is not configured' do + it 'returns false' do + allow(TranslationService).to receive(:configured?).and_return(false) + allow(TranslationService).to receive(:configured).and_raise(TranslationService::NotConfiguredError) + expect(subject.translatable?).to be false + end + end + + context 'status language is nil' do + it 'returns true' do + subject.language = nil + allow(TranslationService.configured).to receive(:supported?).with(nil, 'en').and_return(true) + expect(subject.translatable?).to be true + end + end + + context 'status language is same as default locale' do + it 'returns false' do + subject.language = I18n.locale + expect(subject.translatable?).to be false + end + end + + context 'status language is unsupported' do + it 'returns false' do + subject.language = 'af' + allow(TranslationService.configured).to receive(:supported?).with('af', 'en').and_return(false) + expect(subject.translatable?).to be false + end + end + + context 'default locale is unsupported' do + it 'returns false' do + allow(TranslationService.configured).to receive(:supported?).with('es', 'af').and_return(false) + I18n.with_locale('af') do + expect(subject.translatable?).to be false + end + end + end + + context 'default locale has region' do + it 'returns true' do + I18n.with_locale('en-GB') do + expect(subject.translatable?).to be true + end + end + end + + context 'status text is blank' do + it 'returns false' do + subject.text = ' ' + expect(subject.translatable?).to be false + end + end + + context 'status visiblity is hidden' do + it 'returns false' do + subject.visibility = 'limited' + expect(subject.translatable?).to be false + end + end + end + describe '#content' do it 'returns the text of the status if it is not a reblog' do expect(subject.content).to eql subject.text From ddde4e0d954fbb1338774d61f1130e4af6924496 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 21:08:22 +0100 Subject: [PATCH 0584/1220] Change `ActivityPub::DeliveryWorker` retries to be spread out more (#21956) --- app/workers/activitypub/delivery_worker.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb index d9153132b3..7c1c14766b 100644 --- a/app/workers/activitypub/delivery_worker.rb +++ b/app/workers/activitypub/delivery_worker.rb @@ -10,6 +10,16 @@ class ActivityPub::DeliveryWorker sidekiq_options queue: 'push', retry: 16, dead: false + # Unfortunately, we cannot control Sidekiq's jitter, so add our own + sidekiq_retry_in do |count| + # This is Sidekiq's default delay + delay = (count**4) + 15 + # Our custom jitter, that will be added to Sidekiq's built-in one. + # Sidekiq's built-in jitter is `rand(10) * (count + 1)` + jitter = rand(0.5 * (count**4)) + delay + jitter + end + HEADERS = { 'Content-Type' => 'application/activity+json' }.freeze def perform(json, source_account_id, inbox_url, options = {}) From 050f1669c6fc02d7a917261d16d9264512955bc6 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 21:13:55 +0100 Subject: [PATCH 0585/1220] Fix original account being unfollowed on migration before the follow request could be sent (#21957) --- app/services/follow_migration_service.rb | 40 +++++++++++++++++++ .../migrated_follow_delivery_worker.rb | 17 ++++++++ app/workers/unfollow_follow_worker.rb | 8 +--- 3 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 app/services/follow_migration_service.rb create mode 100644 app/workers/activitypub/migrated_follow_delivery_worker.rb diff --git a/app/services/follow_migration_service.rb b/app/services/follow_migration_service.rb new file mode 100644 index 0000000000..cfe9093cbe --- /dev/null +++ b/app/services/follow_migration_service.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +class FollowMigrationService < FollowService + # Follow an account with the same settings as another account, and unfollow the old account once the request is sent + # @param [Account] source_account From which to follow + # @param [Account] target_account Account to follow + # @param [Account] old_target_account Account to unfollow once the follow request has been sent to the new one + # @option [Boolean] bypass_locked Whether to immediately follow the new account even if it is locked + def call(source_account, target_account, old_target_account, bypass_locked: false) + @old_target_account = old_target_account + + follow = source_account.active_relationships.find_by(target_account: old_target_account) + reblogs = follow&.show_reblogs? + notify = follow&.notify? + languages = follow&.languages + + super(source_account, target_account, reblogs: reblogs, notify: notify, languages: languages, bypass_locked: bypass_locked, bypass_limit: true) + end + + private + + def request_follow! + follow_request = @source_account.request_follow!(@target_account, **follow_options.merge(rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit])) + + if @target_account.local? + LocalNotificationWorker.perform_async(@target_account.id, follow_request.id, follow_request.class.name, 'follow_request') + UnfollowService.new.call(@source_account, @old_target_account, skip_unmerge: true) + elsif @target_account.activitypub? + ActivityPub::MigratedFollowDeliveryWorker.perform_async(build_json(follow_request), @source_account.id, @target_account.inbox_url, @old_target_account.id) + end + + follow_request + end + + def direct_follow! + follow = super + UnfollowService.new.call(@source_account, @old_target_account, skip_unmerge: true) + follow + end +end diff --git a/app/workers/activitypub/migrated_follow_delivery_worker.rb b/app/workers/activitypub/migrated_follow_delivery_worker.rb new file mode 100644 index 0000000000..17a9e515ef --- /dev/null +++ b/app/workers/activitypub/migrated_follow_delivery_worker.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class ActivityPub::MigratedFollowDeliveryWorker < ActivityPub::DeliveryWorker + def perform(json, source_account_id, inbox_url, old_target_account_id, options = {}) + super(json, source_account_id, inbox_url, options) + unfollow_old_account!(old_target_account_id) + end + + private + + def unfollow_old_account!(old_target_account_id) + old_target_account = Account.find(old_target_account_id) + UnfollowService.new.call(@source_account, old_target_account, skip_unmerge: true) + rescue StandardError + true + end +end diff --git a/app/workers/unfollow_follow_worker.rb b/app/workers/unfollow_follow_worker.rb index 7203b4888f..a4d57839de 100644 --- a/app/workers/unfollow_follow_worker.rb +++ b/app/workers/unfollow_follow_worker.rb @@ -10,13 +10,7 @@ class UnfollowFollowWorker old_target_account = Account.find(old_target_account_id) new_target_account = Account.find(new_target_account_id) - follow = follower_account.active_relationships.find_by(target_account: old_target_account) - reblogs = follow&.show_reblogs? - notify = follow&.notify? - languages = follow&.languages - - FollowService.new.call(follower_account, new_target_account, reblogs: reblogs, notify: notify, languages: languages, bypass_locked: bypass_locked, bypass_limit: true) - UnfollowService.new.call(follower_account, old_target_account, skip_unmerge: true) + FollowMigrationService.new.call(follower_account, new_target_account, old_target_account, bypass_locked: bypass_locked) rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError true end From c65c34dfd11be9b307e9049fb58194c4cfa76a73 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 3 Mar 2023 16:48:48 -0500 Subject: [PATCH 0586/1220] Remove climate_control gem (#23886) --- Gemfile | 1 - Gemfile.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index 354f6bd6cf..ede81af163 100644 --- a/Gemfile +++ b/Gemfile @@ -119,7 +119,6 @@ end group :test do gem 'capybara', '~> 3.38' - gem 'climate_control', '~> 0.2' gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' gem 'rack-test', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 78774ac9cc..73d45fb547 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -792,7 +792,6 @@ DEPENDENCIES capybara (~> 3.38) charlock_holmes (~> 0.7.7) chewy (~> 7.2) - climate_control (~> 0.2) cocoon (~> 1.2) color_diff (~> 0.1) concurrent-ruby From b00f945d92b6fff58c8a8ed702a9511ddb56a3da Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 3 Mar 2023 16:49:16 -0500 Subject: [PATCH 0587/1220] Remove implied StandardError rescue (#23942) --- app/workers/activitypub/migrated_follow_delivery_worker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/workers/activitypub/migrated_follow_delivery_worker.rb b/app/workers/activitypub/migrated_follow_delivery_worker.rb index 17a9e515ef..daf30e0ae7 100644 --- a/app/workers/activitypub/migrated_follow_delivery_worker.rb +++ b/app/workers/activitypub/migrated_follow_delivery_worker.rb @@ -11,7 +11,7 @@ class ActivityPub::MigratedFollowDeliveryWorker < ActivityPub::DeliveryWorker def unfollow_old_account!(old_target_account_id) old_target_account = Account.find(old_target_account_id) UnfollowService.new.call(@source_account, old_target_account, skip_unmerge: true) - rescue StandardError + rescue true end end From 1840d5d50c68a7fa85ea026cdd53c0b2c5cda83f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 3 Mar 2023 16:53:08 -0500 Subject: [PATCH 0588/1220] Remove pry gems (#23884) --- Gemfile | 2 -- Gemfile.lock | 11 ----------- 2 files changed, 13 deletions(-) diff --git a/Gemfile b/Gemfile index ede81af163..d3eefb224c 100644 --- a/Gemfile +++ b/Gemfile @@ -104,8 +104,6 @@ group :development, :test do gem 'fabrication', '~> 2.30' gem 'fuubar', '~> 2.5' gem 'i18n-tasks', '~> 1.0', require: false - gem 'pry-byebug', '~> 3.10' - gem 'pry-rails', '~> 0.3' gem 'rspec-rails', '~> 6.0' gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 73d45fb547..51cf8147b0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -155,7 +155,6 @@ GEM bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) - byebug (11.1.3) capistrano (3.17.2) airbrussh (>= 1.0.0) i18n @@ -497,14 +496,6 @@ GEM net-smtp premailer (~> 1.7, >= 1.7.9) private_address_check (0.5.0) - pry (0.14.1) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - pry-rails (0.3.9) - pry (>= 0.10.4) public_suffix (5.0.1) puma (6.1.0) nio4r (~> 2.0) @@ -849,8 +840,6 @@ DEPENDENCIES posix-spawn premailer-rails private_address_check (~> 0.5) - pry-byebug (~> 3.10) - pry-rails (~> 0.3) public_suffix (~> 5.0) puma (~> 6.1) pundit (~> 2.3) From aa98c8fbeb02fecac2681464fd7c0445deb466b1 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 22:55:43 +0100 Subject: [PATCH 0589/1220] Disable Style/SymbolArray (#23921) --- .rubocop.yml | 3 ++ .rubocop_todo.yml | 131 ---------------------------------------------- 2 files changed, 3 insertions(+), 131 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0a41c54b90..f7ed79b76d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -127,3 +127,6 @@ Style/TrailingCommaInArrayLiteral: Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: 'comma' + +Style/SymbolArray: + Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 22e1a99c12..b53f655bd0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2235,134 +2235,3 @@ Style/SlicingWithRange: - 'lib/active_record/batches.rb' - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/repo.rake' - -# Offense count: 272 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: EnforcedStyle, MinSize. -# SupportedStyles: percent, brackets -Style/SymbolArray: - Exclude: - - 'app/controllers/accounts_controller.rb' - - 'app/controllers/activitypub/replies_controller.rb' - - 'app/controllers/admin/accounts_controller.rb' - - 'app/controllers/admin/announcements_controller.rb' - - 'app/controllers/admin/domain_blocks_controller.rb' - - 'app/controllers/admin/email_domain_blocks_controller.rb' - - 'app/controllers/admin/relationships_controller.rb' - - 'app/controllers/admin/relays_controller.rb' - - 'app/controllers/admin/roles_controller.rb' - - 'app/controllers/admin/rules_controller.rb' - - 'app/controllers/admin/statuses_controller.rb' - - 'app/controllers/admin/trends/statuses_controller.rb' - - 'app/controllers/admin/warning_presets_controller.rb' - - 'app/controllers/admin/webhooks_controller.rb' - - 'app/controllers/api/v1/accounts/credentials_controller.rb' - - 'app/controllers/api/v1/accounts_controller.rb' - - 'app/controllers/api/v1/admin/accounts_controller.rb' - - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' - - 'app/controllers/api/v1/admin/domain_allows_controller.rb' - - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' - - 'app/controllers/api/v1/admin/reports_controller.rb' - - 'app/controllers/api/v1/crypto/deliveries_controller.rb' - - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' - - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' - - 'app/controllers/api/v1/featured_tags_controller.rb' - - 'app/controllers/api/v1/filters_controller.rb' - - 'app/controllers/api/v1/lists_controller.rb' - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/api/v1/push/subscriptions_controller.rb' - - 'app/controllers/api/v1/scheduled_statuses_controller.rb' - - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses_controller.rb' - - 'app/controllers/api/v2/filters/keywords_controller.rb' - - 'app/controllers/api/v2/filters/statuses_controller.rb' - - 'app/controllers/api/v2/filters_controller.rb' - - 'app/controllers/api/web/push_subscriptions_controller.rb' - - 'app/controllers/application_controller.rb' - - 'app/controllers/auth/registrations_controller.rb' - - 'app/controllers/filters_controller.rb' - - 'app/controllers/settings/applications_controller.rb' - - 'app/controllers/settings/featured_tags_controller.rb' - - 'app/controllers/settings/profiles_controller.rb' - - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' - - 'app/controllers/statuses_controller.rb' - - 'app/lib/feed_manager.rb' - - 'app/models/account.rb' - - 'app/models/account_filter.rb' - - 'app/models/admin/status_filter.rb' - - 'app/models/announcement.rb' - - 'app/models/concerns/ldap_authenticable.rb' - - 'app/models/concerns/status_threading_concern.rb' - - 'app/models/custom_filter.rb' - - 'app/models/domain_block.rb' - - 'app/models/import.rb' - - 'app/models/list.rb' - - 'app/models/media_attachment.rb' - - 'app/models/preview_card.rb' - - 'app/models/relay.rb' - - 'app/models/report.rb' - - 'app/models/site_upload.rb' - - 'app/models/status.rb' - - 'app/serializers/initial_state_serializer.rb' - - 'app/serializers/rest/notification_serializer.rb' - - 'db/migrate/20160220174730_create_accounts.rb' - - 'db/migrate/20160221003621_create_follows.rb' - - 'db/migrate/20160223171800_create_favourites.rb' - - 'db/migrate/20160224223247_create_mentions.rb' - - 'db/migrate/20160314164231_add_owner_to_application.rb' - - 'db/migrate/20160316103650_add_missing_indices.rb' - - 'db/migrate/20160926213048_remove_owner_from_application.rb' - - 'db/migrate/20161003145426_create_blocks.rb' - - 'db/migrate/20161006213403_rails_settings_migration.rb' - - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb' - - 'db/migrate/20161119211120_create_notifications.rb' - - 'db/migrate/20161128103007_create_subscriptions.rb' - - 'db/migrate/20161222204147_create_follow_requests.rb' - - 'db/migrate/20170112154826_migrate_settings.rb' - - 'db/migrate/20170301222600_create_mutes.rb' - - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb' - - 'db/migrate/20170424003227_create_account_domain_blocks.rb' - - 'db/migrate/20170427011934_re_add_owner_to_application.rb' - - 'db/migrate/20170507141759_optimize_index_subscriptions.rb' - - 'db/migrate/20170508230434_create_conversation_mutes.rb' - - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb' - - 'db/migrate/20170823162448_create_status_pins.rb' - - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb' - - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb' - - 'db/migrate/20170917153509_create_custom_emojis.rb' - - 'db/migrate/20170918125918_ids_to_bigints.rb' - - 'db/migrate/20171116161857_create_list_accounts.rb' - - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb' - - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb' - - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb' - - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' - - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' - - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180808175627_create_account_pins.rb' - - 'db/migrate/20180831171112_create_bookmarks.rb' - - 'db/migrate/20180929222014_create_account_conversations.rb' - - 'db/migrate/20181007025445_create_pghero_space_stats.rb' - - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb' - - 'db/migrate/20190316190352_create_account_identity_proofs.rb' - - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' - - 'db/migrate/20190820003045_update_statuses_index.rb' - - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' - - 'db/migrate/20190904222339_create_markers.rb' - - 'db/migrate/20200113125135_create_announcement_mutes.rb' - - 'db/migrate/20200114113335_create_announcement_reactions.rb' - - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' - - 'db/migrate/20200628133322_create_account_notes.rb' - - 'db/migrate/20200917222316_add_index_notifications_on_type.rb' - - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb' - - 'db/migrate/20220714171049_create_tag_follows.rb' - - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb' - - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' - - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb' - - 'spec/controllers/api/v1/streaming_controller_spec.rb' - - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb' - - 'spec/controllers/concerns/signature_verification_spec.rb' - - 'spec/fabricators/notification_fabricator.rb' - - 'spec/models/public_feed_spec.rb' From 922837dc96154b0455a4cf660c3f8369c65aacb4 Mon Sep 17 00:00:00 2001 From: Jean byroot Boussier Date: Sat, 4 Mar 2023 16:38:28 +0100 Subject: [PATCH 0590/1220] Upgrade to latest redis-rb 4.x and fix deprecations (#23616) Co-authored-by: Jean Boussier --- Gemfile.lock | 2 +- app/lib/feed_manager.rb | 20 +++++++++---------- .../follow_recommendation_suppression.rb | 4 ++-- app/services/batched_remove_status_service.rb | 18 ++++++++--------- .../follow_recommendations_scheduler.rb | 13 +++++------- config/environments/development.rb | 2 ++ config/environments/test.rb | 2 ++ config/initializers/redis.rb | 1 + .../20170920032311_fix_reblogs_in_feeds.rb | 2 +- ...00407202420_migrate_unavailable_inboxes.rb | 5 +++-- lib/mastodon/feeds_cli.rb | 6 +----- 11 files changed, 37 insertions(+), 38 deletions(-) create mode 100644 config/initializers/redis.rb diff --git a/Gemfile.lock b/Gemfile.lock index 51cf8147b0..b8b0943256 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -558,7 +558,7 @@ GEM rdf-normalize (0.5.1) rdf (~> 3.2) redcarpet (3.6.0) - redis (4.5.1) + redis (4.8.1) redis-namespace (1.10.0) redis (>= 4) redlock (1.3.2) diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 8d7540e0f7..7dda6b1853 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -273,27 +273,27 @@ class FeedManager def clean_feeds!(type, ids) reblogged_id_sets = {} - redis.pipelined do + redis.pipelined do |pipeline| ids.each do |feed_id| - redis.del(key(type, feed_id)) reblog_key = key(type, feed_id, 'reblogs') # We collect a future for this: we don't block while getting # it, but we can iterate over it later. - reblogged_id_sets[feed_id] = redis.zrange(reblog_key, 0, -1) - redis.del(reblog_key) + reblogged_id_sets[feed_id] = pipeline.zrange(reblog_key, 0, -1) + pipeline.del(key(type, feed_id), reblog_key) end end # Remove all of the reblog tracking keys we just removed the # references to. - redis.pipelined do - reblogged_id_sets.each do |feed_id, future| - future.value.each do |reblogged_id| - reblog_set_key = key(type, feed_id, "reblogs:#{reblogged_id}") - redis.del(reblog_set_key) - end + keys_to_delete = reblogged_id_sets.flat_map do |feed_id, future| + future.value.map do |reblogged_id| + key(type, feed_id, "reblogs:#{reblogged_id}") end end + + redis.del(keys_to_delete) unless keys_to_delete.empty? + + nil end private diff --git a/app/models/follow_recommendation_suppression.rb b/app/models/follow_recommendation_suppression.rb index a9dbbfc18f..e261a2fe35 100644 --- a/app/models/follow_recommendation_suppression.rb +++ b/app/models/follow_recommendation_suppression.rb @@ -20,9 +20,9 @@ class FollowRecommendationSuppression < ApplicationRecord private def remove_follow_recommendations - redis.pipelined do + redis.pipelined do |pipeline| I18n.available_locales.each do |locale| - redis.zrem("follow_recommendations:#{locale}", account_id) + pipeline.zrem("follow_recommendations:#{locale}", account_id) end end end diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb index 54e5f10a4f..7e9b671266 100644 --- a/app/services/batched_remove_status_service.rb +++ b/app/services/batched_remove_status_service.rb @@ -45,9 +45,9 @@ class BatchedRemoveStatusService < BaseService # Cannot be batched @status_id_cutoff = Mastodon::Snowflake.id_at(2.weeks.ago) - redis.pipelined do + redis.pipelined do |pipeline| statuses.each do |status| - unpush_from_public_timelines(status) + unpush_from_public_timelines(status, pipeline) end end end @@ -70,22 +70,22 @@ class BatchedRemoveStatusService < BaseService end end - def unpush_from_public_timelines(status) + def unpush_from_public_timelines(status, pipeline) return unless status.public_visibility? && status.id > @status_id_cutoff payload = Oj.dump(event: :delete, payload: status.id.to_s) - redis.publish('timeline:public', payload) - redis.publish(status.local? ? 'timeline:public:local' : 'timeline:public:remote', payload) + pipeline.publish('timeline:public', payload) + pipeline.publish(status.local? ? 'timeline:public:local' : 'timeline:public:remote', payload) if status.media_attachments.any? - redis.publish('timeline:public:media', payload) - redis.publish(status.local? ? 'timeline:public:local:media' : 'timeline:public:remote:media', payload) + pipeline.publish('timeline:public:media', payload) + pipeline.publish(status.local? ? 'timeline:public:local:media' : 'timeline:public:remote:media', payload) end status.tags.map { |tag| tag.name.mb_chars.downcase }.each do |hashtag| - redis.publish("timeline:hashtag:#{hashtag}", payload) - redis.publish("timeline:hashtag:#{hashtag}:local", payload) if status.local? + pipeline.publish("timeline:hashtag:#{hashtag}", payload) + pipeline.publish("timeline:hashtag:#{hashtag}:local", payload) if status.local? end end end diff --git a/app/workers/scheduler/follow_recommendations_scheduler.rb b/app/workers/scheduler/follow_recommendations_scheduler.rb index 04008a9d99..17cf3f2cc3 100644 --- a/app/workers/scheduler/follow_recommendations_scheduler.rb +++ b/app/workers/scheduler/follow_recommendations_scheduler.rb @@ -20,7 +20,7 @@ class Scheduler::FollowRecommendationsScheduler Trends.available_locales.each do |locale| recommendations = if AccountSummary.safe.filtered.localized(locale).exists? # We can skip the work if no accounts with that language exist - FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.account_id, recommendation.rank] } + FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.rank, recommendation.account_id] } else [] end @@ -33,14 +33,14 @@ class Scheduler::FollowRecommendationsScheduler # Language-specific results should be above language-agnostic ones, # otherwise language-agnostic ones will always overshadow them - recommendations.map! { |(account_id, rank)| [account_id, rank + max_fallback_rank] } + recommendations.map! { |(rank, account_id)| [rank + max_fallback_rank, account_id] } added = 0 fallback_recommendations.each do |recommendation| - next if recommendations.any? { |(account_id, _)| account_id == recommendation.account_id } + next if recommendations.any? { |(_, account_id)| account_id == recommendation.account_id } - recommendations << [recommendation.account_id, recommendation.rank] + recommendations << [recommendation.rank, recommendation.account_id] added += 1 break if added >= missing @@ -49,10 +49,7 @@ class Scheduler::FollowRecommendationsScheduler redis.multi do |multi| multi.del(key(locale)) - - recommendations.each do |(account_id, rank)| - multi.zadd(key(locale), rank, account_id) - end + multi.zadd(key(locale), recommendations) end end end diff --git a/config/environments/development.rb b/config/environments/development.rb index de8762ff74..29b17a3500 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -87,6 +87,8 @@ Rails.application.configure do config.x.otp_secret = ENV.fetch('OTP_SECRET', '1fc2b87989afa6351912abeebe31ffc5c476ead9bf8b3d74cbc4a302c7b69a45b40b1bbef3506ddad73e942e15ed5ca4b402bf9a66423626051104f4b5f05109') end +Redis.raise_deprecations = true + ActiveRecordQueryTrace.enabled = ENV['QUERY_TRACE_ENABLED'] == 'true' module PrivateAddressCheck diff --git a/config/environments/test.rb b/config/environments/test.rb index ef3cb2e487..9cbf31e8d7 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -73,3 +73,5 @@ end # Catch serialization warnings early Sidekiq.strict_args! + +Redis.raise_deprecations = true diff --git a/config/initializers/redis.rb b/config/initializers/redis.rb new file mode 100644 index 0000000000..f2bbd1e456 --- /dev/null +++ b/config/initializers/redis.rb @@ -0,0 +1 @@ +Redis.sadd_returns_boolean = false diff --git a/db/migrate/20170920032311_fix_reblogs_in_feeds.rb b/db/migrate/20170920032311_fix_reblogs_in_feeds.rb index 4ab68e8f32..7e2db0ff3e 100644 --- a/db/migrate/20170920032311_fix_reblogs_in_feeds.rb +++ b/db/migrate/20170920032311_fix_reblogs_in_feeds.rb @@ -1,6 +1,6 @@ class FixReblogsInFeeds < ActiveRecord::Migration[5.1] def up - redis = Redis.current + redis = RedisConfiguration.pool.checkout fm = FeedManager.instance # Old scheme: diff --git a/db/migrate/20200407202420_migrate_unavailable_inboxes.rb b/db/migrate/20200407202420_migrate_unavailable_inboxes.rb index 92a3acb5d1..8f9c687942 100644 --- a/db/migrate/20200407202420_migrate_unavailable_inboxes.rb +++ b/db/migrate/20200407202420_migrate_unavailable_inboxes.rb @@ -2,7 +2,8 @@ class MigrateUnavailableInboxes < ActiveRecord::Migration[5.2] disable_ddl_transaction! def up - urls = Redis.current.smembers('unavailable_inboxes') + redis = RedisConfiguration.pool.checkout + urls = redis.smembers('unavailable_inboxes') hosts = urls.map do |url| Addressable::URI.parse(url).normalized_host @@ -14,7 +15,7 @@ class MigrateUnavailableInboxes < ActiveRecord::Migration[5.2] UnavailableDomain.create(domain: host) end - Redis.current.del(*(['unavailable_inboxes'] + Redis.current.keys('exhausted_deliveries:*'))) + redis.del(*(['unavailable_inboxes'] + redis.keys('exhausted_deliveries:*'))) end def down; end diff --git a/lib/mastodon/feeds_cli.rb b/lib/mastodon/feeds_cli.rb index 428d63a446..fcfb487404 100644 --- a/lib/mastodon/feeds_cli.rb +++ b/lib/mastodon/feeds_cli.rb @@ -53,11 +53,7 @@ module Mastodon desc 'clear', 'Remove all home and list feeds from Redis' def clear keys = redis.keys('feed:*') - - redis.pipelined do - keys.each { |key| redis.del(key) } - end - + redis.del(keys) say('OK', :green) end end From f9c2213ae5e12f14a38506c728a9598b337969cb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 10:43:47 -0500 Subject: [PATCH 0591/1220] Models specs coverage (#23940) --- .../preview_card_provider_fabricator.rb | 5 +++ spec/models/account_warning_preset_spec.rb | 17 ++++++++ spec/models/extended_description_spec.rb | 29 +++++++++++++ spec/models/preview_card_provider_spec.rb | 42 +++++++++++++++++++ spec/models/privacy_policy_spec.rb | 28 +++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 spec/fabricators/preview_card_provider_fabricator.rb create mode 100644 spec/models/account_warning_preset_spec.rb create mode 100644 spec/models/extended_description_spec.rb create mode 100644 spec/models/preview_card_provider_spec.rb create mode 100644 spec/models/privacy_policy_spec.rb diff --git a/spec/fabricators/preview_card_provider_fabricator.rb b/spec/fabricators/preview_card_provider_fabricator.rb new file mode 100644 index 0000000000..78db710003 --- /dev/null +++ b/spec/fabricators/preview_card_provider_fabricator.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +Fabricator(:preview_card_provider) do + domain { Faker::Internet.domain_name } +end diff --git a/spec/models/account_warning_preset_spec.rb b/spec/models/account_warning_preset_spec.rb new file mode 100644 index 0000000000..f171df7c97 --- /dev/null +++ b/spec/models/account_warning_preset_spec.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe AccountWarningPreset do + describe 'alphabetical' do + let(:first) { Fabricate(:account_warning_preset, title: 'aaa', text: 'aaa') } + let(:second) { Fabricate(:account_warning_preset, title: 'bbb', text: 'aaa') } + let(:third) { Fabricate(:account_warning_preset, title: 'bbb', text: 'bbb') } + + it 'returns records in order of title and text' do + results = described_class.alphabetic + + expect(results).to eq([first, second, third]) + end + end +end diff --git a/spec/models/extended_description_spec.rb b/spec/models/extended_description_spec.rb new file mode 100644 index 0000000000..ecc27c0f6d --- /dev/null +++ b/spec/models/extended_description_spec.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ExtendedDescription do + describe '.current' do + context 'with the default values' do + it 'makes a new instance' do + record = described_class.current + + expect(record.text).to be_nil + expect(record.updated_at).to be_nil + end + end + + context 'with a custom setting value' do + before do + setting = instance_double(Setting, value: 'Extended text', updated_at: 10.days.ago) + allow(Setting).to receive(:find_by).with(var: 'site_extended_description').and_return(setting) + end + + it 'has the privacy text' do + record = described_class.current + + expect(record.text).to eq('Extended text') + end + end + end +end diff --git a/spec/models/preview_card_provider_spec.rb b/spec/models/preview_card_provider_spec.rb new file mode 100644 index 0000000000..7425b93946 --- /dev/null +++ b/spec/models/preview_card_provider_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PreviewCardProvider do + describe 'scopes' do + let(:trendable_and_reviewed) { Fabricate(:preview_card_provider, trendable: true, reviewed_at: 5.days.ago) } + let(:not_trendable_and_not_reviewed) { Fabricate(:preview_card_provider, trendable: false, reviewed_at: nil) } + + describe 'trendable' do + it 'returns the relevant records' do + results = described_class.trendable + + expect(results).to eq([trendable_and_reviewed]) + end + end + + describe 'not_trendable' do + it 'returns the relevant records' do + results = described_class.not_trendable + + expect(results).to eq([not_trendable_and_not_reviewed]) + end + end + + describe 'reviewed' do + it 'returns the relevant records' do + results = described_class.reviewed + + expect(results).to eq([trendable_and_reviewed]) + end + end + + describe 'pending_review' do + it 'returns the relevant records' do + results = described_class.pending_review + + expect(results).to eq([not_trendable_and_not_reviewed]) + end + end + end +end diff --git a/spec/models/privacy_policy_spec.rb b/spec/models/privacy_policy_spec.rb new file mode 100644 index 0000000000..0d74713755 --- /dev/null +++ b/spec/models/privacy_policy_spec.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PrivacyPolicy do + describe '.current' do + context 'with the default values' do + it 'has the privacy text' do + policy = described_class.current + + expect(policy.text).to eq(PrivacyPolicy::DEFAULT_PRIVACY_POLICY) + end + end + + context 'with a custom setting value' do + before do + terms_setting = instance_double(Setting, value: 'Terms text', updated_at: 10.days.ago) + allow(Setting).to receive(:find_by).with(var: 'site_terms').and_return(terms_setting) + end + + it 'has the privacy text' do + policy = described_class.current + + expect(policy.text).to eq('Terms text') + end + end + end +end From 39e7525c96962ad33b27d9cb4bd5fa8086060b75 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 10:56:09 -0500 Subject: [PATCH 0592/1220] Add basic coverage for some worker jobs (#23943) --- .../admin/account_deletion_worker_spec.rb | 19 +++++++++++++++++++ spec/workers/cache_buster_worker_spec.rb | 19 +++++++++++++++++++ .../poll_expiration_notify_worker_spec.rb | 13 +++++++++++++ .../workers/post_process_media_worker_spec.rb | 13 +++++++++++++ spec/workers/push_conversation_worker_spec.rb | 13 +++++++++++++ .../push_encrypted_message_worker_spec.rb | 13 +++++++++++++ spec/workers/push_update_worker_spec.rb | 16 ++++++++++++++++ spec/workers/redownload_avatar_worker_spec.rb | 13 +++++++++++++ spec/workers/redownload_header_worker_spec.rb | 13 +++++++++++++ .../remove_featured_tag_worker_spec.rb | 15 +++++++++++++++ spec/workers/resolve_account_worker_spec.rb | 13 +++++++++++++ .../scheduler/indexing_scheduler_spec.rb | 13 +++++++++++++ .../instance_refresh_scheduler_spec.rb | 13 +++++++++++++ .../scheduler/ip_cleanup_scheduler_spec.rb | 13 +++++++++++++ .../scheduler/pghero_scheduler_spec.rb | 13 +++++++++++++ .../scheduled_statuses_scheduler_spec.rb | 13 +++++++++++++ .../suspended_user_cleanup_scheduler_spec.rb | 13 +++++++++++++ .../trends/refresh_scheduler_spec.rb | 13 +++++++++++++ .../review_notifications_scheduler_spec.rb | 13 +++++++++++++ .../scheduler/vacuum_scheduler_spec.rb | 13 +++++++++++++ .../unpublish_announcement_worker_spec.rb | 13 +++++++++++++ spec/workers/webhooks/delivery_worker_spec.rb | 13 +++++++++++++ 22 files changed, 303 insertions(+) create mode 100644 spec/workers/admin/account_deletion_worker_spec.rb create mode 100644 spec/workers/cache_buster_worker_spec.rb create mode 100644 spec/workers/poll_expiration_notify_worker_spec.rb create mode 100644 spec/workers/post_process_media_worker_spec.rb create mode 100644 spec/workers/push_conversation_worker_spec.rb create mode 100644 spec/workers/push_encrypted_message_worker_spec.rb create mode 100644 spec/workers/push_update_worker_spec.rb create mode 100644 spec/workers/redownload_avatar_worker_spec.rb create mode 100644 spec/workers/redownload_header_worker_spec.rb create mode 100644 spec/workers/remove_featured_tag_worker_spec.rb create mode 100644 spec/workers/resolve_account_worker_spec.rb create mode 100644 spec/workers/scheduler/indexing_scheduler_spec.rb create mode 100644 spec/workers/scheduler/instance_refresh_scheduler_spec.rb create mode 100644 spec/workers/scheduler/ip_cleanup_scheduler_spec.rb create mode 100644 spec/workers/scheduler/pghero_scheduler_spec.rb create mode 100644 spec/workers/scheduler/scheduled_statuses_scheduler_spec.rb create mode 100644 spec/workers/scheduler/suspended_user_cleanup_scheduler_spec.rb create mode 100644 spec/workers/scheduler/trends/refresh_scheduler_spec.rb create mode 100644 spec/workers/scheduler/trends/review_notifications_scheduler_spec.rb create mode 100644 spec/workers/scheduler/vacuum_scheduler_spec.rb create mode 100644 spec/workers/unpublish_announcement_worker_spec.rb create mode 100644 spec/workers/webhooks/delivery_worker_spec.rb diff --git a/spec/workers/admin/account_deletion_worker_spec.rb b/spec/workers/admin/account_deletion_worker_spec.rb new file mode 100644 index 0000000000..631cab6648 --- /dev/null +++ b/spec/workers/admin/account_deletion_worker_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::AccountDeletionWorker do + let(:worker) { described_class.new } + + describe 'perform' do + let(:account) { Fabricate(:account) } + let(:service) { instance_double(DeleteAccountService, call: true) } + + it 'calls delete account service' do + allow(DeleteAccountService).to receive(:new).and_return(service) + worker.perform(account.id) + + expect(service).to have_received(:call).with(account, { reserve_email: true, reserve_username: true }) + end + end +end diff --git a/spec/workers/cache_buster_worker_spec.rb b/spec/workers/cache_buster_worker_spec.rb new file mode 100644 index 0000000000..adeb287fa3 --- /dev/null +++ b/spec/workers/cache_buster_worker_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe CacheBusterWorker do + let(:worker) { described_class.new } + + describe 'perform' do + let(:path) { 'https://example.com' } + let(:service) { instance_double(CacheBuster, bust: true) } + + it 'calls the cache buster' do + allow(CacheBuster).to receive(:new).and_return(service) + worker.perform(path) + + expect(service).to have_received(:bust).with(path) + end + end +end diff --git a/spec/workers/poll_expiration_notify_worker_spec.rb b/spec/workers/poll_expiration_notify_worker_spec.rb new file mode 100644 index 0000000000..8229db815d --- /dev/null +++ b/spec/workers/poll_expiration_notify_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PollExpirationNotifyWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/post_process_media_worker_spec.rb b/spec/workers/post_process_media_worker_spec.rb new file mode 100644 index 0000000000..33072704bf --- /dev/null +++ b/spec/workers/post_process_media_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PostProcessMediaWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/push_conversation_worker_spec.rb b/spec/workers/push_conversation_worker_spec.rb new file mode 100644 index 0000000000..5fbb4c6853 --- /dev/null +++ b/spec/workers/push_conversation_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PushConversationWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/push_encrypted_message_worker_spec.rb b/spec/workers/push_encrypted_message_worker_spec.rb new file mode 100644 index 0000000000..3cd04ce7b4 --- /dev/null +++ b/spec/workers/push_encrypted_message_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PushEncryptedMessageWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/push_update_worker_spec.rb b/spec/workers/push_update_worker_spec.rb new file mode 100644 index 0000000000..c8f94fa82a --- /dev/null +++ b/spec/workers/push_update_worker_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PushUpdateWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + account_id = nil + status_id = nil + + expect { worker.perform(account_id, status_id) }.to_not raise_error + end + end +end diff --git a/spec/workers/redownload_avatar_worker_spec.rb b/spec/workers/redownload_avatar_worker_spec.rb new file mode 100644 index 0000000000..b44ae9f035 --- /dev/null +++ b/spec/workers/redownload_avatar_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe RedownloadAvatarWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/redownload_header_worker_spec.rb b/spec/workers/redownload_header_worker_spec.rb new file mode 100644 index 0000000000..767ae7a5ab --- /dev/null +++ b/spec/workers/redownload_header_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe RedownloadHeaderWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/remove_featured_tag_worker_spec.rb b/spec/workers/remove_featured_tag_worker_spec.rb new file mode 100644 index 0000000000..a64bd0605f --- /dev/null +++ b/spec/workers/remove_featured_tag_worker_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe RemoveFeaturedTagWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + account_id = nil + featured_tag_id = nil + expect { worker.perform(account_id, featured_tag_id) }.to_not raise_error + end + end +end diff --git a/spec/workers/resolve_account_worker_spec.rb b/spec/workers/resolve_account_worker_spec.rb new file mode 100644 index 0000000000..6f3cff099f --- /dev/null +++ b/spec/workers/resolve_account_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ResolveAccountWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/indexing_scheduler_spec.rb b/spec/workers/scheduler/indexing_scheduler_spec.rb new file mode 100644 index 0000000000..568f0fc84d --- /dev/null +++ b/spec/workers/scheduler/indexing_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::IndexingScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/instance_refresh_scheduler_spec.rb b/spec/workers/scheduler/instance_refresh_scheduler_spec.rb new file mode 100644 index 0000000000..8f686a6998 --- /dev/null +++ b/spec/workers/scheduler/instance_refresh_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::InstanceRefreshScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/ip_cleanup_scheduler_spec.rb b/spec/workers/scheduler/ip_cleanup_scheduler_spec.rb new file mode 100644 index 0000000000..50af030117 --- /dev/null +++ b/spec/workers/scheduler/ip_cleanup_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::IpCleanupScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/pghero_scheduler_spec.rb b/spec/workers/scheduler/pghero_scheduler_spec.rb new file mode 100644 index 0000000000..e404e5fe47 --- /dev/null +++ b/spec/workers/scheduler/pghero_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::PgheroScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/scheduled_statuses_scheduler_spec.rb b/spec/workers/scheduler/scheduled_statuses_scheduler_spec.rb new file mode 100644 index 0000000000..13c853c62a --- /dev/null +++ b/spec/workers/scheduler/scheduled_statuses_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::ScheduledStatusesScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/suspended_user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/suspended_user_cleanup_scheduler_spec.rb new file mode 100644 index 0000000000..25f0e1fce4 --- /dev/null +++ b/spec/workers/scheduler/suspended_user_cleanup_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::SuspendedUserCleanupScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/trends/refresh_scheduler_spec.rb b/spec/workers/scheduler/trends/refresh_scheduler_spec.rb new file mode 100644 index 0000000000..c0c5f032bf --- /dev/null +++ b/spec/workers/scheduler/trends/refresh_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::Trends::RefreshScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/trends/review_notifications_scheduler_spec.rb b/spec/workers/scheduler/trends/review_notifications_scheduler_spec.rb new file mode 100644 index 0000000000..cc971c24b4 --- /dev/null +++ b/spec/workers/scheduler/trends/review_notifications_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::Trends::ReviewNotificationsScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/scheduler/vacuum_scheduler_spec.rb b/spec/workers/scheduler/vacuum_scheduler_spec.rb new file mode 100644 index 0000000000..36ecc93d8e --- /dev/null +++ b/spec/workers/scheduler/vacuum_scheduler_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Scheduler::VacuumScheduler do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform }.to_not raise_error + end + end +end diff --git a/spec/workers/unpublish_announcement_worker_spec.rb b/spec/workers/unpublish_announcement_worker_spec.rb new file mode 100644 index 0000000000..c742c30bce --- /dev/null +++ b/spec/workers/unpublish_announcement_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe UnpublishAnnouncementWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end diff --git a/spec/workers/webhooks/delivery_worker_spec.rb b/spec/workers/webhooks/delivery_worker_spec.rb new file mode 100644 index 0000000000..daf8a3e285 --- /dev/null +++ b/spec/workers/webhooks/delivery_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Webhooks::DeliveryWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error' do + expect { worker.perform(nil, nil) }.to_not raise_error + end + end +end From 6a57c423169d76301078948821c1da916dcdf75b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 10:56:43 -0500 Subject: [PATCH 0593/1220] Settings controllers specs (#23915) --- .../settings/aliases_controller_spec.rb | 21 ++++++++++++++++++ .../blocked_domains_controller_spec.rb | 20 +++++++++++++++++ .../settings/exports/lists_controller_spec.rb | 21 ++++++++++++++++++ .../login_activities_controller_spec.rb | 20 +++++++++++++++++ .../migration/redirects_controller_spec.rb | 20 +++++++++++++++++ .../settings/pictures_controller_spec.rb | 22 +++++++++++++++++++ .../preferences/appearance_controller_spec.rb | 20 +++++++++++++++++ 7 files changed, 144 insertions(+) create mode 100644 spec/controllers/settings/aliases_controller_spec.rb create mode 100644 spec/controllers/settings/exports/blocked_domains_controller_spec.rb create mode 100644 spec/controllers/settings/exports/lists_controller_spec.rb create mode 100644 spec/controllers/settings/login_activities_controller_spec.rb create mode 100644 spec/controllers/settings/migration/redirects_controller_spec.rb create mode 100644 spec/controllers/settings/pictures_controller_spec.rb create mode 100644 spec/controllers/settings/preferences/appearance_controller_spec.rb diff --git a/spec/controllers/settings/aliases_controller_spec.rb b/spec/controllers/settings/aliases_controller_spec.rb new file mode 100644 index 0000000000..805f659886 --- /dev/null +++ b/spec/controllers/settings/aliases_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::AliasesController do + render_views + + let!(:user) { Fabricate(:user) } + let(:account) { user.account } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/settings/exports/blocked_domains_controller_spec.rb b/spec/controllers/settings/exports/blocked_domains_controller_spec.rb new file mode 100644 index 0000000000..ac72fd9dd7 --- /dev/null +++ b/spec/controllers/settings/exports/blocked_domains_controller_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::Exports::BlockedDomainsController do + render_views + + describe 'GET #index' do + it 'returns a csv of the domains' do + account = Fabricate(:account, domain: 'example.com') + user = Fabricate(:user, account: account) + Fabricate(:account_domain_block, domain: 'example.com', account: account) + + sign_in user, scope: :user + get :index, format: :csv + + expect(response.body).to eq "example.com\n" + end + end +end diff --git a/spec/controllers/settings/exports/lists_controller_spec.rb b/spec/controllers/settings/exports/lists_controller_spec.rb new file mode 100644 index 0000000000..29623ba499 --- /dev/null +++ b/spec/controllers/settings/exports/lists_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::Exports::ListsController do + render_views + + describe 'GET #index' do + it 'returns a csv of the domains' do + account = Fabricate(:account) + user = Fabricate(:user, account: account) + list = Fabricate(:list, account: account, title: 'The List') + Fabricate(:list_account, list: list, account: account) + + sign_in user, scope: :user + get :index, format: :csv + + expect(response.body).to match 'The List' + end + end +end diff --git a/spec/controllers/settings/login_activities_controller_spec.rb b/spec/controllers/settings/login_activities_controller_spec.rb new file mode 100644 index 0000000000..6f1f3de314 --- /dev/null +++ b/spec/controllers/settings/login_activities_controller_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::LoginActivitiesController do + render_views + + let!(:user) { Fabricate(:user) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/settings/migration/redirects_controller_spec.rb b/spec/controllers/settings/migration/redirects_controller_spec.rb new file mode 100644 index 0000000000..50d9e1927b --- /dev/null +++ b/spec/controllers/settings/migration/redirects_controller_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::Migration::RedirectsController do + render_views + + let!(:user) { Fabricate(:user) } + + before do + sign_in user, scope: :user + end + + describe 'GET #new' do + it 'returns http success' do + get :new + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/settings/pictures_controller_spec.rb b/spec/controllers/settings/pictures_controller_spec.rb new file mode 100644 index 0000000000..2368dc55dd --- /dev/null +++ b/spec/controllers/settings/pictures_controller_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::PicturesController do + render_views + + let!(:user) { Fabricate(:user) } + + before do + sign_in user, scope: :user + end + + describe 'DELETE #destroy' do + context 'with invalid picture id' do + it 'returns http bad request' do + delete :destroy, params: { id: 'invalid' } + expect(response).to have_http_status(400) + end + end + end +end diff --git a/spec/controllers/settings/preferences/appearance_controller_spec.rb b/spec/controllers/settings/preferences/appearance_controller_spec.rb new file mode 100644 index 0000000000..7c7f716b71 --- /dev/null +++ b/spec/controllers/settings/preferences/appearance_controller_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Settings::Preferences::AppearanceController do + render_views + + let!(:user) { Fabricate(:user) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + expect(response).to have_http_status(200) + end + end +end From 00eb2269b691b90f361dd03454cf823934389282 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 10:57:22 -0500 Subject: [PATCH 0594/1220] Policies specs (#23924) --- spec/policies/account_policy_spec.rb | 40 +++++++++++++++ .../account_warning_preset_policy_spec.rb | 24 +++++++++ spec/policies/admin/status_policy_spec.rb | 51 +++++++++++++++++++ spec/policies/announcement_policy_spec.rb | 24 +++++++++ spec/policies/appeal_policy_spec.rb | 51 +++++++++++++++++++ .../canonical_email_block_policy_spec.rb | 24 +++++++++ spec/policies/delivery_policy_spec.rb | 24 +++++++++ .../email_domain_block_policy_spec.rb | 2 +- .../follow_recommendation_policy_spec.rb | 24 +++++++++ spec/policies/ip_block_policy_spec.rb | 24 +++++++++ spec/policies/preview_card_policy_spec.rb | 24 +++++++++ .../preview_card_provider_policy_spec.rb | 24 +++++++++ spec/policies/rule_policy_spec.rb | 24 +++++++++ spec/policies/settings_policy_spec.rb | 2 +- spec/policies/status_policy_spec.rb | 8 +++ spec/policies/tag_policy_spec.rb | 2 +- spec/policies/webhook_policy_spec.rb | 24 +++++++++ 17 files changed, 393 insertions(+), 3 deletions(-) create mode 100644 spec/policies/account_warning_preset_policy_spec.rb create mode 100644 spec/policies/admin/status_policy_spec.rb create mode 100644 spec/policies/announcement_policy_spec.rb create mode 100644 spec/policies/appeal_policy_spec.rb create mode 100644 spec/policies/canonical_email_block_policy_spec.rb create mode 100644 spec/policies/delivery_policy_spec.rb create mode 100644 spec/policies/follow_recommendation_policy_spec.rb create mode 100644 spec/policies/ip_block_policy_spec.rb create mode 100644 spec/policies/preview_card_policy_spec.rb create mode 100644 spec/policies/preview_card_provider_policy_spec.rb create mode 100644 spec/policies/rule_policy_spec.rb create mode 100644 spec/policies/webhook_policy_spec.rb diff --git a/spec/policies/account_policy_spec.rb b/spec/policies/account_policy_spec.rb index 0f23fd97e2..d961532332 100644 --- a/spec/policies/account_policy_spec.rb +++ b/spec/policies/account_policy_spec.rb @@ -116,4 +116,44 @@ RSpec.describe AccountPolicy do end end end + + permissions :review? do + context 'admin' do + it 'permits' do + expect(subject).to permit(admin) + end + end + + context 'not admin' do + it 'denies' do + expect(subject).to_not permit(john) + end + end + end + + permissions :destroy? do + context 'admin' do + context 'with a temporarily suspended account' do + before { allow(alice).to receive(:suspended_temporarily?).and_return(true) } + + it 'permits' do + expect(subject).to permit(admin, alice) + end + end + + context 'with a not temporarily suspended account' do + before { allow(alice).to receive(:suspended_temporarily?).and_return(false) } + + it 'denies' do + expect(subject).to_not permit(admin, alice) + end + end + end + + context 'not admin' do + it 'denies' do + expect(subject).to_not permit(john, alice) + end + end + end end diff --git a/spec/policies/account_warning_preset_policy_spec.rb b/spec/policies/account_warning_preset_policy_spec.rb new file mode 100644 index 0000000000..63bf33de24 --- /dev/null +++ b/spec/policies/account_warning_preset_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe AccountWarningPresetPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :create?, :update?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/admin/status_policy_spec.rb b/spec/policies/admin/status_policy_spec.rb new file mode 100644 index 0000000000..9e81a4f5f1 --- /dev/null +++ b/spec/policies/admin/status_policy_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe Admin::StatusPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + let(:status) { Fabricate(:status) } + + permissions :index?, :update?, :review?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end + + permissions :show? do + context 'with an admin' do + context 'with a public visible status' do + before { allow(status).to receive(:public_visibility?).and_return(true) } + + it 'permits' do + expect(policy).to permit(admin, status) + end + end + + context 'with a not public visible status' do + before { allow(status).to receive(:public_visibility?).and_return(false) } + + it 'denies' do + expect(policy).to_not permit(admin, status) + end + end + end + + context 'with a non admin' do + it 'denies' do + expect(policy).to_not permit(john, status) + end + end + end +end diff --git a/spec/policies/announcement_policy_spec.rb b/spec/policies/announcement_policy_spec.rb new file mode 100644 index 0000000000..3d230b3cb4 --- /dev/null +++ b/spec/policies/announcement_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe AnnouncementPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :create?, :update?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/appeal_policy_spec.rb b/spec/policies/appeal_policy_spec.rb new file mode 100644 index 0000000000..d7498eb9f0 --- /dev/null +++ b/spec/policies/appeal_policy_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe AppealPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + let(:appeal) { Fabricate(:appeal) } + + permissions :index? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end + + permissions :reject? do + context 'with an admin' do + context 'with a pending appeal' do + before { allow(appeal).to receive(:pending?).and_return(true) } + + it 'permits' do + expect(policy).to permit(admin, appeal) + end + end + + context 'with a not pending appeal' do + before { allow(appeal).to receive(:pending?).and_return(false) } + + it 'denies' do + expect(policy).to_not permit(admin, appeal) + end + end + end + + context 'with a non admin' do + it 'denies' do + expect(policy).to_not permit(john, appeal) + end + end + end +end diff --git a/spec/policies/canonical_email_block_policy_spec.rb b/spec/policies/canonical_email_block_policy_spec.rb new file mode 100644 index 0000000000..0e55febfa9 --- /dev/null +++ b/spec/policies/canonical_email_block_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe CanonicalEmailBlockPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :show?, :test?, :create?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/delivery_policy_spec.rb b/spec/policies/delivery_policy_spec.rb new file mode 100644 index 0000000000..fbcbf390d7 --- /dev/null +++ b/spec/policies/delivery_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe DeliveryPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :clear_delivery_errors?, :restart_delivery?, :stop_delivery? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/email_domain_block_policy_spec.rb b/spec/policies/email_domain_block_policy_spec.rb index 913075c3d2..e7c455907a 100644 --- a/spec/policies/email_domain_block_policy_spec.rb +++ b/spec/policies/email_domain_block_policy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe EmailDomainBlockPolicy do let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } let(:john) { Fabricate(:account) } - permissions :index?, :create?, :destroy? do + permissions :index?, :show?, :create?, :destroy? do context 'admin' do it 'permits' do expect(subject).to permit(admin, EmailDomainBlock) diff --git a/spec/policies/follow_recommendation_policy_spec.rb b/spec/policies/follow_recommendation_policy_spec.rb new file mode 100644 index 0000000000..01f4da0be2 --- /dev/null +++ b/spec/policies/follow_recommendation_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe FollowRecommendationPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :show?, :suppress?, :unsuppress? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/ip_block_policy_spec.rb b/spec/policies/ip_block_policy_spec.rb new file mode 100644 index 0000000000..3cfa85863c --- /dev/null +++ b/spec/policies/ip_block_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe IpBlockPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :show?, :create?, :update?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/preview_card_policy_spec.rb b/spec/policies/preview_card_policy_spec.rb new file mode 100644 index 0000000000..d6675c5b34 --- /dev/null +++ b/spec/policies/preview_card_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe PreviewCardPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :review? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/preview_card_provider_policy_spec.rb b/spec/policies/preview_card_provider_policy_spec.rb new file mode 100644 index 0000000000..8d3715de95 --- /dev/null +++ b/spec/policies/preview_card_provider_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe PreviewCardProviderPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :review? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/rule_policy_spec.rb b/spec/policies/rule_policy_spec.rb new file mode 100644 index 0000000000..0e45f6df02 --- /dev/null +++ b/spec/policies/rule_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe RulePolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :create?, :update?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end diff --git a/spec/policies/settings_policy_spec.rb b/spec/policies/settings_policy_spec.rb index e16ee51a48..3268c16225 100644 --- a/spec/policies/settings_policy_spec.rb +++ b/spec/policies/settings_policy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe SettingsPolicy do let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } let(:john) { Fabricate(:account) } - permissions :update?, :show? do + permissions :update?, :show?, :destroy? do context 'admin?' do it 'permits' do expect(subject).to permit(admin, Settings) diff --git a/spec/policies/status_policy_spec.rb b/spec/policies/status_policy_spec.rb index b88521708a..9ae54780eb 100644 --- a/spec/policies/status_policy_spec.rb +++ b/spec/policies/status_policy_spec.rb @@ -39,6 +39,14 @@ RSpec.describe StatusPolicy, type: :model do expect(subject).to permit(alice, status) end + it 'grants access when direct and non-owner viewer is mentioned and mentions are loaded' do + status.visibility = :direct + status.mentions = [Fabricate(:mention, account: bob)] + status.mentions.load + + expect(subject).to permit(bob, status) + end + it 'denies access when direct and viewer is not mentioned' do viewer = Fabricate(:account) status.visibility = :direct diff --git a/spec/policies/tag_policy_spec.rb b/spec/policies/tag_policy_spec.rb index 9be7140fc2..fb09fdd3be 100644 --- a/spec/policies/tag_policy_spec.rb +++ b/spec/policies/tag_policy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe TagPolicy do let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } let(:john) { Fabricate(:account) } - permissions :index?, :show?, :update? do + permissions :index?, :show?, :update?, :review? do context 'staff?' do it 'permits' do expect(subject).to permit(admin, Tag) diff --git a/spec/policies/webhook_policy_spec.rb b/spec/policies/webhook_policy_spec.rb new file mode 100644 index 0000000000..1eac8932d4 --- /dev/null +++ b/spec/policies/webhook_policy_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +describe WebhookPolicy do + let(:policy) { described_class } + let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + let(:john) { Fabricate(:account) } + + permissions :index?, :create?, :show?, :update?, :enable?, :disable?, :rotate_secret?, :destroy? do + context 'with an admin' do + it 'permits' do + expect(policy).to permit(admin, Tag) + end + end + + context 'with a non-admin' do + it 'denies' do + expect(policy).to_not permit(john, Tag) + end + end + end +end From 2f606ba1220edf29e805296939f4e5612721bbf0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 10:58:11 -0500 Subject: [PATCH 0595/1220] Helpers specs coverage improvement (#23937) --- .../account_moderation_notes_helper_spec.rb | 10 ++- spec/helpers/admin/dashboard_helper_spec.rb | 69 +++++++++++++++++++ spec/helpers/languages_helper_spec.rb | 48 +++++++++++-- spec/helpers/settings_helper_spec.rb | 37 ++++++++++ spec/helpers/statuses_helper_spec.rb | 62 +++++++++++++++++ 5 files changed, 216 insertions(+), 10 deletions(-) create mode 100644 spec/helpers/admin/dashboard_helper_spec.rb create mode 100644 spec/helpers/settings_helper_spec.rb diff --git a/spec/helpers/admin/account_moderation_notes_helper_spec.rb b/spec/helpers/admin/account_moderation_notes_helper_spec.rb index 622ce88065..e01eba51da 100644 --- a/spec/helpers/admin/account_moderation_notes_helper_spec.rb +++ b/spec/helpers/admin/account_moderation_notes_helper_spec.rb @@ -42,13 +42,11 @@ RSpec.describe Admin::AccountModerationNotesHelper, type: :helper do let(:account) { Fabricate(:account) } it 'calls #link_to' do - expect(helper).to receive(:link_to).with( - admin_account_path(account.id), - class: name_tag_classes(account, true), - title: account.acct - ) + result = helper.admin_account_inline_link_to(account) - helper.admin_account_inline_link_to(account) + expect(result).to match(name_tag_classes(account, true)) + expect(result).to match(account.acct) + expect(result).to match(admin_account_path(account.id)) end end end diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb new file mode 100644 index 0000000000..59062e4839 --- /dev/null +++ b/spec/helpers/admin/dashboard_helper_spec.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::DashboardHelper do + describe 'relevant_account_timestamp' do + context 'with an account with older sign in' do + let(:account) { Fabricate(:account) } + let(:stamp) { 10.days.ago } + + it 'returns a time element' do + account.user.update(current_sign_in_at: stamp) + result = helper.relevant_account_timestamp(account) + + expect(result).to match('time-ago') + expect(result).to match(I18n.l(stamp)) + end + end + + context 'with an account with newer sign in' do + let(:account) { Fabricate(:account) } + + it 'returns a time element' do + account.user.update(current_sign_in_at: 10.hours.ago) + result = helper.relevant_account_timestamp(account) + + expect(result).to eq(I18n.t('generic.today')) + end + end + + context 'with an account where the user is pending' do + let(:account) { Fabricate(:account) } + + it 'returns a time element' do + account.user.update(current_sign_in_at: nil) + account.user.update(approved: false) + result = helper.relevant_account_timestamp(account) + + expect(result).to match('time-ago') + expect(result).to match(I18n.l(account.user.created_at)) + end + end + + context 'with an account with a last status value' do + let(:account) { Fabricate(:account) } + let(:stamp) { 5.minutes.ago } + + it 'returns a time element' do + account.user.update(current_sign_in_at: nil) + account.account_stat.update(last_status_at: stamp) + result = helper.relevant_account_timestamp(account) + + expect(result).to match('time-ago') + expect(result).to match(I18n.l(stamp)) + end + end + + context 'with an account without sign in or last status or pending' do + let(:account) { Fabricate(:account) } + + it 'returns a time element' do + account.user.update(current_sign_in_at: nil) + result = helper.relevant_account_timestamp(account) + + expect(result).to eq('-') + end + end + end +end diff --git a/spec/helpers/languages_helper_spec.rb b/spec/helpers/languages_helper_spec.rb index 217c9b2397..98c8064a33 100644 --- a/spec/helpers/languages_helper_spec.rb +++ b/spec/helpers/languages_helper_spec.rb @@ -10,14 +10,54 @@ describe LanguagesHelper do end describe 'native_locale_name' do - it 'finds the human readable native name from a key' do - expect(helper.native_locale_name(:de)).to eq('Deutsch') + context 'with a blank locale' do + it 'defaults to a generic value' do + expect(helper.native_locale_name(nil)).to eq(I18n.t('generic.none')) + end + end + + context 'with a locale of `und`' do + it 'defaults to a generic value' do + expect(helper.native_locale_name('und')).to eq(I18n.t('generic.none')) + end + end + + context 'with a supported locale' do + it 'finds the human readable native name from a key' do + expect(helper.native_locale_name(:de)).to eq('Deutsch') + end + end + + context 'with a regional locale' do + it 'finds the human readable regional name from a key' do + expect(helper.native_locale_name('en-GB')).to eq('English (British)') + end + end + + context 'with a non-existent locale' do + it 'returns the supplied locale value' do + expect(helper.native_locale_name(:xxx)).to eq(:xxx) + end end end describe 'standard_locale_name' do - it 'finds the human readable standard name from a key' do - expect(helper.standard_locale_name(:de)).to eq('German') + context 'with a blank locale' do + it 'defaults to a generic value' do + expect(helper.standard_locale_name(nil)).to eq(I18n.t('generic.none')) + end + end + + context 'with a non-existent locale' do + it 'returns the supplied locale value' do + expect(helper.standard_locale_name(:xxx)).to eq(:xxx) + end + end + + context 'with a supported locale' do + it 'finds the human readable standard name from a key' do + expect(helper.standard_locale_name(:de)).to eq('German') + end end end end diff --git a/spec/helpers/settings_helper_spec.rb b/spec/helpers/settings_helper_spec.rb new file mode 100644 index 0000000000..cba5c6ee89 --- /dev/null +++ b/spec/helpers/settings_helper_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe SettingsHelper do + describe 'session_device_icon' do + context 'with a mobile device' do + let(:session) { SessionActivation.new(user_agent: 'Mozilla/5.0 (iPhone)') } + + it 'detects the device and returns a descriptive string' do + result = helper.session_device_icon(session) + + expect(result).to eq('mobile') + end + end + + context 'with a tablet device' do + let(:session) { SessionActivation.new(user_agent: 'Mozilla/5.0 (iPad)') } + + it 'detects the device and returns a descriptive string' do + result = helper.session_device_icon(session) + + expect(result).to eq('tablet') + end + end + + context 'with a desktop device' do + let(:session) { SessionActivation.new(user_agent: 'Mozilla/5.0 (Macintosh)') } + + it 'detects the device and returns a descriptive string' do + result = helper.session_device_icon(session) + + expect(result).to eq('desktop') + end + end + end +end diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb index ce2a4680e0..c8ca2ed323 100644 --- a/spec/helpers/statuses_helper_spec.rb +++ b/spec/helpers/statuses_helper_spec.rb @@ -3,6 +3,68 @@ require 'rails_helper' RSpec.describe StatusesHelper, type: :helper do + describe 'link_to_newer' do + it 'returns a link to newer content' do + url = 'https://example.com' + result = helper.link_to_newer(url) + + expect(result).to match('load-more') + expect(result).to match(I18n.t('statuses.show_newer')) + end + end + + describe 'link_to_older' do + it 'returns a link to older content' do + url = 'https://example.com' + result = helper.link_to_older(url) + + expect(result).to match('load-more') + expect(result).to match(I18n.t('statuses.show_older')) + end + end + + describe 'fa_visibility_icon' do + context 'with a status that is public' do + let(:status) { Status.new(visibility: 'public') } + + it 'returns the correct fa icon' do + result = helper.fa_visibility_icon(status) + + expect(result).to match('fa-globe') + end + end + + context 'with a status that is unlisted' do + let(:status) { Status.new(visibility: 'unlisted') } + + it 'returns the correct fa icon' do + result = helper.fa_visibility_icon(status) + + expect(result).to match('fa-unlock') + end + end + + context 'with a status that is private' do + let(:status) { Status.new(visibility: 'private') } + + it 'returns the correct fa icon' do + result = helper.fa_visibility_icon(status) + + expect(result).to match('fa-lock') + end + end + + context 'with a status that is direct' do + let(:status) { Status.new(visibility: 'direct') } + + it 'returns the correct fa icon' do + result = helper.fa_visibility_icon(status) + + expect(result).to match('fa-at') + end + end + end + describe '#stream_link_target' do it 'returns nil if it is not an embedded view' do set_not_embedded_view From c40d5e5a8fb02f2c603a23a1b0130b3f86a15710 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:00:00 -0500 Subject: [PATCH 0596/1220] Misc coverage improvements for validators (#23928) --- app/validators/ed25519_key_validator.rb | 2 +- app/validators/ed25519_signature_validator.rb | 2 +- spec/models/import_spec.rb | 5 +++++ spec/models/one_time_key_spec.rb | 19 ++++++++++++++++++- spec/validators/email_mx_validator_spec.rb | 16 ++++++++++++++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/app/validators/ed25519_key_validator.rb b/app/validators/ed25519_key_validator.rb index 00a448d5a2..adf49296b2 100644 --- a/app/validators/ed25519_key_validator.rb +++ b/app/validators/ed25519_key_validator.rb @@ -6,7 +6,7 @@ class Ed25519KeyValidator < ActiveModel::EachValidator key = Base64.decode64(value) - record.errors[attribute] << I18n.t('crypto.errors.invalid_key') unless verified?(key) + record.errors.add(attribute, I18n.t('crypto.errors.invalid_key')) unless verified?(key) end private diff --git a/app/validators/ed25519_signature_validator.rb b/app/validators/ed25519_signature_validator.rb index 77a21b8373..0e74c231ec 100644 --- a/app/validators/ed25519_signature_validator.rb +++ b/app/validators/ed25519_signature_validator.rb @@ -8,7 +8,7 @@ class Ed25519SignatureValidator < ActiveModel::EachValidator signature = Base64.decode64(value) message = option_to_value(record, :message) - record.errors[attribute] << I18n.t('crypto.errors.invalid_signature') unless verified?(verify_key, signature, message) + record.errors.add(attribute, I18n.t('crypto.errors.invalid_signature')) unless verified?(verify_key, signature, message) end private diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index 81c75a9641..1c84744138 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -23,6 +23,11 @@ RSpec.describe Import, type: :model do expect(import).to model_have_error_on_field(:data) end + it 'is invalid with malformed data' do + import = Import.create(account: account, type: type, data: StringIO.new('\"test')) + expect(import).to model_have_error_on_field(:data) + end + it 'is invalid with too many rows in data' do import = Import.create(account: account, type: type, data: StringIO.new("foo@bar.com\n" * (ImportService::ROWS_PROCESSING_LIMIT + 10))) expect(import).to model_have_error_on_field(:data) diff --git a/spec/models/one_time_key_spec.rb b/spec/models/one_time_key_spec.rb index 2a5fe8a9d9..6ff7ffc5c1 100644 --- a/spec/models/one_time_key_spec.rb +++ b/spec/models/one_time_key_spec.rb @@ -2,5 +2,22 @@ require 'rails_helper' -RSpec.describe OneTimeKey, type: :model do +describe OneTimeKey do + describe 'validations' do + context 'with an invalid signature' do + let(:one_time_key) { Fabricate.build(:one_time_key, signature: 'wrong!') } + + it 'is invalid' do + expect(one_time_key).to_not be_valid + end + end + + context 'with an invalid key' do + let(:one_time_key) { Fabricate.build(:one_time_key, key: 'wrong!') } + + it 'is invalid' do + expect(one_time_key).to_not be_valid + end + end + end end diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb index ffb6851d09..a11b8e01e0 100644 --- a/spec/validators/email_mx_validator_spec.rb +++ b/spec/validators/email_mx_validator_spec.rb @@ -41,6 +41,22 @@ describe EmailMxValidator do expect(user.errors).to_not have_received(:add) end + it 'adds an error if the TagManager fails to normalize domain' do + double = instance_double(TagManager) + allow(TagManager).to receive(:instance).and_return(double) + allow(double).to receive(:normalize_domain).with('example.com').and_raise(Addressable::URI::InvalidURIError) + + user = double(email: 'foo@example.com', errors: double(add: nil)) + subject.validate(user) + expect(user.errors).to have_received(:add) + end + + it 'adds an error if the domain email portion is blank' do + user = double(email: 'foo@', errors: double(add: nil)) + subject.validate(user) + expect(user.errors).to have_received(:add) + end + it 'adds an error if the email domain name contains empty labels' do resolver = double From cd99fa8cebc6efa059b4fca743d517c88f8d9686 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:12:09 -0500 Subject: [PATCH 0597/1220] Fabricator specs (#23925) --- spec/fabricators/account_alias_fabricator.rb | 7 ------- .../account_deletion_request_fabricator.rb | 5 ----- spec/fabricators/account_migration_fabricator.rb | 1 + .../account_moderation_note_fabricator.rb | 3 ++- spec/fabricators/account_pin_fabricator.rb | 5 +++-- spec/fabricators/account_stat_fabricator.rb | 8 ++++---- spec/fabricators/account_tag_stat_fabricator.rb | 5 ----- .../account_warning_preset_fabricator.rb | 5 ----- spec/fabricators/admin_action_log_fabricator.rb | 2 +- spec/fabricators/announcement_mute_fabricator.rb | 6 ------ .../fabricators/announcement_reaction_fabricator.rb | 7 ------- spec/fabricators/conversation_account_fabricator.rb | 8 -------- spec/fabricators/conversation_mute_fabricator.rb | 4 ---- .../fabricators/custom_emoji_category_fabricator.rb | 5 ----- spec/fabricators/encrypted_message_fabricator.rb | 10 ---------- spec/fabricators/featured_tag_fabricator.rb | 8 -------- .../follow_recommendation_suppression_fabricator.rb | 5 ----- spec/fabricators/identity_fabricator.rb | 2 +- spec/fabricators/import_fabricator.rb | 4 ---- spec/fabricators/ip_block_fabricator.rb | 8 -------- spec/fabricators/list_account_fabricator.rb | 7 ------- spec/fabricators/one_time_key_fabricator.rb | 13 ------------- spec/fabricators/setting_fabricator.rb | 1 + spec/fabricators/site_upload_fabricator.rb | 1 + spec/fabricators/status_edit_fabricator.rb | 9 --------- spec/fabricators/status_stat_fabricator.rb | 8 -------- spec/fabricators/unavailable_domain_fabricator.rb | 2 +- spec/fabricators/user_invite_request_fabricator.rb | 6 ------ spec/fabricators/web_setting_fabricator.rb | 4 ---- spec/fabricators_spec.rb | 12 ++++++++++++ spec/models/account_spec.rb | 6 ------ spec/models/block_spec.rb | 5 ----- spec/models/domain_block_spec.rb | 5 ----- spec/models/email_domain_block_spec.rb | 7 ------- spec/models/follow_spec.rb | 5 ----- spec/models/mention_spec.rb | 5 ----- spec/models/report_spec.rb | 6 ------ 37 files changed, 27 insertions(+), 183 deletions(-) delete mode 100644 spec/fabricators/account_alias_fabricator.rb delete mode 100644 spec/fabricators/account_deletion_request_fabricator.rb delete mode 100644 spec/fabricators/account_tag_stat_fabricator.rb delete mode 100644 spec/fabricators/account_warning_preset_fabricator.rb delete mode 100644 spec/fabricators/announcement_mute_fabricator.rb delete mode 100644 spec/fabricators/announcement_reaction_fabricator.rb delete mode 100644 spec/fabricators/conversation_account_fabricator.rb delete mode 100644 spec/fabricators/conversation_mute_fabricator.rb delete mode 100644 spec/fabricators/custom_emoji_category_fabricator.rb delete mode 100644 spec/fabricators/encrypted_message_fabricator.rb delete mode 100644 spec/fabricators/featured_tag_fabricator.rb delete mode 100644 spec/fabricators/follow_recommendation_suppression_fabricator.rb delete mode 100644 spec/fabricators/import_fabricator.rb delete mode 100644 spec/fabricators/ip_block_fabricator.rb delete mode 100644 spec/fabricators/list_account_fabricator.rb delete mode 100644 spec/fabricators/one_time_key_fabricator.rb delete mode 100644 spec/fabricators/status_edit_fabricator.rb delete mode 100644 spec/fabricators/status_stat_fabricator.rb delete mode 100644 spec/fabricators/user_invite_request_fabricator.rb delete mode 100644 spec/fabricators/web_setting_fabricator.rb create mode 100644 spec/fabricators_spec.rb diff --git a/spec/fabricators/account_alias_fabricator.rb b/spec/fabricators/account_alias_fabricator.rb deleted file mode 100644 index 4f434c078a..0000000000 --- a/spec/fabricators/account_alias_fabricator.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:account_alias) do - account - acct 'test@example.com' - uri 'https://example.com/users/test' -end diff --git a/spec/fabricators/account_deletion_request_fabricator.rb b/spec/fabricators/account_deletion_request_fabricator.rb deleted file mode 100644 index 3d3d373988..0000000000 --- a/spec/fabricators/account_deletion_request_fabricator.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:account_deletion_request) do - account -end diff --git a/spec/fabricators/account_migration_fabricator.rb b/spec/fabricators/account_migration_fabricator.rb index fd453f6d2a..ae6143a65c 100644 --- a/spec/fabricators/account_migration_fabricator.rb +++ b/spec/fabricators/account_migration_fabricator.rb @@ -5,4 +5,5 @@ Fabricator(:account_migration) do target_account { |attrs| Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(attrs[:account])]) } acct { |attrs| attrs[:target_account].acct } followers_count 1234 + created_at { 60.days.ago } end diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb index 403870db6d..341a24dea0 100644 --- a/spec/fabricators/account_moderation_note_fabricator.rb +++ b/spec/fabricators/account_moderation_note_fabricator.rb @@ -2,5 +2,6 @@ Fabricator(:account_moderation_note) do content 'MyText' - account nil + account + target_account { Fabricate(:account) } end diff --git a/spec/fabricators/account_pin_fabricator.rb b/spec/fabricators/account_pin_fabricator.rb index 7d8a77bb54..32a5f3bdb8 100644 --- a/spec/fabricators/account_pin_fabricator.rb +++ b/spec/fabricators/account_pin_fabricator.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true Fabricator(:account_pin) do - account nil - target_account nil + account + target_account(fabricator: :account) + before_create { |account_pin, _| account_pin.account.follow!(account_pin.target_account) } end diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb index 45b1524ef3..e6085c5f2b 100644 --- a/spec/fabricators/account_stat_fabricator.rb +++ b/spec/fabricators/account_stat_fabricator.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true Fabricator(:account_stat) do - account nil - statuses_count '' - following_count '' - followers_count '' + account + statuses_count '123' + following_count '456' + followers_count '789' end diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb deleted file mode 100644 index 769015bd02..0000000000 --- a/spec/fabricators/account_tag_stat_fabricator.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:account_tag_stat) do - accounts_count '' -end diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb deleted file mode 100644 index 7588e7f9cf..0000000000 --- a/spec/fabricators/account_warning_preset_fabricator.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:account_warning_preset) do - text 'MyText' -end diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb index eb738c01c0..a259644bdc 100644 --- a/spec/fabricators/admin_action_log_fabricator.rb +++ b/spec/fabricators/admin_action_log_fabricator.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true Fabricator('Admin::ActionLog') do - account nil + account action 'MyString' target nil end diff --git a/spec/fabricators/announcement_mute_fabricator.rb b/spec/fabricators/announcement_mute_fabricator.rb deleted file mode 100644 index 109fec0412..0000000000 --- a/spec/fabricators/announcement_mute_fabricator.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:announcement_mute) do - account - announcement -end diff --git a/spec/fabricators/announcement_reaction_fabricator.rb b/spec/fabricators/announcement_reaction_fabricator.rb deleted file mode 100644 index 5da51caaa3..0000000000 --- a/spec/fabricators/announcement_reaction_fabricator.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:announcement_reaction) do - account - announcement - name '🌿' -end diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb deleted file mode 100644 index f69d36855e..0000000000 --- a/spec/fabricators/conversation_account_fabricator.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:conversation_account) do - account nil - conversation nil - participant_account_ids '' - last_status nil -end diff --git a/spec/fabricators/conversation_mute_fabricator.rb b/spec/fabricators/conversation_mute_fabricator.rb deleted file mode 100644 index 5cf4dd3d59..0000000000 --- a/spec/fabricators/conversation_mute_fabricator.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:conversation_mute) do -end diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb deleted file mode 100644 index 6019baba21..0000000000 --- a/spec/fabricators/custom_emoji_category_fabricator.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:custom_emoji_category) do - name 'MyString' -end diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb deleted file mode 100644 index 2898827549..0000000000 --- a/spec/fabricators/encrypted_message_fabricator.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:encrypted_message) do - device - from_account - from_device_id { Faker::Number.number(digits: 5) } - type 0 - body '' - message_franking '' -end diff --git a/spec/fabricators/featured_tag_fabricator.rb b/spec/fabricators/featured_tag_fabricator.rb deleted file mode 100644 index 4bfa3e924e..0000000000 --- a/spec/fabricators/featured_tag_fabricator.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:featured_tag) do - account - tag - statuses_count 1_337 - last_status_at Time.now.utc -end diff --git a/spec/fabricators/follow_recommendation_suppression_fabricator.rb b/spec/fabricators/follow_recommendation_suppression_fabricator.rb deleted file mode 100644 index 6477baee11..0000000000 --- a/spec/fabricators/follow_recommendation_suppression_fabricator.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:follow_recommendation_suppression) do - account -end diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb index b830101117..58072c0d65 100644 --- a/spec/fabricators/identity_fabricator.rb +++ b/spec/fabricators/identity_fabricator.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true Fabricator(:identity) do - user nil + user provider 'MyString' uid 'MyString' end diff --git a/spec/fabricators/import_fabricator.rb b/spec/fabricators/import_fabricator.rb deleted file mode 100644 index 11602f407f..0000000000 --- a/spec/fabricators/import_fabricator.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:import) do -end diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb deleted file mode 100644 index a5da3f7065..0000000000 --- a/spec/fabricators/ip_block_fabricator.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:ip_block) do - ip '' - severity '' - expires_at '2020-10-08 22:20:37' - comment 'MyText' -end diff --git a/spec/fabricators/list_account_fabricator.rb b/spec/fabricators/list_account_fabricator.rb deleted file mode 100644 index b0af29e6fa..0000000000 --- a/spec/fabricators/list_account_fabricator.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:list_account) do - list nil - account nil - follow nil -end diff --git a/spec/fabricators/one_time_key_fabricator.rb b/spec/fabricators/one_time_key_fabricator.rb deleted file mode 100644 index e317c28bd1..0000000000 --- a/spec/fabricators/one_time_key_fabricator.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:one_time_key) do - device - key_id { Faker::Alphanumeric.alphanumeric(number: 10) } - key { Base64.strict_encode64(Ed25519::SigningKey.generate.verify_key.to_bytes) } - - signature do |attrs| - signing_key = Ed25519::SigningKey.generate - attrs[:device].update(fingerprint_key: Base64.strict_encode64(signing_key.verify_key.to_bytes)) - Base64.strict_encode64(signing_key.sign(attrs[:key])) - end -end diff --git a/spec/fabricators/setting_fabricator.rb b/spec/fabricators/setting_fabricator.rb index 336d7c3551..ce9a48e901 100644 --- a/spec/fabricators/setting_fabricator.rb +++ b/spec/fabricators/setting_fabricator.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true Fabricator(:setting) do + var 'var' end diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb index ad1b777cc4..87553ccb8a 100644 --- a/spec/fabricators/site_upload_fabricator.rb +++ b/spec/fabricators/site_upload_fabricator.rb @@ -2,4 +2,5 @@ Fabricator(:site_upload) do file { Rails.root.join('spec', 'fabricators', 'assets', 'utah_teapot.png').open } + var 'thumbnail' end diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb deleted file mode 100644 index 33735a4592..0000000000 --- a/spec/fabricators/status_edit_fabricator.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:status_edit) do - status nil - account nil - text 'MyText' - spoiler_text 'MyText' - media_attachments_changed false -end diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb deleted file mode 100644 index 8a358c51a9..0000000000 --- a/spec/fabricators/status_stat_fabricator.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:status_stat) do - status_id nil - replies_count '' - reblogs_count '' - favourites_count '' -end diff --git a/spec/fabricators/unavailable_domain_fabricator.rb b/spec/fabricators/unavailable_domain_fabricator.rb index 300a9e7a14..cb9707020a 100644 --- a/spec/fabricators/unavailable_domain_fabricator.rb +++ b/spec/fabricators/unavailable_domain_fabricator.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true Fabricator(:unavailable_domain) do - domain { Faker::Internet.domain } + domain { Faker::Internet.domain_name } end diff --git a/spec/fabricators/user_invite_request_fabricator.rb b/spec/fabricators/user_invite_request_fabricator.rb deleted file mode 100644 index 7736263e45..0000000000 --- a/spec/fabricators/user_invite_request_fabricator.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:user_invite_request) do - user - text { Faker::Lorem.sentence } -end diff --git a/spec/fabricators/web_setting_fabricator.rb b/spec/fabricators/web_setting_fabricator.rb deleted file mode 100644 index 7c9f300798..0000000000 --- a/spec/fabricators/web_setting_fabricator.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -Fabricator(:web_setting, from: Web::Setting) do -end diff --git a/spec/fabricators_spec.rb b/spec/fabricators_spec.rb new file mode 100644 index 0000000000..3b76c56ce6 --- /dev/null +++ b/spec/fabricators_spec.rb @@ -0,0 +1,12 @@ +require 'rails_helper' + +Fabrication.manager.load_definitions if Fabrication.manager.empty? + +Fabrication.manager.schematics.map(&:first).each do |factory_name| + describe "The #{factory_name} factory" do + it 'is valid' do + factory = Fabricate(factory_name) + expect(factory).to be_valid + end + end +end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 1e5a80963f..ae4e5ee321 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -704,12 +704,6 @@ RSpec.describe Account, type: :model do end describe 'validations' do - it 'has a valid fabricator' do - account = Fabricate.build(:account) - account.valid? - expect(account).to be_valid - end - it 'is invalid without a username' do account = Fabricate.build(:account, username: nil) account.valid? diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb index 64c39fce60..6e31786d04 100644 --- a/spec/models/block_spec.rb +++ b/spec/models/block_spec.rb @@ -4,11 +4,6 @@ require 'rails_helper' RSpec.describe Block, type: :model do describe 'validations' do - it 'has a valid fabricator' do - block = Fabricate.build(:block) - expect(block).to be_valid - end - it 'is invalid without an account' do block = Fabricate.build(:block, account: nil) block.valid? diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb index 6a5925b896..9839ee9d4e 100644 --- a/spec/models/domain_block_spec.rb +++ b/spec/models/domain_block_spec.rb @@ -4,11 +4,6 @@ require 'rails_helper' RSpec.describe DomainBlock, type: :model do describe 'validations' do - it 'has a valid fabricator' do - domain_block = Fabricate.build(:domain_block) - expect(domain_block).to be_valid - end - it 'is invalid without a domain' do domain_block = Fabricate.build(:domain_block, domain: nil) domain_block.valid? diff --git a/spec/models/email_domain_block_spec.rb b/spec/models/email_domain_block_spec.rb index 01a7a0f0ed..3321ffc819 100644 --- a/spec/models/email_domain_block_spec.rb +++ b/spec/models/email_domain_block_spec.rb @@ -3,13 +3,6 @@ require 'rails_helper' RSpec.describe EmailDomainBlock, type: :model do - describe 'validations' do - it 'has a valid fabricator' do - email_domain_block = Fabricate.build(:email_domain_block) - expect(email_domain_block).to be_valid - end - end - describe 'block?' do let(:input) { nil } diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb index f49d585329..a9a9af88ad 100644 --- a/spec/models/follow_spec.rb +++ b/spec/models/follow_spec.rb @@ -9,11 +9,6 @@ RSpec.describe Follow, type: :model do describe 'validations' do subject { Follow.new(account: alice, target_account: bob, rate_limit: true) } - it 'has a valid fabricator' do - follow = Fabricate.build(:follow) - expect(follow).to be_valid - end - it 'is invalid without an account' do follow = Fabricate.build(:follow, account: nil) follow.valid? diff --git a/spec/models/mention_spec.rb b/spec/models/mention_spec.rb index 3de2b4a072..044bb80cf6 100644 --- a/spec/models/mention_spec.rb +++ b/spec/models/mention_spec.rb @@ -4,11 +4,6 @@ require 'rails_helper' RSpec.describe Mention, type: :model do describe 'validations' do - it 'has a valid fabricator' do - mention = Fabricate.build(:mention) - expect(mention).to be_valid - end - it 'is invalid without an account' do mention = Fabricate.build(:mention, account: nil) mention.valid? diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index d5d40a34f9..20a048c334 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -121,12 +121,6 @@ describe Report do end describe 'validations' do - it 'has a valid fabricator' do - report = Fabricate(:report) - report.valid? - expect(report).to be_valid - end - it 'is invalid if comment is longer than 1000 characters' do report = Fabricate.build(:report, comment: Faker::Lorem.characters(number: 1001)) report.valid? From ad585fb1959abe38839c30137cf3343737f1d247 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:12:54 -0500 Subject: [PATCH 0598/1220] Specs api v1 controllers (#23930) --- .../familiar_followers_controller_spec.rb | 23 +++++++++++++ .../accounts/featured_tags_controller_spec.rb | 23 +++++++++++++ .../identity_proofs_controller_spec.rb | 23 +++++++++++++ .../api/v1/accounts/lookup_controller_spec.rb | 23 +++++++++++++ .../canonical_email_blocks_controller_spec.rb | 23 +++++++++++++ .../v1/admin/dimensions_controller_spec.rb | 23 +++++++++++++ .../email_domain_blocks_controller_spec.rb | 23 +++++++++++++ .../api/v1/admin/ip_blocks_controller_spec.rb | 23 +++++++++++++ .../api/v1/admin/measures_controller_spec.rb | 23 +++++++++++++ .../api/v1/admin/retention_controller_spec.rb | 23 +++++++++++++ .../v1/admin/trends/links_controller_spec.rb | 23 +++++++++++++ .../admin/trends/statuses_controller_spec.rb | 23 +++++++++++++ .../v1/admin/trends/tags_controller_spec.rb | 23 +++++++++++++ .../api/v1/directories_controller_spec.rb | 23 +++++++++++++ .../suggestions_controller_spec.rb | 23 +++++++++++++ .../api/v1/featured_tags_controller_spec.rb | 23 +++++++++++++ .../domain_blocks_controller_spec.rb | 16 ++++++++++ .../extended_descriptions_controller_spec.rb | 15 +++++++++ .../privacy_policies_controller_spec.rb | 15 +++++++++ .../api/v1/instances/rules_controller_spec.rb | 15 +++++++++ .../api/v1/preferences_controller_spec.rb | 23 +++++++++++++ .../v1/scheduled_statuses_controller_spec.rb | 23 +++++++++++++ .../statuses/translations_controller_spec.rb | 32 +++++++++++++++++++ .../api/v1/trends/links_controller_spec.rb | 15 +++++++++ .../api/v1/trends/statuses_controller_spec.rb | 15 +++++++++ 25 files changed, 537 insertions(+) create mode 100644 spec/controllers/api/v1/accounts/familiar_followers_controller_spec.rb create mode 100644 spec/controllers/api/v1/accounts/featured_tags_controller_spec.rb create mode 100644 spec/controllers/api/v1/accounts/identity_proofs_controller_spec.rb create mode 100644 spec/controllers/api/v1/accounts/lookup_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/dimensions_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/email_domain_blocks_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/ip_blocks_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/measures_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/retention_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/trends/links_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/trends/statuses_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/trends/tags_controller_spec.rb create mode 100644 spec/controllers/api/v1/directories_controller_spec.rb create mode 100644 spec/controllers/api/v1/featured_tags/suggestions_controller_spec.rb create mode 100644 spec/controllers/api/v1/featured_tags_controller_spec.rb create mode 100644 spec/controllers/api/v1/instances/domain_blocks_controller_spec.rb create mode 100644 spec/controllers/api/v1/instances/extended_descriptions_controller_spec.rb create mode 100644 spec/controllers/api/v1/instances/privacy_policies_controller_spec.rb create mode 100644 spec/controllers/api/v1/instances/rules_controller_spec.rb create mode 100644 spec/controllers/api/v1/preferences_controller_spec.rb create mode 100644 spec/controllers/api/v1/scheduled_statuses_controller_spec.rb create mode 100644 spec/controllers/api/v1/statuses/translations_controller_spec.rb create mode 100644 spec/controllers/api/v1/trends/links_controller_spec.rb create mode 100644 spec/controllers/api/v1/trends/statuses_controller_spec.rb diff --git a/spec/controllers/api/v1/accounts/familiar_followers_controller_spec.rb b/spec/controllers/api/v1/accounts/familiar_followers_controller_spec.rb new file mode 100644 index 0000000000..bb075261f3 --- /dev/null +++ b/spec/controllers/api/v1/accounts/familiar_followers_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Accounts::FamiliarFollowersController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:follows') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/accounts/featured_tags_controller_spec.rb b/spec/controllers/api/v1/accounts/featured_tags_controller_spec.rb new file mode 100644 index 0000000000..53ac1e2a7a --- /dev/null +++ b/spec/controllers/api/v1/accounts/featured_tags_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Accounts::FeaturedTagsController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/accounts/identity_proofs_controller_spec.rb b/spec/controllers/api/v1/accounts/identity_proofs_controller_spec.rb new file mode 100644 index 0000000000..6351de7616 --- /dev/null +++ b/spec/controllers/api/v1/accounts/identity_proofs_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Accounts::IdentityProofsController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/accounts/lookup_controller_spec.rb b/spec/controllers/api/v1/accounts/lookup_controller_spec.rb new file mode 100644 index 0000000000..37407766f2 --- /dev/null +++ b/spec/controllers/api/v1/accounts/lookup_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Accounts::LookupController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #show' do + it 'returns http success' do + get :show, params: { account_id: account.id, acct: account.acct } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb new file mode 100644 index 0000000000..3acae843ad --- /dev/null +++ b/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::CanonicalEmailBlocksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/dimensions_controller_spec.rb b/spec/controllers/api/v1/admin/dimensions_controller_spec.rb new file mode 100644 index 0000000000..ea18efe383 --- /dev/null +++ b/spec/controllers/api/v1/admin/dimensions_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::DimensionsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'POST #create' do + it 'returns http success' do + post :create, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/email_domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/email_domain_blocks_controller_spec.rb new file mode 100644 index 0000000000..a92a298699 --- /dev/null +++ b/spec/controllers/api/v1/admin/email_domain_blocks_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::EmailDomainBlocksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/ip_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/ip_blocks_controller_spec.rb new file mode 100644 index 0000000000..50e2ae9687 --- /dev/null +++ b/spec/controllers/api/v1/admin/ip_blocks_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::IpBlocksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/measures_controller_spec.rb b/spec/controllers/api/v1/admin/measures_controller_spec.rb new file mode 100644 index 0000000000..03727a6329 --- /dev/null +++ b/spec/controllers/api/v1/admin/measures_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::MeasuresController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'POST #create' do + it 'returns http success' do + post :create, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/retention_controller_spec.rb b/spec/controllers/api/v1/admin/retention_controller_spec.rb new file mode 100644 index 0000000000..2381dbcb48 --- /dev/null +++ b/spec/controllers/api/v1/admin/retention_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::RetentionController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'POST #create' do + it 'returns http success' do + post :create, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/trends/links_controller_spec.rb b/spec/controllers/api/v1/admin/trends/links_controller_spec.rb new file mode 100644 index 0000000000..a64292f067 --- /dev/null +++ b/spec/controllers/api/v1/admin/trends/links_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::Trends::LinksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/trends/statuses_controller_spec.rb b/spec/controllers/api/v1/admin/trends/statuses_controller_spec.rb new file mode 100644 index 0000000000..821cc499f4 --- /dev/null +++ b/spec/controllers/api/v1/admin/trends/statuses_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::Trends::StatusesController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/admin/trends/tags_controller_spec.rb b/spec/controllers/api/v1/admin/trends/tags_controller_spec.rb new file mode 100644 index 0000000000..480306ce7e --- /dev/null +++ b/spec/controllers/api/v1/admin/trends/tags_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Admin::Trends::TagsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'admin:read') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/directories_controller_spec.rb b/spec/controllers/api/v1/directories_controller_spec.rb new file mode 100644 index 0000000000..b18aedc4d1 --- /dev/null +++ b/spec/controllers/api/v1/directories_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::DirectoriesController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:follows') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/featured_tags/suggestions_controller_spec.rb b/spec/controllers/api/v1/featured_tags/suggestions_controller_spec.rb new file mode 100644 index 0000000000..54c63dcc6f --- /dev/null +++ b/spec/controllers/api/v1/featured_tags/suggestions_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::FeaturedTags::SuggestionsController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/featured_tags_controller_spec.rb b/spec/controllers/api/v1/featured_tags_controller_spec.rb new file mode 100644 index 0000000000..aac9429015 --- /dev/null +++ b/spec/controllers/api/v1/featured_tags_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::FeaturedTagsController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/instances/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/instances/domain_blocks_controller_spec.rb new file mode 100644 index 0000000000..08f505c3d4 --- /dev/null +++ b/spec/controllers/api/v1/instances/domain_blocks_controller_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Instances::DomainBlocksController do + render_views + + describe 'GET #index' do + it 'returns http success' do + Setting.show_domain_blocks = 'all' + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/instances/extended_descriptions_controller_spec.rb b/spec/controllers/api/v1/instances/extended_descriptions_controller_spec.rb new file mode 100644 index 0000000000..58c0d4b8f1 --- /dev/null +++ b/spec/controllers/api/v1/instances/extended_descriptions_controller_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Instances::ExtendedDescriptionsController do + render_views + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/instances/privacy_policies_controller_spec.rb b/spec/controllers/api/v1/instances/privacy_policies_controller_spec.rb new file mode 100644 index 0000000000..ac0bed9dc6 --- /dev/null +++ b/spec/controllers/api/v1/instances/privacy_policies_controller_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Instances::PrivacyPoliciesController do + render_views + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/instances/rules_controller_spec.rb b/spec/controllers/api/v1/instances/rules_controller_spec.rb new file mode 100644 index 0000000000..5af50239b0 --- /dev/null +++ b/spec/controllers/api/v1/instances/rules_controller_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Instances::RulesController do + render_views + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/preferences_controller_spec.rb b/spec/controllers/api/v1/preferences_controller_spec.rb new file mode 100644 index 0000000000..79cc3066e1 --- /dev/null +++ b/spec/controllers/api/v1/preferences_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::PreferencesController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/scheduled_statuses_controller_spec.rb b/spec/controllers/api/v1/scheduled_statuses_controller_spec.rb new file mode 100644 index 0000000000..256c4b272a --- /dev/null +++ b/spec/controllers/api/v1/scheduled_statuses_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::ScheduledStatusesController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:statuses') } + let(:account) { Fabricate(:account) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/statuses/translations_controller_spec.rb b/spec/controllers/api/v1/statuses/translations_controller_spec.rb new file mode 100644 index 0000000000..9575ac448d --- /dev/null +++ b/spec/controllers/api/v1/statuses/translations_controller_spec.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Statuses::TranslationsController do + render_views + + let(:user) { Fabricate(:user) } + let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:statuses', application: app) } + + context 'with an oauth token' do + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'POST #create' do + let(:status) { Fabricate(:status, account: user.account) } + + before do + translation = TranslationService::Translation.new(text: 'Hello') + service = instance_double(TranslationService::DeepL, translate: translation) + allow(TranslationService).to receive(:configured).and_return(service) + post :create, params: { status_id: status.id } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end + end +end diff --git a/spec/controllers/api/v1/trends/links_controller_spec.rb b/spec/controllers/api/v1/trends/links_controller_spec.rb new file mode 100644 index 0000000000..71a7e2e477 --- /dev/null +++ b/spec/controllers/api/v1/trends/links_controller_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Trends::LinksController do + render_views + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v1/trends/statuses_controller_spec.rb b/spec/controllers/api/v1/trends/statuses_controller_spec.rb new file mode 100644 index 0000000000..e9892bb140 --- /dev/null +++ b/spec/controllers/api/v1/trends/statuses_controller_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Trends::StatusesController do + render_views + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end From 42ddc451338b7902318ab081218319d56d7150eb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:13:28 -0500 Subject: [PATCH 0599/1220] Admin controllers specs (#23917) --- .../admin/account_actions_controller_spec.rb | 23 +++++++++++++++++++ .../admin/announcements_controller_spec.rb | 21 +++++++++++++++++ .../follow_recommendations_controller_spec.rb | 21 +++++++++++++++++ .../admin/ip_blocks_controller_spec.rb | 21 +++++++++++++++++ .../admin/relationships_controller_spec.rb | 23 +++++++++++++++++++ .../admin/relays_controller_spec.rb | 21 +++++++++++++++++ .../admin/rules_controller_spec.rb | 21 +++++++++++++++++ .../admin/settings/about_controller_spec.rb | 21 +++++++++++++++++ .../settings/appearance_controller_spec.rb | 21 +++++++++++++++++ .../content_retention_controller_spec.rb | 21 +++++++++++++++++ .../settings/discovery_controller_spec.rb | 21 +++++++++++++++++ .../settings/registrations_controller_spec.rb | 21 +++++++++++++++++ .../admin/site_uploads_controller_spec.rb | 23 +++++++++++++++++++ .../preview_card_providers_controller_spec.rb | 21 +++++++++++++++++ .../admin/trends/links_controller_spec.rb | 21 +++++++++++++++++ .../admin/trends/statuses_controller_spec.rb | 21 +++++++++++++++++ .../admin/trends/tags_controller_spec.rb | 21 +++++++++++++++++ .../admin/warning_presets_controller_spec.rb | 21 +++++++++++++++++ .../admin/webhooks/secrets_controller_spec.rb | 23 +++++++++++++++++++ .../admin/webhooks_controller_spec.rb | 21 +++++++++++++++++ 20 files changed, 428 insertions(+) create mode 100644 spec/controllers/admin/account_actions_controller_spec.rb create mode 100644 spec/controllers/admin/announcements_controller_spec.rb create mode 100644 spec/controllers/admin/follow_recommendations_controller_spec.rb create mode 100644 spec/controllers/admin/ip_blocks_controller_spec.rb create mode 100644 spec/controllers/admin/relationships_controller_spec.rb create mode 100644 spec/controllers/admin/relays_controller_spec.rb create mode 100644 spec/controllers/admin/rules_controller_spec.rb create mode 100644 spec/controllers/admin/settings/about_controller_spec.rb create mode 100644 spec/controllers/admin/settings/appearance_controller_spec.rb create mode 100644 spec/controllers/admin/settings/content_retention_controller_spec.rb create mode 100644 spec/controllers/admin/settings/discovery_controller_spec.rb create mode 100644 spec/controllers/admin/settings/registrations_controller_spec.rb create mode 100644 spec/controllers/admin/site_uploads_controller_spec.rb create mode 100644 spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb create mode 100644 spec/controllers/admin/trends/links_controller_spec.rb create mode 100644 spec/controllers/admin/trends/statuses_controller_spec.rb create mode 100644 spec/controllers/admin/trends/tags_controller_spec.rb create mode 100644 spec/controllers/admin/warning_presets_controller_spec.rb create mode 100644 spec/controllers/admin/webhooks/secrets_controller_spec.rb create mode 100644 spec/controllers/admin/webhooks_controller_spec.rb diff --git a/spec/controllers/admin/account_actions_controller_spec.rb b/spec/controllers/admin/account_actions_controller_spec.rb new file mode 100644 index 0000000000..4eae51c7b5 --- /dev/null +++ b/spec/controllers/admin/account_actions_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::AccountActionsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #new' do + let(:account) { Fabricate(:account) } + + it 'returns http success' do + get :new, params: { account_id: account.id } + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/announcements_controller_spec.rb b/spec/controllers/admin/announcements_controller_spec.rb new file mode 100644 index 0000000000..288ac1d713 --- /dev/null +++ b/spec/controllers/admin/announcements_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::AnnouncementsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/follow_recommendations_controller_spec.rb b/spec/controllers/admin/follow_recommendations_controller_spec.rb new file mode 100644 index 0000000000..f62aa6e4b2 --- /dev/null +++ b/spec/controllers/admin/follow_recommendations_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::FollowRecommendationsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/ip_blocks_controller_spec.rb b/spec/controllers/admin/ip_blocks_controller_spec.rb new file mode 100644 index 0000000000..873888afc7 --- /dev/null +++ b/spec/controllers/admin/ip_blocks_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::IpBlocksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/relationships_controller_spec.rb b/spec/controllers/admin/relationships_controller_spec.rb new file mode 100644 index 0000000000..1099a37a3b --- /dev/null +++ b/spec/controllers/admin/relationships_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::RelationshipsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + let(:account) { Fabricate(:account) } + + it 'returns http success' do + get :index, params: { account_id: account.id } + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/relays_controller_spec.rb b/spec/controllers/admin/relays_controller_spec.rb new file mode 100644 index 0000000000..dfb9f3c048 --- /dev/null +++ b/spec/controllers/admin/relays_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::RelaysController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/rules_controller_spec.rb b/spec/controllers/admin/rules_controller_spec.rb new file mode 100644 index 0000000000..d7b633c049 --- /dev/null +++ b/spec/controllers/admin/rules_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::RulesController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/settings/about_controller_spec.rb b/spec/controllers/admin/settings/about_controller_spec.rb new file mode 100644 index 0000000000..2ae26090b6 --- /dev/null +++ b/spec/controllers/admin/settings/about_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Settings::AboutController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/settings/appearance_controller_spec.rb b/spec/controllers/admin/settings/appearance_controller_spec.rb new file mode 100644 index 0000000000..65b29acc3e --- /dev/null +++ b/spec/controllers/admin/settings/appearance_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Settings::AppearanceController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/settings/content_retention_controller_spec.rb b/spec/controllers/admin/settings/content_retention_controller_spec.rb new file mode 100644 index 0000000000..53ce84d189 --- /dev/null +++ b/spec/controllers/admin/settings/content_retention_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Settings::ContentRetentionController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/settings/discovery_controller_spec.rb b/spec/controllers/admin/settings/discovery_controller_spec.rb new file mode 100644 index 0000000000..c7307ffc88 --- /dev/null +++ b/spec/controllers/admin/settings/discovery_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Settings::DiscoveryController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/settings/registrations_controller_spec.rb b/spec/controllers/admin/settings/registrations_controller_spec.rb new file mode 100644 index 0000000000..3fc1f9d132 --- /dev/null +++ b/spec/controllers/admin/settings/registrations_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Settings::RegistrationsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/site_uploads_controller_spec.rb b/spec/controllers/admin/site_uploads_controller_spec.rb new file mode 100644 index 0000000000..4ea37f396a --- /dev/null +++ b/spec/controllers/admin/site_uploads_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::SiteUploadsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'DELETE #destroy' do + let(:site_upload) { Fabricate(:site_upload, var: 'thumbnail') } + + it 'returns http success' do + delete :destroy, params: { id: site_upload.id } + + expect(response).to redirect_to(admin_settings_path) + end + end +end diff --git a/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb b/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb new file mode 100644 index 0000000000..95ed38d6b1 --- /dev/null +++ b/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Trends::Links::PreviewCardProvidersController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/trends/links_controller_spec.rb b/spec/controllers/admin/trends/links_controller_spec.rb new file mode 100644 index 0000000000..7c67f5e5aa --- /dev/null +++ b/spec/controllers/admin/trends/links_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Trends::LinksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/trends/statuses_controller_spec.rb b/spec/controllers/admin/trends/statuses_controller_spec.rb new file mode 100644 index 0000000000..b752234d3c --- /dev/null +++ b/spec/controllers/admin/trends/statuses_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Trends::StatusesController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/trends/tags_controller_spec.rb b/spec/controllers/admin/trends/tags_controller_spec.rb new file mode 100644 index 0000000000..4f74a55455 --- /dev/null +++ b/spec/controllers/admin/trends/tags_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Trends::TagsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/warning_presets_controller_spec.rb b/spec/controllers/admin/warning_presets_controller_spec.rb new file mode 100644 index 0000000000..6b48fc28bb --- /dev/null +++ b/spec/controllers/admin/warning_presets_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::WarningPresetsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end diff --git a/spec/controllers/admin/webhooks/secrets_controller_spec.rb b/spec/controllers/admin/webhooks/secrets_controller_spec.rb new file mode 100644 index 0000000000..291a10fba5 --- /dev/null +++ b/spec/controllers/admin/webhooks/secrets_controller_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::Webhooks::SecretsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'POST #rotate' do + let(:webhook) { Fabricate(:webhook) } + + it 'returns http success' do + post :rotate, params: { webhook_id: webhook.id } + + expect(response).to redirect_to(admin_webhook_path(webhook)) + end + end +end diff --git a/spec/controllers/admin/webhooks_controller_spec.rb b/spec/controllers/admin/webhooks_controller_spec.rb new file mode 100644 index 0000000000..12727e142b --- /dev/null +++ b/spec/controllers/admin/webhooks_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::WebhooksController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(:success) + end + end +end From 7f4412eeeb1d35c9345c213b2cdfbbb9ce97dabb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:16:11 -0500 Subject: [PATCH 0600/1220] User mailer spec coverage improvements (#23905) --- .../user_mailer/appeal_rejected.html.haml | 2 +- spec/mailers/user_mailer_spec.rb | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/app/views/user_mailer/appeal_rejected.html.haml b/app/views/user_mailer/appeal_rejected.html.haml index 75cd9d023b..c316a73fb5 100644 --- a/app/views/user_mailer/appeal_rejected.html.haml +++ b/app/views/user_mailer/appeal_rejected.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('media/images/mailer/icon_warning.png'), alt: '' + = image_tag full_pack_url('media/images/mailer/icon_flag.png'), alt: '' %h1= t 'user_mailer.appeal_rejected.title' diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 9c22f60f1d..30824e7b4d 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -94,4 +94,52 @@ describe UserMailer, type: :mailer do expect(mail.body.encoded).to include strike.text end end + + describe 'webauthn_credential_deleted' do + let(:credential) { Fabricate(:webauthn_credential, user_id: receiver.id) } + let(:mail) { UserMailer.webauthn_credential_deleted(receiver, credential) } + + it 'renders webauthn credential deleted notification' do + receiver.update!(locale: nil) + expect(mail.body.encoded).to include I18n.t('devise.mailer.webauthn_credential.deleted.title') + end + + include_examples 'localized subject', + 'devise.mailer.webauthn_credential.deleted.subject' + end + + describe 'suspicious_sign_in' do + let(:ip) { '192.168.0.1' } + let(:agent) { 'NCSA_Mosaic/2.0 (Windows 3.1)' } + let(:timestamp) { Time.now.utc } + let(:mail) { UserMailer.suspicious_sign_in(receiver, ip, agent, timestamp) } + + it 'renders suspicious sign in notification' do + receiver.update!(locale: nil) + expect(mail.body.encoded).to include I18n.t('user_mailer.suspicious_sign_in.explanation') + end + + include_examples 'localized subject', + 'user_mailer.suspicious_sign_in.subject' + end + + describe 'appeal_approved' do + let(:appeal) { Fabricate(:appeal, account: receiver.account, approved_at: Time.now.utc) } + let(:mail) { UserMailer.appeal_approved(receiver, appeal) } + + it 'renders appeal_approved notification' do + expect(mail.subject).to eq I18n.t('user_mailer.appeal_approved.subject', date: I18n.l(appeal.created_at)) + expect(mail.body.encoded).to include I18n.t('user_mailer.appeal_approved.title') + end + end + + describe 'appeal_rejected' do + let(:appeal) { Fabricate(:appeal, account: receiver.account, rejected_at: Time.now.utc) } + let(:mail) { UserMailer.appeal_rejected(receiver, appeal) } + + it 'renders appeal_rejected notification' do + expect(mail.subject).to eq I18n.t('user_mailer.appeal_rejected.subject', date: I18n.l(appeal.created_at)) + expect(mail.body.encoded).to include I18n.t('user_mailer.appeal_rejected.title') + end + end end From 506b16cf595bf441b9a85db608b6d19e8934fd7d Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 11:16:45 -0500 Subject: [PATCH 0601/1220] Pending example models minimal coverage (#23912) --- spec/models/appeal_spec.rb | 35 +++++++++++++++++++++-- spec/models/custom_emoji_category_spec.rb | 11 +++++-- spec/models/domain_allow_spec.rb | 15 ++++++++-- spec/models/ip_block_spec.rb | 12 ++++++-- spec/models/marker_spec.rb | 13 +++++++-- spec/models/poll_spec.rb | 29 +++++++++++++++++-- spec/models/rule_spec.rb | 16 +++++++++-- spec/models/status_edit_spec.rb | 10 +++++-- spec/models/trends/tags_spec.rb | 4 ++- 9 files changed, 128 insertions(+), 17 deletions(-) diff --git a/spec/models/appeal_spec.rb b/spec/models/appeal_spec.rb index 6aa013aba9..12373a9494 100644 --- a/spec/models/appeal_spec.rb +++ b/spec/models/appeal_spec.rb @@ -2,6 +2,37 @@ require 'rails_helper' -RSpec.describe Appeal, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe Appeal do + describe 'scopes' do + describe 'approved' do + let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) } + let(:not_approved_appeal) { Fabricate(:appeal, approved_at: nil) } + + it 'finds the correct records' do + results = described_class.approved + expect(results).to eq([approved_appeal]) + end + end + + describe 'rejected' do + let(:rejected_appeal) { Fabricate(:appeal, rejected_at: 10.days.ago) } + let(:not_rejected_appeal) { Fabricate(:appeal, rejected_at: nil) } + + it 'finds the correct records' do + results = described_class.rejected + expect(results).to eq([rejected_appeal]) + end + end + + describe 'pending' do + let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) } + let(:rejected_appeal) { Fabricate(:appeal, rejected_at: 10.days.ago) } + let(:pending_appeal) { Fabricate(:appeal, rejected_at: nil, approved_at: nil) } + + it 'finds the correct records' do + results = described_class.pending + expect(results).to eq([pending_appeal]) + end + end + end end diff --git a/spec/models/custom_emoji_category_spec.rb b/spec/models/custom_emoji_category_spec.rb index 74881b26c2..30de07bd81 100644 --- a/spec/models/custom_emoji_category_spec.rb +++ b/spec/models/custom_emoji_category_spec.rb @@ -2,6 +2,13 @@ require 'rails_helper' -RSpec.describe CustomEmojiCategory, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe CustomEmojiCategory do + describe 'validations' do + it 'validates name presence' do + record = described_class.new(name: nil) + + expect(record).to_not be_valid + expect(record).to model_have_error_on_field(:name) + end + end end diff --git a/spec/models/domain_allow_spec.rb b/spec/models/domain_allow_spec.rb index 18cf5fe4c7..49e16376ea 100644 --- a/spec/models/domain_allow_spec.rb +++ b/spec/models/domain_allow_spec.rb @@ -2,6 +2,17 @@ require 'rails_helper' -RSpec.describe DomainAllow, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe DomainAllow do + describe 'scopes' do + describe 'matches_domain' do + let(:domain) { Fabricate(:domain_allow, domain: 'example.com') } + let(:other_domain) { Fabricate(:domain_allow, domain: 'example.biz') } + + it 'returns the correct records' do + results = described_class.matches_domain('example.com') + + expect(results).to eq([domain]) + end + end + end end diff --git a/spec/models/ip_block_spec.rb b/spec/models/ip_block_spec.rb index 4c4028576a..ed58826672 100644 --- a/spec/models/ip_block_spec.rb +++ b/spec/models/ip_block_spec.rb @@ -2,6 +2,14 @@ require 'rails_helper' -RSpec.describe IpBlock, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe IpBlock do + describe 'to_log_human_identifier' do + let(:ip_block) { described_class.new(ip: '192.168.0.1') } + + it 'combines the IP and prefix into a string' do + result = ip_block.to_log_human_identifier + + expect(result).to eq('192.168.0.1/32') + end + end end diff --git a/spec/models/marker_spec.rb b/spec/models/marker_spec.rb index e8561c4c63..51dd584388 100644 --- a/spec/models/marker_spec.rb +++ b/spec/models/marker_spec.rb @@ -2,6 +2,15 @@ require 'rails_helper' -RSpec.describe Marker, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe Marker do + describe 'validations' do + describe 'timeline' do + it 'must be included in valid list' do + record = described_class.new(timeline: 'not real timeline') + + expect(record).to_not be_valid + expect(record).to model_have_error_on_field(:timeline) + end + end + end end diff --git a/spec/models/poll_spec.rb b/spec/models/poll_spec.rb index 474399bf68..8ae04ca41f 100644 --- a/spec/models/poll_spec.rb +++ b/spec/models/poll_spec.rb @@ -2,6 +2,31 @@ require 'rails_helper' -RSpec.describe Poll, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe Poll do + describe 'scopes' do + let(:status) { Fabricate(:status) } + let(:attached_poll) { Fabricate(:poll, status: status) } + let(:not_attached_poll) do + Fabricate(:poll).tap do |poll| + poll.status = nil + poll.save(validate: false) + end + end + + describe 'attached' do + it 'finds the correct records' do + results = described_class.attached + + expect(results).to eq([attached_poll]) + end + end + + describe 'unattached' do + it 'finds the correct records' do + results = described_class.unattached + + expect(results).to eq([not_attached_poll]) + end + end + end end diff --git a/spec/models/rule_spec.rb b/spec/models/rule_spec.rb index d5ec13ddf8..c9b9c55028 100644 --- a/spec/models/rule_spec.rb +++ b/spec/models/rule_spec.rb @@ -2,6 +2,18 @@ require 'rails_helper' -RSpec.describe Rule, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe Rule do + describe 'scopes' do + describe 'ordered' do + let(:deleted_rule) { Fabricate(:rule, deleted_at: 10.days.ago) } + let(:first_rule) { Fabricate(:rule, deleted_at: nil, priority: 1) } + let(:last_rule) { Fabricate(:rule, deleted_at: nil, priority: 10) } + + it 'finds the correct records' do + results = described_class.ordered + + expect(results).to eq([first_rule, last_rule]) + end + end + end end diff --git a/spec/models/status_edit_spec.rb b/spec/models/status_edit_spec.rb index 0b9fa70873..2d33514522 100644 --- a/spec/models/status_edit_spec.rb +++ b/spec/models/status_edit_spec.rb @@ -2,6 +2,12 @@ require 'rails_helper' -RSpec.describe StatusEdit, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe StatusEdit do + describe '#reblog?' do + it 'returns false' do + record = described_class.new + + expect(record).to_not be_a_reblog + end + end end diff --git a/spec/models/trends/tags_spec.rb b/spec/models/trends/tags_spec.rb index a9473e15c4..09ac918d00 100644 --- a/spec/models/trends/tags_spec.rb +++ b/spec/models/trends/tags_spec.rb @@ -24,7 +24,9 @@ RSpec.describe Trends::Tags do end describe '#query' do - pending + it 'returns a composable query scope' do + expect(subject.query).to be_a Trends::Query + end end describe '#refresh' do From 2d1ccb3d8b9427cdc8ec1e187980458ab8a0890f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 12:31:13 -0500 Subject: [PATCH 0602/1220] Restore missing fabricators (#23951) --- .../account_warning_preset_fabricator.rb | 5 +++++ spec/fabricators/list_account_fabricator.rb | 7 +++++++ spec/fabricators/one_time_key_fabricator.rb | 13 +++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 spec/fabricators/account_warning_preset_fabricator.rb create mode 100644 spec/fabricators/list_account_fabricator.rb create mode 100644 spec/fabricators/one_time_key_fabricator.rb diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb new file mode 100644 index 0000000000..c50e08bf4f --- /dev/null +++ b/spec/fabricators/account_warning_preset_fabricator.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +Fabricator(:account_warning_preset) do + text { Faker::Lorem.paragraph } +end diff --git a/spec/fabricators/list_account_fabricator.rb b/spec/fabricators/list_account_fabricator.rb new file mode 100644 index 0000000000..00dde83cdf --- /dev/null +++ b/spec/fabricators/list_account_fabricator.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +Fabricator(:list_account) do + list + account + before_create { |list_account, _| list_account.list.account.follow!(account) } +end diff --git a/spec/fabricators/one_time_key_fabricator.rb b/spec/fabricators/one_time_key_fabricator.rb new file mode 100644 index 0000000000..cfb365cabb --- /dev/null +++ b/spec/fabricators/one_time_key_fabricator.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +Fabricator(:one_time_key) do + device + key_id { Faker::Alphanumeric.alphanumeric(number: 10) } + key { Base64.strict_encode64(Ed25519::SigningKey.generate.verify_key.to_bytes) } + + signature do |attrs| + signing_key = Ed25519::SigningKey.generate + attrs[:device].update(fingerprint_key: Base64.strict_encode64(signing_key.verify_key.to_bytes)) + Base64.strict_encode64(signing_key.sign(attrs[:key])) + end +end From c599e289d806f6d13e3383879750db053a654821 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 17:17:46 -0500 Subject: [PATCH 0603/1220] Fix spec for api/v1/statuses/translations (#23956) --- .../api/v1/statuses/translations_controller_spec.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spec/controllers/api/v1/statuses/translations_controller_spec.rb b/spec/controllers/api/v1/statuses/translations_controller_spec.rb index 9575ac448d..2deea9fc0c 100644 --- a/spec/controllers/api/v1/statuses/translations_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/translations_controller_spec.rb @@ -15,11 +15,12 @@ describe Api::V1::Statuses::TranslationsController do end describe 'POST #create' do - let(:status) { Fabricate(:status, account: user.account) } + let(:status) { Fabricate(:status, account: user.account, text: 'Hola', language: 'es') } before do translation = TranslationService::Translation.new(text: 'Hello') - service = instance_double(TranslationService::DeepL, translate: translation) + service = instance_double(TranslationService::DeepL, translate: translation, supported?: true) + allow(TranslationService).to receive(:configured?).and_return(true) allow(TranslationService).to receive(:configured).and_return(service) post :create, params: { status_id: status.id } end From cb868228bde5351b79041f341a151bb08118d31f Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sat, 4 Mar 2023 23:18:19 +0100 Subject: [PATCH 0604/1220] =?UTF-8?q?Do=20not=20leave=20Mastodon=20when=20?= =?UTF-8?q?clicking=20=E2=80=9CBack=E2=80=9D=20(#23953)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mastodon/components/column_back_button.jsx | 6 +++--- .../mastodon/components/column_header.jsx | 14 +++++--------- app/javascript/mastodon/features/ui/index.jsx | 6 +++--- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/app/javascript/mastodon/components/column_back_button.jsx b/app/javascript/mastodon/components/column_back_button.jsx index 5bbf11652b..5c5226b7ea 100644 --- a/app/javascript/mastodon/components/column_back_button.jsx +++ b/app/javascript/mastodon/components/column_back_button.jsx @@ -15,10 +15,10 @@ export default class ColumnBackButton extends React.PureComponent { }; handleClick = () => { - if (window.history && window.history.length === 1) { - this.context.router.history.push('/'); - } else { + if (window.history && window.history.state) { this.context.router.history.goBack(); + } else { + this.context.router.history.push('/'); } }; diff --git a/app/javascript/mastodon/components/column_header.jsx b/app/javascript/mastodon/components/column_header.jsx index 38f6ad60ff..9ba783d903 100644 --- a/app/javascript/mastodon/components/column_header.jsx +++ b/app/javascript/mastodon/components/column_header.jsx @@ -43,14 +43,6 @@ class ColumnHeader extends React.PureComponent { animating: false, }; - historyBack = () => { - if (window.history && window.history.length === 1) { - this.context.router.history.push('/'); - } else { - this.context.router.history.goBack(); - } - }; - handleToggleClick = (e) => { e.stopPropagation(); this.setState({ collapsed: !this.state.collapsed, animating: true }); @@ -69,7 +61,11 @@ class ColumnHeader extends React.PureComponent { }; handleBackClick = () => { - this.historyBack(); + if (window.history && window.history.state) { + this.context.router.history.goBack(); + } else { + this.context.router.history.push('/'); + } }; handleTransitionEnd = () => { diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index 4f0ea04504..2dd59f95d4 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -474,10 +474,10 @@ class UI extends React.PureComponent { }; handleHotkeyBack = () => { - if (window.history && window.history.length === 1) { - this.context.router.history.push('/'); - } else { + if (window.history && window.history.state) { this.context.router.history.goBack(); + } else { + this.context.router.history.push('/'); } }; From 14f0b48fb60fec103d3b95d5f1cd4880a41c1a42 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 4 Mar 2023 18:33:08 -0500 Subject: [PATCH 0605/1220] Update browser gem to version 5.3.1 (#23945) --- Gemfile.lock | 2 +- config/locales/en.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b8b0943256..6f75f8f769 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -144,7 +144,7 @@ GEM bootsnap (1.16.0) msgpack (~> 1.2) brakeman (5.4.0) - browser (4.2.0) + browser (5.3.1) brpoplpush-redis_script (0.1.3) concurrent-ruby (~> 1.0, >= 1.0.5) redis (>= 1.0, < 6) diff --git a/config/locales/en.yml b/config/locales/en.yml index d142962b5a..97d0999e4a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1448,6 +1448,7 @@ en: electron: Electron firefox: Firefox generic: Unknown browser + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1457,6 +1458,7 @@ en: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Unknown Browser weibo: Weibo current_session: Current session description: "%{browser} on %{platform}" @@ -1469,9 +1471,10 @@ en: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: unknown platform + unknown_platform: Unknown Platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone From 82a6cf401244e0cc51bb5fa2aa20e58b9996a640 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 4 Mar 2023 18:33:52 -0500 Subject: [PATCH 0606/1220] Enable Rubocop for app/views (#23874) --- .rubocop.yml | 1 - app/views/accounts/show.rss.ruby | 12 ++++++------ app/views/tags/show.rss.ruby | 12 ++++++------ app/views/well_known/host_meta/show.xml.ruby | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index f7ed79b76d..b4387a4611 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -19,7 +19,6 @@ AllCops: NewCops: enable Exclude: - db/schema.rb - - 'app/views/**/*' - 'config/**/*' - 'bin/*' - 'Rakefile' diff --git a/app/views/accounts/show.rss.ruby b/app/views/accounts/show.rss.ruby index 34e29d483f..7a77511ceb 100644 --- a/app/views/accounts/show.rss.ruby +++ b/app/views/accounts/show.rss.ruby @@ -5,7 +5,7 @@ RSS::Builder.build do |doc| doc.image(full_asset_url(@account.avatar.url(:original)), display_name(@account), params[:tag].present? ? short_account_tag_url(@account, params[:tag]) : short_account_url(@account)) doc.last_build_date(@statuses.first.created_at) if @statuses.any? doc.icon(full_asset_url(@account.avatar.url(:original))) - doc.generator("Mastodon v#{Mastodon::Version.to_s}") + doc.generator("Mastodon v#{Mastodon::Version}") @statuses.each do |status| doc.item do |item| @@ -18,12 +18,12 @@ RSS::Builder.build do |doc| item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size) end - status.ordered_media_attachments.each do |media| - item.media_content(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size) do |media_content| - media_content.medium(media.gifv? ? 'image' : media.type.to_s) + status.ordered_media_attachments.each do |media_attachment| + item.media_content(full_asset_url(media_attachment.file.url(:original, false)), media_attachment.file.content_type, media_attachment.file.size) do |media_content| + media_content.medium(media_attachment.gifv? ? 'image' : media_attachment.type.to_s) media_content.rating(status.sensitive? ? 'adult' : 'nonadult') - media_content.description(media.description) if media.description.present? - media_content.thumbnail(media.thumbnail.url(:original, false)) if media.thumbnail? + media_content.description(media_attachment.description) if media_attachment.description.present? + media_content.thumbnail(media_attachment.thumbnail.url(:original, false)) if media_attachment.thumbnail? end end diff --git a/app/views/tags/show.rss.ruby b/app/views/tags/show.rss.ruby index 8e0c2327b5..bbda1ad4b5 100644 --- a/app/views/tags/show.rss.ruby +++ b/app/views/tags/show.rss.ruby @@ -3,7 +3,7 @@ RSS::Builder.build do |doc| doc.description(I18n.t('rss.descriptions.tag', hashtag: @tag.display_name)) doc.link(tag_url(@tag)) doc.last_build_date(@statuses.first.created_at) if @statuses.any? - doc.generator("Mastodon v#{Mastodon::Version.to_s}") + doc.generator("Mastodon v#{Mastodon::Version}") @statuses.each do |status| doc.item do |item| @@ -16,12 +16,12 @@ RSS::Builder.build do |doc| item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size) end - status.ordered_media_attachments.each do |media| - item.media_content(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size) do |media_content| - media_content.medium(media.gifv? ? 'image' : media.type.to_s) + status.ordered_media_attachments.each do |media_attachment| + item.media_content(full_asset_url(media_attachment.file.url(:original, false)), media_attachment.file.content_type, media_attachment.file.size) do |media_content| + media_content.medium(media_attachment.gifv? ? 'image' : media_attachment.type.to_s) media_content.rating(status.sensitive? ? 'adult' : 'nonadult') - media_content.description(media.description) if media.description.present? - media_content.thumbnail(media.thumbnail.url(:original, false)) if media.thumbnail? + media_content.description(media_attachment.description) if media_attachment.description.present? + media_content.thumbnail(media_attachment.thumbnail.url(:original, false)) if media_attachment.thumbnail? end end diff --git a/app/views/well_known/host_meta/show.xml.ruby b/app/views/well_known/host_meta/show.xml.ruby index b4e867c5f8..bb5a01a1b5 100644 --- a/app/views/well_known/host_meta/show.xml.ruby +++ b/app/views/well_known/host_meta/show.xml.ruby @@ -9,4 +9,4 @@ doc << Ox::Element.new('XRD').tap do |xrd| end end -('' + Ox.dump(doc, effort: :tolerant)).force_encoding('UTF-8') +"#{Ox.dump(doc, effort: :tolerant)}".force_encoding('UTF-8') From ade3c5d40c1f2bd534d85424a878f1d28b9352f4 Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Sat, 4 Mar 2023 15:35:00 -0800 Subject: [PATCH 0607/1220] Updates dev container and adds doc for getting started with GitHub Codespaces (#23872) --- .devcontainer/Dockerfile | 12 +++++----- .devcontainer/devcontainer.json | 38 ++++++++++++------------------- .devcontainer/docker-compose.yml | 10 +------- .devcontainer/welcome-message.txt | 8 +++++++ README.md | 10 ++++++++ 5 files changed, 40 insertions(+), 38 deletions(-) create mode 100644 .devcontainer/welcome-message.txt diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 425b86a6bb..04ac9560ca 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,16 +1,14 @@ -# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster -ARG VARIANT=3.1-bullseye -FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} +# For details, see https://github.com/devcontainers/images/tree/main/src/ruby +FROM mcr.microsoft.com/devcontainers/ruby:0-3.2-bullseye # Install Rails # RUN gem install rails webdrivers # Default value to allow debug server to serve content over GitHub Codespace's port forwarding service # The value is a comma-separated list of allowed domains -ENV RAILS_DEVELOPMENT_HOSTS=".githubpreview.dev" +ENV RAILS_DEVELOPMENT_HOSTS=".githubpreview.dev,.preview.app.github.dev,.app.github.dev" -# [Choice] Node.js version: lts/*, 18, 16, 14 -ARG NODE_VERSION="lts/*" +ARG NODE_VERSION="16" RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1" # [Optional] Uncomment this section to install additional OS packages. @@ -22,3 +20,5 @@ RUN gem install foreman # [Optional] Uncomment this line to install global node packages. RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g yarn" 2>&1 + +COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6ac6993ee9..d628fd1bd1 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,30 +1,13 @@ +// For more details, see https://aka.ms/devcontainer.json. { "name": "Mastodon", "dockerComposeFile": "docker-compose.yml", "service": "app", - "workspaceFolder": "/mastodon", - - // Configure tool-specific properties. - "customizations": { - // Configure properties specific to VS Code. - "vscode": { - // Set *default* container specific settings.json values on container create. - "settings": {}, - - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "EditorConfig.EditorConfig", - "dbaeumer.vscode-eslint", - "rebornix.Ruby", - "webben.browserslist" - ] - } - }, + "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", + // Features to add to the dev container. More info: https://containers.dev/features. "features": { - "ghcr.io/devcontainers/features/sshd:1": { - "version": "latest" - } + "ghcr.io/devcontainers/features/sshd:1": {} }, // Use 'forwardPorts' to make a list of ports inside the container available locally. @@ -33,7 +16,16 @@ // Use 'postCreateCommand' to run commands after the container is created. "postCreateCommand": ".devcontainer/post-create.sh", + "waitFor": "postCreateCommand", - // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "vscode" + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": {}, + // Add the IDs of extensions you want installed when the container is created. + "extensions": ["EditorConfig.EditorConfig", "webben.browserslist"] + } + } } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 95f401379c..19f9c0b5b3 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -5,15 +5,8 @@ services: build: context: . dockerfile: Dockerfile - args: - # Update 'VARIANT' to pick a version of Ruby: 3, 3.1, 3.0, 2, 2.7, 2.6 - # Append -bullseye or -buster to pin to an OS version. - # Use -bullseye variants on local arm64/Apple Silicon. - VARIANT: '3.0-bullseye' - # Optional Node.js version to install - NODE_VERSION: '16' volumes: - - ..:/mastodon:cached + - ../..:/workspaces:cached environment: RAILS_ENV: development NODE_ENV: development @@ -33,7 +26,6 @@ services: networks: - external_network - internal_network - user: vscode db: image: postgres:14-alpine diff --git a/.devcontainer/welcome-message.txt b/.devcontainer/welcome-message.txt new file mode 100644 index 0000000000..488cf92857 --- /dev/null +++ b/.devcontainer/welcome-message.txt @@ -0,0 +1,8 @@ +👋 Welcome to "Mastodon" in GitHub Codespaces! + +🛠️ Your environment is fully setup with all the required software. + +🔍 To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P or F1). + +📝 Edit away, run your app as usual, and we'll automatically make it available for you to access. + diff --git a/README.md b/README.md index 1b5db92a84..306665e9a6 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,16 @@ A **Vagrant** configuration is included for development purposes. To use it, com - Run `vagrant ssh -c "cd /vagrant && foreman start"` - Open `http://mastodon.local` in your browser +### Getting Started with GitHub Codespaces + +To get started, create a codespace for this repository by clicking this 👇 + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=52281283) + +A codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project. + +**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting). + ## Contributing Mastodon is **free, open-source software** licensed under **AGPLv3**. From be1792e1d45fd32c037195d3d03f09fbd4dbf00e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 5 Mar 2023 01:52:12 +0100 Subject: [PATCH 0608/1220] Fix streaming API not being usable without `DATABASE_URL` (#23960) --- streaming/index.js | 48 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index ba7cfea191..2cc4934ee9 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -81,9 +81,10 @@ const startMaster = () => { log.warn(`Starting streaming API server master with ${numWorkers} workers`); }; -const startWorker = async (workerId) => { - log.warn(`Starting worker ${workerId}`); - +/** + * @return {Object.} + */ +const pgConfigFromEnv = () => { const pgConfigs = { development: { user: process.env.DB_USER || pg.defaults.user, @@ -102,16 +103,45 @@ const startWorker = async (workerId) => { }, }; + let baseConfig; + + if (process.env.DATABASE_URL) { + baseConfig = dbUrlToConfig(process.env.DATABASE_URL); + } else { + baseConfig = pgConfigs[env]; + + if (process.env.DB_SSLMODE) { + switch(process.env.DB_SSLMODE) { + case 'disable': + case '': + baseConfig.ssl = false; + break; + case 'no-verify': + baseConfig.ssl = { rejectUnauthorized: false }; + break; + default: + baseConfig.ssl = {}; + break; + } + } + } + + return { + ...baseConfig, + max: process.env.DB_POOL || 10, + connectionTimeoutMillis: 15000, + application_name: '', + }; +}; + +const startWorker = async (workerId) => { + log.warn(`Starting worker ${workerId}`); + const app = express(); app.set('trust proxy', process.env.TRUSTED_PROXY_IP ? process.env.TRUSTED_PROXY_IP.split(/(?:\s*,\s*|\s+)/) : 'loopback,uniquelocal'); - const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL), { - max: process.env.DB_POOL || 10, - connectionTimeoutMillis: 15000, - ssl: !!process.env.DB_SSLMODE && process.env.DB_SSLMODE !== 'disable', - })); - + const pgPool = new pg.Pool(pgConfigFromEnv()); const server = http.createServer(app); const redisNamespace = process.env.REDIS_NAMESPACE || null; From dfa9843ac85d04e1facb2f757fd9288d8bb9fb2c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 5 Mar 2023 01:52:42 +0100 Subject: [PATCH 0609/1220] Fix pgBouncer resetting application name on every transaction (#23958) --- config/database.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/database.yml b/config/database.yml index bfb53f21b4..34acf2f19a 100644 --- a/config/database.yml +++ b/config/database.yml @@ -5,6 +5,7 @@ default: &default connect_timeout: 15 encoding: unicode sslmode: <%= ENV['DB_SSLMODE'] || "prefer" %> + application_name: '' development: <<: *default From a79405d877d3d38635ebabbc92f3267858084f2b Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Sun, 5 Mar 2023 12:37:14 +0100 Subject: [PATCH 0610/1220] v4.1.0+2.0.1 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 50533f48a8..c50e532abf 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+2.0.0' + '+2.0.1' end def to_a From 0e476f3c4fbbcab9b4895b8abff93075dfd2bf0c Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Sun, 26 Feb 2023 20:13:27 +0100 Subject: [PATCH 0611/1220] [Glitch] Add `lang` attribute to media and poll options Port d3eefead3014175b264cb56f6f4cb552cbaaeac6 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/components/gifv.jsx | 5 ++++- .../glitch/components/media_attachments.jsx | 6 +++++- .../flavours/glitch/components/media_gallery.jsx | 14 +++++++++----- app/javascript/flavours/glitch/components/poll.jsx | 5 ++++- .../flavours/glitch/components/status.jsx | 5 ++++- .../account_gallery/components/media_item.jsx | 3 +++ .../flavours/glitch/features/audio/index.jsx | 4 +++- .../features/status/components/detailed_status.jsx | 5 ++++- .../glitch/features/ui/components/audio_modal.jsx | 7 +++++-- .../ui/components/compare_history_modal.jsx | 11 +++++++---- .../glitch/features/ui/components/image_loader.jsx | 5 ++++- .../glitch/features/ui/components/media_modal.jsx | 13 +++++++++++-- .../glitch/features/ui/components/video_modal.jsx | 12 ++++++++++-- .../features/ui/components/zoomable_image.jsx | 5 ++++- .../flavours/glitch/features/video/index.jsx | 4 +++- 15 files changed, 80 insertions(+), 24 deletions(-) diff --git a/app/javascript/flavours/glitch/components/gifv.jsx b/app/javascript/flavours/glitch/components/gifv.jsx index 1f0f99b464..9ec201c6cc 100644 --- a/app/javascript/flavours/glitch/components/gifv.jsx +++ b/app/javascript/flavours/glitch/components/gifv.jsx @@ -6,6 +6,7 @@ export default class GIFV extends React.PureComponent { static propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, width: PropTypes.number, height: PropTypes.number, onClick: PropTypes.func, @@ -35,7 +36,7 @@ export default class GIFV extends React.PureComponent { }; render () { - const { src, width, height, alt } = this.props; + const { src, width, height, alt, lang } = this.props; const { loading } = this.state; return ( @@ -48,6 +49,7 @@ export default class GIFV extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} onClick={this.handleClick} /> )} @@ -58,6 +60,7 @@ export default class GIFV extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} muted loop autoPlay diff --git a/app/javascript/flavours/glitch/components/media_attachments.jsx b/app/javascript/flavours/glitch/components/media_attachments.jsx index 33f01bb5a0..b11d3526f9 100644 --- a/app/javascript/flavours/glitch/components/media_attachments.jsx +++ b/app/javascript/flavours/glitch/components/media_attachments.jsx @@ -10,6 +10,7 @@ export default class MediaAttachments extends ImmutablePureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, + lang: PropTypes.string, height: PropTypes.number, width: PropTypes.number, revealed: PropTypes.bool, @@ -49,7 +50,7 @@ export default class MediaAttachments extends ImmutablePureComponent { }; render () { - const { status, width, height, revealed } = this.props; + const { status, lang, width, height, revealed } = this.props; const mediaAttachments = status.get('media_attachments'); if (mediaAttachments.size === 0) { @@ -65,6 +66,7 @@ export default class MediaAttachments extends ImmutablePureComponent { ( - + @@ -209,6 +211,7 @@ class Item extends React.PureComponent { className={`media-gallery__item-gifv-thumbnail${letterbox ? ' letterbox' : ''}`} aria-label={attachment.get('description')} title={attachment.get('description')} + lang={lang} role='application' src={attachment.get('url')} onClick={this.handleClick} @@ -251,6 +254,7 @@ class MediaGallery extends React.PureComponent { fullwidth: PropTypes.bool, hidden: PropTypes.bool, media: ImmutablePropTypes.list.isRequired, + lang: PropTypes.string, size: PropTypes.object, onOpenMedia: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, @@ -342,7 +346,7 @@ class MediaGallery extends React.PureComponent { } render () { - const { media, intl, sensitive, letterbox, fullwidth, defaultWidth, autoplay } = this.props; + const { media, lang, intl, sensitive, letterbox, fullwidth, defaultWidth, autoplay } = this.props; const { visible } = this.state; const size = media.take(4).size; const uncached = media.every(attachment => attachment.get('type') === 'unknown'); @@ -364,9 +368,9 @@ class MediaGallery extends React.PureComponent { } if (this.isStandaloneEligible()) { - children = ; + children = ; } else { - children = media.take(4).map((attachment, i) => ); + children = media.take(4).map((attachment, i) => ); } if (uncached) { diff --git a/app/javascript/flavours/glitch/components/poll.jsx b/app/javascript/flavours/glitch/components/poll.jsx index 53ece560e7..8b799309bf 100644 --- a/app/javascript/flavours/glitch/components/poll.jsx +++ b/app/javascript/flavours/glitch/components/poll.jsx @@ -40,6 +40,7 @@ class Poll extends ImmutablePureComponent { static propTypes = { poll: ImmutablePropTypes.map, + lang: PropTypes.string, intl: PropTypes.object.isRequired, disabled: PropTypes.bool, refresh: PropTypes.func, @@ -126,7 +127,7 @@ class Poll extends ImmutablePureComponent { }; renderOption (option, optionIndex, showResults) { - const { poll, disabled, intl } = this.props; + const { poll, lang, disabled, intl } = this.props; const pollVotesCount = poll.get('voters_count') || poll.get('votes_count'); const percent = pollVotesCount === 0 ? 0 : (option.get('votes_count') / pollVotesCount) * 100; const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count')); @@ -159,6 +160,7 @@ class Poll extends ImmutablePureComponent { onKeyPress={this.handleOptionKeyPress} aria-checked={active} aria-label={option.get('title')} + lang={lang} data-index={optionIndex} /> )} @@ -175,6 +177,7 @@ class Poll extends ImmutablePureComponent { diff --git a/app/javascript/flavours/glitch/components/status.jsx b/app/javascript/flavours/glitch/components/status.jsx index 34880efe41..2f919176c4 100644 --- a/app/javascript/flavours/glitch/components/status.jsx +++ b/app/javascript/flavours/glitch/components/status.jsx @@ -630,6 +630,7 @@ class Status extends ImmutablePureComponent { ( ); + contentMedia.push(); contentMediaIcons.push('tasks'); } diff --git a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx index d169875b01..5fd84996b2 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx +++ b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.jsx @@ -76,6 +76,7 @@ export default class MediaItem extends ImmutablePureComponent { {attachment.get('description')} ); @@ -95,6 +96,7 @@ export default class MediaItem extends ImmutablePureComponent { {attachment.get('description')} @@ -105,6 +107,7 @@ export default class MediaItem extends ImmutablePureComponent { className='media-gallery__item-gifv-thumbnail' aria-label={attachment.get('description')} title={attachment.get('description')} + lang={status.get('language')} role='application' src={attachment.get('url')} onMouseEnter={this.handleMouseEnter} diff --git a/app/javascript/flavours/glitch/features/audio/index.jsx b/app/javascript/flavours/glitch/features/audio/index.jsx index c4aa989628..05c3beef96 100644 --- a/app/javascript/flavours/glitch/features/audio/index.jsx +++ b/app/javascript/flavours/glitch/features/audio/index.jsx @@ -28,6 +28,7 @@ class Audio extends React.PureComponent { static propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, poster: PropTypes.string, duration: PropTypes.number, width: PropTypes.number, @@ -464,7 +465,7 @@ class Audio extends React.PureComponent { }; render () { - const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; + const { src, intl, alt, lang, editable, autoPlay, sensitive, blurhash } = this.props; const { paused, muted, volume, currentTime, duration, buffer, dragging, revealed } = this.state; const progress = Math.min((currentTime / duration) * 100, 100); @@ -509,6 +510,7 @@ class Audio extends React.PureComponent { onKeyDown={this.handleAudioKeyDown} title={alt} aria-label={alt} + lang={lang} />
    diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx index 644881fa50..a945728551 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx @@ -169,6 +169,7 @@ class DetailedStatus extends ImmutablePureComponent {
    {currentVersion.get('spoiler_text').length > 0 && ( -
    +

    )} -
    +
    {!!currentVersion.get('poll') && (
    @@ -82,6 +84,7 @@ class CompareHistoryModal extends React.PureComponent { ))} @@ -89,7 +92,7 @@ class CompareHistoryModal extends React.PureComponent {
    )} - +
    diff --git a/app/javascript/flavours/glitch/features/ui/components/image_loader.jsx b/app/javascript/flavours/glitch/features/ui/components/image_loader.jsx index 92aeef5c4f..9093eab28e 100644 --- a/app/javascript/flavours/glitch/features/ui/components/image_loader.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/image_loader.jsx @@ -8,6 +8,7 @@ export default class ImageLoader extends PureComponent { static propTypes = { alt: PropTypes.string, + lang: PropTypes.string, src: PropTypes.string.isRequired, previewSrc: PropTypes.string, width: PropTypes.number, @@ -18,6 +19,7 @@ export default class ImageLoader extends PureComponent { static defaultProps = { alt: '', + lang: '', width: null, height: null, }; @@ -129,7 +131,7 @@ export default class ImageLoader extends PureComponent { }; render () { - const { alt, src, width, height, onClick } = this.props; + const { alt, lang, src, width, height, onClick } = this.props; const { loading } = this.state; const className = classNames('image-loader', { @@ -154,6 +156,7 @@ export default class ImageLoader extends PureComponent { ) : ( ({ + language: state.getIn(['statuses', statusId, 'language']), +}); + +export default @connect(mapStateToProps, null, null, { forwardRef: true }) +@injectIntl class MediaModal extends ImmutablePureComponent { static contextTypes = { @@ -131,7 +137,7 @@ class MediaModal extends ImmutablePureComponent { } render () { - const { media, statusId, intl, onClose } = this.props; + const { media, language, statusId, intl, onClose } = this.props; const { navigationHidden } = this.state; const index = this.getIndex(); @@ -151,6 +157,7 @@ class MediaModal extends ImmutablePureComponent { width={width} height={height} alt={image.get('description')} + lang={language} key={image.get('url')} onClick={this.toggleNavigation} zoomButtonHidden={this.state.zoomButtonHidden} @@ -173,6 +180,7 @@ class MediaModal extends ImmutablePureComponent { onCloseVideo={onClose} detailed alt={image.get('description')} + lang={language} key={image.get('url')} /> ); @@ -184,6 +192,7 @@ class MediaModal extends ImmutablePureComponent { height={height} key={image.get('preview_url')} alt={image.get('description')} + lang={language} onClick={this.toggleNavigation} /> ); diff --git a/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx index 90be11e4b7..c1f8377176 100644 --- a/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx @@ -2,11 +2,17 @@ import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Video from 'flavours/glitch/features/video'; +import { connect } from 'react-redux'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Footer from 'flavours/glitch/features/picture_in_picture/components/footer'; import { getAverageFromBlurhash } from 'flavours/glitch/blurhash'; -export default class VideoModal extends ImmutablePureComponent { +const mapStateToProps = (state, { statusId }) => ({ + language: state.getIn(['statuses', statusId, 'language']), +}); + +export default @connect(mapStateToProps, null, null, { forwardRef: true }) +class VideoModal extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, @@ -15,6 +21,7 @@ export default class VideoModal extends ImmutablePureComponent { static propTypes = { media: ImmutablePropTypes.map.isRequired, statusId: PropTypes.string, + language: PropTypes.string, options: PropTypes.shape({ startTime: PropTypes.number, autoPlay: PropTypes.bool, @@ -35,7 +42,7 @@ export default class VideoModal extends ImmutablePureComponent { } render () { - const { media, statusId, onClose } = this.props; + const { media, statusId, language, onClose } = this.props; const options = this.props.options || {}; return ( @@ -53,6 +60,7 @@ export default class VideoModal extends ImmutablePureComponent { autoFocus detailed alt={media.get('description')} + lang={language} />
    diff --git a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx index 50b36b478b..82ba6e692a 100644 --- a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx @@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent { static propTypes = { alt: PropTypes.string, + lang: PropTypes.string, src: PropTypes.string.isRequired, width: PropTypes.number, height: PropTypes.number, @@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent { static defaultProps = { alt: '', + lang: '', width: null, height: null, }; @@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent { }; render () { - const { alt, src, width, height, intl } = this.props; + const { alt, lang, src, width, height, intl } = this.props; const { scale, lockTranslate } = this.state; const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll'; const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : ''; @@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent { ref={this.setImageRef} alt={alt} title={alt} + lang={lang} src={src} width={width} height={height} diff --git a/app/javascript/flavours/glitch/features/video/index.jsx b/app/javascript/flavours/glitch/features/video/index.jsx index cb923bcf76..9ab56b439e 100644 --- a/app/javascript/flavours/glitch/features/video/index.jsx +++ b/app/javascript/flavours/glitch/features/video/index.jsx @@ -101,6 +101,7 @@ class Video extends React.PureComponent { frameRate: PropTypes.string, src: PropTypes.string.isRequired, alt: PropTypes.string, + lang: PropTypes.string, width: PropTypes.number, height: PropTypes.number, sensitive: PropTypes.bool, @@ -538,7 +539,7 @@ class Video extends React.PureComponent { } render () { - const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props; + const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, 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 = {}; @@ -603,6 +604,7 @@ class Video extends React.PureComponent { tabIndex='0' aria-label={alt} title={alt} + lang={lang} width={width} height={height} volume={volume} From bb4e211c86270de6de8a78da96295208ee77dce1 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 5 Mar 2023 20:38:18 +0100 Subject: [PATCH 0612/1220] New Crowdin updates (#2118) * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] --- .../flavours/glitch/locales/es.json | 41 ++++++++++--------- config/locales-glitch/es.yml | 19 +++++---- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json index 7231fe1351..b85c05c4b3 100644 --- a/app/javascript/flavours/glitch/locales/es.json +++ b/app/javascript/flavours/glitch/locales/es.json @@ -8,12 +8,13 @@ "advanced_options.icon_title": "Opciones avanzadas", "advanced_options.local-only.long": "No publicar a otras instancias", "advanced_options.local-only.short": "Local", - "advanced_options.local-only.tooltip": "Este toot es local", + "advanced_options.local-only.tooltip": "Esta publicación es local", "advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta", "advanced_options.threaded_mode.short": "Modo hilo", "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado", + "boost_modal.missing_description": "Esta publicación contiene medios sin descripción", "column.favourited_by": "Marcado como favorito por", - "column.reblogged_by": "Retooteado por", + "column.reblogged_by": "Impulsado por", "column_header.profile": "Perfil", "column_subheading.lists": "Listas", "column_subheading.navigation": "Navegación", @@ -50,26 +51,26 @@ "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido", "settings.auto_collapse": "Colapsar automáticamente", "settings.auto_collapse_all": "Todo", - "settings.auto_collapse_lengthy": "Toots largos", - "settings.auto_collapse_media": "Toots con medios", + "settings.auto_collapse_lengthy": "Publicaciones largas", + "settings.auto_collapse_media": "Publicaciones multimedia", "settings.auto_collapse_notifications": "Notificaciones", - "settings.auto_collapse_reblogs": "Retoots", + "settings.auto_collapse_reblogs": "Impulsos", "settings.auto_collapse_replies": "Respuestas", "settings.close": "Cerrar", - "settings.collapsed_statuses": "Toots colapsados", + "settings.collapsed_statuses": "Publicaciones colapsadas", "settings.compose_box_opts": "Cuadro de redacción", - "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo", - "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción", - "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción", + "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir el mensaje siendo redactado", + "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de impulsar publicaciones con medios sin descripciones", + "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de enviar publicaciones con medios sin descripciones", "settings.content_warnings": "Advertencias de contenido", "settings.content_warnings.regexp": "Regexp (expresión regular)", "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:", - "settings.enable_collapsed": "Habilitar toots colapsados", - "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido", + "settings.enable_collapsed": "Habilitar publicaciones colapsadas", + "settings.enable_content_warnings_auto_unfold": "Desplegar automáticamente advertencias de contenido", "settings.hicolor_privacy_icons": "Íconos de privacidad más visibles", "settings.image_backgrounds": "Fondos de imágenes", - "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados", - "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados", + "settings.image_backgrounds_media": "Vista previa de medios de publicaciones colapsadas", + "settings.image_backgrounds_users": "Darle fondo de imagen a publicaciones colapsadas", "settings.inline_preview_cards": "Vista previa para enlaces externos", "settings.layout": "Diseño", "settings.layout_opts": "Opciones de diseño", @@ -91,21 +92,21 @@ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)", "settings.rewrite_mentions_no": "No reescribir menciones", "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix", - "settings.show_action_bar": "Mostrar botones de acción en toots colapsados", - "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots", + "settings.show_action_bar": "Mostrar botones de acción en publicaciones colapsadas", + "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear publicaciones", "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas", "settings.side_arm": "Botón secundario:", "settings.side_arm.none": "Ninguno", - "settings.side_arm_reply_mode": "Al responder a un toot, el botón de toot secundario debe:", - "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo", + "settings.side_arm_reply_mode": "Al responder a una publicación, el botón de publicación secundario debe:", + "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad de la publicación a la que estás respondiendo", "settings.side_arm_reply_mode.keep": "Conservar opción de privacidad", - "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo", + "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma de la publicación a la que estás respondiendo", "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)", "settings.tag_misleading_links": "Marcar enlaces engañosos", "settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente", "settings.wide_view": "Vista amplia (solo modo de escritorio)", "status.collapse": "Colapsar", - "status.in_reply_to": "Este toot es una respuesta", - "status.is_poll": "Este toot es una encuesta", + "status.in_reply_to": "Esta publicación es una respuesta", + "status.is_poll": "Esta publicación es una encuesta", "status.uncollapse": "Descolapsar" } diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index c03cea6c6f..1cc1aca610 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -2,27 +2,32 @@ es: admin: custom_emojis: - batch_copy_error: Se produjo un error cuando se copian algunos emojis seleccionados %{message} - batch_error: Ocurrió un error %{message} + batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}' + batch_error: 'Ocurrió un error %{message}' settings: + captcha_enabled: + title: Requerir que usuarixs nuevxs resuelvan un CAPTCHA para confirmar su cuenta hide_followers_count: desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix title: Ocultar conteo de seguidorxs outgoing_spoilers: desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles. - title: Advertencia de contenido para los toots salientes + title: Advertencia de contenido para publicaciones salientes show_reblogs_in_public_timelines: - desc_html: Mostrar retoots públicos en las línea de tiempo local y pública. - title: Mostrar retoots en líneas de tiempo públicas + desc_html: Mostrar impulsos públicos en las líneas de tiempo local y pública. + title: Mostrar impulsos en líneas de tiempo públicas show_replies_in_public_timelines: - desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública. + desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las líneas de tiempo local y pública. title: Mostrar respuestas en líneas de tiempo públicas trending_status_cw: - title: Permitir que toots con advertencias de contenido sean tendencia + title: Permitir que publicaciones con advertencias de contenido sean tendencia appearance: localization: glitch_guide_link: https://crowdin.com/project/glitch-soc glitch_guide_link_text: Al igual que para glitch-soc! + auth: + captcha_confirmation: + title: Verificación de usuarix generic: use_this: Usar settings: From 03ac84b0f4857f36a14e0b8f3196c35b00fb3b16 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Mar 2023 20:25:36 +0100 Subject: [PATCH 0613/1220] =?UTF-8?q?[Glitch]=20Fix=20duplicate=20?= =?UTF-8?q?=E2=80=9CPublish=E2=80=9D=20button=20on=20mobile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port b55fc883b6181fb8080fbafd53bc7a9f1896b295 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/ui/components/header.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/features/ui/components/header.jsx b/app/javascript/flavours/glitch/features/ui/components/header.jsx index d9ad949611..5aa045fee9 100644 --- a/app/javascript/flavours/glitch/features/ui/components/header.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/header.jsx @@ -23,8 +23,8 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -export default @connect(null, mapDispatchToProps) -@withRouter +export default @withRouter +@connect(null, mapDispatchToProps) class Header extends React.PureComponent { static contextTypes = { From 9a1bd1c3e9990056e847d16b407818df4adfdf24 Mon Sep 17 00:00:00 2001 From: Terry Garcia <10190993+TerryGarcia@users.noreply.github.com> Date: Fri, 3 Mar 2023 13:37:49 -0600 Subject: [PATCH 0614/1220] [Glitch] Switched bookmark and favourites around Port a1347f456e47e085ef1031b607cabd0683c496c2 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/ui/components/navigation_panel.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx index 3b46c6eec0..5a296435f6 100644 --- a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx @@ -78,8 +78,8 @@ class NavigationPanel extends React.Component { {signedIn && ( - + From 1317553f3a91b9372220fec8c40b537edfca2446 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 3 Mar 2023 21:06:31 +0100 Subject: [PATCH 0615/1220] [Glitch] Only offer translation for supported languages Port 5a8c651e8f0252c7135042e79396f782361302d9 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/components/status_content.jsx | 4 ++-- app/javascript/flavours/glitch/initial_state.js | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx index 790a5c6591..f217320659 100644 --- a/app/javascript/flavours/glitch/components/status_content.jsx +++ b/app/javascript/flavours/glitch/components/status_content.jsx @@ -5,7 +5,7 @@ import { FormattedMessage, injectIntl } from 'react-intl'; import Permalink from './permalink'; import classnames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; -import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'flavours/glitch/initial_state'; +import { autoPlayGif, languages as preloadedLanguages } from 'flavours/glitch/initial_state'; import { decode as decodeIDNA } from 'flavours/glitch/utils/idna'; const textMatchesTarget = (text, origin, host) => { @@ -315,7 +315,7 @@ class StatusContent extends React.PureComponent { } = this.props; const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; - const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); + const renderTranslate = this.props.onTranslate && status.get('translatable'); const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index c4b249db81..03be4ff6cf 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -140,7 +140,6 @@ export const unfollowModal = getMeta('unfollow_modal'); export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); -export const translationEnabled = getMeta('translation_enabled'); export const languages = initialState?.languages; export const statusPageUrl = getMeta('status_page_url'); From 7f3b0dedebfb1e200b23f0e3e1151e1050424a34 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 5 Mar 2023 21:25:48 +0100 Subject: [PATCH 0616/1220] Refactor glitch-soc rich text SCSS --- .../styles/components/compose_form.scss | 76 +------------- .../glitch/styles/components/status.scss | 86 +--------------- .../flavours/glitch/styles/index.scss | 1 + .../flavours/glitch/styles/rich_text.scss | 99 +++++++++++++++++++ 4 files changed, 102 insertions(+), 160 deletions(-) create mode 100644 app/javascript/flavours/glitch/styles/rich_text.scss diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss index aa2cc664ee..1c2e0aeb4d 100644 --- a/app/javascript/flavours/glitch/styles/components/compose_form.scss +++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss @@ -164,8 +164,7 @@ white-space: pre-wrap; p, - pre, - blockquote { + pre { margin-bottom: 20px; white-space: pre-wrap; @@ -174,79 +173,6 @@ } } - h1, - h2, - h3, - h4, - h5 { - margin-top: 20px; - margin-bottom: 20px; - } - - h1, - h2 { - font-weight: 700; - font-size: 18px; - } - - h2 { - font-size: 16px; - } - - h3, - h4, - h5 { - font-weight: 500; - } - - blockquote { - padding-left: 10px; - border-left: 3px solid $inverted-text-color; - color: $inverted-text-color; - white-space: normal; - - p:last-child { - margin-bottom: 0; - } - } - - b, - strong { - font-weight: 700; - } - - em, - i { - font-style: italic; - } - - sub { - font-size: smaller; - vertical-align: sub; - } - - sup { - font-size: smaller; - vertical-align: super; - } - - ul, - ol { - margin-left: 1em; - - p { - margin: 0; - } - } - - ul { - list-style-type: disc; - } - - ol { - list-style-type: decimal; - } - a { color: $lighter-text-color; text-decoration: none; diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss index 7f94b25e9f..1a7dfe9aed 100644 --- a/app/javascript/flavours/glitch/styles/components/status.scss +++ b/app/javascript/flavours/glitch/styles/components/status.scss @@ -68,8 +68,7 @@ } p, - pre, - blockquote { + pre { margin-bottom: 20px; white-space: pre-wrap; unicode-bidi: plaintext; @@ -79,89 +78,6 @@ } } - .status__content__text, - .e-content { - overflow: hidden; - - & > ul, - & > ol { - margin-bottom: 20px; - } - - h1, - h2, - h3, - h4, - h5 { - margin-top: 20px; - margin-bottom: 20px; - } - - h1, - h2 { - font-weight: 700; - font-size: 1.2em; - } - - h2 { - font-size: 1.1em; - } - - h3, - h4, - h5 { - font-weight: 500; - } - - blockquote { - padding-left: 10px; - border-left: 3px solid $darker-text-color; - color: $darker-text-color; - white-space: normal; - - p:last-child { - margin-bottom: 0; - } - } - - b, - strong { - font-weight: 700; - } - - em, - i { - font-style: italic; - } - - sub { - font-size: smaller; - vertical-align: sub; - } - - sup { - font-size: smaller; - vertical-align: super; - } - - ul, - ol { - margin-left: 2em; - - p { - margin: 0; - } - } - - ul { - list-style-type: disc; - } - - ol { - list-style-type: decimal; - } - } - a { color: $secondary-text-color; text-decoration: none; diff --git a/app/javascript/flavours/glitch/styles/index.scss b/app/javascript/flavours/glitch/styles/index.scss index fbb02c7884..1cb913c8b8 100644 --- a/app/javascript/flavours/glitch/styles/index.scss +++ b/app/javascript/flavours/glitch/styles/index.scss @@ -21,3 +21,4 @@ @import 'accessibility'; @import 'rtl'; @import 'dashboard'; +@import 'rich_text'; diff --git a/app/javascript/flavours/glitch/styles/rich_text.scss b/app/javascript/flavours/glitch/styles/rich_text.scss new file mode 100644 index 0000000000..e608183534 --- /dev/null +++ b/app/javascript/flavours/glitch/styles/rich_text.scss @@ -0,0 +1,99 @@ +.status__content__text, +.e-content, +.reply-indicator__content { + pre, + blockquote { + margin-bottom: 20px; + white-space: pre-wrap; + unicode-bidi: plaintext; + + &:last-child { + margin-bottom: 0; + } + } + + blockquote { + padding-left: 10px; + border-left: 3px solid $darker-text-color; + color: $darker-text-color; + white-space: normal; + + p:last-child { + margin-bottom: 0; + } + } + + & > ul, + & > ol { + margin-bottom: 20px; + } + + h1, + h2, + h3, + h4, + h5 { + margin-top: 20px; + margin-bottom: 20px; + } + + h1, + h2 { + font-weight: 700; + font-size: 1.2em; + } + + h2 { + font-size: 1.1em; + } + + h3, + h4, + h5 { + font-weight: 500; + } + + b, + strong { + font-weight: 700; + } + + em, + i { + font-style: italic; + } + + sub { + font-size: smaller; + vertical-align: sub; + } + + sup { + font-size: smaller; + vertical-align: super; + } + + ul, + ol { + margin-left: 2em; + + p { + margin: 0; + } + } + + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } +} + +.reply-indicator__content { + blockquote { + border-left-color: $inverted-text-color; + color: $inverted-text-color; + } +} From 7f96391eaef601ea34672551bb06915acec7e492 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 5 Mar 2023 21:27:27 +0100 Subject: [PATCH 0617/1220] Normalize translations --- config/locales-glitch/es.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml index 1cc1aca610..05a9313723 100644 --- a/config/locales-glitch/es.yml +++ b/config/locales-glitch/es.yml @@ -2,8 +2,8 @@ es: admin: custom_emojis: - batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}' - batch_error: 'Ocurrió un error %{message}' + batch_copy_error: Se produjo un error cuando se copian algunos emojis seleccionados %{message} + batch_error: Ocurrió un error %{message} settings: captcha_enabled: title: Requerir que usuarixs nuevxs resuelvan un CAPTCHA para confirmar su cuenta From c4cf92094ec3cc065df2b05c76352dcb72020777 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 6 Mar 2023 15:37:19 +0100 Subject: [PATCH 0618/1220] Do not strip tags from `Setting.site_short_description` (#23975) --- app/views/application/_sidebar.html.haml | 2 +- app/views/shared/_og.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml index 6d18668b08..9d0efa7e10 100644 --- a/app/views/application/_sidebar.html.haml +++ b/app/views/application/_sidebar.html.haml @@ -3,7 +3,7 @@ = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title .hero-widget__text - %p= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html') + %p= @instance_presenter.description.presence || t('about.about_mastodon_html') - if Setting.trends && !(user_signed_in? && !current_user.setting_trends) - trends = Trends.tags.query.allowed.limit(3) diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml index 2941b566e0..a5d99ae33a 100644 --- a/app/views/shared/_og.html.haml +++ b/app/views/shared/_og.html.haml @@ -1,5 +1,5 @@ - thumbnail = @instance_presenter.thumbnail -- description ||= strip_tags(@instance_presenter.description.presence || t('about.about_mastodon_html')) +- description ||= @instance_presenter.description.presence || strip_tags(t('about.about_mastodon_html')) %meta{ name: 'description', content: description }/ From 4595862978a7f726fbd6139a1bc415cc83cf34fe Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 6 Mar 2023 09:43:21 -0500 Subject: [PATCH 0619/1220] Remove pinned rexml (#23964) --- Gemfile | 1 - Gemfile.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index d3eefb224c..5804327cca 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,6 @@ source 'https://rubygems.org' ruby '>= 2.7.0', '< 3.3.0' gem 'pkg-config', '~> 1.5' -gem 'rexml', '~> 3.2' gem 'puma', '~> 6.1' gem 'rails', '~> 6.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index 6f75f8f769..c6b4e74f6a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -855,7 +855,6 @@ DEPENDENCIES redcarpet (~> 3.6) redis (~> 4.5) redis-namespace (~> 1.10) - rexml (~> 3.2) rqrcode (~> 2.1) rspec-rails (~> 6.0) rspec-sidekiq (~> 3.1) From 86f8aa2db2bf4f19f482b5857c4e49b8791eb514 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 6 Mar 2023 16:00:08 +0100 Subject: [PATCH 0620/1220] Fix unconfirmed accounts being registered as active users (#23803) --- app/models/user.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 5e106dee57..d56a9b9ca1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -507,11 +507,14 @@ class User < ApplicationRecord def prepare_new_user! BootstrapTimelineWorker.perform_async(account_id) ActivityTracker.increment('activity:accounts:local') + ActivityTracker.record('activity:logins', id) UserMailer.welcome(self).deliver_later TriggerWebhookWorker.perform_async('account.approved', 'Account', account_id) end def prepare_returning_user! + return unless confirmed? + ActivityTracker.record('activity:logins', id) regenerate_feed! if needs_feed_update? end From 21db91a0a8fbe5b4fd69eecd2aeb4a84823343a0 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 6 Mar 2023 16:25:35 +0100 Subject: [PATCH 0621/1220] Remove sidebar dead code (#23984) --- app/views/application/_sidebar.html.haml | 16 ---------------- config/locales/an.yml | 2 -- config/locales/ar.yml | 2 -- config/locales/ast.yml | 2 -- config/locales/be.yml | 2 -- config/locales/bg.yml | 2 -- config/locales/ca.yml | 2 -- config/locales/ckb.yml | 2 -- config/locales/co.yml | 2 -- config/locales/cs.yml | 2 -- config/locales/cy.yml | 2 -- config/locales/da.yml | 2 -- config/locales/de.yml | 2 -- config/locales/el.yml | 2 -- config/locales/en.yml | 2 -- config/locales/eo.yml | 2 -- config/locales/es-AR.yml | 2 -- config/locales/es-MX.yml | 2 -- config/locales/es.yml | 2 -- config/locales/et.yml | 2 -- config/locales/eu.yml | 2 -- config/locales/fa.yml | 2 -- config/locales/fi.yml | 2 -- config/locales/fo.yml | 2 -- config/locales/fr-QC.yml | 2 -- config/locales/fr.yml | 2 -- config/locales/fy.yml | 2 -- config/locales/gd.yml | 2 -- config/locales/gl.yml | 2 -- config/locales/he.yml | 2 -- config/locales/hr.yml | 2 -- config/locales/hu.yml | 2 -- config/locales/hy.yml | 2 -- config/locales/id.yml | 2 -- config/locales/io.yml | 2 -- config/locales/is.yml | 2 -- config/locales/it.yml | 2 -- config/locales/ja.yml | 2 -- config/locales/kab.yml | 2 -- config/locales/kk.yml | 2 -- config/locales/ko.yml | 2 -- config/locales/ku.yml | 2 -- config/locales/lv.yml | 2 -- config/locales/nl.yml | 2 -- config/locales/nn.yml | 2 -- config/locales/no.yml | 2 -- config/locales/oc.yml | 2 -- config/locales/pl.yml | 2 -- config/locales/pt-BR.yml | 2 -- config/locales/pt-PT.yml | 2 -- config/locales/ru.yml | 2 -- config/locales/sc.yml | 2 -- config/locales/sco.yml | 2 -- config/locales/si.yml | 2 -- config/locales/sk.yml | 2 -- config/locales/sl.yml | 2 -- config/locales/sq.yml | 2 -- config/locales/sv.yml | 2 -- config/locales/th.yml | 2 -- config/locales/tr.yml | 2 -- config/locales/uk.yml | 2 -- config/locales/vi.yml | 2 -- config/locales/zh-CN.yml | 2 -- config/locales/zh-HK.yml | 2 -- config/locales/zh-TW.yml | 2 -- 65 files changed, 144 deletions(-) delete mode 100644 app/views/application/_sidebar.html.haml diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml deleted file mode 100644 index 9d0efa7e10..0000000000 --- a/app/views/application/_sidebar.html.haml +++ /dev/null @@ -1,16 +0,0 @@ -.hero-widget - .hero-widget__img - = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title - - .hero-widget__text - %p= @instance_presenter.description.presence || t('about.about_mastodon_html') - -- if Setting.trends && !(user_signed_in? && !current_user.setting_trends) - - trends = Trends.tags.query.allowed.limit(3) - - - unless trends.empty? - .endorsements-widget.trends-widget - %h4.emojify= t('footer.trending_now') - - - trends.each do |tag| - = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer, scope: current_user, scope_name: :current_user).as_json diff --git a/config/locales/an.yml b/config/locales/an.yml index 3a6ddda1b7..2e1a7e36ff 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1159,8 +1159,6 @@ an: index: hint: Este filtro s'aplica a la selección de publicacions individuals independientment d'atros criterios. Puede anyadir mas publicacions a este filtro dende la interficie web. title: Publicacions filtradas - footer: - trending_now: Tendencia agora generic: all: Totz all_items_on_page_selected_html: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 32130cc7da..d72a11130b 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1214,8 +1214,6 @@ ar: index: hint: ينطبق الفلتر هذا على اختيار المنشورات الفردية بغض النظر عن المعايير الأخرى. يمكنك إضافة المزيد من المنشورات إلى هذا الفلتر من واجهة الويب. title: الرسائل المصفّاة - footer: - trending_now: المتداولة الآن generic: all: الكل changes_saved_msg: تم حفظ التعديلات بنجاح! diff --git a/config/locales/ast.yml b/config/locales/ast.yml index afdb5176c4..b59ebba455 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -601,8 +601,6 @@ ast: title: Peñeres new: title: Amestar una peñera - footer: - trending_now: En tendencia generic: all: Too all_items_on_page_selected_html: diff --git a/config/locales/be.yml b/config/locales/be.yml index 17fcabe9b0..05c7b7bffe 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1238,8 +1238,6 @@ be: index: hint: Гэты фільтр прымяняецца для выбару асобных допісаў незалежна ад іншых крытэрыяў. Вы можаце дадаць больш допісаў у гэты фільтр з вэб-інтэрфейсу. title: Адфільтраваныя допісы - footer: - trending_now: Актуальнае generic: all: Усе all_items_on_page_selected_html: diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 7483c562b0..34f0542759 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1196,8 +1196,6 @@ bg: index: hint: Този филтър се прилага за избор на отделни публикации, независимо от други критерии. Може да добавите още публикации в този филтър от уебинтерфейса. title: Филтрирани публикации - footer: - trending_now: Налагащи се сега generic: all: Всичко all_items_on_page_selected_html: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 68c5db23e4..2a459dbde6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1196,8 +1196,6 @@ ca: index: 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: all: Tot all_items_on_page_selected_html: diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index 2cfa5dfee8..0f481c8ce2 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -744,8 +744,6 @@ ckb: title: فلتەرەکان new: title: زیادکردنی فلتەری نوێ - footer: - trending_now: هەوادارانی ئێستا generic: all: هەموو changes_saved_msg: گۆڕانکاریەکان بە سەرکەوتوویی هەڵگیرا! diff --git a/config/locales/co.yml b/config/locales/co.yml index 6cf1f28b33..94f2101c20 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -704,8 +704,6 @@ co: title: Filtri new: title: Aghjunghje un novu filtru - footer: - trending_now: Tindenze d'avà generic: all: Tuttu changes_saved_msg: Cambiamenti salvati! diff --git a/config/locales/cs.yml b/config/locales/cs.yml index f6796ec6b8..8c44bba8c5 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1213,8 +1213,6 @@ cs: index: hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní. title: Filtrované příspěvky - footer: - trending_now: Právě populární generic: all: Všechny all_items_on_page_selected_html: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 14ecbe7034..f887329885 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1280,8 +1280,6 @@ cy: index: hint: Mae'r hidlydd hwn yn berthnasol i ddethol postiadau unigol waeth beth fo'r meini prawf eraill. Gallwch ychwanegu mwy o bostiadau at yr hidlydd hwn o'r rhyngwyneb gwe. title: Postiadau wedi'u hidlo - footer: - trending_now: Trendiau generic: all: Popeth all_items_on_page_selected_html: diff --git a/config/locales/da.yml b/config/locales/da.yml index 38111748d8..a75364a792 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1192,8 +1192,6 @@ da: index: hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen. title: Filtrerede indlæg - footer: - trending_now: Trender lige nu generic: all: Alle all_items_on_page_selected_html: diff --git a/config/locales/de.yml b/config/locales/de.yml index 69284b09f9..3f2666bdbf 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1196,8 +1196,6 @@ de: index: hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen. title: Gefilterte Beiträge - footer: - trending_now: Jetzt in den Trends generic: all: Alle all_items_on_page_selected_html: diff --git a/config/locales/el.yml b/config/locales/el.yml index 7994f71740..3ed8ca4054 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -875,8 +875,6 @@ el: new: save: Αποθήκευση νέου φίλτρου title: Πρόσθεσε νέο φίλτρο - footer: - trending_now: Τάσεις generic: all: Όλα changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν! diff --git a/config/locales/en.yml b/config/locales/en.yml index 97d0999e4a..87231836ae 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1196,8 +1196,6 @@ en: index: hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface. title: Filtered posts - footer: - trending_now: Trending now generic: all: All all_items_on_page_selected_html: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 151ca2429f..a8279b6a6f 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1197,8 +1197,6 @@ eo: index: hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj. title: Filtritaj mesaĝoj - footer: - trending_now: Nunaj furoraĵoj generic: all: Ĉio all_items_on_page_selected_html: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 8d934011cd..bef481b35d 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1196,8 +1196,6 @@ es-AR: index: hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web. title: Mensajes filtrados - footer: - trending_now: Tendencia ahora generic: all: Todas all_items_on_page_selected_html: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 1267c49172..978cd0c3ce 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1196,8 +1196,6 @@ es-MX: index: hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. title: Publicaciones filtradas - footer: - trending_now: Tendencia ahora generic: all: Todos all_items_on_page_selected_html: diff --git a/config/locales/es.yml b/config/locales/es.yml index f87042792f..29c4e84e73 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1196,8 +1196,6 @@ es: index: hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. title: Publicaciones filtradas - footer: - trending_now: Tendencia ahora generic: all: Todos all_items_on_page_selected_html: diff --git a/config/locales/et.yml b/config/locales/et.yml index 1b5910154e..55cb810116 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1196,8 +1196,6 @@ et: index: hint: See filter kehtib üksikute postituste valimisel, sõltumata muudest kriteeriumidest. Sellesse filtrisse saab veebiliidese kaudu rohkem postitusi lisada. title: Filtreeritud postitused - footer: - trending_now: Praegu trendikad generic: all: Kõik all_items_on_page_selected_html: diff --git a/config/locales/eu.yml b/config/locales/eu.yml index b9a9482bf5..0b2ab33d4d 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1198,8 +1198,6 @@ eu: index: hint: Iragazki honek banako bidalketei eragiten die, beste kriterioak badaude ere. Bidalketa gehiago gehitu ditzakezu iragazkira web interfazetik. title: Iragazitako bidalketak - footer: - trending_now: Joera orain generic: all: Denak all_items_on_page_selected_html: diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 88366c7b95..a418dc3776 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -890,8 +890,6 @@ fa: title: پالایه‌ها new: title: افزودن پالایهٔ جدید - footer: - trending_now: پرطرفدار generic: all: همه changes_saved_msg: تغییرات با موفقیت ذخیره شدند! diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 8a77fa8a57..30d5f11791 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1196,8 +1196,6 @@ fi: index: hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä. title: Suodatetut viestit - footer: - trending_now: Suosittua nyt generic: all: Kaikki all_items_on_page_selected_html: diff --git a/config/locales/fo.yml b/config/locales/fo.yml index db3aca3693..baebaae2f3 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1196,8 +1196,6 @@ fo: index: hint: Hetta filtrið er galdandi fyri útvaldar stakar postar óansæð aðrar treytir. Tú kanst leggja fleiri postar afturat hesum filtrinum frá vevmarkamótinum. title: Filtreraðir postar - footer: - trending_now: Rák beint nú generic: all: Alt all_items_on_page_selected_html: diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 76788b995d..922cea0dca 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -1196,8 +1196,6 @@ fr-QC: index: hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web. title: Messages filtrés - footer: - trending_now: Tendance en ce moment generic: all: Tous all_items_on_page_selected_html: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c3ec4bdc7a..c0d48df88f 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1196,8 +1196,6 @@ fr: index: hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web. title: Messages filtrés - footer: - trending_now: Tendance en ce moment generic: all: Tous all_items_on_page_selected_html: diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 45e15a4d2f..2c1c8657ff 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1196,8 +1196,6 @@ fy: 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: diff --git a/config/locales/gd.yml b/config/locales/gd.yml index f47c99073d..b5347d91b4 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1225,8 +1225,6 @@ gd: index: hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn. title: Postaichean criathraichte - footer: - trending_now: A’ treandadh an-dràsta generic: all: Na h-uile all_items_on_page_selected_html: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index cdb128f927..2c3af8f889 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1196,8 +1196,6 @@ gl: index: hint: Este filtro aplícase para seleccionar publicacións individuais independentemente doutros criterios. Podes engadir máis publicacións a este filtro desde a interface web. title: Publicacións filtradas - footer: - trending_now: Tendencia agora generic: all: Todo all_items_on_page_selected_html: diff --git a/config/locales/he.yml b/config/locales/he.yml index 064e127a0d..a4af50b533 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1238,8 +1238,6 @@ he: index: hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב. title: הודעות שסוננו - footer: - trending_now: נושאים חמים generic: all: הכל all_items_on_page_selected_html: diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 0563712266..e9d414ef59 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -99,8 +99,6 @@ hr: title: Filteri new: title: Dodaj novi filter - footer: - trending_now: Popularno generic: all: Sve changes_saved_msg: Izmjene su uspješno sačuvane! diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 620e8d6799..2887b4a69a 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1196,8 +1196,6 @@ hu: index: hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül. title: Megszűrt bejegyzések - footer: - trending_now: Most felkapott generic: all: Mind all_items_on_page_selected_html: diff --git a/config/locales/hy.yml b/config/locales/hy.yml index de995c5b5e..158402ce81 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -575,8 +575,6 @@ hy: title: Ֆիլտրեր new: title: Ավելացնել ֆիլտր - footer: - trending_now: Այժմ արդիական generic: all: Բոլորը changes_saved_msg: Փոփոխութիւնները յաջող պահուած են diff --git a/config/locales/id.yml b/config/locales/id.yml index 2363cc66ac..0342c7bd90 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1133,8 +1133,6 @@ id: index: hint: Saringan ini diterapkan ke beberapa kiriman individu tanpa memengaruhi oleh kriteria lain. Anda dapat menambahkan lebih banyak kiriman ke saringan ini dari antarmuka web. title: Kiriman yang disaring - footer: - trending_now: Sedang tren generic: all: Semua all_items_on_page_selected_html: diff --git a/config/locales/io.yml b/config/locales/io.yml index 9ef6c03128..b557788297 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1112,8 +1112,6 @@ io: index: hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo. title: Filtrita posti - footer: - trending_now: Nuna tendenco generic: all: Omna all_items_on_page_selected_html: diff --git a/config/locales/is.yml b/config/locales/is.yml index 5f63482522..2ba3d3108c 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1196,8 +1196,6 @@ is: index: hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu. title: Síaðar færslur - footer: - trending_now: Í umræðunni núna generic: all: Allt all_items_on_page_selected_html: diff --git a/config/locales/it.yml b/config/locales/it.yml index 9256ed49d9..ce3fd34b7e 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1198,8 +1198,6 @@ it: index: hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web. title: Post filtrati - footer: - trending_now: Di tendenza ora generic: all: Tutto all_items_on_page_selected_html: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 374fdaf84a..6743d83883 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1175,8 +1175,6 @@ ja: index: hint: このフィルターは、他の条件に関係なく個々の投稿を選択する場合に適用されます。Webインターフェースからこのフィルターにさらに投稿を追加できます。 title: フィルターされた投稿 - footer: - trending_now: トレンドタグ generic: all: すべて all_items_on_page_selected_html: diff --git a/config/locales/kab.yml b/config/locales/kab.yml index ead31b695f..085a8958a9 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -543,8 +543,6 @@ kab: back_to_filter: Tuɣalin ɣer umsizdeg batch: remove: Kkes seg umsizdeg - footer: - trending_now: Ayen mucaɛen tura generic: all: Akk changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq! diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 959f7b0f01..c7bdae1772 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -470,8 +470,6 @@ kk: title: Фильтрлер new: title: Жаңа фильтр қосу - footer: - trending_now: Бүгінгі трендтер generic: all: Барлығы changes_saved_msg: Өзгерістер сәтті сақталды! diff --git a/config/locales/ko.yml b/config/locales/ko.yml index fb778f803f..057e57068f 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1177,8 +1177,6 @@ ko: index: hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다. title: 필터링된 게시물 - footer: - trending_now: 지금 유행 중 generic: all: 모두 all_items_on_page_selected_html: diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 899cd936a0..fa291b5c7f 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1156,8 +1156,6 @@ ku: index: hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî. title: Şandiyên parzûnkirî - footer: - trending_now: Niha rojevê de generic: all: Hemû all_items_on_page_selected_html: diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 8bcb23c602..1c5eb356d4 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1217,8 +1217,6 @@ lv: index: hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni. title: Filtrētās ziņas - footer: - trending_now: Šobrīd populārākie generic: all: Visi all_items_on_page_selected_html: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index e9a63e9d83..7732a64421 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1196,8 +1196,6 @@ nl: index: hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere criteria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen. title: Gefilterde berichten - footer: - trending_now: Trends generic: all: Alles all_items_on_page_selected_html: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 49f30bab09..7b860b54b2 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1156,8 +1156,6 @@ nn: index: hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet. title: Filtrerte innlegg - footer: - trending_now: Populært no generic: all: Alle all_items_on_page_selected_html: diff --git a/config/locales/no.yml b/config/locales/no.yml index 3036ce050f..ebad60b73c 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1131,8 +1131,6 @@ index: hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet. title: Filtrerte innlegg - footer: - trending_now: Trender nå generic: all: Alle all_items_on_page_selected_html: diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 1d5ed61fe7..e1406ec614 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -627,8 +627,6 @@ oc: title: Filtres new: title: Ajustar un nòu filtre - footer: - trending_now: Tendéncia del moment generic: all: Tot changes_saved_msg: Cambiaments ben realizats ! diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 90a6aaf9ee..d086161910 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1238,8 +1238,6 @@ pl: index: hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego. title: Filtrowane posty - footer: - trending_now: Obecnie na czasie generic: all: Wszystkie all_items_on_page_selected_html: diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index d855721077..5192a83d22 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1179,8 +1179,6 @@ pt-BR: index: hint: Este filtro se aplica a publicações individuais, independentemente de outros critérios. Você pode adicionar mais postagens a este filtro a partir da interface web. title: Publicações filtradas - footer: - trending_now: Em alta no momento generic: all: Tudo all_items_on_page_selected_html: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index d3649ba40d..2718a7fb46 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1196,8 +1196,6 @@ pt-PT: 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: Em alta neste momento generic: all: Tudo all_items_on_page_selected_html: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9b8749b818..bfb3f5779c 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1226,8 +1226,6 @@ ru: index: hint: Этот фильтр применяется для выбора отдельных постов, независимо от других критериев. Вы можете добавить больше записей в этот фильтр из веб-интерфейса. title: Отфильтрованные посты - footer: - trending_now: Актуально сейчас generic: all: Любой all_items_on_page_selected_html: diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 3a84f81702..113786f77a 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -658,8 +658,6 @@ sc: title: Filtros new: title: Agiunghe unu filtru nou - footer: - trending_now: Est tendèntzia immoe generic: all: Totus changes_saved_msg: Modìficas sarvadas. diff --git a/config/locales/sco.yml b/config/locales/sco.yml index 6cd4be0601..719a8918fc 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1146,8 +1146,6 @@ sco: index: hint: This filter applies tae select individual posts regairdless o ither criteria. Ye kin add mair posts tae this filter fae the wab interface. title: Filtert posts - footer: - trending_now: Trendin the noo generic: all: Aw all_items_on_page_selected_html: diff --git a/config/locales/si.yml b/config/locales/si.yml index 9a639b720d..87eaee5b6b 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -959,8 +959,6 @@ si: new: save: නව පෙරහන සුරකින්න title: නව පෙරහනක් එකතු කරන්න - footer: - trending_now: දැන් ප්‍රවණතාවය generic: all: සියල්ල changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී! diff --git a/config/locales/sk.yml b/config/locales/sk.yml index da653857fb..f1b021127b 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -814,8 +814,6 @@ sk: title: Triedenia new: title: Pridaj nové triedenie - footer: - trending_now: Teraz populárne generic: all: Všetko changes_saved_msg: Zmeny boli úspešne uložené! diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 7cabc0cd86..303f9ea559 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1238,8 +1238,6 @@ sl: index: hint: Ta filter se nanaša na posamezne objave ne glede na druge pogoje. Filtru lahko dodate več objav prek spletnega vmesnika. title: Filtrirane objave - footer: - trending_now: Zdaj v trendu generic: all: Vse all_items_on_page_selected_html: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 467aa8967e..ea94dfb6a3 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1190,8 +1190,6 @@ sq: index: hint: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësisht kriteresh të tjera. Që nga ndërfaqja web mund të shtoni më tepër postime te ky filtër. title: Postime të filtruar - footer: - trending_now: Prirjet e tashme generic: all: Krejt all_items_on_page_selected_html: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 9352f0c19a..aea9cea4e6 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1196,8 +1196,6 @@ sv: index: hint: Detta filter gäller för att välja enskilda inlägg oavsett andra kriterier. Du kan lägga till fler inlägg till detta filter från webbgränssnittet. title: Filtrerade inlägg - footer: - trending_now: Trendar nu generic: all: Alla all_items_on_page_selected_html: diff --git a/config/locales/th.yml b/config/locales/th.yml index 9c4a7bfc58..815936a2d1 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1175,8 +1175,6 @@ th: index: hint: ตัวกรองนี้นำไปใช้เพื่อเลือกโพสต์แต่ละรายการโดยไม่คำนึงถึงเกณฑ์อื่น ๆ คุณสามารถเพิ่มโพสต์เพิ่มเติมไปยังตัวกรองนี้ได้จากส่วนติดต่อเว็บ title: โพสต์ที่กรองอยู่ - footer: - trending_now: กำลังนิยม generic: all: ทั้งหมด all_items_on_page_selected_html: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 90a4208f0a..6cbd3f5103 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1196,8 +1196,6 @@ tr: index: hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz. title: Filtrelenmiş gönderiler - footer: - trending_now: Şu an gündemde generic: all: Tümü all_items_on_page_selected_html: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 347f7414dc..44d54363f3 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1238,8 +1238,6 @@ uk: index: hint: Цей фільтр застосовується для вибору окремих дописів, незалежно від інших критеріїв. Ви можете додавати більше дописів до цього фільтра з вебінтерфейсу. title: Відфільтровані дописи - footer: - trending_now: Актуальні generic: all: Усі all_items_on_page_selected_html: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 538b9304b0..88592b7044 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1175,8 +1175,6 @@ vi: index: hint: Bộ lọc này áp dụng để chọn các tút riêng lẻ bất kể các tiêu chí khác. Bạn có thể thêm các tút khác vào bộ lọc này từ giao diện web. title: Những tút đã lọc - footer: - trending_now: Thịnh hành generic: all: Tất cả all_items_on_page_selected_html: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index e8ca1910a7..ed1780ce8d 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1175,8 +1175,6 @@ zh-CN: index: hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。 title: 过滤的嘟文 - footer: - trending_now: 现在流行 generic: all: 全部 all_items_on_page_selected_html: diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 6538e34590..405f321d46 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1175,8 +1175,6 @@ zh-HK: index: hint: 不管其他條件如何,此篩選器會套用於所選的個別帖文。你可以在網頁介面上加入更多帖文到此篩選器。 title: 篩選帖文 - footer: - trending_now: 今期流行 generic: all: 全部 all_items_on_page_selected_html: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index a25818bca6..3174287175 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1177,8 +1177,6 @@ zh-TW: index: hint: 此過濾器會套用至所選之各別嘟文,不管它們有無符合其他條件。您可以從網頁介面中將更多嘟文加入至此過濾器。 title: 已過濾之嘟文 - footer: - trending_now: 現正熱門 generic: all: 全部 all_items_on_page_selected_html: From 3158b0ac17ad3e09170c2331b6307de3a8eac4c3 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Mon, 6 Mar 2023 16:35:23 +0100 Subject: [PATCH 0622/1220] v4.1.0+2.0.2 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index c50e532abf..8b8ef01bb9 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+2.0.1' + '+2.0.2' end def to_a From 8770473dbb92042f76e058469a76e5bb4beecb9f Mon Sep 17 00:00:00 2001 From: PauloVilarinho <33267902+PauloVilarinho@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:33:09 -0300 Subject: [PATCH 0623/1220] add modal message when editing toot (#23936) Co-authored-by: PauloVilarinho --- .../mastodon/containers/status_container.jsx | 15 ++++++++++++++- app/javascript/mastodon/locales/en.json | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx index 294105f259..580f409e94 100644 --- a/app/javascript/mastodon/containers/status_container.jsx +++ b/app/javascript/mastodon/containers/status_container.jsx @@ -56,6 +56,8 @@ const messages = defineMessages({ redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' }, replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, + editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, + editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' }, }); @@ -149,7 +151,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ }, onEdit (status, history) { - dispatch(editStatus(status.get('id'), history)); + dispatch((_, getState) => { + let state = getState(); + if (state.getIn(['compose', 'text']).trim().length !== 0) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.editMessage), + confirm: intl.formatMessage(messages.editConfirm), + onConfirm: () => dispatch(editStatus(status.get('id'), history)), + })); + } else { + dispatch(editStatus(status.get('id'), history)); + } + }); }, onTranslate (status) { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ae7722635d..f4d0519403 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Block entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", From dfa1be4ab451a4dd099ad3c140502fb0759ef832 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 6 Mar 2023 11:33:58 -0500 Subject: [PATCH 0624/1220] Remove unused TOCGenerator (#23986) --- app/lib/toc_generator.rb | 69 ---------------------------------------- 1 file changed, 69 deletions(-) delete mode 100644 app/lib/toc_generator.rb diff --git a/app/lib/toc_generator.rb b/app/lib/toc_generator.rb deleted file mode 100644 index 0c8f766ca4..0000000000 --- a/app/lib/toc_generator.rb +++ /dev/null @@ -1,69 +0,0 @@ -# frozen_string_literal: true - -class TOCGenerator - TARGET_ELEMENTS = %w(h1 h2 h3 h4 h5 h6).freeze - LISTED_ELEMENTS = %w(h2 h3).freeze - - class Section - attr_accessor :depth, :title, :children, :anchor - - def initialize(depth, title, anchor) - @depth = depth - @title = title - @children = [] - @anchor = anchor - end - - delegate :<<, to: :children - end - - def initialize(source_html) - @source_html = source_html - @processed = false - @target_html = '' - @headers = [] - @slugs = Hash.new { |h, k| h[k] = 0 } - end - - def html - parse_and_transform unless @processed - @target_html - end - - def toc - parse_and_transform unless @processed - @headers - end - - private - - def parse_and_transform - return if @source_html.blank? - - parsed_html = Nokogiri::HTML.fragment(@source_html) - - parsed_html.traverse do |node| - next unless TARGET_ELEMENTS.include?(node.name) - - anchor = node['id'] || node.text.parameterize.presence || 'sec' - @slugs[anchor] += 1 - anchor = "#{anchor}-#{@slugs[anchor]}" if @slugs[anchor] > 1 - - node['id'] = anchor - - next unless LISTED_ELEMENTS.include?(node.name) - - depth = node.name[1..-1] - latest_section = @headers.last - - if latest_section.nil? || latest_section.depth >= depth - @headers << Section.new(depth, node.text, anchor) - else - latest_section << Section.new(depth, node.text, anchor) - end - end - - @target_html = parsed_html.to_s - @processed = true - end -end From 59b24c3688628a3cb778e71fc0684636cbda557b Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 6 Mar 2023 17:44:55 +0100 Subject: [PATCH 0625/1220] Fix `/api/v1/streaming` sub-paths not being redirected (#23988) --- config/routes.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index e7c4c000ee..530b46a5a5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -472,7 +472,9 @@ Rails.application.routes.draw do resources :list, only: :show end - resources :streaming, only: [:index] + get '/streaming', to: 'streaming#index' + get '/streaming/(*any)', to: 'streaming#index' + resources :custom_emojis, only: [:index] resources :suggestions, only: [:index, :destroy] resources :scheduled_statuses, only: [:index, :show, :update, :destroy] From 174352716ada7c8da451f1a2db57f18b66cd3fdb Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 6 Mar 2023 21:00:10 +0100 Subject: [PATCH 0626/1220] Disable anonymous access to the streaming API (#23989) --- streaming/index.js | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index 2cc4934ee9..91e86fdbc5 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -16,7 +16,6 @@ const WebSocket = require('ws'); const { JSDOM } = require('jsdom'); const env = process.env.NODE_ENV || 'development'; -const alwaysRequireAuth = process.env.LIMITED_FEDERATION_MODE === 'true' || process.env.WHITELIST_MODE === 'true' || process.env.AUTHORIZED_FETCH === 'true'; dotenv.config({ path: env === 'production' ? '.env.production' : '.env', @@ -347,22 +346,17 @@ const startWorker = async (workerId) => { * @param {boolean=} required * @return {Promise.} */ - const accountFromRequest = (req, required = true) => new Promise((resolve, reject) => { + const accountFromRequest = (req) => new Promise((resolve, reject) => { const authorization = req.headers.authorization; const location = url.parse(req.url, true); const accessToken = location.query.access_token || req.headers['sec-websocket-protocol']; if (!authorization && !accessToken) { - if (required) { - const err = new Error('Missing access token'); - err.status = 401; + const err = new Error('Missing access token'); + err.status = 401; - reject(err); - return; - } else { - resolve(); - return; - } + reject(err); + return; } const token = authorization ? authorization.replace(/^Bearer /, '') : accessToken; @@ -465,7 +459,7 @@ const startWorker = async (workerId) => { // variables. OAuth scope checks are moved to the point of subscription // to a specific stream. - accountFromRequest(info.req, alwaysRequireAuth).then(() => { + accountFromRequest(info.req).then(() => { callback(true, undefined, undefined); }).catch(err => { log.error(info.req.requestId, err.toString()); @@ -539,7 +533,7 @@ const startWorker = async (workerId) => { return; } - accountFromRequest(req, alwaysRequireAuth).then(() => checkScopes(req, channelNameFromPath(req))).then(() => { + accountFromRequest(req).then(() => checkScopes(req, channelNameFromPath(req))).then(() => { subscribeHttpToSystemChannel(req, res); }).then(() => { next(); From e594bb7d5042f4a531334fd29bf4961f2152c4fa Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 6 Mar 2023 22:49:43 -0500 Subject: [PATCH 0627/1220] Convert CircleCI to GitHub Actions (#23608) --- .circleci/config.yml | 128 ----------------------------- .github/workflows/test-ruby.yml | 139 ++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 2 - Gemfile | 1 + Gemfile.lock | 2 + README.md | 3 +- config/webpacker.yml | 2 +- 7 files changed, 144 insertions(+), 133 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/test-ruby.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 3913a6b0f8..0000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,128 +0,0 @@ -version: 2.1 - -orbs: - ruby: circleci/ruby@2.0.0 - node: circleci/node@5.0.3 - -executors: - default: - parameters: - ruby-version: - type: string - docker: - - image: cimg/ruby:<< parameters.ruby-version >> - environment: - BUNDLE_JOBS: 3 - BUNDLE_RETRY: 3 - CONTINUOUS_INTEGRATION: true - DB_HOST: localhost - DB_USER: root - DISABLE_SIMPLECOV: true - RAILS_ENV: test - - image: cimg/postgres:14.5 - environment: - POSTGRES_USER: root - POSTGRES_HOST_AUTH_METHOD: trust - - image: cimg/redis:7.0 - -commands: - install-system-dependencies: - steps: - - run: - name: Install system dependencies - command: | - sudo apt-get update - sudo apt-get install -y libicu-dev libidn11-dev - install-ruby-dependencies: - parameters: - ruby-version: - type: string - steps: - - run: - command: | - bundle config clean 'true' - bundle config frozen 'true' - bundle config without 'development production' - name: Set bundler settings - - ruby/install-deps: - bundler-version: '2.3.26' - key: ruby<< parameters.ruby-version >>-gems-v2 - wait-db: - steps: - - run: - command: dockerize -wait tcp://localhost:5432 -wait tcp://localhost:6379 -timeout 1m - name: Wait for PostgreSQL and Redis - -jobs: - build: - docker: - - image: cimg/ruby:3.2-node - environment: - RAILS_ENV: test - steps: - - checkout - - install-system-dependencies - - install-ruby-dependencies: - ruby-version: '3.2' - - node/install-packages: - cache-version: v1 - pkg-manager: yarn - - run: - command: | - export NODE_OPTIONS=--openssl-legacy-provider - ./bin/rails assets:precompile - name: Precompile assets - - persist_to_workspace: - paths: - - public/assets - - public/packs-test - root: . - - test: - parameters: - ruby-version: - type: string - executor: - name: default - ruby-version: << parameters.ruby-version >> - environment: - ALLOW_NOPAM: true - PAM_ENABLED: true - PAM_DEFAULT_SERVICE: pam_test - PAM_CONTROLLED_SERVICE: pam_test_controlled - parallelism: 4 - steps: - - checkout - - install-system-dependencies - - run: - command: sudo apt-get install -y ffmpeg imagemagick libmagickcore-dev libmagickwand-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libpam-dev - name: Install additional system dependencies - - run: - command: bundle config with 'pam_authentication' - name: Enable PAM authentication - - install-ruby-dependencies: - ruby-version: << parameters.ruby-version >> - - attach_workspace: - at: . - - wait-db - - run: - command: ./bin/rails db:create db:schema:load db:seed - name: Load database schema - - ruby/rspec-test - -workflows: - version: 2 - build-and-test: - jobs: - - build - - test: - matrix: - parameters: - ruby-version: - - '2.7' - - '3.0' - - '3.1' - - '3.2' - name: test-ruby<< matrix.ruby-version >> - requires: - - build diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml new file mode 100644 index 0000000000..60f5df8850 --- /dev/null +++ b/.github/workflows/test-ruby.yml @@ -0,0 +1,139 @@ +name: Ruby Testing + +on: + push: + pull_request: + +env: + BUNDLE_CLEAN: true + BUNDLE_FROZEN: true + BUNDLE_WITHOUT: 'development production' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + env: + RAILS_ENV: test + + steps: + - uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version-file: '.nvmrc' + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Set up bundler cache + uses: ruby/setup-ruby@v1 + with: + ruby-version: .ruby-version + bundler-cache: true + + - run: yarn install --frozen-lockfile + - name: Precompile assets + # Previously had set this, but it's not supported + # export NODE_OPTIONS=--openssl-legacy-provider + run: |- + ./bin/rails assets:precompile + + - uses: actions/upload-artifact@v3 + with: + path: |- + ./public/assets + ./public/packs-test + name: ${{ github.sha }} + retention-days: 0 + + test: + runs-on: ubuntu-latest + + needs: + - build + + services: + postgres: + image: postgres:14.5 + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + redis: + image: redis:7.0 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + env: + DB_HOST: localhost + DB_USER: postgres + DB_PASS: postgres + DISABLE_SIMPLECOV: true + RAILS_ENV: test + ALLOW_NOPAM: true + PAM_ENABLED: true + PAM_DEFAULT_SERVICE: pam_test + PAM_CONTROLLED_SERVICE: pam_test_controlled + BUNDLE_WITH: 'pam_authentication' + CI_JOBS: ${{ matrix.ci_job }}/4 + + strategy: + fail-fast: false + matrix: + ruby-version: + - '2.7' + - '3.0' + - '3.1' + - '.ruby-version' + ci_job: + - 1 + - 2 + - 3 + - 4 + steps: + - uses: actions/checkout@v3 + + - uses: actions/download-artifact@v3 + with: + path: './public' + name: ${{ github.sha }} + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Install additional system dependencies + run: sudo apt-get install -y ffmpeg imagemagick libpam-dev + + - name: Set up bundler cache + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version}} + bundler-cache: true + + - name: Update system gems + if: matrix.ruby-version == '2.7' + run: gem update --system + + - name: Load database schema + run: './bin/rails db:create db:schema:load db:seed' + + - run: bundle exec rake rspec_chunked diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d67b21ee58..c1a5fef798 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,8 +41,6 @@ It is not always possible to phrase every change in such a manner, but it is des - Code style rules (rubocop, eslint) - Normalization of locale files (i18n-tasks) -**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run. - ## Documentation The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation). diff --git a/Gemfile b/Gemfile index 5804327cca..dbe9ce8c0f 100644 --- a/Gemfile +++ b/Gemfile @@ -104,6 +104,7 @@ group :development, :test do gem 'fuubar', '~> 2.5' gem 'i18n-tasks', '~> 1.0', require: false gem 'rspec-rails', '~> 6.0' + gem 'rspec_chunked', '~> 0.6' gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false gem 'rubocop-rspec', require: false diff --git a/Gemfile.lock b/Gemfile.lock index c6b4e74f6a..5afa9775ba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -596,6 +596,7 @@ GEM rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) rspec-support (3.12.0) + rspec_chunked (0.6) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.45.1) @@ -858,6 +859,7 @@ DEPENDENCIES rqrcode (~> 2.1) rspec-rails (~> 6.0) rspec-sidekiq (~> 3.1) + rspec_chunked (~> 0.6) rspec_junit_formatter (~> 0.6) rubocop rubocop-performance diff --git a/README.md b/README.md index 306665e9a6..f517668a95 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,12 @@ [![GitHub release](https://img.shields.io/github/release/mastodon/mastodon.svg)][releases] -[![Build Status](https://img.shields.io/circleci/project/github/mastodon/mastodon.svg)][circleci] +[![Ruby Testing](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml/badge.svg)](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml) [![Code Climate](https://img.shields.io/codeclimate/maintainability/mastodon/mastodon.svg)][code_climate] [![Crowdin](https://d322cqt584bo4o.cloudfront.net/mastodon/localized.svg)][crowdin] [![Docker Pulls](https://img.shields.io/docker/pulls/tootsuite/mastodon.svg)][docker] [releases]: https://github.com/mastodon/mastodon/releases -[circleci]: https://circleci.com/gh/mastodon/mastodon [code_climate]: https://codeclimate.com/github/mastodon/mastodon [crowdin]: https://crowdin.com/project/mastodon [docker]: https://hub.docker.com/r/tootsuite/mastodon/ diff --git a/config/webpacker.yml b/config/webpacker.yml index 0baff662b0..1745a17988 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -75,7 +75,7 @@ development: test: <<: *default - # CircleCI precompiles packs prior to running the tests. + # CI precompiles packs prior to running the tests. # Also avoids race conditions in parallel_tests. compile: false From fb13f374751e9e6d9d54d6f781d71ba2b31afe97 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Mar 2023 01:12:57 -0500 Subject: [PATCH 0628/1220] Skip double building on Dependabot branches (#24025) --- .github/workflows/rebase-needed.yml | 4 ++++ .github/workflows/test-ruby.yml | 2 ++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index 99b224ec60..944ae7b283 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -2,7 +2,11 @@ name: PR Needs Rebase on: push: + branches-ignore: + - 'dependabot/**' pull_request_target: + branches-ignore: + - 'dependabot/**' types: [synchronize] permissions: diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 60f5df8850..39b4341884 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -2,6 +2,8 @@ name: Ruby Testing on: push: + branches-ignore: + - 'dependabot/**' pull_request: env: From 6ee39e85f3975e137fb9197a954c321767a4497a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:29:57 +0100 Subject: [PATCH 0629/1220] Bump pg from 1.4.5 to 1.4.6 (#24001) 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 5afa9775ba..6ab9b00ac5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -482,7 +482,7 @@ GEM parslet (2.0.0) pastel (0.8.0) tty-color (~> 0.5) - pg (1.4.5) + pg (1.4.6) pghero (3.1.0) activerecord (>= 6) pkg-config (1.5.1) From 722349963c34fadacda3770928e7f0dcc32f9a3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:30:36 +0100 Subject: [PATCH 0630/1220] Bump yargs from 17.7.0 to 17.7.1 (#24002) 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 15bf30925c..2b9b31909c 100644 --- a/package.json +++ b/package.json @@ -161,7 +161,7 @@ "stylelint": "^15.2.0", "stylelint-config-standard-scss": "^7.0.1", "webpack-dev-server": "^3.11.3", - "yargs": "^17.7.0" + "yargs": "^17.7.1" }, "resolutions": { "kind-of": "^6.0.3" diff --git a/yarn.lock b/yarn.lock index 68cef79651..6541c0b8f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11975,10 +11975,10 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^17.3.1, yargs@^17.7.0: - version "17.7.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.0.tgz#b21e9af1e0a619a2a9c67b1133219b2975a07985" - integrity sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ== +yargs@^17.3.1, yargs@^17.7.1: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== dependencies: cliui "^8.0.1" escalade "^3.1.1" From 49a4a7fa83c4097c787c3599d5954aa13c612b8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:31:46 +0100 Subject: [PATCH 0631/1220] Bump sidekiq-scheduler from 5.0.1 to 5.0.2 (#24004) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6ab9b00ac5..4b0569e1b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -645,9 +645,9 @@ GEM redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (5.0.1) + sidekiq-scheduler (5.0.2) rufus-scheduler (~> 3.2) - sidekiq (>= 4, < 8) + sidekiq (>= 6, < 8) tilt (>= 1.4.0) sidekiq-unique-jobs (7.1.29) brpoplpush-redis_script (> 0.1.1, <= 2.0.0) @@ -693,7 +693,7 @@ GEM terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) thor (1.2.1) - tilt (2.0.11) + tilt (2.1.0) timeout (0.3.1) tpm-key_attestation (0.12.0) bindata (~> 2.4) From aabf2bf8d6119dd1aac78ea9ced7eb18c2a2033c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:32:09 +0100 Subject: [PATCH 0632/1220] Bump rack from 2.2.6.2 to 2.2.6.3 (#23997) 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 4b0569e1b5..8fce14aa0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -503,7 +503,7 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.2) + rack (2.2.6.3) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-cors (1.1.1) From ff1913d58fa47f24039b4a140e3c5cdf65858ac0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:32:21 +0100 Subject: [PATCH 0633/1220] Bump axios from 1.3.3 to 1.3.4 (#23996) 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 2b9b31909c..cb8559ea3c 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.3.3", + "axios": "^1.3.4", "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 6541c0b8f2..89d9c5342a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2598,10 +2598,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.3.tgz#e7011384ba839b885007c9c9fae1ff23dceb295b" - integrity sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA== +axios@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" From 3d46823e9f5b2fee15931636eec3268e74f2da6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:32:44 +0100 Subject: [PATCH 0634/1220] Bump utf-8-validate from 6.0.2 to 6.0.3 (#23992) 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 cb8559ea3c..73446b246c 100644 --- a/package.json +++ b/package.json @@ -168,6 +168,6 @@ }, "optionalDependencies": { "bufferutil": "^4.0.7", - "utf-8-validate": "^6.0.2" + "utf-8-validate": "^6.0.3" } } diff --git a/yarn.lock b/yarn.lock index 89d9c5342a..aeb944ec20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11232,10 +11232,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@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.2.tgz#2d80529963e4cc55ac5a1ca9dafdaa990d5ea16b" - integrity sha512-yd7PQEOW+EgecUzSD7XUXTyq/vREGXk7t7fzGfOvwOAr0Z64h5rfGrmkNk8+ddVmf/FrkjPPhVyYBa7fuSPVTg== +utf-8-validate@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.3.tgz#7d8c936d854e86b24d1d655f138ee27d2636d777" + integrity sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA== dependencies: node-gyp-build "^4.3.0" From c9860d36d4e8323125186f3479407b476ea6575d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:44:23 +0100 Subject: [PATCH 0635/1220] Bump omniauth_openid_connect from 0.6.0 to 0.6.1 (#23991) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index dbe9ce8c0f..eaaf1bf1fc 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ end gem 'net-ldap', '~> 0.17' gem 'omniauth-cas', '~> 2.0' gem 'omniauth-saml', '~> 1.10' -gem 'omniauth_openid_connect', '~> 0.6.0' +gem 'omniauth_openid_connect', '~> 0.6.1' gem 'omniauth', '~> 1.9' gem 'omniauth-rails_csrf_protection', '~> 0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 8fce14aa0e..bf7c3c76f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -397,7 +397,7 @@ GEM loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.8.0.1) + mail (2.8.1) mini_mime (>= 0.1.1) net-imap net-pop @@ -415,7 +415,7 @@ GEM mime-types-data (3.2022.0105) mini_mime (1.1.2) mini_portile2 (2.8.1) - minitest (5.17.0) + minitest (5.18.0) msgpack (1.6.0) multi_json (1.15.0) multipart-post (2.3.0) @@ -457,7 +457,7 @@ GEM omniauth-saml (1.10.3) omniauth (~> 1.3, >= 1.3.2) ruby-saml (~> 1.9) - omniauth_openid_connect (0.6.0) + omniauth_openid_connect (0.6.1) omniauth (>= 1.9, < 3) openid_connect (~> 1.1) openid_connect (1.4.2) @@ -694,7 +694,7 @@ GEM climate_control (>= 0.0.3, < 1.0) thor (1.2.1) tilt (2.1.0) - timeout (0.3.1) + timeout (0.3.2) tpm-key_attestation (0.12.0) bindata (~> 2.4) openssl (> 2.0) @@ -832,7 +832,7 @@ DEPENDENCIES omniauth-cas (~> 2.0) omniauth-rails_csrf_protection (~> 0.1) omniauth-saml (~> 1.10) - omniauth_openid_connect (~> 0.6.0) + omniauth_openid_connect (~> 0.6.1) ox (~> 2.14) parslet pg (~> 1.4) From 5da3fd170e5194bdaac063a787e9b6188bfd821b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:45:09 +0100 Subject: [PATCH 0636/1220] Bump doorkeeper from 5.6.4 to 5.6.5 (#24009) 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 bf7c3c76f0..ca6befa2a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,7 +225,7 @@ GEM docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.6.4) + doorkeeper (5.6.5) railties (>= 5) dotenv (2.8.1) dotenv-rails (2.8.1) From 71cd77536dfc82d4b68eec4b4f639898f21b1f88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:00:05 +0100 Subject: [PATCH 0637/1220] Bump jest from 29.4.3 to 29.5.0 (#24003) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 627 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 391 insertions(+), 238 deletions(-) diff --git a/package.json b/package.json index 73446b246c..59529b34a1 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", - "jest": "^29.4.3", + "jest": "^29.5.0", "jest-environment-jsdom": "^29.4.3", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", diff --git a/yarn.lock b/yarn.lock index aeb944ec20..f28c926c96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1285,49 +1285,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" - integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== +"@jest/console@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" + integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" -"@jest/core@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" - integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== +"@jest/core@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" + integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/reporters" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/reporters" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.4.3" - jest-config "^29.4.3" - jest-haste-map "^29.4.3" - jest-message-util "^29.4.3" + jest-changed-files "^29.5.0" + jest-config "^29.5.0" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-resolve-dependencies "^29.4.3" - jest-runner "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" - jest-watcher "^29.4.3" + jest-resolve "^29.5.0" + jest-resolve-dependencies "^29.5.0" + jest-runner "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" + jest-watcher "^29.5.0" micromatch "^4.0.4" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-ansi "^6.0.0" @@ -1341,20 +1341,30 @@ "@types/node" "*" jest-mock "^29.4.3" -"@jest/expect-utils@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" - integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== +"@jest/environment@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" + integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== + dependencies: + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + jest-mock "^29.5.0" + +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" - integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== +"@jest/expect@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" + integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== dependencies: - expect "^29.4.3" - jest-snapshot "^29.4.3" + expect "^29.5.0" + jest-snapshot "^29.5.0" "@jest/fake-timers@^29.4.3": version "29.4.3" @@ -1368,26 +1378,38 @@ jest-mock "^29.4.3" jest-util "^29.4.3" -"@jest/globals@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" - integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== +"@jest/fake-timers@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" + integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/types" "^29.4.3" - jest-mock "^29.4.3" + "@jest/types" "^29.5.0" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" + jest-util "^29.5.0" -"@jest/reporters@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" - integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== +"@jest/globals@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" + integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== + dependencies: + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/types" "^29.5.0" + jest-mock "^29.5.0" + +"@jest/reporters@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" + integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1400,9 +1422,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + jest-worker "^29.5.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1424,24 +1446,24 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" - integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== +"@jest/test-result@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" + integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/types" "^29.5.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" - integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== +"@jest/test-sequencer@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" + integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== dependencies: - "@jest/test-result" "^29.4.3" + "@jest/test-result" "^29.5.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" slash "^3.0.0" "@jest/transform@^29.4.3": @@ -1465,6 +1487,27 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/transform@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" + integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.5.0" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.5.0" + jest-regex-util "^29.4.3" + jest-util "^29.5.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1486,10 +1529,10 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" - integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== +"@jest/types@^29.4.3", "@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== dependencies: "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" @@ -2627,6 +2670,19 @@ babel-jest@^29.4.3: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" + integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== + dependencies: + "@jest/transform" "^29.5.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.5.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-loader@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -2658,6 +2714,16 @@ babel-plugin-jest-hoist@^29.4.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" + integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -2765,6 +2831,14 @@ babel-preset-jest@^29.4.3: babel-plugin-jest-hoist "^29.4.3" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" + integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== + dependencies: + babel-plugin-jest-hoist "^29.5.0" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -4853,16 +4927,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" - integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== +expect@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== dependencies: - "@jest/expect-utils" "^29.4.3" + "@jest/expect-utils" "^29.5.0" jest-get-type "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -6514,82 +6588,83 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" - integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== +jest-changed-files@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" + integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" - integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== +jest-circus@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" + integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-each "^29.5.0" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" p-limit "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" - integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== +jest-cli@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" + integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== dependencies: - "@jest/core" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/core" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-config "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" - integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== +jest-config@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" + integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.3" - "@jest/types" "^29.4.3" - babel-jest "^29.4.3" + "@jest/test-sequencer" "^29.5.0" + "@jest/types" "^29.5.0" + babel-jest "^29.5.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.4.3" - jest-environment-node "^29.4.3" + jest-circus "^29.5.0" + jest-environment-node "^29.5.0" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runner "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-resolve "^29.5.0" + jest-runner "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -6603,15 +6678,15 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" - integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== +jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" jest-docblock@^29.4.3: version "29.4.3" @@ -6620,16 +6695,16 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" - integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== +jest-each@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" + integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.4.3" - pretty-format "^29.4.3" + jest-util "^29.5.0" + pretty-format "^29.5.0" jest-environment-jsdom@^29.4.3: version "29.4.3" @@ -6645,17 +6720,17 @@ jest-environment-jsdom@^29.4.3: jest-util "^29.4.3" jsdom "^20.0.0" -jest-environment-node@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" - integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== +jest-environment-node@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" + integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-mock "^29.5.0" + jest-util "^29.5.0" jest-get-type@^25.2.6: version "25.2.6" @@ -6686,23 +6761,42 @@ jest-haste-map@^29.4.3: optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" - integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== +jest-haste-map@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" + integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== + dependencies: + "@jest/types" "^29.5.0" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.4.3" + jest-util "^29.5.0" + jest-worker "^29.5.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" + integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-matcher-utils@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" - integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== dependencies: chalk "^4.0.0" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" jest-message-util@^29.4.3: version "29.4.3" @@ -6719,6 +6813,21 @@ jest-message-util@^29.4.3: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.5.0" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.5.0" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" @@ -6728,6 +6837,15 @@ jest-mock@^29.4.3: "@types/node" "*" jest-util "^29.4.3" +jest-mock@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" + integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + jest-util "^29.5.0" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -6738,88 +6856,88 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" - integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== +jest-resolve-dependencies@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" + integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.4.3" + jest-snapshot "^29.5.0" -jest-resolve@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" - integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== +jest-resolve@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" + integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-util "^29.5.0" + jest-validate "^29.5.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" - integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== +jest-runner@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" + integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/environment" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/environment" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.4.3" - jest-haste-map "^29.4.3" - jest-leak-detector "^29.4.3" - jest-message-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runtime "^29.4.3" - jest-util "^29.4.3" - jest-watcher "^29.4.3" - jest-worker "^29.4.3" + jest-environment-node "^29.5.0" + jest-haste-map "^29.5.0" + jest-leak-detector "^29.5.0" + jest-message-util "^29.5.0" + jest-resolve "^29.5.0" + jest-runtime "^29.5.0" + jest-util "^29.5.0" + jest-watcher "^29.5.0" + jest-worker "^29.5.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" - integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== +jest-runtime@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" + integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/globals" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/globals" "^29.5.0" "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-resolve "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" - integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== +jest-snapshot@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" + integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6827,23 +6945,22 @@ jest-snapshot@^29.4.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/expect-utils" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.3" + expect "^29.5.0" graceful-fs "^4.2.9" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - jest-haste-map "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" natural-compare "^1.4.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" semver "^7.3.5" jest-util@^29.4.3: @@ -6858,30 +6975,42 @@ jest-util@^29.4.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" - integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" + integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== + dependencies: + "@jest/types" "^29.5.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-watcher@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" - integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== +jest-watcher@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" + integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== dependencies: - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.3" + jest-util "^29.5.0" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -6903,15 +7032,25 @@ jest-worker@^29.4.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" - integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== +jest-worker@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== dependencies: - "@jest/core" "^29.4.3" - "@jest/types" "^29.4.3" + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" + integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + dependencies: + "@jest/core" "^29.5.0" + "@jest/types" "^29.5.0" import-local "^3.0.2" - jest-cli "^29.4.3" + jest-cli "^29.5.0" js-sdsl@^4.1.4: version "4.3.0" @@ -8871,6 +9010,15 @@ pretty-format@^29.4.3: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -8987,6 +9135,11 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pure-rand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" + integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" From a47358e27c27203425285f38be68937cc3bdb63e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:14:18 +0100 Subject: [PATCH 0638/1220] Bump jest-environment-jsdom from 29.4.3 to 29.5.0 (#23998) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 87 ++++++---------------------------------------------- 2 files changed, 11 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index 59529b34a1..7b49c82fd5 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,7 @@ "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", "jest": "^29.5.0", - "jest-environment-jsdom": "^29.4.3", + "jest-environment-jsdom": "^29.5.0", "postcss-scss": "^4.0.6", "prettier": "^2.8.4", "raf": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index f28c926c96..c7929852cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1331,16 +1331,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" - integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== - dependencies: - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" - "@types/node" "*" - jest-mock "^29.4.3" - "@jest/environment@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" @@ -1366,18 +1356,6 @@ expect "^29.5.0" jest-snapshot "^29.5.0" -"@jest/fake-timers@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" - integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== - dependencies: - "@jest/types" "^29.4.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" - jest-util "^29.4.3" - "@jest/fake-timers@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" @@ -6706,18 +6684,18 @@ jest-each@^29.5.0: jest-util "^29.5.0" pretty-format "^29.5.0" -jest-environment-jsdom@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.3.tgz#bd8ed3808e6d3f616403fbaf8354f77019613d90" - integrity sha512-rFjf8JXrw3OjUzzmSE5l0XjMj0/MSVEUMCSXBGPDkfwb1T03HZI7iJSL0cGctZApPSyJxbjyKDVxkZuyhHkuTw== +jest-environment-jsdom@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb" + integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-mock "^29.5.0" + jest-util "^29.5.0" jsdom "^20.0.0" jest-environment-node@^29.5.0: @@ -6798,21 +6776,6 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" -jest-message-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" - integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.4.3" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" @@ -6828,15 +6791,6 @@ jest-message-util@^29.5.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" - integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== - dependencies: - "@jest/types" "^29.4.3" - "@types/node" "*" - jest-util "^29.4.3" - jest-mock@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" @@ -6963,19 +6917,7 @@ jest-snapshot@^29.5.0: pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" - integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== - dependencies: - "@jest/types" "^29.4.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.5.0: +jest-util@^29.4.3, jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== @@ -9001,15 +8943,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" - integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== - dependencies: - "@jest/schemas" "^29.4.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" From 60d664eab8883ca8cad3edb1924c94efdc33c899 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:53:48 +0100 Subject: [PATCH 0639/1220] Bump rubocop from 1.45.1 to 1.48.0 (#23999) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ca6befa2a6..bd1aece576 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -599,18 +599,18 @@ GEM rspec_chunked (0.6) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.45.1) + rubocop (1.48.0) json (~> 2.3) parallel (~> 1.10) 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) + rubocop-ast (>= 1.26.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.24.1) - parser (>= 3.1.1.0) + rubocop-ast (1.27.0) + parser (>= 3.2.1.0) rubocop-capybara (2.17.0) rubocop (~> 1.41) rubocop-performance (1.16.0) From f47c404f88980e6f09fba8039357930862e84938 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:54:12 +0100 Subject: [PATCH 0640/1220] Bump mkdirp from 2.1.3 to 2.1.5 (#23994) 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 7b49c82fd5..4d6e2f8b8d 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "mark-loader": "^0.1.6", "marky": "^1.2.5", "mini-css-extract-plugin": "^1.6.2", - "mkdirp": "^2.1.3", + "mkdirp": "^2.1.5", "npmlog": "^7.0.1", "object-assign": "^4.1.1", "object.values": "^1.1.6", diff --git a/yarn.lock b/yarn.lock index c7929852cc..cdd57c1bce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7737,10 +7737,10 @@ mkdirp@^1.0, mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" - integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== +mkdirp@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.5.tgz#78d7eaf15e069ba7b6b47d76dd94cfadf7a4062f" + integrity sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w== mousetrap@^1.5.2: version "1.6.5" From 0bc1a002fda69ce4c5015cbf68dc5a86fdc679b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 16:25:16 +0100 Subject: [PATCH 0641/1220] Bump babel-jest from 29.4.3 to 29.5.0 (#24007) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 85 ++-------------------------------------------------- 2 files changed, 3 insertions(+), 84 deletions(-) diff --git a/package.json b/package.json index 4d6e2f8b8d..efc8a0dc20 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "@babel/eslint-parser": "^7.19.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", - "babel-jest": "^29.4.3", + "babel-jest": "^29.5.0", "eslint": "^8.33.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", diff --git a/yarn.lock b/yarn.lock index cdd57c1bce..29d74690fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1444,27 +1444,6 @@ jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" - integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.4.3" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" - jest-regex-util "^29.4.3" - jest-util "^29.4.3" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - "@jest/transform@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" @@ -1507,7 +1486,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.3", "@jest/types@^29.5.0": +"@jest/types@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== @@ -2635,19 +2614,6 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" -babel-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" - integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== - dependencies: - "@jest/transform" "^29.4.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -2682,16 +2648,6 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" - integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" @@ -2801,14 +2757,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" - integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== - dependencies: - babel-plugin-jest-hoist "^29.4.3" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" @@ -6720,25 +6668,6 @@ jest-get-type@^29.4.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" - integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== - dependencies: - "@jest/types" "^29.4.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-haste-map@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" @@ -6917,7 +6846,7 @@ jest-snapshot@^29.5.0: pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^29.4.3, jest-util@^29.5.0: +jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== @@ -6964,16 +6893,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" - integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== - dependencies: - "@types/node" "*" - jest-util "^29.4.3" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" From b715bd8e53537c44915fa76e89e4af53486b027f Mon Sep 17 00:00:00 2001 From: 9p4 Date: Wed, 8 Mar 2023 11:06:53 -0500 Subject: [PATCH 0642/1220] Add refreshing many accounts at once with "tootctl accounts refresh" (#23304) --- lib/mastodon/accounts_cli.rb | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 98855cbd06..a6532541e0 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -372,16 +372,16 @@ module Mastodon option :concurrency, type: :numeric, default: 5, aliases: [:c] option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean - desc 'refresh [USERNAME]', 'Fetch remote user data and files' + desc 'refresh [USERNAMES]', 'Fetch remote user data and files' long_desc <<-LONG_DESC Fetch remote user data and files for one or multiple accounts. With the --all option, all remote accounts will be processed. Through the --domain option, this can be narrowed down to a - specific domain only. Otherwise, a single remote account must - be specified with USERNAME. + specific domain only. Otherwise, remote accounts must be + specified with space-separated USERNAMES. LONG_DESC - def refresh(username = nil) + def refresh(*usernames) dry_run = options[:dry_run] ? ' (DRY RUN)' : '' if options[:domain] || options[:all] @@ -397,19 +397,25 @@ module Mastodon end say("Refreshed #{processed} accounts#{dry_run}", :green, true) - elsif username.present? - username, domain = username.split('@') - account = Account.find_remote(username, domain) + elsif !usernames.empty? + usernames.each do |user| + user, domain = user.split('@') + account = Account.find_remote(user, domain) - if account.nil? - say('No such account', :red) - exit(1) - end + if account.nil? + say('No such account', :red) + exit(1) + end - unless options[:dry_run] - account.reset_avatar! - account.reset_header! - account.save + next if options[:dry_run] + + begin + account.reset_avatar! + account.reset_header! + account.save + rescue Mastodon::UnexpectedResponseError + say("Account failed: #{user}@#{domain}", :red) + end end say("OK#{dry_run}", :green) From 9dfe2dbd3f29d1d6f3ffb530c9d9e782b56b5c95 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 8 Mar 2023 13:26:25 -0500 Subject: [PATCH 0643/1220] Skip rebase-needed job for i10n branch (#24026) --- .github/workflows/rebase-needed.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index 944ae7b283..6a8035210c 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -4,9 +4,11 @@ on: push: branches-ignore: - 'dependabot/**' + - 'l10n_main' pull_request_target: branches-ignore: - 'dependabot/**' + - 'l10n_main' types: [synchronize] permissions: From 684a970b3c7ce19ec419c4db52b67a3b0903f493 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Wed, 8 Mar 2023 19:56:41 +0100 Subject: [PATCH 0644/1220] Unescape HTML entities (#24019) --- app/lib/plain_text_formatter.rb | 6 ++- spec/lib/plain_text_formatter_spec.rb | 61 ++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/app/lib/plain_text_formatter.rb b/app/lib/plain_text_formatter.rb index 08aa296964..6fa2bc5d2c 100644 --- a/app/lib/plain_text_formatter.rb +++ b/app/lib/plain_text_formatter.rb @@ -18,7 +18,7 @@ class PlainTextFormatter if local? text else - strip_tags(insert_newlines).chomp + html_entities.decode(strip_tags(insert_newlines)).chomp end end @@ -27,4 +27,8 @@ class PlainTextFormatter def insert_newlines text.gsub(NEWLINE_TAGS_RE) { |match| "#{match}\n" } end + + def html_entities + HTMLEntities.new + end end diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb index 4a0519aaf6..80b3c331a6 100644 --- a/spec/lib/plain_text_formatter_spec.rb +++ b/spec/lib/plain_text_formatter_spec.rb @@ -6,7 +6,7 @@ RSpec.describe PlainTextFormatter do describe '#to_s' do subject { described_class.new(status.text, status.local?).to_s } - context 'given a post with local status' do + context 'when status is local' do let(:status) { Fabricate(:status, text: '

    a text by a nerd who uses an HTML tag in text

    ', uri: nil) } it 'returns the raw text' do @@ -14,12 +14,63 @@ RSpec.describe PlainTextFormatter do end end - context 'given a post with remote status' do + context 'when status is remote' do let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') } - let(:status) { Fabricate(:status, account: remote_account, text: '

    Hello

    ') } - it 'returns tag-stripped text' do - expect(subject).to eq 'Hello' + context 'when text contains inline HTML tags' do + let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') } + + it 'strips the tags' do + expect(subject).to eq 'Lorem ipsum' + end + end + + context 'when text contains

    tags' do + let(:status) { Fabricate(:status, account: remote_account, text: '

    Lorem

    ipsum

    ') } + + it 'inserts a newline' do + expect(subject).to eq "Lorem\nipsum" + end + end + + context 'when text contains a single
    tag' do + let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem
    ipsum') } + + it 'inserts a newline' do + expect(subject).to eq "Lorem\nipsum" + end + end + + context 'when text contains consecutive
    tag' do + let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem


    ipsum') } + + it 'inserts a single newline' do + expect(subject).to eq "Lorem\nipsum" + end + end + + context 'when text contains HTML entity' do + let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem & ipsum ❤') } + + it 'unescapes the entity' do + expect(subject).to eq 'Lorem & ipsum ❤' + end + end + + context 'when text contains ipsum') } + + it 'strips the tag and its contents' do + expect(subject).to eq 'Lorem ipsum' + end + end + + context 'when text contains an HTML comment tags' do + let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') } + + it 'strips the comment' do + expect(subject).to eq 'Lorem ipsum' + end end end end From 2f7a663b0bccd7b5de1fa47b89a7bdc7591e69ec Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 9 Mar 2023 08:27:48 -0500 Subject: [PATCH 0645/1220] Explicitly set github repo in instance presenter spec (#24036) --- Gemfile | 1 + Gemfile.lock | 1 + spec/presenters/instance_presenter_spec.rb | 24 ++++++++++++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index eaaf1bf1fc..7a836b6ba4 100644 --- a/Gemfile +++ b/Gemfile @@ -117,6 +117,7 @@ end group :test do gem 'capybara', '~> 3.38' + gem 'climate_control' gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' gem 'rack-test', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index bd1aece576..e5ad5bfe54 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -784,6 +784,7 @@ DEPENDENCIES capybara (~> 3.38) charlock_holmes (~> 0.7.7) chewy (~> 7.2) + climate_control cocoon (~> 1.2) color_diff (~> 0.1) concurrent-ruby diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index 29170a79ae..795abd8b45 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -89,8 +89,28 @@ describe InstancePresenter do end describe '#source_url' do - it 'returns "https://github.com/mastodon/mastodon"' do - expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon') + context 'with the GITHUB_REPOSITORY env variable set' do + around do |example| + ClimateControl.modify GITHUB_REPOSITORY: 'other/repo' do + example.run + end + end + + it 'uses the env variable to build a repo URL' do + expect(instance_presenter.source_url).to eq('https://github.com/other/repo') + end + end + + context 'without the GITHUB_REPOSITORY env variable set' do + around do |example| + ClimateControl.modify GITHUB_REPOSITORY: nil do + example.run + end + end + + it 'defaults to the core mastodon repo URL' do + expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon') + end end end From a52ccd7ad98d7d60dffb520c0397ba8aa4c2eb9d Mon Sep 17 00:00:00 2001 From: Rodion Borisov Date: Thu, 9 Mar 2023 16:35:44 +0300 Subject: [PATCH 0646/1220] Center the text itself in upload area (#24029) --- app/javascript/styles/mastodon/components.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 583acfac0e..ecec71804b 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4509,6 +4509,7 @@ a.status-card.compact:hover { display: flex; align-items: center; justify-content: center; + text-align: center; color: $secondary-text-color; font-size: 18px; font-weight: 500; From 4fa542f3c4b7eeb8dade6f7be2463ce4b702b68e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 10 Mar 2023 05:10:47 -0500 Subject: [PATCH 0647/1220] Sync CI and Docker Compose image versions (#24053) --- .devcontainer/docker-compose.yml | 2 +- .github/workflows/test-migrations-one-step.yml | 4 ++-- .github/workflows/test-migrations-two-step.yml | 4 ++-- .github/workflows/test-ruby.yml | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 19f9c0b5b3..1b1756eca6 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -41,7 +41,7 @@ services: - internal_network redis: - image: redis:6-alpine + image: redis:7-alpine restart: unless-stopped volumes: - redis-data:/data diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml index 8f070697ca..a3594e5535 100644 --- a/.github/workflows/test-migrations-one-step.yml +++ b/.github/workflows/test-migrations-one-step.yml @@ -25,7 +25,7 @@ jobs: services: postgres: - image: postgres:14.5 + image: postgres:14-alpine env: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres @@ -38,7 +38,7 @@ jobs: - 5432:5432 redis: - image: redis:7.0 + image: redis:7-alpine options: >- --health-cmd "redis-cli ping" --health-interval 10s diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml index 2fdce80254..f357bc9f68 100644 --- a/.github/workflows/test-migrations-two-step.yml +++ b/.github/workflows/test-migrations-two-step.yml @@ -25,7 +25,7 @@ jobs: services: postgres: - image: postgres:14.5 + image: postgres:14-alpine env: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres @@ -37,7 +37,7 @@ jobs: ports: - 5432:5432 redis: - image: redis:7.0 + image: redis:7-alpine options: >- --health-cmd "redis-cli ping" --health-interval 10s diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 39b4341884..bfdabd4ea6 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -63,7 +63,7 @@ jobs: services: postgres: - image: postgres:14.5 + image: postgres:14-alpine env: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres @@ -76,7 +76,7 @@ jobs: - 5432:5432 redis: - image: redis:7.0 + image: redis:7-alpine options: >- --health-cmd "redis-cli ping" --health-interval 10s From 53309fa31a4106500e2da80b845fad08d7d09900 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:12:06 +0100 Subject: [PATCH 0648/1220] Bump puma from 6.1.0 to 6.1.1 (#24045) 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 e5ad5bfe54..8fbb7c5d1a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -497,7 +497,7 @@ GEM premailer (~> 1.7, >= 1.7.9) private_address_check (0.5.0) public_suffix (5.0.1) - puma (6.1.0) + puma (6.1.1) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) From 56bddfbfa39956ea3a8c52721eb364b1120634f6 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 10 Mar 2023 06:12:51 -0500 Subject: [PATCH 0649/1220] Serializers spec coverage (#24017) --- .rubocop_todo.yml | 4 +++ .../encrypted_message_fabricator.rb | 7 +++++ .../activitypub/device_serializer_spec.rb | 20 ++++++++++++++ .../one_time_key_serializer_spec.rb | 20 ++++++++++++++ .../activitypub/undo_like_serializer_spec.rb | 20 ++++++++++++++ .../activitypub/vote_serializer_spec.rb | 20 ++++++++++++++ .../rest/encrypted_message_serializer_spec.rb | 20 ++++++++++++++ .../rest/instance_serializer_spec.rb | 20 ++++++++++++++ .../rest/keys/claim_result_serializer_spec.rb | 20 ++++++++++++++ .../rest/keys/device_serializer_spec.rb | 20 ++++++++++++++ .../rest/keys/query_result_serializer_spec.rb | 20 ++++++++++++++ .../rest/suggestion_serializer_spec.rb | 26 +++++++++++++++++++ 12 files changed, 217 insertions(+) create mode 100644 spec/fabricators/encrypted_message_fabricator.rb create mode 100644 spec/serializers/activitypub/device_serializer_spec.rb create mode 100644 spec/serializers/activitypub/one_time_key_serializer_spec.rb create mode 100644 spec/serializers/activitypub/undo_like_serializer_spec.rb create mode 100644 spec/serializers/activitypub/vote_serializer_spec.rb create mode 100644 spec/serializers/rest/encrypted_message_serializer_spec.rb create mode 100644 spec/serializers/rest/instance_serializer_spec.rb create mode 100644 spec/serializers/rest/keys/claim_result_serializer_spec.rb create mode 100644 spec/serializers/rest/keys/device_serializer_spec.rb create mode 100644 spec/serializers/rest/keys/query_result_serializer_spec.rb create mode 100644 spec/serializers/rest/suggestion_serializer_spec.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b53f655bd0..90e6448560 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -698,7 +698,11 @@ RSpec/FilePath: - 'spec/lib/activitypub/tag_manager_spec.rb' - 'spec/lib/ostatus/tag_manager_spec.rb' - 'spec/lib/sanitize_config_spec.rb' + - 'spec/serializers/activitypub/device_serializer_spec.rb' - 'spec/serializers/activitypub/note_serializer_spec.rb' + - 'spec/serializers/activitypub/one_time_key_serializer_spec.rb' + - 'spec/serializers/activitypub/undo_like_serializer_spec.rb' + - 'spec/serializers/activitypub/vote_serializer_spec.rb' - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb new file mode 100644 index 0000000000..43b3105146 --- /dev/null +++ b/spec/fabricators/encrypted_message_fabricator.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +Fabricator(:encrypted_message) do + device + from_account { Fabricate(:account) } + from_device_id { Faker::Number.number(digits: 5) } +end diff --git a/spec/serializers/activitypub/device_serializer_spec.rb b/spec/serializers/activitypub/device_serializer_spec.rb new file mode 100644 index 0000000000..2a3be82121 --- /dev/null +++ b/spec/serializers/activitypub/device_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::DeviceSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Fabricate(:device) } + + describe 'type' do + it 'returns correct serialized type' do + expect(serialization['type']).to eq('Device') + end + end +end diff --git a/spec/serializers/activitypub/one_time_key_serializer_spec.rb b/spec/serializers/activitypub/one_time_key_serializer_spec.rb new file mode 100644 index 0000000000..6fe1f06185 --- /dev/null +++ b/spec/serializers/activitypub/one_time_key_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::OneTimeKeySerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Fabricate(:one_time_key) } + + describe 'type' do + it 'returns correct serialized type' do + expect(serialization['type']).to eq('Curve25519Key') + end + end +end diff --git a/spec/serializers/activitypub/undo_like_serializer_spec.rb b/spec/serializers/activitypub/undo_like_serializer_spec.rb new file mode 100644 index 0000000000..43cf7192e4 --- /dev/null +++ b/spec/serializers/activitypub/undo_like_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::UndoLikeSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Fabricate(:favourite) } + + describe 'type' do + it 'returns correct serialized type' do + expect(serialization['type']).to eq('Undo') + end + end +end diff --git a/spec/serializers/activitypub/vote_serializer_spec.rb b/spec/serializers/activitypub/vote_serializer_spec.rb new file mode 100644 index 0000000000..c329542d79 --- /dev/null +++ b/spec/serializers/activitypub/vote_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::VoteSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Fabricate(:poll_vote) } + + describe 'type' do + it 'returns correct serialized type' do + expect(serialization['type']).to eq('Create') + end + end +end diff --git a/spec/serializers/rest/encrypted_message_serializer_spec.rb b/spec/serializers/rest/encrypted_message_serializer_spec.rb new file mode 100644 index 0000000000..e0e70a3b84 --- /dev/null +++ b/spec/serializers/rest/encrypted_message_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::EncryptedMessageSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Fabricate(:encrypted_message) } + + describe 'account' do + it 'returns the associated account' do + expect(serialization['account_id']).to eq(record.from_account.id.to_s) + end + end +end diff --git a/spec/serializers/rest/instance_serializer_spec.rb b/spec/serializers/rest/instance_serializer_spec.rb new file mode 100644 index 0000000000..15a5de18dd --- /dev/null +++ b/spec/serializers/rest/instance_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::InstanceSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { InstancePresenter.new } + + describe 'usage' do + it 'returns recent usage data' do + expect(serialization['usage']).to eq({ 'users' => { 'active_month' => 0 } }) + end + end +end diff --git a/spec/serializers/rest/keys/claim_result_serializer_spec.rb b/spec/serializers/rest/keys/claim_result_serializer_spec.rb new file mode 100644 index 0000000000..cf9416f032 --- /dev/null +++ b/spec/serializers/rest/keys/claim_result_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::Keys::ClaimResultSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Keys::ClaimService::Result.new(Account.new(id: 123), 456) } + + describe 'account' do + it 'returns the associated account' do + expect(serialization['account_id']).to eq('123') + end + end +end diff --git a/spec/serializers/rest/keys/device_serializer_spec.rb b/spec/serializers/rest/keys/device_serializer_spec.rb new file mode 100644 index 0000000000..c15e197cb8 --- /dev/null +++ b/spec/serializers/rest/keys/device_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::Keys::DeviceSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Device.new(name: 'Device name') } + + describe 'name' do + it 'returns the name' do + expect(serialization['name']).to eq('Device name') + end + end +end diff --git a/spec/serializers/rest/keys/query_result_serializer_spec.rb b/spec/serializers/rest/keys/query_result_serializer_spec.rb new file mode 100644 index 0000000000..983780ae98 --- /dev/null +++ b/spec/serializers/rest/keys/query_result_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::Keys::QueryResultSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) { Keys::QueryService::Result.new(Account.new(id: 123), []) } + + describe 'account' do + it 'returns the associated account id' do + expect(serialization['account_id']).to eq('123') + end + end +end diff --git a/spec/serializers/rest/suggestion_serializer_spec.rb b/spec/serializers/rest/suggestion_serializer_spec.rb new file mode 100644 index 0000000000..b3c086208d --- /dev/null +++ b/spec/serializers/rest/suggestion_serializer_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::SuggestionSerializer do + let(:serialization) do + JSON.parse( + ActiveModelSerializers::SerializableResource.new( + record, serializer: described_class + ).to_json + ) + end + let(:record) do + AccountSuggestions::Suggestion.new( + account: account, + source: 'SuggestionSource' + ) + end + let(:account) { Fabricate(:account) } + + describe 'account' do + it 'returns the associated account' do + expect(serialization['account']['id']).to eq(account.id.to_s) + end + end +end From 688287c59d526ef76089322a368789f5846c6ac3 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 10 Mar 2023 07:33:30 -0500 Subject: [PATCH 0650/1220] Coverage improvement round-out following up previous work (#23987) --- .rubocop_todo.yml | 1 + .../activitypub/claims_controller_spec.rb | 19 +++++++++ .../api/v2/instances_controller_spec.rb | 22 ++++++++++ .../api/v2/suggestions_controller_spec.rb | 22 ++++++++++ .../controllers/auth/setup_controller_spec.rb | 25 +++++++++++ .../controllers/custom_css_controller_spec.rb | 14 +++++++ .../filters/statuses_controller_spec.rb | 41 +++++++++++++++++++ spec/controllers/filters_controller_spec.rb | 27 ++++++++++++ spec/controllers/health_controller_spec.rb | 14 +++++++ spec/controllers/privacy_controller_spec.rb | 14 +++++++ spec/helpers/statuses_helper_spec.rb | 28 ++++++++++++- spec/lib/importer/base_importer_spec.rb | 14 +++++++ spec/lib/search_query_transformer_spec.rb | 18 ++++++++ spec/models/admin/appeal_filter_spec.rb | 16 ++++++++ spec/models/form/admin_settings_spec.rb | 36 ++++++++++++++++ .../form/status_filter_batch_action_spec.rb | 13 ++++++ .../verify_account_links_worker_spec.rb | 13 ++++++ 17 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 spec/controllers/activitypub/claims_controller_spec.rb create mode 100644 spec/controllers/api/v2/instances_controller_spec.rb create mode 100644 spec/controllers/api/v2/suggestions_controller_spec.rb create mode 100644 spec/controllers/auth/setup_controller_spec.rb create mode 100644 spec/controllers/custom_css_controller_spec.rb create mode 100644 spec/controllers/filters/statuses_controller_spec.rb create mode 100644 spec/controllers/filters_controller_spec.rb create mode 100644 spec/controllers/health_controller_spec.rb create mode 100644 spec/controllers/privacy_controller_spec.rb create mode 100644 spec/lib/importer/base_importer_spec.rb create mode 100644 spec/lib/search_query_transformer_spec.rb create mode 100644 spec/models/admin/appeal_filter_spec.rb create mode 100644 spec/models/form/admin_settings_spec.rb create mode 100644 spec/models/form/status_filter_batch_action_spec.rb create mode 100644 spec/workers/verify_account_links_worker_spec.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 90e6448560..0035478c40 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -661,6 +661,7 @@ RSpec/ExpectInHook: RSpec/FilePath: Exclude: - 'spec/config/initializers/rack_attack_spec.rb' + - 'spec/controllers/activitypub/claims_controller_spec.rb' - 'spec/controllers/activitypub/collections_controller_spec.rb' - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - 'spec/controllers/activitypub/inboxes_controller_spec.rb' diff --git a/spec/controllers/activitypub/claims_controller_spec.rb b/spec/controllers/activitypub/claims_controller_spec.rb new file mode 100644 index 0000000000..f00eeb732a --- /dev/null +++ b/spec/controllers/activitypub/claims_controller_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::ClaimsController do + let(:account) { Fabricate(:account) } + + describe 'POST #create' do + context 'without signature' do + before do + post :create, params: { account_username: account.username }, body: '{}' + end + + it 'returns http not authorized' do + expect(response).to have_http_status(401) + end + end + end +end diff --git a/spec/controllers/api/v2/instances_controller_spec.rb b/spec/controllers/api/v2/instances_controller_spec.rb new file mode 100644 index 0000000000..b7206da0a2 --- /dev/null +++ b/spec/controllers/api/v2/instances_controller_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V2::InstancesController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id) } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/api/v2/suggestions_controller_spec.rb b/spec/controllers/api/v2/suggestions_controller_spec.rb new file mode 100644 index 0000000000..5e6508bfda --- /dev/null +++ b/spec/controllers/api/v2/suggestions_controller_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V2::SuggestionsController do + render_views + + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/auth/setup_controller_spec.rb b/spec/controllers/auth/setup_controller_spec.rb new file mode 100644 index 0000000000..75e42aaf96 --- /dev/null +++ b/spec/controllers/auth/setup_controller_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Auth::SetupController do + render_views + + describe 'GET #show' do + context 'with a signed out request' do + it 'returns http redirect' do + get :show + expect(response).to be_redirect + end + end + + context 'with an unconfirmed signed in user' do + before { sign_in Fabricate(:user, confirmed_at: nil) } + + it 'returns http success' do + get :show + expect(response).to have_http_status(200) + end + end + end +end diff --git a/spec/controllers/custom_css_controller_spec.rb b/spec/controllers/custom_css_controller_spec.rb new file mode 100644 index 0000000000..47fe6031fa --- /dev/null +++ b/spec/controllers/custom_css_controller_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe CustomCssController do + render_views + + describe 'GET #show' do + it 'returns http success' do + get :show + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/filters/statuses_controller_spec.rb b/spec/controllers/filters/statuses_controller_spec.rb new file mode 100644 index 0000000000..492361188b --- /dev/null +++ b/spec/controllers/filters/statuses_controller_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Filters::StatusesController do + render_views + + describe 'GET #index' do + let(:filter) { Fabricate(:custom_filter) } + + context 'with signed out user' do + it 'redirects' do + get :index, params: { filter_id: filter } + + expect(response).to be_redirect + end + end + + context 'with a signed in user' do + context 'with the filter user signed in' do + before { sign_in(filter.account.user) } + + it 'returns http success' do + get :index, params: { filter_id: filter } + + expect(response).to have_http_status(200) + end + end + + context 'with another user signed in' do + before { sign_in(Fabricate(:user)) } + + it 'returns http not found' do + get :index, params: { filter_id: filter } + + expect(response).to have_http_status(404) + end + end + end + end +end diff --git a/spec/controllers/filters_controller_spec.rb b/spec/controllers/filters_controller_spec.rb new file mode 100644 index 0000000000..f68f87ba7a --- /dev/null +++ b/spec/controllers/filters_controller_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe FiltersController do + render_views + + describe 'GET #index' do + context 'with signed out user' do + it 'redirects' do + get :index + + expect(response).to be_redirect + end + end + + context 'with a signed in user' do + before { sign_in(Fabricate(:user)) } + + it 'returns http success' do + get :index + + expect(response).to have_http_status(200) + end + end + end +end diff --git a/spec/controllers/health_controller_spec.rb b/spec/controllers/health_controller_spec.rb new file mode 100644 index 0000000000..282b664199 --- /dev/null +++ b/spec/controllers/health_controller_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe HealthController do + render_views + + describe 'GET #show' do + it 'returns http success' do + get :show + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/controllers/privacy_controller_spec.rb b/spec/controllers/privacy_controller_spec.rb new file mode 100644 index 0000000000..c92c71ea64 --- /dev/null +++ b/spec/controllers/privacy_controller_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe PrivacyController do + render_views + + describe 'GET #show' do + it 'returns http success' do + get :show + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb index c8ca2ed323..105da7e1b1 100644 --- a/spec/helpers/statuses_helper_spec.rb +++ b/spec/helpers/statuses_helper_spec.rb @@ -2,7 +2,33 @@ require 'rails_helper' -RSpec.describe StatusesHelper, type: :helper do +describe StatusesHelper do + describe 'status_text_summary' do + context 'with blank text' do + let(:status) { Status.new(spoiler_text: '') } + + it 'returns immediately with nil' do + result = helper.status_text_summary(status) + expect(result).to be_nil + end + end + + context 'with present text' do + let(:status) { Status.new(spoiler_text: 'SPOILERS!!!') } + + it 'returns the content warning' do + result = helper.status_text_summary(status) + expect(result).to eq(I18n.t('statuses.content_warning', warning: 'SPOILERS!!!')) + end + end + end + + def status_text_summary(status) + return if status.spoiler_text.blank? + + I18n.t('statuses.content_warning', warning: status.spoiler_text) + end + describe 'link_to_newer' do it 'returns a link to newer content' do url = 'https://example.com' diff --git a/spec/lib/importer/base_importer_spec.rb b/spec/lib/importer/base_importer_spec.rb new file mode 100644 index 0000000000..78e9a869b8 --- /dev/null +++ b/spec/lib/importer/base_importer_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Importer::BaseImporter do + describe 'import!' do + let(:pool) { Concurrent::FixedThreadPool.new(5) } + let(:importer) { described_class.new(batch_size: 123, executor: pool) } + + it 'raises an error' do + expect { importer.import! }.to raise_error(NotImplementedError) + end + end +end diff --git a/spec/lib/search_query_transformer_spec.rb b/spec/lib/search_query_transformer_spec.rb new file mode 100644 index 0000000000..1095334695 --- /dev/null +++ b/spec/lib/search_query_transformer_spec.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe SearchQueryTransformer do + describe 'initialization' do + let(:parser) { SearchQueryParser.new.parse('query') } + + it 'sets attributes' do + transformer = described_class.new.apply(parser) + + expect(transformer.should_clauses.first).to be_a(SearchQueryTransformer::TermClause) + expect(transformer.must_clauses.first).to be_nil + expect(transformer.must_not_clauses.first).to be_nil + expect(transformer.filter_clauses.first).to be_nil + end + end +end diff --git a/spec/models/admin/appeal_filter_spec.rb b/spec/models/admin/appeal_filter_spec.rb new file mode 100644 index 0000000000..e840bc3bc1 --- /dev/null +++ b/spec/models/admin/appeal_filter_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Admin::AppealFilter do + describe '#results' do + let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) } + let(:not_approved_appeal) { Fabricate(:appeal, approved_at: nil) } + + it 'returns filtered appeals' do + filter = described_class.new(status: 'approved') + + expect(filter.results).to eq([approved_appeal]) + end + end +end diff --git a/spec/models/form/admin_settings_spec.rb b/spec/models/form/admin_settings_spec.rb new file mode 100644 index 0000000000..0dc2d881ad --- /dev/null +++ b/spec/models/form/admin_settings_spec.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Form::AdminSettings do + describe 'validations' do + describe 'site_contact_username' do + context 'with no accounts' do + it 'is not valid' do + setting = described_class.new(site_contact_username: 'Test') + setting.valid? + + expect(setting).to model_have_error_on_field(:site_contact_username) + end + end + + context 'with an account' do + before { Fabricate(:account, username: 'Glorp') } + + it 'is not valid when account doesnt match' do + setting = described_class.new(site_contact_username: 'Test') + setting.valid? + + expect(setting).to model_have_error_on_field(:site_contact_username) + end + + it 'is valid when account matches' do + setting = described_class.new(site_contact_username: 'Glorp') + setting.valid? + + expect(setting).to_not model_have_error_on_field(:site_contact_username) + end + end + end + end +end diff --git a/spec/models/form/status_filter_batch_action_spec.rb b/spec/models/form/status_filter_batch_action_spec.rb new file mode 100644 index 0000000000..f06a11cc8b --- /dev/null +++ b/spec/models/form/status_filter_batch_action_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Form::StatusFilterBatchAction do + describe '#save!' do + it 'does nothing if status_filter_ids is empty' do + batch_action = described_class.new(status_filter_ids: []) + + expect(batch_action.save!).to be_nil + end + end +end diff --git a/spec/workers/verify_account_links_worker_spec.rb b/spec/workers/verify_account_links_worker_spec.rb new file mode 100644 index 0000000000..227591392c --- /dev/null +++ b/spec/workers/verify_account_links_worker_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe VerifyAccountLinksWorker do + let(:worker) { described_class.new } + + describe 'perform' do + it 'runs without error for missing record' do + expect { worker.perform(nil) }.to_not raise_error + end + end +end From 540d49ec143094e94996b04ba06ae8bdfd092ba8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:08:10 +0100 Subject: [PATCH 0651/1220] Bump pghero from 3.1.0 to 3.2.0 (#24044) 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 8fbb7c5d1a..df3385cf3f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -483,7 +483,7 @@ GEM pastel (0.8.0) tty-color (~> 0.5) pg (1.4.6) - pghero (3.1.0) + pghero (3.2.0) activerecord (>= 6) pkg-config (1.5.1) posix-spawn (0.3.15) From 8931f18a218ed910cc242f680a81b533cc270ad3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 15:24:19 +0100 Subject: [PATCH 0652/1220] Bump eslint from 8.33.0 to 8.35.0 (#24049) 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, 21 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index efc8a0dc20..e487238969 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", "babel-jest": "^29.5.0", - "eslint": "^8.33.0", + "eslint": "^8.35.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", diff --git a/yarn.lock b/yarn.lock index 29d74690fa..39d9fb8773 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1201,10 +1201,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint/eslintrc@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" + integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1216,6 +1216,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.35.0": + version "8.35.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" + integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== + "@floating-ui/core@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.1.tgz#00e64d74e911602c8533957af0cce5af6b2e93c8" @@ -4667,12 +4672,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.33.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" - integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== +eslint@^8.35.0: + version "8.35.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" + integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== dependencies: - "@eslint/eslintrc" "^1.4.1" + "@eslint/eslintrc" "^2.0.0" + "@eslint/js" "8.35.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4686,7 +4692,7 @@ eslint@^8.33.0: eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" espree "^9.4.0" - esquery "^1.4.0" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" @@ -4726,10 +4732,10 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" From 3ea0856f707c0b59914d616608ae15cc6d9a9e1a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 10 Mar 2023 10:32:37 -0500 Subject: [PATCH 0653/1220] Enable RSpec/FilePath (#23965) --- .rubocop.yml | 17 +++++++++++ .rubocop_todo.yml | 72 ----------------------------------------------- 2 files changed, 17 insertions(+), 72 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index b4387a4611..99206e5977 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -96,9 +96,26 @@ Rails/Exit: - 'lib/mastodon/cli_helper.rb' - 'lib/cli.rb' +# Reason: Some single letter camel case files shouldn't be split +# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath RSpec/FilePath: CustomTransform: + ActivityPub: activitypub # Ignore the snake_case due to the amount of files to rename DeepL: deepl + FetchOEmbedService: fetch_oembed_service + JsonLdHelper: jsonld_helper + OEmbedController: oembed_controller + OStatus: ostatus + NodeInfoController: nodeinfo_controller # NodeInfo isn't snake_cased for any of the instances + Exclude: + - 'spec/config/initializers/rack_attack_spec.rb' # namespaces usually have separate folder + - 'spec/lib/sanitize_config_spec.rb' # namespaces usually have separate folder + - 'spec/controllers/concerns/account_controller_concern_spec.rb' # Concerns describe ApplicationController and don't fit naming + - 'spec/controllers/concerns/export_controller_concern_spec.rb' + - 'spec/controllers/concerns/localized_spec.rb' + - 'spec/controllers/concerns/rate_limit_headers_spec.rb' + - 'spec/controllers/concerns/signature_verification_spec.rb' + - 'spec/controllers/concerns/user_tracking_concern_spec.rb' RSpec/NotToNot: EnforcedStyle: to_not diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0035478c40..a9727f9399 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -655,78 +655,6 @@ RSpec/ExpectInHook: - 'spec/controllers/settings/applications_controller_spec.rb' - 'spec/lib/status_filter_spec.rb' -# Offense count: 61 -# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly. -# Include: **/*_spec*rb*, **/spec/**/* -RSpec/FilePath: - Exclude: - - 'spec/config/initializers/rack_attack_spec.rb' - - 'spec/controllers/activitypub/claims_controller_spec.rb' - - 'spec/controllers/activitypub/collections_controller_spec.rb' - - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' - - 'spec/controllers/activitypub/inboxes_controller_spec.rb' - - 'spec/controllers/activitypub/outboxes_controller_spec.rb' - - 'spec/controllers/activitypub/replies_controller_spec.rb' - - 'spec/controllers/admin/change_email_controller_spec.rb' - - 'spec/controllers/admin/users/roles_controller.rb' - - 'spec/controllers/api/oembed_controller_spec.rb' - - 'spec/controllers/concerns/account_controller_concern_spec.rb' - - 'spec/controllers/concerns/export_controller_concern_spec.rb' - - 'spec/controllers/concerns/localized_spec.rb' - - 'spec/controllers/concerns/rate_limit_headers_spec.rb' - - 'spec/controllers/concerns/signature_verification_spec.rb' - - 'spec/controllers/concerns/user_tracking_concern_spec.rb' - - 'spec/controllers/well_known/nodeinfo_controller_spec.rb' - - 'spec/helpers/admin/action_log_helper_spec.rb' - - 'spec/helpers/jsonld_helper_spec.rb' - - 'spec/lib/activitypub/activity/accept_spec.rb' - - 'spec/lib/activitypub/activity/add_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/block_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/activitypub/activity/delete_spec.rb' - - 'spec/lib/activitypub/activity/flag_spec.rb' - - 'spec/lib/activitypub/activity/follow_spec.rb' - - 'spec/lib/activitypub/activity/like_spec.rb' - - 'spec/lib/activitypub/activity/move_spec.rb' - - 'spec/lib/activitypub/activity/reject_spec.rb' - - 'spec/lib/activitypub/activity/remove_spec.rb' - - 'spec/lib/activitypub/activity/undo_spec.rb' - - 'spec/lib/activitypub/activity/update_spec.rb' - - 'spec/lib/activitypub/adapter_spec.rb' - - 'spec/lib/activitypub/dereferencer_spec.rb' - - 'spec/lib/activitypub/linked_data_signature_spec.rb' - - 'spec/lib/activitypub/tag_manager_spec.rb' - - 'spec/lib/ostatus/tag_manager_spec.rb' - - 'spec/lib/sanitize_config_spec.rb' - - 'spec/serializers/activitypub/device_serializer_spec.rb' - - 'spec/serializers/activitypub/note_serializer_spec.rb' - - 'spec/serializers/activitypub/one_time_key_serializer_spec.rb' - - 'spec/serializers/activitypub/undo_like_serializer_spec.rb' - - 'spec/serializers/activitypub/vote_serializer_spec.rb' - - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_key_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/activitypub/fetch_replies_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/activitypub/synchronize_followers_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/remove_from_follwers_service_spec.rb' - - 'spec/workers/activitypub/delivery_worker_spec.rb' - - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb' - - 'spec/workers/activitypub/distribution_worker_spec.rb' - - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' - - 'spec/workers/activitypub/move_distribution_worker_spec.rb' - - 'spec/workers/activitypub/processing_worker_spec.rb' - - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb' - - 'spec/workers/activitypub/update_distribution_worker_spec.rb' - # Offense count: 16 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. From 1ed12d5e2f6dc0f7d891916df84be6e06d37786d Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 10 Mar 2023 13:31:10 -0500 Subject: [PATCH 0654/1220] Add basic search specs for chewy indexes (#24065) --- spec/chewy/accounts_index_spec.rb | 31 +++++++++++++++++++++++++++++++ spec/chewy/statuses_index_spec.rb | 31 +++++++++++++++++++++++++++++++ spec/chewy/tags_index_spec.rb | 31 +++++++++++++++++++++++++++++++ spec/rails_helper.rb | 2 ++ 4 files changed, 95 insertions(+) create mode 100644 spec/chewy/accounts_index_spec.rb create mode 100644 spec/chewy/statuses_index_spec.rb create mode 100644 spec/chewy/tags_index_spec.rb diff --git a/spec/chewy/accounts_index_spec.rb b/spec/chewy/accounts_index_spec.rb new file mode 100644 index 0000000000..f9c5922c76 --- /dev/null +++ b/spec/chewy/accounts_index_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe AccountsIndex do + describe 'Searching the index' do + before do + mock_elasticsearch_response(described_class, raw_response) + end + + it 'returns results from a query' do + results = described_class.query(match: { name: 'account' }) + + expect(results).to eq [] + end + end + + def raw_response + { + took: 3, + hits: { + hits: [ + { + _id: '0', + _score: 1.6375021, + }, + ], + }, + } + end +end diff --git a/spec/chewy/statuses_index_spec.rb b/spec/chewy/statuses_index_spec.rb new file mode 100644 index 0000000000..768e9415fc --- /dev/null +++ b/spec/chewy/statuses_index_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe StatusesIndex do + describe 'Searching the index' do + before do + mock_elasticsearch_response(described_class, raw_response) + end + + it 'returns results from a query' do + results = described_class.query(match: { name: 'status' }) + + expect(results).to eq [] + end + end + + def raw_response + { + took: 3, + hits: { + hits: [ + { + _id: '0', + _score: 1.6375021, + }, + ], + }, + } + end +end diff --git a/spec/chewy/tags_index_spec.rb b/spec/chewy/tags_index_spec.rb new file mode 100644 index 0000000000..054589bdfb --- /dev/null +++ b/spec/chewy/tags_index_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe TagsIndex do + describe 'Searching the index' do + before do + mock_elasticsearch_response(described_class, raw_response) + end + + it 'returns results from a query' do + results = described_class.query(match: { name: 'tag' }) + + expect(results).to eq [] + end + end + + def raw_response + { + took: 3, + hits: { + hits: [ + { + _id: '0', + _score: 1.6375021, + }, + ], + }, + } + end +end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 70d3a968ca..c204fcdbd2 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -10,6 +10,7 @@ require 'rspec/rails' require 'webmock/rspec' require 'paperclip/matchers' require 'capybara/rspec' +require 'chewy/rspec' Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } @@ -45,6 +46,7 @@ RSpec.configure do |config| config.include Devise::Test::ControllerHelpers, type: :view config.include Paperclip::Shoulda::Matchers config.include ActiveSupport::Testing::TimeHelpers + config.include Chewy::Rspec::Helpers config.include Redisable config.before :each, type: :feature do From f432db7b9f54501269c6377faf85b1b4b1424239 Mon Sep 17 00:00:00 2001 From: Claire Date: Sun, 12 Mar 2023 23:47:55 +0100 Subject: [PATCH 0655/1220] Fix sidekiq jobs not triggering Elasticsearch index updates (#24046) --- bin/tootctl | 4 +++- config/initializers/chewy.rb | 1 - lib/mastodon/sidekiq_middleware.rb | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/bin/tootctl b/bin/tootctl index a9ebb22c6d..9c7ae8b871 100755 --- a/bin/tootctl +++ b/bin/tootctl @@ -5,7 +5,9 @@ require_relative '../config/boot' require_relative '../lib/cli' begin - Mastodon::CLI.start(ARGV) + Chewy.strategy(:mastodon) do + Mastodon::CLI.start(ARGV) + end rescue Interrupt exit(130) end diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb index 752fc3c6df..2a91efefc8 100644 --- a/config/initializers/chewy.rb +++ b/config/initializers/chewy.rb @@ -19,7 +19,6 @@ Chewy.settings = { # cycle, which takes care of checking if Elasticsearch is enabled # or not. However, mind that for the Rails console, the :urgent # strategy is set automatically with no way to override it. -Chewy.root_strategy = :mastodon Chewy.request_strategy = :mastodon Chewy.use_after_commit_callbacks = false diff --git a/lib/mastodon/sidekiq_middleware.rb b/lib/mastodon/sidekiq_middleware.rb index c75e8401f5..9832e1a27c 100644 --- a/lib/mastodon/sidekiq_middleware.rb +++ b/lib/mastodon/sidekiq_middleware.rb @@ -3,8 +3,8 @@ class Mastodon::SidekiqMiddleware BACKTRACE_LIMIT = 3 - def call(*) - yield + def call(*, &block) + Chewy.strategy(:mastodon, &block) rescue Mastodon::HostValidationError # Do not retry rescue => e From e762a14c0ab235c337b3cddbef1eaf72b26faf58 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 12 Mar 2023 19:03:07 -0400 Subject: [PATCH 0656/1220] Enable Rubocop Performance/DeleteSuffix (#24077) --- .rubocop_todo.yml | 7 ------- lib/tasks/repo.rake | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a9727f9399..8a96e59f90 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -301,13 +301,6 @@ Performance/DeletePrefix: - 'app/services/resolve_account_service.rb' - 'app/services/tag_search_service.rb' -# Offense count: 1 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: SafeMultiline. -Performance/DeleteSuffix: - Exclude: - - 'lib/tasks/repo.rake' - # Offense count: 19 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/MapCompact: diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake index 5d1b4f7544..888337b4f2 100644 --- a/lib/tasks/repo.rake +++ b/lib/tasks/repo.rake @@ -91,8 +91,8 @@ namespace :repo do missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? } locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path| - file_name = File.basename(path) - file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').gsub(/\.yml\z/, '').to_sym + file_name = File.basename(path, '.yml') + file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').to_sym end.uniq.compact missing_available_locales = locales_in_files - I18n.available_locales From d258ec8e3ba7eec75d4da645444d03975e8dd62c Mon Sep 17 00:00:00 2001 From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com> Date: Mon, 13 Mar 2023 00:06:27 +0100 Subject: [PATCH 0657/1220] Prefer the stored location as after_sign_in_path in Omniauth Callback Controller (#24073) --- app/controllers/auth/omniauth_callbacks_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/auth/omniauth_callbacks_controller.rb b/app/controllers/auth/omniauth_callbacks_controller.rb index 3d7962de56..9e0fb942aa 100644 --- a/app/controllers/auth/omniauth_callbacks_controller.rb +++ b/app/controllers/auth/omniauth_callbacks_controller.rb @@ -33,7 +33,7 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController def after_sign_in_path_for(resource) if resource.email_present? - root_path + stored_location_for(resource) || root_path else auth_setup_path(missing_email: '1') end From 245f0aead2f7afe007bd6982f9fb8491c4422e27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 11:16:24 +0100 Subject: [PATCH 0658/1220] Bump jsdom from 21.1.0 to 21.1.1 (#24090) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 86 +++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 62 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index e487238969..8482692acf 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "intl-relativeformat": "^6.4.3", "is-nan": "^1.3.2", "js-yaml": "^4.1.0", - "jsdom": "^21.1.0", + "jsdom": "^21.1.1", "lodash": "^4.17.21", "mark-loader": "^0.1.6", "marky": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 39d9fb8773..5b1252f68e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2248,7 +2248,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -3906,6 +3906,13 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +cssstyle@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" + integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== + dependencies: + rrweb-cssom "^0.6.0" + csstype@^2.6.7: version "2.6.13" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" @@ -3943,6 +3950,15 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" +data-urls@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" + integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^12.0.0" + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -3977,10 +3993,10 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decimal.js@^10.4.2: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== +decimal.js@^10.4.2, decimal.js@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== decode-uri-component@^0.2.0: version "0.2.2" @@ -6976,18 +6992,17 @@ jsdom@^20.0.0: ws "^8.11.0" xml-name-validator "^4.0.0" -jsdom@^21.1.0: - version "21.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.0.tgz#d56ba4a84ed478260d83bd53dc181775f2d8e6ef" - integrity sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg== +jsdom@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.1.tgz#ab796361e3f6c01bcfaeda1fea3c06197ac9d8ae" + integrity sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w== dependencies: abab "^2.0.6" - acorn "^8.8.1" + acorn "^8.8.2" acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" + cssstyle "^3.0.0" + data-urls "^4.0.0" + decimal.js "^10.4.3" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -6996,7 +7011,8 @@ jsdom@^21.1.0: https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" nwsapi "^2.2.2" - parse5 "^7.1.1" + parse5 "^7.1.2" + rrweb-cssom "^0.6.0" saxes "^6.0.0" symbol-tree "^3.2.4" tough-cookie "^4.1.2" @@ -7004,8 +7020,8 @@ jsdom@^21.1.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" + whatwg-url "^12.0.1" + ws "^8.13.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -8218,10 +8234,10 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parse5@^7.0.0, parse5@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== +parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: entities "^4.4.0" @@ -9736,6 +9752,11 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" +rrweb-cssom@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -10946,6 +10967,13 @@ tr46@^3.0.0: dependencies: punycode "^2.1.1" +tr46@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" + integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== + dependencies: + punycode "^2.3.0" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -11589,6 +11617,14 @@ whatwg-url@^11.0.0: tr46 "^3.0.0" webidl-conversions "^7.0.0" +whatwg-url@^12.0.0, whatwg-url@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" + integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== + dependencies: + tr46 "^4.1.1" + webidl-conversions "^7.0.0" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -11907,10 +11943,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.11.0, ws@^8.12.1: - version "8.12.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f" - integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== +ws@^8.11.0, ws@^8.12.1, ws@^8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== xml-name-validator@^4.0.0: version "4.0.0" From 43ec9d24f935d6d1858a7c96f33815c51860e988 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 11:32:15 +0100 Subject: [PATCH 0659/1220] Bump pghero from 3.2.0 to 3.3.0 (#24085) 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 df3385cf3f..9227e5cb82 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -483,7 +483,7 @@ GEM pastel (0.8.0) tty-color (~> 0.5) pg (1.4.6) - pghero (3.2.0) + pghero (3.3.0) activerecord (>= 6) pkg-config (1.5.1) posix-spawn (0.3.15) From 2d076504d9278e765f2e4bb27dc9fe2adfe2d370 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Mon, 13 Mar 2023 22:34:28 +0100 Subject: [PATCH 0660/1220] Log what's causing the fetch_value errors. Port of https://github.com/mastodon/mastodon/issues/23644#issuecomment-1461863404 --- app/controllers/concerns/cache_concern.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index 05e431b19a..fb4016f55f 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -31,7 +31,24 @@ module CacheConcern def cache_collection(raw, klass) return raw unless klass.respond_to?(:with_includes) - raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) + begin + raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) + rescue NoMethodError + culprit = raw.find do |item| + Rails.cache.read(item) + false + rescue NoMethodError + true + end + + $stderr.puts "fetch_value issue culprit: #{culprit.inspect}\n" + + cache_key = Rails.cache.send(:normalize_key, culprit, {}) + entry = Rails.cache.send(:read_entry, cache_key) + raw_marshal = Zlib::Inflate.inflate(entry.instance_variable_get(:@value)) + $stderr.puts "base64 marshal of culprit: #{Base64.encode64(raw_marshal)}" + end + return [] if raw.empty? cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id) From d092a01ceaa7bbce48b708c9c8a5a2d2e131fbe7 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Tue, 14 Mar 2023 09:45:50 +0100 Subject: [PATCH 0661/1220] Use Rails.logger.warn instead of puts --- app/controllers/concerns/cache_concern.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index fb4016f55f..4386015f22 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -41,12 +41,12 @@ module CacheConcern true end - $stderr.puts "fetch_value issue culprit: #{culprit.inspect}\n" + Rails.logger.warn "fetch_value issue culprit: #{culprit.inspect}" cache_key = Rails.cache.send(:normalize_key, culprit, {}) entry = Rails.cache.send(:read_entry, cache_key) raw_marshal = Zlib::Inflate.inflate(entry.instance_variable_get(:@value)) - $stderr.puts "base64 marshal of culprit: #{Base64.encode64(raw_marshal)}" + Rails.logger.warn "base64 marshal of culprit: #{Base64.encode64(raw_marshal)}" end return [] if raw.empty? From b457636e9a523b6cd63ec1389c534198e4b07224 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Tue, 14 Mar 2023 10:27:21 +0100 Subject: [PATCH 0662/1220] Update fetch_value logging patch https://github.com/mastodon/mastodon/issues/23644#issuecomment-1461863404 --- app/controllers/concerns/cache_concern.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index 4386015f22..a010fac165 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -31,8 +31,11 @@ module CacheConcern def cache_collection(raw, klass) return raw unless klass.respond_to?(:with_includes) - begin - raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) + raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) + return [] if raw.empty? + + cached_keys_with_value = begin + Rails.cache.read_multi(*raw).transform_keys(&:id) rescue NoMethodError culprit = raw.find do |item| Rails.cache.read(item) @@ -41,17 +44,15 @@ module CacheConcern true end - Rails.logger.warn "fetch_value issue culprit: #{culprit.inspect}" + Rails.logger.warn "culprit: #{culprit.inspect}" cache_key = Rails.cache.send(:normalize_key, culprit, {}) entry = Rails.cache.send(:read_entry, cache_key) raw_marshal = Zlib::Inflate.inflate(entry.instance_variable_get(:@value)) - Rails.logger.warn "base64 marshal of culprit: #{Base64.encode64(raw_marshal)}" + Rails.logger.warn "base64 marshal: #{Base64.encode64(raw_marshal)}" + raise end - return [] if raw.empty? - - cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id) uncached_ids = raw.map(&:id) - cached_keys_with_value.keys klass.reload_stale_associations!(cached_keys_with_value.values) if klass.respond_to?(:reload_stale_associations!) From 5dee40b5f5582c2b3dbf60b61e667312ebc54940 Mon Sep 17 00:00:00 2001 From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:47:57 +0100 Subject: [PATCH 0663/1220] Support the PROXY protocol through the PROXY_PROTO_V1 env variable (#24064) --- config/puma.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/puma.rb b/config/puma.rb index e592954458..c4e2b0b85c 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -22,3 +22,5 @@ on_worker_boot do end plugin :tmp_restart + +set_remote_address(proxy_protocol: :v1) if ENV['PROXY_PROTO_V1'] == 'true' From 82d7b08fcf49787196a5b2ee62ed55f37ae6229b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:50:08 +0100 Subject: [PATCH 0664/1220] Bump rack from 2.2.6.3 to 2.2.6.4 (#24097) 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 9227e5cb82..1a48c25d27 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -503,7 +503,7 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.3) + rack (2.2.6.4) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-cors (1.1.1) From 5b39d208046ee6b44c3c24d25b6bbf1010e3e8cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:50:19 +0100 Subject: [PATCH 0665/1220] Bump rails from 6.1.7.2 to 6.1.7.3 (#24096) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 106 +++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1a48c25d27..02de43e009 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,40 +30,40 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.2) - actionpack (= 6.1.7.2) - activesupport (= 6.1.7.2) + actioncable (6.1.7.3) + actionpack (= 6.1.7.3) + activesupport (= 6.1.7.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.2) - actionpack (= 6.1.7.2) - activejob (= 6.1.7.2) - activerecord (= 6.1.7.2) - activestorage (= 6.1.7.2) - activesupport (= 6.1.7.2) + actionmailbox (6.1.7.3) + actionpack (= 6.1.7.3) + activejob (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) mail (>= 2.7.1) - actionmailer (6.1.7.2) - actionpack (= 6.1.7.2) - actionview (= 6.1.7.2) - activejob (= 6.1.7.2) - activesupport (= 6.1.7.2) + actionmailer (6.1.7.3) + actionpack (= 6.1.7.3) + actionview (= 6.1.7.3) + activejob (= 6.1.7.3) + activesupport (= 6.1.7.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.2) - actionview (= 6.1.7.2) - activesupport (= 6.1.7.2) + actionpack (6.1.7.3) + actionview (= 6.1.7.3) + activesupport (= 6.1.7.3) 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.2) - actionpack (= 6.1.7.2) - activerecord (= 6.1.7.2) - activestorage (= 6.1.7.2) - activesupport (= 6.1.7.2) + actiontext (6.1.7.3) + actionpack (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) nokogiri (>= 1.8.5) - actionview (6.1.7.2) - activesupport (= 6.1.7.2) + actionview (6.1.7.3) + activesupport (= 6.1.7.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -74,22 +74,22 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.8) - activejob (6.1.7.2) - activesupport (= 6.1.7.2) + activejob (6.1.7.3) + activesupport (= 6.1.7.3) globalid (>= 0.3.6) - activemodel (6.1.7.2) - activesupport (= 6.1.7.2) - activerecord (6.1.7.2) - activemodel (= 6.1.7.2) - activesupport (= 6.1.7.2) - activestorage (6.1.7.2) - actionpack (= 6.1.7.2) - activejob (= 6.1.7.2) - activerecord (= 6.1.7.2) - activesupport (= 6.1.7.2) + activemodel (6.1.7.3) + activesupport (= 6.1.7.3) + activerecord (6.1.7.3) + activemodel (= 6.1.7.3) + activesupport (= 6.1.7.3) + activestorage (6.1.7.3) + actionpack (= 6.1.7.3) + activejob (= 6.1.7.3) + activerecord (= 6.1.7.3) + activesupport (= 6.1.7.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.2) + activesupport (6.1.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -518,20 +518,20 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - rails (6.1.7.2) - actioncable (= 6.1.7.2) - actionmailbox (= 6.1.7.2) - actionmailer (= 6.1.7.2) - actionpack (= 6.1.7.2) - actiontext (= 6.1.7.2) - actionview (= 6.1.7.2) - activejob (= 6.1.7.2) - activemodel (= 6.1.7.2) - activerecord (= 6.1.7.2) - activestorage (= 6.1.7.2) - activesupport (= 6.1.7.2) + rails (6.1.7.3) + actioncable (= 6.1.7.3) + actionmailbox (= 6.1.7.3) + actionmailer (= 6.1.7.3) + actionpack (= 6.1.7.3) + actiontext (= 6.1.7.3) + actionview (= 6.1.7.3) + activejob (= 6.1.7.3) + activemodel (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) bundler (>= 1.15.0) - railties (= 6.1.7.2) + railties (= 6.1.7.3) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -545,9 +545,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.1.7.2) - actionpack (= 6.1.7.2) - activesupport (= 6.1.7.2) + railties (6.1.7.3) + actionpack (= 6.1.7.3) + activesupport (= 6.1.7.3) method_source rake (>= 12.2) thor (~> 1.0) From f4f3e2b46e619fcc2eda48c2eb66c517b4f466aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:55:42 +0100 Subject: [PATCH 0666/1220] Bump rubocop from 1.48.0 to 1.48.1 (#24095) 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 02de43e009..5904ed804d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -477,7 +477,7 @@ GEM orm_adapter (0.5.0) ox (2.14.14) parallel (1.22.1) - parser (3.2.1.0) + parser (3.2.1.1) ast (~> 2.4.1) parslet (2.0.0) pastel (0.8.0) @@ -599,7 +599,7 @@ GEM rspec_chunked (0.6) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.48.0) + rubocop (1.48.1) json (~> 2.3) parallel (~> 1.10) parser (>= 3.2.0.0) From 50d39c275d07dfac75d9739d90fa2f1b5d3dc0cd Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Tue, 14 Mar 2023 20:27:43 +0100 Subject: [PATCH 0667/1220] Push Docker images to Github Container Registry as well (#24101) --- .github/workflows/build-image.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index c567cd9c3a..0ef0cdc17f 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -12,6 +12,7 @@ on: - Dockerfile permissions: contents: read + packages: write jobs: build-image: @@ -26,15 +27,28 @@ jobs: - uses: hadolint/hadolint-action@v3.1.0 - uses: docker/setup-qemu-action@v2 - uses: docker/setup-buildx-action@v2 - - uses: docker/login-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} if: github.event_name != 'pull_request' + + - name: Log in to the Github Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + if: github.event_name != 'pull_request' + - uses: docker/metadata-action@v4 id: meta with: - images: tootsuite/mastodon + images: | + tootsuite/mastodon + ghcr.io/mastodon/mastodon flavor: | latest=auto tags: | @@ -42,6 +56,7 @@ jobs: type=pep440,pattern={{raw}} type=pep440,pattern=v{{major}}.{{minor}} type=ref,event=pr + - uses: docker/build-push-action@v4 with: context: . @@ -50,5 +65,6 @@ jobs: builder: ${{ steps.buildx.outputs.name }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max From ed887271f3985b00d97139ae25b73b1f062666be Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 14 Mar 2023 22:43:49 -0400 Subject: [PATCH 0668/1220] Skip Docker CI Login/Push on forks (#23564) --- .github/workflows/build-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 0ef0cdc17f..a1db68e3b4 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -33,7 +33,7 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - if: github.event_name != 'pull_request' + if: github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request' - name: Log in to the Github Container registry uses: docker/login-action@v2 @@ -41,7 +41,7 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - if: github.event_name != 'pull_request' + if: github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request' - uses: docker/metadata-action@v4 id: meta From 1d0ad558ff51ce3e42ef4e4c9a9bed3c4b722d0d Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Mar 2023 03:45:15 +0100 Subject: [PATCH 0669/1220] Change sidekiq-bulk's batch size from 10,000 to 1,000 jobs in one Redis call (#24034) --- app/lib/activitypub/forwarder.rb | 2 +- app/services/delete_account_service.rb | 4 ++-- app/services/remove_status_service.rb | 2 +- app/services/suspend_account_service.rb | 12 ++++++------ app/services/unsuspend_account_service.rb | 2 +- app/services/update_account_service.rb | 2 +- .../activitypub/distribute_poll_update_worker.rb | 2 +- app/workers/activitypub/move_distribution_worker.rb | 2 +- app/workers/activitypub/raw_distribution_worker.rb | 2 +- lib/cli.rb | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/lib/activitypub/forwarder.rb b/app/lib/activitypub/forwarder.rb index b01d63e586..3a94f9669a 100644 --- a/app/lib/activitypub/forwarder.rb +++ b/app/lib/activitypub/forwarder.rb @@ -12,7 +12,7 @@ class ActivityPub::Forwarder end def forward! - ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes) do |inbox_url| + ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url| [payload, signature_account_id, inbox_url] end end diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb index a2d535d262..190a72e5c5 100644 --- a/app/services/delete_account_service.rb +++ b/app/services/delete_account_service.rb @@ -257,11 +257,11 @@ class DeleteAccountService < BaseService end def delete_actor! - ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes, limit: 1_000) do |inbox_url| [delete_actor_json, @account.id, inbox_url] end - ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url| + ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes, limit: 1_000) do |inbox_url| [delete_actor_json, @account.id, inbox_url] end end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 45cfb75f47..ea799db57f 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -88,7 +88,7 @@ class RemoveStatusService < BaseService status_reach_finder = StatusReachFinder.new(@status, unsafe: true) - ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes, limit: 1_000) do |inbox_url| [signed_activity_json, @account.id, inbox_url] end end diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index 211544fea6..cfb3eb5831 100644 --- a/app/services/suspend_account_service.rb +++ b/app/services/suspend_account_service.rb @@ -31,13 +31,13 @@ class SuspendAccountService < BaseService # counterpart to this operation, i.e. you can't then force a remote # account to re-follow you, so this part is not reversible. - follows = Follow.where(account: @account).to_a + Follow.where(account: @account).find_in_batches do |follows| + ActivityPub::DeliveryWorker.push_bulk(follows) do |follow| + [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url] + end - ActivityPub::DeliveryWorker.push_bulk(follows) do |follow| - [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url] + follows.each(&:destroy) end - - follows.each(&:destroy) end def distribute_update_actor! @@ -45,7 +45,7 @@ class SuspendAccountService < BaseService account_reach_finder = AccountReachFinder.new(@account) - ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url| [signed_activity_json, @account.id, inbox_url] end end diff --git a/app/services/unsuspend_account_service.rb b/app/services/unsuspend_account_service.rb index 70667308ec..d851a0f708 100644 --- a/app/services/unsuspend_account_service.rb +++ b/app/services/unsuspend_account_service.rb @@ -41,7 +41,7 @@ class UnsuspendAccountService < BaseService account_reach_finder = AccountReachFinder.new(@account) - ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url| [signed_activity_json, @account.id, inbox_url] end end diff --git a/app/services/update_account_service.rb b/app/services/update_account_service.rb index 71976ab005..4604d71b2b 100644 --- a/app/services/update_account_service.rb +++ b/app/services/update_account_service.rb @@ -22,7 +22,7 @@ class UpdateAccountService < BaseService def authorize_all_follow_requests(account) follow_requests = FollowRequest.where(target_account: account) follow_requests = follow_requests.preload(:account).select { |req| !req.account.silenced? } - AuthorizeFollowWorker.push_bulk(follow_requests) do |req| + AuthorizeFollowWorker.push_bulk(follow_requests, limit: 1_000) do |req| [req.account_id, req.target_account_id] end end diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb index 25dee4ee25..8c1eefd93d 100644 --- a/app/workers/activitypub/distribute_poll_update_worker.rb +++ b/app/workers/activitypub/distribute_poll_update_worker.rb @@ -12,7 +12,7 @@ class ActivityPub::DistributePollUpdateWorker return unless @status.preloadable_poll - ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url| [payload, @account.id, inbox_url] end diff --git a/app/workers/activitypub/move_distribution_worker.rb b/app/workers/activitypub/move_distribution_worker.rb index 65c5c0d1c3..1680fcc76e 100644 --- a/app/workers/activitypub/move_distribution_worker.rb +++ b/app/workers/activitypub/move_distribution_worker.rb @@ -10,7 +10,7 @@ class ActivityPub::MoveDistributionWorker @migration = AccountMigration.find(migration_id) @account = @migration.account - ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url| [signed_payload, @account.id, inbox_url] end diff --git a/app/workers/activitypub/raw_distribution_worker.rb b/app/workers/activitypub/raw_distribution_worker.rb index 8ecc17db9a..c77821e0f1 100644 --- a/app/workers/activitypub/raw_distribution_worker.rb +++ b/app/workers/activitypub/raw_distribution_worker.rb @@ -25,7 +25,7 @@ class ActivityPub::RawDistributionWorker def distribute! return if inboxes.empty? - ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url| [payload, source_account_id, inbox_url, options] end end diff --git a/lib/cli.rb b/lib/cli.rb index 157465c4b5..ac235cf039 100644 --- a/lib/cli.rb +++ b/lib/cli.rb @@ -131,7 +131,7 @@ module Mastodon json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account)) unless options[:dry_run] - ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url| + ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url| [json, account.id, inbox_url] end From 39c723664998e73778a528ed0d467faed2c160dc Mon Sep 17 00:00:00 2001 From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com> Date: Wed, 15 Mar 2023 03:52:40 +0100 Subject: [PATCH 0670/1220] Redirect users to SLO at the IdP after logging them out of Mastodon. (#24020) --- app/controllers/application_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ad70e28ab5..cee2061b5d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -61,7 +61,11 @@ class ApplicationController < ActionController::Base end def after_sign_out_path_for(_resource_or_scope) - new_user_session_path + if ENV['OMNIAUTH_ONLY'] == 'true' && ENV['OIDC_ENABLED'] == 'true' + '/auth/auth/openid_connect/logout' + else + new_user_session_path + end end protected From a471e1c48f4c9ec9e96832f51783b11407b67161 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 14 Mar 2023 22:56:09 -0400 Subject: [PATCH 0671/1220] Add spec for the CLI `version` task (#23978) --- spec/lib/mastodon/cli_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 spec/lib/mastodon/cli_spec.rb diff --git a/spec/lib/mastodon/cli_spec.rb b/spec/lib/mastodon/cli_spec.rb new file mode 100644 index 0000000000..419f8b864e --- /dev/null +++ b/spec/lib/mastodon/cli_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'cli' + +describe Mastodon::CLI do + describe 'version' do + it 'returns the Mastodon version' do + expect { described_class.new.invoke(:version) }.to output( + a_string_including(Mastodon::Version.to_s) + ).to_stdout + end + end +end From 15fdd94e2f3d1f5c1724971854ba201d47650255 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 14 Mar 2023 23:01:10 -0400 Subject: [PATCH 0672/1220] Update PostCSS dependencies (#23835) --- package.json | 6 +- postcss.config.js | 8 +- yarn.lock | 986 +++++++++++++++------------------------------- 3 files changed, 330 insertions(+), 670 deletions(-) diff --git a/package.json b/package.json index 8482692acf..05eafb2f06 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "abortcontroller-polyfill": "^1.7.5", "array-includes": "^3.1.6", "arrow-key-navigation": "^1.2.0", - "autoprefixer": "^9.8.8", + "autoprefixer": "^10.4.13", "axios": "^1.3.4", "babel-loader": "^8.3.0", "babel-plugin-lodash": "^3.3.4", @@ -51,7 +51,7 @@ "compression-webpack-plugin": "^6.1.1", "cross-env": "^7.0.3", "css-loader": "^5.2.7", - "cssnano": "^4.1.11", + "cssnano": "^5.1.15", "detect-passive-events": "^2.0.3", "dotenv": "^16.0.3", "emoji-mart": "npm:emoji-mart-lazyload@latest", @@ -85,7 +85,7 @@ "pg": "^8.5.0", "pg-connection-string": "^2.5.0", "postcss": "^8.4.21", - "postcss-loader": "^3.0.0", + "postcss-loader": "^4.3.0", "promise.prototype.finally": "^3.1.4", "prop-types": "^15.8.1", "punycode": "^2.3.0", diff --git a/postcss.config.js b/postcss.config.js index e7749a219d..5d58d74e34 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,6 @@ module.exports = ({ env }) => ({ - plugins: { - autoprefixer: {}, - cssnano: env === 'production' ? {} : false, - }, + plugins: [ + 'autoprefixer', + env === 'production' ? 'cssnano' : '', + ], }); diff --git a/yarn.lock b/yarn.lock index 5b1252f68e..ac50d0ce71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1762,6 +1762,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@types/aria-query@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" @@ -1928,11 +1933,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - "@types/react-dom@<18.0.0": version "17.0.15" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156" @@ -2298,11 +2298,6 @@ ajv@^8.0.1, ajv@^8.6.0: require-from-string "^2.0.2" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -2580,18 +2575,17 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.8.8: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== +autoprefixer@^10.4.13: + version "10.4.13" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" + integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" + browserslist "^4.21.4" + caniuse-lite "^1.0.30001426" + fraction.js "^4.2.0" normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" available-typed-arrays@^1.0.5: version "1.0.5" @@ -2880,7 +2874,7 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -2989,7 +2983,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.4: +browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -3137,25 +3131,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3190,12 +3165,17 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400: version "1.0.30001414" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz" integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg== -chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +caniuse-lite@^1.0.30001426: + version "1.0.30001462" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe" + integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw== + +chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3351,15 +3331,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - cocoon-js-vanilla@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/cocoon-js-vanilla/-/cocoon-js-vanilla-1.3.0.tgz#1e53663f5d314e5e9b315b63eaf8ae701df113c0" @@ -3383,7 +3354,7 @@ color-blend@^4.0.0: resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-4.0.0.tgz#e9950e9fa5d6e552ff8bb107c39f7e83a0c1a3bb" integrity sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw== -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3402,33 +3373,17 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" - integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colord@^2.9.3: +colord@^2.9.1, colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== @@ -3604,16 +3559,6 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -3726,18 +3671,10 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" +css-declaration-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" + integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== css-functions-list@^3.1.0: version "3.1.0" @@ -3760,35 +3697,23 @@ css-loader@^5.2.7: schema-utils "^3.0.0" semver "^7.3.5" -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" -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" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" css-tree@^2.3.1: @@ -3799,10 +3724,10 @@ css-tree@^2.3.1: mdn-data "2.0.30" source-map-js "^1.0.1" -css-what@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" - integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== css.escape@^1.5.1: version "1.5.1" @@ -3814,80 +3739,61 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== +cssnano@^5.1.15: + version "5.1.15" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== dependencies: - postcss "^7.0.0" + cssnano-preset-default "^5.2.14" + lilconfig "^2.0.3" + yaml "^1.10.2" -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.11: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== - dependencies: - css-tree "1.0.0-alpha.39" + css-tree "^1.1.2" cssom@^0.5.0: version "0.5.0" @@ -4257,12 +4163,13 @@ dom-helpers@^5.2.0: "@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" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" + domhandler "^4.2.0" entities "^2.0.0" domain-browser@^1.1.1: @@ -4270,16 +4177,16 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + domexception@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" @@ -4287,20 +4194,21 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: - is-obj "^2.0.0" + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" dotenv@^16.0.3: version "16.0.3" @@ -4438,7 +4346,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: +es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: version "1.20.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== @@ -5191,6 +5099,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -5540,7 +5453,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -5588,7 +5501,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -5612,11 +5525,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - history@^4.10.1, history@^4.7.2: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -5679,16 +5587,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" @@ -5842,21 +5740,6 @@ immutable@^4.0.0, immutable@^4.2.4: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a" integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -5865,13 +5748,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-lazy@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" @@ -5913,11 +5789,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -6050,11 +5921,6 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" @@ -6101,11 +5967,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -6137,18 +5998,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" @@ -6200,11 +6049,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-electron@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0" @@ -6301,11 +6145,6 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -6365,11 +6204,6 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" @@ -7034,7 +6868,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -7185,6 +7019,11 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lilconfig@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -7195,7 +7034,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== @@ -7413,21 +7252,16 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + mdn-data@2.0.30: version "2.0.30" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -7666,7 +7500,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -7873,10 +7707,10 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-run-path@^2.0.0: version "2.0.2" @@ -7902,17 +7736,12 @@ npmlog@^7.0.1: gauge "^5.0.0" set-blocking "^2.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + boolbase "^1.0.0" nwsapi@^2.2.2: version "2.2.2" @@ -7994,14 +7823,6 @@ object.fromentries@^2.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -8017,7 +7838,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.6: +object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -8211,14 +8032,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -8395,11 +8208,6 @@ pgpass@1.x: dependencies: split2 "^3.1.1" -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -8465,146 +8273,117 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^7.0.1: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b" - integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw== +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== +postcss-loader@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" + integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.4" postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== dependencies: - browserslist "^4.0.0" + browserslist "^4.21.4" caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + postcss-selector-parser "^6.0.5" postcss-modules-extract-imports@^3.0.0: version "3.0.0" @@ -8634,115 +8413,91 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.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" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== dependencies: - browserslist "^4.0.0" + browserslist "^4.21.4" caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" postcss-resolve-nested-selector@^0.1.1: version "0.1.1" @@ -8759,16 +8514,7 @@ postcss-scss@^4.0.2, postcss-scss@^4.0.6: resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd" integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ== -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: 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== @@ -8776,43 +8522,26 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" + postcss-value-parser "^4.2.0" + svgo "^2.7.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" + postcss-selector-parser "^6.0.5" -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -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" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - postcss@^8.2.15, postcss@^8.4.21: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" @@ -9014,11 +8743,6 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw== -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -9698,16 +9422,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -9822,11 +9536,6 @@ sass@^1.58.3: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - saxes@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" @@ -10055,13 +9764,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sirv@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.10.tgz#3e591f5a9ae2520f50d5830f5fae38d97e7be194" @@ -10534,14 +10236,13 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" stylelint-config-recommended-scss@^9.0.0: version "9.0.0" @@ -10687,24 +10388,18 @@ svg-tags@^1.0.0: resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" symbol-tree@^3.2.4: version "3.2.4" @@ -10866,11 +10561,6 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tiny-invariant@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" @@ -11144,16 +10834,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -11195,11 +10875,6 @@ 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.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -11283,16 +10958,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -11354,11 +11019,6 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -11983,7 +11643,7 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^1.10.0, yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== From 9875be09feebc52592caca739291288c3ae05b46 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Mar 2023 04:01:49 +0100 Subject: [PATCH 0673/1220] Fix dashboard crash on ElasticSearch server error (#23751) --- app/lib/admin/system_check/elasticsearch_check.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb index 5b4c12399b..0b55be3501 100644 --- a/app/lib/admin/system_check/elasticsearch_check.rb +++ b/app/lib/admin/system_check/elasticsearch_check.rb @@ -31,7 +31,7 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck def running_version @running_version ||= begin Chewy.client.info['version']['number'] - rescue Faraday::ConnectionFailed + rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error nil end end From cf50667e26853d2d0f78ec1226db84995c4b83f4 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Mar 2023 04:14:47 +0100 Subject: [PATCH 0674/1220] Fix incorrect post links in strikes when the account is remote (#23611) --- app/views/admin/reports/actions/preview.html.haml | 14 +++++++------- app/views/disputes/strikes/show.html.haml | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/views/admin/reports/actions/preview.html.haml b/app/views/admin/reports/actions/preview.html.haml index 58745319c8..70edb48d80 100644 --- a/app/views/admin/reports/actions/preview.html.haml +++ b/app/views/admin/reports/actions/preview.html.haml @@ -54,15 +54,15 @@ .strike-card__statuses-list__item - if (status = status_map[status_id.to_i]) .one-liner - = link_to short_account_status_url(@report.target_account, status_id), class: 'emojify' do - = one_line_preview(status) + .emojify= one_line_preview(status) - - status.ordered_media_attachments.each do |media_attachment| - %abbr{ title: media_attachment.description } - = fa_icon 'link' - = media_attachment.file_file_name + - status.ordered_media_attachments.each do |media_attachment| + %abbr{ title: media_attachment.description } + = fa_icon 'link' + = media_attachment.file_file_name .strike-card__statuses-list__item__meta - %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) + = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do + %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) - unless status.application.nil? · = status.application.name diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml index 7797348dd7..ce52e470d9 100644 --- a/app/views/disputes/strikes/show.html.haml +++ b/app/views/disputes/strikes/show.html.haml @@ -50,15 +50,15 @@ .strike-card__statuses-list__item - if (status = status_map[status_id.to_i]) .one-liner - = link_to short_account_status_url(@strike.target_account, status_id), class: 'emojify' do - = one_line_preview(status) + .emojify= one_line_preview(status) - - status.ordered_media_attachments.each do |media_attachment| - %abbr{ title: media_attachment.description } - = fa_icon 'link' - = media_attachment.file_file_name + - status.ordered_media_attachments.each do |media_attachment| + %abbr{ title: media_attachment.description } + = fa_icon 'link' + = media_attachment.file_file_name .strike-card__statuses-list__item__meta - %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) + = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do + %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) - unless status.application.nil? · = status.application.name From a232a1feb804e22507ca104ca0aaf21a7c70cb26 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Mar 2023 04:15:20 +0100 Subject: [PATCH 0675/1220] Fix misleading error code when receiving invalid WebAuthn credentials (#23568) --- .../webauthn_credentials_controller.rb | 2 +- .../webauthn_credentials_controller_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb index e43818c941..d1ee7dc195 100644 --- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb +++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb @@ -52,7 +52,7 @@ module Settings end else flash[:error] = I18n.t('webauthn_credentials.create.error') - status = :internal_server_error + status = :unprocessable_entity end else flash[:error] = t('webauthn_credentials.create.error') diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb index f060c3a4bd..a95521c94a 100644 --- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb @@ -248,7 +248,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do post :create, params: { credential: new_webauthn_credential, nickname: 'USB Key' } - expect(response).to have_http_status(500) + expect(response).to have_http_status(422) expect(flash[:error]).to be_present end end @@ -268,7 +268,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do post :create, params: { credential: new_webauthn_credential, nickname: nickname } - expect(response).to have_http_status(500) + expect(response).to have_http_status(422) expect(flash[:error]).to be_present end end From 75131e7bf7f3d96cf325e674e6b76b0096382e99 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 14 Mar 2023 23:15:36 -0400 Subject: [PATCH 0676/1220] Setup haml-lint CI with todo config (#23524) --- .../workflows/haml-lint-problem-matcher.json | 17 +++ .github/workflows/lint-haml.yml | 44 ++++++ .haml-lint.yml | 103 +------------- .haml-lint_todo.yml | 128 ++++++++++++++++++ Gemfile | 1 + Gemfile.lock | 8 ++ app/views/admin/accounts/show.html.haml | 8 +- app/views/admin/action_logs/index.html.haml | 2 +- app/views/admin/announcements/index.html.haml | 2 +- .../admin/disputes/appeals/index.html.haml | 2 +- app/views/admin/instances/index.html.haml | 2 +- app/views/admin/rules/index.html.haml | 2 +- .../admin/warning_presets/index.html.haml | 2 +- app/views/admin/webhooks/index.html.haml | 2 +- app/views/auth/sessions/two_factor.html.haml | 2 +- app/views/filters/_filter_fields.html.haml | 2 +- app/views/filters/index.html.haml | 2 +- app/views/kaminari/_next_page.html.haml | 16 ++- app/views/kaminari/_paginator.html.haml | 15 +- app/views/kaminari/_prev_page.html.haml | 15 +- app/views/layouts/modal.html.haml | 2 +- .../notification_mailer/_status.html.haml | 4 +- app/views/oauth/authorizations/show.html.haml | 2 +- .../settings/applications/index.html.haml | 2 +- .../settings/applications/show.html.haml | 4 +- .../settings/login_activities/index.html.haml | 2 +- app/views/statuses/_poll.html.haml | 2 +- 27 files changed, 248 insertions(+), 145 deletions(-) create mode 100644 .github/workflows/haml-lint-problem-matcher.json create mode 100644 .github/workflows/lint-haml.yml create mode 100644 .haml-lint_todo.yml diff --git a/.github/workflows/haml-lint-problem-matcher.json b/.github/workflows/haml-lint-problem-matcher.json new file mode 100644 index 0000000000..3523ea2951 --- /dev/null +++ b/.github/workflows/haml-lint-problem-matcher.json @@ -0,0 +1,17 @@ +{ + "problemMatcher": [ + { + "owner": "haml-lint", + "severity": "warning", + "pattern": [ + { + "regexp": "^(.*):(\\d+)\\s\\[W]\\s(.*):\\s(.*)$", + "file": 1, + "line": 2, + "code": 3, + "message": 4 + } + ] + } + ] +} diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml new file mode 100644 index 0000000000..a2b22a6590 --- /dev/null +++ b/.github/workflows/lint-haml.yml @@ -0,0 +1,44 @@ +name: Haml Linting +on: + push: + branches-ignore: + - 'dependabot/**' + paths: + - '.github/workflows/haml-lint-problem-matcher.json' + - '.github/workflows/lint-haml.yml' + - '.haml-lint*.yml' + - '.rubocop*.yml' + - '.ruby-version' + - '**/*.haml' + - 'Gemfile*' + + pull_request: + paths: + - '.github/workflows/haml-lint-problem-matcher.json' + - '.github/workflows/lint-haml.yml' + - '.haml-lint*.yml' + - '.rubocop*.yml' + - '.ruby-version' + - '**/*.haml' + - 'Gemfile*' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Install native Ruby dependencies + run: sudo apt-get install -y libicu-dev libidn11-dev + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: .ruby-version + bundler-cache: true + + - name: Run haml-lint + run: | + echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json" + bundle exec haml-lint diff --git a/.haml-lint.yml b/.haml-lint.yml index 7853d81d7c..12ca463422 100644 --- a/.haml-lint.yml +++ b/.haml-lint.yml @@ -1,108 +1,9 @@ -# Whether to ignore frontmatter at the beginning of HAML documents for -# frameworks such as Jekyll/Middleman -skip_frontmatter: false +inherits_from: .haml-lint_todo.yml exclude: - 'vendor/**/*' - - 'spec/**/*' - - 'lib/templates/**/*' - - 'app/views/kaminari/**/*' + - lib/templates/haml/scaffold/_form.html.haml linters: AltText: - enabled: false - - ClassAttributeWithStaticValue: - enabled: true - - ClassesBeforeIds: - enabled: true - - ConsecutiveComments: - enabled: true - - ConsecutiveSilentScripts: - enabled: true - max_consecutive: 2 - - EmptyObjectReference: - enabled: true - - EmptyScript: - enabled: true - - FinalNewline: - enabled: true - present: true - - HtmlAttributes: - enabled: true - - ImplicitDiv: - enabled: true - - LeadingCommentSpace: - enabled: true - - LineLength: - enabled: false - max: 80 - - MultilinePipe: - enabled: true - - MultilineScript: - enabled: true - - ObjectReferenceAttributes: - enabled: true - - RuboCop: - enabled: true - # These cops are incredibly noisy when it comes to HAML templates, so we - # ignore them. - ignored_cops: - - Lint/BlockAlignment - - Lint/EndAlignment - - Lint/Void - - Metrics/BlockLength - - Metrics/LineLength - - Style/AlignParameters - - Style/BlockNesting - - Style/ElseAlignment - - Style/EndOfLine - - Style/FileName - - Style/FinalNewline - - Style/FrozenStringLiteralComment - - Style/IfUnlessModifier - - Style/IndentationWidth - - Style/Next - - Style/TrailingBlankLines - - Style/TrailingWhitespace - - Style/WhileUntilModifier - - RubyComments: - enabled: true - - SpaceBeforeScript: - enabled: true - - SpaceInsideHashAttributes: - enabled: true - style: space - - Indentation: - enabled: true - character: space # or tab - - TagName: - enabled: true - - TrailingWhitespace: - enabled: true - - UnnecessaryInterpolation: - enabled: true - - UnnecessaryStringOutput: enabled: true diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml new file mode 100644 index 0000000000..203010b043 --- /dev/null +++ b/.haml-lint_todo.yml @@ -0,0 +1,128 @@ +# This configuration was generated by +# `haml-lint --auto-gen-config` +# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0. +# The point is for the user to remove these configuration records +# one by one as the lints are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of Haml-Lint, may require this file to be generated again. + +linters: + # Offense count: 76 + RuboCop: + exclude: + - 'app/views/accounts/_og.html.haml' + - 'app/views/admin/account_actions/new.html.haml' + - 'app/views/admin/account_warnings/_account_warning.html.haml' + - 'app/views/admin/accounts/index.html.haml' + - 'app/views/admin/accounts/show.html.haml' + - 'app/views/admin/action_logs/index.html.haml' + - 'app/views/admin/announcements/edit.html.haml' + - 'app/views/admin/announcements/new.html.haml' + - 'app/views/admin/change_emails/show.html.haml' + - 'app/views/admin/custom_emojis/index.html.haml' + - 'app/views/admin/dashboard/index.html.haml' + - 'app/views/admin/disputes/appeals/_appeal.html.haml' + - 'app/views/admin/domain_blocks/edit.html.haml' + - 'app/views/admin/domain_blocks/new.html.haml' + - 'app/views/admin/ip_blocks/new.html.haml' + - 'app/views/admin/reports/actions/preview.html.haml' + - 'app/views/admin/reports/index.html.haml' + - 'app/views/admin/reports/show.html.haml' + - 'app/views/admin/roles/_form.html.haml' + - 'app/views/admin/settings/about/show.html.haml' + - 'app/views/admin/settings/appearance/show.html.haml' + - 'app/views/admin/settings/registrations/show.html.haml' + - 'app/views/admin/statuses/show.html.haml' + - 'app/views/application/_card.html.haml' + - 'app/views/application/_sidebar.html.haml' + - 'app/views/auth/registrations/_sessions.html.haml' + - 'app/views/auth/registrations/new.html.haml' + - 'app/views/auth/sessions/new.html.haml' + - 'app/views/disputes/strikes/show.html.haml' + - 'app/views/filters/_filter_fields.html.haml' + - 'app/views/invites/_form.html.haml' + - 'app/views/layouts/application.html.haml' + - 'app/views/layouts/error.html.haml' + - 'app/views/layouts/mailer.html.haml' + - 'app/views/notification_mailer/_status.html.haml' + - 'app/views/notification_mailer/favourite.html.haml' + - 'app/views/notification_mailer/follow_request.html.haml' + - 'app/views/oauth/authorizations/new.html.haml' + - 'app/views/oauth/authorized_applications/index.html.haml' + - 'app/views/settings/applications/_fields.html.haml' + - 'app/views/settings/imports/show.html.haml' + - 'app/views/settings/login_activities/_login_activity.html.haml' + - 'app/views/settings/preferences/appearance/show.html.haml' + - 'app/views/settings/preferences/other/show.html.haml' + - 'app/views/settings/preferences/other/show.html.haml' + - 'app/views/statuses_cleanup/show.html.haml' + - 'app/views/statuses/_detailed_status.html.haml' + - 'app/views/statuses/_og_image.html.haml' + - 'app/views/statuses/_poll.html.haml' + - 'app/views/statuses/_status.html.haml' + - 'app/views/statuses/show.html.haml' + - 'app/views/user_mailer/suspicious_sign_in.html.haml' + - 'app/views/user_mailer/warning.html.haml' + - 'app/views/user_mailer/webauthn_credential_added.html.haml' + - 'app/views/user_mailer/webauthn_credential_deleted.html.haml' + + # Offense count: 918 + LineLength: + enabled: false + + # Offense count: 22 + UnnecessaryStringOutput: + exclude: + - 'app/views/accounts/show.html.haml' + - 'app/views/admin/custom_emojis/_custom_emoji.html.haml' + - 'app/views/admin/relays/_relay.html.haml' + - 'app/views/admin/rules/_rule.html.haml' + - 'app/views/admin/statuses/index.html.haml' + - 'app/views/auth/registrations/_sessions.html.haml' + - 'app/views/disputes/strikes/show.html.haml' + - 'app/views/notification_mailer/_status.html.haml' + - 'app/views/settings/two_factor_authentication_methods/index.html.haml' + - 'app/views/statuses/_detailed_status.html.haml' + - 'app/views/statuses/_poll.html.haml' + - 'app/views/statuses/_simple_status.html.haml' + - 'app/views/user_mailer/suspicious_sign_in.html.haml' + - 'app/views/user_mailer/webauthn_credential_added.html.haml' + - 'app/views/user_mailer/webauthn_credential_deleted.html.haml' + - 'app/views/user_mailer/welcome.html.haml' + + # Offense count: 3 + ViewLength: + exclude: + - 'app/views/admin/accounts/show.html.haml' + - 'app/views/admin/reports/show.html.haml' + - 'app/views/disputes/strikes/show.html.haml' + + # Offense count: 43 + InstanceVariables: + exclude: + - 'app/views/admin/reports/_actions.html.haml' + - 'app/views/admin/roles/_form.html.haml' + - 'app/views/admin/webhooks/_form.html.haml' + - 'app/views/application/_sidebar.html.haml' + - 'app/views/auth/registrations/_sessions.html.haml' + - 'app/views/auth/registrations/_status.html.haml' + - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml' + - 'app/views/authorize_interactions/_post_follow_actions.html.haml' + - 'app/views/invites/_form.html.haml' + - 'app/views/relationships/_account.html.haml' + - 'app/views/shared/_og.html.haml' + - 'app/views/statuses/_status.html.haml' + + # Offense count: 6 + ConsecutiveSilentScripts: + exclude: + - 'app/views/admin/settings/shared/_links.html.haml' + - 'app/views/settings/login_activities/_login_activity.html.haml' + - 'app/views/statuses/_poll.html.haml' + + # Offense count: 3 + IdNames: + exclude: + - 'app/views/authorize_interactions/error.html.haml' + - 'app/views/oauth/authorizations/error.html.haml' + - 'app/views/shared/_error_messages.html.haml' diff --git a/Gemfile b/Gemfile index 7a836b6ba4..c7889118d3 100644 --- a/Gemfile +++ b/Gemfile @@ -139,6 +139,7 @@ group :development do gem 'memory_profiler' gem 'brakeman', '~> 5.4', require: false gem 'bundler-audit', '~> 0.9', require: false + gem 'haml_lint', require: false gem 'capistrano', '~> 3.17' gem 'capistrano-rails', '~> 1.6' diff --git a/Gemfile.lock b/Gemfile.lock index 5904ed804d..0041c24c74 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,6 +308,12 @@ GEM activesupport (>= 5.1) haml (>= 4.0.6) railties (>= 5.1) + haml_lint (0.45.0) + haml (>= 4.0, < 6.2) + parallel (~> 1.10) + rainbow + rubocop (>= 0.50.0) + sysexits (~> 1.1) hashdiff (1.0.1) hashie (5.0.0) highline (2.0.3) @@ -687,6 +693,7 @@ GEM activesupport (>= 3) attr_required (>= 0.0.5) httpclient (>= 2.4) + sysexits (1.2.0) temple (0.10.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -804,6 +811,7 @@ DEPENDENCIES fog-openstack (~> 0.3) fuubar (~> 2.5) haml-rails (~> 2.0) + haml_lint hiredis (~> 0.6) htmlentities (~> 4.3) http (~> 5.1) diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index c8a9d33a70..f5ae88379d 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -206,7 +206,7 @@ - if @deletion_request.present? = link_to t('admin.accounts.delete'), admin_account_path(@account.id), method: :delete, class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, @account) - else - %div.action-buttons + .action-buttons %div - if @account.local? && @account.user_approved? = link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account) @@ -276,9 +276,9 @@ %hr.spacer/ - if @account.user&.invite_request&.text&.present? - %div.speech-bubble - %div.speech-bubble__bubble + .speech-bubble + .speech-bubble__bubble = @account.user&.invite_request&.text - %div.speech-bubble__owner + .speech-bubble__owner = admin_account_link_to @account = t('admin.accounts.invite_request_text') diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml index d8b7132f5c..e2992fb80c 100644 --- a/app/views/admin/action_logs/index.html.haml +++ b/app/views/admin/action_logs/index.html.haml @@ -19,7 +19,7 @@ = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all') - if @action_logs.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.action_logs.empty' - else .report-notes diff --git a/app/views/admin/announcements/index.html.haml b/app/views/admin/announcements/index.html.haml index 40f02b914e..ce520f59d3 100644 --- a/app/views/admin/announcements/index.html.haml +++ b/app/views/admin/announcements/index.html.haml @@ -12,7 +12,7 @@ %li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil - if @announcements.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.announcements.empty' - else .announcements-list diff --git a/app/views/admin/disputes/appeals/index.html.haml b/app/views/admin/disputes/appeals/index.html.haml index dd6a6f403f..602414550e 100644 --- a/app/views/admin/disputes/appeals/index.html.haml +++ b/app/views/admin/disputes/appeals/index.html.haml @@ -13,7 +13,7 @@ %li= filter_link_to t('admin.trends.rejected'), status: 'rejected' - if @appeals.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.disputes.appeals.empty' - else .announcements-list diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml index 8f7e3e67d2..0bae70e31d 100644 --- a/app/views/admin/instances/index.html.haml +++ b/app/views/admin/instances/index.html.haml @@ -47,7 +47,7 @@ %hr.spacer/ - if @instances.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.instances.empty' - else = render partial: 'instance', collection: @instances diff --git a/app/views/admin/rules/index.html.haml b/app/views/admin/rules/index.html.haml index 4fb993ad07..aa6a4c1b6a 100644 --- a/app/views/admin/rules/index.html.haml +++ b/app/views/admin/rules/index.html.haml @@ -18,7 +18,7 @@ %hr.spacer/ - if @rules.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.rules.empty' - else .announcements-list diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml index dbc23fa308..b26a13d966 100644 --- a/app/views/admin/warning_presets/index.html.haml +++ b/app/views/admin/warning_presets/index.html.haml @@ -17,7 +17,7 @@ %hr.spacer/ - if @warning_presets.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.warning_presets.empty' - else .announcements-list diff --git a/app/views/admin/webhooks/index.html.haml b/app/views/admin/webhooks/index.html.haml index e4499e078b..603d0edd25 100644 --- a/app/views/admin/webhooks/index.html.haml +++ b/app/views/admin/webhooks/index.html.haml @@ -9,7 +9,7 @@ %hr.spacer/ - if @webhooks.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'admin.webhooks.empty' - else .applications-list diff --git a/app/views/auth/sessions/two_factor.html.haml b/app/views/auth/sessions/two_factor.html.haml index b897a0422e..20232d8dc2 100644 --- a/app/views/auth/sessions/two_factor.html.haml +++ b/app/views/auth/sessions/two_factor.html.haml @@ -1,7 +1,7 @@ - content_for :page_title do = t('auth.login') -=javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous' += javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous' - if @webauthn_enabled = render partial: 'auth/sessions/two_factor/webauthn_form', locals: { hidden: @scheme_type != 'webauthn' } diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml index c58978f5a3..a554b55ff6 100644 --- a/app/views/filters/_filter_fields.html.haml +++ b/app/views/filters/_filter_fields.html.haml @@ -35,6 +35,6 @@ = render 'keyword_fields', f: keyword %tfoot %tr - %td{ colspan: 3} + %td{ colspan: 3 } = link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do = safe_join([fa_icon('plus'), t('filters.edit.add_keyword')]) diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml index 0227526a47..9c84f796ff 100644 --- a/app/views/filters/index.html.haml +++ b/app/views/filters/index.html.haml @@ -5,7 +5,7 @@ = link_to t('filters.new.title'), new_filter_path, class: 'button' - if @filters.empty? - %div.muted-hint.center-text= t 'filters.index.empty' + .muted-hint.center-text= t 'filters.index.empty' - else .applications-list = render partial: 'filter', collection: @filters diff --git a/app/views/kaminari/_next_page.html.haml b/app/views/kaminari/_next_page.html.haml index 30a3643d64..c44aea1f11 100644 --- a/app/views/kaminari/_next_page.html.haml +++ b/app/views/kaminari/_next_page.html.haml @@ -1,9 +1,11 @@ --# Link to the "Next" page --# available local variables --# url: url to the next page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote +-# + Link to the "Next" page + available local variables + url: url to the next page + current_page: a page object for the currently displayed page + total_pages: total number of pages + per_page: number of items to fetch per page + remote: data-remote + %span.next = link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote diff --git a/app/views/kaminari/_paginator.html.haml b/app/views/kaminari/_paginator.html.haml index b1da236d5d..4778f6279a 100644 --- a/app/views/kaminari/_paginator.html.haml +++ b/app/views/kaminari/_paginator.html.haml @@ -1,10 +1,11 @@ --# The container tag --# available local variables --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote --# paginator: the paginator that renders the pagination tags inside +-# + The container tag + available local variables + current_page: a page object for the currently displayed page + total_pages: total number of pages + per_page: number of items to fetch per page + remote: data-remote + paginator: the paginator that renders the pagination tags inside = paginator.render do %nav.pagination = prev_page_tag unless current_page.first? diff --git a/app/views/kaminari/_prev_page.html.haml b/app/views/kaminari/_prev_page.html.haml index 1089e35668..284d6223b8 100644 --- a/app/views/kaminari/_prev_page.html.haml +++ b/app/views/kaminari/_prev_page.html.haml @@ -1,9 +1,10 @@ --# Link to the "Previous" page --# available local variables --# url: url to the previous page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote +-# + Link to the "Previous" page + available local variables + url: url to the previous page + current_page: a page object for the currently displayed page + total_pages: total number of pages + per_page: number of items to fetch per page + remote: data-remote %span.prev = link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote diff --git a/app/views/layouts/modal.html.haml b/app/views/layouts/modal.html.haml index bbdae602f3..bd2dcc1324 100644 --- a/app/views/layouts/modal.html.haml +++ b/app/views/layouts/modal.html.haml @@ -15,6 +15,6 @@ .modal-layout__mastodon %div - %img{alt: '', draggable: 'false', src: mascot_url } + %img{ alt: '', draggable: 'false', src: mascot_url } = render template: 'layouts/application' diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml index e7cd5ba3eb..03f49c73da 100644 --- a/app/views/notification_mailer/_status.html.haml +++ b/app/views/notification_mailer/_status.html.haml @@ -26,11 +26,11 @@ = "@#{status.account.pretty_acct}" - if status.spoiler_text? - %div.auto-dir + .auto-dir %p = status.spoiler_text - %div.auto-dir + .auto-dir = status_content_format(status) - if status.ordered_media_attachments.size > 0 diff --git a/app/views/oauth/authorizations/show.html.haml b/app/views/oauth/authorizations/show.html.haml index c3c9960d8a..a5122a87fc 100644 --- a/app/views/oauth/authorizations/show.html.haml +++ b/app/views/oauth/authorizations/show.html.haml @@ -3,5 +3,5 @@ %p= t('doorkeeper.authorizations.show.title') .input-copy .input-copy__wrapper - %input{ type: 'text', class: 'oauth-code', spellcheck: 'false', readonly: true, value: params[:code] } + %input.oauth-code{ type: 'text', spellcheck: 'false', readonly: true, value: params[:code] } %button{ type: :button }= t('generic.copy') diff --git a/app/views/settings/applications/index.html.haml b/app/views/settings/applications/index.html.haml index a1f904a3a8..5c31d56bca 100644 --- a/app/views/settings/applications/index.html.haml +++ b/app/views/settings/applications/index.html.haml @@ -5,7 +5,7 @@ = link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button' - if @applications.empty? - %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty' + .muted-hint.center-text= t 'doorkeeper.applications.index.empty' - else .table-wrapper %table.table diff --git a/app/views/settings/applications/show.html.haml b/app/views/settings/applications/show.html.haml index 390682d6f9..466a8ba340 100644 --- a/app/views/settings/applications/show.html.haml +++ b/app/views/settings/applications/show.html.haml @@ -6,7 +6,7 @@ .table-wrapper %table.table %tbody - %tr + %tr %th= t('doorkeeper.applications.show.application_id') %td %code= @application.uid @@ -15,7 +15,7 @@ %td %code= @application.secret %tr - %th{ rowspan: 2}= t('applications.your_token') + %th{ rowspan: 2 }= t('applications.your_token') %td %code= current_user.token_for_app(@application).token %tr diff --git a/app/views/settings/login_activities/index.html.haml b/app/views/settings/login_activities/index.html.haml index ce524fbef7..6fb1bc34c0 100644 --- a/app/views/settings/login_activities/index.html.haml +++ b/app/views/settings/login_activities/index.html.haml @@ -6,7 +6,7 @@ %hr.spacer/ - if @login_activities.empty? - %div.muted-hint.center-text + .muted-hint.center-text = t 'login_activities.empty' - else .announcements-list diff --git a/app/views/statuses/_poll.html.haml b/app/views/statuses/_poll.html.haml index d0f2640957..248c6058cb 100644 --- a/app/views/statuses/_poll.html.haml +++ b/app/views/statuses/_poll.html.haml @@ -21,7 +21,7 @@ %span.poll__chart - else %label.poll__option>< - %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}>< + %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil }>< %span.poll__option__text = prerender_custom_emojis(h(option.title), status.emojis) .poll__footer From 17fb58bff31ec4b92c5621884ae87fa23033127a Mon Sep 17 00:00:00 2001 From: PauloVilarinho <33267902+PauloVilarinho@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:33:09 -0300 Subject: [PATCH 0677/1220] [Glitch] add modal message when editing toot Port 8770473dbb92042f76e058469a76e5bb4beecb9f to glitch-soc Co-authored-by: PauloVilarinho Signed-off-by: Claire --- .../glitch/containers/status_container.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 645919ebe8..9873725e49 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -52,6 +52,8 @@ const messages = defineMessages({ redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.' }, replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' }, replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, + editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' }, + editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' }, unfilterConfirm: { id: 'confirmations.unfilter.confirm', defaultMessage: 'Show' }, author: { id: 'confirmations.unfilter.author', defaultMessage: 'Author' }, matchingFilters: { id: 'confirmations.unfilter.filters', defaultMessage: 'Matching {count, plural, one {filter} other {filters}}' }, @@ -183,7 +185,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ }, onEdit (status, history) { - dispatch(editStatus(status.get('id'), history)); + dispatch((_, getState) => { + let state = getState(); + if (state.getIn(['compose', 'text']).trim().length !== 0) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.editMessage), + confirm: intl.formatMessage(messages.editConfirm), + onConfirm: () => dispatch(editStatus(status.get('id'), history)), + })); + } else { + dispatch(editStatus(status.get('id'), history)); + } + }); }, onTranslate (status) { From 32418f0ff3e7f25ca67334585d6d8442b34cb4af Mon Sep 17 00:00:00 2001 From: Rodion Borisov Date: Thu, 9 Mar 2023 16:35:44 +0300 Subject: [PATCH 0678/1220] [Glitch] Center the text itself in upload area Port a52ccd7ad98d7d60dffb520c0397ba8aa4c2eb9d to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/components/misc.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss index 2cd9b75037..86b8b99c1b 100644 --- a/app/javascript/flavours/glitch/styles/components/misc.scss +++ b/app/javascript/flavours/glitch/styles/components/misc.scss @@ -1628,6 +1628,7 @@ button.icon-button.active i.fa-retweet { display: flex; align-items: center; justify-content: center; + text-align: center; color: $secondary-text-color; font-size: 18px; font-weight: 500; From f9bdaebad237414b5284be41af7e358ef71f0dee Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Wed, 15 Mar 2023 16:41:13 +0100 Subject: [PATCH 0679/1220] Use Github Container Registry as the official container image source (#24113) --- README.md | 3 +-- docker-compose.yml | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f517668a95..d88699d7ba 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,10 @@ [![Ruby Testing](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml/badge.svg)](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml) [![Code Climate](https://img.shields.io/codeclimate/maintainability/mastodon/mastodon.svg)][code_climate] [![Crowdin](https://d322cqt584bo4o.cloudfront.net/mastodon/localized.svg)][crowdin] -[![Docker Pulls](https://img.shields.io/docker/pulls/tootsuite/mastodon.svg)][docker] [releases]: https://github.com/mastodon/mastodon/releases [code_climate]: https://codeclimate.com/github/mastodon/mastodon [crowdin]: https://crowdin.com/project/mastodon -[docker]: https://hub.docker.com/r/tootsuite/mastodon/ Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!) @@ -30,6 +28,7 @@ Click below to **learn more** in a video: - [View sponsors](https://joinmastodon.org/sponsors) - [Blog](https://blog.joinmastodon.org) - [Documentation](https://docs.joinmastodon.org) +- [Official Docker image](https://github.com/mastodon/mastodon/pkgs/container/mastodon) - [Browse Mastodon servers](https://joinmastodon.org/communities) - [Browse Mastodon apps](https://joinmastodon.org/apps) diff --git a/docker-compose.yml b/docker-compose.yml index c534286c76..f603c2f7e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,7 +56,7 @@ services: web: build: . - image: tootsuite/mastodon + image: ghcr.io/mastodon/mastodon restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" @@ -77,7 +77,7 @@ services: streaming: build: . - image: tootsuite/mastodon + image: ghcr.io/mastodon/mastodon restart: always env_file: .env.production command: node ./streaming @@ -95,7 +95,7 @@ services: sidekiq: build: . - image: tootsuite/mastodon + image: ghcr.io/mastodon/mastodon restart: always env_file: .env.production command: bundle exec sidekiq From 0b8b0ef65221e5341cd81b212f0e40722ffd5ef7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Mar 2023 11:43:44 -0400 Subject: [PATCH 0680/1220] Skip pushing containers on forks (#24106) --- .github/workflows/build-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index a1db68e3b4..c0a4976b1a 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -63,7 +63,7 @@ jobs: platforms: linux/amd64,linux/arm64 provenance: false builder: ${{ steps.buildx.outputs.name }} - push: ${{ github.event_name != 'pull_request' }} + push: ${{ github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha From 65669d3c5719e72000bf26849d0ee1eaec1f9d1b Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Mar 2023 15:07:43 -0400 Subject: [PATCH 0681/1220] Fix more haml-lint Rubocop (#24107) --- .haml-lint_todo.yml | 32 +++---------------- app/views/admin/account_actions/new.html.haml | 2 +- app/views/admin/accounts/show.html.haml | 2 +- app/views/admin/action_logs/index.html.haml | 2 +- app/views/admin/change_emails/show.html.haml | 2 +- app/views/admin/custom_emojis/index.html.haml | 4 +-- app/views/admin/dashboard/index.html.haml | 2 +- app/views/application/_card.html.haml | 2 +- .../auth/registrations/_sessions.html.haml | 2 +- app/views/auth/sessions/new.html.haml | 2 +- app/views/layouts/mailer.html.haml | 2 +- .../notification_mailer/_status.html.haml | 2 +- .../notification_mailer/favourite.html.haml | 2 +- .../follow_request.html.haml | 2 +- .../_login_activity.html.haml | 2 +- .../preferences/appearance/show.html.haml | 4 +-- app/views/statuses/_detailed_status.html.haml | 6 ++-- app/views/statuses/_og_image.html.haml | 2 +- app/views/statuses/_status.html.haml | 2 +- .../user_mailer/suspicious_sign_in.html.haml | 2 +- .../webauthn_credential_added.html.haml | 2 +- .../webauthn_credential_deleted.html.haml | 2 +- 22 files changed, 30 insertions(+), 52 deletions(-) diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml index 203010b043..c601683907 100644 --- a/.haml-lint_todo.yml +++ b/.haml-lint_todo.yml @@ -1,26 +1,21 @@ # This configuration was generated by # `haml-lint --auto-gen-config` -# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0. +# on 2023-03-15 00:55:01 -0400 using Haml-Lint version 0.45.0. # The point is for the user to remove these configuration records # one by one as the lints are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of Haml-Lint, may require this file to be generated again. linters: - # Offense count: 76 + # Offense count: 63 RuboCop: exclude: - 'app/views/accounts/_og.html.haml' - - 'app/views/admin/account_actions/new.html.haml' - 'app/views/admin/account_warnings/_account_warning.html.haml' - 'app/views/admin/accounts/index.html.haml' - 'app/views/admin/accounts/show.html.haml' - - 'app/views/admin/action_logs/index.html.haml' - 'app/views/admin/announcements/edit.html.haml' - 'app/views/admin/announcements/new.html.haml' - - 'app/views/admin/change_emails/show.html.haml' - - 'app/views/admin/custom_emojis/index.html.haml' - - 'app/views/admin/dashboard/index.html.haml' - 'app/views/admin/disputes/appeals/_appeal.html.haml' - 'app/views/admin/domain_blocks/edit.html.haml' - 'app/views/admin/domain_blocks/new.html.haml' @@ -33,40 +28,24 @@ linters: - 'app/views/admin/settings/appearance/show.html.haml' - 'app/views/admin/settings/registrations/show.html.haml' - 'app/views/admin/statuses/show.html.haml' - - 'app/views/application/_card.html.haml' - - 'app/views/application/_sidebar.html.haml' - - 'app/views/auth/registrations/_sessions.html.haml' - 'app/views/auth/registrations/new.html.haml' - - 'app/views/auth/sessions/new.html.haml' - 'app/views/disputes/strikes/show.html.haml' - 'app/views/filters/_filter_fields.html.haml' - 'app/views/invites/_form.html.haml' - 'app/views/layouts/application.html.haml' - 'app/views/layouts/error.html.haml' - - 'app/views/layouts/mailer.html.haml' - 'app/views/notification_mailer/_status.html.haml' - - 'app/views/notification_mailer/favourite.html.haml' - - 'app/views/notification_mailer/follow_request.html.haml' - - 'app/views/oauth/authorizations/new.html.haml' - - 'app/views/oauth/authorized_applications/index.html.haml' - 'app/views/settings/applications/_fields.html.haml' - 'app/views/settings/imports/show.html.haml' - - 'app/views/settings/login_activities/_login_activity.html.haml' - 'app/views/settings/preferences/appearance/show.html.haml' - 'app/views/settings/preferences/other/show.html.haml' - - 'app/views/settings/preferences/other/show.html.haml' - - 'app/views/statuses_cleanup/show.html.haml' - 'app/views/statuses/_detailed_status.html.haml' - - 'app/views/statuses/_og_image.html.haml' - 'app/views/statuses/_poll.html.haml' - - 'app/views/statuses/_status.html.haml' - 'app/views/statuses/show.html.haml' - - 'app/views/user_mailer/suspicious_sign_in.html.haml' + - 'app/views/statuses_cleanup/show.html.haml' - 'app/views/user_mailer/warning.html.haml' - - 'app/views/user_mailer/webauthn_credential_added.html.haml' - - 'app/views/user_mailer/webauthn_credential_deleted.html.haml' - # Offense count: 918 + # Offense count: 913 LineLength: enabled: false @@ -97,13 +76,12 @@ linters: - 'app/views/admin/reports/show.html.haml' - 'app/views/disputes/strikes/show.html.haml' - # Offense count: 43 + # Offense count: 41 InstanceVariables: exclude: - 'app/views/admin/reports/_actions.html.haml' - 'app/views/admin/roles/_form.html.haml' - 'app/views/admin/webhooks/_form.html.haml' - - 'app/views/application/_sidebar.html.haml' - 'app/views/auth/registrations/_sessions.html.haml' - 'app/views/auth/registrations/_status.html.haml' - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml' diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml index c7bb618dfb..2a0cae15a0 100644 --- a/app/views/admin/account_actions/new.html.haml +++ b/app/views/admin/account_actions/new.html.haml @@ -5,7 +5,7 @@ = f.input :report_id, as: :hidden .fields-group - = f.input :type, as: :radio_buttons, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { safe_join([I18n.t("simple_form.labels.admin_account_action.types.#{type}"), content_tag(:span, I18n.t("simple_form.hints.admin_account_action.types.#{type}"), class: 'hint')])}, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct) + = f.input :type, as: :radio_buttons, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { safe_join([I18n.t("simple_form.labels.admin_account_action.types.#{type}"), content_tag(:span, I18n.t("simple_form.hints.admin_account_action.types.#{type}"), class: 'hint')]) }, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct) - if @account.local? %hr.spacer/ diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index f5ae88379d..44867d0a26 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -187,7 +187,7 @@ %th= t('admin.accounts.shared_inbox_url') %td = @account.shared_inbox_url - = fa_icon DeliveryFailureTracker.available?(@account.shared_inbox_url) ? 'check': 'times' + = fa_icon DeliveryFailureTracker.available?(@account.shared_inbox_url) ? 'check' : 'times' %td - if @domain_block.nil? = table_link_to 'ban', t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @account.domain) diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml index e2992fb80c..4c78797c13 100644 --- a/app/views/admin/action_logs/index.html.haml +++ b/app/views/admin/action_logs/index.html.haml @@ -16,7 +16,7 @@ .filter-subset.filter-subset--with-select %strong= t('admin.action_logs.filter_by_action') .input.select.optional - = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all') + = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key] }, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all') - if @action_logs.empty? .muted-hint.center-text diff --git a/app/views/admin/change_emails/show.html.haml b/app/views/admin/change_emails/show.html.haml index bc00d61142..8536a18d2c 100644 --- a/app/views/admin/change_emails/show.html.haml +++ b/app/views/admin/change_emails/show.html.haml @@ -9,4 +9,4 @@ = f.input :unconfirmed_email, wrapper: :with_label, label: t('admin.accounts.change_email.new_email') .actions - = f.button :submit, class: "button", value: t('admin.accounts.change_email.submit') + = f.button :submit, class: 'button', value: t('admin.accounts.change_email.submit') diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index bfec0407ef..6ded4b4332 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -15,12 +15,12 @@ %li= filter_link_to t('admin.accounts.location.all'), local: nil, remote: nil %li - if selected? local: '1', remote: nil - = filter_link_to t('admin.accounts.location.local'), {local: nil, remote: nil}, {local: '1', remote: nil} + = filter_link_to t('admin.accounts.location.local'), { local: nil, remote: nil }, { local: '1', remote: nil } - else = filter_link_to t('admin.accounts.location.local'), local: '1', remote: nil %li - if selected? remote: '1', local: nil - = filter_link_to t('admin.accounts.location.remote'), {remote: nil, local: nil}, {remote: '1', local: nil} + = filter_link_to t('admin.accounts.location.remote'), { remote: nil, local: nil }, { remote: '1', local: nil } - else = filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml index 8354f0b9f5..e05215327f 100644 --- a/app/views/admin/dashboard/index.html.haml +++ b/app/views/admin/dashboard/index.html.haml @@ -59,7 +59,7 @@ = react_admin_component :dimension, dimension: 'servers', start_at: @time_period.first, end_at: @time_period.last, limit: 8, label: t('admin.dashboard.top_servers') .dashboard__item.dashboard__item--span-double-column - = react_admin_component :retention, start_at: @time_period.last - 6.months, end_at: @time_period.last, frequency: 'month' + = react_admin_component :retention, start_at: @time_period.last - 6.months, end_at: @time_period.last, frequency: 'month' .dashboard__item.dashboard__item--span-double-row = react_admin_component :trends, limit: 7 diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml index 3d0e6b1dad..719856d495 100644 --- a/app/views/application/_card.html.haml +++ b/app/views/application/_card.html.haml @@ -13,4 +13,4 @@ %strong.emojify.p-name= display_name(account, custom_emojify: true) %span = acct(account) - = fa_icon('lock', { data: ({hidden: true} unless account.locked?)}) + = fa_icon('lock', { data: ({ hidden: true } unless account.locked?) }) diff --git a/app/views/auth/registrations/_sessions.html.haml b/app/views/auth/registrations/_sessions.html.haml index c094dfd255..55d753c18a 100644 --- a/app/views/auth/registrations/_sessions.html.haml +++ b/app/views/auth/registrations/_sessions.html.haml @@ -20,7 +20,7 @@ %span{ title: session.user_agent }< = fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session) = ' ' - = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: "#{session.browser}"), platform: t("sessions.platforms.#{session.platform}", default: "#{session.platform}") + = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s) %td %samp= session.ip %td diff --git a/app/views/auth/sessions/new.html.haml b/app/views/auth/sessions/new.html.haml index e98c1ff3de..7914e0157f 100644 --- a/app/views/auth/sessions/new.html.haml +++ b/app/views/auth/sessions/new.html.haml @@ -19,7 +19,7 @@ .actions = f.button :button, t('auth.login'), type: :submit -- if devise_mapping.omniauthable? and resource_class.omniauth_providers.any? +- if devise_mapping.omniauthable? && resource_class.omniauth_providers.any? .simple_form.alternative-login %h4= omniauth_only? ? t('auth.log_in_with') : t('auth.or_log_in_with') diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index d816f1b8c0..43c8559270 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -35,7 +35,7 @@ %tbody %tr %td.content-cell.content-end - != "  " + != '  ' %tr %td.blank-cell.footer .email-row diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml index 03f49c73da..fd65039ae9 100644 --- a/app/views/notification_mailer/_status.html.haml +++ b/app/views/notification_mailer/_status.html.haml @@ -20,7 +20,7 @@ %tbody %tr %td{ align: 'left', width: 48 } - = image_tag full_asset_url(status.account.avatar.url), alt:'' + = image_tag full_asset_url(status.account.avatar.url), alt: '' %td{ align: 'left' } %bdi= display_name(status.account) = "@#{status.account.pretty_acct}" diff --git a/app/views/notification_mailer/favourite.html.haml b/app/views/notification_mailer/favourite.html.haml index 5d9be3f57f..4ec89172d9 100644 --- a/app/views/notification_mailer/favourite.html.haml +++ b/app/views/notification_mailer/favourite.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt:'' + = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt: '' %h1= t 'notification_mailer.favourite.title' %p.lead= t('notification_mailer.favourite.body', name: @account.pretty_acct) diff --git a/app/views/notification_mailer/follow_request.html.haml b/app/views/notification_mailer/follow_request.html.haml index 4c32c831ed..3885a411d9 100644 --- a/app/views/notification_mailer/follow_request.html.haml +++ b/app/views/notification_mailer/follow_request.html.haml @@ -39,5 +39,5 @@ %tbody %tr %td.button-primary - = link_to web_url("follow_requests") do + = link_to web_url('follow_requests') do %span= t 'notification_mailer.follow_request.action' diff --git a/app/views/settings/login_activities/_login_activity.html.haml b/app/views/settings/login_activities/_login_activity.html.haml index 0c2c7087d7..9f4c24d871 100644 --- a/app/views/settings/login_activities/_login_activity.html.haml +++ b/app/views/settings/login_activities/_login_activity.html.haml @@ -1,6 +1,6 @@ - method_str = content_tag(:span, login_activity.omniauth? ? t(login_activity.provider, scope: 'auth.providers') : t(login_activity.authentication_method, scope: 'login_activities.authentication_methods'), class: 'target') - ip_str = content_tag(:span, login_activity.ip, class: 'target') -- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: "#{login_activity.browser}"), platform: t("sessions.platforms.#{login_activity.platform}", default: "#{login_activity.platform}")), class: 'target', title: login_activity.user_agent) +- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: login_activity.browser.to_s), platform: t("sessions.platforms.#{login_activity.platform}", default: login_activity.platform.to_)), class: 'target', title: login_activity.user_agent) .log-entry .log-entry__header diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index 9e3964f217..bc23df6473 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -13,7 +13,7 @@ - unless I18n.locale == :en .flash-message.translation-prompt - #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener")} + #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')} %h4= t 'appearance.advanced_web_interface' @@ -53,7 +53,7 @@ %h4= t 'appearance.sensitive_content' .fields-group - = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label + = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label .fields-group = f.input :setting_use_blurhash, as: :boolean, wrapper: :with_label diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml index bf498e33d5..70cfbd6b87 100644 --- a/app/views/statuses/_detailed_status.html.haml +++ b/app/views/statuses/_detailed_status.html.haml @@ -62,18 +62,18 @@ - else = fa_icon('reply-all') %span.detailed-status__reblogs>= friendly_number_to_human status.replies_count - = " " + = ' ' · - if status.public_visibility? || status.unlisted_visibility? %span.detailed-status__link = fa_icon('retweet') %span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count - = " " + = ' ' · %span.detailed-status__link = fa_icon('star') %span.detailed-status__favorites>= friendly_number_to_human status.favourites_count - = " " + = ' ' - if user_signed_in? · diff --git a/app/views/statuses/_og_image.html.haml b/app/views/statuses/_og_image.html.haml index 39f390fdf4..1ae97adff6 100644 --- a/app/views/statuses/_og_image.html.haml +++ b/app/views/statuses/_og_image.html.haml @@ -31,7 +31,7 @@ - player_card = true = opengraph 'og:image', full_asset_url(account.avatar.url(:original)) = opengraph 'og:image:width', '400' - = opengraph 'og:image:height','400' + = opengraph 'og:image:height', '400' = opengraph 'og:audio', full_asset_url(media.file.url(:original)) = opengraph 'og:audio:secure_url', full_asset_url(media.file.url(:original)) = opengraph 'og:audio:type', media.file_content_type diff --git a/app/views/statuses/_status.html.haml b/app/views/statuses/_status.html.haml index 3b7152753a..afeb55fafd 100644 --- a/app/views/statuses/_status.html.haml +++ b/app/views/statuses/_status.html.haml @@ -11,7 +11,7 @@ h_class = microformats_h_class(status, is_predecessor, is_successor, include_threads) style_classes = style_classes(status, is_predecessor, is_successor, include_threads) mf_classes = microformats_classes(status, is_direct_parent, is_direct_child) - entry_classes = h_class + ' ' + mf_classes + ' ' + style_classes + entry_classes = "#{h_class} #{mf_classes} #{style_classes}" - if status.reply? && include_threads - if @next_ancestor diff --git a/app/views/user_mailer/suspicious_sign_in.html.haml b/app/views/user_mailer/suspicious_sign_in.html.haml index 856f9fb7cf..e4ad500c3d 100644 --- a/app/views/user_mailer/suspicious_sign_in.html.haml +++ b/app/views/user_mailer/suspicious_sign_in.html.haml @@ -45,7 +45,7 @@ = @remote_ip %br/ %strong= "#{t('sessions.browser')}:" - %span{ title: @user_agent }= t 'sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: "#{@detection.id}"), platform: t("sessions.platforms.#{@detection.platform.id}", default: "#{@detection.platform.id}") + %span{ title: @user_agent }= t 'sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: @detection.id.to_s), platform: t("sessions.platforms.#{@detection.platform.id}", default: @detection.platform.id.to_s) %br/ = l(@timestamp) diff --git a/app/views/user_mailer/webauthn_credential_added.html.haml b/app/views/user_mailer/webauthn_credential_added.html.haml index 81de84b564..c91c96d6fa 100644 --- a/app/views/user_mailer/webauthn_credential_added.html.haml +++ b/app/views/user_mailer/webauthn_credential_added.html.haml @@ -20,7 +20,7 @@ = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: '' %h1= t 'devise.mailer.webauthn_credential.added.title' - %p.lead= "#{t 'devise.mailer.webauthn_credential.added.explanation' }:" + %p.lead= "#{t('devise.mailer.webauthn_credential.added.explanation')}:" %p.lead= @webauthn_credential.nickname %table.email-table{ cellspacing: 0, cellpadding: 0 } diff --git a/app/views/user_mailer/webauthn_credential_deleted.html.haml b/app/views/user_mailer/webauthn_credential_deleted.html.haml index 7b47f0c88e..578a080220 100644 --- a/app/views/user_mailer/webauthn_credential_deleted.html.haml +++ b/app/views/user_mailer/webauthn_credential_deleted.html.haml @@ -20,7 +20,7 @@ = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: '' %h1= t 'devise.mailer.webauthn_credential.deleted.title' - %p.lead= "#{t 'devise.mailer.webauthn_credential.deleted.explanation' }:" + %p.lead= "#{t('devise.mailer.webauthn_credential.deleted.explanation')}:" %p.lead= @webauthn_credential.nickname %table.email-table{ cellspacing: 0, cellpadding: 0 } From a38f67c1c3f3c05bcbf552aad2f7f931fa0a4286 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Mar 2023 20:36:37 -0400 Subject: [PATCH 0682/1220] Autofix Rubocop Style/PreferredHashMethods (#23851) --- .rubocop_todo.yml | 8 -------- spec/support/matchers/model/model_have_error_on_field.rb | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8a96e59f90..0921d4f731 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2050,14 +2050,6 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' -# Offense count: 1 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: short, verbose -Style/PreferredHashMethods: - Exclude: - - 'spec/support/matchers/model/model_have_error_on_field.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Methods. diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb index 21632b5748..0f9c81a475 100644 --- a/spec/support/matchers/model/model_have_error_on_field.rb +++ b/spec/support/matchers/model/model_have_error_on_field.rb @@ -4,7 +4,7 @@ RSpec::Matchers.define :model_have_error_on_field do |expected| match do |record| record.valid? if record.errors.empty? - record.errors.has_key?(expected) + record.errors.key?(expected) end failure_message do |record| From 0566c81a0cac884e7b176f8fc0a187ae11cf34c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:33:26 +0900 Subject: [PATCH 0683/1220] Bump rack-test from 2.0.2 to 2.1.0 (#24112) 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 c7889118d3..cc039d7e00 100644 --- a/Gemfile +++ b/Gemfile @@ -120,7 +120,7 @@ group :test do gem 'climate_control' gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' - gem 'rack-test', '~> 2.0' + gem 'rack-test', '~> 2.1' gem 'rails-controller-testing', '~> 1.0' gem 'rspec_junit_formatter', '~> 0.6' gem 'rspec-sidekiq', '~> 3.1' diff --git a/Gemfile.lock b/Gemfile.lock index 0041c24c74..151eba150c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -522,7 +522,7 @@ GEM rack (>= 2.1.0) rack-proxy (0.7.6) rack - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) rails (6.1.7.3) actioncable (= 6.1.7.3) @@ -856,7 +856,7 @@ DEPENDENCIES rack (~> 2.2.6) rack-attack (~> 6.6) rack-cors (~> 1.1) - rack-test (~> 2.0) + rack-test (~> 2.1) rails (~> 6.1.7) rails-controller-testing (~> 1.0) rails-i18n (~> 6.0) From 25d36b6edd77ed161b2f496101f7127f7c1c9e5c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Mar 2023 21:34:00 -0400 Subject: [PATCH 0684/1220] Autofix Rubocop Style/RedundantArgument (#23798) --- .rubocop_todo.yml | 9 --------- app/controllers/concerns/signature_verification.rb | 2 +- app/helpers/application_helper.rb | 4 ++-- lib/tasks/emojis.rake | 4 ++-- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 0921d4f731..6dbcbaeba1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2050,15 +2050,6 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' -# Offense count: 5 -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: Methods. -Style/RedundantArgument: - Exclude: - - 'app/controllers/concerns/signature_verification.rb' - - 'app/helpers/application_helper.rb' - - 'lib/tasks/emojis.rake' - # Offense count: 16 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index b0a087d536..9317259433 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -138,7 +138,7 @@ module SignatureVerification end def signed_headers - signature_params.fetch('headers', signature_algorithm == 'hs2019' ? '(created)' : 'date').downcase.split(' ') + signature_params.fetch('headers', signature_algorithm == 'hs2019' ? '(created)' : 'date').downcase.split end def verify_signature_strength! diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 08020a65a2..9dc8bba2d7 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -112,7 +112,7 @@ module ApplicationHelper def fa_icon(icon, attributes = {}) class_names = attributes[:class]&.split(' ') || [] class_names << 'fa' - class_names += icon.split(' ').map { |cl| "fa-#{cl}" } + class_names += icon.split.map { |cl| "fa-#{cl}" } content_tag(:i, nil, attributes.merge(class: class_names.join(' '))) end @@ -164,7 +164,7 @@ module ApplicationHelper end def body_classes - output = (@body_classes || '').split(' ') + output = (@body_classes || '').split output << "theme-#{current_theme.parameterize}" output << 'system-font' if current_account&.user&.setting_system_font_ui output << (current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion') diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake index c743f8a554..fbb2e8d4f3 100644 --- a/lib/tasks/emojis.rake +++ b/lib/tasks/emojis.rake @@ -6,7 +6,7 @@ def gen_border(codepoint, color) doc = File.open(input) { |f| Nokogiri::XML(f) } svg = doc.at_css('svg') if svg.key?('viewBox') - view_box = svg['viewBox'].split(' ').map(&:to_i) + view_box = svg['viewBox'].split.map(&:to_i) view_box[0] -= 2 view_box[1] -= 2 view_box[2] += 4 @@ -36,7 +36,7 @@ end def codepoints_to_unicode(codepoints) if codepoints.include?(' ') - codepoints.split(' ').map(&:hex).pack('U*') + codepoints.split.map(&:hex).pack('U*') else [codepoints.hex].pack('U') end From b1b8a27b42a1018405d388b90252f62938d34487 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:42:27 +0900 Subject: [PATCH 0685/1220] Bump immutable from 4.2.4 to 4.3.0 (#24088) 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 05eafb2f06..409e38d160 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "glob": "^8.1.0", "history": "^4.10.1", "http-link-header": "^1.1.0", - "immutable": "^4.2.4", + "immutable": "^4.3.0", "imports-loader": "^1.2.0", "intl": "^1.2.5", "intl-messageformat": "^2.2.0", diff --git a/yarn.lock b/yarn.lock index ac50d0ce71..5523b03931 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5735,10 +5735,10 @@ ignore@^5.2.0, ignore@^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.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a" - integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w== +immutable@^4.0.0, immutable@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" From b9618c82e3e97deace9dae5906014d1e707a3717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:44:21 +0900 Subject: [PATCH 0686/1220] Bump @babel/eslint-parser from 7.19.1 to 7.21.3 (#24109) 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 409e38d160..2cae786a1b 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "ws": "^8.12.1" }, "devDependencies": { - "@babel/eslint-parser": "^7.19.1", + "@babel/eslint-parser": "^7.21.3", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", "babel-jest": "^29.5.0", diff --git a/yarn.lock b/yarn.lock index 5523b03931..91d2765489 100644 --- a/yarn.lock +++ b/yarn.lock @@ -62,10 +62,10 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/eslint-parser@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" - integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== +"@babel/eslint-parser@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" + integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" From dbbd462c10e7749cfd8dee8ef5201ae6e0b47917 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:44:56 +0900 Subject: [PATCH 0687/1220] Bump eslint from 8.35.0 to 8.36.0 (#24089) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 70 ++++++++++++++++++++++++++-------------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 2cae786a1b..5f629d1b93 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", "babel-jest": "^29.5.0", - "eslint": "^8.35.0", + "eslint": "^8.36.0", "eslint-plugin-import": "~2.27.5", "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", diff --git a/yarn.lock b/yarn.lock index 91d2765489..dbbd702464 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1201,14 +1201,26 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" - integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== +"@eslint-community/eslint-utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" + integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" + integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + +"@eslint/eslintrc@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" + integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.5.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1216,10 +1228,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" - integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== +"@eslint/js@8.36.0": + version "8.36.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" + integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== "@floating-ui/core@^1.0.1": version "1.0.1" @@ -4579,14 +4591,7 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== @@ -4596,13 +4601,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.35.0: - version "8.35.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" - integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== +eslint@^8.36.0: + version "8.36.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" + integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== dependencies: - "@eslint/eslintrc" "^2.0.0" - "@eslint/js" "8.35.0" + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.1" + "@eslint/js" "8.36.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4613,9 +4620,8 @@ eslint@^8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.4.0" + espree "^9.5.0" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -4637,15 +4643,14 @@ eslint@^8.35.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - regexpp "^3.2.0" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== +espree@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" + integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -9258,11 +9263,6 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" From 6fa81ca17e50c2f66a4357fc6866b33b7a606b42 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 02:53:55 +0100 Subject: [PATCH 0688/1220] Remove `bullet` and `active_record_query_trace` gems (#24121) --- Gemfile | 2 -- Gemfile.lock | 7 ------- config/environments/development.rb | 20 ++++++-------------- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/Gemfile b/Gemfile index cc039d7e00..e5353a08c9 100644 --- a/Gemfile +++ b/Gemfile @@ -129,11 +129,9 @@ group :test do end group :development do - gem 'active_record_query_trace', '~> 1.8' gem 'annotate', '~> 3.2' gem 'better_errors', '~> 2.9' gem 'binding_of_caller', '~> 1.0' - gem 'bullet', '~> 7.0' gem 'letter_opener', '~> 1.8' gem 'letter_opener_web', '~> 2.0' gem 'memory_profiler' diff --git a/Gemfile.lock b/Gemfile.lock index 151eba150c..c7e1d17504 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,6 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - active_record_query_trace (1.8) activejob (6.1.7.3) activesupport (= 6.1.7.3) globalid (>= 0.3.6) @@ -149,9 +148,6 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.5) redis (>= 1.0, < 6) builder (3.2.4) - bullet (7.0.7) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.11) bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) @@ -727,7 +723,6 @@ GEM unf_ext unf_ext (0.0.8.2) unicode-display_width (2.4.2) - uniform_notifier (1.16.0) uri (0.12.0) validate_email (0.1.6) activemodel (>= 3.0) @@ -772,7 +767,6 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10) - active_record_query_trace (~> 1.8) addressable (~> 2.8) annotate (~> 3.2) aws-sdk-s3 (~> 1.119) @@ -782,7 +776,6 @@ DEPENDENCIES bootsnap (~> 1.16.0) brakeman (~> 5.4) browser - bullet (~> 7.0) bundler-audit (~> 0.9) capistrano (~> 3.17) capistrano-rails (~> 1.6) diff --git a/config/environments/development.rb b/config/environments/development.rb index 29b17a3500..f5f6cbed8d 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -24,7 +24,6 @@ Rails.application.configure do } else config.action_controller.perform_caching = false - config.cache_store = :null_store end @@ -34,9 +33,10 @@ Rails.application.configure do end # Generate random VAPID keys - vapid_key = Webpush.generate_key - config.x.vapid_private_key = vapid_key.private_key - config.x.vapid_public_key = vapid_key.public_key + Webpush.generate_key.tap do |vapid_key| + config.x.vapid_private_key = vapid_key.private_key + config.x.vapid_public_key = vapid_key.public_key + end # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false @@ -76,21 +76,13 @@ Rails.application.configure do # Otherwise, use letter_opener, which launches a browser window to view sent mail. config.action_mailer.delivery_method = (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV']) ? :letter_opener_web : :letter_opener - config.after_initialize do - Bullet.enable = true - Bullet.bullet_logger = true - Bullet.rails_logger = false - - Bullet.add_safelist type: :n_plus_one_query, class_name: 'User', association: :account - end - + # We provide a default secret for the development environment here. + # This value should not be used in production environments! config.x.otp_secret = ENV.fetch('OTP_SECRET', '1fc2b87989afa6351912abeebe31ffc5c476ead9bf8b3d74cbc4a302c7b69a45b40b1bbef3506ddad73e942e15ed5ca4b402bf9a66423626051104f4b5f05109') end Redis.raise_deprecations = true -ActiveRecordQueryTrace.enabled = ENV['QUERY_TRACE_ENABLED'] == 'true' - module PrivateAddressCheck def self.private_address?(*) false From 8cb2543ee571e47be46195eed798194136aeae4c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 02:55:13 +0100 Subject: [PATCH 0689/1220] Add `SENDFILE_HEADER` environment variable (#24123) --- config/environments/production.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 345a255a74..b8536c53ab 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -38,8 +38,7 @@ Rails.application.configure do # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache - config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present? # Allow to specify public IP of reverse proxy if it's needed config.action_dispatch.trusted_proxies = ENV['TRUSTED_PROXY_IP'].split(/(?:\s*,\s*|\s+)/).map { |item| IPAddr.new(item) } if ENV['TRUSTED_PROXY_IP'].present? From be488adf711e75ab05a9b22b6241c676e5615c71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:55:29 +0900 Subject: [PATCH 0690/1220] Bump @babel/core from 7.21.0 to 7.21.3 (#24111) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 70 ++++++++++++++++++++++++++-------------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 5f629d1b93..1af6d4af73 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.21.0", + "@babel/core": "^7.21.3", "@babel/plugin-proposal-decorators": "^7.21.0", "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", diff --git a/yarn.lock b/yarn.lock index dbbd702464..52b82f68d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,21 +41,21 @@ 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.21.0", "@babel/core@^7.7.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" - integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.3", "@babel/core@^7.7.2": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" + integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.0" + "@babel/generator" "^7.21.3" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.0" + "@babel/helper-module-transforms" "^7.21.2" "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.0" + "@babel/parser" "^7.21.3" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/traverse" "^7.21.3" + "@babel/types" "^7.21.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -71,12 +71,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.21.0", "@babel/generator@^7.7.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.0.tgz#45d731e84f506ce02a7b22b9ba5861ea88eef64f" - integrity sha512-z/zN3SePOtxN1/vPFdqrkuJGCD2Vx469+dSbNRD+4TF2+6e4Of5exHqAtcfL/2Nwu0RN0QsFwjyDBFwdUMzNSA== +"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" + integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== dependencies: - "@babel/types" "^7.21.0" + "@babel/types" "^7.21.3" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -205,10 +205,10 @@ 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.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67" - integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -216,8 +216,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -324,10 +324,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4" - integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" + integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -1063,26 +1063,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.7.2": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc" - integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" + integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.0" + "@babel/generator" "^7.21.3" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/parser" "^7.21.3" + "@babel/types" "^7.21.3" 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.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819" - integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow== +"@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.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" + integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" From f0e727f958cd9428b2c56a3c6a65bbbf176bfa0d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 02:55:54 +0100 Subject: [PATCH 0691/1220] Add cache headers to static files served through Rails (#24120) --- config/application.rb | 5 ++++ config/environments/development.rb | 5 ---- config/environments/production.rb | 12 +------- config/environments/test.rb | 5 ---- lib/public_file_server_middleware.rb | 43 ++++++++++++++++++++++++++++ 5 files changed, 49 insertions(+), 21 deletions(-) create mode 100644 lib/public_file_server_middleware.rb diff --git a/config/application.rb b/config/application.rb index c51eacd680..43631c5516 100644 --- a/config/application.rb +++ b/config/application.rb @@ -35,6 +35,7 @@ require_relative '../lib/terrapin/multi_pipe_extensions' require_relative '../lib/mastodon/snowflake' require_relative '../lib/mastodon/version' require_relative '../lib/mastodon/rack_middleware' +require_relative '../lib/public_file_server_middleware' require_relative '../lib/devise/two_factor_ldap_authenticatable' require_relative '../lib/devise/two_factor_pam_authenticatable' require_relative '../lib/chewy/strategy/mastodon' @@ -181,6 +182,10 @@ module Mastodon config.active_job.queue_adapter = :sidekiq config.action_mailer.deliver_later_queue_name = 'mailers' + # We use our own middleware for this + config.public_file_server.enabled = false + + config.middleware.use PublicFileServerMiddleware if Rails.env.development? || ENV['RAILS_SERVE_STATIC_FILES'] == 'true' config.middleware.use Rack::Attack config.middleware.use Mastodon::RackMiddleware diff --git a/config/environments/development.rb b/config/environments/development.rb index f5f6cbed8d..32c5cce8b9 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -16,12 +16,7 @@ Rails.application.configure do # Run rails dev:cache to toggle caching. if Rails.root.join('tmp/caching-dev.txt').exist? config.action_controller.perform_caching = true - config.cache_store = :redis_cache_store, REDIS_CACHE_PARAMS - - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{2.days.to_i}", - } else config.action_controller.perform_caching = false config.cache_store = :null_store diff --git a/config/environments/production.rb b/config/environments/production.rb index b8536c53ab..00d7834775 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -19,24 +19,14 @@ Rails.application.configure do # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? - ActiveSupport::Logger.new(STDOUT).tap do |logger| logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end - # Compress JavaScripts and CSS. - # config.assets.js_compressor = Uglifier.new(mangle: false) - # config.assets.css_compressor = :sass - # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb - # Specifies the header that your server uses for sending files. config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present? @@ -66,7 +56,7 @@ Rails.application.configure do # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # English when a translation cannot be found). - config.i18n.fallbacks = [:en] + config.i18n.fallbacks = true # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify diff --git a/config/environments/test.rb b/config/environments/test.rb index 9cbf31e8d7..1328e155a3 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -12,11 +12,6 @@ Rails.application.configure do # preloads Rails for running tests, you may have to set it to true. config.eager_load = false - # Configure public file server for tests with Cache-Control for performance. - config.public_file_server.enabled = true - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" - } config.assets.digest = false # Show full error reports and disable caching. diff --git a/lib/public_file_server_middleware.rb b/lib/public_file_server_middleware.rb new file mode 100644 index 0000000000..3799230a22 --- /dev/null +++ b/lib/public_file_server_middleware.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'action_dispatch/middleware/static' + +class PublicFileServerMiddleware + SERVICE_WORKER_TTL = 7.days.to_i + CACHE_TTL = 28.days.to_i + + def initialize(app) + @app = app + @file_handler = ActionDispatch::FileHandler.new(Rails.application.paths['public'].first) + end + + def call(env) + file = @file_handler.attempt(env) + + # If the request is not a static file, move on! + return @app.call(env) if file.nil? + + status, headers, response = file + + # Set cache headers on static files. Some paths require different cache headers + headers['Cache-Control'] = begin + request_path = env['REQUEST_PATH'] + + if request_path.start_with?('/sw.js') + "public, max-age=#{SERVICE_WORKER_TTL}, must-revalidate" + elsif request_path.start_with?(paperclip_root_url) + "public, max-age=#{CACHE_TTL}, immutable" + else + "public, max-age=#{CACHE_TTL}, must-revalidate" + end + end + + [status, headers, response] + end + + private + + def paperclip_root_url + ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + end +end From aa7d63d9aac610fa2b21080fb594314d86338191 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:56:03 +0900 Subject: [PATCH 0692/1220] Bump autoprefixer from 10.4.13 to 10.4.14 (#24108) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 65 ++++++++++++++++++++++++---------------------------- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 1af6d4af73..0daf5c41b0 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "abortcontroller-polyfill": "^1.7.5", "array-includes": "^3.1.6", "arrow-key-navigation": "^1.2.0", - "autoprefixer": "^10.4.13", + "autoprefixer": "^10.4.14", "axios": "^1.3.4", "babel-loader": "^8.3.0", "babel-plugin-lodash": "^3.3.4", diff --git a/yarn.lock b/yarn.lock index 52b82f68d2..990dad043d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2587,13 +2587,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.4.13: - version "10.4.13" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" - integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== +autoprefixer@^10.4.14: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== dependencies: - browserslist "^4.21.4" - caniuse-lite "^1.0.30001426" + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -2995,15 +2995,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== +browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" bser@2.1.1: version "2.1.1" @@ -3177,15 +3177,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400: - version "1.0.30001414" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz" - integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg== - -caniuse-lite@^1.0.30001426: - version "1.0.30001462" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe" - integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: + version "1.0.30001466" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" + integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" @@ -4254,10 +4249,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.251: - version "1.4.254" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6" - integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q== +electron-to-chromium@^1.4.284: + version "1.4.330" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99" + integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q== elliptic@^6.5.3: version "6.5.4" @@ -7670,10 +7665,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== normalize-package-data@^2.5.0: version "2.5.0" @@ -10888,10 +10883,10 @@ upath@^1.1.1, upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== +update-browserslist-db@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" From f57bcb028bb5f69c98fdd758deac7be7f1367536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 11:11:54 +0900 Subject: [PATCH 0693/1220] Bump sass from 1.58.3 to 1.59.3 (#24105) 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 0daf5c41b0..81e265ffab 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^4.1.2", - "sass": "^1.58.3", + "sass": "^1.59.3", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index 990dad043d..4e647d44ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9522,10 +9522,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.58.3: - version "1.58.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d" - integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A== +sass@^1.59.3: + version "1.59.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" + integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From aa947a143b5bd84865bff2b24878d84f3d69b8b7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 15 Mar 2023 23:31:08 -0400 Subject: [PATCH 0694/1220] Regen rubocop-todo without Max shadowing (#24076) --- .rubocop.yml | 10 - .rubocop_todo.yml | 2339 ++++++++++++++++++++++++++++++++++--- lib/mastodon/media_cli.rb | 2 - 3 files changed, 2151 insertions(+), 200 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 99206e5977..8eb3d402ef 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -32,7 +32,6 @@ Layout/FirstHashElementIndentation: EnforcedStyle: consistent Layout/LineLength: - Max: 140 # RuboCop default 120 AllowedPatterns: # Allow comments to be long lines - !ruby/regexp / \# .*$/ @@ -47,13 +46,11 @@ Lint/UselessAccessModifier: - class_methods Metrics/AbcSize: - Max: 34 # RuboCop default 17 Exclude: - 'lib/**/*cli*.rb' - db/*migrate/**/* Metrics/BlockLength: - Max: 55 # Default 25 CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' @@ -63,30 +60,23 @@ Metrics/BlockNesting: - 'lib/mastodon/*_cli.rb' Metrics/ClassLength: - Max: 500 # Default 100 CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' Metrics/CyclomaticComplexity: - Max: 12 # Default 7 Exclude: - lib/mastodon/*cli*.rb - db/*migrate/**/* Metrics/MethodLength: - Max: 25 # RuboCop default 10 CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' Metrics/ModuleLength: - Max: 200 # Default 100 CountAsOne: [array, heredoc] -Metrics/PerceivedComplexity: - Max: 16 # RuboCop default 8 - Rails/HttpStatus: EnforcedStyle: numeric diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6dbcbaeba1..e79f4f8e97 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,12 +1,11 @@ # This configuration was generated by -# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit` -# on 2023-02-19 06:22:09 UTC using RuboCop version 1.45.1. +# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit --no-offense-counts --no-auto-gen-timestamp` +# using RuboCop version 1.48.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 15 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include. # Include: **/*.gemfile, **/Gemfile, **/gems.rb @@ -14,14 +13,6 @@ Bundler/OrderedGems: Exclude: - 'Gemfile' -# Offense count: 581 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. -# URISchemes: http, https -Layout/LineLength: - Enabled: false - -# Offense count: 14 # Configuration parameters: AllowedMethods, AllowedPatterns. Lint/AmbiguousBlockAssociation: Exclude: @@ -35,7 +26,6 @@ Lint/AmbiguousBlockAssociation: - 'spec/services/unsuspend_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 15 # Configuration parameters: AllowedMethods. # AllowedMethods: enums Lint/ConstantDefinitionInBlock: @@ -50,7 +40,6 @@ Lint/ConstantDefinitionInBlock: - 'spec/lib/settings/extend_spec.rb' - 'spec/models/concerns/remotable_spec.rb' -# Offense count: 5 # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches. Lint/DuplicateBranch: Exclude: @@ -60,7 +49,6 @@ Lint/DuplicateBranch: - 'app/validators/vote_validator.rb' - 'lib/mastodon/maintenance_cli.rb' -# Offense count: 42 # Configuration parameters: AllowComments, AllowEmptyLambdas. Lint/EmptyBlock: Exclude: @@ -68,11 +56,7 @@ Lint/EmptyBlock: - 'spec/controllers/application_controller_spec.rb' - 'spec/fabricators/access_token_fabricator.rb' - 'spec/fabricators/conversation_fabricator.rb' - - 'spec/fabricators/conversation_mute_fabricator.rb' - - 'spec/fabricators/import_fabricator.rb' - - 'spec/fabricators/setting_fabricator.rb' - 'spec/fabricators/system_key_fabricator.rb' - - 'spec/fabricators/web_setting_fabricator.rb' - 'spec/helpers/admin/action_logs_helper_spec.rb' - 'spec/lib/activitypub/adapter_spec.rb' - 'spec/models/account_alias_spec.rb' @@ -93,7 +77,6 @@ Lint/EmptyBlock: - 'spec/models/list_spec.rb' - 'spec/models/login_activity_spec.rb' - 'spec/models/mute_spec.rb' - - 'spec/models/one_time_key_spec.rb' - 'spec/models/preview_card_spec.rb' - 'spec/models/preview_card_trend_spec.rb' - 'spec/models/relay_spec.rb' @@ -107,30 +90,25 @@ Lint/EmptyBlock: - 'spec/models/user_role_spec.rb' - 'spec/models/web/setting_spec.rb' -# Offense count: 1 # Configuration parameters: AllowComments. Lint/EmptyClass: Exclude: - 'spec/controllers/api/base_controller_spec.rb' -# Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). Lint/NonDeterministicRequireOrder: Exclude: - 'spec/rails_helper.rb' -# Offense count: 1 Lint/NonLocalExitFromIterator: Exclude: - 'app/helpers/jsonld_helper.rb' -# Offense count: 2 # This cop supports unsafe autocorrection (--autocorrect-all). Lint/OrAssignmentToConstant: Exclude: - 'lib/sanitize_ext/sanitize_config.rb' -# Offense count: 33 Lint/UselessAssignment: Exclude: - 'app/services/activitypub/process_status_update_service.rb' @@ -151,53 +129,46 @@ Lint/UselessAssignment: - 'spec/services/resolve_url_service_spec.rb' - 'spec/views/statuses/show.html.haml_spec.rb' -# Offense count: 3 # Configuration parameters: CheckForMethodsWithNoSideEffects. Lint/Void: Exclude: - 'spec/services/resolve_account_service_spec.rb' -# Offense count: 66 # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. Metrics/AbcSize: - Enabled: false + Max: 150 -# Offense count: 10 -# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. +# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. # AllowedMethods: refine Metrics/BlockLength: - Exclude: - - 'app/models/concerns/account_interactions.rb' - - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' - - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - - 'lib/tasks/branding.rake' - - 'lib/tasks/mastodon.rake' - - 'lib/tasks/repo.rake' - - 'lib/tasks/tests.rake' + Max: 433 -# Offense count: 1 # Configuration parameters: CountBlocks, Max. Metrics/BlockNesting: Exclude: - 'lib/tasks/mastodon.rake' -# Offense count: 39 +# Configuration parameters: CountComments, CountAsOne. +Metrics/ClassLength: + Max: 373 + # Configuration parameters: AllowedMethods, AllowedPatterns. Metrics/CyclomaticComplexity: - Enabled: false + Max: 25 -# Offense count: 35 # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns. Metrics/MethodLength: - Enabled: false + Max: 58 -# Offense count: 1 # Configuration parameters: CountComments, Max, CountAsOne. Metrics/ModuleLength: Exclude: + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/application_helper.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/helpers/statuses_helper.rb' - 'app/models/concerns/account_interactions.rb' -# Offense count: 5 # Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters. Metrics/ParameterLists: Exclude: @@ -206,32 +177,14 @@ Metrics/ParameterLists: - 'app/services/activitypub/fetch_remote_actor_service.rb' - 'app/services/activitypub/fetch_remote_status_service.rb' -# Offense count: 16 -# Configuration parameters: AllowedMethods, AllowedPatterns, Max. +# Configuration parameters: AllowedMethods, AllowedPatterns. Metrics/PerceivedComplexity: - Exclude: - - 'app/helpers/jsonld_helper.rb' - - 'app/lib/feed_manager.rb' - - 'app/lib/status_cache_hydrator.rb' - - 'app/lib/user_settings_decorator.rb' - - 'app/models/trends/links.rb' - - 'app/services/activitypub/fetch_remote_key_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/activitypub/process_account_service.rb' - - 'app/services/fetch_link_card_service.rb' - - 'app/services/fetch_oembed_service.rb' - - 'app/services/process_mentions_service.rb' - - 'app/services/resolve_account_service.rb' - - 'lib/mastodon/accounts_cli.rb' - - 'lib/mastodon/domains_cli.rb' - - 'lib/mastodon/maintenance_cli.rb' + Max: 28 -# Offense count: 1 Naming/AccessorMethodName: Exclude: - 'app/controllers/auth/sessions_controller.rb' -# Offense count: 7 # Configuration parameters: EnforcedStyleForLeadingUnderscores. # SupportedStylesForLeadingUnderscores: disallowed, required, optional Naming/MemoizedInstanceVariableName: @@ -243,10 +196,9 @@ Naming/MemoizedInstanceVariableName: - 'app/services/resolve_url_service.rb' - 'app/services/search_service.rb' -# Offense count: 50 # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns. # SupportedStyles: snake_case, normalcase, non_integer -# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339 +# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64 Naming/VariableNumber: Exclude: - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' @@ -263,7 +215,6 @@ Naming/VariableNumber: - 'spec/models/user_spec.rb' - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' -# Offense count: 12 # Configuration parameters: MinSize. Performance/CollectionLiteralInLoop: Exclude: @@ -278,14 +229,12 @@ Performance/CollectionLiteralInLoop: - 'app/services/unsuspend_account_service.rb' - 'lib/mastodon/media_cli.rb' -# Offense count: 4 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/Count: Exclude: - 'app/lib/importer/accounts_index_importer.rb' - 'app/lib/importer/tags_index_importer.rb' -# Offense count: 10 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: SafeMultiline. Performance/DeletePrefix: @@ -301,7 +250,6 @@ Performance/DeletePrefix: - 'app/services/resolve_account_service.rb' - 'app/services/tag_search_service.rb' -# Offense count: 19 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/MapCompact: Exclude: @@ -321,36 +269,30 @@ Performance/MapCompact: - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb' - 'spec/presenters/status_relationships_presenter_spec.rb' -# Offense count: 7 Performance/MethodObjectAsBlock: Exclude: - 'app/models/account_suggestions/source.rb' - 'spec/models/export_spec.rb' -# Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/RedundantEqualityComparisonBlock: Exclude: - 'spec/requests/link_headers_spec.rb' -# Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: SafeMultiline. Performance/StartWith: Exclude: - 'app/lib/extractor.rb' -# Offense count: 4 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: OnlySumOrWithInitialValue. Performance/Sum: Exclude: - 'app/lib/activity_tracker.rb' - 'app/models/trends/history.rb' - - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' - 'lib/paperclip/color_extractor.rb' -# Offense count: 15 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/TimesMap: Exclude: @@ -360,7 +302,6 @@ Performance/TimesMap: - 'spec/lib/request_pool_spec.rb' - 'spec/models/account_spec.rb' -# Offense count: 4 # This cop supports unsafe autocorrection (--autocorrect-all). Performance/UnfreezeString: Exclude: @@ -369,7 +310,6 @@ Performance/UnfreezeString: - 'app/validators/status_length_validator.rb' - 'lib/tasks/mastodon.rake' -# Offense count: 27 RSpec/AnyInstance: Exclude: - 'spec/controllers/activitypub/inboxes_controller_spec.rb' @@ -390,12 +330,10 @@ RSpec/AnyInstance: - 'spec/workers/activitypub/delivery_worker_spec.rb' - 'spec/workers/web/push_notification_worker_spec.rb' -# Offense count: 1 RSpec/BeforeAfterAll: Exclude: - 'spec/requests/localization_spec.rb' -# Offense count: 558 # Configuration parameters: Prefixes, AllowedPatterns. # Prefixes: when, with, without RSpec/ContextWording: @@ -440,7 +378,6 @@ RSpec/ContextWording: - 'spec/lib/html_aware_formatter_spec.rb' - 'spec/lib/link_details_extractor_spec.rb' - 'spec/lib/ostatus/tag_manager_spec.rb' - - 'spec/lib/plain_text_formatter_spec.rb' - 'spec/lib/scope_transformer_spec.rb' - 'spec/lib/status_cache_hydrator_spec.rb' - 'spec/lib/status_reach_finder_spec.rb' @@ -506,7 +443,6 @@ RSpec/ContextWording: - 'spec/workers/move_worker_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 339 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: SkipBlocks, EnforcedStyle. # SupportedStyles: described_class, explicit @@ -581,7 +517,6 @@ RSpec/DescribedClass: - 'spec/services/update_account_service_spec.rb' - 'spec/validators/note_length_validator_spec.rb' -# Offense count: 32 # This cop supports unsafe autocorrection (--autocorrect-all). RSpec/EmptyExampleGroup: Exclude: @@ -604,7 +539,6 @@ RSpec/EmptyExampleGroup: - 'spec/models/list_spec.rb' - 'spec/models/login_activity_spec.rb' - 'spec/models/mute_spec.rb' - - 'spec/models/one_time_key_spec.rb' - 'spec/models/preview_card_spec.rb' - 'spec/models/preview_card_trend_spec.rb' - 'spec/models/relay_spec.rb' @@ -618,12 +552,10 @@ RSpec/EmptyExampleGroup: - 'spec/models/web/setting_spec.rb' - 'spec/services/unmute_service_spec.rb' -# Offense count: 178 # Configuration parameters: CountAsOne. RSpec/ExampleLength: Max: 22 -# Offense count: 21 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: method_call, block @@ -641,14 +573,12 @@ RSpec/ExpectChange: - 'spec/services/unsuspend_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 5 RSpec/ExpectInHook: Exclude: - 'spec/controllers/api/v1/media_controller_spec.rb' - 'spec/controllers/settings/applications_controller_spec.rb' - 'spec/lib/status_filter_spec.rb' -# Offense count: 16 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. # SupportedStyles: implicit, each, example @@ -664,7 +594,6 @@ RSpec/HookArgument: - 'spec/services/import_service_spec.rb' - 'spec/spec_helper.rb' -# Offense count: 101 # Configuration parameters: AssignmentOnly. RSpec/InstanceVariable: Exclude: @@ -687,7 +616,6 @@ RSpec/InstanceVariable: - 'spec/services/search_service_spec.rb' - 'spec/services/unblock_domain_service_spec.rb' -# Offense count: 15 RSpec/LeakyConstantDeclaration: Exclude: - 'spec/controllers/api/base_controller_spec.rb' @@ -700,7 +628,6 @@ RSpec/LeakyConstantDeclaration: - 'spec/lib/settings/extend_spec.rb' - 'spec/models/concerns/remotable_spec.rb' -# Offense count: 108 RSpec/LetSetup: Exclude: - 'spec/controllers/admin/accounts_controller_spec.rb' @@ -753,7 +680,6 @@ RSpec/LetSetup: - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb' -# Offense count: 7 RSpec/MessageChain: Exclude: - 'spec/controllers/api/v1/media_controller_spec.rb' @@ -761,7 +687,6 @@ RSpec/MessageChain: - 'spec/models/session_activation_spec.rb' - 'spec/models/setting_spec.rb' -# Offense count: 47 # Configuration parameters: EnforcedStyle. # SupportedStyles: have_received, receive RSpec/MessageSpies: @@ -784,7 +709,6 @@ RSpec/MessageSpies: - 'spec/spec_helper.rb' - 'spec/validators/status_length_validator_spec.rb' -# Offense count: 35 RSpec/MissingExampleGroupArgument: Exclude: - 'spec/controllers/accounts_controller_spec.rb' @@ -810,16 +734,13 @@ RSpec/MissingExampleGroupArgument: - 'spec/services/notify_service_spec.rb' - 'spec/services/process_mentions_service_spec.rb' -# Offense count: 599 RSpec/MultipleExpectations: Max: 19 -# Offense count: 442 # Configuration parameters: AllowSubject. RSpec/MultipleMemoizedHelpers: Max: 21 -# Offense count: 7 # This cop supports safe autocorrection (--autocorrect). RSpec/MultipleSubjects: Exclude: @@ -831,7 +752,6 @@ RSpec/MultipleSubjects: - 'spec/controllers/follower_accounts_controller_spec.rb' - 'spec/controllers/following_accounts_controller_spec.rb' -# Offense count: 1407 # Configuration parameters: EnforcedStyle, IgnoreSharedExamples. # SupportedStyles: always, named_only RSpec/NamedSubject: @@ -1030,12 +950,10 @@ RSpec/NamedSubject: - 'spec/workers/unfollow_follow_worker_spec.rb' - 'spec/workers/web/push_notification_worker_spec.rb' -# Offense count: 552 # Configuration parameters: AllowedGroups. RSpec/NestedGroups: Max: 6 -# Offense count: 2 # Configuration parameters: AllowedPatterns. # AllowedPatterns: ^expect_, ^assert_ RSpec/NoExpectationExample: @@ -1043,13 +961,11 @@ RSpec/NoExpectationExample: - 'spec/controllers/auth/registrations_controller_spec.rb' - 'spec/services/precompute_feed_service_spec.rb' -# Offense count: 3 RSpec/PendingWithoutReason: Exclude: - 'spec/models/account_spec.rb' - 'spec/support/examples/lib/settings/scoped_settings.rb' -# Offense count: 9 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. # SupportedStyles: inflected, explicit @@ -1059,7 +975,6 @@ RSpec/PredicateMatcher: - 'spec/models/user_spec.rb' - 'spec/services/post_status_service_spec.rb' -# Offense count: 180 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Inferences. RSpec/Rails/InferredSpecType: @@ -1166,7 +1081,6 @@ RSpec/Rails/InferredSpecType: - 'spec/helpers/formatting_helper_spec.rb' - 'spec/helpers/home_helper_spec.rb' - 'spec/helpers/routing_helper_spec.rb' - - 'spec/helpers/statuses_helper_spec.rb' - 'spec/mailers/admin_mailer_spec.rb' - 'spec/mailers/notification_mailer_spec.rb' - 'spec/mailers/user_mailer_spec.rb' @@ -1184,18 +1098,15 @@ RSpec/Rails/InferredSpecType: - 'spec/models/announcement_mute_spec.rb' - 'spec/models/announcement_reaction_spec.rb' - 'spec/models/announcement_spec.rb' - - 'spec/models/appeal_spec.rb' - 'spec/models/backup_spec.rb' - 'spec/models/block_spec.rb' - 'spec/models/canonical_email_block_spec.rb' - 'spec/models/conversation_mute_spec.rb' - 'spec/models/conversation_spec.rb' - - 'spec/models/custom_emoji_category_spec.rb' - 'spec/models/custom_emoji_spec.rb' - 'spec/models/custom_filter_keyword_spec.rb' - 'spec/models/custom_filter_spec.rb' - 'spec/models/device_spec.rb' - - 'spec/models/domain_allow_spec.rb' - 'spec/models/domain_block_spec.rb' - 'spec/models/email_domain_block_spec.rb' - 'spec/models/encrypted_message_spec.rb' @@ -1208,28 +1119,22 @@ RSpec/Rails/InferredSpecType: - 'spec/models/identity_spec.rb' - 'spec/models/import_spec.rb' - 'spec/models/invite_spec.rb' - - 'spec/models/ip_block_spec.rb' - 'spec/models/list_account_spec.rb' - 'spec/models/list_spec.rb' - 'spec/models/login_activity_spec.rb' - - 'spec/models/marker_spec.rb' - 'spec/models/media_attachment_spec.rb' - 'spec/models/mention_spec.rb' - 'spec/models/mute_spec.rb' - 'spec/models/notification_spec.rb' - - 'spec/models/one_time_key_spec.rb' - - 'spec/models/poll_spec.rb' - 'spec/models/poll_vote_spec.rb' - 'spec/models/preview_card_spec.rb' - 'spec/models/preview_card_trend_spec.rb' - 'spec/models/public_feed_spec.rb' - 'spec/models/relay_spec.rb' - - 'spec/models/rule_spec.rb' - 'spec/models/scheduled_status_spec.rb' - 'spec/models/session_activation_spec.rb' - 'spec/models/setting_spec.rb' - 'spec/models/site_upload_spec.rb' - - 'spec/models/status_edit_spec.rb' - 'spec/models/status_pin_spec.rb' - 'spec/models/status_spec.rb' - 'spec/models/status_stat_spec.rb' @@ -1245,23 +1150,19 @@ RSpec/Rails/InferredSpecType: - 'spec/models/webauthn_credentials_spec.rb' - 'spec/models/webhook_spec.rb' -# Offense count: 6 RSpec/RepeatedExample: Exclude: - 'spec/policies/status_policy_spec.rb' -# Offense count: 6 RSpec/RepeatedExampleGroupBody: Exclude: - 'spec/controllers/statuses_controller_spec.rb' -# Offense count: 4 RSpec/RepeatedExampleGroupDescription: Exclude: - 'spec/controllers/admin/reports/actions_controller_spec.rb' - 'spec/policies/report_note_policy_spec.rb' -# Offense count: 12 RSpec/ScatteredSetup: Exclude: - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' @@ -1269,15 +1170,12 @@ RSpec/ScatteredSetup: - 'spec/controllers/admin/disputes/appeals_controller_spec.rb' - 'spec/controllers/auth/registrations_controller_spec.rb' - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' -# Offense count: 1 # This cop supports safe autocorrection (--autocorrect). RSpec/SharedContext: Exclude: - 'spec/services/unsuspend_account_service_spec.rb' -# Offense count: 16 RSpec/StubbedMock: Exclude: - 'spec/controllers/api/base_controller_spec.rb' @@ -1289,7 +1187,6 @@ RSpec/StubbedMock: - 'spec/lib/webfinger_resource_spec.rb' - 'spec/services/activitypub/process_collection_service_spec.rb' -# Offense count: 22 RSpec/SubjectDeclaration: Exclude: - 'spec/controllers/admin/domain_blocks_controller_spec.rb' @@ -1314,13 +1211,11 @@ RSpec/SubjectDeclaration: - 'spec/policies/user_policy_spec.rb' - 'spec/services/activitypub/process_account_service_spec.rb' -# Offense count: 5 RSpec/SubjectStub: Exclude: - 'spec/services/unallow_domain_service_spec.rb' - 'spec/validators/blacklisted_email_validator_spec.rb' -# Offense count: 119 # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames. RSpec/VerifiedDoubles: Exclude: @@ -1361,7 +1256,6 @@ RSpec/VerifiedDoubles: - 'spec/workers/feed_insert_worker_spec.rb' - 'spec/workers/regeneration_worker_spec.rb' -# Offense count: 19 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: ExpectedOrder, Include. # ExpectedOrder: index, show, new, edit, create, update, destroy @@ -1388,7 +1282,6 @@ Rails/ActionOrder: - 'app/controllers/settings/applications_controller.rb' - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' -# Offense count: 7 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: Include. # Include: app/models/**/*.rb @@ -1402,7 +1295,6 @@ Rails/ActiveRecordCallbacksOrder: - 'app/models/session_activation.rb' - 'app/models/status.rb' -# Offense count: 4 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/ApplicationController: Exclude: @@ -1411,7 +1303,6 @@ Rails/ApplicationController: - 'app/controllers/well_known/nodeinfo_controller.rb' - 'app/controllers/well_known/webfinger_controller.rb' -# Offense count: 35 # Configuration parameters: Database, Include. # SupportedDatabases: mysql, postgresql # Include: db/migrate/*.rb @@ -1449,7 +1340,6 @@ Rails/BulkChangeTable: - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' -# Offense count: 7 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/CompactBlank: Exclude: @@ -1460,14 +1350,12 @@ Rails/CompactBlank: - 'app/models/user.rb' - 'app/services/import_service.rb' -# Offense count: 3 # This cop supports safe autocorrection (--autocorrect). Rails/ContentTag: Exclude: - 'app/helpers/application_helper.rb' - 'app/helpers/branding_helper.rb' -# Offense count: 8 # Configuration parameters: Include. # Include: db/migrate/*.rb Rails/CreateTableWithTimestamps: @@ -1481,22 +1369,17 @@ Rails/CreateTableWithTimestamps: - 'db/migrate/20220824233535_create_status_trends.rb' - 'db/migrate/20221006061337_create_preview_card_trends.rb' -# Offense count: 4 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/DeprecatedActiveModelErrorsMethods: Exclude: - - 'app/validators/ed25519_key_validator.rb' - - 'app/validators/ed25519_signature_validator.rb' - 'lib/mastodon/accounts_cli.rb' -# Offense count: 4 # This cop supports safe autocorrection (--autocorrect). Rails/DuplicateAssociation: Exclude: - 'app/serializers/activitypub/collection_serializer.rb' - 'app/serializers/activitypub/note_serializer.rb' -# Offense count: 76 # Configuration parameters: EnforcedStyle. # SupportedStyles: slashes, arguments Rails/FilePath: @@ -1564,7 +1447,6 @@ Rails/FilePath: - 'spec/rails_helper.rb' - 'spec/spec_helper.rb' -# Offense count: 6 # Configuration parameters: Include. # Include: app/models/**/*.rb Rails/HasAndBelongsToMany: @@ -1574,7 +1456,6 @@ Rails/HasAndBelongsToMany: - 'app/models/status.rb' - 'app/models/tag.rb' -# Offense count: 15 # Configuration parameters: Include. # Include: app/models/**/*.rb Rails/HasManyOrHasOneDependent: @@ -1589,7 +1470,6 @@ Rails/HasManyOrHasOneDependent: - 'app/models/user.rb' - 'app/models/web/push_subscription.rb' -# Offense count: 4 # Configuration parameters: Include. # Include: app/helpers/**/*.rb Rails/HelperInstanceVariable: @@ -1598,7 +1478,6 @@ Rails/HelperInstanceVariable: - 'app/helpers/instance_helper.rb' - 'app/helpers/jsonld_helper.rb' -# Offense count: 3 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: Include. # Include: spec/**/*, test/**/* @@ -1606,7 +1485,6 @@ Rails/HttpPositionalArguments: Exclude: - 'spec/config/initializers/rack_attack_spec.rb' -# Offense count: 7 # Configuration parameters: Include. # Include: spec/**/*.rb, test/**/*.rb Rails/I18nLocaleAssignment: @@ -1615,13 +1493,11 @@ Rails/I18nLocaleAssignment: - 'spec/helpers/application_helper_spec.rb' - 'spec/requests/localization_spec.rb' -# Offense count: 6 Rails/I18nLocaleTexts: Exclude: - 'lib/tasks/mastodon.rake' - 'spec/helpers/flashes_helper_spec.rb' -# Offense count: 8 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/IgnoredColumnsAssignment: Exclude: @@ -1634,7 +1510,6 @@ Rails/IgnoredColumnsAssignment: - 'app/models/status_edit.rb' - 'app/models/user.rb' -# Offense count: 25 # Configuration parameters: IgnoreScopes, Include. # Include: app/models/**/*.rb Rails/InverseOf: @@ -1647,9 +1522,7 @@ Rails/InverseOf: - 'app/models/instance.rb' - 'app/models/notification.rb' - 'app/models/status.rb' - - 'app/models/user_ip.rb' -# Offense count: 13 # Configuration parameters: Include. # Include: app/controllers/**/*.rb, app/mailers/**/*.rb Rails/LexicallyScopedActionFilter: @@ -1660,7 +1533,6 @@ Rails/LexicallyScopedActionFilter: - 'app/controllers/auth/registrations_controller.rb' - 'app/controllers/auth/sessions_controller.rb' -# Offense count: 18 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/NegateInclude: Exclude: @@ -1680,7 +1552,6 @@ Rails/NegateInclude: - 'app/workers/web/push_notification_worker.rb' - 'lib/paperclip/color_extractor.rb' -# Offense count: 2 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Include. # Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb @@ -1688,7 +1559,6 @@ Rails/Output: Exclude: - 'lib/mastodon/ip_blocks_cli.rb' -# Offense count: 9 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Include. # Include: **/Rakefile, **/*.rake @@ -1701,7 +1571,6 @@ Rails/RakeEnvironment: - 'lib/tasks/repo.rake' - 'lib/tasks/statistics.rake' -# Offense count: 29 # Configuration parameters: Include. # Include: db/**/*.rb Rails/ReversibleMigration: @@ -1720,7 +1589,6 @@ Rails/ReversibleMigration: - 'db/migrate/20180617162849_remove_unused_indexes.rb' - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' -# Offense count: 141 # Configuration parameters: ForbiddenMethods, AllowedMethods. # ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all Rails/SkipsModelValidations: @@ -1774,7 +1642,6 @@ Rails/SkipsModelValidations: - 'spec/services/follow_service_spec.rb' - 'spec/services/update_account_service_spec.rb' -# Offense count: 11 # This cop supports unsafe autocorrection (--autocorrect-all). Rails/SquishedSQLHeredocs: Exclude: @@ -1784,7 +1651,6 @@ Rails/SquishedSQLHeredocs: - 'lib/mastodon/snowflake.rb' - 'lib/tasks/tests.rake' -# Offense count: 7 Rails/TransactionExitStatement: Exclude: - 'app/lib/activitypub/activity/announce.rb' @@ -1792,7 +1658,6 @@ Rails/TransactionExitStatement: - 'app/lib/activitypub/activity/delete.rb' - 'app/services/activitypub/process_account_service.rb' -# Offense count: 4 # Configuration parameters: Include. # Include: app/models/**/*.rb Rails/UniqueValidationWithoutIndex: @@ -1802,7 +1667,6 @@ Rails/UniqueValidationWithoutIndex: - 'app/models/identity.rb' - 'app/models/webauthn_credential.rb' -# Offense count: 19 # Configuration parameters: Include. # Include: app/models/**/*.rb Rails/UnusedIgnoredColumns: @@ -1816,7 +1680,6 @@ Rails/UnusedIgnoredColumns: - 'app/models/status_edit.rb' - 'app/models/user.rb' -# Offense count: 61 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: exists, where @@ -1856,24 +1719,461 @@ Rails/WhereExists: - 'spec/services/purge_domain_service_spec.rb' - 'spec/services/unallow_domain_service_spec.rb' -# Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: MinBranchesCount. Style/CaseLikeIf: Exclude: - - 'app/controllers/authorize_interactions_controller.rb' - 'app/controllers/concerns/signature_verification.rb' - - 'app/helpers/jsonld_helper.rb' - - 'app/models/account.rb' - - 'app/services/resolve_url_service.rb' -# Offense count: 445 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: nested, compact Style/ClassAndModuleChildren: - Enabled: false + Exclude: + - 'app/controllers/activitypub/base_controller.rb' + - 'app/controllers/activitypub/claims_controller.rb' + - 'app/controllers/activitypub/collections_controller.rb' + - 'app/controllers/activitypub/followers_synchronizations_controller.rb' + - 'app/controllers/activitypub/inboxes_controller.rb' + - 'app/controllers/activitypub/outboxes_controller.rb' + - 'app/controllers/activitypub/replies_controller.rb' + - 'app/controllers/admin/announcements_controller.rb' + - 'app/controllers/admin/disputes/appeals_controller.rb' + - 'app/controllers/admin/domain_allows_controller.rb' + - 'app/controllers/admin/reports/actions_controller.rb' + - 'app/controllers/admin/settings/about_controller.rb' + - 'app/controllers/admin/settings/appearance_controller.rb' + - 'app/controllers/admin/settings/branding_controller.rb' + - 'app/controllers/admin/settings/content_retention_controller.rb' + - 'app/controllers/admin/settings/discovery_controller.rb' + - 'app/controllers/admin/settings/registrations_controller.rb' + - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb' + - 'app/controllers/admin/trends/links_controller.rb' + - 'app/controllers/admin/trends/statuses_controller.rb' + - 'app/controllers/admin/trends/tags_controller.rb' + - 'app/controllers/admin/users/roles_controller.rb' + - 'app/controllers/admin/users/two_factor_authentications_controller.rb' + - 'app/controllers/admin/webhooks/secrets_controller.rb' + - 'app/controllers/api/base_controller.rb' + - 'app/controllers/api/oembed_controller.rb' + - 'app/controllers/api/v1/accounts/credentials_controller.rb' + - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb' + - 'app/controllers/api/v1/accounts/featured_tags_controller.rb' + - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb' + - 'app/controllers/api/v1/accounts/lists_controller.rb' + - 'app/controllers/api/v1/accounts/lookup_controller.rb' + - 'app/controllers/api/v1/accounts/notes_controller.rb' + - 'app/controllers/api/v1/accounts/pins_controller.rb' + - 'app/controllers/api/v1/accounts/relationships_controller.rb' + - 'app/controllers/api/v1/accounts/search_controller.rb' + - 'app/controllers/api/v1/accounts/statuses_controller.rb' + - 'app/controllers/api/v1/accounts_controller.rb' + - 'app/controllers/api/v1/admin/account_actions_controller.rb' + - 'app/controllers/api/v1/admin/accounts_controller.rb' + - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' + - 'app/controllers/api/v1/admin/dimensions_controller.rb' + - 'app/controllers/api/v1/admin/domain_allows_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' + - 'app/controllers/api/v1/admin/measures_controller.rb' + - 'app/controllers/api/v1/admin/reports_controller.rb' + - 'app/controllers/api/v1/admin/retention_controller.rb' + - 'app/controllers/api/v1/admin/trends/links_controller.rb' + - 'app/controllers/api/v1/admin/trends/statuses_controller.rb' + - 'app/controllers/api/v1/admin/trends/tags_controller.rb' + - 'app/controllers/api/v1/announcements/reactions_controller.rb' + - 'app/controllers/api/v1/announcements_controller.rb' + - 'app/controllers/api/v1/apps/credentials_controller.rb' + - 'app/controllers/api/v1/apps_controller.rb' + - 'app/controllers/api/v1/blocks_controller.rb' + - 'app/controllers/api/v1/bookmarks_controller.rb' + - 'app/controllers/api/v1/conversations_controller.rb' + - 'app/controllers/api/v1/crypto/deliveries_controller.rb' + - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb' + - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' + - 'app/controllers/api/v1/crypto/keys/counts_controller.rb' + - 'app/controllers/api/v1/crypto/keys/queries_controller.rb' + - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' + - 'app/controllers/api/v1/custom_emojis_controller.rb' + - 'app/controllers/api/v1/directories_controller.rb' + - 'app/controllers/api/v1/domain_blocks_controller.rb' + - 'app/controllers/api/v1/emails/confirmations_controller.rb' + - 'app/controllers/api/v1/endorsements_controller.rb' + - 'app/controllers/api/v1/favourites_controller.rb' + - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb' + - 'app/controllers/api/v1/featured_tags_controller.rb' + - 'app/controllers/api/v1/filters_controller.rb' + - 'app/controllers/api/v1/follow_requests_controller.rb' + - 'app/controllers/api/v1/followed_tags_controller.rb' + - 'app/controllers/api/v1/instances/activity_controller.rb' + - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' + - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb' + - 'app/controllers/api/v1/instances/peers_controller.rb' + - 'app/controllers/api/v1/instances/privacy_policies_controller.rb' + - 'app/controllers/api/v1/instances/rules_controller.rb' + - 'app/controllers/api/v1/instances_controller.rb' + - 'app/controllers/api/v1/lists/accounts_controller.rb' + - 'app/controllers/api/v1/lists_controller.rb' + - 'app/controllers/api/v1/markers_controller.rb' + - 'app/controllers/api/v1/media_controller.rb' + - 'app/controllers/api/v1/mutes_controller.rb' + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/api/v1/polls/votes_controller.rb' + - 'app/controllers/api/v1/polls_controller.rb' + - 'app/controllers/api/v1/preferences_controller.rb' + - 'app/controllers/api/v1/push/subscriptions_controller.rb' + - 'app/controllers/api/v1/reports_controller.rb' + - 'app/controllers/api/v1/scheduled_statuses_controller.rb' + - 'app/controllers/api/v1/statuses/bookmarks_controller.rb' + - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/favourites_controller.rb' + - 'app/controllers/api/v1/statuses/histories_controller.rb' + - 'app/controllers/api/v1/statuses/mutes_controller.rb' + - 'app/controllers/api/v1/statuses/pins_controller.rb' + - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/reblogs_controller.rb' + - 'app/controllers/api/v1/statuses/sources_controller.rb' + - 'app/controllers/api/v1/statuses/translations_controller.rb' + - 'app/controllers/api/v1/statuses_controller.rb' + - 'app/controllers/api/v1/streaming_controller.rb' + - 'app/controllers/api/v1/suggestions_controller.rb' + - 'app/controllers/api/v1/tags_controller.rb' + - 'app/controllers/api/v1/timelines/home_controller.rb' + - 'app/controllers/api/v1/timelines/list_controller.rb' + - 'app/controllers/api/v1/timelines/public_controller.rb' + - 'app/controllers/api/v1/timelines/tag_controller.rb' + - 'app/controllers/api/v1/trends/links_controller.rb' + - 'app/controllers/api/v1/trends/statuses_controller.rb' + - 'app/controllers/api/v1/trends/tags_controller.rb' + - 'app/controllers/api/v2/admin/accounts_controller.rb' + - 'app/controllers/api/v2/filters/keywords_controller.rb' + - 'app/controllers/api/v2/filters/statuses_controller.rb' + - 'app/controllers/api/v2/filters_controller.rb' + - 'app/controllers/api/v2/instances_controller.rb' + - 'app/controllers/api/v2/media_controller.rb' + - 'app/controllers/api/v2/search_controller.rb' + - 'app/controllers/api/v2/suggestions_controller.rb' + - 'app/controllers/api/web/base_controller.rb' + - 'app/controllers/api/web/embeds_controller.rb' + - 'app/controllers/api/web/push_subscriptions_controller.rb' + - 'app/controllers/api/web/settings_controller.rb' + - 'app/controllers/auth/challenges_controller.rb' + - 'app/controllers/auth/confirmations_controller.rb' + - 'app/controllers/auth/omniauth_callbacks_controller.rb' + - 'app/controllers/auth/passwords_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/auth/sessions_controller.rb' + - 'app/controllers/auth/setup_controller.rb' + - 'app/controllers/disputes/appeals_controller.rb' + - 'app/controllers/disputes/base_controller.rb' + - 'app/controllers/disputes/strikes_controller.rb' + - 'app/controllers/filters/statuses_controller.rb' + - 'app/controllers/oauth/authorizations_controller.rb' + - 'app/controllers/oauth/authorized_applications_controller.rb' + - 'app/controllers/oauth/tokens_controller.rb' + - 'app/controllers/settings/aliases_controller.rb' + - 'app/controllers/settings/applications_controller.rb' + - 'app/controllers/settings/base_controller.rb' + - 'app/controllers/settings/deletes_controller.rb' + - 'app/controllers/settings/exports_controller.rb' + - 'app/controllers/settings/featured_tags_controller.rb' + - 'app/controllers/settings/imports_controller.rb' + - 'app/controllers/settings/login_activities_controller.rb' + - 'app/controllers/settings/migration/redirects_controller.rb' + - 'app/controllers/settings/migrations_controller.rb' + - 'app/controllers/settings/preferences/appearance_controller.rb' + - 'app/controllers/settings/preferences/notifications_controller.rb' + - 'app/controllers/settings/preferences/other_controller.rb' + - 'app/controllers/settings/preferences_controller.rb' + - 'app/controllers/settings/profiles_controller.rb' + - 'app/controllers/settings/sessions_controller.rb' + - 'app/helpers/admin/account_moderation_notes_helper.rb' + - 'app/helpers/admin/action_logs_helper.rb' + - 'app/helpers/admin/dashboard_helper.rb' + - 'app/helpers/admin/filter_helper.rb' + - 'app/helpers/admin/settings_helper.rb' + - 'app/helpers/admin/trends/statuses_helper.rb' + - 'app/lib/activitypub/activity.rb' + - 'app/lib/activitypub/activity/accept.rb' + - 'app/lib/activitypub/activity/add.rb' + - 'app/lib/activitypub/activity/announce.rb' + - 'app/lib/activitypub/activity/block.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/delete.rb' + - 'app/lib/activitypub/activity/flag.rb' + - 'app/lib/activitypub/activity/follow.rb' + - 'app/lib/activitypub/activity/like.rb' + - 'app/lib/activitypub/activity/move.rb' + - 'app/lib/activitypub/activity/reject.rb' + - 'app/lib/activitypub/activity/remove.rb' + - 'app/lib/activitypub/activity/undo.rb' + - 'app/lib/activitypub/activity/update.rb' + - 'app/lib/activitypub/adapter.rb' + - 'app/lib/activitypub/case_transform.rb' + - 'app/lib/activitypub/dereferencer.rb' + - 'app/lib/activitypub/forwarder.rb' + - 'app/lib/activitypub/linked_data_signature.rb' + - 'app/lib/activitypub/parser/custom_emoji_parser.rb' + - 'app/lib/activitypub/parser/media_attachment_parser.rb' + - 'app/lib/activitypub/parser/poll_parser.rb' + - 'app/lib/activitypub/parser/status_parser.rb' + - 'app/lib/activitypub/serializer.rb' + - 'app/lib/activitypub/tag_manager.rb' + - 'app/lib/admin/metrics/dimension.rb' + - 'app/lib/admin/metrics/dimension/base_dimension.rb' + - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb' + - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/servers_dimension.rb' + - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' + - 'app/lib/admin/metrics/dimension/sources_dimension.rb' + - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' + - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb' + - 'app/lib/admin/metrics/measure.rb' + - 'app/lib/admin/metrics/measure/active_users_measure.rb' + - 'app/lib/admin/metrics/measure/base_measure.rb' + - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb' + - 'app/lib/admin/metrics/measure/instance_followers_measure.rb' + - 'app/lib/admin/metrics/measure/instance_follows_measure.rb' + - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb' + - 'app/lib/admin/metrics/measure/instance_reports_measure.rb' + - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb' + - 'app/lib/admin/metrics/measure/interactions_measure.rb' + - 'app/lib/admin/metrics/measure/new_users_measure.rb' + - 'app/lib/admin/metrics/measure/opened_reports_measure.rb' + - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb' + - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb' + - 'app/lib/admin/metrics/measure/tag_servers_measure.rb' + - 'app/lib/admin/metrics/measure/tag_uses_measure.rb' + - 'app/lib/admin/metrics/retention.rb' + - 'app/lib/admin/system_check.rb' + - 'app/lib/admin/system_check/base_check.rb' + - 'app/lib/admin/system_check/database_schema_check.rb' + - 'app/lib/admin/system_check/elasticsearch_check.rb' + - 'app/lib/admin/system_check/message.rb' + - 'app/lib/admin/system_check/rules_check.rb' + - 'app/lib/admin/system_check/sidekiq_process_check.rb' + - 'app/lib/connection_pool/shared_connection_pool.rb' + - 'app/lib/connection_pool/shared_timed_stack.rb' + - 'app/lib/importer/accounts_index_importer.rb' + - 'app/lib/importer/base_importer.rb' + - 'app/lib/importer/statuses_index_importer.rb' + - 'app/lib/importer/tags_index_importer.rb' + - 'app/lib/nodeinfo/adapter.rb' + - 'app/lib/ostatus/tag_manager.rb' + - 'app/lib/request.rb' + - 'app/lib/rss/builder.rb' + - 'app/lib/rss/channel.rb' + - 'app/lib/rss/element.rb' + - 'app/lib/rss/item.rb' + - 'app/lib/rss/media_content.rb' + - 'app/lib/translation_service/deepl.rb' + - 'app/lib/translation_service/libre_translate.rb' + - 'app/lib/translation_service/translation.rb' + - 'app/lib/vacuum/access_tokens_vacuum.rb' + - 'app/lib/vacuum/backups_vacuum.rb' + - 'app/lib/vacuum/feeds_vacuum.rb' + - 'app/lib/vacuum/media_attachments_vacuum.rb' + - 'app/lib/vacuum/preview_cards_vacuum.rb' + - 'app/lib/vacuum/statuses_vacuum.rb' + - 'app/lib/vacuum/system_keys_vacuum.rb' + - 'app/models/account/field.rb' + - 'app/models/account_suggestions/global_source.rb' + - 'app/models/account_suggestions/past_interactions_source.rb' + - 'app/models/account_suggestions/setting_source.rb' + - 'app/models/account_suggestions/source.rb' + - 'app/models/account_suggestions/suggestion.rb' + - 'app/models/admin/account_action.rb' + - 'app/models/admin/action_log.rb' + - 'app/models/admin/action_log_filter.rb' + - 'app/models/admin/appeal_filter.rb' + - 'app/models/admin/import.rb' + - 'app/models/admin/status_batch_action.rb' + - 'app/models/admin/status_filter.rb' + - 'app/models/form/account_batch.rb' + - 'app/models/form/admin_settings.rb' + - 'app/models/form/challenge.rb' + - 'app/models/form/custom_emoji_batch.rb' + - 'app/models/form/delete_confirmation.rb' + - 'app/models/form/domain_block_batch.rb' + - 'app/models/form/email_domain_block_batch.rb' + - 'app/models/form/ip_block_batch.rb' + - 'app/models/form/redirect.rb' + - 'app/models/form/status_filter_batch_action.rb' + - 'app/models/form/two_factor_confirmation.rb' + - 'app/models/trends/base.rb' + - 'app/models/trends/history.rb' + - 'app/models/trends/links.rb' + - 'app/models/trends/preview_card_batch.rb' + - 'app/models/trends/preview_card_filter.rb' + - 'app/models/trends/preview_card_provider_batch.rb' + - 'app/models/trends/preview_card_provider_filter.rb' + - 'app/models/trends/query.rb' + - 'app/models/trends/status_batch.rb' + - 'app/models/trends/status_filter.rb' + - 'app/models/trends/statuses.rb' + - 'app/models/trends/tag_batch.rb' + - 'app/models/trends/tag_filter.rb' + - 'app/models/trends/tags.rb' + - 'app/models/web/push_subscription.rb' + - 'app/models/web/setting.rb' + - 'app/policies/admin/status_policy.rb' + - 'app/presenters/activitypub/activity_presenter.rb' + - 'app/presenters/activitypub/collection_presenter.rb' + - 'app/presenters/webhooks/event_presenter.rb' + - 'app/serializers/activitypub/accept_follow_serializer.rb' + - 'app/serializers/activitypub/activity_serializer.rb' + - 'app/serializers/activitypub/actor_serializer.rb' + - 'app/serializers/activitypub/add_serializer.rb' + - 'app/serializers/activitypub/block_serializer.rb' + - 'app/serializers/activitypub/collection_serializer.rb' + - 'app/serializers/activitypub/delete_actor_serializer.rb' + - 'app/serializers/activitypub/delete_serializer.rb' + - 'app/serializers/activitypub/device_serializer.rb' + - 'app/serializers/activitypub/emoji_serializer.rb' + - 'app/serializers/activitypub/encrypted_message_serializer.rb' + - 'app/serializers/activitypub/flag_serializer.rb' + - 'app/serializers/activitypub/follow_serializer.rb' + - 'app/serializers/activitypub/hashtag_serializer.rb' + - 'app/serializers/activitypub/image_serializer.rb' + - 'app/serializers/activitypub/like_serializer.rb' + - 'app/serializers/activitypub/move_serializer.rb' + - 'app/serializers/activitypub/note_serializer.rb' + - 'app/serializers/activitypub/one_time_key_serializer.rb' + - 'app/serializers/activitypub/outbox_serializer.rb' + - 'app/serializers/activitypub/public_key_serializer.rb' + - 'app/serializers/activitypub/reject_follow_serializer.rb' + - 'app/serializers/activitypub/remove_serializer.rb' + - 'app/serializers/activitypub/undo_announce_serializer.rb' + - 'app/serializers/activitypub/undo_block_serializer.rb' + - 'app/serializers/activitypub/undo_follow_serializer.rb' + - 'app/serializers/activitypub/undo_like_serializer.rb' + - 'app/serializers/activitypub/update_poll_serializer.rb' + - 'app/serializers/activitypub/update_serializer.rb' + - 'app/serializers/activitypub/vote_serializer.rb' + - 'app/serializers/nodeinfo/discovery_serializer.rb' + - 'app/serializers/nodeinfo/serializer.rb' + - 'app/serializers/rest/account_serializer.rb' + - 'app/serializers/rest/admin/account_serializer.rb' + - 'app/serializers/rest/admin/canonical_email_block_serializer.rb' + - 'app/serializers/rest/admin/cohort_serializer.rb' + - 'app/serializers/rest/admin/dimension_serializer.rb' + - 'app/serializers/rest/admin/domain_allow_serializer.rb' + - 'app/serializers/rest/admin/domain_block_serializer.rb' + - 'app/serializers/rest/admin/email_domain_block_serializer.rb' + - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb' + - 'app/serializers/rest/admin/ip_block_serializer.rb' + - 'app/serializers/rest/admin/ip_serializer.rb' + - 'app/serializers/rest/admin/measure_serializer.rb' + - 'app/serializers/rest/admin/report_serializer.rb' + - 'app/serializers/rest/admin/tag_serializer.rb' + - 'app/serializers/rest/admin/webhook_event_serializer.rb' + - 'app/serializers/rest/announcement_serializer.rb' + - 'app/serializers/rest/application_serializer.rb' + - 'app/serializers/rest/context_serializer.rb' + - 'app/serializers/rest/conversation_serializer.rb' + - 'app/serializers/rest/credential_account_serializer.rb' + - 'app/serializers/rest/custom_emoji_serializer.rb' + - 'app/serializers/rest/domain_block_serializer.rb' + - 'app/serializers/rest/encrypted_message_serializer.rb' + - 'app/serializers/rest/extended_description_serializer.rb' + - 'app/serializers/rest/familiar_followers_serializer.rb' + - 'app/serializers/rest/featured_tag_serializer.rb' + - 'app/serializers/rest/filter_keyword_serializer.rb' + - 'app/serializers/rest/filter_result_serializer.rb' + - 'app/serializers/rest/filter_serializer.rb' + - 'app/serializers/rest/filter_status_serializer.rb' + - 'app/serializers/rest/instance_serializer.rb' + - 'app/serializers/rest/keys/claim_result_serializer.rb' + - 'app/serializers/rest/keys/device_serializer.rb' + - 'app/serializers/rest/keys/query_result_serializer.rb' + - 'app/serializers/rest/list_serializer.rb' + - 'app/serializers/rest/marker_serializer.rb' + - 'app/serializers/rest/media_attachment_serializer.rb' + - 'app/serializers/rest/muted_account_serializer.rb' + - 'app/serializers/rest/notification_serializer.rb' + - 'app/serializers/rest/poll_serializer.rb' + - 'app/serializers/rest/preferences_serializer.rb' + - 'app/serializers/rest/preview_card_serializer.rb' + - 'app/serializers/rest/privacy_policy_serializer.rb' + - 'app/serializers/rest/reaction_serializer.rb' + - 'app/serializers/rest/relationship_serializer.rb' + - 'app/serializers/rest/report_serializer.rb' + - 'app/serializers/rest/role_serializer.rb' + - 'app/serializers/rest/rule_serializer.rb' + - 'app/serializers/rest/scheduled_status_serializer.rb' + - 'app/serializers/rest/search_serializer.rb' + - 'app/serializers/rest/status_edit_serializer.rb' + - 'app/serializers/rest/status_serializer.rb' + - 'app/serializers/rest/status_source_serializer.rb' + - 'app/serializers/rest/suggestion_serializer.rb' + - 'app/serializers/rest/tag_serializer.rb' + - 'app/serializers/rest/translation_serializer.rb' + - 'app/serializers/rest/trends/link_serializer.rb' + - 'app/serializers/rest/v1/filter_serializer.rb' + - 'app/serializers/rest/v1/instance_serializer.rb' + - 'app/serializers/rest/web_push_subscription_serializer.rb' + - 'app/serializers/web/notification_serializer.rb' + - 'app/services/activitypub/fetch_featured_collection_service.rb' + - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' + - 'app/services/activitypub/fetch_remote_account_service.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/activitypub/fetch_remote_key_service.rb' + - 'app/services/activitypub/fetch_remote_poll_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/activitypub/fetch_replies_service.rb' + - 'app/services/activitypub/prepare_followers_synchronization_service.rb' + - 'app/services/activitypub/process_account_service.rb' + - 'app/services/activitypub/process_collection_service.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/activitypub/synchronize_followers_service.rb' + - 'app/services/keys/claim_service.rb' + - 'app/services/keys/query_service.rb' + - 'app/workers/activitypub/account_raw_distribution_worker.rb' + - 'app/workers/activitypub/delivery_worker.rb' + - 'app/workers/activitypub/distribute_poll_update_worker.rb' + - 'app/workers/activitypub/distribution_worker.rb' + - 'app/workers/activitypub/fetch_replies_worker.rb' + - 'app/workers/activitypub/followers_synchronization_worker.rb' + - 'app/workers/activitypub/low_priority_delivery_worker.rb' + - 'app/workers/activitypub/migrated_follow_delivery_worker.rb' + - 'app/workers/activitypub/move_distribution_worker.rb' + - 'app/workers/activitypub/post_upgrade_worker.rb' + - 'app/workers/activitypub/processing_worker.rb' + - 'app/workers/activitypub/raw_distribution_worker.rb' + - 'app/workers/activitypub/status_update_distribution_worker.rb' + - 'app/workers/activitypub/synchronize_featured_collection_worker.rb' + - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb' + - 'app/workers/activitypub/update_distribution_worker.rb' + - 'app/workers/admin/account_deletion_worker.rb' + - 'app/workers/admin/domain_purge_worker.rb' + - 'app/workers/admin/suspension_worker.rb' + - 'app/workers/admin/unsuspension_worker.rb' + - 'app/workers/import/relationship_worker.rb' + - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' + - 'app/workers/scheduler/follow_recommendations_scheduler.rb' + - 'app/workers/scheduler/indexing_scheduler.rb' + - 'app/workers/scheduler/instance_refresh_scheduler.rb' + - 'app/workers/scheduler/ip_cleanup_scheduler.rb' + - 'app/workers/scheduler/pghero_scheduler.rb' + - 'app/workers/scheduler/scheduled_statuses_scheduler.rb' + - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb' + - 'app/workers/scheduler/trends/refresh_scheduler.rb' + - 'app/workers/scheduler/trends/review_notifications_scheduler.rb' + - 'app/workers/scheduler/user_cleanup_scheduler.rb' + - 'app/workers/scheduler/vacuum_scheduler.rb' + - 'app/workers/web/push_notification_worker.rb' + - 'app/workers/webhooks/delivery_worker.rb' + - 'lib/mastodon/rack_middleware.rb' + - 'lib/mastodon/sidekiq_middleware.rb' + - 'lib/mastodon/snowflake.rb' + - 'lib/webpacker/helper_extensions.rb' + - 'lib/webpacker/manifest_extensions.rb' -# Offense count: 2 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowedMethods, AllowedPatterns. # AllowedMethods: ==, equal?, eql? @@ -1882,24 +2182,1352 @@ Style/ClassEqualityComparison: - 'app/helpers/jsonld_helper.rb' - 'app/serializers/activitypub/outbox_serializer.rb' -# Offense count: 7 Style/CombinableLoops: Exclude: - 'app/models/form/custom_emoji_batch.rb' - 'app/models/form/ip_block_batch.rb' -# Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). Style/ConcatArrayLiterals: Exclude: - 'app/lib/feed_manager.rb' -# Offense count: 1433 # Configuration parameters: AllowedConstants. Style/Documentation: - Enabled: false + Exclude: + - 'app/chewy/accounts_index.rb' + - 'app/chewy/statuses_index.rb' + - 'app/chewy/tags_index.rb' + - 'app/controllers/about_controller.rb' + - 'app/controllers/accounts_controller.rb' + - 'app/controllers/activitypub/base_controller.rb' + - 'app/controllers/activitypub/claims_controller.rb' + - 'app/controllers/activitypub/collections_controller.rb' + - 'app/controllers/activitypub/followers_synchronizations_controller.rb' + - 'app/controllers/activitypub/inboxes_controller.rb' + - 'app/controllers/activitypub/outboxes_controller.rb' + - 'app/controllers/activitypub/replies_controller.rb' + - 'app/controllers/admin/account_actions_controller.rb' + - 'app/controllers/admin/account_moderation_notes_controller.rb' + - 'app/controllers/admin/accounts_controller.rb' + - 'app/controllers/admin/action_logs_controller.rb' + - 'app/controllers/admin/announcements_controller.rb' + - 'app/controllers/admin/base_controller.rb' + - 'app/controllers/admin/change_emails_controller.rb' + - 'app/controllers/admin/confirmations_controller.rb' + - 'app/controllers/admin/custom_emojis_controller.rb' + - 'app/controllers/admin/dashboard_controller.rb' + - 'app/controllers/admin/disputes/appeals_controller.rb' + - 'app/controllers/admin/domain_allows_controller.rb' + - 'app/controllers/admin/domain_blocks_controller.rb' + - 'app/controllers/admin/email_domain_blocks_controller.rb' + - 'app/controllers/admin/export_domain_allows_controller.rb' + - 'app/controllers/admin/export_domain_blocks_controller.rb' + - 'app/controllers/admin/follow_recommendations_controller.rb' + - 'app/controllers/admin/instances_controller.rb' + - 'app/controllers/admin/invites_controller.rb' + - 'app/controllers/admin/ip_blocks_controller.rb' + - 'app/controllers/admin/relationships_controller.rb' + - 'app/controllers/admin/relays_controller.rb' + - 'app/controllers/admin/report_notes_controller.rb' + - 'app/controllers/admin/reports/actions_controller.rb' + - 'app/controllers/admin/reports_controller.rb' + - 'app/controllers/admin/resets_controller.rb' + - 'app/controllers/admin/roles_controller.rb' + - 'app/controllers/admin/rules_controller.rb' + - 'app/controllers/admin/settings/about_controller.rb' + - 'app/controllers/admin/settings/appearance_controller.rb' + - 'app/controllers/admin/settings/branding_controller.rb' + - 'app/controllers/admin/settings/content_retention_controller.rb' + - 'app/controllers/admin/settings/discovery_controller.rb' + - 'app/controllers/admin/settings/registrations_controller.rb' + - 'app/controllers/admin/settings_controller.rb' + - 'app/controllers/admin/site_uploads_controller.rb' + - 'app/controllers/admin/statuses_controller.rb' + - 'app/controllers/admin/tags_controller.rb' + - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb' + - 'app/controllers/admin/trends/links_controller.rb' + - 'app/controllers/admin/trends/statuses_controller.rb' + - 'app/controllers/admin/trends/tags_controller.rb' + - 'app/controllers/admin/users/roles_controller.rb' + - 'app/controllers/admin/users/two_factor_authentications_controller.rb' + - 'app/controllers/admin/warning_presets_controller.rb' + - 'app/controllers/admin/webhooks/secrets_controller.rb' + - 'app/controllers/admin/webhooks_controller.rb' + - 'app/controllers/api/base_controller.rb' + - 'app/controllers/api/oembed_controller.rb' + - 'app/controllers/api/v1/accounts/credentials_controller.rb' + - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb' + - 'app/controllers/api/v1/accounts/featured_tags_controller.rb' + - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' + - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb' + - 'app/controllers/api/v1/accounts/lists_controller.rb' + - 'app/controllers/api/v1/accounts/lookup_controller.rb' + - 'app/controllers/api/v1/accounts/notes_controller.rb' + - 'app/controllers/api/v1/accounts/pins_controller.rb' + - 'app/controllers/api/v1/accounts/relationships_controller.rb' + - 'app/controllers/api/v1/accounts/search_controller.rb' + - 'app/controllers/api/v1/accounts/statuses_controller.rb' + - 'app/controllers/api/v1/accounts_controller.rb' + - 'app/controllers/api/v1/admin/account_actions_controller.rb' + - 'app/controllers/api/v1/admin/accounts_controller.rb' + - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' + - 'app/controllers/api/v1/admin/dimensions_controller.rb' + - 'app/controllers/api/v1/admin/domain_allows_controller.rb' + - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' + - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' + - 'app/controllers/api/v1/admin/measures_controller.rb' + - 'app/controllers/api/v1/admin/reports_controller.rb' + - 'app/controllers/api/v1/admin/retention_controller.rb' + - 'app/controllers/api/v1/admin/trends/links_controller.rb' + - 'app/controllers/api/v1/admin/trends/statuses_controller.rb' + - 'app/controllers/api/v1/admin/trends/tags_controller.rb' + - 'app/controllers/api/v1/announcements/reactions_controller.rb' + - 'app/controllers/api/v1/announcements_controller.rb' + - 'app/controllers/api/v1/apps/credentials_controller.rb' + - 'app/controllers/api/v1/apps_controller.rb' + - 'app/controllers/api/v1/blocks_controller.rb' + - 'app/controllers/api/v1/bookmarks_controller.rb' + - 'app/controllers/api/v1/conversations_controller.rb' + - 'app/controllers/api/v1/crypto/deliveries_controller.rb' + - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb' + - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' + - 'app/controllers/api/v1/crypto/keys/counts_controller.rb' + - 'app/controllers/api/v1/crypto/keys/queries_controller.rb' + - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' + - 'app/controllers/api/v1/custom_emojis_controller.rb' + - 'app/controllers/api/v1/directories_controller.rb' + - 'app/controllers/api/v1/domain_blocks_controller.rb' + - 'app/controllers/api/v1/emails/confirmations_controller.rb' + - 'app/controllers/api/v1/endorsements_controller.rb' + - 'app/controllers/api/v1/favourites_controller.rb' + - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb' + - 'app/controllers/api/v1/featured_tags_controller.rb' + - 'app/controllers/api/v1/filters_controller.rb' + - 'app/controllers/api/v1/follow_requests_controller.rb' + - 'app/controllers/api/v1/followed_tags_controller.rb' + - 'app/controllers/api/v1/instances/activity_controller.rb' + - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' + - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb' + - 'app/controllers/api/v1/instances/peers_controller.rb' + - 'app/controllers/api/v1/instances/privacy_policies_controller.rb' + - 'app/controllers/api/v1/instances/rules_controller.rb' + - 'app/controllers/api/v1/instances_controller.rb' + - 'app/controllers/api/v1/lists/accounts_controller.rb' + - 'app/controllers/api/v1/lists_controller.rb' + - 'app/controllers/api/v1/markers_controller.rb' + - 'app/controllers/api/v1/media_controller.rb' + - 'app/controllers/api/v1/mutes_controller.rb' + - 'app/controllers/api/v1/notifications_controller.rb' + - 'app/controllers/api/v1/polls/votes_controller.rb' + - 'app/controllers/api/v1/polls_controller.rb' + - 'app/controllers/api/v1/preferences_controller.rb' + - 'app/controllers/api/v1/push/subscriptions_controller.rb' + - 'app/controllers/api/v1/reports_controller.rb' + - 'app/controllers/api/v1/scheduled_statuses_controller.rb' + - 'app/controllers/api/v1/statuses/bookmarks_controller.rb' + - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/favourites_controller.rb' + - 'app/controllers/api/v1/statuses/histories_controller.rb' + - 'app/controllers/api/v1/statuses/mutes_controller.rb' + - 'app/controllers/api/v1/statuses/pins_controller.rb' + - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' + - 'app/controllers/api/v1/statuses/reblogs_controller.rb' + - 'app/controllers/api/v1/statuses/sources_controller.rb' + - 'app/controllers/api/v1/statuses/translations_controller.rb' + - 'app/controllers/api/v1/statuses_controller.rb' + - 'app/controllers/api/v1/streaming_controller.rb' + - 'app/controllers/api/v1/suggestions_controller.rb' + - 'app/controllers/api/v1/tags_controller.rb' + - 'app/controllers/api/v1/timelines/home_controller.rb' + - 'app/controllers/api/v1/timelines/list_controller.rb' + - 'app/controllers/api/v1/timelines/public_controller.rb' + - 'app/controllers/api/v1/timelines/tag_controller.rb' + - 'app/controllers/api/v1/trends/links_controller.rb' + - 'app/controllers/api/v1/trends/statuses_controller.rb' + - 'app/controllers/api/v1/trends/tags_controller.rb' + - 'app/controllers/api/v2/admin/accounts_controller.rb' + - 'app/controllers/api/v2/filters/keywords_controller.rb' + - 'app/controllers/api/v2/filters/statuses_controller.rb' + - 'app/controllers/api/v2/filters_controller.rb' + - 'app/controllers/api/v2/instances_controller.rb' + - 'app/controllers/api/v2/media_controller.rb' + - 'app/controllers/api/v2/search_controller.rb' + - 'app/controllers/api/v2/suggestions_controller.rb' + - 'app/controllers/api/web/base_controller.rb' + - 'app/controllers/api/web/embeds_controller.rb' + - 'app/controllers/api/web/push_subscriptions_controller.rb' + - 'app/controllers/api/web/settings_controller.rb' + - 'app/controllers/application_controller.rb' + - 'app/controllers/auth/challenges_controller.rb' + - 'app/controllers/auth/confirmations_controller.rb' + - 'app/controllers/auth/omniauth_callbacks_controller.rb' + - 'app/controllers/auth/passwords_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/auth/sessions_controller.rb' + - 'app/controllers/auth/setup_controller.rb' + - 'app/controllers/authorize_interactions_controller.rb' + - 'app/controllers/concerns/access_token_tracking_concern.rb' + - 'app/controllers/concerns/account_controller_concern.rb' + - 'app/controllers/concerns/account_owned_concern.rb' + - 'app/controllers/concerns/accountable_concern.rb' + - 'app/controllers/concerns/admin_export_controller_concern.rb' + - 'app/controllers/concerns/authorization.rb' + - 'app/controllers/concerns/cache_concern.rb' + - 'app/controllers/concerns/export_controller_concern.rb' + - 'app/controllers/concerns/localized.rb' + - 'app/controllers/concerns/rate_limit_headers.rb' + - 'app/controllers/concerns/registration_spam_concern.rb' + - 'app/controllers/concerns/session_tracking_concern.rb' + - 'app/controllers/concerns/signature_authentication.rb' + - 'app/controllers/concerns/signature_verification.rb' + - 'app/controllers/concerns/two_factor_authentication_concern.rb' + - 'app/controllers/concerns/user_tracking_concern.rb' + - 'app/controllers/concerns/web_app_controller_concern.rb' + - 'app/controllers/custom_css_controller.rb' + - 'app/controllers/disputes/appeals_controller.rb' + - 'app/controllers/disputes/base_controller.rb' + - 'app/controllers/disputes/strikes_controller.rb' + - 'app/controllers/emojis_controller.rb' + - 'app/controllers/filters/statuses_controller.rb' + - 'app/controllers/filters_controller.rb' + - 'app/controllers/follower_accounts_controller.rb' + - 'app/controllers/following_accounts_controller.rb' + - 'app/controllers/health_controller.rb' + - 'app/controllers/home_controller.rb' + - 'app/controllers/instance_actors_controller.rb' + - 'app/controllers/intents_controller.rb' + - 'app/controllers/invites_controller.rb' + - 'app/controllers/manifests_controller.rb' + - 'app/controllers/media_controller.rb' + - 'app/controllers/media_proxy_controller.rb' + - 'app/controllers/oauth/authorizations_controller.rb' + - 'app/controllers/oauth/authorized_applications_controller.rb' + - 'app/controllers/oauth/tokens_controller.rb' + - 'app/controllers/privacy_controller.rb' + - 'app/controllers/relationships_controller.rb' + - 'app/controllers/settings/aliases_controller.rb' + - 'app/controllers/settings/applications_controller.rb' + - 'app/controllers/settings/base_controller.rb' + - 'app/controllers/settings/deletes_controller.rb' + - 'app/controllers/settings/exports/blocked_accounts_controller.rb' + - 'app/controllers/settings/exports/blocked_domains_controller.rb' + - 'app/controllers/settings/exports/bookmarks_controller.rb' + - 'app/controllers/settings/exports/following_accounts_controller.rb' + - 'app/controllers/settings/exports/lists_controller.rb' + - 'app/controllers/settings/exports/muted_accounts_controller.rb' + - 'app/controllers/settings/exports_controller.rb' + - 'app/controllers/settings/featured_tags_controller.rb' + - 'app/controllers/settings/imports_controller.rb' + - 'app/controllers/settings/login_activities_controller.rb' + - 'app/controllers/settings/migration/redirects_controller.rb' + - 'app/controllers/settings/migrations_controller.rb' + - 'app/controllers/settings/pictures_controller.rb' + - 'app/controllers/settings/preferences/appearance_controller.rb' + - 'app/controllers/settings/preferences/notifications_controller.rb' + - 'app/controllers/settings/preferences/other_controller.rb' + - 'app/controllers/settings/preferences_controller.rb' + - 'app/controllers/settings/profiles_controller.rb' + - 'app/controllers/settings/sessions_controller.rb' + - 'app/controllers/settings/two_factor_authentication/confirmations_controller.rb' + - 'app/controllers/settings/two_factor_authentication/otp_authentication_controller.rb' + - 'app/controllers/settings/two_factor_authentication/recovery_codes_controller.rb' + - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' + - 'app/controllers/settings/two_factor_authentication_methods_controller.rb' + - 'app/controllers/shares_controller.rb' + - 'app/controllers/statuses_cleanup_controller.rb' + - 'app/controllers/statuses_controller.rb' + - 'app/controllers/tags_controller.rb' + - 'app/controllers/well_known/host_meta_controller.rb' + - 'app/controllers/well_known/nodeinfo_controller.rb' + - 'app/controllers/well_known/webfinger_controller.rb' + - 'app/helpers/accounts_helper.rb' + - 'app/helpers/admin/account_moderation_notes_helper.rb' + - 'app/helpers/admin/action_logs_helper.rb' + - 'app/helpers/admin/dashboard_helper.rb' + - 'app/helpers/admin/filter_helper.rb' + - 'app/helpers/admin/settings_helper.rb' + - 'app/helpers/admin/trends/statuses_helper.rb' + - 'app/helpers/application_helper.rb' + - 'app/helpers/branding_helper.rb' + - 'app/helpers/context_helper.rb' + - 'app/helpers/domain_control_helper.rb' + - 'app/helpers/email_helper.rb' + - 'app/helpers/flashes_helper.rb' + - 'app/helpers/formatting_helper.rb' + - 'app/helpers/home_helper.rb' + - 'app/helpers/instance_helper.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/helpers/languages_helper.rb' + - 'app/helpers/mascot_helper.rb' + - 'app/helpers/routing_helper.rb' + - 'app/helpers/settings_helper.rb' + - 'app/helpers/statuses_helper.rb' + - 'app/helpers/webfinger_helper.rb' + - 'app/lib/access_token_extension.rb' + - 'app/lib/account_reach_finder.rb' + - 'app/lib/activity_tracker.rb' + - 'app/lib/activitypub/activity.rb' + - 'app/lib/activitypub/activity/accept.rb' + - 'app/lib/activitypub/activity/add.rb' + - 'app/lib/activitypub/activity/announce.rb' + - 'app/lib/activitypub/activity/block.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/delete.rb' + - 'app/lib/activitypub/activity/flag.rb' + - 'app/lib/activitypub/activity/follow.rb' + - 'app/lib/activitypub/activity/like.rb' + - 'app/lib/activitypub/activity/move.rb' + - 'app/lib/activitypub/activity/reject.rb' + - 'app/lib/activitypub/activity/remove.rb' + - 'app/lib/activitypub/activity/undo.rb' + - 'app/lib/activitypub/activity/update.rb' + - 'app/lib/activitypub/adapter.rb' + - 'app/lib/activitypub/case_transform.rb' + - 'app/lib/activitypub/dereferencer.rb' + - 'app/lib/activitypub/forwarder.rb' + - 'app/lib/activitypub/linked_data_signature.rb' + - 'app/lib/activitypub/parser/custom_emoji_parser.rb' + - 'app/lib/activitypub/parser/media_attachment_parser.rb' + - 'app/lib/activitypub/parser/poll_parser.rb' + - 'app/lib/activitypub/parser/status_parser.rb' + - 'app/lib/activitypub/serializer.rb' + - 'app/lib/activitypub/tag_manager.rb' + - 'app/lib/admin/metrics/dimension.rb' + - 'app/lib/admin/metrics/dimension/base_dimension.rb' + - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb' + - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/servers_dimension.rb' + - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' + - 'app/lib/admin/metrics/dimension/sources_dimension.rb' + - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' + - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb' + - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb' + - 'app/lib/admin/metrics/measure.rb' + - 'app/lib/admin/metrics/measure/active_users_measure.rb' + - 'app/lib/admin/metrics/measure/base_measure.rb' + - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb' + - 'app/lib/admin/metrics/measure/instance_followers_measure.rb' + - 'app/lib/admin/metrics/measure/instance_follows_measure.rb' + - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb' + - 'app/lib/admin/metrics/measure/instance_reports_measure.rb' + - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb' + - 'app/lib/admin/metrics/measure/interactions_measure.rb' + - 'app/lib/admin/metrics/measure/new_users_measure.rb' + - 'app/lib/admin/metrics/measure/opened_reports_measure.rb' + - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb' + - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb' + - 'app/lib/admin/metrics/measure/tag_servers_measure.rb' + - 'app/lib/admin/metrics/measure/tag_uses_measure.rb' + - 'app/lib/admin/metrics/retention.rb' + - 'app/lib/admin/system_check.rb' + - 'app/lib/admin/system_check/base_check.rb' + - 'app/lib/admin/system_check/database_schema_check.rb' + - 'app/lib/admin/system_check/elasticsearch_check.rb' + - 'app/lib/admin/system_check/message.rb' + - 'app/lib/admin/system_check/rules_check.rb' + - 'app/lib/admin/system_check/sidekiq_process_check.rb' + - 'app/lib/application_extension.rb' + - 'app/lib/ascii_folding.rb' + - 'app/lib/cache_buster.rb' + - 'app/lib/connection_pool/shared_connection_pool.rb' + - 'app/lib/connection_pool/shared_timed_stack.rb' + - 'app/lib/delivery_failure_tracker.rb' + - 'app/lib/emoji_formatter.rb' + - 'app/lib/entity_cache.rb' + - 'app/lib/extractor.rb' + - 'app/lib/fast_geometry_parser.rb' + - 'app/lib/fast_ip_map.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/hash_object.rb' + - 'app/lib/hashtag_normalizer.rb' + - 'app/lib/html_aware_formatter.rb' + - 'app/lib/importer/accounts_index_importer.rb' + - 'app/lib/importer/base_importer.rb' + - 'app/lib/importer/statuses_index_importer.rb' + - 'app/lib/importer/tags_index_importer.rb' + - 'app/lib/inline_renderer.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/lib/nodeinfo/adapter.rb' + - 'app/lib/ostatus/tag_manager.rb' + - 'app/lib/permalink_redirector.rb' + - 'app/lib/plain_text_formatter.rb' + - 'app/lib/potential_friendship_tracker.rb' + - 'app/lib/rate_limiter.rb' + - 'app/lib/redis_configuration.rb' + - 'app/lib/request.rb' + - 'app/lib/request_pool.rb' + - 'app/lib/response_with_limit.rb' + - 'app/lib/rss/builder.rb' + - 'app/lib/rss/channel.rb' + - 'app/lib/rss/element.rb' + - 'app/lib/rss/item.rb' + - 'app/lib/rss/media_content.rb' + - 'app/lib/scope_parser.rb' + - 'app/lib/scope_transformer.rb' + - 'app/lib/search_query_parser.rb' + - 'app/lib/search_query_transformer.rb' + - 'app/lib/settings/extend.rb' + - 'app/lib/settings/scoped_settings.rb' + - 'app/lib/status_cache_hydrator.rb' + - 'app/lib/status_filter.rb' + - 'app/lib/status_finder.rb' + - 'app/lib/status_reach_finder.rb' + - 'app/lib/suspicious_sign_in_detector.rb' + - 'app/lib/tag_manager.rb' + - 'app/lib/text_formatter.rb' + - 'app/lib/themes.rb' + - 'app/lib/translation_service.rb' + - 'app/lib/translation_service/deepl.rb' + - 'app/lib/translation_service/libre_translate.rb' + - 'app/lib/translation_service/translation.rb' + - 'app/lib/user_settings_decorator.rb' + - 'app/lib/vacuum.rb' + - 'app/lib/vacuum/access_tokens_vacuum.rb' + - 'app/lib/vacuum/backups_vacuum.rb' + - 'app/lib/vacuum/feeds_vacuum.rb' + - 'app/lib/vacuum/media_attachments_vacuum.rb' + - 'app/lib/vacuum/preview_cards_vacuum.rb' + - 'app/lib/vacuum/statuses_vacuum.rb' + - 'app/lib/vacuum/system_keys_vacuum.rb' + - 'app/lib/validation_error_formatter.rb' + - 'app/lib/video_metadata_extractor.rb' + - 'app/lib/webfinger.rb' + - 'app/lib/webfinger_resource.rb' + - 'app/mailers/admin_mailer.rb' + - 'app/mailers/application_mailer.rb' + - 'app/mailers/notification_mailer.rb' + - 'app/mailers/user_mailer.rb' + - 'app/models/account.rb' + - 'app/models/account/field.rb' + - 'app/models/account_alias.rb' + - 'app/models/account_conversation.rb' + - 'app/models/account_domain_block.rb' + - 'app/models/account_filter.rb' + - 'app/models/account_migration.rb' + - 'app/models/account_moderation_note.rb' + - 'app/models/account_pin.rb' + - 'app/models/account_stat.rb' + - 'app/models/account_statuses_filter.rb' + - 'app/models/account_suggestions.rb' + - 'app/models/account_suggestions/global_source.rb' + - 'app/models/account_suggestions/past_interactions_source.rb' + - 'app/models/account_suggestions/setting_source.rb' + - 'app/models/account_suggestions/source.rb' + - 'app/models/account_suggestions/suggestion.rb' + - 'app/models/account_summary.rb' + - 'app/models/account_warning.rb' + - 'app/models/account_warning_preset.rb' + - 'app/models/admin.rb' + - 'app/models/admin/account_action.rb' + - 'app/models/admin/action_log.rb' + - 'app/models/admin/action_log_filter.rb' + - 'app/models/admin/appeal_filter.rb' + - 'app/models/admin/status_batch_action.rb' + - 'app/models/admin/status_filter.rb' + - 'app/models/announcement.rb' + - 'app/models/announcement_filter.rb' + - 'app/models/announcement_mute.rb' + - 'app/models/announcement_reaction.rb' + - 'app/models/application_record.rb' + - 'app/models/backup.rb' + - 'app/models/block.rb' + - 'app/models/bookmark.rb' + - 'app/models/canonical_email_block.rb' + - 'app/models/concerns/account_associations.rb' + - 'app/models/concerns/account_avatar.rb' + - 'app/models/concerns/account_counters.rb' + - 'app/models/concerns/account_finder_concern.rb' + - 'app/models/concerns/account_header.rb' + - 'app/models/concerns/account_interactions.rb' + - 'app/models/concerns/account_merging.rb' + - 'app/models/concerns/attachmentable.rb' + - 'app/models/concerns/cacheable.rb' + - 'app/models/concerns/domain_materializable.rb' + - 'app/models/concerns/domain_normalizable.rb' + - 'app/models/concerns/expireable.rb' + - 'app/models/concerns/follow_limitable.rb' + - 'app/models/concerns/ldap_authenticable.rb' + - 'app/models/concerns/lockable.rb' + - 'app/models/concerns/omniauthable.rb' + - 'app/models/concerns/paginable.rb' + - 'app/models/concerns/pam_authenticable.rb' + - 'app/models/concerns/rate_limitable.rb' + - 'app/models/concerns/redisable.rb' + - 'app/models/concerns/relationship_cacheable.rb' + - 'app/models/concerns/remotable.rb' + - 'app/models/concerns/status_snapshot_concern.rb' + - 'app/models/concerns/status_threading_concern.rb' + - 'app/models/content_retention_policy.rb' + - 'app/models/context.rb' + - 'app/models/conversation.rb' + - 'app/models/conversation_mute.rb' + - 'app/models/custom_emoji.rb' + - 'app/models/custom_emoji_category.rb' + - 'app/models/custom_emoji_filter.rb' + - 'app/models/custom_filter.rb' + - 'app/models/custom_filter_keyword.rb' + - 'app/models/custom_filter_status.rb' + - 'app/models/device.rb' + - 'app/models/domain_allow.rb' + - 'app/models/domain_block.rb' + - 'app/models/email_domain_block.rb' + - 'app/models/encrypted_message.rb' + - 'app/models/export.rb' + - 'app/models/extended_description.rb' + - 'app/models/favourite.rb' + - 'app/models/featured_tag.rb' + - 'app/models/feed.rb' + - 'app/models/follow.rb' + - 'app/models/follow_recommendation.rb' + - 'app/models/follow_recommendation_filter.rb' + - 'app/models/follow_recommendation_suppression.rb' + - 'app/models/follow_request.rb' + - 'app/models/form/account_batch.rb' + - 'app/models/form/admin_settings.rb' + - 'app/models/form/challenge.rb' + - 'app/models/form/custom_emoji_batch.rb' + - 'app/models/form/delete_confirmation.rb' + - 'app/models/form/domain_block_batch.rb' + - 'app/models/form/email_domain_block_batch.rb' + - 'app/models/form/ip_block_batch.rb' + - 'app/models/form/redirect.rb' + - 'app/models/form/status_filter_batch_action.rb' + - 'app/models/form/two_factor_confirmation.rb' + - 'app/models/home_feed.rb' + - 'app/models/identity.rb' + - 'app/models/import.rb' + - 'app/models/instance.rb' + - 'app/models/instance_filter.rb' + - 'app/models/invite.rb' + - 'app/models/invite_filter.rb' + - 'app/models/ip_block.rb' + - 'app/models/list.rb' + - 'app/models/list_account.rb' + - 'app/models/list_feed.rb' + - 'app/models/login_activity.rb' + - 'app/models/marker.rb' + - 'app/models/media_attachment.rb' + - 'app/models/mention.rb' + - 'app/models/message_franking.rb' + - 'app/models/mute.rb' + - 'app/models/notification.rb' + - 'app/models/one_time_key.rb' + - 'app/models/poll.rb' + - 'app/models/poll_vote.rb' + - 'app/models/preview_card.rb' + - 'app/models/preview_card_provider.rb' + - 'app/models/privacy_policy.rb' + - 'app/models/public_feed.rb' + - 'app/models/relationship_filter.rb' + - 'app/models/relay.rb' + - 'app/models/remote_follow.rb' + - 'app/models/report.rb' + - 'app/models/report_filter.rb' + - 'app/models/report_note.rb' + - 'app/models/scheduled_status.rb' + - 'app/models/search.rb' + - 'app/models/session_activation.rb' + - 'app/models/setting.rb' + - 'app/models/site_upload.rb' + - 'app/models/status.rb' + - 'app/models/status_edit.rb' + - 'app/models/status_pin.rb' + - 'app/models/status_stat.rb' + - 'app/models/status_trend.rb' + - 'app/models/tag.rb' + - 'app/models/tag_feed.rb' + - 'app/models/tag_follow.rb' + - 'app/models/tombstone.rb' + - 'app/models/trends.rb' + - 'app/models/trends/base.rb' + - 'app/models/trends/history.rb' + - 'app/models/trends/links.rb' + - 'app/models/trends/preview_card_batch.rb' + - 'app/models/trends/preview_card_filter.rb' + - 'app/models/trends/preview_card_provider_batch.rb' + - 'app/models/trends/preview_card_provider_filter.rb' + - 'app/models/trends/query.rb' + - 'app/models/trends/status_batch.rb' + - 'app/models/trends/status_filter.rb' + - 'app/models/trends/statuses.rb' + - 'app/models/trends/tag_batch.rb' + - 'app/models/trends/tag_filter.rb' + - 'app/models/trends/tags.rb' + - 'app/models/unavailable_domain.rb' + - 'app/models/user.rb' + - 'app/models/user_invite_request.rb' + - 'app/models/user_ip.rb' + - 'app/models/user_role.rb' + - 'app/models/web.rb' + - 'app/models/web/push_subscription.rb' + - 'app/models/web/setting.rb' + - 'app/models/webauthn_credential.rb' + - 'app/models/webhook.rb' + - 'app/policies/account_moderation_note_policy.rb' + - 'app/policies/account_policy.rb' + - 'app/policies/account_warning_policy.rb' + - 'app/policies/account_warning_preset_policy.rb' + - 'app/policies/admin/status_policy.rb' + - 'app/policies/announcement_policy.rb' + - 'app/policies/appeal_policy.rb' + - 'app/policies/application_policy.rb' + - 'app/policies/audit_log_policy.rb' + - 'app/policies/backup_policy.rb' + - 'app/policies/canonical_email_block_policy.rb' + - 'app/policies/custom_emoji_policy.rb' + - 'app/policies/dashboard_policy.rb' + - 'app/policies/delivery_policy.rb' + - 'app/policies/domain_allow_policy.rb' + - 'app/policies/domain_block_policy.rb' + - 'app/policies/email_domain_block_policy.rb' + - 'app/policies/follow_recommendation_policy.rb' + - 'app/policies/instance_policy.rb' + - 'app/policies/invite_policy.rb' + - 'app/policies/ip_block_policy.rb' + - 'app/policies/poll_policy.rb' + - 'app/policies/preview_card_policy.rb' + - 'app/policies/preview_card_provider_policy.rb' + - 'app/policies/relay_policy.rb' + - 'app/policies/report_note_policy.rb' + - 'app/policies/report_policy.rb' + - 'app/policies/rule_policy.rb' + - 'app/policies/settings_policy.rb' + - 'app/policies/status_policy.rb' + - 'app/policies/tag_policy.rb' + - 'app/policies/user_policy.rb' + - 'app/policies/user_role_policy.rb' + - 'app/policies/webhook_policy.rb' + - 'app/presenters/account_relationships_presenter.rb' + - 'app/presenters/activitypub/activity_presenter.rb' + - 'app/presenters/activitypub/collection_presenter.rb' + - 'app/presenters/familiar_followers_presenter.rb' + - 'app/presenters/filter_result_presenter.rb' + - 'app/presenters/initial_state_presenter.rb' + - 'app/presenters/instance_presenter.rb' + - 'app/presenters/status_relationships_presenter.rb' + - 'app/presenters/tag_relationships_presenter.rb' + - 'app/presenters/webhooks/event_presenter.rb' + - 'app/serializers/activitypub/accept_follow_serializer.rb' + - 'app/serializers/activitypub/activity_serializer.rb' + - 'app/serializers/activitypub/actor_serializer.rb' + - 'app/serializers/activitypub/add_serializer.rb' + - 'app/serializers/activitypub/block_serializer.rb' + - 'app/serializers/activitypub/collection_serializer.rb' + - 'app/serializers/activitypub/delete_actor_serializer.rb' + - 'app/serializers/activitypub/delete_serializer.rb' + - 'app/serializers/activitypub/device_serializer.rb' + - 'app/serializers/activitypub/emoji_serializer.rb' + - 'app/serializers/activitypub/encrypted_message_serializer.rb' + - 'app/serializers/activitypub/flag_serializer.rb' + - 'app/serializers/activitypub/follow_serializer.rb' + - 'app/serializers/activitypub/hashtag_serializer.rb' + - 'app/serializers/activitypub/image_serializer.rb' + - 'app/serializers/activitypub/like_serializer.rb' + - 'app/serializers/activitypub/move_serializer.rb' + - 'app/serializers/activitypub/note_serializer.rb' + - 'app/serializers/activitypub/one_time_key_serializer.rb' + - 'app/serializers/activitypub/outbox_serializer.rb' + - 'app/serializers/activitypub/public_key_serializer.rb' + - 'app/serializers/activitypub/reject_follow_serializer.rb' + - 'app/serializers/activitypub/remove_serializer.rb' + - 'app/serializers/activitypub/undo_announce_serializer.rb' + - 'app/serializers/activitypub/undo_block_serializer.rb' + - 'app/serializers/activitypub/undo_follow_serializer.rb' + - 'app/serializers/activitypub/undo_like_serializer.rb' + - 'app/serializers/activitypub/update_poll_serializer.rb' + - 'app/serializers/activitypub/update_serializer.rb' + - 'app/serializers/activitypub/vote_serializer.rb' + - 'app/serializers/initial_state_serializer.rb' + - 'app/serializers/manifest_serializer.rb' + - 'app/serializers/nodeinfo/discovery_serializer.rb' + - 'app/serializers/nodeinfo/serializer.rb' + - 'app/serializers/oembed_serializer.rb' + - 'app/serializers/rest/account_serializer.rb' + - 'app/serializers/rest/admin/account_serializer.rb' + - 'app/serializers/rest/admin/canonical_email_block_serializer.rb' + - 'app/serializers/rest/admin/cohort_serializer.rb' + - 'app/serializers/rest/admin/dimension_serializer.rb' + - 'app/serializers/rest/admin/domain_allow_serializer.rb' + - 'app/serializers/rest/admin/domain_block_serializer.rb' + - 'app/serializers/rest/admin/email_domain_block_serializer.rb' + - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb' + - 'app/serializers/rest/admin/ip_block_serializer.rb' + - 'app/serializers/rest/admin/ip_serializer.rb' + - 'app/serializers/rest/admin/measure_serializer.rb' + - 'app/serializers/rest/admin/report_serializer.rb' + - 'app/serializers/rest/admin/tag_serializer.rb' + - 'app/serializers/rest/admin/webhook_event_serializer.rb' + - 'app/serializers/rest/announcement_serializer.rb' + - 'app/serializers/rest/application_serializer.rb' + - 'app/serializers/rest/context_serializer.rb' + - 'app/serializers/rest/conversation_serializer.rb' + - 'app/serializers/rest/credential_account_serializer.rb' + - 'app/serializers/rest/custom_emoji_serializer.rb' + - 'app/serializers/rest/domain_block_serializer.rb' + - 'app/serializers/rest/encrypted_message_serializer.rb' + - 'app/serializers/rest/extended_description_serializer.rb' + - 'app/serializers/rest/familiar_followers_serializer.rb' + - 'app/serializers/rest/featured_tag_serializer.rb' + - 'app/serializers/rest/filter_keyword_serializer.rb' + - 'app/serializers/rest/filter_result_serializer.rb' + - 'app/serializers/rest/filter_serializer.rb' + - 'app/serializers/rest/filter_status_serializer.rb' + - 'app/serializers/rest/instance_serializer.rb' + - 'app/serializers/rest/keys/claim_result_serializer.rb' + - 'app/serializers/rest/keys/device_serializer.rb' + - 'app/serializers/rest/keys/query_result_serializer.rb' + - 'app/serializers/rest/list_serializer.rb' + - 'app/serializers/rest/marker_serializer.rb' + - 'app/serializers/rest/media_attachment_serializer.rb' + - 'app/serializers/rest/muted_account_serializer.rb' + - 'app/serializers/rest/notification_serializer.rb' + - 'app/serializers/rest/poll_serializer.rb' + - 'app/serializers/rest/preferences_serializer.rb' + - 'app/serializers/rest/preview_card_serializer.rb' + - 'app/serializers/rest/privacy_policy_serializer.rb' + - 'app/serializers/rest/reaction_serializer.rb' + - 'app/serializers/rest/relationship_serializer.rb' + - 'app/serializers/rest/report_serializer.rb' + - 'app/serializers/rest/role_serializer.rb' + - 'app/serializers/rest/rule_serializer.rb' + - 'app/serializers/rest/scheduled_status_serializer.rb' + - 'app/serializers/rest/search_serializer.rb' + - 'app/serializers/rest/status_edit_serializer.rb' + - 'app/serializers/rest/status_serializer.rb' + - 'app/serializers/rest/status_source_serializer.rb' + - 'app/serializers/rest/suggestion_serializer.rb' + - 'app/serializers/rest/tag_serializer.rb' + - 'app/serializers/rest/translation_serializer.rb' + - 'app/serializers/rest/trends/link_serializer.rb' + - 'app/serializers/rest/v1/filter_serializer.rb' + - 'app/serializers/rest/v1/instance_serializer.rb' + - 'app/serializers/rest/web_push_subscription_serializer.rb' + - 'app/serializers/web/notification_serializer.rb' + - 'app/serializers/webfinger_serializer.rb' + - 'app/services/account_search_service.rb' + - 'app/services/account_statuses_cleanup_service.rb' + - 'app/services/activitypub/fetch_featured_collection_service.rb' + - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' + - 'app/services/activitypub/fetch_remote_account_service.rb' + - 'app/services/activitypub/fetch_remote_actor_service.rb' + - 'app/services/activitypub/fetch_remote_key_service.rb' + - 'app/services/activitypub/fetch_remote_poll_service.rb' + - 'app/services/activitypub/fetch_remote_status_service.rb' + - 'app/services/activitypub/fetch_replies_service.rb' + - 'app/services/activitypub/prepare_followers_synchronization_service.rb' + - 'app/services/activitypub/process_account_service.rb' + - 'app/services/activitypub/process_collection_service.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/activitypub/synchronize_followers_service.rb' + - 'app/services/after_block_domain_from_account_service.rb' + - 'app/services/after_block_service.rb' + - 'app/services/after_unallow_domain_service.rb' + - 'app/services/app_sign_up_service.rb' + - 'app/services/appeal_service.rb' + - 'app/services/approve_appeal_service.rb' + - 'app/services/authorize_follow_service.rb' + - 'app/services/backup_service.rb' + - 'app/services/base_service.rb' + - 'app/services/batched_remove_status_service.rb' + - 'app/services/block_domain_service.rb' + - 'app/services/block_service.rb' + - 'app/services/bootstrap_timeline_service.rb' + - 'app/services/clear_domain_media_service.rb' + - 'app/services/concerns/payloadable.rb' + - 'app/services/create_featured_tag_service.rb' + - 'app/services/delete_account_service.rb' + - 'app/services/deliver_to_device_service.rb' + - 'app/services/fan_out_on_write_service.rb' + - 'app/services/favourite_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/fetch_oembed_service.rb' + - 'app/services/fetch_remote_status_service.rb' + - 'app/services/fetch_resource_service.rb' + - 'app/services/follow_migration_service.rb' + - 'app/services/follow_service.rb' + - 'app/services/import_service.rb' + - 'app/services/keys/claim_service.rb' + - 'app/services/keys/query_service.rb' + - 'app/services/move_service.rb' + - 'app/services/mute_service.rb' + - 'app/services/notify_service.rb' + - 'app/services/post_status_service.rb' + - 'app/services/precompute_feed_service.rb' + - 'app/services/process_hashtags_service.rb' + - 'app/services/process_mentions_service.rb' + - 'app/services/purge_domain_service.rb' + - 'app/services/reblog_service.rb' + - 'app/services/reject_follow_service.rb' + - 'app/services/remove_domains_from_followers_service.rb' + - 'app/services/remove_featured_tag_service.rb' + - 'app/services/remove_from_followers_service.rb' + - 'app/services/remove_status_service.rb' + - 'app/services/report_service.rb' + - 'app/services/resolve_account_service.rb' + - 'app/services/resolve_url_service.rb' + - 'app/services/search_service.rb' + - 'app/services/suspend_account_service.rb' + - 'app/services/tag_search_service.rb' + - 'app/services/translate_status_service.rb' + - 'app/services/unallow_domain_service.rb' + - 'app/services/unblock_domain_service.rb' + - 'app/services/unblock_service.rb' + - 'app/services/unfavourite_service.rb' + - 'app/services/unfollow_service.rb' + - 'app/services/unmute_service.rb' + - 'app/services/unsuspend_account_service.rb' + - 'app/services/update_account_service.rb' + - 'app/services/update_status_service.rb' + - 'app/services/verify_link_service.rb' + - 'app/services/vote_service.rb' + - 'app/services/webhook_service.rb' + - 'app/validators/blacklisted_email_validator.rb' + - 'app/validators/disallowed_hashtags_validator.rb' + - 'app/validators/domain_validator.rb' + - 'app/validators/ed25519_key_validator.rb' + - 'app/validators/ed25519_signature_validator.rb' + - 'app/validators/email_mx_validator.rb' + - 'app/validators/existing_username_validator.rb' + - 'app/validators/follow_limit_validator.rb' + - 'app/validators/import_validator.rb' + - 'app/validators/language_validator.rb' + - 'app/validators/note_length_validator.rb' + - 'app/validators/poll_validator.rb' + - 'app/validators/reaction_validator.rb' + - 'app/validators/registration_form_time_validator.rb' + - 'app/validators/status_length_validator.rb' + - 'app/validators/status_pin_validator.rb' + - 'app/validators/unique_username_validator.rb' + - 'app/validators/unreserved_username_validator.rb' + - 'app/validators/url_validator.rb' + - 'app/validators/vote_validator.rb' + - 'app/workers/account_deletion_worker.rb' + - 'app/workers/account_merging_worker.rb' + - 'app/workers/activitypub/account_raw_distribution_worker.rb' + - 'app/workers/activitypub/delivery_worker.rb' + - 'app/workers/activitypub/distribute_poll_update_worker.rb' + - 'app/workers/activitypub/distribution_worker.rb' + - 'app/workers/activitypub/fetch_replies_worker.rb' + - 'app/workers/activitypub/followers_synchronization_worker.rb' + - 'app/workers/activitypub/low_priority_delivery_worker.rb' + - 'app/workers/activitypub/migrated_follow_delivery_worker.rb' + - 'app/workers/activitypub/move_distribution_worker.rb' + - 'app/workers/activitypub/post_upgrade_worker.rb' + - 'app/workers/activitypub/processing_worker.rb' + - 'app/workers/activitypub/raw_distribution_worker.rb' + - 'app/workers/activitypub/status_update_distribution_worker.rb' + - 'app/workers/activitypub/synchronize_featured_collection_worker.rb' + - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb' + - 'app/workers/activitypub/update_distribution_worker.rb' + - 'app/workers/admin/account_deletion_worker.rb' + - 'app/workers/admin/domain_purge_worker.rb' + - 'app/workers/admin/suspension_worker.rb' + - 'app/workers/admin/unsuspension_worker.rb' + - 'app/workers/after_account_domain_block_worker.rb' + - 'app/workers/after_unallow_domain_worker.rb' + - 'app/workers/authorize_follow_worker.rb' + - 'app/workers/backup_worker.rb' + - 'app/workers/block_worker.rb' + - 'app/workers/bootstrap_timeline_worker.rb' + - 'app/workers/cache_buster_worker.rb' + - 'app/workers/concerns/exponential_backoff.rb' + - 'app/workers/delete_mute_worker.rb' + - 'app/workers/distribution_worker.rb' + - 'app/workers/domain_block_worker.rb' + - 'app/workers/domain_clear_media_worker.rb' + - 'app/workers/feed_insert_worker.rb' + - 'app/workers/fetch_reply_worker.rb' + - 'app/workers/import/relationship_worker.rb' + - 'app/workers/import_worker.rb' + - 'app/workers/link_crawl_worker.rb' + - 'app/workers/local_notification_worker.rb' + - 'app/workers/merge_worker.rb' + - 'app/workers/move_worker.rb' + - 'app/workers/mute_worker.rb' + - 'app/workers/poll_expiration_notify_worker.rb' + - 'app/workers/post_process_media_worker.rb' + - 'app/workers/publish_announcement_reaction_worker.rb' + - 'app/workers/publish_scheduled_announcement_worker.rb' + - 'app/workers/publish_scheduled_status_worker.rb' + - 'app/workers/push_conversation_worker.rb' + - 'app/workers/push_encrypted_message_worker.rb' + - 'app/workers/push_update_worker.rb' + - 'app/workers/redownload_avatar_worker.rb' + - 'app/workers/redownload_header_worker.rb' + - 'app/workers/redownload_media_worker.rb' + - 'app/workers/refollow_worker.rb' + - 'app/workers/regeneration_worker.rb' + - 'app/workers/remote_account_refresh_worker.rb' + - 'app/workers/removal_worker.rb' + - 'app/workers/remove_featured_tag_worker.rb' + - 'app/workers/resolve_account_worker.rb' + - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' + - 'app/workers/scheduler/follow_recommendations_scheduler.rb' + - 'app/workers/scheduler/indexing_scheduler.rb' + - 'app/workers/scheduler/instance_refresh_scheduler.rb' + - 'app/workers/scheduler/ip_cleanup_scheduler.rb' + - 'app/workers/scheduler/pghero_scheduler.rb' + - 'app/workers/scheduler/scheduled_statuses_scheduler.rb' + - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb' + - 'app/workers/scheduler/trends/refresh_scheduler.rb' + - 'app/workers/scheduler/trends/review_notifications_scheduler.rb' + - 'app/workers/scheduler/user_cleanup_scheduler.rb' + - 'app/workers/scheduler/vacuum_scheduler.rb' + - 'app/workers/thread_resolve_worker.rb' + - 'app/workers/trigger_webhook_worker.rb' + - 'app/workers/unfavourite_worker.rb' + - 'app/workers/unfollow_follow_worker.rb' + - 'app/workers/unmerge_worker.rb' + - 'app/workers/unpublish_announcement_worker.rb' + - 'app/workers/verify_account_links_worker.rb' + - 'app/workers/web/push_notification_worker.rb' + - 'app/workers/webhooks/delivery_worker.rb' + - 'db/migrate/20160220174730_create_accounts.rb' + - 'db/migrate/20160220211917_create_statuses.rb' + - 'db/migrate/20160221003140_create_users.rb' + - 'db/migrate/20160221003621_create_follows.rb' + - 'db/migrate/20160222122600_create_stream_entries.rb' + - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb' + - 'db/migrate/20160223162837_add_metadata_to_statuses.rb' + - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb' + - 'db/migrate/20160223165723_add_url_to_statuses.rb' + - 'db/migrate/20160223165855_add_url_to_accounts.rb' + - 'db/migrate/20160223171800_create_favourites.rb' + - 'db/migrate/20160224223247_create_mentions.rb' + - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb' + - 'db/migrate/20160305115639_add_devise_to_users.rb' + - 'db/migrate/20160306172223_create_doorkeeper_tables.rb' + - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb' + - 'db/migrate/20160314164231_add_owner_to_application.rb' + - 'db/migrate/20160316103650_add_missing_indices.rb' + - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb' + - 'db/migrate/20160325130944_add_admin_to_users.rb' + - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb' + - 'db/migrate/20160905150353_create_media_attachments.rb' + - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb' + - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb' + - 'db/migrate/20160926213048_remove_owner_from_application.rb' + - 'db/migrate/20161003142332_add_confirmable_to_users.rb' + - 'db/migrate/20161003145426_create_blocks.rb' + - 'db/migrate/20161006213403_rails_settings_migration.rb' + - 'db/migrate/20161009120834_create_domain_blocks.rb' + - 'db/migrate/20161027172456_add_silenced_to_accounts.rb' + - 'db/migrate/20161104173623_create_tags.rb' + - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb' + - 'db/migrate/20161116162355_add_locale_to_users.rb' + - 'db/migrate/20161119211120_create_notifications.rb' + - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' + - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb' + - 'db/migrate/20161128103007_create_subscriptions.rb' + - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb' + - 'db/migrate/20161130185319_add_visibility_to_statuses.rb' + - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb' + - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb' + - 'db/migrate/20161205214545_add_suspended_to_accounts.rb' + - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb' + - 'db/migrate/20161222201034_add_locked_to_accounts.rb' + - 'db/migrate/20161222204147_create_follow_requests.rb' + - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb' + - 'db/migrate/20170109120109_create_web_settings.rb' + - 'db/migrate/20170112154826_migrate_settings.rb' + - 'db/migrate/20170114194937_add_application_to_statuses.rb' + - 'db/migrate/20170114203041_add_website_to_oauth_application.rb' + - 'db/migrate/20170119214911_create_preview_cards.rb' + - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb' + - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb' + - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb' + - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb' + - 'db/migrate/20170205175257_remove_devices.rb' + - 'db/migrate/20170209184350_add_reply_to_statuses.rb' + - 'db/migrate/20170214110202_create_reports.rb' + - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb' + - 'db/migrate/20170301222600_create_mutes.rb' + - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb' + - 'db/migrate/20170304202101_add_type_to_media_attachments.rb' + - 'db/migrate/20170317193015_add_search_index_to_accounts.rb' + - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb' + - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb' + - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb' + - 'db/migrate/20170322162804_add_search_index_to_tags.rb' + - 'db/migrate/20170330021336_add_counter_caches.rb' + - 'db/migrate/20170330163835_create_imports.rb' + - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb' + - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb' + - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb' + - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb' + - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb' + - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb' + - 'db/migrate/20170414132105_add_language_to_statuses.rb' + - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb' + - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb' + - 'db/migrate/20170424003227_create_account_domain_blocks.rb' + - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb' + - 'db/migrate/20170425131920_add_media_attachment_meta.rb' + - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb' + - 'db/migrate/20170427011934_re_add_owner_to_application.rb' + - 'db/migrate/20170506235850_create_conversations.rb' + - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb' + - 'db/migrate/20170507141759_optimize_index_subscriptions.rb' + - 'db/migrate/20170508230434_create_conversation_mutes.rb' + - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb' + - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb' + - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb' + - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb' + - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb' + - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb' + - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb' + - 'db/migrate/20170623152212_create_session_activations.rb' + - 'db/migrate/20170624134742_add_description_to_session_activations.rb' + - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb' + - 'db/migrate/20170711225116_fix_null_booleans.rb' + - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb' + - 'db/migrate/20170713175513_create_web_push_subscriptions.rb' + - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb' + - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb' + - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' + - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb' + - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb' + - 'db/migrate/20170823162448_create_status_pins.rb' + - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb' + - 'db/migrate/20170829215220_remove_status_pins_account_index.rb' + - 'db/migrate/20170901141119_truncate_preview_cards.rb' + - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb' + - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb' + - 'db/migrate/20170905165803_add_local_to_statuses.rb' + - 'db/migrate/20170913000752_create_site_uploads.rb' + - 'db/migrate/20170917153509_create_custom_emojis.rb' + - 'db/migrate/20170918125918_ids_to_bigints.rb' + - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb' + - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb' + - 'db/migrate/20170924022025_ids_to_bigints2.rb' + - 'db/migrate/20170927215609_add_description_to_media_attachments.rb' + - 'db/migrate/20170928082043_create_email_domain_blocks.rb' + - 'db/migrate/20171005102658_create_account_moderation_notes.rb' + - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' + - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb' + - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb' + - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb' + - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb' + - 'db/migrate/20171028221157_add_reblogs_to_follows.rb' + - 'db/migrate/20171107143332_add_memorial_to_accounts.rb' + - 'db/migrate/20171107143624_add_disabled_to_users.rb' + - 'db/migrate/20171109012327_add_moderator_to_accounts.rb' + - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb' + - 'db/migrate/20171114231651_create_lists.rb' + - 'db/migrate/20171116161857_create_list_accounts.rb' + - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb' + - 'db/migrate/20171119172437_create_admin_action_logs.rb' + - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb' + - 'db/migrate/20171125024930_create_invites.rb' + - 'db/migrate/20171125031751_add_invite_id_to_users.rb' + - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb' + - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb' + - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' + - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb' + - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb' + - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' + - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' + - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180109143959_add_remember_token_to_users.rb' + - 'db/migrate/20180204034416_create_identities.rb' + - 'db/migrate/20180206000000_change_user_id_nonnullable.rb' + - 'db/migrate/20180211015820_create_backups.rb' + - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb' + - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb' + - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb' + - 'db/migrate/20180402040909_create_report_notes.rb' + - 'db/migrate/20180410204633_add_fields_to_accounts.rb' + - 'db/migrate/20180416210259_add_uri_to_relationships.rb' + - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb' + - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb' + - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb' + - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' + - 'db/migrate/20180608213548_reject_following_blocked_users.rb' + - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb' + - 'db/migrate/20180615122121_add_autofollow_to_invites.rb' + - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb' + - 'db/migrate/20180617162849_remove_unused_indexes.rb' + - 'db/migrate/20180628181026_create_custom_filters.rb' + - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb' + - 'db/migrate/20180711152640_create_relays.rb' + - 'db/migrate/20180808175627_create_account_pins.rb' + - 'db/migrate/20180812123222_change_relays_enabled.rb' + - 'db/migrate/20180812162710_create_status_stats.rb' + - 'db/migrate/20180812173710_copy_status_stats.rb' + - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb' + - 'db/migrate/20180820232245_add_foreign_key_indices.rb' + - 'db/migrate/20180831171112_create_bookmarks.rb' + - 'db/migrate/20180929222014_create_account_conversations.rb' + - 'db/migrate/20181007025445_create_pghero_space_stats.rb' + - 'db/migrate/20181010141500_add_silent_to_mentions.rb' + - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb' + - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb' + - 'db/migrate/20181024224956_migrate_account_conversations.rb' + - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb' + - 'db/migrate/20181116165755_create_account_stats.rb' + - 'db/migrate/20181116173541_copy_account_stats.rb' + - 'db/migrate/20181127130500_identity_id_to_bigint.rb' + - 'db/migrate/20181127165847_add_show_replies_to_lists.rb' + - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb' + - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb' + - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb' + - 'db/migrate/20181204215309_create_account_tag_stats.rb' + - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb' + - 'db/migrate/20181213184704_create_account_warnings.rb' + - 'db/migrate/20181213185533_create_account_warning_presets.rb' + - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb' + - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb' + - 'db/migrate/20190103124649_create_scheduled_statuses.rb' + - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb' + - 'db/migrate/20190117114553_create_tombstones.rb' + - 'db/migrate/20190201012802_add_overwrite_to_imports.rb' + - 'db/migrate/20190203180359_create_featured_tags.rb' + - 'db/migrate/20190225031541_create_polls.rb' + - 'db/migrate/20190225031625_create_poll_votes.rb' + - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb' + - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb' + - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' + - 'db/migrate/20190307234537_add_approved_to_users.rb' + - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb' + - 'db/migrate/20190316190352_create_account_identity_proofs.rb' + - 'db/migrate/20190317135723_add_uri_to_reports.rb' + - 'db/migrate/20190403141604_add_comment_to_invites.rb' + - 'db/migrate/20190409054914_create_user_invite_requests.rb' + - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb' + - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' + - 'db/migrate/20190627222225_create_custom_emoji_categories.rb' + - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb' + - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb' + - 'db/migrate/20190705002136_create_domain_allows.rb' + - 'db/migrate/20190715164535_add_instance_actor.rb' + - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb' + - 'db/migrate/20190729185330_add_score_to_tags.rb' + - 'db/migrate/20190805123746_add_capabilities_to_tags.rb' + - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' + - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb' + - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb' + - 'db/migrate/20190820003045_update_statuses_index.rb' + - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' + - 'db/migrate/20190901035623_add_max_score_to_tags.rb' + - 'db/migrate/20190904222339_create_markers.rb' + - 'db/migrate/20190914202517_create_account_migrations.rb' + - 'db/migrate/20190915194355_create_account_aliases.rb' + - 'db/migrate/20190917213523_add_remember_token_index.rb' + - 'db/migrate/20190927232842_add_voters_count_to_polls.rb' + - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb' + - 'db/migrate/20191007013357_update_pt_locales.rb' + - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb' + - 'db/migrate/20191212003415_increase_backup_size.rb' + - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb' + - 'db/migrate/20191218153258_create_announcements.rb' + - 'db/migrate/20200113125135_create_announcement_mutes.rb' + - 'db/migrate/20200114113335_create_announcement_reactions.rb' + - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' + - 'db/migrate/20200126203551_add_published_at_to_announcements.rb' + - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb' + - 'db/migrate/20200309150742_add_forwarded_to_reports.rb' + - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb' + - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb' + - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb' + - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb' + - 'db/migrate/20200407201300_create_unavailable_domains.rb' + - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb' + - 'db/migrate/20200417125749_add_storage_schema_version.rb' + - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb' + - 'db/migrate/20200510110808_reset_web_app_secret.rb' + - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' + - 'db/migrate/20200516180352_create_devices.rb' + - 'db/migrate/20200516183822_create_one_time_keys.rb' + - 'db/migrate/20200518083523_create_encrypted_messages.rb' + - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb' + - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb' + - 'db/migrate/20200601222558_create_system_keys.rb' + - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb' + - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb' + - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb' + - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' + - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb' + - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb' + - 'db/migrate/20200628133322_create_account_notes.rb' + - 'db/migrate/20200630190240_create_webauthn_credentials.rb' + - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb' + - 'db/migrate/20200908193330_create_account_deletion_requests.rb' + - 'db/migrate/20200917192924_add_notify_to_follows.rb' + - 'db/migrate/20200917193034_add_type_to_notifications.rb' + - 'db/migrate/20200917222316_add_index_notifications_on_type.rb' + - 'db/migrate/20201008202037_create_ip_blocks.rb' + - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb' + - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb' + - 'db/migrate/20201206004238_create_instances.rb' + - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb' + - 'db/migrate/20210221045109_create_rules.rb' + - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb' + - 'db/migrate/20210322164601_create_account_summaries.rb' + - 'db/migrate/20210323114347_create_follow_recommendations.rb' + - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb' + - 'db/migrate/20210416200740_create_canonical_email_blocks.rb' + - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' + - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb' + - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb' + - 'db/migrate/20210609202149_create_login_activities.rb' + - 'db/migrate/20210616214526_create_user_ips.rb' + - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb' + - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb' + - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb' + - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb' + - 'db/migrate/20210908220918_create_status_edits.rb' + - 'db/migrate/20211031031021_create_preview_card_providers.rb' + - 'db/migrate/20211112011713_add_language_to_preview_cards.rb' + - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb' + - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb' + - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb' + - 'db/migrate/20211231080958_add_category_to_reports.rb' + - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb' + - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb' + - 'db/migrate/20220115125341_fix_account_warning_actions.rb' + - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb' + - 'db/migrate/20220124141035_create_appeals.rb' + - 'db/migrate/20220202200743_add_trendable_to_accounts.rb' + - 'db/migrate/20220202200926_add_trendable_to_statuses.rb' + - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb' + - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb' + - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb' + - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb' + - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' + - 'db/migrate/20220304195405_migrate_hide_network_preference.rb' + - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb' + - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb' + - 'db/migrate/20220316233212_update_kurdish_locales.rb' + - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb' + - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb' + - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb' + - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb' + - 'db/migrate/20220606044941_create_webhooks.rb' + - 'db/migrate/20220611210335_create_user_roles.rb' + - 'db/migrate/20220611212541_add_role_id_to_users.rb' + - 'db/migrate/20220613110628_create_custom_filter_keywords.rb' + - 'db/migrate/20220613110711_migrate_custom_filters.rb' + - 'db/migrate/20220613110834_add_action_to_custom_filters.rb' + - 'db/migrate/20220710102457_add_display_name_to_tags.rb' + - 'db/migrate/20220714171049_create_tag_follows.rb' + - 'db/migrate/20220808101323_create_custom_filter_statuses.rb' + - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' + - 'db/migrate/20220824233535_create_status_trends.rb' + - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' + - 'db/migrate/20220829192633_add_languages_to_follows.rb' + - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb' + - 'db/migrate/20221006061337_create_preview_card_trends.rb' + - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb' + - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb' + - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb' + - 'db/migrate/20221104133904_add_name_to_featured_tags.rb' + - 'db/post_migrate/20180813113448_copy_status_stats_cleanup.rb' + - 'db/post_migrate/20181116184611_copy_account_stats_cleanup.rb' + - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' + - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb' + - 'db/post_migrate/20190706233204_drop_stream_entries.rb' + - 'db/post_migrate/20190715031050_drop_subscriptions.rb' + - 'db/post_migrate/20190901040524_remove_score_from_tags.rb' + - 'db/post_migrate/20190927124642_remove_invalid_web_push_subscription.rb' + - 'db/post_migrate/20200917193528_migrate_notifications_type.rb' + - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb' + - 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb' + - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb' + - 'db/post_migrate/20210502233513_drop_account_tag_stats.rb' + - 'db/post_migrate/20210507001928_remove_hub_url_from_accounts.rb' + - 'db/post_migrate/20210526193025_remove_lock_version_from_account_stats.rb' + - 'db/post_migrate/20210616214135_remove_current_sign_in_ip_from_users.rb' + - 'db/post_migrate/20210808071221_clear_orphaned_account_notes.rb' + - 'db/post_migrate/20211126000907_drop_account_identity_proofs.rb' + - 'db/post_migrate/20220109213908_remove_action_taken_from_reports.rb' + - 'db/post_migrate/20220118183010_remove_index_users_on_remember_token.rb' + - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb' + - 'db/post_migrate/20220202201015_remove_trust_level_from_accounts.rb' + - 'db/post_migrate/20220303203437_remove_media_attachments_changed_from_status_edits.rb' + - 'db/post_migrate/20220307083603_optimize_null_index_conversations_uri.rb' + - 'db/post_migrate/20220310060545_optimize_null_index_statuses_in_reply_to_account_id.rb' + - 'db/post_migrate/20220310060556_optimize_null_index_statuses_in_reply_to_id.rb' + - 'db/post_migrate/20220310060614_optimize_null_index_media_attachments_scheduled_status_id.rb' + - 'db/post_migrate/20220310060626_optimize_null_index_media_attachments_shortcode.rb' + - 'db/post_migrate/20220310060641_optimize_null_index_users_reset_password_token.rb' + - 'db/post_migrate/20220310060653_optimize_null_index_users_created_by_application_id.rb' + - 'db/post_migrate/20220310060706_optimize_null_index_statuses_uri.rb' + - 'db/post_migrate/20220310060722_optimize_null_index_accounts_moved_to_account_id.rb' + - 'db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb' + - 'db/post_migrate/20220310060750_optimize_null_index_accounts_url.rb' + - 'db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb' + - 'db/post_migrate/20220310060833_optimize_null_index_announcement_reactions_custom_emoji_id.rb' + - 'db/post_migrate/20220310060854_optimize_null_index_appeals_approved_by_account_id.rb' + - 'db/post_migrate/20220310060913_optimize_null_index_account_migrations_target_account_id.rb' + - 'db/post_migrate/20220310060926_optimize_null_index_appeals_rejected_by_account_id.rb' + - 'db/post_migrate/20220310060939_optimize_null_index_list_accounts_follow_id.rb' + - 'db/post_migrate/20220310060959_optimize_null_index_web_push_subscriptions_access_token_id.rb' + - 'db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb' + - 'db/post_migrate/20220429101850_clear_email_domain_blocks.rb' + - 'db/post_migrate/20220527114923_remove_filtered_languages_from_users.rb' + - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb' + - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb' + - 'db/post_migrate/20220617202502_migrate_roles.rb' + - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb' + - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb' + - 'db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + - 'lib/active_record/batches.rb' + - 'lib/active_record/database_tasks_extensions.rb' + - 'lib/chewy/strategy/mastodon.rb' + - 'lib/cli.rb' + - 'lib/devise/two_factor_ldap_authenticatable.rb' + - 'lib/devise/two_factor_pam_authenticatable.rb' + - 'lib/exceptions.rb' + - 'lib/generators/post_deployment_migration_generator.rb' + - 'lib/mastodon/accounts_cli.rb' + - 'lib/mastodon/cache_cli.rb' + - 'lib/mastodon/canonical_email_blocks_cli.rb' + - 'lib/mastodon/cli_helper.rb' + - 'lib/mastodon/domains_cli.rb' + - 'lib/mastodon/email_domain_blocks_cli.rb' + - 'lib/mastodon/emoji_cli.rb' + - 'lib/mastodon/feeds_cli.rb' + - 'lib/mastodon/ip_blocks_cli.rb' + - 'lib/mastodon/maintenance_cli.rb' + - 'lib/mastodon/media_cli.rb' + - 'lib/mastodon/premailer_webpack_strategy.rb' + - 'lib/mastodon/preview_cards_cli.rb' + - 'lib/mastodon/rack_middleware.rb' + - 'lib/mastodon/search_cli.rb' + - 'lib/mastodon/settings_cli.rb' + - 'lib/mastodon/sidekiq_middleware.rb' + - 'lib/mastodon/snowflake.rb' + - 'lib/mastodon/statuses_cli.rb' + - 'lib/mastodon/upgrade_cli.rb' + - 'lib/mastodon/version.rb' + - 'lib/paperclip/attachment_extensions.rb' + - 'lib/paperclip/blurhash_transcoder.rb' + - 'lib/paperclip/color_extractor.rb' + - 'lib/paperclip/gif_transcoder.rb' + - 'lib/paperclip/image_extractor.rb' + - 'lib/paperclip/lazy_thumbnail.rb' + - 'lib/paperclip/response_with_limit_adapter.rb' + - 'lib/paperclip/type_corrector.rb' + - 'lib/paperclip/url_generator_extensions.rb' + - 'lib/public_file_server_middleware.rb' + - 'lib/rails/engine_extensions.rb' + - 'lib/redis/namespace_extensions.rb' + - 'lib/sanitize_ext/sanitize_config.rb' + - 'lib/simple_navigation/item_extensions.rb' + - 'lib/terrapin/multi_pipe_extensions.rb' + - 'lib/webpacker/helper_extensions.rb' + - 'lib/webpacker/manifest_extensions.rb' -# Offense count: 10 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowedVars. Style/FetchEnvVar: @@ -1912,7 +3540,6 @@ Style/FetchEnvVar: - 'lib/tasks/repo.rake' - 'spec/features/profile_spec.rb' -# Offense count: 15 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns. # SupportedStyles: annotated, template, unannotated @@ -1922,14 +3549,360 @@ Style/FormatStringToken: - 'lib/mastodon/maintenance_cli.rb' - 'lib/paperclip/color_extractor.rb' -# Offense count: 713 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: always, always_true, never Style/FrozenStringLiteralComment: - Enabled: false + Exclude: + - 'app/views/accounts/show.rss.ruby' + - 'app/views/tags/show.rss.ruby' + - 'app/views/well_known/host_meta/show.xml.ruby' + - 'db/migrate/20160220174730_create_accounts.rb' + - 'db/migrate/20160220211917_create_statuses.rb' + - 'db/migrate/20160221003140_create_users.rb' + - 'db/migrate/20160221003621_create_follows.rb' + - 'db/migrate/20160222122600_create_stream_entries.rb' + - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb' + - 'db/migrate/20160223162837_add_metadata_to_statuses.rb' + - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb' + - 'db/migrate/20160223165723_add_url_to_statuses.rb' + - 'db/migrate/20160223165855_add_url_to_accounts.rb' + - 'db/migrate/20160223171800_create_favourites.rb' + - 'db/migrate/20160224223247_create_mentions.rb' + - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb' + - 'db/migrate/20160305115639_add_devise_to_users.rb' + - 'db/migrate/20160306172223_create_doorkeeper_tables.rb' + - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb' + - 'db/migrate/20160314164231_add_owner_to_application.rb' + - 'db/migrate/20160316103650_add_missing_indices.rb' + - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb' + - 'db/migrate/20160325130944_add_admin_to_users.rb' + - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb' + - 'db/migrate/20160905150353_create_media_attachments.rb' + - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb' + - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb' + - 'db/migrate/20160926213048_remove_owner_from_application.rb' + - 'db/migrate/20161003142332_add_confirmable_to_users.rb' + - 'db/migrate/20161003145426_create_blocks.rb' + - 'db/migrate/20161006213403_rails_settings_migration.rb' + - 'db/migrate/20161009120834_create_domain_blocks.rb' + - 'db/migrate/20161027172456_add_silenced_to_accounts.rb' + - 'db/migrate/20161104173623_create_tags.rb' + - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb' + - 'db/migrate/20161116162355_add_locale_to_users.rb' + - 'db/migrate/20161119211120_create_notifications.rb' + - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' + - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb' + - 'db/migrate/20161128103007_create_subscriptions.rb' + - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb' + - 'db/migrate/20161130185319_add_visibility_to_statuses.rb' + - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb' + - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb' + - 'db/migrate/20161205214545_add_suspended_to_accounts.rb' + - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb' + - 'db/migrate/20161222201034_add_locked_to_accounts.rb' + - 'db/migrate/20161222204147_create_follow_requests.rb' + - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb' + - 'db/migrate/20170109120109_create_web_settings.rb' + - 'db/migrate/20170112154826_migrate_settings.rb' + - 'db/migrate/20170114194937_add_application_to_statuses.rb' + - 'db/migrate/20170114203041_add_website_to_oauth_application.rb' + - 'db/migrate/20170119214911_create_preview_cards.rb' + - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb' + - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb' + - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb' + - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb' + - 'db/migrate/20170205175257_remove_devices.rb' + - 'db/migrate/20170209184350_add_reply_to_statuses.rb' + - 'db/migrate/20170214110202_create_reports.rb' + - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb' + - 'db/migrate/20170301222600_create_mutes.rb' + - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb' + - 'db/migrate/20170304202101_add_type_to_media_attachments.rb' + - 'db/migrate/20170317193015_add_search_index_to_accounts.rb' + - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb' + - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb' + - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb' + - 'db/migrate/20170322162804_add_search_index_to_tags.rb' + - 'db/migrate/20170330021336_add_counter_caches.rb' + - 'db/migrate/20170330163835_create_imports.rb' + - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb' + - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb' + - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb' + - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb' + - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb' + - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb' + - 'db/migrate/20170414132105_add_language_to_statuses.rb' + - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb' + - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb' + - 'db/migrate/20170424003227_create_account_domain_blocks.rb' + - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb' + - 'db/migrate/20170425131920_add_media_attachment_meta.rb' + - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb' + - 'db/migrate/20170427011934_re_add_owner_to_application.rb' + - 'db/migrate/20170506235850_create_conversations.rb' + - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb' + - 'db/migrate/20170507141759_optimize_index_subscriptions.rb' + - 'db/migrate/20170508230434_create_conversation_mutes.rb' + - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb' + - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb' + - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb' + - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb' + - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb' + - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb' + - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb' + - 'db/migrate/20170623152212_create_session_activations.rb' + - 'db/migrate/20170624134742_add_description_to_session_activations.rb' + - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb' + - 'db/migrate/20170711225116_fix_null_booleans.rb' + - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb' + - 'db/migrate/20170713175513_create_web_push_subscriptions.rb' + - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb' + - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb' + - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' + - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb' + - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb' + - 'db/migrate/20170823162448_create_status_pins.rb' + - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb' + - 'db/migrate/20170829215220_remove_status_pins_account_index.rb' + - 'db/migrate/20170901141119_truncate_preview_cards.rb' + - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb' + - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb' + - 'db/migrate/20170905165803_add_local_to_statuses.rb' + - 'db/migrate/20170913000752_create_site_uploads.rb' + - 'db/migrate/20170917153509_create_custom_emojis.rb' + - 'db/migrate/20170918125918_ids_to_bigints.rb' + - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb' + - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb' + - 'db/migrate/20170924022025_ids_to_bigints2.rb' + - 'db/migrate/20170927215609_add_description_to_media_attachments.rb' + - 'db/migrate/20170928082043_create_email_domain_blocks.rb' + - 'db/migrate/20171005102658_create_account_moderation_notes.rb' + - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' + - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb' + - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb' + - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb' + - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb' + - 'db/migrate/20171028221157_add_reblogs_to_follows.rb' + - 'db/migrate/20171107143332_add_memorial_to_accounts.rb' + - 'db/migrate/20171107143624_add_disabled_to_users.rb' + - 'db/migrate/20171109012327_add_moderator_to_accounts.rb' + - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb' + - 'db/migrate/20171114231651_create_lists.rb' + - 'db/migrate/20171116161857_create_list_accounts.rb' + - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb' + - 'db/migrate/20171119172437_create_admin_action_logs.rb' + - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb' + - 'db/migrate/20171125024930_create_invites.rb' + - 'db/migrate/20171125031751_add_invite_id_to_users.rb' + - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb' + - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb' + - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' + - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb' + - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb' + - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' + - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' + - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' + - 'db/migrate/20180109143959_add_remember_token_to_users.rb' + - 'db/migrate/20180204034416_create_identities.rb' + - 'db/migrate/20180206000000_change_user_id_nonnullable.rb' + - 'db/migrate/20180211015820_create_backups.rb' + - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb' + - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb' + - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb' + - 'db/migrate/20180402040909_create_report_notes.rb' + - 'db/migrate/20180410204633_add_fields_to_accounts.rb' + - 'db/migrate/20180416210259_add_uri_to_relationships.rb' + - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb' + - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb' + - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb' + - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' + - 'db/migrate/20180608213548_reject_following_blocked_users.rb' + - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb' + - 'db/migrate/20180615122121_add_autofollow_to_invites.rb' + - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb' + - 'db/migrate/20180617162849_remove_unused_indexes.rb' + - 'db/migrate/20180628181026_create_custom_filters.rb' + - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb' + - 'db/migrate/20180711152640_create_relays.rb' + - 'db/migrate/20180808175627_create_account_pins.rb' + - 'db/migrate/20180812123222_change_relays_enabled.rb' + - 'db/migrate/20180812162710_create_status_stats.rb' + - 'db/migrate/20180812173710_copy_status_stats.rb' + - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb' + - 'db/migrate/20180831171112_create_bookmarks.rb' + - 'db/migrate/20180929222014_create_account_conversations.rb' + - 'db/migrate/20181007025445_create_pghero_space_stats.rb' + - 'db/migrate/20181010141500_add_silent_to_mentions.rb' + - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb' + - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb' + - 'db/migrate/20181024224956_migrate_account_conversations.rb' + - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb' + - 'db/migrate/20181116165755_create_account_stats.rb' + - 'db/migrate/20181116173541_copy_account_stats.rb' + - 'db/migrate/20181127130500_identity_id_to_bigint.rb' + - 'db/migrate/20181127165847_add_show_replies_to_lists.rb' + - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb' + - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb' + - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb' + - 'db/migrate/20181204215309_create_account_tag_stats.rb' + - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb' + - 'db/migrate/20181213184704_create_account_warnings.rb' + - 'db/migrate/20181213185533_create_account_warning_presets.rb' + - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb' + - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb' + - 'db/migrate/20190103124649_create_scheduled_statuses.rb' + - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb' + - 'db/migrate/20190117114553_create_tombstones.rb' + - 'db/migrate/20190201012802_add_overwrite_to_imports.rb' + - 'db/migrate/20190203180359_create_featured_tags.rb' + - 'db/migrate/20190225031541_create_polls.rb' + - 'db/migrate/20190225031625_create_poll_votes.rb' + - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb' + - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb' + - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' + - 'db/migrate/20190307234537_add_approved_to_users.rb' + - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb' + - 'db/migrate/20190316190352_create_account_identity_proofs.rb' + - 'db/migrate/20190317135723_add_uri_to_reports.rb' + - 'db/migrate/20190403141604_add_comment_to_invites.rb' + - 'db/migrate/20190409054914_create_user_invite_requests.rb' + - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb' + - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb' + - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' + - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' + - 'db/migrate/20190627222225_create_custom_emoji_categories.rb' + - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb' + - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb' + - 'db/migrate/20190705002136_create_domain_allows.rb' + - 'db/migrate/20190715164535_add_instance_actor.rb' + - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb' + - 'db/migrate/20190729185330_add_score_to_tags.rb' + - 'db/migrate/20190805123746_add_capabilities_to_tags.rb' + - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' + - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb' + - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb' + - 'db/migrate/20190820003045_update_statuses_index.rb' + - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' + - 'db/migrate/20190901035623_add_max_score_to_tags.rb' + - 'db/migrate/20190904222339_create_markers.rb' + - 'db/migrate/20190914202517_create_account_migrations.rb' + - 'db/migrate/20190915194355_create_account_aliases.rb' + - 'db/migrate/20190927232842_add_voters_count_to_polls.rb' + - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb' + - 'db/migrate/20191007013357_update_pt_locales.rb' + - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb' + - 'db/migrate/20191212003415_increase_backup_size.rb' + - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb' + - 'db/migrate/20191218153258_create_announcements.rb' + - 'db/migrate/20200113125135_create_announcement_mutes.rb' + - 'db/migrate/20200114113335_create_announcement_reactions.rb' + - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' + - 'db/migrate/20200126203551_add_published_at_to_announcements.rb' + - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb' + - 'db/migrate/20200309150742_add_forwarded_to_reports.rb' + - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb' + - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb' + - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb' + - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb' + - 'db/migrate/20200407201300_create_unavailable_domains.rb' + - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb' + - 'db/migrate/20200417125749_add_storage_schema_version.rb' + - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb' + - 'db/migrate/20200510110808_reset_web_app_secret.rb' + - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' + - 'db/migrate/20200516180352_create_devices.rb' + - 'db/migrate/20200516183822_create_one_time_keys.rb' + - 'db/migrate/20200518083523_create_encrypted_messages.rb' + - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb' + - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb' + - 'db/migrate/20200601222558_create_system_keys.rb' + - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb' + - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb' + - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb' + - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' + - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb' + - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb' + - 'db/migrate/20200628133322_create_account_notes.rb' + - 'db/migrate/20200630190240_create_webauthn_credentials.rb' + - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb' + - 'db/migrate/20200908193330_create_account_deletion_requests.rb' + - 'db/migrate/20200917192924_add_notify_to_follows.rb' + - 'db/migrate/20200917193034_add_type_to_notifications.rb' + - 'db/migrate/20200917222316_add_index_notifications_on_type.rb' + - 'db/migrate/20201008202037_create_ip_blocks.rb' + - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb' + - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb' + - 'db/migrate/20201206004238_create_instances.rb' + - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb' + - 'db/migrate/20210221045109_create_rules.rb' + - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb' + - 'db/migrate/20210322164601_create_account_summaries.rb' + - 'db/migrate/20210323114347_create_follow_recommendations.rb' + - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb' + - 'db/migrate/20210416200740_create_canonical_email_blocks.rb' + - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' + - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb' + - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb' + - 'db/migrate/20210609202149_create_login_activities.rb' + - 'db/migrate/20210616214526_create_user_ips.rb' + - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb' + - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb' + - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb' + - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb' + - 'db/migrate/20210908220918_create_status_edits.rb' + - 'db/migrate/20211031031021_create_preview_card_providers.rb' + - 'db/migrate/20211112011713_add_language_to_preview_cards.rb' + - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb' + - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb' + - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb' + - 'db/migrate/20211231080958_add_category_to_reports.rb' + - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb' + - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb' + - 'db/migrate/20220115125341_fix_account_warning_actions.rb' + - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb' + - 'db/migrate/20220124141035_create_appeals.rb' + - 'db/migrate/20220202200743_add_trendable_to_accounts.rb' + - 'db/migrate/20220202200926_add_trendable_to_statuses.rb' + - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb' + - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb' + - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb' + - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb' + - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' + - 'db/migrate/20220304195405_migrate_hide_network_preference.rb' + - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb' + - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb' + - 'db/migrate/20220316233212_update_kurdish_locales.rb' + - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb' + - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb' + - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb' + - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb' + - 'db/migrate/20220606044941_create_webhooks.rb' + - 'db/migrate/20220611210335_create_user_roles.rb' + - 'db/migrate/20220611212541_add_role_id_to_users.rb' + - 'db/migrate/20220710102457_add_display_name_to_tags.rb' + - 'db/migrate/20220714171049_create_tag_follows.rb' + - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' + - 'db/migrate/20220824233535_create_status_trends.rb' + - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' + - 'db/migrate/20220829192633_add_languages_to_follows.rb' + - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb' + - 'db/migrate/20221006061337_create_preview_card_trends.rb' + - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb' + - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb' + - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb' + - 'db/migrate/20221104133904_add_name_to_featured_tags.rb' + - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb' + - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb' + - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb' + - 'db/seeds/01_web_app.rb' + - 'db/seeds/02_instance_actor.rb' + - 'db/seeds/03_roles.rb' + - 'db/seeds/04_admin.rb' + - 'lib/rails/engine_extensions.rb' + - 'lib/tasks/branding.rake' + - 'spec/fabricators_spec.rb' -# Offense count: 34 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: MinBodyLength, AllowConsecutiveConditionals. Style/GuardClause: @@ -1966,7 +3939,6 @@ Style/GuardClause: - 'lib/paperclip/attachment_extensions.rb' - 'lib/tasks/repo.rake' -# Offense count: 13 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. # SupportedStyles: braces, no_braces @@ -1982,7 +3954,6 @@ Style/HashAsLastArrayItem: - 'app/services/notify_service.rb' - 'db/migrate/20181024224956_migrate_account_conversations.rb' -# Offense count: 12 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys @@ -1996,14 +3967,12 @@ Style/HashSyntax: - 'spec/controllers/admin/statuses_controller_spec.rb' - 'spec/controllers/concerns/signature_verification_spec.rb' -# Offense count: 3 # This cop supports unsafe autocorrection (--autocorrect-all). Style/HashTransformValues: Exclude: - 'app/serializers/rest/web_push_subscription_serializer.rb' - 'app/services/import_service.rb' -# Offense count: 3 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: InverseMethods, InverseBlocks. Style/InverseMethods: @@ -2012,13 +3981,11 @@ Style/InverseMethods: - 'app/services/update_account_service.rb' - 'spec/controllers/activitypub/replies_controller_spec.rb' -# Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). Style/MapToHash: Exclude: - 'app/models/status.rb' -# Offense count: 17 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: literals, strict @@ -2035,7 +4002,6 @@ Style/MutableConstant: - 'lib/mastodon/snowflake.rb' - 'spec/controllers/api/base_controller_spec.rb' -# Offense count: 10 # Configuration parameters: AllowedMethods. # AllowedMethods: respond_to_missing? Style/OptionalBooleanParameter: @@ -2050,7 +4016,6 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' -# Offense count: 16 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: Exclude: @@ -2062,7 +4027,6 @@ Style/RedundantRegexpCharacterClass: - 'lib/tasks/emojis.rake' - 'lib/tasks/mastodon.rake' -# Offense count: 10 # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpEscape: Exclude: @@ -2073,7 +4037,6 @@ Style/RedundantRegexpEscape: - 'lib/paperclip/color_extractor.rb' - 'lib/tasks/mastodon.rake' -# Offense count: 19 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, AllowInnerSlashes. # SupportedStyles: slashes, percent_r, mixed @@ -2095,7 +4058,6 @@ Style/RegexpLiteral: - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/mastodon.rake' -# Offense count: 2 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength. # AllowedMethods: present?, blank?, presence, try, try! @@ -2104,7 +4066,6 @@ Style/SafeNavigation: - 'app/models/concerns/account_finder_concern.rb' - 'app/models/status.rb' -# Offense count: 5 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowAsExpressionSeparator. Style/Semicolon: @@ -2113,7 +4074,6 @@ Style/Semicolon: - 'spec/validators/blacklisted_email_validator_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' -# Offense count: 2 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle. # SupportedStyles: only_raise, only_fail, semantic @@ -2122,19 +4082,16 @@ Style/SignalException: - 'lib/devise/two_factor_ldap_authenticatable.rb' - 'lib/devise/two_factor_pam_authenticatable.rb' -# Offense count: 3 # This cop supports unsafe autocorrection (--autocorrect-all). Style/SingleArgumentDig: Exclude: - 'lib/webpacker/manifest_extensions.rb' -# Offense count: 14 # This cop supports unsafe autocorrection (--autocorrect-all). Style/SlicingWithRange: Exclude: - 'app/lib/emoji_formatter.rb' - 'app/lib/text_formatter.rb' - - 'app/lib/toc_generator.rb' - 'app/models/account_alias.rb' - 'app/models/domain_block.rb' - 'app/models/email_domain_block.rb' @@ -2144,3 +4101,9 @@ Style/SlicingWithRange: - 'lib/active_record/batches.rb' - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/repo.rake' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. +# URISchemes: http, https +Layout/LineLength: + Max: 701 diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index fc70c8785a..b2dfe58d53 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -35,7 +35,6 @@ module Mastodon follow status. By default, only accounts that are not followed by or following anyone locally are pruned. DESC - # rubocop:disable Metrics/PerceivedComplexity def remove if options[:prune_profiles] && options[:remove_headers] say('--prune-profiles and --remove-headers should not be specified simultaneously', :red, true) @@ -224,7 +223,6 @@ module Mastodon say("Removed #{removed} orphans (approx. #{number_to_human_size(reclaimed_bytes)})#{dry_run}", :green, true) end - # rubocop:enable Metrics/PerceivedComplexity option :account, type: :string option :domain, type: :string From 630436ab2d84b5ed2334ad510cb9ad6253050ae5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 04:33:38 +0100 Subject: [PATCH 0695/1220] Refactor monkey-patching of `PrivateAddressCheck` (#24122) --- app/lib/request.rb | 4 +++- config/environments/development.rb | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/lib/request.rb b/app/lib/request.rb index 85716f9990..4bde6fc911 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -273,7 +273,9 @@ class Request def check_private_address(address, host) addr = IPAddr.new(address.to_s) - return if private_address_exceptions.any? { |range| range.include?(addr) } + + return if Rails.env.development? || private_address_exceptions.any? { |range| range.include?(addr) } + raise Mastodon::PrivateNetworkAddressError, host if PrivateAddressCheck.private_address?(addr) end diff --git a/config/environments/development.rb b/config/environments/development.rb index 32c5cce8b9..a633dfce51 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -77,9 +77,3 @@ Rails.application.configure do end Redis.raise_deprecations = true - -module PrivateAddressCheck - def self.private_address?(*) - false - end -end From bd047acc356671727c112336bb237f979bba517d Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 16 Mar 2023 11:07:24 +0100 Subject: [PATCH 0696/1220] Replace `Status#translatable?` with language matrix in separate endpoint (#24037) --- .rubocop_todo.yml | 1 - .../translation_languages_controller.rb | 23 ++++++ app/javascript/mastodon/actions/server.js | 27 +++++++ .../mastodon/components/status_content.jsx | 13 ++- app/javascript/mastodon/features/ui/index.jsx | 3 +- app/javascript/mastodon/reducers/server.js | 9 +++ app/lib/translation_service.rb | 4 +- app/lib/translation_service/deepl.rb | 30 ++++--- .../translation_service/libre_translate.rb | 20 ++--- app/models/status.rb | 10 --- app/serializers/rest/status_serializer.rb | 6 +- app/services/translate_status_service.rb | 16 +++- config/routes.rb | 1 + .../translation_languages_controller_spec.rb | 31 ++++++++ .../statuses/translations_controller_spec.rb | 3 +- spec/lib/translation_service/deepl_spec.rb | 36 +++------ .../libre_translate_spec.rb | 31 ++------ spec/models/status_spec.rb | 79 ------------------- spec/presenters/instance_presenter_spec.rb | 2 +- 19 files changed, 165 insertions(+), 180 deletions(-) create mode 100644 app/controllers/api/v1/instances/translation_languages_controller.rb create mode 100644 spec/controllers/api/v1/instances/translation_languages_controller_spec.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e79f4f8e97..85f078dcf2 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -484,7 +484,6 @@ RSpec/DescribedClass: - 'spec/models/user_spec.rb' - 'spec/policies/account_moderation_note_policy_spec.rb' - 'spec/presenters/account_relationships_presenter_spec.rb' - - 'spec/presenters/instance_presenter_spec.rb' - 'spec/presenters/status_relationships_presenter_spec.rb' - 'spec/serializers/activitypub/note_serializer_spec.rb' - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' diff --git a/app/controllers/api/v1/instances/translation_languages_controller.rb b/app/controllers/api/v1/instances/translation_languages_controller.rb new file mode 100644 index 0000000000..3910a499e8 --- /dev/null +++ b/app/controllers/api/v1/instances/translation_languages_controller.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Api::V1::Instances::TranslationLanguagesController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :set_languages + + def show + expires_in 1.day, public: true + render json: @languages + end + + private + + def set_languages + if TranslationService.configured? + @languages = Rails.cache.fetch('translation_service/languages', expires_in: 7.days, race_condition_ttl: 1.hour) { TranslationService.configured.languages } + @languages['und'] = @languages.delete(nil) if @languages.key?(nil) + else + @languages = {} + end + end +end diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js index 31d4aea100..091af0f0fe 100644 --- a/app/javascript/mastodon/actions/server.js +++ b/app/javascript/mastodon/actions/server.js @@ -5,6 +5,10 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL'; + export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; @@ -37,6 +41,29 @@ const fetchServerFail = error => ({ error, }); +export const fetchServerTranslationLanguages = () => (dispatch, getState) => { + dispatch(fetchServerTranslationLanguagesRequest()); + + api(getState) + .get('/api/v1/instance/translation_languages').then(({ data }) => { + dispatch(fetchServerTranslationLanguagesSuccess(data)); + }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err))); +}; + +const fetchServerTranslationLanguagesRequest = () => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, +}); + +const fetchServerTranslationLanguagesSuccess = translationLanguages => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, + translationLanguages, +}); + +const fetchServerTranslationLanguagesFail = error => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, + error, +}); + export const fetchExtendedDescription = () => (dispatch, getState) => { dispatch(fetchExtendedDescriptionRequest()); diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index f9c9fe0791..67a487b007 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -3,6 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import { FormattedMessage, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; +import { connect } from 'react-redux'; import classnames from 'classnames'; import PollContainer from 'mastodon/containers/poll_container'; import Icon from 'mastodon/components/icon'; @@ -47,7 +48,12 @@ class TranslateButton extends React.PureComponent { } -export default @injectIntl +const mapStateToProps = state => ({ + languages: state.getIn(['server', 'translationLanguages', 'items']), +}); + +export default @connect(mapStateToProps) +@injectIntl class StatusContent extends React.PureComponent { static contextTypes = { @@ -63,6 +69,7 @@ class StatusContent extends React.PureComponent { onClick: PropTypes.func, collapsable: PropTypes.bool, onCollapsedToggle: PropTypes.func, + languages: ImmutablePropTypes.map, intl: PropTypes.object, }; @@ -220,7 +227,9 @@ class StatusContent extends React.PureComponent { const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); - const renderTranslate = this.props.onTranslate && status.get('translatable'); + const contentLocale = intl.locale.replace(/[_-].*/, ''); + const targetLanguages = this.props.languages?.get(status.get('language') || 'und'); + const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && targetLanguages?.includes(contentLocale); const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index 2dd59f95d4..083707220b 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -13,7 +13,7 @@ import { debounce } from 'lodash'; import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose'; import { expandHomeTimeline } from '../../actions/timelines'; import { expandNotifications } from '../../actions/notifications'; -import { fetchServer } from '../../actions/server'; +import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server'; import { clearHeight } from '../../actions/height_cache'; import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app'; import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers'; @@ -399,6 +399,7 @@ class UI extends React.PureComponent { this.props.dispatch(fetchMarkers()); this.props.dispatch(expandHomeTimeline()); this.props.dispatch(expandNotifications()); + this.props.dispatch(fetchServerTranslationLanguages()); setTimeout(() => this.props.dispatch(fetchServer()), 3000); } diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js index db9f2b5e6b..909ab2a661 100644 --- a/app/javascript/mastodon/reducers/server.js +++ b/app/javascript/mastodon/reducers/server.js @@ -2,6 +2,9 @@ import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL, + SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, + SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, + SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, EXTENDED_DESCRIPTION_REQUEST, EXTENDED_DESCRIPTION_SUCCESS, EXTENDED_DESCRIPTION_FAIL, @@ -35,6 +38,12 @@ export default function server(state = initialState, action) { return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: return state.setIn(['server', 'isLoading'], false); + case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST: + return state.setIn(['translationLanguages', 'isLoading'], true); + case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS: + return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false); + case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL: + return state.setIn(['translationLanguages', 'isLoading'], false); case EXTENDED_DESCRIPTION_REQUEST: return state.setIn(['extendedDescription', 'isLoading'], true); case EXTENDED_DESCRIPTION_SUCCESS: diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb index 5ff93674a4..bfe5de44f8 100644 --- a/app/lib/translation_service.rb +++ b/app/lib/translation_service.rb @@ -21,8 +21,8 @@ class TranslationService ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present? end - def supported?(_source_language, _target_language) - false + def languages + {} end def translate(_text, _source_language, _target_language) diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index deff95a1db..afcb7ecb2f 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -17,25 +17,31 @@ class TranslationService::DeepL < TranslationService end end - def supported?(source_language, target_language) - source_language.in?(languages('source')) && target_language.in?(languages('target')) + def languages + source_languages = [nil] + fetch_languages('source') + + # In DeepL, EN and PT are deprecated in favor of EN-GB/EN-US and PT-BR/PT-PT, so + # they are supported but not returned by the API. + target_languages = %w(en pt) + fetch_languages('target') + + source_languages.index_with { |language| target_languages.without(nil, language) } end private - def languages(type) - Rails.cache.fetch("translation_service/deepl/languages/#{type}", expires_in: 7.days, race_condition_ttl: 1.minute) do - request(:get, "/v2/languages?type=#{type}") do |res| - # In DeepL, EN and PT are deprecated in favor of EN-GB/EN-US and PT-BR/PT-PT, so - # they are supported but not returned by the API. - extra = type == 'source' ? [nil] : %w(en pt) - languages = Oj.load(res.body_with_limit).map { |language| language['language'].downcase } - - languages + extra - end + def fetch_languages(type) + request(:get, "/v2/languages?type=#{type}") do |res| + Oj.load(res.body_with_limit).map { |language| normalize_language(language['language']) } end end + def normalize_language(language) + subtags = language.split(/[_-]/) + subtags[0].downcase! + subtags[1]&.upcase! + subtags.join('-') + end + def request(verb, path, **options) req = Request.new(verb, "#{base_url}#{path}", **options) req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}") diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb index 743e4d77f7..8bb194a9c2 100644 --- a/app/lib/translation_service/libre_translate.rb +++ b/app/lib/translation_service/libre_translate.rb @@ -15,22 +15,18 @@ class TranslationService::LibreTranslate < TranslationService end end - def supported?(source_language, target_language) - languages.key?(source_language) && languages[source_language].include?(target_language) + def languages + request(:get, '/languages') do |res| + languages = Oj.load(res.body_with_limit).to_h do |language| + [language['code'], language['targets'].without(language['code'])] + end + languages[nil] = languages.values.flatten.uniq.sort + languages + end end private - def languages - Rails.cache.fetch('translation_service/libre_translate/languages', expires_in: 7.days, race_condition_ttl: 1.minute) do - request(:get, '/languages') do |res| - languages = Oj.load(res.body_with_limit).to_h { |language| [language['code'], language['targets']] } - languages[nil] = languages.values.flatten.uniq - languages - end - end - end - def request(verb, path, **options) req = Request.new(verb, "#{@base_url}#{path}", allow_local: true, **options) req.add_headers('Content-Type': 'application/json') diff --git a/app/models/status.rb b/app/models/status.rb index dd7ac2edb1..e7ea191a80 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -232,16 +232,6 @@ class Status < ApplicationRecord public_visibility? || unlisted_visibility? end - def translatable? - translate_target_locale = I18n.locale.to_s.split(/[_-]/).first - - distributable? && - content.present? && - language != translate_target_locale && - TranslationService.configured? && - TranslationService.configured.supported?(language, translate_target_locale) - end - alias sign? distributable? def with_media? diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index a422f5b258..e0b8f32a68 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -4,7 +4,7 @@ class REST::StatusSerializer < ActiveModel::Serializer include FormattingHelper attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id, - :sensitive, :spoiler_text, :visibility, :language, :translatable, + :sensitive, :spoiler_text, :visibility, :language, :uri, :url, :replies_count, :reblogs_count, :favourites_count, :edited_at @@ -50,10 +50,6 @@ class REST::StatusSerializer < ActiveModel::Serializer object.account.user_shows_application? || (current_user? && current_user.account_id == object.account_id) end - def translatable - current_user? && object.translatable? - end - def visibility # This visibility is masked behind "private" # to avoid API changes because there are no diff --git a/app/services/translate_status_service.rb b/app/services/translate_status_service.rb index 92d8b62a05..796f13a0dd 100644 --- a/app/services/translate_status_service.rb +++ b/app/services/translate_status_service.rb @@ -6,19 +6,29 @@ class TranslateStatusService < BaseService include FormattingHelper def call(status, target_language) - raise Mastodon::NotPermittedError unless status.translatable? - @status = status @content = status_content_format(@status) @target_language = target_language + raise Mastodon::NotPermittedError unless permitted? + Rails.cache.fetch("translations/#{@status.language}/#{@target_language}/#{content_hash}", expires_in: CACHE_TTL) { translation_backend.translate(@content, @status.language, @target_language) } end private def translation_backend - TranslationService.configured + @translation_backend ||= TranslationService.configured + end + + def permitted? + return false unless @status.distributable? && @status.content.present? && TranslationService.configured? + + languages[@status.language]&.include?(@target_language) + end + + def languages + Rails.cache.fetch('translation_service/languages', expires_in: 7.days, race_condition_ttl: 1.hour) { TranslationService.configured.languages } end def content_hash diff --git a/config/routes.rb b/config/routes.rb index 530b46a5a5..ea595e1e12 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -546,6 +546,7 @@ Rails.application.routes.draw do resources :domain_blocks, only: [:index], controller: 'instances/domain_blocks' resource :privacy_policy, only: [:show], controller: 'instances/privacy_policies' resource :extended_description, only: [:show], controller: 'instances/extended_descriptions' + resource :translation_languages, only: [:show], controller: 'instances/translation_languages' resource :activity, only: [:show], controller: 'instances/activity' end diff --git a/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb b/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb new file mode 100644 index 0000000000..5b7e4abb6f --- /dev/null +++ b/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::V1::Instances::TranslationLanguagesController do + describe 'GET #show' do + context 'when no translation service is configured' do + it 'returns empty language matrix' do + get :show + + expect(response).to have_http_status(200) + expect(body_as_json).to eq({}) + end + end + + context 'when a translation service is configured' do + before do + service = instance_double(TranslationService::DeepL, languages: { nil => %w(en de), 'en' => ['de'] }) + allow(TranslationService).to receive(:configured?).and_return(true) + allow(TranslationService).to receive(:configured).and_return(service) + end + + it 'returns language matrix' do + get :show + + expect(response).to have_http_status(200) + expect(body_as_json).to eq({ und: %w(en de), en: ['de'] }) + end + end + end +end diff --git a/spec/controllers/api/v1/statuses/translations_controller_spec.rb b/spec/controllers/api/v1/statuses/translations_controller_spec.rb index 2deea9fc0c..8495779bf3 100644 --- a/spec/controllers/api/v1/statuses/translations_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/translations_controller_spec.rb @@ -19,9 +19,10 @@ describe Api::V1::Statuses::TranslationsController do before do translation = TranslationService::Translation.new(text: 'Hello') - service = instance_double(TranslationService::DeepL, translate: translation, supported?: true) + service = instance_double(TranslationService::DeepL, translate: translation) allow(TranslationService).to receive(:configured?).and_return(true) allow(TranslationService).to receive(:configured).and_return(service) + Rails.cache.write('translation_service/languages', { 'es' => ['en'] }) post :create, params: { status_id: status.id } end diff --git a/spec/lib/translation_service/deepl_spec.rb b/spec/lib/translation_service/deepl_spec.rb index aa24731860..2363f8f139 100644 --- a/spec/lib/translation_service/deepl_spec.rb +++ b/spec/lib/translation_service/deepl_spec.rb @@ -16,29 +16,6 @@ RSpec.describe TranslationService::DeepL do ) end - describe '#supported?' do - it 'supports included languages as source and target languages' do - expect(service.supported?('uk', 'en')).to be true - end - - it 'supports auto-detecting source language' do - expect(service.supported?(nil, 'en')).to be true - end - - it 'supports "en" and "pt" as target languages though not included in language list' do - expect(service.supported?('uk', 'en')).to be true - expect(service.supported?('uk', 'pt')).to be true - end - - it 'does not support non-included language as target language' do - expect(service.supported?('uk', 'nl')).to be false - end - - it 'does not support non-included language as source language' do - expect(service.supported?('da', 'en')).to be false - end - end - describe '#translate' do it 'returns translation with specified source language' do stub_request(:post, 'https://api.deepl.com/v2/translate') @@ -63,13 +40,18 @@ RSpec.describe TranslationService::DeepL do end end - describe '#languages?' do + describe '#languages' do it 'returns source languages' do - expect(service.send(:languages, 'source')).to eq ['en', 'uk', nil] + expect(service.languages.keys).to eq [nil, 'en', 'uk'] end - it 'returns target languages' do - expect(service.send(:languages, 'target')).to eq %w(en-gb zh en pt) + it 'returns target languages for each source language' do + expect(service.languages['en']).to eq %w(pt en-GB zh) + expect(service.languages['uk']).to eq %w(en pt en-GB zh) + end + + it 'returns target languages for auto-detection' do + expect(service.languages[nil]).to eq %w(en pt en-GB zh) end end diff --git a/spec/lib/translation_service/libre_translate_spec.rb b/spec/lib/translation_service/libre_translate_spec.rb index a6cb01884a..fbd726a7ea 100644 --- a/spec/lib/translation_service/libre_translate_spec.rb +++ b/spec/lib/translation_service/libre_translate_spec.rb @@ -7,41 +7,24 @@ RSpec.describe TranslationService::LibreTranslate do before do stub_request(:get, 'https://libretranslate.example.com/languages').to_return( - body: '[{"code": "en","name": "English","targets": ["de","es"]},{"code": "da","name": "Danish","targets": ["en","de"]}]' + body: '[{"code": "en","name": "English","targets": ["de","en","es"]},{"code": "da","name": "Danish","targets": ["en","pt"]}]' ) end - describe '#supported?' do - it 'supports included language pair' do - expect(service.supported?('en', 'de')).to be true - end - - it 'does not support reversed language pair' do - expect(service.supported?('de', 'en')).to be false - end - - it 'supports auto-detecting source language' do - expect(service.supported?(nil, 'de')).to be true - end - - it 'does not support auto-detecting for unsupported target language' do - expect(service.supported?(nil, 'pt')).to be false - end - end - describe '#languages' do - subject(:languages) { service.send(:languages) } + subject(:languages) { service.languages } - it 'includes supported source languages' do + it 'returns source languages' do expect(languages.keys).to eq ['en', 'da', nil] end - it 'includes supported target languages for source language' do + it 'returns target languages for each source language' do expect(languages['en']).to eq %w(de es) + expect(languages['da']).to eq %w(en pt) end - it 'includes supported target languages for auto-detected language' do - expect(languages[nil]).to eq %w(de es en) + it 'returns target languages for auto-detected language' do + expect(languages[nil]).to eq %w(de en es pt) end end diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 1f6cfc7967..1e58c6d0d1 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -114,85 +114,6 @@ RSpec.describe Status, type: :model do end end - describe '#translatable?' do - before do - allow(TranslationService).to receive(:configured?).and_return(true) - allow(TranslationService).to receive(:configured).and_return(TranslationService.new) - allow(TranslationService.configured).to receive(:supported?).with('es', 'en').and_return(true) - - subject.language = 'es' - subject.visibility = :public - end - - context 'all conditions are satisfied' do - it 'returns true' do - expect(subject.translatable?).to be true - end - end - - context 'translation service is not configured' do - it 'returns false' do - allow(TranslationService).to receive(:configured?).and_return(false) - allow(TranslationService).to receive(:configured).and_raise(TranslationService::NotConfiguredError) - expect(subject.translatable?).to be false - end - end - - context 'status language is nil' do - it 'returns true' do - subject.language = nil - allow(TranslationService.configured).to receive(:supported?).with(nil, 'en').and_return(true) - expect(subject.translatable?).to be true - end - end - - context 'status language is same as default locale' do - it 'returns false' do - subject.language = I18n.locale - expect(subject.translatable?).to be false - end - end - - context 'status language is unsupported' do - it 'returns false' do - subject.language = 'af' - allow(TranslationService.configured).to receive(:supported?).with('af', 'en').and_return(false) - expect(subject.translatable?).to be false - end - end - - context 'default locale is unsupported' do - it 'returns false' do - allow(TranslationService.configured).to receive(:supported?).with('es', 'af').and_return(false) - I18n.with_locale('af') do - expect(subject.translatable?).to be false - end - end - end - - context 'default locale has region' do - it 'returns true' do - I18n.with_locale('en-GB') do - expect(subject.translatable?).to be true - end - end - end - - context 'status text is blank' do - it 'returns false' do - subject.text = ' ' - expect(subject.translatable?).to be false - end - end - - context 'status visiblity is hidden' do - it 'returns false' do - subject.visibility = 'limited' - expect(subject.translatable?).to be false - end - end - end - describe '#content' do it 'returns the text of the status if it is not a reblog' do expect(subject.content).to eql subject.text diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index 795abd8b45..2a1d668ceb 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe InstancePresenter do - let(:instance_presenter) { InstancePresenter.new } + let(:instance_presenter) { described_class.new } describe '#description' do around do |example| From a08590110891051fb403678b44c9e0982d4a2d83 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 13:02:00 +0100 Subject: [PATCH 0697/1220] New Crowdin updates (#23904) 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 | 2 + app/javascript/mastodon/locales/ast.json | 22 +- app/javascript/mastodon/locales/be.json | 8 +- app/javascript/mastodon/locales/bg.json | 6 +- app/javascript/mastodon/locales/bn.json | 2 + app/javascript/mastodon/locales/br.json | 2 + app/javascript/mastodon/locales/bs.json | 2 + app/javascript/mastodon/locales/ca.json | 4 +- app/javascript/mastodon/locales/ckb.json | 72 +- app/javascript/mastodon/locales/co.json | 2 + app/javascript/mastodon/locales/cs.json | 2 + app/javascript/mastodon/locales/csb.json | 2 + app/javascript/mastodon/locales/cy.json | 2 + app/javascript/mastodon/locales/da.json | 2 + app/javascript/mastodon/locales/de.json | 32 +- .../mastodon/locales/defaultMessages.json | 8 + app/javascript/mastodon/locales/el.json | 2 + app/javascript/mastodon/locales/en-GB.json | 2 + app/javascript/mastodon/locales/eo.json | 36 +- app/javascript/mastodon/locales/es-AR.json | 2 + app/javascript/mastodon/locales/es-MX.json | 2 + app/javascript/mastodon/locales/es.json | 2 + app/javascript/mastodon/locales/et.json | 8 +- app/javascript/mastodon/locales/eu.json | 2 + app/javascript/mastodon/locales/fa.json | 2 + app/javascript/mastodon/locales/fi.json | 4 +- app/javascript/mastodon/locales/fo.json | 2 + app/javascript/mastodon/locales/fr-QC.json | 2 + app/javascript/mastodon/locales/fr.json | 6 +- app/javascript/mastodon/locales/fy.json | 2 + app/javascript/mastodon/locales/ga.json | 2 + app/javascript/mastodon/locales/gd.json | 2 + app/javascript/mastodon/locales/gl.json | 2 + app/javascript/mastodon/locales/he.json | 2 + app/javascript/mastodon/locales/hi.json | 2 + app/javascript/mastodon/locales/hr.json | 2 + app/javascript/mastodon/locales/hu.json | 2 + app/javascript/mastodon/locales/hy.json | 2 + app/javascript/mastodon/locales/id.json | 2 + app/javascript/mastodon/locales/ig.json | 2 + app/javascript/mastodon/locales/io.json | 2 + app/javascript/mastodon/locales/is.json | 2 + app/javascript/mastodon/locales/it.json | 2 + 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 | 2 + app/javascript/mastodon/locales/ku.json | 2 + app/javascript/mastodon/locales/kw.json | 4 +- app/javascript/mastodon/locales/la.json | 2 + app/javascript/mastodon/locales/lt.json | 2 + app/javascript/mastodon/locales/lv.json | 16 +- 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/my.json | 286 +-- app/javascript/mastodon/locales/nl.json | 4 +- app/javascript/mastodon/locales/nn.json | 12 +- app/javascript/mastodon/locales/no.json | 2 + app/javascript/mastodon/locales/oc.json | 2 + 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 | 2 + app/javascript/mastodon/locales/ro.json | 2 + app/javascript/mastodon/locales/ru.json | 2 + app/javascript/mastodon/locales/sa.json | 760 ++++---- 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 | 8 +- app/javascript/mastodon/locales/sl.json | 2 + app/javascript/mastodon/locales/sq.json | 2 + app/javascript/mastodon/locales/sr-Latn.json | 124 +- app/javascript/mastodon/locales/sr.json | 120 +- app/javascript/mastodon/locales/sv.json | 2 + 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 | 10 +- app/javascript/mastodon/locales/tr.json | 2 + app/javascript/mastodon/locales/tt.json | 144 +- app/javascript/mastodon/locales/ug.json | 2 + app/javascript/mastodon/locales/uk.json | 2 + app/javascript/mastodon/locales/ur.json | 2 + app/javascript/mastodon/locales/uz.json | 2 + app/javascript/mastodon/locales/vi.json | 2 + app/javascript/mastodon/locales/zgh.json | 2 + app/javascript/mastodon/locales/zh-CN.json | 2 + app/javascript/mastodon/locales/zh-HK.json | 2 + app/javascript/mastodon/locales/zh-TW.json | 4 +- config/locales/activerecord.ka.yml | 37 + config/locales/activerecord.tt.yml | 4 +- config/locales/an.yml | 1 - config/locales/ar.yml | 6 +- config/locales/ast.yml | 5 +- config/locales/be.yml | 5 +- config/locales/bg.yml | 8 +- config/locales/br.yml | 1 - config/locales/ca.yml | 10 +- config/locales/ckb.yml | 1 - config/locales/co.yml | 1 - config/locales/cs.yml | 8 +- config/locales/cy.yml | 6 +- config/locales/da.yml | 13 +- config/locales/de.yml | 208 +-- config/locales/devise.de.yml | 18 +- config/locales/devise.et.yml | 4 +- config/locales/devise.my.yml | 2 +- config/locales/doorkeeper.de.yml | 8 +- config/locales/doorkeeper.sr-Latn.yml | 17 +- config/locales/doorkeeper.sr.yml | 5 + config/locales/el.yml | 194 ++- config/locales/en-GB.yml | 359 ++++ config/locales/eo.yml | 13 +- config/locales/es-AR.yml | 6 +- config/locales/es-MX.yml | 6 +- config/locales/es.yml | 6 +- config/locales/et.yml | 16 +- config/locales/eu.yml | 6 +- config/locales/fa.yml | 11 +- config/locales/fi.yml | 10 +- config/locales/fo.yml | 6 +- config/locales/fr-QC.yml | 6 +- config/locales/fr.yml | 6 +- config/locales/fy.yml | 6 +- config/locales/ga.yml | 1 - config/locales/gd.yml | 1 - config/locales/gl.yml | 6 +- config/locales/he.yml | 6 +- config/locales/hi.yml | 9 + config/locales/hr.yml | 2 - config/locales/hu.yml | 6 +- config/locales/hy.yml | 1 - config/locales/id.yml | 1 - config/locales/io.yml | 1 - config/locales/is.yml | 6 +- config/locales/it.yml | 6 +- config/locales/ja.yml | 10 +- config/locales/ka.yml | 1 - config/locales/kab.yml | 1 - config/locales/kk.yml | 1 - config/locales/ko.yml | 12 +- config/locales/ku.yml | 1 - config/locales/lt.yml | 2 - config/locales/lv.yml | 8 +- config/locales/ms.yml | 1 - config/locales/my.yml | 345 ++++ config/locales/nl.yml | 6 +- config/locales/nn.yml | 128 +- config/locales/no.yml | 1 - config/locales/oc.yml | 1 - config/locales/pl.yml | 6 +- config/locales/pt-BR.yml | 13 +- config/locales/pt-PT.yml | 6 +- config/locales/ru.yml | 1 - config/locales/sc.yml | 1 - config/locales/sco.yml | 1 - config/locales/si.yml | 1 - config/locales/simple_form.ast.yml | 9 + config/locales/simple_form.bg.yml | 42 +- config/locales/simple_form.da.yml | 5 + config/locales/simple_form.de.yml | 22 +- config/locales/simple_form.et.yml | 8 +- config/locales/simple_form.fi.yml | 4 +- config/locales/simple_form.ko.yml | 6 +- config/locales/simple_form.my.yml | 141 ++ config/locales/simple_form.pt-BR.yml | 1 + config/locales/simple_form.sr-Latn.yml | 142 +- config/locales/simple_form.sr.yml | 106 +- config/locales/simple_form.th.yml | 2 +- config/locales/simple_form.tt.yml | 4 +- config/locales/simple_form.zh-TW.yml | 4 +- config/locales/sk.yml | 4 +- config/locales/sl.yml | 6 +- config/locales/sq.yml | 6 +- config/locales/sr-Latn.yml | 1544 ++++++++++++++++- config/locales/sr.yml | 1017 ++++++++++- config/locales/sv.yml | 6 +- config/locales/th.yml | 10 +- config/locales/tr.yml | 6 +- config/locales/tt.yml | 40 +- config/locales/uk.yml | 6 +- config/locales/vi.yml | 6 +- config/locales/zh-CN.yml | 8 +- config/locales/zh-HK.yml | 1 - config/locales/zh-TW.yml | 14 +- 193 files changed, 5237 insertions(+), 1397 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 7d77246188..c04cae948d 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Blokkeer die hele domein", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Teken Uit", "confirmations.logout.message": "Is jy seker jy wil uitteken?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 389c512fea..9f66c8d131 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tiens cambios sin alzar en a descripción u vista previa d'o fichero audiovisual, descartar-los de totz modos?", "confirmations.domain_block.confirm": "Amagar dominio entero", "confirmations.domain_block.message": "Yes seguro que quiers blocar lo dominio {domain} entero? En cheneral ye prou, y preferible, fer uns quantos bloqueyos y silenciaus concretos. Los tuyos seguidros d'ixe dominio serán eliminaus.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Zarrar sesión", "confirmations.logout.message": "Yes seguro de querer zarrar la sesión?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index cf5dfb55bf..d7d3baf4e7 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟", "confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل", "confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.", + "confirmations.edit.confirm": "تعديل", + "confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟", "confirmations.logout.confirm": "خروج", "confirmations.logout.message": "متأكد من أنك تريد الخروج؟", "confirmations.mute.confirm": "أكتم", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 018d950d74..2881911a69 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -38,7 +38,7 @@ "account.follows.empty": "Esti perfil entá nun sigue a naide.", "account.follows_you": "Síguete", "account.go_to_profile": "Go to profile", - "account.hide_reblogs": "Hide boosts from @{name}", + "account.hide_reblogs": "Anubrir los artículos compartíos de @{name}", "account.joined_short": "Data de xunión", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", @@ -65,7 +65,7 @@ "account.unfollow": "Dexar de siguir", "account.unmute": "Activar los avisos de @{name}", "account.unmute_notifications": "Activar los avisos de @{name}", - "account.unmute_short": "Unmute", + "account.unmute_short": "Activar los avisos", "account_note.placeholder": "Calca equí p'amestar una nota", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Bloquiar tol dominiu", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "La edición va sobrescribir el mensaxe que tas escribiendo. ¿De xuru que quies siguir?", "confirmations.logout.confirm": "Zarrar la sesión", "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?", "confirmations.mute.confirm": "Mute", @@ -213,7 +215,7 @@ "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "Entá nun bloquiesti a nengún perfil.", "empty_column.bookmarked_statuses": "Entá nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.", - "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.community": "La llinia de tiempu llocal ta balera. ¡Espubliza daqué públicamente pa comenzar l'alderique!", "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.", "empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.", "empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!", @@ -233,7 +235,7 @@ "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.", "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.", "error.unexpected_crash.next_steps": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.", - "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.", + "error.unexpected_crash.next_steps_addons": "Prueba a desactivalos ya a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", "explore.search_results": "Resultaos de la busca", @@ -274,7 +276,7 @@ "footer.source_code": "Ver el códigu fonte", "footer.status": "Estáu", "generic.saved": "Guardóse", - "getting_started.heading": "Getting started", + "getting_started.heading": "Comienzu", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "ensin {additional}", @@ -491,7 +493,7 @@ "report.comment.title": "¿Hai daqué más qu'habríemos saber?", "report.forward": "Reunviar a {target}", "report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar a esi sirvidor una copia anónima del informe?", - "report.mute": "Mute", + "report.mute": "Desactivar los avisos", "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": "Siguiente", "report.placeholder": "Comentarios adicionales", @@ -508,11 +510,11 @@ "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "¿Hai dalgún artículu qu'apoye esti informe?", "report.submit": "Unviar", - "report.target": "Report {target}", + "report.target": "Informe de: {target}", "report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.thanks.take_action_actionable": "Mentanto revisamos esti informe, pues tomar midíes contra @{name}:", + "report.thanks.title": "¿Nun quies ver esti conteníu?", + "report.thanks.title_actionable": "Gracies pol informe, el casu xá ta n'investigación.", "report.unfollow": "Dexar de siguir a @{name}", "report.unfollow_explanation": "Sigues a esta cuenta. Pa dexar de ver los sos artículos nel to feed d'aniciu, dexa de siguila.", "report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} artículu} other {Axuntáronse {count} artículos}}", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 08aa5ef3b2..05c328f6af 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", "confirmations.domain_block.confirm": "Заблакіраваць дамен цалкам", "confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.", + "confirmations.edit.confirm": "Рэдагаваць", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Выйсці", "confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?", "confirmations.mute.confirm": "Ігнараваць", @@ -203,7 +205,7 @@ "emoji_button.not_found": "Адпаведныя эмодзі не знойдзены", "emoji_button.objects": "Прадметы", "emoji_button.people": "Людзі", - "emoji_button.recent": "Карыстаныя найчасцей", + "emoji_button.recent": "Чата выкарыстаныя", "emoji_button.search": "Пошук...", "emoji_button.search_results": "Вынікі пошуку", "emoji_button.symbols": "Сімвалы", @@ -354,10 +356,10 @@ "lists.edit.submit": "Змяніць назву", "lists.new.create": "Дадаць спіс", "lists.new.title_placeholder": "Назва новага спіса", - "lists.replies_policy.followed": "Любы карыстальнік, за якім вы падпісаліся", + "lists.replies_policy.followed": "Любы карыстальнік, на якога вы падпісаліся", "lists.replies_policy.list": "Удзельнікі гэтага спісу", "lists.replies_policy.none": "Нікога", - "lists.replies_policy.title": "Паказаць адказы да:", + "lists.replies_policy.title": "Паказваць адказы:", "lists.search": "Шукайце сярод людзей, на якіх Вы падпісаны", "lists.subheading": "Вашыя спісы", "load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index cd6baafac7..248fd1ccbe 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -18,7 +18,7 @@ "account.block": "Блокиране на @{name}", "account.block_domain": "Блокиране на домейн {domain}", "account.blocked": "Блокирани", - "account.browse_more_on_origin_server": "Разглеждане на още в първообразния профил", + "account.browse_more_on_origin_server": "Разглеждане на още в оригиналния профил", "account.cancel_follow_request": "Оттегляне на заявката за последване", "account.direct": "Директно съобщение до @{name}", "account.disable_notifications": "Сприране на известия при публикуване от @{name}", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", "confirmations.domain_block.confirm": "Блокиране на целия домейн", "confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.", + "confirmations.edit.confirm": "Редактиране", + "confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", "confirmations.logout.confirm": "Излизане", "confirmations.logout.message": "Наистина ли искате да излезете?", "confirmations.mute.confirm": "Заглушаване", @@ -353,7 +355,7 @@ "lists.edit": "Промяна на списъка", "lists.edit.submit": "Промяна на заглавие", "lists.new.create": "Добавяне на списък", - "lists.new.title_placeholder": "Име на нов списък", + "lists.new.title_placeholder": "Ново заглавие на списъка", "lists.replies_policy.followed": "Някой последван потребител", "lists.replies_policy.list": "Членуващите в списъка", "lists.replies_policy.none": "Никого", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 07609a478d..7da6f78dc6 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "এই ডোমেন থেকে সব লুকান", "confirmations.domain_block.message": "আপনি কি সত্যিই সত্যই নিশ্চিত যে আপনি পুরো {domain}'টি ব্লক করতে চান? বেশিরভাগ ক্ষেত্রে কয়েকটি লক্ষ্যযুক্ত ব্লক বা নীরবতা যথেষ্ট এবং পছন্দসই। আপনি কোনও পাবলিক টাইমলাইন বা আপনার বিজ্ঞপ্তিগুলিতে সেই ডোমেন থেকে সামগ্রী দেখতে পাবেন না। সেই ডোমেন থেকে আপনার অনুসরণকারীদের সরানো হবে।", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "প্রস্থান", "confirmations.logout.message": "আপনি লগ আউট করতে চান?", "confirmations.mute.confirm": "সরিয়ে ফেলুন", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index bb19a0452d..5cc331af45 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?", "confirmations.domain_block.confirm": "Berzañ an domani a-bezh", "confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzañ an {domain} a-bezh? Peurvuiañ eo trawalc'h berzañ pe mudañ un nebeud implijer·ezed·ien. Ne welot danvez ebet o tont eus an domani-mañ. Dilamet e vo ar c'houmanantoù war an domani-mañ.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.mute.confirm": "Kuzhat", diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json index bd89ec9fd2..d67f73c003 100644 --- a/app/javascript/mastodon/locales/bs.json +++ b/app/javascript/mastodon/locales/bs.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 381deaa0c4..ebfafcbd32 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?", "confirmations.domain_block.confirm": "Bloca el domini sencer", "confirmations.domain_block.message": "Segur que vols blocar {domain} del tot? En la majoria dels casos, només amb blocar o silenciar uns pocs comptes n'hi ha prou i és millor. No veuràs el contingut d’aquest domini en cap de les línies de temps ni en les notificacions. S'eliminaran els teus seguidors d’aquest domini.", + "confirmations.edit.confirm": "Edita", + "confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", "confirmations.logout.confirm": "Tanca la sessió", "confirmations.logout.message": "Segur que vols tancar la sessió?", "confirmations.mute.confirm": "Silencia", @@ -437,7 +439,7 @@ "notifications.group": "{count} notificacions", "notifications.mark_as_read": "Marca cada notificació com a llegida", "notifications.permission_denied": "Les notificacions d’escriptori no estan disponibles perquè prèviament s’ha denegat el permís al navegador", - "notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè el permís del navegador ha estat denegat abans", + "notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè abans s'ha denegat el permís del navegador", "notifications.permission_required": "Les notificacions d'escriptori no estan disponibles perquè el permís requerit no ha estat concedit.", "notifications_permission_banner.enable": "Activa les notificacions d’escriptori", "notifications_permission_banner.how_to_control": "Per a rebre notificacions quan Mastodon no és obert cal activar les notificacions d’escriptori. Pots controlar amb precisió quins tipus d’interaccions generen notificacions d’escriptori després d’activar el botó {icon} de dalt.", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 8349e34bc4..7623b5b993 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.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, one {{counter} Following} other {{counter} Following}}", @@ -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": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.hashtag_warning": "ئەم بڵاوکراوەیە لە ژێر هیچ هاشتاگێکدا دا نانرێت وەک ئەوەیە، کە گشتی نەبێت. تەنها بڵاوکراوە گشتیەکان دەتوانرێ بە هاشتاگ گەڕانی بۆ بکرێت.", "compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.", "compose_form.lock_disclaimer.lock": "قفڵ دراوە", "compose_form.placeholder": "چی لە مێشکتدایە?", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟", "confirmations.domain_block.confirm": "بلۆککردنی هەموو دۆمەینەکە", "confirmations.domain_block.message": "ئایا بەڕاستی، بەڕاستی تۆ دەتەوێت هەموو {domain} بلۆک بکەیت؟ لە زۆربەی حاڵەتەکاندا چەند بلۆکێکی ئامانجدار یان بێدەنگەکان پێویست و پەسەندن. تۆ ناوەڕۆک ێک نابینیت لە دۆمەینەکە لە هیچ هێڵی کاتی گشتی یان ئاگانامەکانت. شوێنکەوتوانی تۆ لەو دۆمەینەوە لادەبرێن.", + "confirmations.edit.confirm": "دەستکاری", + "confirmations.edit.message": "دەستکاری کردنی ئێستا: دەبێتە هۆی نووسینەوەی ئەو پەیامەی، کە ئێستا داتدەڕشت. ئایا دڵنیای، کە دەتەوێت بەردەوام بیت؟", "confirmations.logout.confirm": "چوونە دەرەوە", "confirmations.logout.message": "ئایا دڵنیایت لەوەی دەتەوێت بچیتە دەرەوە?", "confirmations.mute.confirm": "بێدەنگ", @@ -221,7 +223,7 @@ "empty_column.favourites": "کەس ئەم توتەی دڵخواز نەکردووە،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.", "empty_column.follow_recommendations": "پێدەچێت هیچ پێشنیارێک بۆ تۆ دروست نەکرێت. دەتوانیت هەوڵبدەیت گەڕان بەکاربهێنیت بۆ گەڕان بەدوای ئەو کەسانەی کە ڕەنگە بیانناسیت یان بەدوای هاشتاگە ڕەوتەکاندا بگەڕێیت.", "empty_column.follow_requests": "تۆ هێشتا هیچ داواکارییەکی بەدواداچووت نیە. کاتێک یەکێکت بۆ هات، لێرە دەرئەکەویت.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "تۆ هێشتا شوێن هیچ هاشتاگێک نەکەوتوویت. کاتێک کردت، ئەوان لێرە دەردەکەون.", "empty_column.hashtag": "هێشتا هیچ شتێک لەم هاشتاگەدا نییە.", "empty_column.home": "تایم لاینی ماڵەوەت بەتاڵە! سەردانی {public} بکە یان گەڕان بەکاربێنە بۆ دەستپێکردن و بینینی بەکارهێنەرانی تر.", "empty_column.home.suggestions": "چەند پێشنیارێک ببینە", @@ -237,42 +239,42 @@ "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": "ئەم پۆلە فلتەرە بەسەرچووە، پێویستە بەرواری بەسەرچوونی بگۆڕیت بۆ ئەوەی جێبەجێی بکات.", "filter_modal.added.expired_title": "فلتەری بەسەرچووە!", "filter_modal.added.review_and_configure": "بۆ پێداچوونەوە و ڕێکخستنی زیاتری ئەم پۆلە فلتەرە، بچۆ بۆ {settings_link}.", - "filter_modal.added.review_and_configure_title": "Filter settings", - "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.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.added.review_and_configure_title": "ڕێکخستنەکانی پاڵاوتن", + "filter_modal.added.settings_link": "پەڕەی ڕێکخستن", + "filter_modal.added.short_explanation": "بڵاوکراوەکە زیادکرا بۆ ئەو پاڵاوتنانەی خوارەوە: {title}.", + "filter_modal.added.title": "پاڵێو زیادکرا!", + "filter_modal.select_filter.context_mismatch": "لەم چوارچێوەیەدا کارپێکراو نییە", + "filter_modal.select_filter.expired": "بەسەرچووە", + "filter_modal.select_filter.prompt_new": "پۆلێنی نوێ: {name}", + "filter_modal.select_filter.search": "گەڕان یان دروستکردن", + "filter_modal.select_filter.subtitle": "بەکارهێنانی پۆلێنی بەردەست یان دروستکردنی پۆلێنێکی نوێ", + "filter_modal.select_filter.title": "ئەم بڵاوکراوەیە بپاڵێوە", + "filter_modal.title.status": "بڵاوکراوەیەک بپاڵێوە", "follow_recommendations.done": "تەواو", "follow_recommendations.heading": "شوێن ئەو کەسانە بکەون کە دەتەوێت پۆستەکان ببینیت لە! لێرەدا چەند پێشنیارێک هەیە.", "follow_recommendations.lead": "بابەتەکانی ئەو کەسانەی کە بەدوایدا دەگەڕێیت بە فەرمانی کرۆنۆلۆجی لە خواردنەکانی ماڵەکەت دەردەکەون. مەترسە لە هەڵەکردن، دەتوانیت بە ئاسانی خەڵک هەڵبکەیت هەر کاتێک!", "follow_request.authorize": "ده‌سه‌ڵاتپێدراو", "follow_request.reject": "ڕەتکردنەوە", "follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.", - "followed_tags": "Followed hashtags", - "footer.about": "About", - "footer.directory": "Profiles directory", - "footer.get_app": "Get the app", - "footer.invite": "Invite people", - "footer.keyboard_shortcuts": "Keyboard shortcuts", - "footer.privacy_policy": "Privacy policy", - "footer.source_code": "View source code", - "footer.status": "Status", + "followed_tags": "هاشتاگە شوێنکەوتووەکان", + "footer.about": "دەربارە", + "footer.directory": "ڕابەری پەڕەی ناساندن", + "footer.get_app": "بەرنامەکە بەدەست بێنە", + "footer.invite": "بانگهێشتکردنی خەڵک", + "footer.keyboard_shortcuts": "کورتەڕێکانی تەختەکلیک", + "footer.privacy_policy": "سیاسەتی تایبەتمەندێتی", + "footer.source_code": "پیشاندانی کۆدی سەرچاوە", + "footer.status": "دۆخ", "generic.saved": "پاشکەوتکرا", "getting_started.heading": "دەست پێکردن", "hashtag.column_header.tag_mode.all": "و {additional}", @@ -284,19 +286,19 @@ "hashtag.column_settings.tag_mode.any": "هەر کام لەمانە", "hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە", "hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", + "hashtag.follow": "شوێنکەوتنی هاشتاگ", + "hashtag.unfollow": "شوێن نەکەوتنی هاشتاگ", "home.column_settings.basic": "بنەڕەتی", "home.column_settings.show_reblogs": "پیشاندانی بەهێزکردن", "home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە", "home.hide_announcements": "شاردنەوەی راگەیەنراوەکان", "home.show_announcements": "پیشاندانی راگەیەنراوەکان", - "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", - "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", - "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", - "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", - "interaction_modal.on_another_server": "On a different server", - "interaction_modal.on_this_server": "On this server", + "interaction_modal.description.favourite": "بە هەژمارێک لەسەر ماستدۆن، دەتوانیت ئەم بڵاوکراوەیە زیادبکەیت بۆ دڵخوازەکانت. بۆ ئاگادارکردنەوەی بڵاوکەرەوەکە لە پێزانینەکەت و هێشتنەوەی بۆ دواتر.", + "interaction_modal.description.follow": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت شوێن {name} بکەویت بۆ ئەوەی بڵاوکراوەکانی بگاتە پەڕەی سەرەکیت.", + "interaction_modal.description.reblog": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت ئەم بڵاوکراوەیە بەرزبکەیتەوە تاوەکو بەژداری پێبکەیت لەگەل شوێنکەوتوانت.", + "interaction_modal.description.reply": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت وەڵامی ئەم بڵاوکراوەیە بدەیتەوە.", + "interaction_modal.on_another_server": "لەسەر ڕاژەیەکی جیا", + "interaction_modal.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.title.favourite": "Favourite {name}'s post", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 9b75ceeb17..2ede2311ef 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Piattà tuttu u duminiu", "confirmations.domain_block.message": "Site veramente sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Scunnettassi", "confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?", "confirmations.mute.confirm": "Piattà", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index e07ad6ae11..97bc50c869 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?", "confirmations.domain_block.confirm": "Blokovat celou doménu", "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.", + "confirmations.edit.confirm": "Upravit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Odhlásit se", "confirmations.logout.message": "Opravdu se chcete odhlásit?", "confirmations.mute.confirm": "Skrýt", diff --git a/app/javascript/mastodon/locales/csb.json b/app/javascript/mastodon/locales/csb.json index 884020da1d..03c5af685b 100644 --- a/app/javascript/mastodon/locales/csb.json +++ b/app/javascript/mastodon/locales/csb.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index c664046f0c..21c0cd2bef 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?", "confirmations.domain_block.confirm": "Blocio parth cyfan", "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.", + "confirmations.edit.confirm": "Golygu", + "confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?", "confirmations.logout.confirm": "Allgofnodi", "confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?", "confirmations.mute.confirm": "Tewi", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 1db8b030d3..6caa763f04 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?", "confirmations.domain_block.confirm": "Blokér hele domænet", "confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.", + "confirmations.edit.confirm": "Redigér", + "confirmations.edit.message": "Redigeres nu, overskrive den besked, der forfattes pt. Fortsæt alligevel?", "confirmations.logout.confirm": "Log ud", "confirmations.logout.message": "Er du sikker på, at du vil logge ud?", "confirmations.mute.confirm": "Skjul (mute)", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index b3cdd4fda5..dfc478ae5c 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -53,7 +53,7 @@ "account.posts": "Beiträge", "account.posts_with_replies": "Beiträge und Antworten", "account.report": "@{name} melden", - "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen", + "account.requested": "Die Genehmigung steht noch aus. Klicke hier, um die Folgeanfrage abzubrechen", "account.requested_follow": "{name} hat angefragt, dir folgen zu dürfen", "account.share": "Profil von @{name} teilen", "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen", @@ -106,7 +106,7 @@ "column.directory": "Profile durchsuchen", "column.domain_blocks": "Gesperrte Domains", "column.favourites": "Favoriten", - "column.follow_requests": "Follower-Anfragen", + "column.follow_requests": "Folgeanfragen", "column.home": "Startseite", "column.lists": "Listen", "column.mutes": "Stummgeschaltete Profile", @@ -162,8 +162,10 @@ "confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?", "confirmations.domain_block.confirm": "Domain sperren", "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} sperren willst? In den meisten Fällen reichen ein paar gezielte Sperren oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.", + "confirmations.edit.confirm": "Bearbeiten", + "confirmations.edit.message": "Das Bearbeiten überschreibt die Nachricht, die du gerade verfasst. Bist du dir sicher, dass du fortfahren möchtest?", "confirmations.logout.confirm": "Abmelden", - "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?", + "confirmations.logout.message": "Bist du dir sicher, dass du dich abmelden möchtest?", "confirmations.mute.confirm": "Stummschalten", "confirmations.mute.explanation": "Dies wird Beiträge von dieser Person und Beiträge, die diese Person erwähnen, ausblenden, aber es wird der Person trotzdem erlauben, deine Beiträge zu sehen und dir zu folgen.", "confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?", @@ -220,7 +222,7 @@ "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.", "empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.", "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.", - "empty_column.follow_requests": "Es liegen derzeit keine Follower-Anfragen vor. Sobald du eine erhältst, wird sie hier angezeigt.", + "empty_column.follow_requests": "Es liegen derzeit keine Folgeanfragen vor. Sobald du eine erhältst, wird sie hier angezeigt.", "empty_column.followed_tags": "Du folgst noch keinen Hashtags. Wenn du dies tust, werden sie hier erscheinen.", "empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.", "empty_column.home": "Die Timeline deiner Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}", @@ -331,7 +333,7 @@ "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen", "keyboard_shortcuts.profile": "Profil öffnen", "keyboard_shortcuts.reply": "auf Beitrag antworten", - "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen", + "keyboard_shortcuts.requests": "Liste der Folgeanfragen öffnen", "keyboard_shortcuts.search": "Suchleiste fokussieren", "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/ausblenden", "keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen", @@ -381,9 +383,9 @@ "navigation_bar.explore": "Entdecken", "navigation_bar.favourites": "Favoriten", "navigation_bar.filters": "Stummgeschaltete Wörter", - "navigation_bar.follow_requests": "Follower-Anfragen", + "navigation_bar.follow_requests": "Folgeanfragen", "navigation_bar.followed_tags": "Gefolgte Hashtags", - "navigation_bar.follows_and_followers": "Folge ich und Follower", + "navigation_bar.follows_and_followers": "Follower und Folge ich", "navigation_bar.lists": "Listen", "navigation_bar.logout": "Abmelden", "navigation_bar.mutes": "Stummgeschaltete Profile", @@ -415,7 +417,7 @@ "notifications.column_settings.filter_bar.category": "Filterleiste:", "notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen", "notifications.column_settings.follow": "Neue Follower:", - "notifications.column_settings.follow_request": "Neue Follower-Anfragen:", + "notifications.column_settings.follow_request": "Neue Folgeanfragen:", "notifications.column_settings.mention": "Erwähnungen:", "notifications.column_settings.poll": "Umfrageergebnisse:", "notifications.column_settings.push": "Push-Benachrichtigungen", @@ -502,7 +504,7 @@ "report.reasons.spam": "Das ist Spam", "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten", "report.reasons.violation": "Er verstößt gegen Serverregeln", - "report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt", + "report.reasons.violation_description": "Du bist dir sicher, dass eine bestimmte Regel gebrochen wurde", "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus", "report.rules.title": "Welche Regeln werden verletzt?", "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus", @@ -523,10 +525,10 @@ "search.placeholder": "Suche", "search.search_or_paste": "Suchen oder URL einfügen", "search_popout.search_format": "Erweiterte Suche", - "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 Profilnamen, Anzeigenamen oder Hashtags.", + "search_popout.tips.full_text": "Die Freitextsuche findet Beiträge, die du geschrieben, favorisiert und geteilt hast – oder in denen du erwähnt worden bist. Außerdem gibt sie übereinstimmende Anzeigenamen, Profilnamen und Hashtags aus.", "search_popout.tips.hashtag": "Hashtag", "search_popout.tips.status": "Beitrag", - "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Profilnamen und Hashtags zurück", + "search_popout.tips.text": "Die Freitextsuche findet Anzeigenamen, Profilnamen und Hashtags", "search_popout.tips.user": "Profil", "search_results.accounts": "Profile", "search_results.all": "Alles", @@ -620,14 +622,14 @@ "trends.counter_by_accounts": "{count, plural, one {{counter} Profil} other {{counter} Profile}} {days, plural, one {seit gestern} other {in {days} Tagen}}", "trends.trending_now": "Aktuelle Trends", "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.", - "units.short.billion": "{count} Mrd", - "units.short.million": "{count} Mio", - "units.short.thousand": "{count} Tsd", + "units.short.billion": "{count} Mrd.", + "units.short.million": "{count} Mio.", + "units.short.thousand": "{count} Tsd.", "upload_area.title": "Zum Hochladen hereinziehen", "upload_button.label": "Bilder, Videos oder Audios hinzufügen", "upload_error.limit": "Dateiupload-Limit überschritten.", "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.", - "upload_form.audio_description": "Für Gehörlose und hörbehinderte Menschen beschreiben", + "upload_form.audio_description": "Beschreibe für Menschen mit Hörbehinderung", "upload_form.description": "Beschreibe für Menschen mit Sehbehinderung", "upload_form.description_missing": "Keine Beschreibung hinzugefügt", "upload_form.edit": "Bearbeiten", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index c09411f652..5365669454 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -833,6 +833,14 @@ "defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "id": "confirmations.reply.message" }, + { + "defaultMessage": "Edit", + "id": "confirmations.edit.confirm" + }, + { + "defaultMessage": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "id": "confirmations.edit.message" + }, { "defaultMessage": "Hide entire domain", "id": "confirmations.domain_block.confirm" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 3d71f3c5c4..0813a98577 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Έχετε μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απορρίψτε τις ούτως ή άλλως;", "confirmations.domain_block.confirm": "Απόκρυψη ολόκληρου του τομέα", "confirmations.domain_block.message": "Σίγουρα θες να μπλοκάρεις ολόκληρο το {domain}; Συνήθως μερικά εστιασμένα μπλοκ ή αποσιωπήσεις επαρκούν και προτιμούνται. Δεν θα βλέπεις περιεχόμενο από αυτό τον κόμβο σε καμία δημόσια ροή, ούτε στις ειδοποιήσεις σου. Όσους ακόλουθους έχεις αυτό αυτό τον κόμβο θα αφαιρεθούν.", + "confirmations.edit.confirm": "Επεξεργασία", + "confirmations.edit.message": "Αν το επεξεργαστείτε τώρα θα αντικατασταθεί το μήνυμα που συνθέτετε. Είστε σίγουροι ότι θέλετε να συνεχίσετε;", "confirmations.logout.confirm": "Αποσύνδεση", "confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;", "confirmations.mute.confirm": "Αποσιώπηση", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 4ce198b908..974c6dd84a 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Block entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index fde1636282..93b668d358 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -138,8 +138,8 @@ "compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon", "compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn", "compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton", - "compose_form.publish": "Hup", - "compose_form.publish_form": "Hup", + "compose_form.publish": "Afiŝi", + "compose_form.publish_form": "Afiŝi", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Konservi ŝanĝojn", "compose_form.sensitive.hide": "{count, plural, one {Marki la plurmedio kiel tikla} other {Marki la plurmedioj kiel tiklaj}}", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la plurmedio, ĉu vi forĵetu ilin malgraŭe?", "confirmations.domain_block.confirm": "Bloki la tutan domajnon", "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.", + "confirmations.edit.confirm": "Redakti", + "confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.logout.confirm": "Adiaŭi", "confirmations.logout.message": "Ĉu vi certas ke vi volas adiaŭi?", "confirmations.mute.confirm": "Silentigi", @@ -170,7 +172,7 @@ "confirmations.redraft.confirm": "Forigi kaj reskribi", "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.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.unfollow.confirm": "Ne plu sekvi", "confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?", "conversation.delete": "Forigi konversacion", @@ -188,10 +190,10 @@ "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 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_statuses": "Ĉi tiuj afiŝ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.", - "embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.", + "dismissable_banner.public_timeline": "Ĉi tiuj estas plej lastaj publikaj afiŝoj de personoj ĉe ĉi tiu kaj aliaj serviloj de la malcentra reto kiun tiu ĉi servilo scias.", + "embed.instructions": "Enkorpigu ĉi tiun afiŝon en vian retejon per kopio de la suba kodo.", "embed.preview": "Ĝi aperos tiel:", "emoji_button.activity": "Agadoj", "emoji_button.clear": "Forviŝi", @@ -209,23 +211,23 @@ "emoji_button.symbols": "Simboloj", "emoji_button.travel": "Vojaĝoj kaj lokoj", "empty_column.account_suspended": "Konto suspendita", - "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!", + "empty_column.account_timeline": "Neniu afiŝo ĉi tie!", "empty_column.account_unavailable": "Profilo ne disponebla", "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.", - "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", + "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis afiŝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", "empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!", - "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.", + "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, tiu 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 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.favourites": "Ankoraŭ neniu stelumis ĉi tiun afiŝ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.", "empty_column.followed_tags": "Vi ankoraŭ ne sekvas iujn kradvortojn. Kiam vi faras, ili aperos ĉi tie.", "empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.", "empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.", "empty_column.home.suggestions": "Vidu iujn sugestojn", - "empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn mesaĝojn, ili aperos ĉi tie.", + "empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn afiŝojn, ili aperos ĉi tie.", "empty_column.lists": "Vi ankoraŭ ne havas liston. Kiam vi kreos iun, ĝi aperos ĉi tie.", "empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.", "empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.", @@ -242,7 +244,7 @@ "explore.trending_links": "Novaĵoj", "explore.trending_statuses": "Afiŝoj", "explore.trending_tags": "Kradvortoj", - "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_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.", "filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!", "filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.", "filter_modal.added.expired_title": "Eksvalida filtrilo!", @@ -402,8 +404,8 @@ "notification.mention": "{name} menciis vin", "notification.own_poll": "Via enketo finiĝis", "notification.poll": "Partoprenita balotenketo finiĝis", - "notification.reblog": "{name} diskonigis vian mesaĝon", - "notification.status": "{name} ĵus afiŝita", + "notification.reblog": "{name} diskonigis vian afiŝon", + "notification.status": "{name} ĵus afiŝis", "notification.update": "{name} redaktis afiŝon", "notifications.clear": "Forviŝi sciigojn", "notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?", @@ -523,7 +525,7 @@ "search.placeholder": "Serĉi", "search.search_or_paste": "Serĉu aŭ algluu URL-on", "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.full_text": "Simpla teksto retrovas la afiŝ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": "afiŝoj", "search_popout.tips.text": "Simpla teksto montras la kongruajn afiŝitajn nomojn, uzantnomojn kaj kradvortojn", @@ -551,7 +553,7 @@ "status.block": "Bloki @{name}", "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", - "status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas", + "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", "status.copy": "Kopii la ligilon al la mesaĝo", "status.delete": "Forigi", "status.detailed_status": "Detala konversacia vido", @@ -579,7 +581,7 @@ "status.reblog": "Diskonigi", "status.reblog_private": "Diskonigi kun la sama videbleco", "status.reblogged_by": "{name} diskonigis", - "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun mesaĝon. Kiam iu faras tion, ri aperos ĉi tie.", + "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.", "status.redraft": "Forigi kaj reskribi", "status.remove_bookmark": "Forigi legosignon", "status.replied_to": "Respondis al {name}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index f48187e5da..93238efbc0 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?", "confirmations.domain_block.confirm": "Bloquear dominio entero", "confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.", + "confirmations.edit.confirm": "Editar", + "confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 0c6b49593a..56e891611b 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?", "confirmations.domain_block.confirm": "Ocultar dominio entero", "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", + "confirmations.edit.confirm": "Editar", + "confirmations.edit.message": "Editar sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 47c6edd829..61e831526c 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?", "confirmations.domain_block.confirm": "Ocultar dominio entero", "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", + "confirmations.edit.confirm": "Editar", + "confirmations.edit.message": "Editar ahora reemplazará el mensaje que está escribiendo. ¿Está seguro que quiere proceder?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 0f9f33080c..9b8c83563c 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -162,6 +162,8 @@ "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.edit.confirm": "Muuda", + "confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?", "confirmations.logout.confirm": "Välju", "confirmations.logout.message": "Kas oled kindel, et soovid välja logida?", "confirmations.mute.confirm": "Vaigista", @@ -398,8 +400,8 @@ "notification.admin.sign_up": "{name} registreerus", "notification.favourite": "{name} märkis su postituse lemmikuks", "notification.follow": "{name} alustas su jälgimist", - "notification.follow_request": "{name} soovib teid jälgida", - "notification.mention": "{name} mainis teid", + "notification.follow_request": "{name} soovib sind jälgida", + "notification.mention": "{name} mainis sind", "notification.own_poll": "Su küsitlus on lõppenud", "notification.poll": "Küsitlus, milles osalesid, on lõppenud", "notification.reblog": "{name} jagas edasi postitust", @@ -603,7 +605,7 @@ "subscribed_languages.save": "Salvesta muudatused", "subscribed_languages.target": "Muuda tellitud keeli {target} jaoks", "suggestions.dismiss": "Eira soovitust", - "suggestions.header": "Teid võib huvitada…", + "suggestions.header": "Sind võib huvitada…", "tabs_bar.federated_timeline": "Föderatiivne", "tabs_bar.home": "Kodu", "tabs_bar.local_timeline": "Kohalik", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 39eaeda023..e5f2116bc7 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?", "confirmations.domain_block.confirm": "Ezkutatu domeinu osoa", "confirmations.domain_block.message": "Ziur, erabat ziur, {domain} domeinu osoa blokeatu nahi duzula? Gehienetan gutxi batzuk blokeatu edo mututzearekin nahikoa da. Ez duzu domeinu horretako edukirik ikusiko denbora lerroetan edo jakinarazpenetan. Domeinu horretako zure jarraitzaileak kenduko dira ere.", + "confirmations.edit.confirm": "Editatu", + "confirmations.edit.message": "Orain editatzen baduzu, idazten zauden mezua gainidatziko da. Ziur al zaude jarraitu nahi duzula?", "confirmations.logout.confirm": "Amaitu saioa", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.mute.confirm": "Mututu", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 10c1b12fb9..acb7525b2e 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟", "confirmations.domain_block.confirm": "مسدود کردن تمام دامنه", "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهی‌هایتان نخواهید دید. پی‌گیرانتان از این دامنه هم برداشته خواهند شد.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "خروج از حساب", "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟", "confirmations.mute.confirm": "خموش", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index f41082ed7f..8cff515bde 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?", "confirmations.domain_block.confirm": "Estä koko palvelu", "confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.", + "confirmations.edit.confirm": "Muokkaa", + "confirmations.edit.message": "Tässä tilanteessa muokkaus korvaa tällä hetkellä työstämäsi viestin. Haluatko varmasti jatkaa?", "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", @@ -563,7 +565,7 @@ "status.favourite": "Lisää suosikkeihin", "status.filter": "Suodata tämä viesti", "status.filtered": "Suodatettu", - "status.hide": "Piilota viesti", + "status.hide": "Piilota julkaisu", "status.history.created": "{name} luotu {date}", "status.history.edited": "{name} muokkasi {date}", "status.load_more": "Lataa lisää", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 3b67c3d75e..db2247c4b1 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tú hevur broytingar í miðlalýsingini ella undansýningini, sum ikki eru goymdar. Vilt tú kortini vraka?", "confirmations.domain_block.confirm": "Banna heilum økisnavni", "confirmations.domain_block.message": "Ert tú púra, púra vís/ur í, at tú vilt banna øllum {domain}? Í flestu førum er nóg mikið og betri, bert at banna ella doyva onkrum ávísum. Tú fert eingi evni at síggja frá økisnavninum á nakrari almennari tíðarrás ella í tínum fráboðanum. Tínir fylgjarar undir økisnavninum verða eisini strikaðir.", + "confirmations.edit.confirm": "Rætta", + "confirmations.edit.message": "Rættingar, sum verða gjørdar nú, skriva yvir boðini, sum tú ert í holt við. Ert tú vís/ur í, at tú vilt halda fram?", "confirmations.logout.confirm": "Rita út", "confirmations.logout.message": "Ert tú vís/ur í, at tú vilt útrita teg?", "confirmations.mute.confirm": "Doyv", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 4b72586856..fe7055d57a 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?", "confirmations.domain_block.confirm": "Bloquer ce domaine entier", "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?", "confirmations.mute.confirm": "Masquer", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 1dcf41c850..2c38ad4960 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?", "confirmations.domain_block.confirm": "Bloquer tout le domaine", "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", + "confirmations.edit.confirm": "Éditer", + "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", "confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?", "confirmations.mute.confirm": "Masquer", @@ -170,7 +172,7 @@ "confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer ce statut pour le réécrire ? Ses partages ainsi que ses mises en favori seront perdus et ses réponses seront orphelines.", "confirmations.reply.confirm": "Répondre", - "confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez actuellement. Voulez-vous vraiment continuer ?", + "confirmations.reply.message": "Répondre maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", "confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?", "conversation.delete": "Supprimer la conversation", @@ -298,7 +300,7 @@ "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", - "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", + "interaction_modal.preamble": "Mastodon étant décentralisé, vous pouvez utiliser votre compte existant sur un autre serveur Mastodon, ou sur une autre plateforme compatible, si vous n'avez pas de compte ici.", "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Partager le message de {name}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 61273f58f1..4ac165471e 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Binne jo echt wis dat jo alles fan {domain} negearje wolle? Yn de measte gefallen is it blokkearjen of negearjen fan in pear spesifike persoanen genôch en better. Jo sille gjin berjochten fan dizze server op iepenbiere tiidlinen sjen of yn jo meldingen. Jo folgers fan dizze server wurde fuortsmiten.", + "confirmations.edit.confirm": "Bewurkje", + "confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?", "confirmations.logout.confirm": "Ofmelde", "confirmations.logout.message": "Bisto wis datsto ôfmelde wolst?", "confirmations.mute.confirm": "Negearje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 9212d16bd8..12769ba13b 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?", "confirmations.domain_block.confirm": "Bac fearann go hiomlán", "confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Logáil amach", "confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?", "confirmations.mute.confirm": "Balbhaigh", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index ca3dd0f2f8..f5eb5c1406 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", "confirmations.domain_block.confirm": "Bac an àrainn uile gu lèir", "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Clàraich a-mach", "confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?", "confirmations.mute.confirm": "Mùch", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 1033e6d7dd..dc5bd31d62 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tes cambios sen gardar para a vista previa ou descrición do multimedia, descartamos os cambios?", "confirmations.domain_block.confirm": "Agochar dominio enteiro", "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.", + "confirmations.edit.confirm": "Editar", + "confirmations.edit.message": "Ao editar sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?", "confirmations.logout.confirm": "Pechar sesión", "confirmations.logout.message": "Desexas pechar a sesión?", "confirmations.mute.confirm": "Acalar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 7e3cee334a..f5e6230b87 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", "confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)", "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו", + "confirmations.edit.confirm": "עריכה", + "confirmations.edit.message": "עריכת תגובה קודמת תדרוס את ההודעה שכבר התחלת לכתוב. האם את.ה בטוח.ה שברצונך להמשיך?", "confirmations.logout.confirm": "התנתקות", "confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?", "confirmations.mute.confirm": "להשתיק", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 24745cca59..8b0569860b 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "लिस्ट में जोड़ें", "confirmations.domain_block.confirm": "संपूर्ण डोमेन छिपाएं", "confirmations.domain_block.message": "क्या आप वास्तव में, वास्तव में आप पूरे {domain} को ब्लॉक करना चाहते हैं? ज्यादातर मामलों में कुछ लक्षित ब्लॉक या म्यूट पर्याप्त और बेहतर हैं। आप किसी भी सार्वजनिक समय-सीमा या अपनी सूचनाओं में उस डोमेन की सामग्री नहीं देखेंगे। उस डोमेन से आपके फॉलोवर्स को हटा दिया जाएगा।", + "confirmations.edit.confirm": "संशोधित करें", + "confirmations.edit.message": "अभी संपादन किया तो वो संदेश मिट जायेगा जिसे आप लिख रहे थे। क्या आप जारी रखना चाहते हैं?", "confirmations.logout.confirm": "लॉग आउट करें", "confirmations.logout.message": "आप सुनिश्चित हैं कि लॉगआउट करना चाहते हैं?", "confirmations.mute.confirm": "शांत", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 9be500a7e5..2ee74d4606 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Postoje nespremljene promjene u opisu medija ili u pretpregledu, svejedno ih odbaciti?", "confirmations.domain_block.confirm": "Blokiraj cijelu domenu", "confirmations.domain_block.message": "Jeste li zaista, zaista sigurni da želite blokirati cijelu domenu {domain}? U većini slučajeva dovoljno je i preferirano nekoliko ciljanih blokiranja ili utišavanja. Nećete vidjeti sadržaj s te domene ni u kojim javnim vremenskim crtama ili Vašim obavijestima. Vaši pratitelji s te domene bit će uklonjeni.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Odjavi se", "confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?", "confirmations.mute.confirm": "Utišaj", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index b5ca1ef3bd..4447aa2d19 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Elmentetlen változtatásaid vannak a média leírásában vagy előnézetében. Eldobjuk őket?", "confirmations.domain_block.confirm": "Teljes domain elrejtése", "confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.", + "confirmations.edit.confirm": "Szerkesztés", + "confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?", "confirmations.logout.confirm": "Kijelentkezés", "confirmations.logout.message": "Biztos, hogy kijelentkezel?", "confirmations.mute.confirm": "Némítás", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index cb1dd1bd2d..87ecee6469 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Թաքցնել ամբողջ տիրույթը", "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրոյթը։ Սովորաբար մի երկու թիրախաւորուած արգելափակում կամ լռեցում բաւական է ու նախընտրելի։", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Ելք", "confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ", "confirmations.mute.confirm": "Լռեցնել", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index a6db3207db..1f93219c8f 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?", "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", "confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Keluar", "confirmations.logout.message": "Apakah Anda yakin ingin keluar?", "confirmations.mute.confirm": "Bisukan", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index 69e4ae08a7..3d2cd77726 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index fedabed58e..b6f61d23bc 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Vu havas nesparita chanji di mediodeskript o prevido, vu volas jus efacar?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Ekirez", "confirmations.logout.message": "Ka tu certe volas ekirar?", "confirmations.mute.confirm": "Silencigez", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 0d5b08b683..3611b26ed4 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?", "confirmations.domain_block.confirm": "Útiloka allt lénið", "confirmations.domain_block.message": "Ertu alveg algjörlega viss um að þú viljir loka á allt {domain}? Í flestum tilfellum er vænlegra að nota færri en markvissari útilokanir eða að þagga niður tiltekna aðila. Þú munt ekki sjá efni frá þessu léni í neinum opinberum tímalínum eða í tilkynningunum þínum. Fylgjendur þínir frá þessu léni verða fjarlægðir.", + "confirmations.edit.confirm": "Breyta", + "confirmations.edit.message": "Ef þú breytir núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?", "confirmations.logout.confirm": "Skrá út", "confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?", "confirmations.mute.confirm": "Þagga", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 7914b54ab1..ce8f45fabc 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?", "confirmations.domain_block.confirm": "Blocca l'intero dominio", "confirmations.domain_block.message": "Sei davvero sicuro di voler bloccare l'intero {domain}? In gran parte dei casi, è sufficiente e preferibile bloccare o silenziare alcuni profili. Non visualizzerai i contenuti da quel dominio in alcuna cronologia pubblica o tra le tue notifiche. I tuoi seguaci da quel dominio saranno rimossi.", + "confirmations.edit.confirm": "Modifica", + "confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?", "confirmations.logout.confirm": "Disconnettiti", "confirmations.logout.message": "Sei sicuro di volerti disconnettere?", "confirmations.mute.confirm": "Silenzia", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index ff50491ca0..92e9da6eeb 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "メディアの説明またはプレビューに保存されていない変更があります。それでも破棄しますか?", "confirmations.domain_block.confirm": "ドメイン全体をブロック", "confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。", + "confirmations.edit.confirm": "編集", + "confirmations.edit.message": "今編集すると現在作成中のメッセージが上書きされます。本当に実行しますか?", "confirmations.logout.confirm": "ログアウト", "confirmations.logout.message": "本当にログアウトしますか?", "confirmations.mute.confirm": "ミュート", @@ -244,7 +246,7 @@ "explore.trending_tags": "ハッシュタグ", "filter_modal.added.context_mismatch_explanation": "このフィルターカテゴリーはあなたがアクセスした投稿のコンテキストには適用されません。この投稿のコンテキストでもフィルターを適用するにはフィルターを編集する必要があります。", "filter_modal.added.context_mismatch_title": "コンテキストが一致しません!", - "filter_modal.added.expired_explanation": "このフィルターカテゴリは有効期限が切れています。適用するには有効期限を更新してください。", + "filter_modal.added.expired_explanation": "このフィルターカテゴリーは有効期限が切れています。適用するには有効期限を更新してください。", "filter_modal.added.expired_title": "フィルターの有効期限が切れています!", "filter_modal.added.review_and_configure": "このフィルターカテゴリーを確認して設定するには、{settings_link}に移動します。", "filter_modal.added.review_and_configure_title": "フィルター設定", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 2158a8e0f3..9ebdfc989f 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "მთელი დომენის დამალვა", "confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "გაჩუმება", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index c3eb3d37c5..cf02895c59 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Ffer taɣult meṛṛa", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Ffeɣ", "confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?", "confirmations.mute.confirm": "Sgugem", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 297885a19e..6a9195c4ba 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Бұл доменді бұғатта", "confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Шығу", "confirmations.logout.message": "Шығатыныңызға сенімдісіз бе?", "confirmations.mute.confirm": "Үнсіз қылу", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 4c7ed9a84f..f81a47fa91 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index e5a73258d5..babd3b1ddb 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?", "confirmations.domain_block.confirm": "도메인 전체를 차단", "confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 콘텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.", + "confirmations.edit.confirm": "수정", + "confirmations.edit.message": "지금 수정하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?", "confirmations.logout.confirm": "로그아웃", "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", "confirmations.mute.confirm": "뮤트", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index ad53c35771..c927d96584 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?", "confirmations.domain_block.confirm": "Tevahiya navperê asteng bike", "confirmations.domain_block.message": "Tu pê bawerî ku tu dixwazî tevahiya {domain} asteng bikî? Di gelek rewşan de astengkirin an jî bêdengkirin têrê dike û tê hilbijartin. Tu nikarî naveroka vê navperê di demnameyê an jî agahdariyên xwe de bibînî. Şopînerên te yê di vê navperê wê werin jêbirin.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Derkeve", "confirmations.logout.message": "Ma tu dixwazî ku derkevî?", "confirmations.mute.confirm": "Bêdeng bike", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index db4f0022e4..9a20c2ebfb 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -1,5 +1,5 @@ { - "about.blocks": "Moderated servers", + "about.blocks": "Leurennow koswys", "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", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Lettya gorfarth dhien", "confirmations.domain_block.message": "Owgh hwi wir, wir sur a vynnes lettya'n {domain} dhien? Y'n brassa rann a gasow, boghes lettyansow medrys po tawheansow yw lowr ha gwell. Ny wrewgh hwi gweles dalgh a'n worfarth na yn py amserlin boblek pynag po yn agas gwarnyansow. Agas holyoryon an worfarth na a vydh diles.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Digelmi", "confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?", "confirmations.mute.confirm": "Tawhe", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 2634a6f066..173ca7c612 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Confutare", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index a2dac91ca1..fd4bbdd95e 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index ba14ec5c0c..9a3e3219e6 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -12,7 +12,7 @@ "about.powered_by": "Decentralizētu sociālo tīklu nodrošina {mastodon}", "about.rules": "Servera noteikumi", "account.account_note_header": "Piezīme", - "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta", + "account.add_or_remove_from_list": "Pievienot vai Noņemt no sarakstiem", "account.badges.bot": "Robots", "account.badges.group": "Grupa", "account.block": "Bloķēt @{name}", @@ -105,7 +105,7 @@ "column.direct": "Privātie ziņojumi", "column.directory": "Pārlūkot profilus", "column.domain_blocks": "Bloķētie domēni", - "column.favourites": "Izlase", + "column.favourites": "Izlases", "column.follow_requests": "Sekošanas pieprasījumi", "column.home": "Sākums", "column.lists": "Saraksti", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā. Vēlies tās atmest?", "confirmations.domain_block.confirm": "Bloķēt visu domēnu", "confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.", + "confirmations.edit.confirm": "Rediģēt", + "confirmations.edit.message": "Rediģējot, tiks pārrakstīts ziņojums, kuru tu šobrīd raksti. Vai tiešām vēlies turpināt?", "confirmations.logout.confirm": "Iziet", "confirmations.logout.message": "Vai tiešām vēlies izrakstīties?", "confirmations.mute.confirm": "Apklusināt", @@ -217,8 +219,8 @@ "empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.", "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.", "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!", - "empty_column.favourited_statuses": "Pašreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.", - "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad kāds to izdarīs, tas parādīsies šeit.", + "empty_column.favourited_statuses": "Tev vēl nav nevienas iecienītākās ziņas. Kad pievienosi kādu izlasei, tas tiks parādīts šeit.", + "empty_column.favourites": "Šo ziņu neviens vēl nav pievienojis izlasei. Kad kāds to izdarīs, tas parādīsies šeit.", "empty_column.follow_recommendations": "Neizdevās ģenerēt tev pielāgotus ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākos tēmturus.", "empty_column.follow_requests": "Šobrīd tev nav sekošanas pieprasījumu. Kad kāds pieteiksies tev sekot, pieprasījums parādīsies šeit.", "empty_column.followed_tags": "Tu vēl neesi sekojis nevienam tēmturim. Kad to izdarīsi, tie tiks parādīti šeit.", @@ -324,7 +326,7 @@ "keyboard_shortcuts.legend": "Parādīt šo leģendu", "keyboard_shortcuts.local": "Atvērt vietējo laika līniju", "keyboard_shortcuts.mention": "Pieminēt autoru", - "keyboard_shortcuts.muted": "Atvērt apklusināto lietotāju sarakstu", + "keyboard_shortcuts.muted": "Atvērt noklusināto lietotāju sarakstu", "keyboard_shortcuts.my_profile": "Atvērt savu profilu", "keyboard_shortcuts.notifications": "Atvērt paziņojumu kolonnu", "keyboard_shortcuts.open_media": "Atvērt multividi", @@ -396,7 +398,7 @@ "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.", "notification.admin.report": "{name} sūdzējās par {target}", "notification.admin.sign_up": "{name} pierakstījās", - "notification.favourite": "{name} patika tava ziņa", + "notification.favourite": "{name} pievienoja tavu ziņu izlasei", "notification.follow": "{name} uzsāka tev sekot", "notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu", "notification.mention": "{name} pieminēja tevi", @@ -523,7 +525,7 @@ "search.placeholder": "Meklēšana", "search.search_or_paste": "Meklē vai iekopē URL", "search_popout.search_format": "Paplašināts meklēšanas formāts", - "search_popout.tips.full_text": "Vienkāršs teksts atgriež ierakstus, kurus rakstīji, atzīmēji kā favorītus, pastiprināji vai pieminēji, kā arī atbilstošus lietotājvārdus, parādāmos vārdus un tēmturus.", + "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, pievienojis izlasei, izcēlis vai pieminējis, kā arī atbilstošos lietotājvārdus, parādāmos vārdus un atsauces.", "search_popout.tips.hashtag": "tēmturis", "search_popout.tips.status": "ieraksts", "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un tēmturus", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index b9e5cda1e4..a84cc91686 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Сокриј цел домеин", "confirmations.domain_block.message": "Дали скроз сте сигурни дека ќе блокирате сѐ од {domain}? Во повеќето случаеви неколку таргетирани блокирања или заќутувања се доволни и предложени. Нема да ја видите содржината од тој домеин во никој јавен времеплов или вашите нотификации. Вашите следбеници од тој домеин ќе бидат остранети.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Одјави се", "confirmations.logout.message": "Дали сте сигурни дека сакате да се одјавите?", "confirmations.mute.confirm": "Заќути", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 3574ede02d..5d29c55d02 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "മുഴുവൻ ഡൊമെയ്‌നും തടയുക", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "പുറത്തുകടക്കുക", "confirmations.logout.message": "നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?", "confirmations.mute.confirm": "നിശ്ശബ്ദമാക്കുക", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 1ba6aa9579..680aea770b 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "संपूर्ण डोमेन लपवा", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "तुमची खात्री आहे की तुम्ही लॉग आउट करू इच्छिता?", "confirmations.mute.confirm": "आवाज बंद करा", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index a003f42f4b..3a374884b2 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?", "confirmations.domain_block.confirm": "Sekat keseluruhan domain", "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log keluar", "confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?", "confirmations.mute.confirm": "Bisukan", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 3c1cec63f2..cf5b3406c3 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -62,7 +62,7 @@ "account.unblock_domain": " {domain} ဒိုမိန်းကိုပြန်ဖွင့်မည်", "account.unblock_short": "ဘလော့ဖြုတ်ရန်", "account.unendorse": "အကောင့်ပရိုဖိုင်တွင်မဖော်ပြပါ", - "account.unfollow": "ဖောလိုးဖြုတ်မည်", + "account.unfollow": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်", "account.unmute": "{name} ကို ပြန်ဖွင့်ရန်", "account.unmute_notifications": "{name}ထံမှသတိပေးချက်ပြန်ဖွင့်မည်", "account.unmute_short": "ပြန်ဖွင့်ရန်", @@ -106,7 +106,7 @@ "column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n", "column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်", "column.favourites": "အကြိုက်ဆုံးများ", - "column.follow_requests": "တောင်းဆိုချက်များကိုလိုက်နာပါ။", + "column.follow_requests": "စောင့်ကြည့်ရန် တောင်းဆိုမှုများ", "column.home": "ပင်မစာမျက်နှာ", "column.lists": "စာရင်းများ", "column.mutes": "မပေါ်အောင်ပိတ်ထားသောအသုံးပြုသူများ", @@ -123,7 +123,7 @@ "column_subheading.settings": "ဆက်တင်များ", "community.column_settings.local_only": "ပြည်တွင်း၌သာ", "community.column_settings.media_only": "Media only", - "community.column_settings.remote_only": "Remote only", + "community.column_settings.remote_only": "အဝေးမှသာ", "compose.language.change": "ဘာသာစကား ပြောင်းမည်", "compose.language.search": "ဘာသာစကားကိုရှာမည်", "compose_form.direct_message_warning_learn_more": "ထပ်သိရှိလိုသည်", @@ -153,15 +153,17 @@ "confirmations.block.confirm": "ဘလော့မည်", "confirmations.block.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", "confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်", - "confirmations.cancel_follow_request.message": "{name} ကိုဖော်လိုပယ်ဖျက်ရန် သေချာပါသလား။", + "confirmations.cancel_follow_request.message": "{name} ကို စောင့်ကြည့်ခြင်းအားပယ်ဖျက်ရန် သေချာပါသလား။", "confirmations.delete.confirm": "ဖျက်မည်", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "ဖျက်မည်", "confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?", "confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.message": "သင်သည် မီဒီယာဖော်ပြချက် သို့မဟုတ် အစမ်းကြည့်ရှုခြင်းတွင် မသိမ်းဆည်းရသေးသော အပြောင်းအလဲများရှိသည်။ မည်သို့ပင်ဖြစ်စေ ဖျက်ပစ်မည်လား။", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "{domain} တစ်ခုလုံးကို ဘလော့လုပ်ရန် တကယ် သေချာပါသလား? များသောအားဖြင့် အနည်းစုကို ပစ်မှတ်ထား ဘလော့လုပ်ခြင်းသည် လုံလောက်ပါသည်။ ထို ဒိုမိန်းမှ အကြောင်းအရာ တစ်ခုမှ မြင်ရမည်မဟုတ်သည့်အပြင် ထို ဒိုမိန်းတွင်ရှိသော သင်၏ စောင့်ကြည့်သူများပါ ဖယ်ရှားပစ်မည်ဖြစ်သည်။", + "confirmations.edit.confirm": "ပြင်ရန်", + "confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။", "confirmations.logout.confirm": "အကောင့်မှထွက်မည်", "confirmations.logout.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", "confirmations.mute.confirm": "ပိတ်ထားရန်", @@ -171,29 +173,29 @@ "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.reply.confirm": "စာပြန်မည်", "confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?", - "confirmations.unfollow.confirm": "ဖောလိုးဖြုတ်မည်", - "confirmations.unfollow.message": "{name}ကိုဖောလိုးဖြုတ်မည်", + "confirmations.unfollow.confirm": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်", + "confirmations.unfollow.message": "{name} ကို စောင်ကြည့်ခြင်းအား ပယ်ဖျက်မည်မှာသေချာပါသလား။", "conversation.delete": "ဤစကားပြောဆိုမှုကို ဖျက်ပစ်မည်", "conversation.mark_as_read": "ဖတ်ပြီးသားအဖြစ်မှတ်ထားပါ", "conversation.open": "Conversation ကိုကြည့်မည်", "conversation.with": "{အမည်များ} ဖြင့်", "copypaste.copied": "ကူယူပြီးပါပြီ", "copypaste.copy": "ကူးယူပါ", - "directory.federated": "From known fediverse", + "directory.federated": "သင် သိသော ဖက်ဒီမှ", "directory.local": "{domain} မှသာလျှင်\n", "directory.new_arrivals": "အသစ်ရောက်ရှိမှုများ", "directory.recently_active": "မကြာသေးခင်က ဖွင့်ထားသော", "disabled_account_banner.account_settings": "အကောင့်ဆက်တင်များ", "disabled_account_banner.text": "{disabledAccount} သည်လတ်တလောပိတ်ခံထားရသည်", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.community_timeline": "အကောင့်များမှ လတ်တလောတင်ထားသည့်အများမြင်ပို့စ်များမှာ {domain} တွင် တင်ထားသောပို့စ်များဖြစ်သည်။", "dismissable_banner.dismiss": "ပယ်ရန်", "dismissable_banner.explore_links": "ဤသတင်းများကို ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများမှ လူများက ပြောဆိုနေကြပါသည်။", "dismissable_banner.explore_statuses": "ဤစာများနှင့် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်ရှိ အခြားဆာဗာများမှ ဤပို့စ်များသည် ယခုဆာဗာပေါ်တွင် ဆွဲဆောင်မှု ရှိလာပါသည်။", "dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်", - "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": "ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ဤဆာဗာနှင့် အခြားဆာဗာတို့တွင် တင်ထားသည့် လတ်တလော အများမြင်ပို့စ်များဖြစ်သည်။", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", - "emoji_button.activity": "Activity", + "emoji_button.activity": "လုပ်ဆောင်ချက်", "emoji_button.clear": "ရှင်းလင်းမည်", "emoji_button.custom": "စိတ်ကြိုက်", "emoji_button.flags": "Flags", @@ -213,28 +215,28 @@ "empty_column.account_unavailable": "ပရိုဖိုင် မရနိုင်ပါ", "empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", "empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", - "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.community": "ဒေသတွင်းစာမျက်နှာမှာ အလွတ်ဖြစ်နေသည်။ အများမြင်နိုင်ရန်အတွက် တစ်ခုခုရေးပါ။", "empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ", "empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။", "empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.favourites": "ဤပို့စ်ကို အကြိုက်တွေ့သူ မရှိသေးပါ။ တစ်စုံတစ်ယောက်က ကြိုက်နှစ်သက်ပါက ဤနေရာတွင် ပြထားပါမည်။", - "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_recommendations": "သင့်အတွက် အကြံဉာဏ်များ မရရှိနိုင်ပါ။ သင်သိနိုင်သည့်လူများ သို့မဟုတ် ခေတ်စားနေသည့် hashtags များ ရှာဖွေရန်တို့အတွက် ရှာဖွေမှုကို အသုံးပြုနိုင်သည်။", "empty_column.follow_requests": "သင့်တွင် စောင့်ကြည့်ရန် တောင်းဆိုမှုများ မရှိသေးပါ။ သင်လက်ခံရရှိပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", - "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.followed_tags": "သင်သည် မည်သည့် hashtag ကိုမျှ စောင့်မကြည့်ရသေးပါ။ စောင့်ကြည့်ပါက ဤနေရာတွင် ပြပေးပါမည်။", + "empty_column.hashtag": "ဤ hashtag တွင် မည်သည့်အရာမျှ မရှိသေးပါ။", + "empty_column.home": "သင့်ပင်မစာမျက်နှာမှာ အလွတ်ဖြစ်နေပါသည်။ ဖြည့်ရန်အတွက် လူများကို စောင့်ကြည့်ပါ {suggestions}", "empty_column.home.suggestions": "ဆက်လက်ဖတ်ရှုမည်", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.lists": "သင့်တွင် List မရှိသေးပါ။ List အသစ်ဖွင့်လျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်မည်", "empty_column.mutes": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", "empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", - "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "empty_column.public": "ဤနေရာတွင် မည်သည့်အရာမျှမရှိပါ။ တစ်ခုခုရေးပါ သို့မဟုတ် ဖြည့်စွက်ရန်အတွက် အခြားဆာဗာ အသုံးပြုသူများကို စောင့်ကြည့်ပါ။", + "error.unexpected_crash.explanation": " ကျွန်ုပ်တို့၏ကုဒ်တွင် ချွတ်ယွင်းချက်တစ်ခု သို့မဟုတ် ဘရောက်ဆာနှင့် အဆင်မပြေမှုတို့ကြောင့် ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ပါ။", "error.unexpected_crash.explanation_addons": "ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ခဲ့ပါ။ ဤအမှားသည် Browser add-on ထည့်သွင်းထားမှုများ သို့မဟုတ် အလိုအလျောက် ဘာသာပြန်ကိရိယာများကြောင့် ဖြစ်နိုင်သည်။", "error.unexpected_crash.next_steps": "စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ ၎င်းမှာ အကူအညီမဖြစ်ပါက သင်သည် အခြား Browser သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်လက်အသုံးပြုနိုင်ပါမည်။", - "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", + "error.unexpected_crash.next_steps_addons": "၎င်းတို့ကို ပိတ်ပြီး စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ အဆင်မပြေပါက အခြားဘရောက်ဆာ သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်ပြီးအသုံးပြုနိုင်ပါမည်။", + "errors.unexpected_crash.copy_stacktrace": "stacktrace ကို ကလစ်ဘုတ်သို့ ကူးယူပါ", "errors.unexpected_crash.report_issue": "အဆင်မပြေမှုကို တိုင်ကြားရန်", "explore.search_results": "ရှာဖွေမှုရလဒ်များ", "explore.suggested_follows": "သင့်အတွက်", @@ -242,16 +244,16 @@ "explore.trending_links": "သတင်းများ", "explore.trending_statuses": "ပို့စ်တင်မယ်", "explore.trending_tags": "ဟက်ရှ်တက်များ", - "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.context_mismatch_explanation": "ဤစစ်ထုတ်မှု အမျိုးအစားသည် ဤပို့စ်ကို သင်ဝင်ရောက်ခဲ့ခြင်းနှင့် မသက်ဆိုင်ပါ။ ပို့စ်ကို စစ်ထုတ်လိုပါက စစ်ထုတ်မှုကို ပြင်ဆင်ရမည်ဖြစ်သည်။", + "filter_modal.added.context_mismatch_title": "အကြောင်းအရာ မကိုက်ညီပါ။", + "filter_modal.added.expired_explanation": "ဤစစ်ထုတ်မှုအမျိုးအစားမှာ သက်တမ်းကုန်သွားပါပြီ။ အသုံးပြုလိုပါက သက်တမ်းကုန်ဆုံးရက်ကို ပြောင်းလဲနိုင်ပါသည်။", + "filter_modal.added.expired_title": "သက်တမ်းကုန်နေသော စစ်ထုတ်မှု။", + "filter_modal.added.review_and_configure": "ဤစစ်ထုတ်မှုအမျိုးအစားကို ပြန်လည်သုံးသပ်ပြီး ထပ်မံပြင်ဆင်သတ်မှတ်ရန်၊ {settings_link} သို့ သွားပါ။", "filter_modal.added.review_and_configure_title": "စစ်ထုတ်မှု သတ်မှတ်ချက်များ", - "filter_modal.added.settings_link": "settings page", + "filter_modal.added.settings_link": "သတ်မှတ်ချက်များစာမျက်နှာ", "filter_modal.added.short_explanation": "ဤပို့စ်ကို အောက်ပါ စစ်ထုတ်မှုအမျိုးအစားတွင် ပေါင်းထည့်ထားပါသည် - {title}။", "filter_modal.added.title": "စစ်ထုတ်မှု ထည့်သွင်းပြီးပါပြီ။", - "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.context_mismatch": "ဤအကြောင်းအရာနှင့် မသက်ဆိုင်ပါ", "filter_modal.select_filter.expired": "သက်တမ်းကုန်သွားပါပြီ", "filter_modal.select_filter.prompt_new": "အမျိုးအစားအသစ် - {name}", "filter_modal.select_filter.search": "ရှာရန် သို့မဟုတ် ဖန်တီးရန်", @@ -260,11 +262,11 @@ "filter_modal.title.status": "ပို့စ်တစ်ခု စစ်ထုတ်ပါ", "follow_recommendations.done": "ပြီးပါပြီ", "follow_recommendations.heading": "သင်မြင်လိုသော သူများထံမှ ပို့စ်များကို စောင့်ကြည့်ပါ။ ဤတွင် အကြံပြုချက်အချို့ရှိပါသည်။", - "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!", - "follow_request.authorize": "Authorize", + "follow_recommendations.lead": "သင်စောင့်ကြည့်ထားသူများ၏ ပို့စ်များမှာ သင့်ပင်မစာမျက်နှာတွင် အချိန်နှင့်တပြေးညီ ပေါ်လာပါမည်။ မကြောက်ပါနှင့်။ အချိန်မရွေး စောင့်ကြည့်ခြင်းအား ရပ်တန့်နိုင်ပါသည်။", + "follow_request.authorize": "လုပ်ပိုင်ခွင့်", "follow_request.reject": "ဖယ်ရှားပါ", "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.", - "followed_tags": "Followed hashtags", + "followed_tags": "Hashtag ကို စောင့်ကြည့်ပါမည်", "footer.about": "အကြောင်း", "footer.directory": "ပရိုဖိုင်များလမ်းညွှန်", "footer.get_app": "အက်ပ်ကို ရယူပါ", @@ -279,29 +281,29 @@ "hashtag.column_header.tag_mode.any": "သို့မဟုတ် {additional}", "hashtag.column_header.tag_mode.none": "မပါဘဲ {additional}", "hashtag.column_settings.select.no_options_message": "အကြံပြုချက်မတွေ့ပါ", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", - "hashtag.column_settings.tag_mode.any": "Any of these", - "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.select.placeholder": "hashtag သို့ ဝင်ရောက်နေခြင်း...", + "hashtag.column_settings.tag_mode.all": "ဤအရာအားလုံး", + "hashtag.column_settings.tag_mode.any": "ဤအရာထဲမှ တစ်ခု", + "hashtag.column_settings.tag_mode.none": "တစ်ခုမှ မဟုတ်ပါ။", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်", "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ", "home.column_settings.basic": "အခြေခံ", - "home.column_settings.show_reblogs": "Show boosts", + "home.column_settings.show_reblogs": "Boost များကို ပြပါ", "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", "home.show_announcements": "ကြေညာချက်များကို ပြပါ", - "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", - "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", - "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", - "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", - "interaction_modal.on_another_server": "On a different server", + "interaction_modal.description.favourite": "Mastodon အကောင့်တစ်ခုဖြင့် ဤပို့စ်ကို နှစ်သက်ကြောင်းနှင့် စာရေးသူအား သင်နှစ်သက်ကြောင်း အသိပေးပြီးနောက် ၎င်းကို နောက်မှ သိမ်းဆည်းနိုင်သည်။", + "interaction_modal.description.follow": "Mastodon အကောင့်ဖြင့် သင်၏ ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ ပို့စ်များကို ရရှိရန်အတွက် {name} ကို စောင့်ကြည့်နိုင်ပါသည်။", + "interaction_modal.description.reblog": "Mastodon အကောင့်တစ်ခုဖြင့် သင်၏စောင့်ကြည့်သူများကို မျှဝေရန်အတွက် ဤပို့စ်ကို Boost လုပ်ပါ။", + "interaction_modal.description.reply": "Mastodon အကောင့်တစ်ခုဖြင့် သင် ဤပို့စ်ကို တုံ့ပြန်နိုင်ပါသည်။", + "interaction_modal.on_another_server": "တခြားဆာဗာပေါ်တွင်", "interaction_modal.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.other_server_instructions": "သင်အကြိုက်ဆုံး Mastodon အက်ပ် သို့မဟုတ် သင့် Mastodon ဆာဗာ၏ ဝဘ်ရှိ ရှာဖွေမှုနေရာတွင် ဤ URL ကို ကူးယူပြီး ထည့်ပါ။", + "interaction_modal.preamble": "Mastodon မှာ ဗဟိုချုပ်ကိုင်မှု မရှိခြင်းကြောင့် ဤတစ်ခုအတွက် သင့်တွင်အကောင့်မရှိပါက အခြား Mastodon ဆာဗာ သို့မဟုတ် အဆင်ပြေသောပလက်ဖောင်းတွင် ရှိသော သင့်လက်ရှိအကောင့်ဖြင့် အသုံးပြုနိုင်ပါသည်။", "interaction_modal.title.favourite": "အကြိုက်ဆုံး {name} ၏ ပို့စ်", "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်", - "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reblog": "{name} ၏ ပို့စ်ကို Boost လုပ်ပါ", "interaction_modal.title.reply": "{name} ၏ ပို့စ်ကို စာပြန်မယ်", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", @@ -341,10 +343,10 @@ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", "lightbox.close": "ပိတ်ပါ", - "lightbox.compress": "Compress image view box", + "lightbox.compress": "ရုပ်ပုံမြင်ကွင်းအကွက်ကို ချုံ့ပါ", "lightbox.expand": "ပုံကိုဖွင့်ပါ", "lightbox.next": "ရှေ့သို့", - "lightbox.previous": "Previous", + "lightbox.previous": "ရှေ့သို့", "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ", "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။", "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", @@ -354,10 +356,10 @@ "lists.edit.submit": "ခေါင်းစဥ် ပြောင်းလဲရန်", "lists.new.create": "စာရင်းသွင်းပါ", "lists.new.title_placeholder": "စာရင်းသစ်ခေါင်းစဥ်", - "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.followed": "မည်သည့်စောင့်ကြည့်သူမဆို", "lists.replies_policy.list": "စာရင်းထဲမှ အဖွဲ့ဝင်များ", "lists.replies_policy.none": "တစ်ယောက်မှမရှိပါ", - "lists.replies_policy.title": "Show replies to:", + "lists.replies_policy.title": "ပြန်စာများကို ပြရန် -", "lists.search": "မိမိဖောလိုးထားသူများမှရှာဖွေမည်", "lists.subheading": "သင့်၏စာရင်းများ", "load_pending": "{count, plural, one {# new item} other {# new items}}", @@ -373,31 +375,31 @@ "navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ", "navigation_bar.bookmarks": "မှတ်ထားသည်များ", "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်", - "navigation_bar.compose": "Compose new post", + "navigation_bar.compose": "ပို့စ်အသစ်ရေးပါ", "navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ", - "navigation_bar.discover": "Discover", + "navigation_bar.discover": "ရှာဖွေပါ", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "စူးစမ်းရန်", "navigation_bar.favourites": "အကြိုက်ဆုံးများ", - "navigation_bar.filters": "Muted words", + "navigation_bar.filters": "စကားလုံးများ ပိတ်ထားပါ", "navigation_bar.follow_requests": "တောင်းဆိုချက်များကို စောင့်ကြည့်ပါ", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "Hashtag ကို စောင့်ကြည့်မယ်", "navigation_bar.follows_and_followers": "စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း", "navigation_bar.lists": "စာရင်းများ", "navigation_bar.logout": "ထွက်မယ်", - "navigation_bar.mutes": "Muted users", + "navigation_bar.mutes": "အသုံးပြုသူများကို ပိတ်ထားပါ", "navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ", "navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ", - "navigation_bar.preferences": "Preferences", - "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.preferences": "စိတ်ကြိုက်သတ်မှတ်ချက်များ", + "navigation_bar.public_timeline": "ဖက်ဒီစာမျက်နှာ", "navigation_bar.search": "ရှာရန်", "navigation_bar.security": "လုံခြုံရေး", "not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။", - "notification.admin.report": "{name} reported {target}", + "notification.admin.report": "{name} က {target} ကို တိုင်ကြားခဲ့သည်", "notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်", "notification.favourite": "{name} favourited your status", - "notification.follow": "{name} သင့်ကို စောင့်ကြည့်ခဲ့သည်", + "notification.follow": "{name} က သင့်ကို စောင့်ကြည့်ခဲ့သည်", "notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်", "notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်", "notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ", @@ -407,45 +409,45 @@ "notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်", "notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ", "notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်", - "notifications.column_settings.admin.report": "New reports:", - "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.admin.report": "တိုင်ကြားစာအသစ်များ -", + "notifications.column_settings.admin.sign_up": "အကောင့်အသစ်များ -", "notifications.column_settings.alert": "Desktop သတိပေးချက်များ", "notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ", "notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ", "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ", "notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -", - "notifications.column_settings.follow_request": "New follow requests:", - "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.follow_request": "စောင့်ကြည့်ရန် တောင်းဆိုမှုအသစ်များ -", + "notifications.column_settings.mention": "ဖော်ပြချက်များ -", "notifications.column_settings.poll": "စစ်တမ်းရလဒ်", "notifications.column_settings.push": "အသိပေးချက်များအား ရအောင်ပို့ခြင်း", - "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.reblog": "Boosts -", "notifications.column_settings.show": "ကော်လံတွင်ပြပါ", "notifications.column_settings.sound": "အသံဖွင့်မည်", "notifications.column_settings.status": "ပို့စ်အသစ်များ -", "notifications.column_settings.unread_notifications.category": "မဖတ်ရသေးသောအသိပေးချက်များ -", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.unread_notifications.highlight": "မဖတ်ရသေးသော အသိပေးချက်များကို ဖော်ပြပါ", "notifications.column_settings.update": "ပြင်ဆင်ထားမှုများ -", "notifications.filter.all": "အားလုံး", "notifications.filter.boosts": "အားပေးမည်", "notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ", - "notifications.filter.follows": "ဖောလိုးမည်", + "notifications.filter.follows": "စောင့်ကြည့်မယ်", "notifications.filter.mentions": " မန်းရှင်းမည်", "notifications.filter.polls": "စစ်တမ်းရလဒ်", "notifications.filter.statuses": "သင်စောင့်ကြည့်သူများထံမှ အပ်ဒိတ်များ", "notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်", "notifications.group": "အသိပေးချက်များ {count} ခု", "notifications.mark_as_read": "အသိပေးချက်တိုင်းကို ဖတ်ပြီးကြောင်း အမှတ်အသားပြုပါ", - "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", - "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", - "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", - "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications.permission_denied": "ဘရောက်ဆာခွင့်ပြုချက်များ တောင်းဆိုမှုအား ငြင်းခဲ့သောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို မရရှိနိုင်ပါ", + "notifications.permission_denied_alert": "ဘရောက်ဆာခွင့်ပြုချက်ကို ငြင်းပယ်ခဲ့သောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်၍မရပါ", + "notifications.permission_required": "လိုအပ်သောခွင့်ပြုချက်ကို မပေးထားသောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို မရရှိနိုင်ပါ။", + "notifications_permission_banner.enable": "ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်ပါ", "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", - "notifications_permission_banner.title": "Never miss a thing", - "picture_in_picture.restore": "Put it back", + "notifications_permission_banner.title": "လက်လွတ်မခံပါနှင့်", + "picture_in_picture.restore": "ပြန်ထားပါ", "poll.closed": "ပိတ်သွားပြီ", "poll.refresh": "ပြန်ဖွင့်မည်", - "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_people": "{count, plural, one {# person} other {# people}}\n", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.vote": "မဲပေးမည်", "poll.voted": "သင်ဤအဖြေကိုမဲပေးခဲ့သည်", @@ -456,20 +458,20 @@ "privacy.direct.long": "မန်းရှင်းခေါ်သူသီးသန့်", "privacy.direct.short": "Direct", "privacy.private.long": "ဖော်လိုးလုပ်သူသီးသန့်", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", - "privacy.public.short": "Public", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", - "privacy.unlisted.short": "Unlisted", - "privacy_policy.last_updated": "Last updated {date}", + "privacy.private.short": "စောင့်ကြည့်သူများသာ", + "privacy.public.long": "အားလုံး မြင်နိုင်သည်", + "privacy.public.short": "အများကိုပြမည်", + "privacy.unlisted.long": "အားလုံးမြင်နိုင်သော်လည်း ရှာဖွေမှုများမှ ဖယ်ထုတ်ထားသည်", + "privacy.unlisted.short": "စာရင်းမသွင်းထားပါ", + "privacy_policy.last_updated": "နောက်ဆုံး ပြင်ဆင်ခဲ့သည့်ရက်စွဲ {date}", "privacy_policy.title": "ကိုယ်ရေးအချက်အလက်မူဝါဒ", "refresh": "ပြန်လည်စတင်ပါ", "regeneration_indicator.label": "လုပ်ဆောင်နေသည်…", - "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "regeneration_indicator.sublabel": "သင့်ပင်မစာမျက်နှာကို ပြင်ဆင်နေပါသည်။", "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": "အခုလေးတင်", "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", @@ -479,12 +481,12 @@ "relative_time.today": "ယနေ့", "reply_indicator.cancel": "ပယ်ဖျက်မည်", "report.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.block_explanation": "၎င်းတို့ရဲ့ ပို့စ်တွေကို မြင်ရမှာမဟုတ်ဘူး။ သင့်ပို့စ်များကို မမြင်နိုင်သလို သင့်ကို စောင့်ကြည့်၍ရမည်လည်းမဟုတ်ပါ။ ၎င်းတို့ကို ပိတ်ပင်ထားပါသည်။", "report.categories.other": "အခြား", "report.categories.spam": "ပြင်ပစာများ", "report.categories.violation": "ဤစာတွင် သတ်မှတ်ထားသောစည်းကမ်းများကို ဖောက်ဖျက်သောအကြောင်းအရာပါဝင်နေသည်", "report.category.subtitle": "အကိုက်ညီဆုံးကိုရွေးချယ်ပါ", - "report.category.title": "Tell us what's going on with this {type}", + "report.category.title": "ဤ {type} တွင် ဘာဖြစ်နေသည်ကို ပြောပြပါ", "report.category.title_account": "ကိုယ်ရေးမှတ်တမ်း", "report.category.title_status": "ပို့စ်", "report.close": "ပြီးပြီ", @@ -492,34 +494,34 @@ "report.forward": "{target} သို့တစ်ဆင့်ပို့ပေးမည်", "report.forward_hint": "ဤအကောင့်မှာတစ်ခြားဆာဗာမှဖြစ်သည်။ အမည်မသိတိုင်းကြားချက်ဖွင့်လိုပါသလား?", "report.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.mute_explanation": "၎င်းတို့၏ပို့စ်များကို သင်မြင်ရမည်မဟုတ်ပါ။ ၎င်းတို့မှာ သင့်ကို စောင့်ကြည့်၍ ပို့စ်များကို မြင်နိုင်ဆဲဖြစ်ပြီး ၎င်းတို့ကို အသံပိတ်ထားကြောင်း သိမည်မဟုတ်ပါ။\n", "report.next": "ရှေ့သို့", "report.placeholder": "Type or paste additional comments", "report.reasons.dislike": "မကြိုက်ပါ", "report.reasons.dislike_description": "ပိုမိုမြင်လိုသည်ရှိပါသလား", "report.reasons.other": "တစ်ခုခုဖြစ်နေသည်", - "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.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.other_description": "ဤအချက်မှာ အခြားအမျိုးအစားများနှင့် မကိုက်ညီပါ။", + "report.reasons.spam": "၎င်းမှာ Spam ဖြစ်သည်", + "report.reasons.spam_description": "အန္တရာယ်ရှိသော လင့်ခ်များ၊ အတုအယောင်များ သို့မဟုတ် ထပ်တလဲလဲ ပြန်ကြားမှုများ", + "report.reasons.violation": "၎င်းမှာ ဆာဗာစည်းမျဉ်းများကို ချိုးဖောက်ထားသည်", + "report.reasons.violation_description": "သတ်မှတ်ထားသော စည်းကမ်းများကို ချိုးဖောက်ထားကြောင်း သင် သိရှိထားသည်။", + "report.rules.subtitle": "သက်ဆိုင်သမျှကို ရွေးပါ", + "report.rules.title": "မည်သည့်စည်းကမ်းများကို ချိုးဖောက်ထားပါသလဲ။", + "report.statuses.subtitle": "သက်ဆိုင်သမျှကို ရွေးပါ", + "report.statuses.title": "ဤတိုင်ကြားစာကို အရန်ကူးထားသည့် ပို့စ်များ ရှိပါသလား။", "report.submit": "Submit report", "report.target": "Report {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.thanks.take_action": "ဤသည်မှာ Mastodon တွင် သင်မြင်ရသည့်အရာများ ထိန်းချုပ်ရန်အတွက် ရွေးချယ်ရမည့်နေရာဖြစ်သည် -", + "report.thanks.take_action_actionable": "၎င်းကို ကျွန်ုပ်တို့ သုံးသပ်နေချိန်တွင် သင်သည် @{name} ကို အရေးယူနိုင်သည် -", + "report.thanks.title": "ဒါကို မမြင်ချင်ဘူးလား။", + "report.thanks.title_actionable": "တိုင်ကြားခြင်းအတွက် ကျေးဇူးတင်ပါသည်၊ ဤအရာကို ကျွန်ုပ်တို့ စစ်ဆေးပါမည်။", + "report.unfollow": "@{name} ကို မစောင့်ကြည့်တော့ပါ", + "report.unfollow_explanation": "သင် ဤအကောင့်ကို စောင့်ကြည့်နေသည်။ သင့်ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ပို့စ်များကို ထပ်ပြီးမတွေ့ချင်တော့ပါက စောင့်ကြည့်ခြင်းကို ရပ်တန့်နိုင်ပါသည်။", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", "report_notification.categories.other": "အခြား", "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Rule violation", - "report_notification.open": "Open report", + "report_notification.categories.violation": "စည်းကမ်းဖောက်ဖျက်ခြင်း", + "report_notification.open": "အစီရင်ခံစာကိုဖွင့်ပါ", "search.placeholder": "ရှာဖွေရန်", "search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ", "search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ", @@ -533,59 +535,59 @@ "search_results.hashtags": "ဟက်ရှ်တက်များ", "search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ", "search_results.statuses": "ပို့စ်တင်မယ်", - "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.statuses_fts_disabled": "ဤ Mastodon ဆာဗာတွင် ၎င်းတို့၏ အကြောင်းအရာအလိုက် ပို့စ်များရှာဖွေခြင်းကို ဖွင့်မထားပါ။", "search_results.title": "{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.about_active_users": "ပြီးခဲ့သည့် ရက်ပေါင်း ၃၀ အတွင်း ဤဆာဗာကို အသုံးပြုသူများ (လအလိုက် လက်ရှိအသုံးပြုသူများ)", "server_banner.active_users": "လက်ရှိအသုံးပြုသူများ", - "server_banner.administered_by": "Administered by:", - "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.administered_by": "မှ စီမံခန့်ခွဲသည် -", + "server_banner.introduction": "{domain} သည် {mastodon} မှ ပံ့ပိုးပေးထားသော ဗဟိုချုပ်ကိုင်မှုမရှိသည့် လူမှုကွန်ရက်တစ်ခုဖြစ်သည်။", "server_banner.learn_more": "ပိုမိုသိရှိရန်", - "server_banner.server_stats": "Server stats:", + "server_banner.server_stats": "ဆာဗာအား လက်ရှိအသုံးပြုသူများ -", "sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်", "sign_in_banner.sign_in": "အကောင့်ဝင်မည်", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "sign_in_banner.text": "ပရိုဖိုင်များ သို့မဟုတ် hashtags များ၊ အကြိုက်ဆုံး၊ မျှဝေပြီး ပို့စ်များနှင့် ပို့စ် ပြန်ကြားစာများ ကြည့်ရှုရန်အတွက် အကောင့်ဝင်ရောက်ပါ။ အခြားဆာဗာတစ်ခုပေါ်ရှိ သင့်အကောင့်မှလည်း အပြန်အလှန် ဖလှယ်နိုင်ပါသည်။", + "status.admin_account": "@{name} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", + "status.admin_domain": "{domain} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", "status.admin_status": "Open this status in the moderation interface", "status.block": "@{name} ကိုဘလော့မည်", "status.bookmark": "မှတ်ထားသည်များ", "status.cancel_reblog_private": "Unboost", - "status.cannot_reblog": "This post cannot be boosted", + "status.cannot_reblog": "ဤပို့စ်ကို Boost ၍ မရပါ", "status.copy": "Copy link to status", "status.delete": "ဖျက်ရန်", - "status.detailed_status": "Detailed conversation view", + "status.detailed_status": "အသေးစိတ်စကားပြောဆိုမှုမြင်ကွင်း", "status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်", "status.edit": "ပြင်ဆင်ရန်", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edited": "{date} ကို ပြင်ဆင်ပြီးပါပြီ", + "status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပြင်ဆင်ခဲ့သည်", "status.embed": "Embed", "status.favourite": "ကြိုက်နှစ်သက်မှုများ", - "status.filter": "Filter this post", - "status.filtered": "Filtered", + "status.filter": "ဤပို့စ်ကို စစ်ထုတ်ပါ", + "status.filtered": "စစ်ထုတ်ထားသည်", "status.hide": "ပို့စ်ကိုပိတ်ထားမည်", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", - "status.load_more": "Load more", - "status.media_hidden": "Media hidden", - "status.mention": "Mention @{name}", - "status.more": "More", - "status.mute": "Mute @{name}", - "status.mute_conversation": "Mute conversation", + "status.history.created": "{name} က {date} က ဖန်တီးခဲ့သည်", + "status.history.edited": "{name} က {date} က ပြင်ဆင်ခဲ့သည်", + "status.load_more": "ပို၍ဆောင်ရွက်ပါ", + "status.media_hidden": "မီဒီယာကို ဖျောက်ထားပါ", + "status.mention": "@{name} ကို ဖော်ပြထားသည်", + "status.more": "နောက်ထပ်", + "status.mute": "@{name} ကို ပိတ်ထားရန်", + "status.mute_conversation": "စကားဝိုင်းကို ပိတ်ထားရန်", "status.open": "ပို့စ်ကိုချဲ့ထွင်မည်", - "status.pin": "Pin on profile", + "status.pin": "ပရိုဖိုင်တွင် ပင်ထားပါ", "status.pinned": "ပင်တွဲထားသောပို့စ်", "status.read_more": "ပိုမိုဖတ်ရှုရန်", "status.reblog": "Boost", - "status.reblog_private": "Boost with original visibility", - "status.reblogged_by": "{name} boosted", - "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", - "status.redraft": "Delete & re-draft", + "status.reblog_private": "မူရင်းပုံစံဖြင့် Boost လုပ်ပါ", + "status.reblogged_by": "{name} က Boost လုပ်ထားသည်", + "status.reblogs.empty": "ဤပို့စ်ကို မည်သူမှ Boost လုပ်ထားခြင်းမရှိသေးပါ။ တစ်ယောက်ယောက်မှ Boost လုပ်ပါက ဤနေရာတွင်ပေါ်လာပါမည်။", + "status.redraft": "ဖျက်ပြီး ပြန်ရေးပါ", "status.remove_bookmark": "မှတ်ထားသည်များကို ဖယ်ရှားပါ", "status.replied_to": "{name} ကို စာပြန်ခဲ့သည်", "status.reply": "စာပြန်ရန်", - "status.replyAll": "Reply to thread", - "status.report": "Report @{name}", + "status.replyAll": "thread သို့ စာပြန်ပါ", + "status.report": "@{name} ကို တိုင်ကြားရန်", "status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ", "status.share": "မျှဝေ", "status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ", @@ -597,13 +599,13 @@ "status.translate": "ဘာသာပြန်ပါ", "status.translated_from_with": "{provider} ကို အသုံးပြု၍ {lang} မှ ဘာသာပြန်ထားသည်", "status.uncached_media_warning": "မရနိုင်ပါ", - "status.unmute_conversation": "Unmute conversation", - "status.unpin": "Unpin from profile", - "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.", + "status.unmute_conversation": "စကားဝိုင်းကို ပိတ်ထားရန်", + "status.unpin": "ပရိုဖိုင်မှ ပင်ဖြုတ်ပါ။", + "subscribed_languages.lead": "ပြောင်းလဲပြီးနောက် ရွေးချယ်ထားသော ဘာသာစကားများ၏ ပို့စ်များကိုသာ သင့် ပင်မစာမျက်နှာနှင့် စာရင်းစာမျက်နှာတွင်သာ ပေါ်လာမည်ဖြစ်ပါသည်။ ဘာသာစကားအားလုံး၏ ပို့စ်များအား ကြည့်ရှုလိုပါက အပြောင်းအလဲမပြုလုပ်ပါနှင့်။", "subscribed_languages.save": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ", "subscribed_languages.target": "{target} အတွက် စာရင်းသွင်းထားသော ဘာသာစကားများကို ပြောင်းပါ", - "suggestions.dismiss": "Dismiss suggestion", - "suggestions.header": "You might be interested in…", + "suggestions.dismiss": "အကြံပြုချက်ကို ဖယ်လိုက်ပါ", + "suggestions.header": "စိတ်ဝင်စားနိုင်သည်...", "tabs_bar.federated_timeline": "ဖက်ဒီ", "tabs_bar.home": "ပင်မစာမျက်နှာ", "tabs_bar.local_timeline": "ပြည်တွင်း", @@ -611,7 +613,7 @@ "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", - "time_remaining.moments": "Moments remaining", + "time_remaining.moments": "အခိုက်အတန့်များ ကျန်ရှိနေသေးသည်", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။", "timeline_hint.resources.followers": "စောင့်ကြည့်သူများ", @@ -619,11 +621,11 @@ "timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "လက်ရှိခေတ်စားနေသော ပို့စ်များ", - "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "ui.beforeunload": "Mastodon မှ ထွက်ခွာပါက သင့်မူကြမ်း ဆုံးရှုံးသွားပါမည်။", "units.short.billion": "{count}B", "units.short.million": "{count}M", "units.short.thousand": "{count}K", - "upload_area.title": "Drag & drop to upload", + "upload_area.title": "ပို့စ်တင်ရန် ဆွဲချလိုက်ပါ", "upload_button.label": "ပုံများ၊ ဗီဒီယို သို့မဟုတ် အသံဖိုင်တစ်ခု ထည့်ပါ", "upload_error.limit": "ဖိုင်အများဆုံးတင်နိုင်မည့်ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။", "upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ", @@ -631,19 +633,19 @@ "upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", "upload_form.description_missing": "ဖော်ပြချက် မထည့်ပါ", "upload_form.edit": "ပြင်ရန်", - "upload_form.thumbnail": "Change thumbnail", + "upload_form.thumbnail": "ပုံသေးကို ပြောင်းပါ", "upload_form.undo": "ဖျက်ရန်", "upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.applying": "Applying…", + "upload_modal.analyzing_picture": "ပုံအား ပိုင်းခြားစိတ်ဖြာနေသည်...", + "upload_modal.apply": "သုံးပါ", + "upload_modal.applying": "အသုံးချနေသည်...", "upload_modal.choose_image": "ပုံရွေးပါ", "upload_modal.description_placeholder": "သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ္ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေး ဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်", - "upload_modal.detect_text": "Detect text from picture", + "upload_modal.detect_text": "ပုံမှစာသားကို ရှာဖွေပါ", "upload_modal.edit_media": "မီဒီယာကို ပြင်ဆင်ရန်", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.preparing_ocr": "OCR ပြင်ဆင်နေသည်…", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "({ratio}) အစမ်းကြည့်ရှုရန်", "upload_progress.label": "တင်နေသည်...", "upload_progress.processing": "လုပ်ဆောင်နေသည်…", "video.close": "ဗီဒီယိုကို ပိတ်ပါ", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 91ca4ebf24..c2679ddefe 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?", "confirmations.domain_block.confirm": "Blokkeer alles van deze server", "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt blokkeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je zult geen berichten van deze server op openbare tijdlijnen zien of in jouw meldingen. Jouw volgers van deze server worden verwijderd.", + "confirmations.edit.confirm": "Bewerken", + "confirmations.edit.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?", "confirmations.logout.confirm": "Uitloggen", "confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?", "confirmations.mute.confirm": "Negeren", @@ -559,7 +561,7 @@ "status.edit": "Bewerken", "status.edited": "Bewerkt op {date}", "status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt", - "status.embed": "Insluiten", + "status.embed": "Embedden", "status.favourite": "Favoriet", "status.filter": "Dit bericht filteren", "status.filtered": "Gefilterd", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 33026253a1..76b1ebf2a5 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -47,7 +47,7 @@ "account.mention": "Nemn @{name}", "account.moved_to": "{name} seier at deira nye konto no er:", "account.mute": "Målbind @{name}", - "account.mute_notifications": "Målbind varsel frå @{name}", + "account.mute_notifications": "Demp varsel frå @{name}", "account.muted": "Målbunden", "account.open_original_page": "Opne originalsida", "account.posts": "Tut", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkaste dei likevel?", "confirmations.domain_block.confirm": "Skjul alt frå domenet", "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.", + "confirmations.edit.confirm": "Rediger", + "confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.logout.confirm": "Logg ut", "confirmations.logout.message": "Er du sikker på at du vil logga ut?", "confirmations.mute.confirm": "Målbind", @@ -221,7 +223,7 @@ "empty_column.favourites": "Ingen har merkt dette tutet som favoritt enno. Når nokon gjer det, så dukkar det opp her.", "empty_column.follow_recommendations": "Det ser ikkje ut til at noko forslag kunne genererast til deg. Prøv søkjefunksjonen for å finna folk du kjenner, eller utforsk populære emneknaggar.", "empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "Du fylgjer ingen emneknaggar enno. Når du gjer det, vil dei syna her.", "empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.", "empty_column.home": "Heime-tidslina di er tom! Følg fleire folk for å fylle ho med innhald. {suggestions}", "empty_column.home.suggestions": "Sjå nokre forslag", @@ -264,7 +266,7 @@ "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", - "followed_tags": "Followed hashtags", + "followed_tags": "Fylgde emneknaggar", "footer.about": "Om", "footer.directory": "Profilmappe", "footer.get_app": "Få appen", @@ -382,7 +384,7 @@ "navigation_bar.favourites": "Favorittar", "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", - "navigation_bar.followed_tags": "Fulgte emneknagger", + "navigation_bar.followed_tags": "Fylgde emneknaggar", "navigation_bar.follows_and_followers": "Fylgje og fylgjarar", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", @@ -544,7 +546,7 @@ "server_banner.server_stats": "Tenarstatistikk:", "sign_in_banner.create_account": "Opprett konto", "sign_in_banner.sign_in": "Logg inn", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", + "sign_in_banner.text": "Logg inn for å fylgja profilar eller emneknaggar, og for å lika, dela og svara på innlegg. Du kan òg samhandla med aktivitet på denne tenaren frå kontoar på andre tenarar.", "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", "status.admin_domain": "Opna moderatorgrensesnittet for {domain}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 0cc3f121b4..372902e8b3 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?", "confirmations.domain_block.confirm": "Skjul alt fra domenet", "confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Logg ut", "confirmations.logout.message": "Er du sikker på at du vil logge ut?", "confirmations.mute.confirm": "Demp", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 4bce24d073..cde922c051 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Amagar tot lo domeni", "confirmations.domain_block.message": "Volètz vertadièrament blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.\nVeiretz pas cap de contengut d’aquel domeni dins cap de flux public o dins vòstras notificacions. Vòstres seguidors d’aquel domeni seràn levats.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Desconnexion", "confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?", "confirmations.mute.confirm": "Rescondre", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index e22ab1f22f..b81bb13564 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2ad1e0961d..3e979dbb2e 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -17,7 +17,7 @@ "account.badges.group": "Grupa", "account.block": "Blokuj @{name}", "account.block_domain": "Blokuj wszystko z {domain}", - "account.blocked": "Zablokowany(-a)", + "account.blocked": "Zablokowano", "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu", "account.cancel_follow_request": "Wycofaj żądanie obserwowania", "account.direct": "Wyślij wiadomość bezpośrednią do @{name}", @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Masz niezapisane zmiany w opisie lub podglądzie, odrzucić je mimo to?", "confirmations.domain_block.confirm": "Ukryj wszystko z domeny", "confirmations.domain_block.message": "Czy na pewno chcesz zablokować całą domenę {domain}? Zwykle lepszym rozwiązaniem jest blokada lub wyciszenie kilku użytkowników.", + "confirmations.edit.confirm": "Edytuj", + "confirmations.edit.message": "Edytowanie wpisu nadpisze wiadomość, którą obecnie piszesz. Czy na pewno chcesz to zrobić?", "confirmations.logout.confirm": "Wyloguj", "confirmations.logout.message": "Czy na pewno chcesz się wylogować?", "confirmations.mute.confirm": "Wycisz", @@ -402,7 +404,7 @@ "notification.mention": "Wspomniało o Tobie przez {name}", "notification.own_poll": "Twoje głosowanie zakończyło się", "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się", - "notification.reblog": "Podbito Twój post przez {name}", + "notification.reblog": "Twój post został podbity przez {name}", "notification.status": "Właśnie umieszczono wpis przez {name}", "notification.update": "{name} edytował post", "notifications.clear": "Wyczyść powiadomienia", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index f2e4a365e3..2497874380 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?", "confirmations.domain_block.confirm": "Bloquear instância", "confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.", + "confirmations.edit.confirm": "Editar", + "confirmations.edit.message": "Editar agora irá substituir a mensagem que está sendo criando. Tem certeza de que deseja continuar?", "confirmations.logout.confirm": "Sair", "confirmations.logout.message": "Você tem certeza de que deseja sair?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index ae0a2df318..d72c5c7002 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -162,6 +162,8 @@ "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.edit.confirm": "Editar", + "confirmations.edit.message": "Editar agora irá sobrescrever a mensagem que está a compor. Tem a certeza de que deseja continuar?", "confirmations.logout.confirm": "Terminar sessão", "confirmations.logout.message": "Tem a certeza de que quer terminar a sessão?", "confirmations.mute.confirm": "Silenciar", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 787727d56d..c50a6a12ba 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Ai modificări nesalvate în descrierea sau previzualizarea media, renunți oricum?", "confirmations.domain_block.confirm": "Blochează întregul domeniu", "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Deconectare", "confirmations.logout.message": "Ești sigur că vrei să te deconectezi?", "confirmations.mute.confirm": "Ignoră", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 32845ab64f..93a39c3802 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?", "confirmations.domain_block.confirm": "Да, заблокировать узел", "confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.", + "confirmations.edit.confirm": "Редактировать", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Выйти", "confirmations.logout.message": "Вы уверены, что хотите выйти?", "confirmations.mute.confirm": "Игнорировать", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index e9deab43dc..13e5cbb571 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -27,7 +27,7 @@ "account.enable_notifications": "यदा @{name} स्थापयति तदा मां ज्ञापय", "account.endorse": "व्यक्तिगतविवरणे वैशिष्ट्यम्", "account.featured_tags.last_status_at": "{date} दिने गतस्थापनम्", - "account.featured_tags.last_status_never": "न स्थापनम्", + "account.featured_tags.last_status_never": "न पत्रम्", "account.featured_tags.title": "{name} इत्यस्य विशेषहैस्टैगः", "account.follow": "अनुस्रियताम्", "account.followers": "अनुसर्तारः", @@ -50,14 +50,14 @@ "account.mute_notifications": "@{name} सूचनाः निष्क्रियन्ताम्", "account.muted": "निःशब्दम्", "account.open_original_page": "मूलपृष्ठमुट्घाटय", - "account.posts": "दौत्यानि", - "account.posts_with_replies": "दौत्यानि प्रत्युत्तराणि च", + "account.posts": "पत्राणि", + "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, one {{counter} दौत्यम्} two {{counter} दौत्ये} other {{counter} दौत्यानि}}", + "account.statuses_counter": "{count, plural, one {{counter} पत्रम्} two{{counter} पत्रे} other {{counter} पत्राणि}}", "account.unblock": "निषेधता नश्यताम् @{name}", "account.unblock_domain": "प्रदेशनिषेधता नश्यताम् {domain}", "account.unblock_short": "अनवरुन्धि", @@ -93,16 +93,16 @@ "bundle_modal_error.close": "पिधीयताम्", "bundle_modal_error.message": "आरोपणे कश्चन दोषो जातः", "bundle_modal_error.retry": "पुनः यतताम्", - "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", - "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", - "closed_registrations_modal.find_another_server": "Find another server", - "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", - "closed_registrations_modal.title": "Signing up on Mastodon", - "column.about": "About", + "closed_registrations.other_server_instructions": "यतोहि मस्टोडोनक्रेन्द्रीयकृतमस्ति, अन्यास्मिन्सर्वरि एकौण्टं स्रष्टुं शक्नोषि एवञ्च एतेन संयोक्तुं शक्नोषि।", + "closed_registrations_modal.description": "{domain} मध्ये एकौण्टं करणमधुना न सम्भवति, किन्तु कृपया अवधीयतां यन्मास्टोडोनमुपयोक्तुं {domain} मध्ये एकौण्टं करणं नावश्यकम्।", + "closed_registrations_modal.find_another_server": "अन्य सर्वरमन्विच्छ", + "closed_registrations_modal.preamble": "मास्टोडोनस्ति अक्रेन्द्रीयकृतमतः कुहापि एकौण्टं स्रष्टुमर्हसि, अस्मिन्सर्वरि सदस्यैश्च संयोक्तुं शक्नोषि। स्वस्य सर्वरं स्रष्टुमपि शक्नोषि।", + "closed_registrations_modal.title": "मास्टोडोनि पञ्जीकरणम्", + "column.about": "विषये", "column.blocks": "निषिद्धभोक्तारः", "column.bookmarks": "पुटचिह्नानि", "column.community": "स्थानीयसमयतालिका", - "column.direct": "Direct messages", + "column.direct": "प्रत्यक्षसन्देशाः", "column.directory": "व्यक्तित्वानि दृश्यन्ताम्", "column.domain_blocks": "निषिद्धप्रदेशाः", "column.favourites": "प्रियाः", @@ -111,7 +111,7 @@ "column.lists": "सूचयः", "column.mutes": "निःशब्दाः भोक्तारः", "column.notifications": "सूचनाः", - "column.pins": "कीलितदौत्यानि", + "column.pins": "कीलितपत्राणि", "column.public": "सङ्घीयसमयतालिका", "column_back_button.label": "पूर्वम्", "column_header.hide_settings": "विन्यासाः छाद्यन्ताम्", @@ -124,12 +124,12 @@ "community.column_settings.local_only": "केवलं स्थानीयम्", "community.column_settings.media_only": "सामग्री केवलम्", "community.column_settings.remote_only": "दर्गमः केवलम्", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "भाषां परिवर्तय", + "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": "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.encryption_warning": "मस्टोडोनि पत्राणि न अन्ततोऽन्तं सङ्कूटितानि। मास्टोडिनि संवेदनशीलसूचनां मा प्रेषय।", + "compose_form.hashtag_warning": "पत्रमिदमसार्वजनिकान्न कस्मिन्नपि प्रचलितवस्तुषु सूचितमिदं प्रेषणम्। केवलं सार्वजनिकप्रेषराणि प्रचलितवस्तुचिह्नेन अन्वेषयितुं शक्यते।", + "compose_form.lock_disclaimer": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि पत्राणि द्रष्टुं शक्नोति ।", "compose_form.lock_disclaimer.lock": "अवरुद्धः", "compose_form.placeholder": "मनसि ते किमस्ति?", "compose_form.poll.add_option": "मतमपरं युज्यताम्", @@ -138,10 +138,10 @@ "compose_form.poll.remove_option": "मतमेतन्नश्यताम्", "compose_form.poll.switch_to_multiple": "मतदानं परिवर्तयित्वा बहुवैकल्पिकमतदानं क्रियताम्", "compose_form.poll.switch_to_single": "मतदानं परिवर्तयित्वा निर्विकल्पमतदानं क्रियताम्", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "प्रकाशीकुरु", + "compose_form.publish_form": "प्रकाशीकुरु", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "परिवर्तनानि रक्ष", "compose_form.sensitive.hide": "संवेदनशीलसामग्रीत्यङ्यताम्", "compose_form.sensitive.marked": "संवेदनशीलसामग्रीत्यङ्कितम्", "compose_form.sensitive.unmarked": "संवेदनशीलसामग्रीति नाङ्कितम्", @@ -152,49 +152,51 @@ "confirmations.block.block_and_report": "अवरुध्य आविद्यताम्", "confirmations.block.confirm": "निषेधः", "confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {name}?", - "confirmations.cancel_follow_request.confirm": "Withdraw request", - "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", - "confirmations.delete.confirm": "नश्यताम्", - "confirmations.delete.message": "निश्चयेन दौत्यमिदं नश्यताम्?", - "confirmations.delete_list.confirm": "नश्यताम्", - "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च नश्यताम् वा?", - "confirmations.discard_edit_media.confirm": "Discard", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.cancel_follow_request.confirm": "अनुरोधनमपनय", + "confirmations.cancel_follow_request.message": "{name} अनुसरणस्यानुरोधमपनेतुं दृढीकृतं वा?", + "confirmations.delete.confirm": "मार्जय", + "confirmations.delete.message": "निश्चयेन पत्रमिदं मार्जितुमिच्छसि?", + "confirmations.delete_list.confirm": "मार्जय", + "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च मार्जितुमिच्छसि वा?", + "confirmations.discard_edit_media.confirm": "अपास्य", + "confirmations.discard_edit_media.message": "माध्यमवर्णनां प्रदर्शनञ्च अरक्षितानि परिवर्तनानि सन्ति, तानि अपासितुमिच्छसि वा?", "confirmations.domain_block.confirm": "निषिद्धः प्रदेशः क्रियताम्", "confirmations.domain_block.message": "नूनं निश्चयेनैव विनष्टुमिच्छति पूर्णप्रदेशमेव {domain} ? अधिकांशसन्दर्भेऽस्थायित्वेन निषेधता निःशब्दत्वञ्च पर्याप्तं चयनीयञ्च । न तस्मात् प्रदेशात्सर्वे विषया द्रष्टुमशक्याः किस्यांश्चिदपि सर्वजनिकसमयतालिकायां वा स्वीयसूचनापटले । सर्वेऽनुसर्तारस्ते प्रदेशात् ये सन्ति ते नश्यन्ते ।", + "confirmations.edit.confirm": "सम्पादय", + "confirmations.edit.message": "सम्पादनमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते। निश्चयेनैवं कर्तव्यम्?", "confirmations.logout.confirm": "बहिर्गम्यताम्", "confirmations.logout.message": "निश्चयेनैव बहिर्गमनं वाञ्छितम्?", "confirmations.mute.confirm": "निःशब्दम्", - "confirmations.mute.explanation": "एतेन तेषां प्रकटनानि तथा च यत्र ते उल्लिखिताः तानि छाद्यन्ते, किन्त्वेवं सत्यपि ते त्वामनुसर्तुं ततश्च प्रकटनानि द्रष्टुं शक्नुवन्ति ।", + "confirmations.mute.explanation": "एतेन तेषां पत्राणि तथा च यत्र ते उल्लिखिताः तानि छाद्यन्ते, किन्त्वेवं सत्यपि ते त्वामनुसर्तुं ततश्च पत्राणि द्रष्टुं शक्नुवन्ति ।", "confirmations.mute.message": "किं निश्चयेन निःशब्दं भवेत् {name} मित्रमेतत् ?", - "confirmations.redraft.confirm": "विनश्य पुनः लिख्यताम्", - "confirmations.redraft.message": "किं वा निश्चयेन नष्टुमिच्छसि दौत्यमेतत्तथा च पुनः लेखितुं? प्रकाशनानि प्रीतयश्च विनष्टा भविष्यन्ति, प्रत्युत्तराण्यपि नश्यन्ते ।", + "confirmations.redraft.confirm": "मार्जय पुनश्च लिख्यताम्", + "confirmations.redraft.message": "किं वा निश्चयेन नष्टुमिच्छसि पत्रमेतत्तथा च पुनः लेखितुं? प्रकाशनानि प्रीतयश्च विनष्टा भविष्यन्ति, प्रत्युत्तराण्यपि नश्यन्ते ।", "confirmations.reply.confirm": "उत्तरम्", "confirmations.reply.message": "प्रत्युत्तरमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते । निश्चयेनैवं कर्तव्यम् ?", "confirmations.unfollow.confirm": "अनुसरणं नश्यताम्", "confirmations.unfollow.message": "निश्चयेनैवाऽनुसरणं नश्यतां {name} मित्रस्य?", - "conversation.delete": "वार्तालापो नश्यताम्", + "conversation.delete": "वार्तालापं मार्जय", "conversation.mark_as_read": "पठितमित्यङ्क्यताम्", "conversation.open": "वार्तालापो दृश्यताम्", "conversation.with": "{names} जनैः साकम्", - "copypaste.copied": "Copied", - "copypaste.copy": "Copy", + "copypaste.copied": "प्रतिलिपिंकृतम्", + "copypaste.copy": "प्रतिलिपिः", "directory.federated": "सुपरिचितं Fediverse इति स्थानात्", "directory.local": "{domain} प्रदेशात्केवलम्", "directory.new_arrivals": "नवामगमाः", "directory.recently_active": "नातिपूर्वं सक्रियः", - "disabled_account_banner.account_settings": "Account settings", - "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", - "dismissable_banner.dismiss": "Dismiss", - "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_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.", - "embed.instructions": "दौत्यमेतत् स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्", + "disabled_account_banner.account_settings": "एकौण्टः सेटिङ्ग्स्", + "disabled_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतमस्ति।", + "dismissable_banner.community_timeline": "तानि तेषां जनानां नूतनतमानि सार्वजनिकानि पत्राणि सन्ति येषामेकौण्टः {domain} द्वारा होस्त् भवन्ति।", + "dismissable_banner.dismiss": "अपास्य", + "dismissable_banner.explore_links": "एतासां वार्तानां विषये अधुना अकेन्द्रीकृतजालस्य अस्मिनन्येषु च सर्वर्षु जनैश्चर्चा क्रियते।", + "dismissable_banner.explore_statuses": "अकेन्द्रीकृतजालस्य अस्मदन्येभ्यश्च सर्वर्भ्यः एतानि पत्राणि इदानीमस्मिन्सर्वरि कर्षणं प्राप्नुवन्ति।", + "dismissable_banner.explore_tags": "अकेन्द्रीकृतजालस्य अस्मदन्येभ्यश्च सर्वर्भ्यः एतानि प्रचलितवस्तूनि इदानीमस्मिन्सर्वरि कर्षणं प्राप्नुवन्ति।", + "dismissable_banner.public_timeline": "एतानि अकेन्द्रीकृतजालस्य अस्मिनन्येषु च सर्वर्षु जनेभ्योऽद्यतनतमानि सार्वजनिकपत्राणि सन्ति येषां विषये सर्वरयं वेत्ति।", + "embed.instructions": "पत्रमेतत्स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्", "embed.preview": "अत्रैवं दृश्यते तत्:", "emoji_button.activity": "आचरणम्", - "emoji_button.clear": "Clear", + "emoji_button.clear": "मार्जय", "emoji_button.custom": "स्वीयानुकूलम्", "emoji_button.flags": "ध्वजाः", "emoji_button.food": "भोजनं पेयञ्च", @@ -208,119 +210,119 @@ "emoji_button.search_results": "अन्वेषणपरिणामाः", "emoji_button.symbols": "चिह्नानि", "emoji_button.travel": "यात्रा च स्थानानि", - "empty_column.account_suspended": "Account suspended", - "empty_column.account_timeline": "न दौत्यान्यत्र", + "empty_column.account_suspended": "एकौण्ट् निलम्बितः", + "empty_column.account_timeline": "न पत्रमिह!", "empty_column.account_unavailable": "व्यक्तित्वं न प्राप्यते", "empty_column.blocks": "नैकोऽप्युपभोक्ता निषिद्धो वर्तते", - "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तदौत्यानि सन्ति । यदा भविष्यति तदत्र दृश्यते ।", + "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तपत्राणि सन्ति । यदा भविष्यति तदत्र दृश्यते ।", "empty_column.community": "स्थानीयसमयतालिका रिक्ता । सार्वजनिकत्वेनाऽत्र किमपि लिख्यताम् ।", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "नैकोऽपि प्रत्यक्षसन्देशो वर्तते। यदा प्रेष्यते वा प्राप्यतेऽत्र दृश्यते।", "empty_column.domain_blocks": "न निषिद्धप्रदेशाः सन्ति ।", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "न प्रियदौत्यानि सन्ति । यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते ।", - "empty_column.favourites": "नैतद्दौत्यं प्रियमस्ति कस्मै अपि । यदा कस्मै प्रियं भवति तदाऽत्र दृश्यते ।", - "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.explore_statuses": "अधुना किमपि न प्रचलति। परे पुनः पश्य!", + "empty_column.favourited_statuses": "न तव अधुना पर्यन्तं प्रियपत्राणि सन्ति। यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते।", + "empty_column.favourites": "नैतत्पत्रं प्रियमस्ति कस्मै अपि। यदा कस्मै प्रियं भवति तदाऽत्र दृश्यते।", + "empty_column.follow_recommendations": "तुभ्यं कोऽपि प्रबोधो न जनयितुं न शक्यतेऽति प्रतीयते। अन्वेष्यप्रणालिं प्रयोक्तुं जनानवलोकयितुं शक्नोषि उत प्रचलितवस्तूनि अन्वेषितुं शक्नोषि।", "empty_column.follow_requests": "नाऽनुसरणानुरोधस्ते वर्तते । यदैको प्राप्यतेऽत्र दृश्यते ।", - "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", + "empty_column.followed_tags": "कान्यपि प्रचलितवस्तूनीदानीमपि नान्वसार्षीः। यदा अनुसरसि तदा तानि इह दृश्यन्ते।", "empty_column.hashtag": "नाऽस्मिन् प्रचलितवस्तुचिह्ने किमपि ।", "empty_column.home": "गृहसमयतालिका रिक्ताऽस्ति । गम्यतां {public} वाऽन्वेषणैः प्रारभ्यतां मेलनं क्रियताञ्च ।", - "empty_column.home.suggestions": "See some suggestions", - "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवदौत्यानि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", - "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", - "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.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": "Report issue", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", - "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "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!", - "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.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.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", - "follow_recommendations.done": "Done", - "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", - "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!", - "follow_request.authorize": "Authorize", - "follow_request.reject": "Reject", - "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.", - "followed_tags": "Followed hashtags", - "footer.about": "About", - "footer.directory": "Profiles directory", - "footer.get_app": "Get the app", - "footer.invite": "Invite people", - "footer.keyboard_shortcuts": "Keyboard shortcuts", - "footer.privacy_policy": "Privacy policy", - "footer.source_code": "View source code", - "footer.status": "Status", - "generic.saved": "Saved", - "getting_started.heading": "Getting started", - "hashtag.column_header.tag_mode.all": "and {additional}", - "hashtag.column_header.tag_mode.any": "or {additional}", - "hashtag.column_header.tag_mode.none": "without {additional}", - "hashtag.column_settings.select.no_options_message": "No suggestions found", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", - "hashtag.column_settings.tag_mode.any": "Any of these", - "hashtag.column_settings.tag_mode.none": "None of these", + "empty_column.home.suggestions": "काञ्चित्प्रबोधान्पश्य", + "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवपत्राणि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।", + "empty_column.lists": "तव पार्श्वे न कापि सूचिर्वर्तते। यदैकां सृजसि तदा अत्र दृश्यते।", + "empty_column.mutes": "त्वया अद्यापि नैकोऽप्युपभोक्ता मूकीकृतो वर्तते।", + "empty_column.notifications": "तव पार्श्वे न अधुना पर्यन्तं किमपि विज्ञापनं वर्तते। यदा अन्या जना त्वया संयोजयन्ति तदा इह पश्यसि।", + "empty_column.public": "न इह किमपि वर्तते! किञ्चिल्लिख सार्वजनिकरूपेण, उत स्वयमन्यसर्वर्तः उपभोक्तॄननुसर एतत्पूरयितुम्", + "error.unexpected_crash.explanation": "अस्माकं विद्यादेशे दोषादुत ब्रौसर्सङ्गतिसमस्यायाः पृष्ठमिदं सम्यग्रूपेण न दृश्यते।", + "error.unexpected_crash.explanation_addons": "पृष्ठमिदं सम्यग्रूपेण न दृश्यते। दोषोऽयं सम्भवतो ब्रौसरेडनुत स्वचलितानुवादोपकरणानां कारणात्।", + "error.unexpected_crash.next_steps": "पृष्ठं पुनः रेफ्रेशं कर्तुं यतस्व। यदि तत्परेऽपि कार्यं नाकार्षीत्तर्ह्यप्यन्यब्रौसरा उत नेटिवेपा मास्टोडोनुपयोक्तुं शक्नोषि।", + "error.unexpected_crash.next_steps_addons": "तानि निष्क्रियं कृत्वा पृष्ठं रिफ्रेशं कर्तुं यतस्व। यदि तत्परेऽपि कार्यं नाकार्षीत्तर्ह्यप्यन्यब्रौसरा उत नेटिवेपा मास्टोडोनुपयोक्तुं शक्नोषि।", + "errors.unexpected_crash.copy_stacktrace": "स्तेक्त्रेसमनुलिपिं कुरु क्लिप्फलकं", + "errors.unexpected_crash.report_issue": "दोषमावेदय", + "explore.search_results": "परिणामानविच्छ", + "explore.suggested_follows": "तुभ्यम्", + "explore.title": "अन्विच्छ", + "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": "फिल्तर्वर्गोऽयं समाप्तः, तस्य संयोजनाय त्वया समाप्तिदिवसः परिवर्तितव्यः।", + "filter_modal.added.expired_title": "गतप्राणः फिल्तार्!", + "filter_modal.added.review_and_configure": "फिल्तर्वर्गमिममवलोकनाय अधिकविन्यासाय च, {settings_link} प्रति याहि।", + "filter_modal.added.review_and_configure_title": "विन्यासान्फिल्तरं कुरु", + "filter_modal.added.settings_link": "विन्यासपृष्ठम्", + "filter_modal.added.short_explanation": "पत्रमिदं निम्नलिखितः फिल्तर्वर्गेन योजितः: {title}।", + "filter_modal.added.title": "फिल्तर्योजितम्!", + "filter_modal.select_filter.context_mismatch": "अस्मिन्सन्दर्भे न प्रवर्तते", + "filter_modal.select_filter.expired": "समाप्तम्", + "filter_modal.select_filter.prompt_new": "नूतनवर्गः: {name}", + "filter_modal.select_filter.search": "अन्विच्छ उत सृज", + "filter_modal.select_filter.subtitle": "वर्तमानवर्गं प्रयोजय उत नूतनं सृज", + "filter_modal.select_filter.title": "पत्रमिदं फिल्तरं कुरु", + "filter_modal.title.status": "पत्रं फिल्तरं कुरु", + "follow_recommendations.done": "कृतम्", + "follow_recommendations.heading": "जनमनुसर यस्मात्पत्राणि द्रष्टुमिच्छसि! सन्ति इह काश्चित्सूचनाः।", + "follow_recommendations.lead": "जनेभ्यः पत्राणि याननुसरसि कालिकक्रमेण दर्शिष्यन्ते तव गृहनिरासे। दोषान्मा बिभीहि, कदापि सरलरूपेण ते जनाननुसरणं वारयितुं शक्नोषि!", + "follow_request.authorize": "प्रमाणीकुरु", + "follow_request.reject": "प्रत्याख्याहि", + "follow_requests.unlocked_explanation": "यद्यपि ते एकौण्ट् तालयन्त्रेण न बन्धितं, {domain} अधिकारिगणोऽचिचिन्तद्यदेतेभ्य एकौण्ट्भ्योऽनुसरणानुरोधानां समीक्षां स्वहस्तेन चिकीर्षसीति।", + "followed_tags": "अनुसरितानि प्रचलितवस्तूनि", + "footer.about": "विषये", + "footer.directory": "मुखपार्श्वविभागः", + "footer.get_app": "एप् लभस्व", + "footer.invite": "जनं निमन्त्रय", + "footer.keyboard_shortcuts": "कीफलकहर्स्वमार्गाः", + "footer.privacy_policy": "गोपनीयतानीतिः", + "footer.source_code": "स्रोतविद्यादेशं दर्शय", + "footer.status": "स्थितिः", + "generic.saved": "रक्षितम्", + "getting_started.heading": "आरम्भकरणम्", + "hashtag.column_header.tag_mode.all": "{additional} च", + "hashtag.column_header.tag_mode.any": "वा {additional}", + "hashtag.column_header.tag_mode.none": "{additional} विहाय", + "hashtag.column_settings.select.no_options_message": "न का अपि सूचनाः प्राप्ताः", + "hashtag.column_settings.select.placeholder": "प्रचलितवस्तूनि प्रविश", + "hashtag.column_settings.tag_mode.all": "एतानि सर्वाणि", + "hashtag.column_settings.tag_mode.any": "किञ्चिदेतेषु", + "hashtag.column_settings.tag_mode.none": "न किमप्येतेषु", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", - "home.column_settings.basic": "Basic", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", - "home.hide_announcements": "Hide announcements", - "home.show_announcements": "Show announcements", - "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", - "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", - "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", - "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", - "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.title.favourite": "Favourite {name}'s post", - "interaction_modal.title.follow": "Follow {name}", - "interaction_modal.title.reblog": "Boost {name}'s post", - "interaction_modal.title.reply": "Reply to {name}'s post", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", - "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "hashtag.follow": "प्रचलितवस्तु अनुसर", + "hashtag.unfollow": "प्रचलितवस्तु अनुसरणं वारय", + "home.column_settings.basic": "मूलभूतम्", + "home.column_settings.show_reblogs": "बुस्त् दर्शय", + "home.column_settings.show_replies": "उत्तराणि दर्शय", + "home.hide_announcements": "विज्ञापनानि प्रच्छादय", + "home.show_announcements": "विज्ञापनानि दर्शय", + "interaction_modal.description.favourite": "मास्टोडोनि एकौण्टा, पत्रमिदं प्रियं कर्तुं शक्नोषि तस्य लेखकं प्रशंसां करोषीति ज्ञापयितुमिदं पश्चाद्रक्षितुञ्च।", + "interaction_modal.description.follow": "मास्टोडोनि एकौण्टा {name} नाम्ना उपभोक्तारमनुसर्तुं शक्नोषि तस्य पत्राणि लब्धुं ते गृहनिरासे।", + "interaction_modal.description.reblog": "मास्टोडिनि एकौण्टा पत्रमिदं बुस्तिति कर्तुं शक्नोषि ते स्वानुसारिणो भागं कर्तुम्।", + "interaction_modal.description.reply": "मास्टोडोनि एकौण्टा पत्रमिदं प्रतिवादयितुं शक्नोषि।", + "interaction_modal.on_another_server": "अन्यस्मिन्सर्वरि", + "interaction_modal.on_this_server": "अस्मिन्सर्वरि", + "interaction_modal.other_server_instructions": "एतत् URL प्रतिलिपिं कृत्वा स्वस्य प्रियस्य मास्टोडोन ऐपोऽन्वेषणक्षेत्रे उत स्वस्य मास्तोडोन्सर्वरो जालमध्यस्थे चिनु।", + "interaction_modal.preamble": "यतो मास्टोडोन्विकेन्द्रीयकृतोऽस्ति, अन्येन मास्टोडोन्सर्वरा उत सुसङ्गतेन आश्रयेण ते वर्तमानौकौण्टं प्रयोक्तुं शक्नोषि यदि अस्मिन्कोऽपि ते एकौण्ट् नास्ति।", + "interaction_modal.title.favourite": "प्रियस्य {name} नाम्ना उपभोक्तुः पत्रम्।", + "interaction_modal.title.follow": "{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": "to navigate back", "keyboard_shortcuts.blocked": "to open blocked users list", - "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.boost": "पत्रं बुस्तं कुरु", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.description": "वर्णनम्", + "keyboard_shortcuts.direct": "अवक्रसंदेशस्तम्भमुद्धाटयितुम्", "keyboard_shortcuts.down": "to move down in the list", - "keyboard_shortcuts.enter": "to open status", - "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.enter": "पत्रं उद्घाटय", + "keyboard_shortcuts.favourite": "पत्रं प्रियं कुरु", "keyboard_shortcuts.favourites": "to open favourites list", "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.hotkey": "होत्की", "keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.mention": "to mention author", @@ -328,259 +330,259 @@ "keyboard_shortcuts.my_profile": "to open your profile", "keyboard_shortcuts.notifications": "to open notifications column", "keyboard_shortcuts.open_media": "to open media", - "keyboard_shortcuts.pinned": "to open pinned toots list", + "keyboard_shortcuts.pinned": "कीलितपत्राणां सूचिमुद्घाटय", "keyboard_shortcuts.profile": "to open author's profile", - "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.reply": "पत्राय प्रतिवादय", "keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.search": "to focus search", "keyboard_shortcuts.spoilers": "to show/hide CW field", "keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", - "keyboard_shortcuts.toot": "to start a brand new toot", + "keyboard_shortcuts.toot": "नूतनपत्रमारभस्व", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "lightbox.close": "Close", - "lightbox.compress": "Compress image view box", - "lightbox.expand": "Expand image view box", - "lightbox.next": "Next", - "lightbox.previous": "Previous", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", - "lists.account.add": "Add to list", - "lists.account.remove": "Remove from list", - "lists.delete": "Delete list", - "lists.edit": "Edit list", - "lists.edit.submit": "Change title", - "lists.new.create": "Add list", - "lists.new.title_placeholder": "New list title", - "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", - "lists.replies_policy.none": "No one", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", - "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", - "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", - "missing_indicator.label": "Not found", - "missing_indicator.sublabel": "This resource could not be found", - "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", - "mute_modal.duration": "Duration", - "mute_modal.hide_notifications": "Hide notifications from this user?", - "mute_modal.indefinite": "Indefinite", - "navigation_bar.about": "About", - "navigation_bar.blocks": "Blocked users", - "navigation_bar.bookmarks": "Bookmarks", - "navigation_bar.community_timeline": "Local timeline", - "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", - "navigation_bar.discover": "Discover", + "lightbox.close": "पिधीयताम्", + "lightbox.compress": "सङ्कुच चित्रप्रदर्शनपेटकम्", + "lightbox.expand": "चित्रप्रदर्शनपेटकं विस्तारय", + "lightbox.next": "परः", + "lightbox.previous": "पूर्वः", + "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.none": "न कोऽपि", + "lists.replies_policy.title": "एतमुत्तराणि दर्शय :", + "lists.search": "त्वया अनुसारितजनेषु अन्विष्य", + "lists.subheading": "तव सूचयः", + "load_pending": "{count, plural, one {# नूतनवस्तु} other {# नूतनवस्तूनि}}", + "loading_indicator.label": "आरोपयति...", + "media_gallery.toggle_visible": "{number, plural, one {चित्रं प्रच्छादय} other {चित्राणि प्रच्छादय}}", + "missing_indicator.label": "नोपलब्धम्", + "missing_indicator.sublabel": "उपायोऽयं नोपलब्धुं शक्यते", + "moved_to_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतो यतोहि {movedToAccount} अस्मिन्त्वमसार्षीः।", + "mute_modal.duration": "परिमाणम्", + "mute_modal.hide_notifications": "अस्मादुपभोक्तुर्विज्ञापनानि प्रच्छादयितुमिच्छसि वा?", + "mute_modal.indefinite": "अ॑परिमितम्", + "navigation_bar.about": "विषये", + "navigation_bar.blocks": "निषिद्धभोक्तारः", + "navigation_bar.bookmarks": "पुटचिह्नानि", + "navigation_bar.community_timeline": "स्थानीयसमयतालिका", + "navigation_bar.compose": "नूतनपत्रं रचय", + "navigation_bar.direct": "प्रत्यक्षसन्देशाः", + "navigation_bar.discover": "आविष्कुरु", "navigation_bar.domain_blocks": "Hidden domains", - "navigation_bar.edit_profile": "Edit profile", - "navigation_bar.explore": "Explore", - "navigation_bar.favourites": "Favourites", - "navigation_bar.filters": "Muted words", - "navigation_bar.follow_requests": "Follow requests", - "navigation_bar.followed_tags": "Followed hashtags", - "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.lists": "Lists", - "navigation_bar.logout": "Logout", - "navigation_bar.mutes": "Muted users", - "navigation_bar.personal": "Personal", - "navigation_bar.pins": "Pinned toots", - "navigation_bar.preferences": "Preferences", - "navigation_bar.public_timeline": "Federated timeline", - "navigation_bar.search": "Search", - "navigation_bar.security": "Security", - "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", - "notification.admin.report": "{name} reported {target}", - "notification.admin.sign_up": "{name} signed up", - "notification.favourite": "{name} favourited your status", - "notification.follow": "{name} followed you", - "notification.follow_request": "{name} has requested to follow you", - "notification.mention": "{name} mentioned you", - "notification.own_poll": "Your poll has ended", - "notification.poll": "A poll you have voted in has ended", - "notification.reblog": "{name} boosted your status", - "notification.status": "{name} just posted", - "notification.update": "{name} edited a post", - "notifications.clear": "Clear notifications", - "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", - "notifications.column_settings.admin.report": "New reports:", - "notifications.column_settings.admin.sign_up": "New sign-ups:", - "notifications.column_settings.alert": "Desktop notifications", - "notifications.column_settings.favourite": "Favourites:", - "notifications.column_settings.filter_bar.advanced": "Display all categories", - "notifications.column_settings.filter_bar.category": "Quick filter bar", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", - "notifications.column_settings.follow": "New followers:", - "notifications.column_settings.follow_request": "New follow requests:", - "notifications.column_settings.mention": "Mentions:", - "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifications", - "notifications.column_settings.reblog": "Boosts:", - "notifications.column_settings.show": "Show in column", - "notifications.column_settings.sound": "Play sound", - "notifications.column_settings.status": "New toots:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", - "notifications.filter.statuses": "Updates from people you follow", - "notifications.grant_permission": "Grant permission.", - "notifications.group": "{count} notifications", - "notifications.mark_as_read": "Mark every notification as read", - "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", - "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", - "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", - "notifications_permission_banner.enable": "Enable desktop notifications", - "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", - "notifications_permission_banner.title": "Never miss a thing", - "picture_in_picture.restore": "Put it back", - "poll.closed": "Closed", - "poll.refresh": "Refresh", - "poll.total_people": "{count, plural, one {# person} other {# people}}", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", - "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", - "privacy.change": "Adjust status privacy", - "privacy.direct.long": "Visible for mentioned users only", + "navigation_bar.edit_profile": "प्रोफैलं सम्पाद्यताम्", + "navigation_bar.explore": "अन्विच्छ", + "navigation_bar.favourites": "प्रियाः", + "navigation_bar.filters": "मूकीकृतानि पदानि", + "navigation_bar.follow_requests": "अनुसरणानुरोधाः", + "navigation_bar.followed_tags": "अनुसरितानि प्रचलितवस्तूनि", + "navigation_bar.follows_and_followers": "याननुसरति अनुसारिणश्च", + "navigation_bar.lists": "सूचयः", + "navigation_bar.logout": "निष्क्रमणं कुरु", + "navigation_bar.mutes": "निःशब्दा भोक्तारः", + "navigation_bar.personal": "व्यक्तिगतम्", + "navigation_bar.pins": "कीलितपत्राणि", + "navigation_bar.preferences": "अधिकरुचयः", + "navigation_bar.public_timeline": "सङ्घीयसमयतालिका", + "navigation_bar.search": "अन्विच्छ", + "navigation_bar.security": "सुरक्षा", + "not_signed_in_indicator.not_signed_in": "उपायमिमं लब्धुं सम्प्रवेश आवश्यकः।", + "notification.admin.report": "{name} {target} प्रतिवेदयञ्चकार", + "notification.admin.sign_up": "{name} संविवेश", + "notification.favourite": "{name} तव पत्रं प्रियमकार्षीत्", + "notification.follow": "{name} त्वामनुससार", + "notification.follow_request": "{name} त्वामनुसर्तुमयाचीत्", + "notification.mention": "{name} त्वामुल्लिलेख", + "notification.own_poll": "तव निर्वाचनं समाप्तम्", + "notification.poll": "यस्मिन्निर्वाचने मतमदास्तन्निर्वाचनं समाप्तम्", + "notification.reblog": "{name} तव पत्रं बुस्तिमिति अकार्षीत्", + "notification.status": "{name} अधुना अस्थापयिष्ट", + "notification.update": "{name} पत्रमेकं समपादयिष्ट", + "notifications.clear": "विज्ञापनानि मार्जय", + "notifications.clear_confirmation": "तव सर्वाणि विज्ञापनानि सर्वकालाय मार्जयितुमिच्छसि वा?", + "notifications.column_settings.admin.report": "नूतनावेदनानि", + "notifications.column_settings.admin.sign_up": "नूतनपञ्जीकरणम्:", + "notifications.column_settings.alert": "देस्क्टप्विज्ञापनानि", + "notifications.column_settings.favourite": "प्रियाः", + "notifications.column_settings.filter_bar.advanced": "सर्वाणि वर्गाणि प्रदर्शय", + "notifications.column_settings.filter_bar.category": "द्रुतशोधकशलाका", + "notifications.column_settings.filter_bar.show_bar": "शोधकशालकां दर्शय", + "notifications.column_settings.follow": "नूतनानुसारिणः:", + "notifications.column_settings.follow_request": "नूतनानुसरणानुरोधाः:", + "notifications.column_settings.mention": "उल्लिखितानि :", + "notifications.column_settings.poll": "मतदानस्य परिणामः :", + "notifications.column_settings.push": "आघातविज्ञापनानि", + "notifications.column_settings.reblog": "बुस्तः :", + "notifications.column_settings.show": "स्तम्भे दर्शय", + "notifications.column_settings.sound": "ध्वनिं वादय", + "notifications.column_settings.status": "नूतनपत्राणि:", + "notifications.column_settings.unread_notifications.category": "अपठितविज्ञापनानि", + "notifications.column_settings.unread_notifications.highlight": "अपठितविज्ञापनानि उद्वर्णय", + "notifications.column_settings.update": "सम्पादनानि :", + "notifications.filter.all": "सर्वम्", + "notifications.filter.boosts": "बुस्तः", + "notifications.filter.favourites": "प्रियाः", + "notifications.filter.follows": "अनुसरति", + "notifications.filter.mentions": "उल्लिखितानि", + "notifications.filter.polls": "मतदानस्य परिणामः", + "notifications.filter.statuses": "त्वयानुसरितजनेभ्यः परिवर्तनानि", + "notifications.grant_permission": "अनुमतिं देहि।", + "notifications.group": "{count} विज्ञापनानि", + "notifications.mark_as_read": "सर्वाणि विज्ञापनानि पठितरूपेण चिह्नीकुरु", + "notifications.permission_denied": "पूर्वस्यास्वीकृतब्रौसरनुमत्यनुरोधस्य कारणाद्देस्क्तप्विज्ञापनानि न उपलब्धानि", + "notifications.permission_denied_alert": "देस्क्तप्विज्ञापनानि सकर्तुं न शक्यते यतो ब्रौसरनुमतिं पूर्वेऽस्वीकृतम्", + "notifications.permission_required": "देस्क्तप्विज्ञापनानि नोपलब्धानि यतोहि आवश्यकानुमतिं न स्वीकृतम्।", + "notifications_permission_banner.enable": "देस्क्टप्विज्ञापनानि सशक्तं कुरु", + "notifications_permission_banner.how_to_control": "यदा माटोडोन्नोद्घाटितस्तदा विज्ञापनानि प्राप्तुं देस्क्तप्विज्ञापनानि सशक्तं कुरु। यदा तानि सशक्तानि तदा {icon} गण्डस्य माध्यमेन केऽपि प्रकारास्संवादा देस्क्तप्विज्ञापनानि जनयन्तीति नियामकं कर्तुं शक्नोषि।", + "notifications_permission_banner.title": "मा कदापि वस्तु त्यज", + "picture_in_picture.restore": "तत्प्रतिस्थापय", + "poll.closed": "बद्धम्", + "poll.refresh": "नवीकुरु", + "poll.total_people": "{count, plural, one {# जनः} other {# जनाः}}", + "poll.total_votes": "{count, plural, one {# मतम्} other {# मतानि}}", + "poll.vote": "मतम्", + "poll.voted": "एतदुत्तरं मतमदाः", + "poll.votes": "{votes, plural, one {# मतम्} other {# मतानि}}", + "poll_button.add_poll": "निर्वाचनं योजय", + "poll_button.remove_poll": "निर्वाचनं मार्जय", + "privacy.change": "पत्रस्य गोपनीयतां परिवर्तय", + "privacy.direct.long": "केवलमुल्लिखितोभोक्तृभ्यो दृश्यते", "privacy.direct.short": "Direct", - "privacy.private.long": "Visible for followers only", + "privacy.private.long": "केवलं येऽनुसरन्ति त्वां तेभ्यो दृश्यते", "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", - "privacy.public.short": "Public", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", - "privacy.unlisted.short": "Unlisted", - "privacy_policy.last_updated": "Last updated {date}", - "privacy_policy.title": "Privacy Policy", - "refresh": "Refresh", - "regeneration_indicator.label": "Loading…", - "regeneration_indicator.sublabel": "Your home feed is being prepared!", - "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.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", - "relative_time.hours": "{number}h", - "relative_time.just_now": "now", - "relative_time.minutes": "{number}m", - "relative_time.seconds": "{number}s", - "relative_time.today": "today", - "reply_indicator.cancel": "Cancel", - "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.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", - "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.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "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", + "privacy.public.long": "सर्वेभ्यो दृश्यते", + "privacy.public.short": "सार्वजनिकम्", + "privacy.unlisted.long": "सर्वेभ्यो दृश्यते किन्तु आविष्कारविशेषताभ्योऽन्तरभूतं नास्ति", + "privacy.unlisted.short": "असूचीकृतम्", + "privacy_policy.last_updated": "अन्तिमवारं परिवर्तितम् {date}", + "privacy_policy.title": "गोपनीयतानीतिः", + "refresh": "नवीकुरु", + "regeneration_indicator.label": "आरोपयति…", + "regeneration_indicator.sublabel": "तव गृहनिरासः सज्जीकृतोऽस्ति!", + "relative_time.days": "{number}दि", + "relative_time.full.days": "{number, plural, one {# दिनं} other {# दिनानि}} पूर्वम्", + "relative_time.full.hours": "{number, plural, one {# होरा} other {# होराः}} पूर्वम्", + "relative_time.full.just_now": "अधुनैव", + "relative_time.full.minutes": "{number, plural, one {# क्षणं} other {# क्षणानि}} पूर्वम्", + "relative_time.full.seconds": "{number, plural, one {# पलं} other {# पलानि}} पूर्वम्", + "relative_time.hours": "{number}हो", + "relative_time.just_now": "अधुना", + "relative_time.minutes": "{number}क्ष", + "relative_time.seconds": "{number}प", + "relative_time.today": "अद्य", + "reply_indicator.cancel": "नश्यताम्", + "report.block": "निषेधः", + "report.block_explanation": "तेषां पत्राणि न द्रक्ष्यसि। ते तव पत्राणि द्रष्टुमुत त्वामनुसर्तुं न शक्नुवन्ति। ते अवरुद्धाः इति ते वक्तुं शक्नुवन्ति।", + "report.categories.other": "अन्य", + "report.categories.spam": "फल्गुसन्देशाः", + "report.categories.violation": "पूरकः एकं वा एकाधिकान्सर्वरो नियमानुल्लङ्घयति", + "report.category.subtitle": "उत्तमं मेलनं चिनु", + "report.category.title": "अनेन {type} इत्यनेन किम्भवतीति ब्रूहि नः", + "report.category.title_account": "प्रोफैल्", + "report.category.title_status": "पत्रम्", + "report.close": "कृतम्", + "report.comment.title": "अन्य किमपि नो ज्ञापयितुमिच्छसि वा?", + "report.forward": "{target} प्रत्यग्रे प्रेषय", + "report.forward_hint": "एकौण्टयमन्यसर्वर्तः। अनामिकप्रतिलिमावेदनस्य तत्रापि प्रेषयितुमिच्छसि वा?", + "report.mute": "मूकीकुरु", + "report.mute_explanation": "तेषां पत्राणि न द्रक्ष्यसि। तेऽधुनापि त्वामनुसृत्य तव पत्राणि द्रष्टुं शक्नुवन्ति किन्तु ते त्वया मूकीकृता इति ते न वेदिष्यन्ति।", + "report.next": "परम्", "report.placeholder": "Type or paste additional comments", - "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.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.dislike": "एतन्न मे रोचते", + "report.reasons.dislike_description": "एतन्न किञ्चित्त्वं द्रष्टुमिच्छसि", + "report.reasons.other": "एतत्किञ्चिदन्य एव", + "report.reasons.other_description": "समस्या अन्यवर्गेषु नोपज्यते", + "report.reasons.spam": "फल्गुसन्देशोऽयम्", + "report.reasons.spam_description": "हिंसापरायणास्सन्धयः, असत्याभ्युपगमो वा पुनरावर्तनीयानि उत्तराणि", + "report.reasons.violation": "एतत्सर्वरो नियमानुलङ्घयति", + "report.reasons.violation_description": "एतद्विशेषनियमामुलङ्घयतीति वेत्सि", + "report.rules.subtitle": "यानि प्रयोजयन्ति तानि चिनु", + "report.rules.title": "केषां नियमानामुल्लङ्घनं क्रियते?", + "report.statuses.subtitle": "यानि प्रयोजयन्ति तानि चिनु", + "report.statuses.title": "कानि पत्राणि सन्ति वा यानि आवेदनमिदं समर्थयन्ति?", "report.submit": "Submit report", "report.target": "Report {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", - "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", - "report_notification.categories.other": "Other", - "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Rule violation", - "report_notification.open": "Open report", - "search.placeholder": "Search", - "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", - "search_results.all": "All", - "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Could not find anything for these search terms", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", - "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.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.server_stats": "Server stats:", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also 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.cancel_reblog_private": "Unboost", - "status.cannot_reblog": "This post cannot be boosted", - "status.copy": "Copy link to status", - "status.delete": "Delete", - "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", - "status.embed": "Embed", - "status.favourite": "Favourite", - "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.load_more": "Load more", - "status.media_hidden": "Media hidden", - "status.mention": "Mention @{name}", - "status.more": "More", - "status.mute": "Mute @{name}", - "status.mute_conversation": "Mute conversation", - "status.open": "Expand this status", - "status.pin": "Pin on profile", - "status.pinned": "Pinned toot", - "status.read_more": "Read more", - "status.reblog": "Boost", + "report.thanks.take_action": "इमे इह तव विकल्पास्सन्ति मास्टोडोनि यत्पश्यसि तद्यन्त्रयितुम् :", + "report.thanks.take_action_actionable": "एतस्य अस्माभिरवलोकनस्य समये @{name} इत्यस्योपरि अभियोगयितुं शक्नोषि :", + "report.thanks.title": "इदं द्रष्टुं नेच्छसि वा?", + "report.thanks.title_actionable": "अवेदनाय धन्यवादः, वयं एतदवलोकयिष्यामि।", + "report.unfollow": "@{name} विसर", + "report.unfollow_explanation": "समयोऽयमनुसरसि। तव गृहनिरासे तस्य पत्राणि न द्रष्टुं तं विसर।", + "report_notification.attached_statuses": "{count, plural, one {{count} पत्रं} other {{count} पत्राणि}} संयुज्यते/संयुज्यन्ते", + "report_notification.categories.other": "अन्य", + "report_notification.categories.spam": "फल्गुसन्देशाः", + "report_notification.categories.violation": "नियमोल्लङ्घनम्", + "report_notification.open": "आवेदनमुद्धाटय", + "search.placeholder": "अन्विच्छ", + "search.search_or_paste": "URL अन्विच्छ वा लेपनं कुरु", + "search_popout.search_format": "आनीतान्वेषणप्रारूपम्", + "search_popout.tips.full_text": "सरललेखो यानि पत्राणि त्वया लिखितानि, प्रियाणि, बूस्तं कृतानि, उत येषु उल्लिखितानि, एवञ्च समीकृतानिपयोक्तृनामानि, प्रदर्शननामानि, प्रचलितवस्तूनि च प्रतिददाति।", + "search_popout.tips.hashtag": "प्रचलितवस्तु", + "search_popout.tips.status": "पत्रम्", + "search_popout.tips.text": "सरललेखो मेलनप्रदर्शननामानि, उपभोक्तृनामानि प्रचलितवस्तूनि च प्रतिददाति", + "search_popout.tips.user": "उपभोक्ता", + "search_results.accounts": "जनाः", + "search_results.all": "सर्वम्", + "search_results.hashtags": "प्रचलितवस्तूनि", + "search_results.nothing_found": "एतेभ्योऽन्वेषणपदेभ्यः किमपि न प्राप्तम्", + "search_results.statuses": "पत्राणि", + "search_results.statuses_fts_disabled": "तेषां पूरकेन पत्रान्वेषणमस्मिन्मास्टोडोन्सर्वरि सक्रीयं नास्ति।", + "search_results.title": "{q} कृते अन्विष्य", + "search_results.total": "{count, number} {count, plural, one {परिणामः} other {परिणामाः}}", + "server_banner.about_active_users": "विगतेषु ३० दिनेषु सर्वरमिममुपयुज्यमाणा जनाः (मासिकसक्रियोपभोक्तारः)", + "server_banner.active_users": "सक्रियोपभोक्तारः", + "server_banner.administered_by": "इत्यनेन अधिकृतः : ", + "server_banner.introduction": "{domain} {mastodon} इत्यनेन सामर्थितो विकेन्द्रीयसामाजिकजालकर्मणोंऽशोऽस्ति।", + "server_banner.learn_more": "अधिकं ज्ञायताम्", + "server_banner.server_stats": "सर्वरः स्थितिविषयकानि :", + "sign_in_banner.create_account": "समयं संसृज", + "sign_in_banner.sign_in": "सम्प्रवेशं कुरु", + "sign_in_banner.text": "प्रोफैल्युत प्रचलितवस्तूनि अनुसर्तुं, प्रियं, भागः, पत्राणि प्रतिवादयितुञ्च सम्प्रवेशः कर्तव्यः। अन्यसर्वर्यपि तव समयात्संवादयितुं शक्नोषि।", + "status.admin_account": "@{name} कृते अनतिक्रममध्यस्थमुद्धाटय", + "status.admin_domain": "{domain} कृते अनतिक्रममध्यस्थमुद्धाटय", + "status.admin_status": "पत्रमिदमुद्घाटय अनतिक्रममध्यस्थे", + "status.block": "अवरुध्यताम् @{name}", + "status.bookmark": "पुटचिह्नीकुरु", + "status.cancel_reblog_private": "विबुस्तं कुरु", + "status.cannot_reblog": "पत्रमिदं बुस्तं कर्तुं न शक्यते", + "status.copy": "सञ्चयं पत्रे प्रतिलिपिं कुरु", + "status.delete": "मार्जय", + "status.detailed_status": "विस्तृतसंभाषणदृश्यम्", + "status.direct": "प्रत्यक्षसन्देशः @{name}", + "status.edit": "सम्पादय", + "status.edited": "सम्पादितं {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} वारम्} other {{count} वारम्}}", + "status.embed": "निहितम्", + "status.favourite": "प्रियम्", + "status.filter": "पत्रमिदं फिल्तरं कुरु", + "status.filtered": "फिल्तर्कृतम्", + "status.hide": "प्रेषरणं प्रच्छादय", + "status.history.created": "{name} असृजत् {date}", + "status.history.edited": "{name} समपादयत् {date}", + "status.load_more": "अधिकं स्थापय", + "status.media_hidden": "प्रसारमाध्यमानि प्रच्छादितानि", + "status.mention": "उल्लिख्यताम् @{name}", + "status.more": "अधिकम्", + "status.mute": "निःशब्दम् @{name}", + "status.mute_conversation": "वार्तालापं मूकीकुरु", + "status.open": "पत्रमिदं विस्तारय", + "status.pin": "प्रोफैलि कीलीकुरु", + "status.pinned": "कीलितपत्रम्", + "status.read_more": "अधिकं पठ्यताम्", + "status.reblog": "बुस्त्", "status.reblog_private": "Boost with original visibility", "status.reblogged_by": "{name} boosted", - "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", - "status.redraft": "Delete & re-draft", + "status.reblogs.empty": "न केनापि पत्रमिदं बुस्त्कृतम्। यदा कोऽपि करोति, तानि इह दृश्यन्ते।", + "status.redraft": "मार्जय पुनश्च लिख्यताम्", "status.remove_bookmark": "Remove bookmark", "status.replied_to": "Replied to {name}", "status.reply": "Reply", @@ -616,7 +618,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", - "timeline_hint.resources.statuses": "Older toots", + "timeline_hint.resources.statuses": "पूरातनपत्राणि", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", @@ -632,7 +634,7 @@ "upload_form.description_missing": "No description added", "upload_form.edit": "Edit", "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", + "upload_form.undo": "मार्जय", "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.apply": "Apply", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 100f8ecbd3..38aa39f3fc 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Bloca totu su domìniu", "confirmations.domain_block.message": "Boles de seguru, ma a beru a beru, blocare {domain}? In sa parte manna de is casos, pagos blocos o silentziamentos de persones sunt sufitzientes e preferìbiles. No as a bìdere cuntenutos dae custu domìniu in peruna lìnia de tempus pùblica o in is notìficas tuas. Sa gente chi ti sighit dae cussu domìniu at a èssere bogada.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Essi·nche", "confirmations.logout.message": "Seguru chi boles essire?", "confirmations.mute.confirm": "A sa muda", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index c428d66835..1abcac47e5 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Ye'v chynges tae the media description or preview thit ye'v no saved, fling them awa onie weys?", "confirmations.domain_block.confirm": "Dingie the hail domain", "confirmations.domain_block.message": "Ye a hunner percent shair thit ye'r wantin tae dingie the hail {domain}? In maist cases a haunfae tairgtit dingies an wheeshts are eneuch an preferit. Ye wullnae see content fae that domain in onie public timelines or in yer notes. Yer follaers fae that domain wull be taen awa.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log oot", "confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?", "confirmations.mute.confirm": "Wheesht", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index a5ffbc615b..f13aca561c 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "ඔබට මාධ්‍ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?", "confirmations.domain_block.confirm": "සම්පූර්ණ වසම අවහිර කරන්න", "confirmations.domain_block.message": "ඔබට සම්පූර්ණ {domain}අවහිර කිරීමට අවශ්‍ය බව ඔබට සැබවින්ම විශ්වාසද? බොහෝ අවස්ථාවලදී ඉලක්කගත බ්ලොක් හෝ නිශ්ශබ්ද කිරීම් කිහිපයක් ප්රමාණවත් වන අතර වඩාත් යෝග්ය වේ. ඔබ කිසිදු පොදු කාලරාමුවක හෝ ඔබගේ දැනුම්දීම් වල එම වසමේ අන්තර්ගතය නොදකිනු ඇත. එම වසමෙන් ඔබගේ අනුගාමිකයින් ඉවත් කරනු ලැබේ.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "නික්මෙන්න", "confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?", "confirmations.mute.confirm": "නිශ්ශබ්ද", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 03c237a649..a2c35fae9d 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?", "confirmations.domain_block.confirm": "Skry celú doménu", "confirmations.domain_block.message": "Si si naozaj istý/á, že chceš blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.", + "confirmations.edit.confirm": "Uprav", + "confirmations.edit.message": "Úpravou teraz prepíšeš správu, ktorú práve zostavuješ. Si si istý/á, že chceš pokračovať?", "confirmations.logout.confirm": "Odhlás sa", "confirmations.logout.message": "Si si istý/á, že sa chceš odhlásiť?", "confirmations.mute.confirm": "Nevšímaj si", @@ -509,10 +511,10 @@ "report.statuses.title": "Sú k dispozícii príspevky podporujúce toto hlásenie?", "report.submit": "Odošli", "report.target": "Nahlás {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.take_action": "Tu sú tvoje možnosti kontrolovať, čo vidíš na Mastodone:", + "report.thanks.take_action_actionable": "Kým to vyhodnotíme, môžeš podniknúť kroky voči @{name}:", "report.thanks.title": "Nechceš to vidieť?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.thanks.title_actionable": "Vďaka za nahlásenie, pozrieme sa na to.", "report.unfollow": "Nesleduj @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index d706eac777..331d9aa20a 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Imate ne shranjene spremembe za medijski opis ali predogled; jih želite kljub temu opustiti?", "confirmations.domain_block.confirm": "Blokiraj celotno domeno", "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.", + "confirmations.edit.confirm": "Uredi", + "confirmations.edit.message": "Urejanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?", "confirmations.logout.confirm": "Odjava", "confirmations.logout.message": "Ali ste prepričani, da se želite odjaviti?", "confirmations.mute.confirm": "Utišanje", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 927cf7659e..2c4c8cd89f 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?", "confirmations.domain_block.confirm": "Bllokoje krejt përkatësinë", "confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.", + "confirmations.edit.confirm": "Përpunojeni", + "confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?", "confirmations.logout.confirm": "Dilni", "confirmations.logout.message": "Jeni i sigurt se doni të dilet?", "confirmations.mute.confirm": "Heshtoje", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index a3ffb413ce..66dd80b901 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -4,12 +4,12 @@ "about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaštićeni znak kompanije Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Razlog nije naveden", "about.domain_blocks.preamble": "Mastodon vam generalno omogućava da vidite sadržaj i komunicirate sa korisnicima sa bilo kog drugog servera u fediverzumu. Ovo su izuzeci koji su napravljeni na ovom serveru.", - "about.domain_blocks.silenced.explanation": "U načelu nećete videti profile i sadržaj sa ovog servera, osim ako ga eksplicitno ne potražite ili se uključite tako što ćete ga pratiti.", + "about.domain_blocks.silenced.explanation": "Nećete videti profile i sadržaj sa ovog servera osim ako ih eksplicitno ne potražite ili ne zapratite neki profil sa servera.", "about.domain_blocks.silenced.title": "Ograničen", - "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati ili razmenjivati, što onemogućava bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.", + "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati niti razmenjivati, što će onemogućiti bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.", "about.domain_blocks.suspended.title": "Suspendovan", "about.not_available": "Ove informacije nisu dostupne na ovom serveru.", - "about.powered_by": "Decentralizovana društvena medija koju pokreće {mastodon}", + "about.powered_by": "Decentralizovana društvena mreža koju pokreće {mastodon}", "about.rules": "Pravila servera", "account.account_note_header": "Napomena", "account.add_or_remove_from_list": "Dodaj ili ukloni sa lista", @@ -38,11 +38,11 @@ "account.follows.empty": "Ovaj korisnik još uvek nikog ne prati.", "account.follows_you": "Prati vas", "account.go_to_profile": "Idi na profil", - "account.hide_reblogs": "Sakrij podržavanja od @{name}", - "account.joined_short": "Pridružio se", + "account.hide_reblogs": "Sakrij podržavanja @{name}", + "account.joined_short": "Datum pridruživanja", "account.languages": "Promeni pretplaćene jezike", "account.link_verified_on": "Vlasništvo nad ovom vezom je provereno {date}", - "account.locked_info": "Status privatnosti ovog naloga je podešen na zaključano. Vlasnik ručno pregleda ko ga može pratiti.", + "account.locked_info": "Status privatnosti ovog naloga je podešen na „zaključano”. Vlasnik ručno pregleda ko ga može pratiti.", "account.media": "Multimedija", "account.mention": "Pomeni korisnika @{name}", "account.moved_to": "Korisnik {name} je naznačio da je njegov novi nalog sada:", @@ -91,7 +91,7 @@ "bundle_column_error.routing.body": "Nije moguće pronaći traženu stranicu. Da li ste sigurni da je URL u adresnom polju ispravan?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zatvori", - "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.", + "bundle_modal_error.message": "Nešto je pošlo naopako tokom učitavanja ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovo", "closed_registrations.other_server_instructions": "Pošto je Mastodon decentralizovan, možete napraviti nalog na drugom serveru ali i dalje komunicirati sa ovim.", "closed_registrations_modal.description": "Kreiranje naloga na {domain} trenutno nije moguće, ali imajte u vidu da vam ne treba nalog zasebno na {domain} da biste koristili Mastodon.", @@ -162,8 +162,10 @@ "confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?", "confirmations.domain_block.confirm": "Blokiraj ceo domen", "confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.", - "confirmations.logout.confirm": "Odjavi se", - "confirmations.logout.message": "Da li se sigurni da želite da se odjavite?", + "confirmations.edit.confirm": "Uredi", + "confirmations.edit.message": "Uređivanjem će se obrisati poruka koju trenutno sastavljate. Da li ste sigurni da želite da nastavite?", + "confirmations.logout.confirm": "Odjava", + "confirmations.logout.message": "Da li ste sigurni da želite da se odjavite?", "confirmations.mute.confirm": "Ignoriši", "confirmations.mute.explanation": "Ovo će sakriti objave od korisnika i objave koje ga pominju, ali će mu i dalje biti dozvoljeno da vidi vaše objave i da vas prati.", "confirmations.mute.message": "Da li stvarno želite da ignorišete korisnika {name}?", @@ -187,13 +189,13 @@ "disabled_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen.", "dismissable_banner.community_timeline": "Ovo su najnovije javne objave ljudi čije naloge hostuje {domain}.", "dismissable_banner.dismiss": "Odbaci", - "dismissable_banner.explore_links": "O ovim vestima upravo sada razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.", + "dismissable_banner.explore_links": "O ovim vestima trenutno razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.", "dismissable_banner.explore_statuses": "Ove objave sa ovog i drugih servera u decentralizovanoj mreži postaju sve popularnije na ovom serveru.", "dismissable_banner.explore_tags": "Ove heš oznake postaju sve popularnije među ljudima na ovom i drugim serverima decentralizovane mreže.", "dismissable_banner.public_timeline": "Ovo su najnovije javne objave ljudi na ovom i drugim serverima decentralizovane mreže za koje ovaj server zna.", "embed.instructions": "Ugradite ovu objavu na svoj veb sajt kopiranjem koda ispod.", "embed.preview": "Evo kako će to izgledati:", - "emoji_button.activity": "Aktivnost", + "emoji_button.activity": "Aktivnosti", "emoji_button.clear": "Obriši", "emoji_button.custom": "Prilagođeno", "emoji_button.flags": "Zastavice", @@ -220,24 +222,24 @@ "empty_column.favourited_statuses": "Još uvek nemate objava označenih kao omiljene. Kada označite neku, pojaviće se ovde.", "empty_column.favourites": "Niko još nije označio ovu objavu kao omiljenu. Kada neko to uradi, pojaviće se ovde.", "empty_column.follow_recommendations": "Izgleda da ne mogu da se generišu bilo kakvi predlozi za vas. Možete pokušati da koristite pretragu kako biste potražili ljude koje možda poznajete ili istražili popularne heš oznake.", - "empty_column.follow_requests": "Još uvek nemate zahteva za praćenje. Kada primite zahtev, pojaviće se ovde.", - "empty_column.followed_tags": "Još uvek niste zapratili nijednu heš oznaku. Kada to uradite, one će se pojaviti ovde.", + "empty_column.follow_requests": "Još uvek nemate nijedan zahtev za praćenje. Kada primite zahtev, on će se pojaviti ovde.", + "empty_column.followed_tags": "Još uvek niste zapratili nijednu heš oznaku. Kada to uradite, one će se pojaviti ovde.", "empty_column.hashtag": "Još uvek nema ničega u ovoj heš oznaci.", "empty_column.home": "Vaša početna vremenska linija je prazna! Pratite više ljudi da biste je popunili. {suggestions}", "empty_column.home.suggestions": "Pogledajte neke predloge", "empty_column.list": "U ovoj listi još nema ničega. Kada članovi ove liste objave nešto novo, pojaviće se ovde.", - "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, pojaviće se ovde.", + "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, ona će se pojaviti ovde.", "empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.", "empty_column.notifications": "Još uvek nemate nikakva obaveštenja. Kada drugi ljudi budu u interakciji sa vama, videćete to ovde.", "empty_column.public": "Ovde nema ničega! Napišite nešto javno ili ručno pratite korisnike sa drugih servera da biste ovo popunili", "error.unexpected_crash.explanation": "Zbog greške u našem kodu ili problema sa kompatibilnošću pregledača, ova stranica se nije mogla pravilno prikazati.", "error.unexpected_crash.explanation_addons": "Ova stranica se nije mogla pravilno prikazati. Ovu grešku verovatno uzrokuju dodaci pregledača ili alati za automatsko prevođenje.", "error.unexpected_crash.next_steps": "Pokušajte da osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon putem drugog pregledača ili matične aplikacije.", - "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon preko drugog pregledača ili matične aplikacije.", + "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možete da nastavite da koristite Mastodon korišćenjem drugog pregledača ili matične aplikacije.", "errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord", "errors.unexpected_crash.report_issue": "Prijavi problem", "explore.search_results": "Rezultati pretrage", - "explore.suggested_follows": "Za tebe", + "explore.suggested_follows": "Za Vas", "explore.title": "Istraži", "explore.trending_links": "Vesti", "explore.trending_statuses": "Objave", @@ -249,7 +251,7 @@ "filter_modal.added.review_and_configure": "Za pregled i dalju konfiguraciju ove kategorije filtera, idite na {settings_link}.", "filter_modal.added.review_and_configure_title": "Podešavanja filtera", "filter_modal.added.settings_link": "stranica podešavanja", - "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću kategoriju filtera: {title}.", + "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću filter kategoriju: {title}.", "filter_modal.added.title": "Filter je dodat!", "filter_modal.select_filter.context_mismatch": "ne odnosi se na ovaj kontekst", "filter_modal.select_filter.expired": "isteklo", @@ -264,7 +266,7 @@ "follow_request.authorize": "Odobri", "follow_request.reject": "Odbij", "follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.", - "followed_tags": "Praćene heš oznake", + "followed_tags": "Praćene heš oznake", "footer.about": "Osnovni podaci", "footer.directory": "Direktorijum profila", "footer.get_app": "Preuzmite aplikaciju", @@ -280,13 +282,13 @@ "hashtag.column_header.tag_mode.none": "bez {additional}", "hashtag.column_settings.select.no_options_message": "Nisu pronađeni predlozi", "hashtag.column_settings.select.placeholder": "Unesite heš oznake…", - "hashtag.column_settings.tag_mode.all": "Sve ove", + "hashtag.column_settings.tag_mode.all": "Sve", "hashtag.column_settings.tag_mode.any": "Bilo koje od ovih", "hashtag.column_settings.tag_mode.none": "Nijedan od ovih", "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu", - "hashtag.follow": "Prati heš oznaku", + "hashtag.follow": "Zaprati heš oznaku", "hashtag.unfollow": "Otprati heš oznaku", - "home.column_settings.basic": "Osnovno", + "home.column_settings.basic": "Osnovna", "home.column_settings.show_reblogs": "Prikaži podržavanja", "home.column_settings.show_replies": "Prikaži odgovore", "home.hide_announcements": "Sakrij najave", @@ -300,7 +302,7 @@ "interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.", "interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.", "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu", - "interaction_modal.title.follow": "Prati {name}", + "interaction_modal.title.follow": "Zaprati {name}", "interaction_modal.title.reblog": "Podrži objavu korisnika {name}", "interaction_modal.title.reply": "Odgovori na objavu korisnika {name}", "intervals.full.days": "{number, plural, one {# dan} few {# dana} other {# dana}}", @@ -354,10 +356,10 @@ "lists.edit.submit": "Promeni naslov", "lists.new.create": "Dodaj listu", "lists.new.title_placeholder": "Naslov nove liste", - "lists.replies_policy.followed": "Svaki praćeni korisnik", - "lists.replies_policy.list": "Članovi liste", - "lists.replies_policy.none": "Niko", - "lists.replies_policy.title": "Prikaži odgovore na:", + "lists.replies_policy.followed": "Svakom praćenom korisniku", + "lists.replies_policy.list": "Članovima liste", + "lists.replies_policy.none": "Nikome", + "lists.replies_policy.title": "Prikaži odgovore:", "lists.search": "Pretraži među ljudima koje pratite", "lists.subheading": "Vaše liste", "load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}", @@ -368,7 +370,7 @@ "moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.", "mute_modal.duration": "Trajanje", "mute_modal.hide_notifications": "Sakriti obaveštenja od ovog korisnika?", - "mute_modal.indefinite": "Neodređen", + "mute_modal.indefinite": "Neodređeno", "navigation_bar.about": "Osnovni podaci", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.bookmarks": "Obeleživači", @@ -382,7 +384,7 @@ "navigation_bar.favourites": "Omiljeno", "navigation_bar.filters": "Ignorisane reči", "navigation_bar.follow_requests": "Zahtevi za praćenje", - "navigation_bar.followed_tags": "Praćene heš oznake", + "navigation_bar.followed_tags": "Praćene heš oznake", "navigation_bar.follows_and_followers": "Praćenja i pratioci", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Odjava", @@ -393,9 +395,9 @@ "navigation_bar.public_timeline": "Združena vremenska linija", "navigation_bar.search": "Pretraga", "navigation_bar.security": "Bezbednost", - "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da pristupite ovom resursu.", - "notification.admin.report": "{name} je prijavio {target}", - "notification.admin.sign_up": "{name} se registrovao", + "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da biste pristupili ovom resursu.", + "notification.admin.report": "{name} je prijavio/-la {target}", + "notification.admin.sign_up": "{name} se registrovao/-la", "notification.favourite": "{name} je označio vašu objavu kao omiljenu", "notification.follow": "{name} vas je zapratio", "notification.follow_request": "{name} je zatražio da vas prati", @@ -412,7 +414,7 @@ "notifications.column_settings.alert": "Obaveštenja na radnoj površini", "notifications.column_settings.favourite": "Omiljeni:", "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije", - "notifications.column_settings.filter_bar.category": "Traka za brzi filter", + "notifications.column_settings.filter_bar.category": "Traka za brzo filtriranje", "notifications.column_settings.filter_bar.show_bar": "Prikaži traku sa filterima", "notifications.column_settings.follow": "Novi pratioci:", "notifications.column_settings.follow_request": "Novi zahtevi za praćenje:", @@ -436,13 +438,13 @@ "notifications.grant_permission": "Odobri dozvolu.", "notifications.group": "{count} obaveštenja", "notifications.mark_as_read": "Označi svako obaveštenje kao pročitano", - "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolom pregledača", + "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolu pregledača", "notifications.permission_denied_alert": "Obaveštenja na radnoj površini ne mogu biti omogućena, jer je dozvola pregledača ranije bila odbijena", "notifications.permission_required": "Obaveštenja na radnoj površini nisu dostupna jer potrebna dozvola nije dodeljena.", "notifications_permission_banner.enable": "Omogućiti obaveštenja na radnoj površini", "notifications_permission_banner.how_to_control": "Da biste primali obaveštenja kada Mastodon nije otvoren, omogućite obaveštenja na radnoj površini. Kada su obaveštenja na radnoj površini omogućena vrste interakcija koje ona generišu mogu se podešavati pomoću dugmeta {icon}.", "notifications_permission_banner.title": "Nikada ništa ne propustite", - "picture_in_picture.restore": "Vrati to nazad", + "picture_in_picture.restore": "Vrati nazad", "poll.closed": "Zatvoreno", "poll.refresh": "Osveži", "poll.total_people": "{count, plural, one {# osoba} few {# osobe} other {# osoba}}", @@ -453,13 +455,13 @@ "poll_button.add_poll": "Dodaj anketu", "poll_button.remove_poll": "Ukloni anketu", "privacy.change": "Promeni privatnost objave", - "privacy.direct.long": "Vidljivo samo za pomenute korisnike", + "privacy.direct.long": "Vidljivo samo pomenutim korisnicima", "privacy.direct.short": "Samo pomenute osobe", - "privacy.private.long": "Vidljivo samo za pratioce", - "privacy.private.short": "Samo pratioci", + "privacy.private.long": "Vidljivo samo pratiocima", + "privacy.private.short": "Samo pratiocima", "privacy.public.long": "Vidljivo za sve", "privacy.public.short": "Javno", - "privacy.unlisted.long": "Vidljivo za sve, ali isključeno iz funkcije otkrivanja", + "privacy.unlisted.long": "Vidljivo svima, ali isključeno iz funkcija otkrivanja", "privacy.unlisted.short": "Neizlistano", "privacy_policy.last_updated": "Poslednje ažuriranje {date}", "privacy_policy.title": "Politika privatnosti", @@ -479,34 +481,34 @@ "relative_time.today": "danas", "reply_indicator.cancel": "Otkaži", "report.block": "Blokiraj", - "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti vaše objave niti će moći da vas prati. Takođe može da zna da je blokiran.", + "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti Vaše objave niti će moći da Vas prati. Takođe će moći da sazna da je blokiran.", "report.categories.other": "Ostalo", "report.categories.spam": "Spam", "report.categories.violation": "Sadržaj krši jedno ili više pravila servera", "report.category.subtitle": "Odaberite najpribližnije", - "report.category.title": "Recite nam šta je problem sa ovim {type}", - "report.category.title_account": "profilom", + "report.category.title": "Recite nam šta je problem sa {type}", + "report.category.title_account": "ovim profilom", "report.category.title_status": "objavom", "report.close": "Gotovo", - "report.comment.title": "Da li ima nešto dodatno što treba da znamo?", + "report.comment.title": "Da li ima još nešto što biste hteli da nam date do znanja?", "report.forward": "Proslediti {target}", "report.forward_hint": "Nalog je sa drugog servera. Poslati anonimnu kopiju prijave i tamo?", "report.mute": "Ignoriši", - "report.mute_explanation": "Nećete videti objave korisnika. On i i dalje može da vas prati i vidi vaše objave i neće znati da je ignorisan.", + "report.mute_explanation": "Nećete videti objave korisnika. On će i dalje moći da Vas prati i vidi Vaše objave i neće znati da je ignorisan.", "report.next": "Sledeće", "report.placeholder": "Dodatni komentari", "report.reasons.dislike": "Ne sviđa mi se", - "report.reasons.dislike_description": "Ovo nije nešto što želiš da vidite", + "report.reasons.dislike_description": "Ovo nije nešto što želite da vidite", "report.reasons.other": "Nešto drugo", "report.reasons.other_description": "Problem se ne uklapa u druge kategorije", "report.reasons.spam": "Ovo je spam", "report.reasons.spam_description": "Zlonamerne veze, lažno angažovanje ili odgovori koji se ponavljaju", "report.reasons.violation": "Krši pravila servera", - "report.reasons.violation_description": "Svesni ste da krši neka određena pravila", - "report.rules.subtitle": "Izaberi sve što važi", + "report.reasons.violation_description": "Svesni ste da krši određena pravila", + "report.rules.subtitle": "Izaberite sva pravila koja su prekršena", "report.rules.title": "Koja pravila su prekršena?", - "report.statuses.subtitle": "Izaberi sve što važi", - "report.statuses.title": "Da li postoje bilo kakve objave koje podržavaju ovu prijavu?", + "report.statuses.subtitle": "Izaberite sve što važi", + "report.statuses.title": "Ima li bilo kakvih objava koje potkrepljuju ovu prijavu?", "report.submit": "Pošalji", "report.target": "Prijavljujem {target}", "report.thanks.take_action": "Ovo su Vaše opcije da kontrolišete šta vidite na Mastodon-u:", @@ -534,7 +536,7 @@ "search_results.nothing_found": "Nije moguće pronaći ništa za ove termine za pretragu", "search_results.statuses": "Objave", "search_results.statuses_fts_disabled": "Pretraga objava po sadržaju nije omogućena na ovom Mastodon serveru.", - "search_results.title": "Pretraži {q}", + "search_results.title": "Traži {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}", "server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)", "server_banner.active_users": "aktivnih korisnika", @@ -542,8 +544,8 @@ "server_banner.introduction": "{domain} je deo decentralizovane društvene mreže koju pokreće {mastodon}.", "server_banner.learn_more": "Saznajte više", "server_banner.server_stats": "Statistike servera:", - "sign_in_banner.create_account": "Napravi nalog", - "sign_in_banner.sign_in": "Prijavi se", + "sign_in_banner.create_account": "Napravite nalog", + "sign_in_banner.sign_in": "Prijavite se", "sign_in_banner.text": "Prijavite se da biste pratili profile ili heš oznake, označili objave kao omiljene, delili i odgovarali na njih. Takođe možete komunicirati sa svog naloga na drugom serveru.", "status.admin_account": "Otvori moderatorsko okruženje za @{name}", "status.admin_domain": "Otvori moderatorsko okruženje za {domain}", @@ -555,7 +557,7 @@ "status.copy": "Kopiraj vezu u objavu", "status.delete": "Izbriši", "status.detailed_status": "Detaljan prikaz razgovora", - "status.direct": "Direktna poruka @{name}", + "status.direct": "Pošalji poruku @{name}", "status.edit": "Uredi", "status.edited": "Uređeno {date}", "status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}", @@ -584,7 +586,7 @@ "status.remove_bookmark": "Ukloni obeleživač", "status.replied_to": "Odgovor za {name}", "status.reply": "Odgovori", - "status.replyAll": "Odgovori na diskusiju", + "status.replyAll": "Odgovori na niz", "status.report": "Prijavi @{name}", "status.sensitive_warning": "Osetljiv sadržaj", "status.share": "Podeli", @@ -599,7 +601,7 @@ "status.uncached_media_warning": "Nije dostupno", "status.unmute_conversation": "Ne ignoriši razgovor", "status.unpin": "Otkači sa profila", - "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Odaberite ništa da primate objave na svim jezicima.", + "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Kada nijedan jezik nije izabran, primaćete objave na svim jezicima.", "subscribed_languages.save": "Sačuvaj izmene", "subscribed_languages.target": "Promeni jezike na koje je {target} prijavljen", "suggestions.dismiss": "Odbaci predlog", @@ -615,9 +617,9 @@ "time_remaining.seconds": "Ostalo {number, plural, one {# sekund} few {# sekunde} other {# sekundi}}", "timeline_hint.remote_resource_not_displayed": "{resource} sa drugih servera se ne prikazuju.", "timeline_hint.resources.followers": "Pratioci", - "timeline_hint.resources.follows": "Praćeni", + "timeline_hint.resources.follows": "Praćenja", "timeline_hint.resources.statuses": "Starije objave", - "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} few {{days} dana} other {{days} dana}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} other {{days} dana}}", "trends.trending_now": "U trendu sada", "ui.beforeunload": "Vaš nacrt će biti izgubljen ako napustite Mastodon.", "units.short.billion": "{count} mlrd.", @@ -626,9 +628,9 @@ "upload_area.title": "Prevucite i otpustite za otpremanje", "upload_button.label": "Dodaj slike, video ili audio datoteku", "upload_error.limit": "Dostignuto je ograničenje za otpremanje datoteka.", - "upload_error.poll": "Otpremanje datoteka nije dozvoljeno sa anketama.", - "upload_form.audio_description": "Opišite za osobe sa oštećenim sluhom", - "upload_form.description": "Opišite za osobe sa oštećenim vidom", + "upload_error.poll": "Otpremanje datoteka nije dozvoljeno kod anketa.", + "upload_form.audio_description": "Dodajte opis za osobe sa oštećenim sluhom", + "upload_form.description": "Dodajte opis za osobe sa oštećenim vidom", "upload_form.description_missing": "Nema dodatog opisa", "upload_form.edit": "Uredi", "upload_form.thumbnail": "Promeni sličicu", @@ -639,8 +641,8 @@ "upload_modal.applying": "Primena…", "upload_modal.choose_image": "Odaberite sliku", "upload_modal.description_placeholder": "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos", - "upload_modal.detect_text": "Otkrij tekst sa slike", - "upload_modal.edit_media": "Uredi miltimediju", + "upload_modal.detect_text": "Pronađi tekst sa slike", + "upload_modal.edit_media": "Uredi multimediju", "upload_modal.hint": "Kliknite ili prevucite kružić na pregledu za izbor tačke fokusa koja će uvek biti vidljiva na svim sličicama.", "upload_modal.preparing_ocr": "Priprema OCR-a…", "upload_modal.preview_label": "Pregled ({ratio})", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index ea39d230a2..28d6126bba 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -4,12 +4,12 @@ "about.disclaimer": "Mastodon је бесплатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Разлог није наведен", "about.domain_blocks.preamble": "Мастодон вам генерално омогућава да видите садржај и комуницирате са корисницима са било ког другог сервера у федиверзуму. Ово су изузеци који су направљени на овом серверу.", - "about.domain_blocks.silenced.explanation": "У начелу нећете видети профиле и садржај са овог сервера, осим ако га експлицитно не потражите или се укључите тако што ћете га пратити.", + "about.domain_blocks.silenced.explanation": "Нећете видети профиле и садржај са овог сервера осим ако их експлицитно не потражите или не запратите неки профил са сервера.", "about.domain_blocks.silenced.title": "Ограничен", - "about.domain_blocks.suspended.explanation": "Подаци са овог сервера неће се обрађивати, чувати или размењивати, што онемогућава било какву интеракцију или комуникацију са корисницима са овог сервера.", + "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": "Додај или уклони са листа", @@ -38,11 +38,11 @@ "account.follows.empty": "Овај корисник још увек никог не прати.", "account.follows_you": "Прати вас", "account.go_to_profile": "Иди на профил", - "account.hide_reblogs": "Сакриј подржавања од @{name}", - "account.joined_short": "Придружио се", + "account.hide_reblogs": "Сакриј подржавања @{name}", + "account.joined_short": "Датум придруживања", "account.languages": "Промени претплаћене језике", "account.link_verified_on": "Власништво над овом везом је проверено {date}", - "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.", + "account.locked_info": "Статус приватности овог налога је подешен на „закључано”. Власник ручно прегледа ко га може пратити.", "account.media": "Мултимедија", "account.mention": "Помени корисника @{name}", "account.moved_to": "Корисник {name} је назначио да је његов нови налог сада:", @@ -91,7 +91,7 @@ "bundle_column_error.routing.body": "Није могуће пронаћи тражену страницу. Да ли сте сигурни да је URL у адресном пољу исправан?", "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Затвори", - "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.", + "bundle_modal_error.message": "Нешто је пошло наопако током учитавања ове компоненте.", "bundle_modal_error.retry": "Покушајте поново", "closed_registrations.other_server_instructions": "Пошто је Mastodon децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.", "closed_registrations_modal.description": "Креирање налога на {domain} тренутно није могуће, али имајте у виду да вам не треба налог засебно на {domain} да бисте користили Mastodon.", @@ -129,7 +129,7 @@ "compose_form.direct_message_warning_learn_more": "Сазнајте више", "compose_form.encryption_warning": "Објаве на Mastodon-у нису потпуно шифроване. Немојте делити никакве осетљиве информације преко Mastodon-а.", "compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер није јавна. Само јавне објаве се могу претраживати по хеш ознакама.", - "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да вас прати и да види ваше објаве намењене само за ваше пратиоце.", + "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.", "compose_form.lock_disclaimer.lock": "закључан", "compose_form.placeholder": "О чему размишљате?", "compose_form.poll.add_option": "Додајте избор", @@ -162,8 +162,10 @@ "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?", "confirmations.domain_block.confirm": "Блокирај цео домен", "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.", - "confirmations.logout.confirm": "Одјави се", - "confirmations.logout.message": "Да ли се сигурни да желите да се одјавите?", + "confirmations.edit.confirm": "Уреди", + "confirmations.edit.message": "Уређивањем ће се обрисати порука коју тренутно састављате. Да ли сте сигурни да желите да наставите?", + "confirmations.logout.confirm": "Одјава", + "confirmations.logout.message": "Да ли сте сигурни да желите да се одјавите?", "confirmations.mute.confirm": "Игнориши", "confirmations.mute.explanation": "Ово ће сакрити објаве од корисника и објаве које га помињу, али ће му и даље бити дозвољено да види ваше објаве и да вас прати.", "confirmations.mute.message": "Да ли стварно желите да игноришете корисника {name}?", @@ -187,13 +189,13 @@ "disabled_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен.", "dismissable_banner.community_timeline": "Ово су најновије јавне објаве људи чије налоге хостује {domain}.", "dismissable_banner.dismiss": "Одбаци", - "dismissable_banner.explore_links": "О овим вестима управо сада разговарају људи на овом и другим серверима децентрализоване мреже.", + "dismissable_banner.explore_links": "О овим вестима тренутно разговарају људи на овом и другим серверима децентрализоване мреже.", "dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарније на овом серверу.", "dismissable_banner.explore_tags": "Ове хеш ознаке постају све популарније међу људима на овом и другим серверима децентрализоване мреже.", "dismissable_banner.public_timeline": "Ово су најновије јавне објаве људи на овом и другим серверима децентрализоване мреже за које овај сервер зна.", "embed.instructions": "Уградите ову објаву на свој веб сајт копирањем кода испод.", "embed.preview": "Ево како ће то изгледати:", - "emoji_button.activity": "Активност", + "emoji_button.activity": "Активности", "emoji_button.clear": "Обриши", "emoji_button.custom": "Прилагођено", "emoji_button.flags": "Заставице", @@ -220,24 +222,24 @@ "empty_column.favourited_statuses": "Још увек немате објава означених као омиљене. Када означите неку, појавиће се овде.", "empty_column.favourites": "Нико још није означио ову објаву као омиљену. Када неко то уради, појавиће се овде.", "empty_column.follow_recommendations": "Изгледа да не могу да се генеришу било какви предлози за вас. Можете покушати да користите претрагу како бисте потражили људе које можда познајете или истражили популарне хеш ознаке.", - "empty_column.follow_requests": "Још увек немате захтева за праћење. Када примите захтев, појавиће се овде.", + "empty_column.follow_requests": "Још увек немате ниједан захтев за праћење. Када примите захтев, он ће се појавити овде.", "empty_column.followed_tags": "Још увек нисте запратили ниједну хеш ознаку. Када то урадите, оне ће се појавити овде.", "empty_column.hashtag": "Још увек нема ничега у овој хеш ознаци.", "empty_column.home": "Ваша почетна временска линија је празна! Пратите више људи да бисте је попунили. {suggestions}", "empty_column.home.suggestions": "Погледајте неке предлоге", "empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.", - "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, појавиће се овде.", + "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, она ће се појавити овде.", "empty_column.mutes": "Још увек не игноришете ниједног корисника.", "empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.", "empty_column.public": "Овде нема ничега! Напишите нешто јавно или ручно пратите кориснике са других сервера да бисте ово попунили", "error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.", "error.unexpected_crash.explanation_addons": "Ова страница се није могла правилно приказати. Ову грешку вероватно узрокују додаци прегледача или алати за аутоматско превођење.", "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon путем другог прегледача или матичне апликације.", - "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon преко другог прегледача или матичне апликације.", + "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можете да наставите да користите Mastodon коришћењем другог прегледача или матичне апликације.", "errors.unexpected_crash.copy_stacktrace": "Копирај „stacktrace” у клипборд", "errors.unexpected_crash.report_issue": "Пријави проблем", "explore.search_results": "Резултати претраге", - "explore.suggested_follows": "За тебе", + "explore.suggested_follows": "За Вас", "explore.title": "Истражи", "explore.trending_links": "Вести", "explore.trending_statuses": "Објаве", @@ -249,7 +251,7 @@ "filter_modal.added.review_and_configure": "За преглед и даљу конфигурацију ове категорије филтера, идите на {settings_link}.", "filter_modal.added.review_and_configure_title": "Подешавања филтера", "filter_modal.added.settings_link": "страница подешавања", - "filter_modal.added.short_explanation": "Ова објава је додата у следећу категорију филтера: {title}.", + "filter_modal.added.short_explanation": "Ова објава је додата у следећу филтер категорију: {title}.", "filter_modal.added.title": "Филтер је додат!", "filter_modal.select_filter.context_mismatch": "не односи се на овај контекст", "filter_modal.select_filter.expired": "истекло", @@ -280,13 +282,13 @@ "hashtag.column_header.tag_mode.none": "без {additional}", "hashtag.column_settings.select.no_options_message": "Нису пронађени предлози", "hashtag.column_settings.select.placeholder": "Унесите хеш ознаке…", - "hashtag.column_settings.tag_mode.all": "Све оve", + "hashtag.column_settings.tag_mode.all": "Све", "hashtag.column_settings.tag_mode.any": "Било које од ових", "hashtag.column_settings.tag_mode.none": "Ниједан од ових", "hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону", - "hashtag.follow": "Прати хеш ознаку", + "hashtag.follow": "Запрати хеш ознаку", "hashtag.unfollow": "Отпрати хеш ознаку", - "home.column_settings.basic": "Основно", + "home.column_settings.basic": "Основна", "home.column_settings.show_reblogs": "Прикажи подржавања", "home.column_settings.show_replies": "Прикажи одговоре", "home.hide_announcements": "Сакриј најаве", @@ -300,7 +302,7 @@ "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.follow": "Запрати {name}", "interaction_modal.title.reblog": "Подржи објаву корисника {name}", "interaction_modal.title.reply": "Одговори на објаву корисника {name}", "intervals.full.days": "{number, plural, one {# дан} few {# дана} other {# дана}}", @@ -354,10 +356,10 @@ "lists.edit.submit": "Промени наслов", "lists.new.create": "Додај листу", "lists.new.title_placeholder": "Наслов нове листе", - "lists.replies_policy.followed": "Сваки праћени корисник", - "lists.replies_policy.list": "Чланови листе", - "lists.replies_policy.none": "Нико", - "lists.replies_policy.title": "Прикажи одговоре на:", + "lists.replies_policy.followed": "Сваком праћеном кориснику", + "lists.replies_policy.list": "Члановима листе", + "lists.replies_policy.none": "Никоме", + "lists.replies_policy.title": "Прикажи одговоре:", "lists.search": "Претражи међу људима које пратите", "lists.subheading": "Ваше листе", "load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}", @@ -368,7 +370,7 @@ "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.", "mute_modal.duration": "Трајање", "mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?", - "mute_modal.indefinite": "Неодређен", + "mute_modal.indefinite": "Неодређено", "navigation_bar.about": "Основни подаци", "navigation_bar.blocks": "Блокирани корисници", "navigation_bar.bookmarks": "Обележивачи", @@ -393,9 +395,9 @@ "navigation_bar.public_timeline": "Здружена временска линија", "navigation_bar.search": "Претрага", "navigation_bar.security": "Безбедност", - "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да приступите овом ресурсу.", - "notification.admin.report": "{name} је пријавио {target}", - "notification.admin.sign_up": "{name} се регистровао", + "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да бисте приступили овом ресурсу.", + "notification.admin.report": "{name} је пријавио/-ла {target}", + "notification.admin.sign_up": "{name} се регистровао/-ла", "notification.favourite": "{name} је означио вашу објаву као омиљену", "notification.follow": "{name} вас је запратио", "notification.follow_request": "{name} је затражио да вас прати", @@ -412,7 +414,7 @@ "notifications.column_settings.alert": "Обавештења на радној површини", "notifications.column_settings.favourite": "Омиљени:", "notifications.column_settings.filter_bar.advanced": "Прикажи све категорије", - "notifications.column_settings.filter_bar.category": "Трака за брзи филтер", + "notifications.column_settings.filter_bar.category": "Трака за брзо филтрирање", "notifications.column_settings.filter_bar.show_bar": "Прикажи траку са филтерима", "notifications.column_settings.follow": "Нови пратиоци:", "notifications.column_settings.follow_request": "Нови захтеви за праћење:", @@ -436,13 +438,13 @@ "notifications.grant_permission": "Одобри дозволу.", "notifications.group": "{count} обавештења", "notifications.mark_as_read": "Означи свако обавештење као прочитано", - "notifications.permission_denied": "Обавештења на радној површини нису доступна због претходно одбијеног захтева за дозволом прегледача", + "notifications.permission_denied": "Обавештења на радној површини нису доступна због претходно одбијеног захтева за дозволу прегледача", "notifications.permission_denied_alert": "Обавештења на радној површини не могу бити омогућена, јер је дозвола прегледача раније била одбијена", "notifications.permission_required": "Обавештења на радној површини нису доступна јер потребна дозвола није додељена.", "notifications_permission_banner.enable": "Омогућити обавештења на радној површини", "notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.", "notifications_permission_banner.title": "Никада ништа не пропустите", - "picture_in_picture.restore": "Врати то назад", + "picture_in_picture.restore": "Врати назад", "poll.closed": "Затворено", "poll.refresh": "Освежи", "poll.total_people": "{count, plural, one {# особа} few {# особе} other {# особа}}", @@ -453,13 +455,13 @@ "poll_button.add_poll": "Додај анкету", "poll_button.remove_poll": "Уклони анкету", "privacy.change": "Промени приватност објаве", - "privacy.direct.long": "Видљиво само за поменуте кориснике", + "privacy.direct.long": "Видљиво само поменутим корисницима", "privacy.direct.short": "Само поменуте особе", - "privacy.private.long": "Видљиво само за пратиоце", - "privacy.private.short": "Само пратиоци", + "privacy.private.long": "Видљиво само пратиоцима", + "privacy.private.short": "Само пратиоцима", "privacy.public.long": "Видљиво за све", "privacy.public.short": "Јавно", - "privacy.unlisted.long": "Видљиво за све, али искључено из функције откривања", + "privacy.unlisted.long": "Видљиво свима, али искључено из функција откривања", "privacy.unlisted.short": "Неизлистано", "privacy_policy.last_updated": "Последње ажурирање {date}", "privacy_policy.title": "Политика приватности", @@ -479,34 +481,34 @@ "relative_time.today": "данас", "reply_indicator.cancel": "Откажи", "report.block": "Блокирај", - "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети ваше објаве нити ће моћи да вас прати. Такође може да зна да је блокиран.", + "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети Ваше објаве нити ће моћи да Вас прати. Такође ће моћи да сазна да је блокиран.", "report.categories.other": "Остало", "report.categories.spam": "Спам", "report.categories.violation": "Садржај крши једно или више правила сервера", "report.category.subtitle": "Одаберите најприближније", - "report.category.title": "Реците нам шта је проблем са овим {type}", - "report.category.title_account": "профилом", + "report.category.title": "Реците нам шта је проблем са {type}", + "report.category.title_account": "овим профилом", "report.category.title_status": "објавом", "report.close": "Готово", - "report.comment.title": "Да ли има нешто додатно што треба да знамо?", + "report.comment.title": "Да ли има још нешто што бисте хтели да нам дате до знања?", "report.forward": "Проследити {target}", "report.forward_hint": "Налог је са другог сервера. Послати анонимну копију пријаве и тамо?", "report.mute": "Игнориши", - "report.mute_explanation": "Нећете видети објаве корисника. Он и и даље може да вас прати и види ваше објаве и неће знати да је игнорисан.", + "report.mute_explanation": "Нећете видети објаве корисника. Он ће и даље моћи да Вас прати и види Ваше објаве и неће знати да је игнорисан.", "report.next": "Следеће", "report.placeholder": "Додатни коментари", "report.reasons.dislike": "Не свиђа ми се", - "report.reasons.dislike_description": "Ово није нешто што желиш да видите", + "report.reasons.dislike_description": "Ово није нешто што желите да видите", "report.reasons.other": "Нешто друго", "report.reasons.other_description": "Проблем се не уклапа у друге категорије", "report.reasons.spam": "Ово је спам", "report.reasons.spam_description": "Злонамерне везе, лажно ангажовање или одговори који се понављају", "report.reasons.violation": "Крши правила сервера", - "report.reasons.violation_description": "Свесни сте да крши нека одређена правила", - "report.rules.subtitle": "Изабери све што важи", + "report.reasons.violation_description": "Свесни сте да крши одређена правила", + "report.rules.subtitle": "Изаберите сва правила која су прекршена", "report.rules.title": "Која правила су прекршена?", - "report.statuses.subtitle": "Изабери све што важи", - "report.statuses.title": "Да ли постоје било какве објаве које подржавају ову пријаву?", + "report.statuses.subtitle": "Изаберите све што важи", + "report.statuses.title": "Има ли било каквих објава које поткрепљују ову пријаву?", "report.submit": "Пошаљи", "report.target": "Пријављујем {target}", "report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Mastodon-у:", @@ -534,7 +536,7 @@ "search_results.nothing_found": "Није могуће пронаћи ништа за ове термине за претрагу", "search_results.statuses": "Објаве", "search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Mastodon серверу.", - "search_results.title": "Претражи {q}", + "search_results.title": "Тражи {q}", "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}", "server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)", "server_banner.active_users": "активних корисника", @@ -542,8 +544,8 @@ "server_banner.introduction": "{domain} је део децентрализоване друштвене мреже коју покреће {mastodon}.", "server_banner.learn_more": "Сазнајте више", "server_banner.server_stats": "Статистике сервера:", - "sign_in_banner.create_account": "Направи налог", - "sign_in_banner.sign_in": "Пријави се", + "sign_in_banner.create_account": "Направите налог", + "sign_in_banner.sign_in": "Пријавите се", "sign_in_banner.text": "Пријавите се да бисте пратили профиле или хеш ознаке, означили објаве као омиљене, делили и одговарали на њих. Такође можете комуницирати са свог налога на другом серверу.", "status.admin_account": "Отвори модераторско окружење за @{name}", "status.admin_domain": "Отвори модераторско окружење за {domain}", @@ -555,7 +557,7 @@ "status.copy": "Копирај везу у објаву", "status.delete": "Избриши", "status.detailed_status": "Детаљан приказ разговора", - "status.direct": "Директна порука @{name}", + "status.direct": "Пошаљи поруку @{name}", "status.edit": "Уреди", "status.edited": "Уређено {date}", "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}", @@ -584,7 +586,7 @@ "status.remove_bookmark": "Уклони обележивач", "status.replied_to": "Одговор за {name}", "status.reply": "Одговори", - "status.replyAll": "Одговори на дискусију", + "status.replyAll": "Одговори на низ", "status.report": "Пријави @{name}", "status.sensitive_warning": "Осетљив садржај", "status.share": "Подели", @@ -599,7 +601,7 @@ "status.uncached_media_warning": "Није доступно", "status.unmute_conversation": "Не игнориши разговор", "status.unpin": "Откачи са профила", - "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Одаберите ништа да примате објаве на свим језицима.", + "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Када ниједан језик није изабран, примаћете објаве на свим језицима.", "subscribed_languages.save": "Сачувај измене", "subscribed_languages.target": "Промени језике на које је {target} пријављен", "suggestions.dismiss": "Одбаци предлог", @@ -615,9 +617,9 @@ "time_remaining.seconds": "Остало {number, plural, one {# секунд} few {# секунде} other {# секунди}}", "timeline_hint.remote_resource_not_displayed": "{resource} са других сервера се не приказују.", "timeline_hint.resources.followers": "Пратиоци", - "timeline_hint.resources.follows": "Праћени", + "timeline_hint.resources.follows": "Праћења", "timeline_hint.resources.statuses": "Старије објаве", - "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} few {{days} дана} other {{days} дана}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} other {{days} дана}}", "trends.trending_now": "У тренду сада", "ui.beforeunload": "Ваш нацрт ће бити изгубљен ако напустите Mastodon.", "units.short.billion": "{count} млрд.", @@ -626,9 +628,9 @@ "upload_area.title": "Превуците и отпустите за отпремање", "upload_button.label": "Додај слике, видео или аудио датотеку", "upload_error.limit": "Достигнуто је ограничење за отпремање датотека.", - "upload_error.poll": "Отпремање датотека није дозвољено са анкетама.", - "upload_form.audio_description": "Опишите за особе са оштећеним слухом", - "upload_form.description": "Опишите за особе са оштећеним видом", + "upload_error.poll": "Отпремање датотека није дозвољено код анкета.", + "upload_form.audio_description": "Додајте опис за особе са оштећеним слухом", + "upload_form.description": "Додајте опис за особе са оштећеним видом", "upload_form.description_missing": "Нема додатог описа", "upload_form.edit": "Уреди", "upload_form.thumbnail": "Промени сличицу", @@ -639,8 +641,8 @@ "upload_modal.applying": "Примена…", "upload_modal.choose_image": "Одаберите слику", "upload_modal.description_placeholder": "Љубазни фењерџија чађавог лица хоће да ми покаже штос", - "upload_modal.detect_text": "Откриј текст са слике", - "upload_modal.edit_media": "Уреди милтимедију", + "upload_modal.detect_text": "Пронађи текст са слике", + "upload_modal.edit_media": "Уреди мултимедију", "upload_modal.hint": "Кликните или превуците кружић на прегледу за избор тачке фокуса која ће увек бити видљива на свим сличицама.", "upload_modal.preparing_ocr": "Припрема OCR-а…", "upload_modal.preview_label": "Преглед ({ratio})", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 47efca424b..fe573949d7 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Du har o-sparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", "confirmations.domain_block.confirm": "Dölj hela domänen", "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.", + "confirmations.edit.confirm": "Redigera", + "confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?", "confirmations.logout.confirm": "Logga ut", "confirmations.logout.message": "Är du säker på att du vill logga ut?", "confirmations.mute.confirm": "Tysta", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 9d23c3dd0e..587cae5b80 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 0cd309ed80..fa2ad1b1ce 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "சேமிக்கப்படாத மாற்றங்கள் ஊடக விளக்கம் அல்லது முன்னோட்டத்தில் உள்ளது. அவற்றை நிராகரிக்கவா?", "confirmations.domain_block.confirm": "முழு களத்தையும் மறை", "confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "வெளியேறு", "confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?", "confirmations.mute.confirm": "அமைதியாக்கு", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index 875a8c9445..37f8add8fa 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index f4e3b7ff25..190db00a0e 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "మొత్తం డొమైన్ను దాచు", "confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "మ్యూట్ చేయి", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index e2db4627ec..bd4b2fc41e 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงต่อไป?", "confirmations.domain_block.confirm": "ปิดกั้นทั้งโดเมน", "confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการซ่อนแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก", + "confirmations.edit.confirm": "แก้ไข", + "confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?", "confirmations.logout.confirm": "ออกจากระบบ", "confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?", "confirmations.mute.confirm": "ซ่อน", @@ -291,10 +293,10 @@ "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.favourite": "ด้วยบัญชีใน 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 ของคุณ", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 5d085495bb..fd7546e1d4 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?", "confirmations.domain_block.confirm": "Alanın tamamını engelle", "confirmations.domain_block.message": "{domain} alanının tamamını engellemek istediğinden gerçekten emin misin? Genellikle hedeflenen birkaç engelleme veya sessize alma yeterlidir ve tercih edilir. Bu alan adından gelen içeriği herhangi bir genel zaman çizelgesinde veya bildirimlerinde görmezsin. Bu alan adındaki takipçilerin kaldırılır.", + "confirmations.edit.confirm": "Düzenle", + "confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?", "confirmations.logout.confirm": "Oturumu kapat", "confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?", "confirmations.mute.confirm": "Sessize al", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 41098618ce..beffae95c7 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -9,32 +9,32 @@ "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": "Исемлеккә кертү я бетерү", + "account.add_or_remove_from_list": "Исемлеккә кушу яки бетерү", "account.badges.bot": "Бот", "account.badges.group": "Төркем", - "account.block": "@{name} блоклау", + "account.block": "@{name} кулланучыны блоклау", "account.block_domain": "{domain} доменын блоклау", "account.blocked": "Блокланган", - "account.browse_more_on_origin_server": "Тулырак оригинал профилендә карап була", + "account.browse_more_on_origin_server": "Оригиналь профилендә күбрәк карау", "account.cancel_follow_request": "Киләсе сорау", - "account.direct": "@{name} өчен яңа хат", + "account.direct": "@{name} кулланучыга язу", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", "account.domain_blocked": "Домен блокланган", - "account.edit_profile": "Профильны үзгәртү", + "account.edit_profile": "Профильне үзгәртү", "account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру", - "account.endorse": "Профильдә рекомендацияләү", + "account.endorse": "Профильдә тәкъдим итү", "account.featured_tags.last_status_at": "Соңгы хәбәр {date}", "account.featured_tags.last_status_never": "Хәбәрләр юк", "account.featured_tags.title": "{name} тәкъдим ителгән хэштеглар", - "account.follow": "Языл", - "account.followers": "Язылучылар", + "account.follow": "Язылу", + "account.followers": "Язылучы", "account.followers.empty": "Әле беркем дә язылмаган.", - "account.followers_counter": "{count, plural,one {{counter} Язылучы} other {{counter} Язылучы}}", - "account.following": "Язылган", - "account.following_counter": "{count, plural, one {{counter} Язылган} other {{counter} Язылган}}", + "account.followers_counter": "{count, plural,one {{counter} язылучы} other {{counter} язылучы}}", + "account.following": "Язылулар", + "account.following_counter": "{count, plural, one {{counter} язылу} other {{counter} язылу}}", "account.follows.empty": "Беркемгә дә язылмаган әле.", "account.follows_you": "Сезгә язылган", "account.go_to_profile": "Профильгә күчү", @@ -50,19 +50,19 @@ "account.mute_notifications": "@{name} кулланучыдан хәбәрләргә әһәмият бирмәү", "account.muted": "Әһәмият бирмәнгән", "account.open_original_page": "Чыганак битен ачу", - "account.posts": "Пост", - "account.posts_with_replies": "Пост һәм җавап", + "account.posts": "Язма", + "account.posts_with_replies": "Язма һәм җавап", "account.report": "@{name} кулланучыга шикаять итү", "account.requested": "Awaiting approval", "account.requested_follow": "{name} Сезгә язылу соравын җиберде", - "account.share": "Уртаклашу @{name} профиль", + "account.share": "@{name} профиле белән уртаклашу", "account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", - "account.unblock": "Ачу @{name}", - "account.unblock_domain": "Доменны ачу {domain}", - "account.unblock_short": "Ачу", - "account.unendorse": "Профильдә күрсәтмәгез", - "account.unfollow": "Язылынмау", + "account.statuses_counter": "{count, plural, one {{counter} язма} other {{counter} язма}}", + "account.unblock": "@{name} бикләвен чыгу", + "account.unblock_domain": "{domain} бикләвен чыгу", + "account.unblock_short": "Бикләүне чыгу", + "account.unendorse": "Профильдә тәкъдим итмәү", + "account.unfollow": "Язылуны туктату", "account.unmute": "Kабызыгыз @{name}", "account.unmute_notifications": "Кертергә хәбәрләр нче @{name}", "account.unmute_short": "Kабызыгыз", @@ -71,11 +71,11 @@ "admin.dashboard.monthly_retention": "Теркәлгәннән соң ай саен кулланучыларны тоту күрсәткече", "admin.dashboard.retention.average": "Урта", "admin.dashboard.retention.cohort": "Теркәлү айлыгы", - "admin.dashboard.retention.cohort_size": "Яңа кулланучылар", - "alert.rate_limited.message": "Зинһар, аннан соң кабатлап карагыз {retry_time, time, medium}.", + "admin.dashboard.retention.cohort_size": "Яңа кулланучы", + "alert.rate_limited.message": "Зинһар, {retry_time, time, medium} соң кабатлап карагыз.", "alert.rate_limited.title": "Тариф чикләнгән", "alert.unexpected.message": "Көтелмәгән хата булды.", - "alert.unexpected.title": "Ой!", + "alert.unexpected.title": "Абау!", "announcement.announcement": "Игълан", "attachments_list.unprocessed": "(чимал)", "audio.hide": "Аудионы яшерү", @@ -85,11 +85,11 @@ "bundle_column_error.error.body": "Соралган бит күрсәтелә алмый. Бу безнең кодтагы хата яки браузерга туры килү проблемасы аркасында булырга мөмкин.", "bundle_column_error.error.title": "Әй, юк!", "bundle_column_error.network.body": "Бу битне йөкләргә тырышканда хата булды. Бу сезнең Интернетка тоташу яки бу сервер белән вакытлыча проблема аркасында булырга мөмкин.", - "bundle_column_error.network.title": "Челтәр хата", + "bundle_column_error.network.title": "Челтәр хатасы", "bundle_column_error.retry": "Тагын сынап кара", "bundle_column_error.return": "Өйгә кайтыгыз", "bundle_column_error.routing.body": "Сорау бите табылмады. URL адресы дөрес күрсәтелгәненә ышанасызмы?", - "bundle_column_error.routing.title": "404\n", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Ябу", "bundle_modal_error.message": "Бу компонентны Йөкләгәндә нәрсәдер дөрес булмаган.", "bundle_modal_error.retry": "Тагын сынап кара", @@ -98,23 +98,23 @@ "closed_registrations_modal.find_another_server": "Башка серверны табыгыз", "closed_registrations_modal.preamble": "Mastodon үзәкләштерелмәгән, шуңа күрә сез счетыгызны кайда гына ясасагыз да, сез бу серверда теләсә кемгә иярә аласыз һәм аның белән аралаша аласыз. Сез аны хәтта үзегез урнаштыра аласыз!", "closed_registrations_modal.title": "Mastodon өчен теркәлү", - "column.about": "Турында", + "column.about": "Проект турында", "column.blocks": "Блокланган кулланучылар", "column.bookmarks": "Кыстыргычлар", - "column.community": "Localирле вакыт сызыгы", - "column.direct": "Туры хәбәрләр", + "column.community": "Локаль вакыт сызыгы", + "column.direct": "Шәхси хәбәрләр", "column.directory": "Профильләрне карау", "column.domain_blocks": "Блокланган доменнар", "column.favourites": "Сайланма", - "column.follow_requests": "Сорауларны үтәгез", + "column.follow_requests": "Язылу сораулары", "column.home": "Баш бит", "column.lists": "Исемлек", "column.mutes": "Инвалид кулланучылар", "column.notifications": "Хәбәрләр", "column.pins": "Pinned toot", - "column.public": "Берләшкән вакыт масштабы", - "column_back_button.label": "Кире", - "column_header.hide_settings": "Көйләүләрне яшерегез", + "column.public": "Глобаль вакыт сызыгы", + "column_back_button.label": "Артка", + "column_header.hide_settings": "Көйләүләрне яшерү", "column_header.moveLeft_settings": "Багананы сулга күчерегез", "column_header.moveRight_settings": "Багананы уңга күчерегез", "column_header.pin": "Пин", @@ -125,8 +125,8 @@ "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Дистанцион гына идарә итү", "compose.language.change": "Телне үзгәртү", - "compose.language.search": "Эзләү телләре...", - "compose_form.direct_message_warning_learn_more": "Күбрәк укыгыз", + "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.lock_disclaimer": "Сезнең хисап түгел {locked}. Апуәрбер теләгән кеше сезнең язма өчен иярә ала.", @@ -149,21 +149,23 @@ "compose_form.spoiler.unmarked": "Text is not hidden", "compose_form.spoiler_placeholder": "Кисәтүегезне монда языгыз", "confirmation_modal.cancel": "Баш тарту", - "confirmations.block.block_and_report": "Блоклау һәм хәбәр итү", + "confirmations.block.block_and_report": "Блоклау һәм шикаять итү", "confirmations.block.confirm": "Блоклау", - "confirmations.block.message": "Сез блокларга телисез {name}?", - "confirmations.cancel_follow_request.confirm": "Чыгару сорау", + "confirmations.block.message": "Сез {name} кулланучыны блокларга телисезме?", + "confirmations.cancel_follow_request.confirm": "Сорауны баш тарту", "confirmations.cancel_follow_request.message": "Сез абонемент соравыгызны кире кайтарырга телисез {name}?", "confirmations.delete.confirm": "Бетерү", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Бетерү", "confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?", - "confirmations.discard_edit_media.confirm": "Ташлау", + "confirmations.discard_edit_media.confirm": "Баш тарту", "confirmations.discard_edit_media.message": "Сезнең медиа тасвирламасында яки алдан карау өчен сакланмаган үзгәрешләр бармы? ", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Сез чыннан да барысын да блокларга телисез {domain}? Күпчелек очракта берничә максатлы блоклар яки тавышсызлар җитәрлек һәм өстенлекле. Сез бу доменнан эчтәлекне җәмәгать срокларында яки хәбәрләрегездә күрмәячәксез. Бу доменнан сезнең шәкертләр бетереләчәк.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Чыгу", - "confirmations.logout.message": "Сез системадан чыгарга телисезме?", + "confirmations.logout.message": "Сез чыгарга телисезме?", "confirmations.mute.confirm": "Тавышсыз", "confirmations.mute.explanation": "Бу алардан ураза тотуны һәм алар турында искә алуны яшерәчәк, ләкин бу аларга уразаларыгызны күрергә һәм язылырга мөмкинлек бирәчәк.", "confirmations.mute.message": "Сез тавышны сүндерергә телисез {name}?", @@ -171,14 +173,14 @@ "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.reply.confirm": "Җавап бирү", "confirmations.reply.message": "Тһеавап хәзер сез ясаган хәбәрне яңадан язуга китерәчәк. Сез дәвам итәсегез киләме?", - "confirmations.unfollow.confirm": "Язылынмау", + "confirmations.unfollow.confirm": "Язылуны туктату", "confirmations.unfollow.message": "Сез язылудан баш тартырга телисез {name}?", "conversation.delete": "Сөйләшүне бетерегез", "conversation.mark_as_read": "Укылганны Ничек билгеләргә", "conversation.open": "Сөйләшүне карау", - "conversation.with": "Белән {names}", - "copypaste.copied": "Күчерелгән", - "copypaste.copy": "Күчерү", + "conversation.with": "{names} белән", + "copypaste.copied": "Күчереп алынган", + "copypaste.copy": "Күчереп алу", "directory.federated": "Билгеле галәмнән", "directory.local": "Кемнән {domain} гына", "directory.new_arrivals": "Яңа килүчеләр", @@ -186,7 +188,7 @@ "disabled_account_banner.account_settings": "Хисап көйләүләре", "disabled_account_banner.text": "Сезнең хисап {disabledAccount} хәзерге вакытта инвалид.", "dismissable_banner.community_timeline": "Бу счетлары урнаштырылган кешеләрдән иң соңгы җәмәгать хәбәрләре {domain}.", - "dismissable_banner.dismiss": "Чыгару", + "dismissable_banner.dismiss": "Ябу", "dismissable_banner.explore_links": "Бу яңалыклар турында хәзерге вакытта кешеләр һәм башка үзәкләштерелмәгән челтәр серверларында сөйләшәләр.", "dismissable_banner.explore_statuses": "Бу һәм бүтән серверларның үзәкләштерелмәгән челтәрдәге бу язмалары хәзерге вакытта бу серверда тартыла.", "dismissable_banner.explore_tags": "Бу хэштеглар хәзерге вакытта үзәкләштерелмәгән челтәрнең бүтән серверларында кешеләр арасында кызыксыну уята.", @@ -194,7 +196,7 @@ "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Менә ул нинди булыр:", "emoji_button.activity": "Активлык", - "emoji_button.clear": "Ачык", + "emoji_button.clear": "Чистарту", "emoji_button.custom": "Куелган", "emoji_button.flags": "Байраклар", "emoji_button.food": "Ашау һәм эчү", @@ -208,7 +210,7 @@ "emoji_button.search_results": "Эзләү нәтиҗәләре", "emoji_button.symbols": "Символлар", "emoji_button.travel": "Сәяхәт һәм урыннар", - "empty_column.account_suspended": "Хисап блокланган", + "empty_column.account_suspended": "Аккаунт блокланган", "empty_column.account_timeline": "No toots here!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "You haven't blocked any users yet.", @@ -235,11 +237,11 @@ "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": "Report issue", + "errors.unexpected_crash.report_issue": "Хата турында белдерү", "explore.search_results": "Search results", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Сез өчен", "explore.title": "Explore", - "explore.trending_links": "News", + "explore.trending_links": "Яңалыклар", "explore.trending_statuses": "Posts", "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.", @@ -258,14 +260,14 @@ "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", - "follow_recommendations.done": "Done", + "follow_recommendations.done": "Булды", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "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!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "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.", "followed_tags": "Имзаланган хэштеглар", - "footer.about": "Турында", + "footer.about": "Проект турында", "footer.directory": "Профильләр каталогы", "footer.get_app": "Кушымта алыгыз", "footer.invite": "Кешеләрне чакырыгыз", @@ -361,18 +363,18 @@ "lists.search": "Search among people you follow", "lists.subheading": "Your lists", "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", + "loading_indicator.label": "Йөкләү...", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", - "missing_indicator.label": "Not found", + "missing_indicator.label": "Табылмады", "missing_indicator.sublabel": "This resource could not be found", "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Дәвамлык", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.about": "About", - "navigation_bar.blocks": "Blocked users", + "navigation_bar.about": "Проект турында", + "navigation_bar.blocks": "Блокланган кулланучылар", "navigation_bar.bookmarks": "Кыстыргычлар", - "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.community_timeline": "Локаль вакыт сызыгы", "navigation_bar.compose": "Compose new toot", "navigation_bar.direct": "Direct messages", "navigation_bar.discover": "Discover", @@ -384,14 +386,14 @@ "navigation_bar.follow_requests": "Follow requests", "navigation_bar.followed_tags": "Followed hashtags", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.lists": "Lists", - "navigation_bar.logout": "Logout", + "navigation_bar.lists": "Исемлекләр", + "navigation_bar.logout": "Чыгу", "navigation_bar.mutes": "Muted users", "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Caylaw", "navigation_bar.public_timeline": "Federated timeline", - "navigation_bar.search": "Search", + "navigation_bar.search": "Эзләү", "navigation_bar.security": "Хәвефсезлек", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", @@ -447,7 +449,7 @@ "poll.refresh": "Яңарту", "poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", + "poll.vote": "Тавыш бирү", "poll.voted": "You voted for this answer", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", "poll_button.add_poll": "Add a poll", @@ -478,7 +480,7 @@ "relative_time.seconds": "{number}сек", "relative_time.today": "бүген", "reply_indicator.cancel": "Баш тарту", - "report.block": "Block", + "report.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.categories.spam": "Spam", @@ -487,7 +489,7 @@ "report.category.title": "Tell us what's going on with this {type}", "report.category.title_account": "профиль", "report.category.title_status": "post", - "report.close": "Done", + "report.close": "Булды", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", @@ -495,7 +497,7 @@ "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.placeholder": "Type or paste additional comments", - "report.reasons.dislike": "I don't like it", + "report.reasons.dislike": "Миңа бу ошамый", "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", @@ -540,10 +542,10 @@ "server_banner.active_users": "active users", "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": "Күбрәк белү", "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": "Аккаунтны ясау", + "sign_in_banner.sign_in": "Керү", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", @@ -556,7 +558,7 @@ "status.delete": "Бетерү", "status.detailed_status": "Detailed conversation view", "status.direct": "Direct message @{name}", - "status.edit": "Edit", + "status.edit": "Үзгәртү", "status.edited": "Edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", @@ -583,7 +585,7 @@ "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", "status.replied_to": "Replied to {name}", - "status.reply": "Reply", + "status.reply": "Җавап бирү", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", @@ -594,7 +596,7 @@ "status.show_more": "Күбрәк күрсәтү", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.translate": "Translate", + "status.translate": "Тәрҗемә итү", "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", @@ -636,7 +638,7 @@ "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.apply": "Куллан", - "upload_modal.applying": "Applying…", + "upload_modal.applying": "Куллану…", "upload_modal.choose_image": "Choose image", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.detect_text": "Detect text from picture", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index e22ab1f22f..b81bb13564 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 7f509d039c..cbdfef527a 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?", "confirmations.domain_block.confirm": "Заблокувати весь домен", "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.", + "confirmations.edit.confirm": "Змінити", + "confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?", "confirmations.logout.confirm": "Вийти", "confirmations.logout.message": "Ви впевнені, що хочете вийти?", "confirmations.mute.confirm": "Приховати", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 8980ca5318..bbe7fbd239 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "کیا آپ واقعی، واقعی یقین رکھتے ہیں کہ آپ پورے {domain} کو بلاک کرنا چاہتے ہیں؟ زیادہ تر معاملات میں چند ٹارگٹیڈ بلاکس یا خاموش کرنا کافی اور افضل ہیں۔ آپ اس ڈومین کا مواد کسی بھی عوامی ٹائم لائنز یا اپنی اطلاعات میں نہیں دیکھیں گے۔ اس ڈومین سے آپ کے پیروکاروں کو ہٹا دیا جائے گا۔", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "لاگ آؤٹ", "confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟", "confirmations.mute.confirm": "خاموش", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 0f450b32af..6dcc0e3d8b 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Sizda media tavsifi yoki oldindan ko‘rishda saqlanmagan o‘zgarishlar bor, ular baribir bekor qilinsinmi?", "confirmations.domain_block.confirm": "Butun domenni bloklash", "confirmations.domain_block.message": "Haqiqatan ham, {domain} ni butunlay bloklamoqchimisiz? Ko'pgina hollarda bir nechta maqsadli bloklar yoki ovozni o'chirish etarli va afzaldir. Siz oʻsha domendagi kontentni hech qanday umumiy vaqt jadvallarida yoki bildirishnomalaringizda koʻrmaysiz. Bu domendagi obunachilaringiz olib tashlanadi.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "Chiqish", "confirmations.logout.message": "Chiqishingizga aminmisiz?", "confirmations.mute.confirm": "Ovozsiz", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 4ee65e72a0..a108a6619a 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?", "confirmations.domain_block.confirm": "Ẩn toàn bộ máy chủ", "confirmations.domain_block.message": "Bạn thật sự muốn ẩn toàn bộ nội dung từ {domain}? Sẽ hợp lý hơn nếu bạn chỉ chặn hoặc ẩn một vài tài khoản cụ thể. Ẩn toàn bộ nội dung từ máy chủ sẽ khiến bạn không còn thấy nội dung từ máy chủ đó ở bất kỳ nơi nào, kể cả thông báo. Người quan tâm bạn từ máy chủ đó cũng sẽ bị xóa luôn.", + "confirmations.edit.confirm": "Sửa", + "confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?", "confirmations.logout.confirm": "Đăng xuất", "confirmations.logout.message": "Bạn có thật sự muốn thoát?", "confirmations.mute.confirm": "Ẩn", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 4f190a4bc3..f5ca66b3a4 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "ⴼⴼⵖ", "confirmations.logout.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴼⴼⵖⴷ?", "confirmations.mute.confirm": "ⵥⵥⵉⵥⵏ", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 2cfed5224a..3d0290e5d9 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然丢弃它们吗?", "confirmations.domain_block.confirm": "屏蔽整个域名", "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。", + "confirmations.edit.confirm": "编辑", + "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "你确定要登出吗?", "confirmations.mute.confirm": "隐藏", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 5c6f539aa7..86c14b1802 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?", "confirmations.domain_block.confirm": "封鎖整個網站", "confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。", + "confirmations.edit.confirm": "Edit", + "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "確定要登出嗎?", "confirmations.mute.confirm": "靜音", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 4e5cfb876c..6c68716992 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -162,6 +162,8 @@ "confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?", "confirmations.domain_block.confirm": "封鎖整個網域", "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。", + "confirmations.edit.confirm": "編輯", + "confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫的訊息。是否仍要繼續?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "您確定要登出嗎?", "confirmations.mute.confirm": "靜音", @@ -170,7 +172,7 @@ "confirmations.redraft.confirm": "刪除並重新編輯", "confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文的轉嘟及最愛,且對原始嘟文的回覆都會變成獨立的嘟文。", "confirmations.reply.confirm": "回覆", - "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?", + "confirmations.reply.message": "回覆嘟文將覆蓋掉您目前正在撰寫的訊息。是否仍要繼續?", "confirmations.unfollow.confirm": "取消跟隨", "confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?", "conversation.delete": "刪除對話", diff --git a/config/locales/activerecord.ka.yml b/config/locales/activerecord.ka.yml index cdd4f9c4c6..cb8a03702d 100644 --- a/config/locales/activerecord.ka.yml +++ b/config/locales/activerecord.ka.yml @@ -1,13 +1,50 @@ --- ka: activerecord: + attributes: + poll: + expires_at: ბოლო ვადა + options: არჩევანი + user: + agreement: მომსახურების ხელშეკრულება + email: ელ-ფოსტის მისამართი + locale: ლოკალი + password: პაროლი + user/account: + username: მომხმარებლის სახელი + user/invite_request: + text: მიზეზი errors: models: account: attributes: username: invalid: მხოლოდ ასოები, ციფრები და "ქვედა-ტირე" + reserved: რეზერვირებულია + admin/webhook: + attributes: + url: + invalid: არასწორი URL + doorkeeper/application: + attributes: + website: + invalid: არასწორი URL + import: + attributes: + data: + malformed: არასწორად არის ფორმირებული status: attributes: reblog: taken: სტატუსის უკვე არსებობს + user: + attributes: + email: + blocked: იყენებს აკრძალულ ელ-ფოსტის პროვაიდერს + unreachable: როგორც ჩანს, არ არსებობს + role_id: + elevated: არ შეიძლება იყოს თქვენს ამჟამინდელ როლზე მაღალი + user_role: + attributes: + permissions_as_keys: + dangerous: მოიცავს ნებართვებს, რომლებიც არ არის უსაფრთხო საბაზისო როლისთვის diff --git a/config/locales/activerecord.tt.yml b/config/locales/activerecord.tt.yml index 5f28508d63..0526634be0 100644 --- a/config/locales/activerecord.tt.yml +++ b/config/locales/activerecord.tt.yml @@ -5,8 +5,8 @@ tt: user: email: Почта адресы locale: Тел - password: Парол + password: Серсүз user/account: username: Кулланучы исеме user/invite_request: - text: Сәбаб + text: Сәбәп diff --git a/config/locales/an.yml b/config/locales/an.yml index 2e1a7e36ff..0bbed84629 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1427,7 +1427,6 @@ an: ios: iOS linux: Linux mac: Mac - other: plataforma desconoixida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ar.yml b/config/locales/ar.yml index d72a11130b..481f086426 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1422,6 +1422,7 @@ ar: confirm_remove_selected_followers: هل أنت متأكد من أنك تريد إزالة المتابِعين المحددين؟ confirm_remove_selected_follows: هل أنت متيقِّن من أنك تريد إزالة الاشتراكات المحدَّدة؟ dormant: في سبات + follow_failure: تعذرت متابعة بعض الحسابات المختارة. follow_selected_followers: متابَعة المتابِعين المحددين followers: المتابِعون following: يُتابِع @@ -1461,6 +1462,7 @@ ar: electron: إلكترون firefox: فايرفكس generic: متصفح مجهول + huawei_browser: متصفح هواواي ie: إنترنت إكسبلورر micro_messenger: مايكرو ميسنجر nokia: متصفح Nokia S40 Ovi @@ -1470,6 +1472,7 @@ ar: qq: متصفح كيوكيو safari: سفاري uc_browser: متصفح UC Browser + unknown_browser: متصفح غير معروف weibo: وايبو current_session: الجلسة الحالية description: "%{browser} على %{platform}" @@ -1482,9 +1485,10 @@ ar: chrome_os: نظام كروم أواس firefox_os: نظام فايرفكس أواس ios: نظام آي أواس + kai_os: KaiOS linux: لينكس mac: ماك - other: نظام مجهول + unknown_platform: منصة غير معروفة windows: ويندوز windows_mobile: ويندوز موبايل windows_phone: ويندوز فون diff --git a/config/locales/ast.yml b/config/locales/ast.yml index b59ebba455..8e6935c093 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -750,6 +750,7 @@ ast: electron: Electron firefox: Firefox generic: Restolador desconocíu + huawei_browser: Restolador de Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Restolador Ovi pa S40 de Nokia @@ -759,6 +760,7 @@ ast: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Restolador desconocíu weibo: Weibo current_session: Sesión actual ip: IP @@ -769,9 +771,10 @@ ast: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: GNU/Linux mac: macOS - other: plataforma desconocida + unknown_platform: Plataforma desconocida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/be.yml b/config/locales/be.yml index 05c7b7bffe..8001703c43 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1496,6 +1496,7 @@ be: electron: Electron firefox: Firefox generic: Невядомы браўзер + huawei_browser: Браўзер Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1505,6 +1506,7 @@ be: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Невядомы браўзер weibo: Weibo current_session: Бягучая сесія description: "%{browser} на %{platform}" @@ -1517,9 +1519,10 @@ be: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: невядомай платформе + unknown_platform: Невядомая платформа windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 34f0542759..6cce2b2942 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -935,7 +935,7 @@ bg: new_trending_tags: no_approved_tags: Сега няма одобрени налагащи се хаштагове. requirements: 'Всеки от тези кандидати може да надмине #%{rank} одобрен актуален хаштаг, който в момента е #%{lowest_tag_name} с резултат %{lowest_tag_score}.' - title: Нашумели хаштагове + title: Налагащи се хаштагове subject: Нови нашумели, готови за преглед в %{instance} aliases: add_new: Създаване на псевдоним @@ -1405,6 +1405,7 @@ bg: confirm_remove_selected_followers: Наистина ли искате да премахнете избраните последователи? confirm_remove_selected_follows: Наистина ли искате да премахнете избраните последвания? dormant: Неактивен + follow_failure: Не може да се последват някои от избраните акаунти. follow_selected_followers: Последване на избраните последователи followers: Последователи following: Последвани @@ -1444,6 +1445,7 @@ bg: electron: Electron firefox: Firefox generic: Неизвестен браузър + huawei_browser: Браузър Хуауей ie: Internet Explorer micro_messenger: MicroMessenger nokia: Браузър Nokia S40 Ovi @@ -1453,6 +1455,7 @@ bg: qq: Браузър QQ safari: Safari uc_browser: Браузър UC + unknown_browser: Неизвестен браузър weibo: Weibo current_session: Текуща сесия description: "%{browser} на %{platform}" @@ -1465,9 +1468,10 @@ bg: chrome_os: ChromeOS firefox_os: Оп. сист. Firefox ios: iOS + kai_os: KaiOS linux: Линукс mac: macOS - other: неизвестна платформа + unknown_platform: Неизвестна платформа windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/br.yml b/config/locales/br.yml index 6be93d2924..91a09c0029 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -469,7 +469,6 @@ br: ios: iOS linux: Linux mac: macOS - other: savenn dianav windows: Windows revoke: Dizober settings: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 2a459dbde6..f722a25159 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1405,6 +1405,7 @@ ca: confirm_remove_selected_followers: Segur que vols esborrar els seguidors seleccionats? confirm_remove_selected_follows: Segur que vols esborrar els seguits seleccionats? dormant: Inactiu + follow_failure: No es poden seguir alguns dels comptes seleccionats. follow_selected_followers: Segueix als seguidors seleccionats followers: Seguidors following: Seguint @@ -1444,15 +1445,17 @@ ca: electron: Electron firefox: Firefox generic: Navegador desconegut + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger - nokia: Nokia S40 Ovi Browser + nokia: Navegador Nokia S40 Ovi opera: Opera otter: Otter phantom_js: PhantomJS - qq: QQ Browser + qq: Navegador QQ safari: Safari uc_browser: Navegador UC + unknown_browser: Navegador Desconegut weibo: Weibo current_session: Sessió actual description: "%{browser} de %{platform}" @@ -1465,9 +1468,10 @@ ca: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: plataforma desconeguda + unknown_platform: Plataforma desconeguda windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index 0f481c8ce2..b156f5b496 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -941,7 +941,6 @@ ckb: firefox_os: سیستەمی کارگێڕی فایەرفۆکس linux: لینۆکس mac: ماک - other: سیستەمیکارگێڕی نەناسراو windows: ویندۆز windows_mobile: ویندۆزموبایل windows_phone: ویندۆزفۆن diff --git a/config/locales/co.yml b/config/locales/co.yml index 94f2101c20..4d214f5c4f 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -928,7 +928,6 @@ co: ios: iOS linux: Linux mac: macOS - other: piattaforma scunnisciuta windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 8c44bba8c5..b5f3b0f15d 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -635,6 +635,7 @@ cs: placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality… title: Poznámky notes_description_html: Zobrazit a zanechat poznámky pro ostatní moderátory i sebe v budoucnu + processed_msg: Nahlášení č.%{id} bylo úspěšně zpracováno quick_actions_description_html: 'Proveďte rychlou akci nebo skrolujte dolů pro nahlášený obsah:' remote_user_placeholder: vzdálený uživatel z %{instance} reopen: Znovu otevřít hlášení @@ -647,6 +648,8 @@ cs: status: Stav statuses: Nahlášený obsah statuses_description_html: Obsah porušující pravidla bude uveden v komunikaci s nahlášeným účtem + summary: + close_report: Označit nahlášení č.%{id} za vyřešené target_origin: Původ nahlášeného účtu title: Hlášení unassign: Odebrat @@ -805,6 +808,7 @@ cs: suspend: Uživatel %{name} pozastavil účet %{target} appeal_approved: Podáno odvolání appeal_pending: Čekající odvolání + appeal_rejected: Odvolání zamítnuto system_checks: database_schema_check: message_html: Na spuštění čekají databázové migrace. Nechte je prosím proběhnout pro zajištění očekávaného chování aplikace @@ -1480,6 +1484,7 @@ cs: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Neznámý prohlížeč weibo: Weibo current_session: Aktuální relace description: "%{browser} na systému %{platform}" @@ -1492,9 +1497,10 @@ cs: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: neznámá platforma + unknown_platform: Neznámá platforma windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/cy.yml b/config/locales/cy.yml index f887329885..a50f8f32f8 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1509,6 +1509,7 @@ cy: confirm_remove_selected_followers: Ydych chi'n siŵr eich bod am ddileu'r dilynwyr a ddewiswyd? confirm_remove_selected_follows: Ydych chi'n siŵr eich bod am ddileu'r canlynol? dormant: Segur + follow_failure: Methu dilyn rhai o'r cyfrifon a ddewiswyd. follow_selected_followers: Dilynwch y dilynwyr a ddewiswyd followers: Dilynwyr following: Yn dilyn @@ -1548,6 +1549,7 @@ cy: electron: Electron firefox: Firefox generic: Porwr anhysbys + huawei_browser: Porwr Huawei ie: Nid yw'r rhaglen hon yn gydnaws ag Internet Explorer micro_messenger: MicroMessenger nokia: Porwr Nokia S40 Ovi @@ -1557,6 +1559,7 @@ cy: qq: Porwr QQ safari: Agor yn Safari uc_browser: UC Browser + unknown_browser: Porwr Anhysbys weibo: Weibo current_session: Sesiwn gyfredol description: "%{browser} ar %{platform}" @@ -1569,9 +1572,10 @@ cy: chrome_os: ChromeOS firefox_os: OS Firefox ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: platfform anhysbys + unknown_platform: Platfform Anhysbys windows: Windows windows_mobile: Windows Mobile windows_phone: Ffôn Windows diff --git a/config/locales/da.yml b/config/locales/da.yml index a75364a792..6110e6eab7 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -580,7 +580,10 @@ da: mark_as_sensitive_description_html: Medierne i det anmeldte indlæg markeres som sensitive, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto. other_description_html: Se flere muligheder relateret til at adfærdshåndtering for, samt tilpasning af kommunikation til, den anmeldte konto. resolve_description_html: Ingen foranstaltninger træffes mod den anmeldte konto, ingen advarsel (strike) registreres og anmeldelsen lukkes. + silence_description_html: Kontoen vil kun være synlig for følgerene eller dem, som manuelt slå den op, hvilket markant begrænser dens udbredelse. Kan altid omgøres. Lukker alle indrapporteringer af kontoen. + suspend_description_html: Kontoen inkl. alt indhold utilgængeliggøres og interaktion umuliggøres, og den slettes på et tidspunkt. Kan omgøres inden for 30 dage. Lukker alle indrapporteringer af kontoen. actions_description_html: Afgør, hvilke foranstaltning, der skal træffes for at løse denne anmeldelse. Træffes en straffende foranstaltning mod den anmeldte konto, fremsendes en e-mailnotifikation, undtagen når kategorien Spam er valgt. + actions_description_remote_html: Fastslå en nødvendig handling mhp. at løse denne anmeldelse. Dette vil kun påvirke din servers kommunikation med, og indholdshåndtering for, fjernkontoen. add_to_report: Føj mere til anmeldelse are_you_sure: Sikker? assign_to_self: Tildel til mig @@ -739,6 +742,7 @@ da: preamble: At vise interessant indhold er vitalt ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren. profile_directory: Profiloversigt public_timelines: Offentlige tidslinjer + publish_discovered_servers: Udgiv fundne servere publish_statistics: Udgiv statistik title: Opdagelse trends: Trends @@ -971,7 +975,7 @@ da: apply_for_account: Anmod om en konto change_password: Adgangskode confirmations: - wrong_email_hint: Er denne e-mail-adresse ikke korrekt, kan den ændres i kontoindstillinger. + wrong_email_hint: Er denne e-mailadresse ikke korrekt, kan den ændres i kontoindstillinger. delete_account: Slet konto delete_account_html: Ønsker du at slette din konto, kan du
    gøre dette hér. Du vil blive bedt om bekræftelse. description: @@ -1399,7 +1403,9 @@ da: activity: Kontoaktivitet confirm_follow_selected_followers: Sikker på, at de valgte følgere skal følges? confirm_remove_selected_followers: Sikker på, at de valgte følgere skal fjernes? + confirm_remove_selected_follows: Sikker på, at de valgte følgere skal fjernes? dormant: I dvale + follow_failure: Kunne ikke følge alle af de valgte konti. follow_selected_followers: Følg valgte følgere followers: Følgere following: Følger @@ -1439,6 +1445,7 @@ da: electron: Electron firefox: Firefox generic: Ukendt browser + huawei_browser: Huawei Browser ie: IE micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1448,6 +1455,7 @@ da: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Ukendt browser weibo: Weibo current_session: Aktuelle session description: "%{browser} på %{platform}" @@ -1460,9 +1468,10 @@ da: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: ukendt platform + unknown_platform: Ukendt platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/de.yml b/config/locales/de.yml index 3f2666bdbf..82bfc221e8 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -12,12 +12,12 @@ de: one: Follower other: Folgende following: Folge ich - instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert und nicht ein einzelner Benutzer. Es wird für Föderationszwecke verwendet und sollte nicht gesperrt werden. + instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert, und kein persönliches Profil. Es wird für Föderationszwecke verwendet und sollte daher nicht gesperrt werden. last_active: zuletzt aktiv link_verified_on: Das Profil mit dieser E-Mail-Adresse wurde bereits am %{date} bestätigt nothing_here: Keine Treffer mit dieser Auswahl pin_errors: - following: Du musst dieser Person bereits folgen, um sie empfehlen zu können + following: Du musst dieser Person folgen, um sie empfehlen zu können posts: one: Beitrag other: Beiträge @@ -29,7 +29,7 @@ de: account_moderation_notes: create: Notiz abspeichern created_msg: Moderationshinweis erfolgreich abgespeichert! - destroyed_msg: Moderationsnotiz erfolgreich gelöscht! + destroyed_msg: Moderationsnotiz erfolgreich entfernt! accounts: add_email_domain_block: E-Mail-Domain sperren approve: Genehmigen @@ -58,7 +58,7 @@ de: demote: Zurückstufen destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht disable: Einfrieren - disable_sign_in_token_auth: Deaktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail + disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren disabled: Eingefroren display_name: Angezeigter Name @@ -67,7 +67,7 @@ de: email: E-Mail-Adresse email_status: Status der E-Mail-Adresse enable: Freischalten - enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail + enable_sign_in_token_auth: E-Mail-Token-Authentisierung aktivieren enabled: Freigegeben enabled_msg: Konto von %{username} erfolgreich freigegeben followers: Follower @@ -105,10 +105,10 @@ de: not_subscribed: Nicht abonniert pending: Überprüfung ausstehend perform_full_suspension: Sperren - previous_strikes: Vorherige Verstöße + previous_strikes: Vorherige Maßnahmen previous_strikes_description_html: - one: Dieses Konto hat einen Verstoß. - other: Dieses Konto hat %{count} Verstöße. + one: Gegen dieses Konto wurde eine Maßnahme verhängt. + other: Gegen dieses Konto wurden %{count} Maßnahmen verhängt. promote: Berechtigungen erweitern protocol: Protokoll public: Öffentlich @@ -259,7 +259,7 @@ de: destroy_user_role_html: "%{name} löschte die Rolle %{target}" disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert" disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}" - disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} deaktiviert" + disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} deaktiviert" disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert" enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}" enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert" @@ -441,7 +441,7 @@ de: import: description_html: Du bist dabei, eine Liste von Domains zu importieren, die auf diesem Server gesperrt oder anderweitig eingeschränkt werden. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast. existing_relationships_warning: Bestehende Folgebeziehungen - private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}' + private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, werden sie mit diesem privaten Kommentar erstellt: %{comment}' private_comment_template: Importiert von %{source} am %{date} title: Domains importieren invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}' @@ -452,19 +452,19 @@ de: description_html: "Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet." language: Für Sprache status: Status - suppress: Folgeempfehlungen unterdrücken + suppress: Folgeempfehlung unterbinden suppressed: Unterdrückt title: Folgeempfehlungen - unsuppress: Nicht mehr unterdrücken + unsuppress: Folgeempfehlung nicht mehr unterbinden instances: availability: description_html: - one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Auslieferungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen. - other: Wenn die Zustellung an die Domain seit %{count} Tagen erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen. + one: Wenn die Zustellung an die Domain %{count} Tag lang erfolglos bleibt, werden keine weiteren Zustellversuche unternommen, bis eine Zustellung von der Domain empfangen wird. + other: Wenn die Zustellung an die Domain an %{count} unterschiedlichen Tagen erfolglos bleibt, werden keine weiteren Zustellversuche unternommen, bis eine Zustellung von der Domain empfangen wird. failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht. failures_recorded: - one: Fehlgeschlagener Versuch am %{count}. Tag. - other: Fehlgeschlagener Versuch am %{count}. Tag. + one: Fehlgeschlagener Versuch an %{count} Tag. + other: Fehlgeschlagene Versuche an %{count} unterschiedlichen Tagen. no_failures_recorded: Keine Fehler bei der Aufzeichnung. title: Verfügbarkeit warning: Der letzte Versuch, sich mit diesem Server zu verbinden, war nicht erfolgreich @@ -472,7 +472,7 @@ de: back_to_limited: Stummgeschaltet back_to_warning: Warnung by_domain: Domain - confirm_purge: Bist du dir sicher, dass du die Daten für diese Domain für immer löschen möchtest? + confirm_purge: Bist du dir sicher, dass du die Daten von dieser Domain dauerhaft löschen möchtest? content_policies: comment: Interne Notiz description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden. @@ -503,7 +503,7 @@ de: unavailable: Nicht verfügbar delivery_available: Zustellung funktioniert delivery_error_days: Tage der fehlerhaften Zustellung - delivery_error_hint: Wenn eine Auslieferung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert. + delivery_error_hint: Wenn eine Zustellung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert. destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung. empty: Keine Domains gefunden. known_accounts: @@ -556,7 +556,7 @@ de: disable: Ausschalten disabled: Ausgeschaltet enable: Einschalten - enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden. + enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relais abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden. enabled: Eingeschaltet inbox_url: Relay-URL pending: Warte auf Zustimmung des Relays @@ -566,8 +566,8 @@ de: status: Status title: Relais report_notes: - created_msg: Meldungs-Kommentar erfolgreich erstellt! - destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht! + created_msg: Notiz zur Meldung erfolgreich erstellt! + destroyed_msg: Notiz zur Meldung erfolgreich entfernt! reports: account: notes: @@ -576,27 +576,27 @@ de: action_log: Protokoll action_taken_by: Maßnahme ergriffen von actions: - delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen. + delete_description_html: Der gemeldete Beitrag wird gelöscht und die ergriffene Maßnahme wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Kontos zu helfen. mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung versehen und ein Verstoß wird vermerkt, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können. other_description_html: Weitere Optionen zur Steuerung des Kontoverhaltens und zur Anpassung der Kommunikation mit dem gemeldeten Konto. - resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen. + resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen und der Vorgang wird nicht aufgezeichnet – die Meldung wird hiermit geschlossen. silence_description_html: Das Konto wird nur für diejenigen sichtbar sein, die dem Konto bereits folgen oder es manuell suchen, was die Reichweite stark einschränkt. Kann jederzeit rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. suspend_description_html: Das Konto und alle Inhalte werden unzugänglich und ggf. gelöscht. Eine Interaktion mit dem Konto wird unmöglich. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam-Kategorie ausgewählt ist. actions_description_remote_html: Entscheide, welche Maßnahmen du zur Lösung dieser Meldungen ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt. - add_to_report: Mehr zur Meldung hinzufügen + add_to_report: Meldung ergänzen are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen assigned: Zugewiesene*r Moderator*in by_target_domain: Domain des gemeldeten Kontos cancel: Abbrechen category: Kategorie - category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert + category_description_html: Der Grund, weshalb dieses Konto und/oder der Inhalt gemeldet worden ist, wird in der Kommunikation mit dem gemeldeten Konto erwähnt comment: none: Kein - comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:' + comment_description_html: "%{name} ergänzte die Meldung um folgende Hinweis:" confirm: Bestätigen - confirm_action: Moderationsaktion gegen @%{acct} bestätigen + confirm_action: Maßnahme gegen @%{acct} bestätigen created_at: Gemeldet delete_and_resolve: Beiträge löschen forwarded: Weitergeleitet @@ -617,12 +617,12 @@ de: quick_actions_description_html: 'Eine schnelle Aktion ausführen oder nach unten rolle, um gemeldete Inhalte zu sehen:' remote_user_placeholder: das externe Profil von %{instance} reopen: Meldung wieder eröffnen - report: 'Meldung #%{id}' + report: "%{id}. Meldung" reported_account: Gemeldetes Konto reported_by: Gemeldet von resolved: Gelöst - resolved_msg: Meldung erfolgreich gelöst! - skip_to_actions: Zu Aktionen springen + resolved_msg: Meldung erfolgreich geklärt! + skip_to_actions: Zur Maßnahme springen status: Status statuses: Gemeldeter Inhalt statuses_description_html: Störende Inhalte werden in der Kommunikation mit dem gemeldeten Konto zitiert @@ -646,7 +646,7 @@ de: warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. target_origin: Domain des gemeldeten Kontos title: Meldungen - unassign: Zuweisung entfernen + unassign: Zuweisung aufheben unknown_action_msg: 'Unbekannte Aktion: %{action}' unresolved: Ungelöst updated_at: Aktualisiert @@ -742,7 +742,7 @@ de: preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. profile_directory: Profilverzeichnis public_timelines: Öffentliche Timeline - publish_discovered_servers: Veröffentliche bekannte Server + publish_discovered_servers: Entdeckte Server offenlegen publish_statistics: Statistiken veröffentlichen title: Entdecken trends: Trends @@ -789,11 +789,11 @@ de: with_media: Mit Medien strikes: actions: - delete_statuses: "%{name} hat die Beiträge von %{target} entfernt" + delete_statuses: "%{name} entfernte die Beiträge von %{target}" disable: "%{name} fror das Konto von %{target} ein" mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen" - none: "%{name} hat eine Warnung an %{target} gesendet" - sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen" + none: "%{name} schickte eine Warnung an %{target}" + sensitive: "%{name} versah das Konto von %{target} mit einer Inhaltswarnung" silence: "%{name} schaltete das Konto von %{target} stumm" suspend: "%{name} sperrte das Konto von %{target}" appeal_approved: Einspruch angenommen @@ -939,7 +939,7 @@ de: subject: Neue Trends zur Überprüfung auf %{instance} aliases: add_new: Alias erstellen - created_msg: Ein neuer Alias wurde erfolgreich erstellt. Du kannst nun den Wechsel vom alten Konto starten. + created_msg: Neuer Alias erfolgreich erstellt. Du kannst nun den Umzug vom alten zum neuen Konto starten. deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich. empty: Du hast keine Aliase. hint_html: Wenn du von einem Konto zu einem anderen Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird, bevor du deine Follower vom alten Account zu diesen migrierst. Die Aktion allein ist harmlos und wi­der­ruf­lich. Die Kontenmigration wird vom alten Konto aus eingeleitet. @@ -975,7 +975,7 @@ de: apply_for_account: Konto beantragen change_password: Passwort confirmations: - wrong_email_hint: Wenn diese E-Mail-Adresse nicht korrekt ist, kann sie in den Kontoeinstellungen geändert werden. + wrong_email_hint: Sollte diese E-Mail-Adresse nicht korrekt sein, kannst du sie in den Kontoeinstellungen ändern. delete_account: Konto löschen delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das hier vornehmen. Du musst dies zusätzlich bestätigen. description: @@ -983,10 +983,10 @@ de: prefix_sign_up: Registriere dich noch heute bei Mastodon! suffix: Mit einem Konto kannst du Profilen folgen, neue Beiträge veröffentlichen, Nachrichten mit Personen von jedem Mastodon-Server austauschen und vieles mehr! didnt_get_confirmation: Keine Bestätigungsanweisungen erhalten? - dont_have_your_security_key: Hast du keinen Sicherheitsschlüssel? + dont_have_your_security_key: Du hast keinen Sicherheitsschlüssel? forgot_password: Passwort vergessen? invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an. - link_to_otp: Gib einen Zwei-Faktor-Code von deinem Handy oder einen Wiederherstellungscode ein + link_to_otp: Gib einen Zwei-Faktor-Code von deinem Smartphone oder einen Wiederherstellungscode ein link_to_webauth: Verwende dein Sicherheitsschlüsselgerät log_in_with: Anmelden mit login: Anmelden @@ -1017,7 +1017,7 @@ de: preamble_html: Melde dich mit deinen Zugangsdaten für %{domain} an. Solltest du dein Konto auf einem anderen Server registriert haben, ist eine Anmeldung hier nicht möglich. title: Bei %{domain} anmelden sign_up: - preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird. + preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet ist. title: Okay, lass uns mit %{domain} anfangen. status: account_status: Kontostatus @@ -1030,7 +1030,7 @@ de: use_security_key: Sicherheitsschlüssel verwenden authorize_follow: already_following: Du folgst diesem Konto bereits - already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts gestellt + already_requested: Du hast bereits eine Folgeanfrage an dieses Konto gestellt error: Bedauerlicherweise konnte das externe Konto nicht geladen werden follow: Folgen follow_request: 'Du hast eine Folgeanfrage gestellt an:' @@ -1038,7 +1038,7 @@ de: post_follow: close: Oder du schließt einfach dieses Fenster. return: Benutzerprofil anzeigen - web: In der Benutzeroberfläche öffnen + web: Im Webinterface öffnen title: "%{acct} folgen" challenge: confirm: Fortfahren @@ -1052,21 +1052,21 @@ de: date: formats: default: "%d. %b %Y" - with_month_name: "%B %d, %Y" + with_month_name: "%d. %B %Y" datetime: distance_in_words: - about_x_hours: "%{count} h" + about_x_hours: "%{count} Std." about_x_months: "%{count} Mon." - about_x_years: "%{count} J" - almost_x_years: "%{count} J" + about_x_years: "%{count} J." + almost_x_years: "%{count} J." half_a_minute: Gerade eben - less_than_x_minutes: "%{count} Min" + less_than_x_minutes: "%{count} Min." less_than_x_seconds: Gerade eben - over_x_years: "%{count}J" - x_days: "%{count}T" - x_minutes: "%{count}m" - x_months: "%{count}mo" - x_seconds: "%{count}s" + over_x_years: "%{count} J." + x_days: "%{count} T." + x_minutes: "%{count} Min." + x_months: "%{count} Mon." + x_seconds: "%{count} Sek." deletes: challenge_not_passed: Die eingegebenen Informationen waren nicht korrekt confirm_password: Gib dein derzeitiges Passwort ein, um deine Identität zu bestätigen @@ -1075,18 +1075,18 @@ de: success_msg: Dein Konto wurde erfolgreich gelöscht warning: before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:' - caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen + caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können fortbestehen data_removal: Deine Beiträge und alle anderen Daten werden für immer entfernt email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen - email_contact_html: Wenn die Bestätigungs-E-Mail immer noch nicht ankam, kannst du eine E-Mail an %{email} senden, um weitere Hilfe zu erhalten + email_contact_html: Sollte sie noch immer nicht angekommen sein, kannst du eine E-Mail an %{email} schicken, um weitere Hilfe zu erhalten email_reconfirmation_html: Wenn du die Bestätigungs-E-Mail nicht erhalten hast, kannst du sie erneut anfordern - irreversible: Du kannst dein Konto nicht mehr wiederherstellen oder reaktivieren + irreversible: Du wirst dein Konto nicht mehr wiederherstellen oder reaktivieren können more_details_html: Weitere Details findest du in der Datenschutzerklärung. username_available: Dein Profilname wird wieder verfügbar sein username_unavailable: Dein Profilname wird auch nach dem Löschen für andere nicht zugänglich sein disputes: strikes: - action_taken: Maßnahme ergriffen + action_taken: Maßnahme appeal: Einspruch appeal_approved: Dieser Verstoß wurde erfolgreich angefochten und ist nicht mehr gültig appeal_rejected: Der Einspruch wurde abgelehnt @@ -1097,28 +1097,28 @@ de: approve_appeal: Einspruch annehmen associated_report: Zugehöriger Bericht created_at: Datum - description_html: Dies sind Aktionen gegen dein Konto und Warnungen, die von den Mitarbeitern von %{instance} an dich gesendet wurden. + description_html: Dies sind Maßnahmen, die gegen dein Konto ergriffen worden sind, und Warnungen, die dir die Mitarbeiter*innen von %{instance} geschickt haben. recipient: Adressiert an reject_appeal: Einspruch ablehnen - status: 'Beitrag #%{id}' + status: "%{id}. Beitrag" status_removed: Beitrag bereits vom System entfernt title: "%{action} vom %{date}" title_actions: delete_statuses: Beitragsentfernung - disable: Einfrieren des Kontos + disable: Konto einfrieren mark_statuses_as_sensitive: Beiträge mit einer Inhaltswarnung versehen - none: Warnung + none: Verwarnung sensitive: Profil mit einer Inhaltswarnung versehen silence: Kontobeschränkung suspend: Kontosperre your_appeal_approved: Dein Einspruch wurde angenommen - your_appeal_pending: Du hast Einspruch eingelegt + your_appeal_pending: Du hast Einspruch erhoben your_appeal_rejected: Dein Einspruch wurde abgelehnt domain_validator: - invalid_domain: ist kein gültiger Domain-Name + invalid_domain: ist keine gültige Domain errors: - '400': Die Anfrage, die du gesendet hast, war ungültig oder fehlerhaft. - '403': Dir fehlt die Befugnis, diese Seite sehen zu können. + '400': Die Anfrage, die du gestellt hast, war ungültig oder fehlerhaft. + '403': Dir fehlt die Berechtigung, diese Seite aufzurufen. '404': Die Seite, nach der du gesucht hast, wurde nicht gefunden. '406': Diese Seite ist im gewünschten Format nicht verfügbar. '410': Die Seite, nach der du gesucht hast, existiert hier nicht mehr. @@ -1163,12 +1163,12 @@ de: thread: Unterhaltungen edit: add_keyword: Schlagwort hinzufügen - keywords: Schlagworte + keywords: Schlagwörter statuses: Individuelle Beiträge - statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen.. + statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten aufgeführten Schlagwörtern übereinstimmen. Beiträge überprüfen oder aus dem Filter entfernen. title: Filter bearbeiten errors: - deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie auf mehr als ein Filterschlüsselwort angewendet werden. Verwende eine neuere Anwendung oder das Webinterface. + deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie für mehr als ein Filterschlagwort gelten. Verwende eine aktuellere Anwendung oder das Webinterface. invalid_context: Ungültiger oder fehlender Kontext übergeben index: contexts: Filter in %{contexts} @@ -1177,8 +1177,8 @@ de: expires_in: Läuft ab in %{distance} expires_on: Läuft am %{date} ab keywords: - one: "%{count} Schlagworte" - other: "%{count} Stichwörter" + one: "%{count} Schlagwort" + other: "%{count} Schlagwörter" statuses: one: "%{count} Beitrag" other: "%{count} Beiträge" @@ -1268,7 +1268,7 @@ de: sign_in_token: E-Mail-Sicherheitscode webauthn: Sicherheitsschlüssel description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung (2FA) aktivieren. - empty: Kein Authentifizierungsverlauf verfügbar + empty: Kein Authentisierungsverlauf verfügbar failed_sign_in_html: Fehler beim Anmeldeversuch mit %{method} von %{ip} (%{browser}) successful_sign_in_html: Erfolgreiche Anmeldung mit %{method} von %{ip} (%{browser}) title: Authentifizierungsverlauf @@ -1294,20 +1294,20 @@ de: moved_msg: Dein altes Profil wird jetzt zum neuen Account %{acct} weitergeleitet und deine Follower werden übertragen. not_redirecting: Dein Konto wird derzeit nicht auf ein anderes Konto weitergeleitet. on_cooldown: Du hast dein Konto vor kurzem migriert. Diese Funktion wird in %{count} Tagen wieder verfügbar sein. - past_migrations: Vorherige Migrationen + past_migrations: Vorherige Umzüge proceed_with_move: Follower übertragen redirected_msg: Dein Konto wird nun zu %{acct} weitergeleitet. redirecting_to: Dein Konto wird zu %{acct} weitergeleitet. set_redirect: Umleitung einrichten warning: - backreference_required: Das neue Konto muss zuerst so konfiguriert werden, dass es auf das alte Konto referenziert + backreference_required: Das neue Konto muss zuerst auf das alte Konto verweisen before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:' - cooldown: Nach dem Migrieren wird es eine Abklingzeit geben, in der du das Konto nicht noch einmal migrieren kannst - disabled_account: Dein aktuelles Konto wird nachher nicht vollständig nutzbar sein. Du hast jedoch Zugriff auf den Datenexport sowie die Reaktivierung. - followers: Alle Follower werden vom aktuellen zum neuen Konto übertragen - only_redirect_html: Alternativ kannst du nur eine Weiterleitung auf dein Profil erstellen. - other_data: Keine anderen Daten werden automatisch verschoben - redirect: Das Profil deines aktuellen Kontos wird mit einer Weiterleitungsnachricht versehen und von Suchanfragen ausgeschlossen + cooldown: Nach dem Umzug wird es eine Weile dauern, bis du erneut umziehen darfst + disabled_account: Dein altes Konto ist nur noch eingeschränkt nutzbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren. + followers: Alle Follower werden vom alten zum neuen Konto übertragen + only_redirect_html: Alternativ kannst du auch nur eine Weiterleitung zu deinem neuen Profil einrichten, ohne die Follower zu übertragen. + other_data: Keine anderen Daten werden automatisch zum neuen Konto übertragen + redirect: Dein altes Konto wird einen Hinweis erhalten, dass Du umgezogen bist. Außerdem wird das Profil von Suchanfragen ausgeschlossen moderation: title: Moderation move_handler: @@ -1331,7 +1331,7 @@ de: subject: "%{name} folgt dir jetzt" title: Neuer Follower follow_request: - action: Verwalte Folge-Anfragen + action: Folgeanfragen verwalten body: "%{name} möchte dir folgen" subject: 'Ausstehende Folgeanfragen: %{name}' title: Neue Folgeanfrage @@ -1362,13 +1362,13 @@ de: billion: Mrd million: Mio quadrillion: Q - thousand: Tsd + thousand: Tsd. trillion: T otp_authentication: code_hint: Gib den Code ein, den deine 2FA- bzw. TOTP-App generiert hat, um den Vorgang zu bestätigen description_html: Wenn du die Zwei-Faktor-Authentisierung (2FA) mit einer Authentifizierungs-App deines Smartphones aktivierst, benötigst du neben dem regulären Passwort zusätzlich auch den zeitbasierten Code der 2FA-App, um dich anmelden zu können. enable: Aktivieren - instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst." + instructions_html: "Scanne diesen QR-Code mit einer beliebigen Authentisierungs-App (TOTP). Diese App generiert dann zeitbasierte Codes, die du beim Anmelden zusätzlich zum regulären Passwort eingeben musst." manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App. setup: Einrichten wrong_code: Der eingegebene Code ist ungültig! Laufen Serverzeit und Gerätezeit synchron? @@ -1405,33 +1405,34 @@ de: confirm_remove_selected_followers: Bist du sicher, dass du den ausgewählten Konten entfolgen möchtest? confirm_remove_selected_follows: Bist du sicher, dass du den ausgewählten Konten entfolgen möchtest? dormant: Inaktiv + follow_failure: Einigen der ausgewählten Konten konnte nicht gefolgt werden. follow_selected_followers: Ausgewählten Followern folgen followers: Follower following: Folge ich invited: Eingeladen last_active: Zuletzt aktiv - most_recent: Neuste + most_recent: Neueste moved: Umgezogen mutual: Gegenseitig primary: Primär relationship: Beziehung - remove_selected_domains: Entferne alle Follower von den ausgewählten Domains - remove_selected_followers: Entferne ausgewählte Follower - remove_selected_follows: Ausgewählten Benutzer*innen entfolgen + remove_selected_domains: Alle Follower von den ausgewählten Domains entfernen + remove_selected_followers: Ausgewählten Followern entfolgen + remove_selected_follows: Ausgewählten Profilen entfolgen status: Kontostatus remote_follow: missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden reports: errors: - invalid_rules: verweist nicht auf gültige Regeln + invalid_rules: verweist nicht auf gültige Serverregeln rss: content_warning: 'Inhaltswarnung:' descriptions: account: Öffentliche Beiträge von @%{acct} tag: 'Öffentliche Beiträge mit dem Hashtag #%{hashtag}' scheduled_statuses: - over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht - over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht + over_daily_limit: Du hast das heutige Limit für geplante Beiträge, das %{limit} beträgt, erreicht + over_total_limit: Du hast das Limit für geplante Beiträge, das %{limit} beträgt, erreicht too_soon: Das geplante Datum muss in der Zukunft liegen sessions: activity: Letzte Aktivität @@ -1444,6 +1445,7 @@ de: electron: Electron firefox: Firefox generic: Unbekannter Browser + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ de: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Unbekannter Browser weibo: Weibo current_session: Aktuelle Sitzung description: "%{browser} auf %{platform}" @@ -1465,9 +1468,10 @@ de: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: unbekanntes Betriebssystem + unknown_platform: Unbekannte Plattform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1493,9 +1497,9 @@ de: notifications: Benachrichtigungen preferences: Einstellungen profile: Profil - relationships: Folge ich und Follower + relationships: Follower und Folge ich statuses_cleanup: Automatische Löschung - strikes: Moderieren von Verstößen + strikes: Maßnahmen two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) webauthn_authentication: Sicherheitsschlüssel statuses: @@ -1519,8 +1523,8 @@ de: edited_at_html: 'Bearbeitet: %{date}' errors: in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren. - open_in_web: Im Web öffnen - over_character_limit: Zeichenlimit von %{max} überschritten + open_in_web: Im Webinterface öffnen + over_character_limit: Begrenzung von %{max} Zeichen überschritten pin_errors: direct: Beiträge, die nur für erwähnte Profile sichtbar sind, können nicht angeheftet werden limit: Du hast bereits die maximale Anzahl an Beiträgen angeheftet @@ -1580,7 +1584,7 @@ de: '7889238': 3 Monate min_age_label: Altersgrenze min_favs: Behalte Beiträge, die häufiger favorisiert wurden als … - min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge, unabhängig der Anzahl an Favorisierungen zu löschen + min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen min_reblogs: Behalte Beiträge, die öfter geteilt wurden als min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen stream_entries: @@ -1609,12 +1613,12 @@ de: enabled: Zwei-Faktor-Authentisierung (2FA) ist aktiviert enabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich aktiviert generate_recovery_codes: Wiederherstellungscodes erstellen - lost_recovery_codes: Wiederherstellungscodes erlauben es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf die Zwei-Faktor-Authentisierung (2FA) oder den Sicherheitsschlüssel hast. Solltest Du diese Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Deine alten, bereits erstellten Wiederherstellungscodes werden dadurch ungültig. + lost_recovery_codes: Wiederherstellungscodes ermöglichen es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf dein Smartphone oder zum Sicherheitsschlüssel hast. Solltest du deine Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Die alten Wiederherstellungscodes werden dann ungültig. methods: Methoden der Zwei-Faktor-Authentisierung (2FA) otp: Authentifizierungs-App recovery_codes: Wiederherstellungscodes sichern recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu erstellt - recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscode benutzen, um wieder auf dein Konto zugreifen zu können. Bewahre die Wiederherstellungscodes gut auf. Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren. + recovery_instructions_html: Falls du jemals den Zugang zu deinem Smartphone verlierst, kannst du einen der unten aufgeführten Wiederherstellungscodes verwenden, um wieder Zugang zu deinem Konto zu erhalten. Bewahre die Wiederherstellungscodes sicher auf. Du kannst sie zum Beispiel ausdrucken und zusammen mit anderen wichtigen Dokumenten aufbewahren. webauthn: Sicherheitsschlüssel user_mailer: appeal_approved: @@ -1642,7 +1646,7 @@ de: appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden. categories: spam: Spam - violation: Inhalt verstößt gegen die folgenden Gemeinschaftsrichtlinien + violation: Inhalt verstößt gegen die folgenden Serverregeln explanation: delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Gemeinschaftsrichtlinien erkannt und von den Moderator*innen von %{instance} entfernt. disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und andere Daten bleiben unversehrt. Du kannst eine Sicherung deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen. @@ -1692,12 +1696,12 @@ de: create: error: Beim Hinzufügen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut. success: Dein Sicherheitsschlüssel wurde erfolgreich hinzugefügt. - delete: Löschen - delete_confirmation: Bist du dir sicher, dass du diesen Sicherheitsschlüssel löschen möchtest? - description_html: Wenn du die Authentifizierung mit Sicherheitsschlüssel aktivierst, musst du einen deiner Sicherheitsschlüssel verwenden, um dich anmelden zu können. + delete: Entfernen + delete_confirmation: Möchtest du diesen Sicherheitsschlüssel wirklich entfernen? + description_html: Wenn du die Authentisierung mit Sicherheitsschlüssel aktivierst, musst du dich mit einem deiner Sicherheitsschlüssel anmelden. destroy: - error: Es gab ein Problem beim Löschen deines Sicherheitsschlüssels. Bitte versuche es erneut. - success: Dein Sicherheitsschlüssel wurde erfolgreich gelöscht. + error: Beim Entfernen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut. + success: Dein Sicherheitsschlüssel wurde erfolgreich entfernt. invalid_credential: Ungültiger Sicherheitsschlüssel nickname_hint: Gib den Spitznamen deines neuen Sicherheitsschlüssels ein not_enabled: Du hast WebAuthn noch nicht aktiviert diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index c4d41aa620..0c25f21b6c 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -21,7 +21,7 @@ de: action: E-Mail-Adresse verifizieren action_with_app: Bestätigen – und dann zur App %{app} zurückkehren explanation: Du hast mit dieser E-Mail-Adresse ein Konto auf %{host} erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. - explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. + explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mail-Adresse beworben. Sobald du deine E-Mail-Adresse bestätigt hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt – von dir ist keine weitere Handlung notwendig. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. extra_html: Bitte beachte auch die Serverregeln und unsere Datenschutzerklärung. subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}' title: E-Mail-Adresse verifizieren @@ -67,15 +67,15 @@ de: title: Ein neuer Sicherheitsschlüssel wurde hinzugefügt deleted: explanation: Der folgende Sicherheitsschlüssel wurde aus deinem Konto gelöscht - subject: 'Mastodon: Sicherheitsschlüssel gelöscht' - title: Einer deiner Sicherheitsschlüssel wurde gelöscht + subject: 'Mastodon: Sicherheitsschlüssel entfernt' + title: Einer deiner Sicherheitsschlüssel wurde entfernt webauthn_disabled: - explanation: Die Authentifizierung mit Sicherheitsschlüssel wurde für dein Konto deaktiviert. Der Login ist nun nur mit dem Token möglich, der von der eingerichteten TOTP-App generiert wird. - subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel deaktiviert' + explanation: Die Authentisierung mit Sicherheitsschlüsseln wurde für dein Konto deaktiviert. Die Anmeldung ist jetzt nur noch mit dem Token möglich, der von der eingerichteten TOTP-App generiert wird. + subject: 'Mastodon: Authentisierung mit Sicherheitsschlüsseln deaktiviert' title: Sicherheitsschlüssel deaktiviert webauthn_enabled: - explanation: Die Authentifizierung mit einem Sicherheitsschlüssel wurde für dein Konto aktiviert. Dein Sicherheitsschlüssel kann nun für die Anmeldung verwendet werden. - subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel aktiviert' + explanation: Die Authentisierung mit Sicherheitsschlüssel wurde für dein Konto aktiviert. Dein Sicherheitsschlüssel kann nun für die Anmeldung verwendet werden. + subject: 'Mastodon: Authentisierung mit Sicherheitsschlüssel aktiviert' title: Sicherheitsschlüssel aktiviert omniauth_callbacks: failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil „%{reason}“. @@ -111,5 +111,5 @@ de: not_found: nicht gefunden not_locked: ist nicht gesperrt not_saved: - one: '1 Fehler hat verhindert, dass %{resource} gespeichert wurde:' - other: "%{count} Fehler haben verhindert, dass %{resource} gespeichert wurde:" + one: '1 Fehler verhinderte, dass %{resource} gespeichert wurde:' + other: "%{count} Fehler verhinderten, dass %{resource} gespeichert wurde:" diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index c15801f4cc..da1cc989d2 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -78,7 +78,7 @@ et: subject: 'Mastodon: turvavõtme autentimine sisse lülitatud' title: Turvavõtmed on sisse lülitatud omniauth_callbacks: - failure: Ei saanud teid tuvastada %{kind} kaudu, kuna "%{reason}". + failure: Ei saanud sind tuvastada %{kind} kaudu, kuna "%{reason}". 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. @@ -87,7 +87,7 @@ et: updated: Salasõna muutmine õnnestus. Oled nüüd sisse logitud. updated_not_active: Sinu salasõna muutmine õnnestus. registrations: - destroyed: Nägemist! sinu konto sulgemine õnnestus. Me loodame sind varsti taas näha. + 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. diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml index 4a5500aed4..fd000223a9 100644 --- a/config/locales/devise.my.yml +++ b/config/locales/devise.my.yml @@ -7,7 +7,7 @@ my: send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။ failure: already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။ - inactive: သင့်အကောင့်မှာ အတည်မဖြစ်သေးပါ။ + inactive: သင်၏အကောင့်သည်အသက်မဝင်သေးပါ invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။ last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။ locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။ diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 00c4ad678e..3b69cb0556 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -3,7 +3,7 @@ de: activerecord: attributes: doorkeeper/application: - name: Name der Anwendung + name: Anwendungsname redirect_uri: Weiterleitungs-URI scopes: Befugnisse website: Website der Anwendung @@ -60,7 +60,7 @@ de: error: title: Ein Fehler ist aufgetreten new: - prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es ist eine Anwendung von Drittanbietern. Wenn du ihr nicht vertraust, dann solltest du sie nicht autorisieren." + prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es handelt sich um eine Drittanbieter-Software. Wenn du der Anwendung nicht vertraust, solltest du ihr keinen Zugriff auf dein Konto geben." review_permissions: Berechtigungen überprüfen title: Autorisierung erforderlich show: @@ -82,7 +82,7 @@ de: messages: access_denied: Die Anfrage wurde durch Benutzer_in oder Autorisierungs-Server verweigert. credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist. - invalid_client: 'Client-Authentifizierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.' + invalid_client: 'Client-Authentisierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.' invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein. invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig. invalid_request: @@ -119,7 +119,7 @@ de: write: Nur Schreibzugriff title: accounts: Konten - admin/accounts: Verwaltung der Konten + admin/accounts: Kontenverwaltung admin/all: Alle administrativen Funktionen admin/reports: Verwaltung der Berichte all: Voller Zugriff auf dein Mastodon-Konto diff --git a/config/locales/doorkeeper.sr-Latn.yml b/config/locales/doorkeeper.sr-Latn.yml index 5e46d01240..3dca04d0a4 100644 --- a/config/locales/doorkeeper.sr-Latn.yml +++ b/config/locales/doorkeeper.sr-Latn.yml @@ -122,16 +122,18 @@ sr-Latn: admin/accounts: Administracija naloga admin/all: Sve funkcije administracije admin/reports: Administracija prijava + all: Potpuni pristup vašem Mastodon nalogu blocks: Blokirani bookmarks: Obeleživači conversations: Razgovori crypto: End-to-end enkripcija favourites: Omiljeni filters: Filteri + follow: Praćenja, ignorisanja i blokiranja follows: Praćeni lists: Liste media: Multimedijalni prilozi - mutes: Utišani + mutes: Ignorisani notifications: Obaveštenja push: Prosleđena obaveštenja reports: Prijave @@ -147,17 +149,22 @@ sr-Latn: scopes: admin:read: čitanje svih podataka na serveru admin:read:accounts: čitanje osetljivih podataka za sve naloge + admin:read:canonical_email_blocks: pročitaj osetljive informacije i kanonske imejl blokove admin:read:domain_allows: pročitaj osetljive informacije za sve dozvole domena admin:read:domain_blocks: pročitaj osetljive informacije za sve blokove domena + admin:read:email_domain_blocks: pročitaj osetljive informacije svih blokova imejl domena admin:read:ip_blocks: pročitaj osetljive informacije za sve IP blokove admin:read:reports: čitanje osetljivih podataka svih izveštaja i prijavljenih naloga admin:write: menjanje svih podataka na serveru admin:write:accounts: vršenje moderatorskih aktivnosti nad nalozima + admin:write:canonical_email_blocks: izvrši moderacijske radnje nad kanonskim imejl blokovima + admin:write:domain_allows: izvrši moderacijske radnje nad dozvolama domena admin:write:domain_blocks: izvrši moderatorske aktivnosti na blokovima domena + admin:write:email_domain_blocks: izvrši moderacijske radnje nad blokovima imejl domena admin:write:ip_blocks: izvrši moderatorske aktivnosti na IP blokovima admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima crypto: korišćenje end-to-end enkripcije - follow: prati, blokira, odblokira i otprati naloge + follow: menja odnose naloga push: primanje prosleđenih obaveštenja read: čita podatke Vašeg naloga read:accounts: pogledaj informacije o nalozima @@ -167,7 +174,7 @@ sr-Latn: read:filters: pogledaj svoje filtere read:follows: pogledaj koga pratiš read:lists: pogledaj svoje liste - read:mutes: pogledaj svoje utišane + read:mutes: pogledaj ignorisanja read:notifications: pogledaj svoja obaveštenja read:reports: pogledaj svoje prijave read:search: pretraži u svoje ime @@ -176,13 +183,13 @@ sr-Latn: write:accounts: izmeni svoj profil write:blocks: blokiraj naloge i domene write:bookmarks: obeleži objave - write:conversations: utišaj i obriši razgovore + write:conversations: ignoriši i izbriši razgovore write:favourites: omiljene objave write:filters: kreiraj filtere write:follows: prati korisnike write:lists: kreiraj liste write:media: otpremi medijske datoteke - write:mutes: utišaj korinsike i razgovore + write:mutes: ignoriši korisnike i razgovore write:notifications: obriši svoja obaveštenja write:reports: prijavi druge korisnike write:statuses: objavi objave diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml index db399b05f6..00287543f3 100644 --- a/config/locales/doorkeeper.sr.yml +++ b/config/locales/doorkeeper.sr.yml @@ -149,13 +149,18 @@ sr: 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: коришћење end-to-end енкрипције diff --git a/config/locales/el.yml b/config/locales/el.yml index 3ed8ca4054..c185459b7a 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -25,11 +25,11 @@ el: admin: account_actions: action: Εκτέλεση ενέργειας - title: Εκτέλεση ενέργειας διαχείρισης στο %{acct} + title: Εκτέλεση ενέργειας συντονισμού στον %{acct} account_moderation_notes: create: Άφησε σημείωση - created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης! - destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης! + created_msg: Επιτυχής δημιουργία σημειώματος συντονισμού! + destroyed_msg: Η σημείωση συντονισμού καταστράφηκε επιτυχώς! accounts: add_email_domain_block: Εγγραφή τομέα email σε μαύρη λίστα approve: Έγκριση @@ -95,8 +95,8 @@ el: pending: Εκκρεμούν silenced: Περιορισμένοι suspended: Σε αναστολή - title: Μεσολάβηση - moderation_notes: Σημειώσεις μεσολάβησης + title: Συντονισμός + moderation_notes: Σημειώσεις συντονισμού most_recent_activity: Πιο πρόσφατη δραστηριότητα most_recent_ip: Πιο πρόσφατη IP no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος @@ -229,7 +229,7 @@ el: update_status: Ενημέρωση Κατάστασης update_user_role: Ενημέρωση ρόλου actions: - approve_appeal_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} άλλαξε τη διεύθυνση email του χρήστη %{target} @@ -266,7 +266,7 @@ el: enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target} memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target} - reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των διαχειριστών από %{target} + reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των συντονιστών από %{target} reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}" remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target} reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target} @@ -389,7 +389,7 @@ el: import: Εισαγωγή new: create: Δημιουργία αποκλεισμού - hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς. + hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές συντονισμού σε αυτούς τους λογαριασμούς. severity: desc_html: Ο περιορισμός θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων. noop: Κανένα @@ -398,8 +398,10 @@ el: title: Αποκλεισμός νέου τομέα no_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας not_permitted: Δεν επιτρπέπεται να εκτελέσετε αυτήν την ενέργεια + obfuscate: Θόλωμα ονόματος τομέα + obfuscate_hint: Μερικό θόλωμα του ονόματος τομέα στη λίστα, εάν η ανακοίνωση της λίστας των περιορισμών τομέα είναι ενεργή private_comment: Ιδιωτικό σχόλιο - private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές. + private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους συντονιστές. public_comment: Δημόσιο σχόλιο public_comment_hint: Σχόλιο σχετικά με τον περιορισμό αυτού του τομέα προς το κοινό, αν η λειτουργία δημοσιοποίησης των περιορισμένων τομέων είναι ενεργοποιημένη. reject_media: Απόρριψη πολυμέσων @@ -421,39 +423,104 @@ el: domain: Τομέας new: create: Πρόσθεση τομέα + resolve: Επίλυση τομέα title: Νέα εγγραφή email στη μαύρη λίστα + no_email_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας not_permitted: Δεν επιτρέπεται + resolved_dns_records_hint_html: Το όνομα τομέα επιλύεται στους ακόλουθους τομείς MX, οι οποίοι είναι τελικά υπεύθυνοι για την αποδοχή των e-mail. Αποκλείοντας έναν τομέα MX θα μπλοκάρει τις εγγραφές από οποιαδήποτε διεύθυνση email που χρησιμοποιεί τον ίδιο τομέα MX, ακόμη και αν το ορατό όνομα τομέα είναι διαφορετικό. Προσέξτε να μην αποκλείσετε τους μεγάλους παρόχους ηλεκτρονικού ταχυδρομείου. + resolved_through_html: Επιλύθηκε μέσω %{domain} title: Μαύρη λίστα email export_domain_allows: + new: + title: Εισαγωγή επιτρεπόμενων τομέων no_file: Δεν επιλέχθηκε αρχείο export_domain_blocks: + import: + description_html: Πρόκειται να εισαγάγετε μια λίστα με αποκλεισμένους τομείς. Παρακαλώ ελέγξτε τη λίστα πολύ προσεκτικά, ειδικά αν δεν έχετε συντάξει τη λίστα μόνοι σας. + existing_relationships_warning: Υπάρχουσες σχέσεις ακολούθησης + private_comment_description_html: 'Για να σας βοηθήσουμε να παρακολουθείτε από πού προέρχονται οι εισαγόμενοι αποκλεισμοί, οι εισαγόμενοι αποκλεισμοί θα δημιουργηθούν με το ακόλουθο ιδιωτικό σχόλιο: %{comment}' + private_comment_template: Εισήχθη από %{source} στις %{date} + title: Εισαγωγή αποκλεισμένων τομέων + invalid_domain_block: 'Ένας ή περισσότεροι αποκλεισμοί τομέα παραλείφθηκαν λόγω των ακόλουθων σφαλμάτων: %{error}' + new: + title: Εισαγωγή αποκλεισμένων τομέων no_file: Δεν επιλέχθηκε αρχείο follow_recommendations: + description_html: "Ακολουθώντας συστάσεις βοηθάει τους νέους χρήστες να βρουν γρήγορα ενδιαφέρον περιεχόμενο. Όταν ένας χρήστης δεν έχει αλληλεπιδράσει με άλλους αρκετά για να διαμορφώσει εξατομικευμένες συστάσεις, συνιστώνται αυτοί οι λογαριασμοί. Υπολογίζονται εκ νέου σε καθημερινή βάση από ένα σύνολο λογαριασμών με τις υψηλότερες πρόσφατες αλληλεπιδράσεις και μεγαλύτερο αριθμό τοπικών ακόλουθων για μια δεδομένη γλώσσα." language: Για τη γλώσσα status: Κατάσταση + suppress: Καταστολή της πρότασης ακολούθησης + suppressed: Κατασταλμένο + title: Ακολουθήστε τις προτάσεις + unsuppress: Επαναφορά των συστάσεων ακολούθησης instances: + availability: + description_html: + one: Εάν η παράδοση στον τομέα αποτύχει για %{count} ημέρα, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί. + other: Εάν η παράδοση στον τομέα αποτύχει για %{count} διαφορετικές ημέρες, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί. + failure_threshold_reached: Το όριο αποτυχίας έφτασε στο %{date}. + failures_recorded: + one: Αποτυχία προσπάθειας την %{count} ημέρα. + other: Αποτυχημένες προσπάθειες σε %{count} διαφορετικές ημέρες. + no_failures_recorded: Καμία καταγεγραμμένη αποτυχία. + title: Διαθεσιμότητα + warning: Η τελευταία προσπάθεια σύνδεσης σε αυτόν τον διακομιστή απέτυχε + back_to_all: Όλα + back_to_limited: Περιορισμένα + back_to_warning: Προσοχή by_domain: Τομέας confirm_purge: Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τα δεδομένα από αυτόν τον τομέα; + content_policies: + comment: Εσωτερική σημείωση + description_html: Μπορείτε να ορίσετε τις πολιτικές περιεχομένου που θα εφαρμόζονται σε όλους τους λογαριασμούς από αυτόν τον τομέα και οποιονδήποτε από τους υποτομείς του. + limited_federation_mode_description_html: Μπορείτε να επιλέξετε αν θα επιτρέψετε την ομοσπονδία με αυτόν τον τομέα. + policies: + reject_media: Απόρριψη πολυμέσων + reject_reports: Απόρριψη αναφορών + silence: Περιορισμός + suspend: Αναστολή + policy: Πολιτική + reason: Δημόσιος λόγος + title: Πολιτικές περιεχομένου dashboard: + instance_accounts_dimension: Λογαριασμοί με τους περισσότερους ακόλουθους + instance_accounts_measure: αποθηκευμένοι λογαριασμοί + instance_followers_measure: οι ακόλουθοί μας εκεί + instance_follows_measure: οι ακόλουθοί τους εδώ instance_languages_dimension: Κορυφαίες γλώσσες + instance_media_attachments_measure: αποθηκευμένα συνημμένα πολυμέσων + instance_reports_measure: αναφορές γι' αυτές + instance_statuses_measure: αποθηκευμένες δημοσιεύσεις delivery: + all: Όλες + clear: Εκκαθάριση σφαλμάτων παράδοσης failing: Αποτυγχάνει + restart: Επανεκκίνηση παράδοσης + stop: Διακοπή παράδοσης + unavailable: Μη διαθέσιμο delivery_available: Διαθέσιμη παράδοση + delivery_error_days: Ημέρες σφάλματος παράδοσης + delivery_error_hint: Εάν η παράδοση δεν είναι δυνατή για %{count} ημέρες, θα επισημανθεί αυτόματα ως μη παραδόσιμη. destroyed_msg: Τα δεδομένα από το %{domain} βρίσκονται σε αναμονή για επικείμενη διαγραφή. empty: Δεν βρέθηκαν τομείς. + known_accounts: + one: "%{count} γνωστός λογαριασμός" + other: "%{count} γνωστοί λογαριασμοί" moderation: all: Όλα limited: Περιορισμένα - title: Διαμεσολάβηση + title: Συντονισμός private_comment: Ιδιωτικό σχόλιο public_comment: Δημόσιο σχόλιο purge: Εκκαθάριση + purge_description_html: Εάν πιστεύετε ότι αυτός ο τομέας είναι εκτός σύνδεσης για πάντα, μπορείτε να διαγράψετε όλες τις καταχωρήσεις λογαριασμών και τα σχετικά δεδομένα από αυτόν τον τομέα από τον αποθηκευτικό σας χώρο. Αυτό μπορεί να διαρκέσει λίγη ώρα. title: Γνωστοί κόμβοι total_blocked_by_us: Μπλοκάρονται από εμάς total_followed_by_them: Ακολουθούνται από εκείνους total_followed_by_us: Ακολουθούνται από εμάς total_reported: Καταγγελίες προς εκείνους total_storage: Συνημμένα πολυμέσα + totals_time_period_hint_html: Τα σύνολα που εμφανίζονται παρακάτω περιλαμβάνουν στοιχεία από την αρχή. invites: deactivate_all: Απενεργοποίηση όλων filter: @@ -475,6 +542,7 @@ el: '94670856': 3 χρόνια new: title: Δημιουργία νέου κανόνα IP + no_ip_block_selected: Δεν άλλαξαν οι κανόνες IP καθώς κανένας δεν επιλέχθηκε title: Κανόνες IP relationships: title: Σχέσεις %{acct} @@ -505,7 +573,14 @@ el: 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: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Εάν προβείτε σε τιμωρητική ενέργεια κατά του αναφερόμενου λογαριασμού, θα αποσταλεί ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε αυτούς, εκτός όταν η κατηγορία Σπαμ είναι επιλεγμένη. + actions_description_remote_html: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Αυτό θα επηρεάσει μόνο το πώς ο δικός σας διακομιστής επικοινωνεί με αυτόν τον απομακρυσμένο λογαριασμό και χειρίζεται το περιεχόμενό του. add_to_report: Προσθέστε περισσότερα στην αναφορά are_you_sure: Σίγουρα; assign_to_self: Ανάθεση σε μένα @@ -513,9 +588,12 @@ el: by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία cancel: Άκυρο category: Κατηγορία + category_description_html: Ο λόγος για τον οποίο αναφέρθηκε αυτός ο λογαριασμός και/ή το περιεχόμενο θα εσωκλείεται σε επικοινωνία με τον αναφερόμενο λογαριασμό comment: none: Κανένα + comment_description_html: 'Για να δώσει περισσότερες πληροφορίες, ο/η %{name} έγραψε:' confirm: Επιβεβαίωση + confirm_action: Επιβεβαίωση ενέργειαςδιαχείρισης ενάντια στον λογαριασμό @%{acct} created_at: Καταγγέλθηκε delete_and_resolve: Διαγραφή δημοσιεύσεων forwarded: Προωθημένα @@ -531,6 +609,8 @@ el: delete: Διαγραφή placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση... title: Σημειώσεις + notes_description_html: Δείτε και αφήστε σημειώσεις σε άλλους διαχειριστές και τον μελλοντικό εαυτό σας + processed_msg: 'Η αναφορά #%{id} διεκπεραιώθηκε με επιτυχία' quick_actions_description_html: 'Κάντε μια γρήγορη ενέργεια ή μετακινηθείτε προς τα κάτω για να δείτε το αναφερόμενο περιεχόμενο:' remote_user_placeholder: ο απομακρυσμένος χρήστης από %{instance} reopen: Ξανάνοιξε την καταγγελία @@ -542,8 +622,29 @@ el: skip_to_actions: Μετάβαση στις ενέργειες status: Κατάσταση statuses: Αναφερόμενο περιεχόμενο + statuses_description_html: Το προσβλητικό θα εσωκλείεται στην επικοινωνία με τον αναφερόμενο λογαριασμό + summary: + action_preambles: + delete_html: 'Πρόκειται να αφαιρέσετε μερικές από τις δημοσιεύσεις του @%{acct}. Αυτό θα:' + mark_as_sensitive_html: 'Πρόκειται να επισημάνετε μερικές από τις δημοσιεύσεις του @%{acct} ως ευαίσθητες. Αυτό θα:' + silence_html: 'Πρόκειται να περιορίσετε τον λογαριασμό @%{acct}. Αυτό θα:' + suspend_html: 'Πρόκειται να αναστείλετε τον λογαριασμό @%{acct}. Αυτό θα:' + actions: + delete_html: Αφαιρέστε τις προσβλητικές δημοσιεύσεις + mark_as_sensitive_html: Σημειώστε τα πολυμέσα των προσβλητικών αναρτήσεων ως ευαίσθητα + silence_html: Περιορίστε σοβαρά την εμβέλεια του @%{acct} κάνοντας το προφίλ και το περιεχόμενό του ορατά μόνο σε άτομα που ήδη τον ακολουθούν ή που αναζητούν χειροκίνητα το προφίλ του + suspend_html: Αναστολή του @%{acct}, καθιστώντας το προφίλ και το περιεχόμενό του μη προσβάσιμα και αδύνατο να αλληλεπιδράσει κανείς με αυτά + close_report: 'Επισήμανση αναφοράς #%{id} ως επιλυμένη' + close_reports_html: Επισημάνετε όλες τις αναφορές ενάντια στον λογαριασμό @%{acct} ως επιλυμένες + delete_data_html: Διαγράψτε το προφίλ και το περιεχόμενο του @%{acct} σε 30 ημέρες από τώρα εκτός και αν ανακληθεί η αναστολή εν τω μεταξύ + preview_preamble_html: 'Ο @%{acct} θα λάβει μια προειδοποίηση με τα ακόλουθο περιεχόμενο:' + record_strike_html: Καταγράψτε μια ποινή εναντίον του @%{acct} για να σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβιάσεις από αυτόν τον λογαριασμό + send_email_html: Στείλτε στον @%{acct} ένα προειδοποιητικό e-mail + warning_placeholder: Προαιρετικές επιπλέον εξηγήσεις για αυτή την ενέργεια από τη διαχείριση. + target_origin: Προέλευση του αναφερόμενου λογαριασμού title: Αναφορές unassign: Αποσύνδεση + unknown_action_msg: 'Άγνωστη ενέργεια: %{action}' unresolved: Άλυτη updated_at: Ενημερωμένη view_profile: Προβολή προφίλ @@ -556,20 +657,57 @@ el: administration: Διαχείριση devops: Devops invites: Προσκλήσεις + moderation: Συντονισμός + special: Ειδικός delete: Διαγραφή + description_html: Με τους ρόλους χρηστών, μπορείτε να προσαρμόσετε σε ποιες λειτουργίες και περιοχές του Mastodon, οι χρήστες σας μπορούν να έχουν πρόσβαση. edit: Επεξεργασία ρόλου '%{name}' everyone: Προεπιλεγμένα δικαιώματα + everyone_full_description_html: Αυτός είναι ο βασικός ρόλος που επηρεάζει όλους τους χρήστες, ακόμη και εκείνους που δεν έχουν κάποιον ρόλο. Όλοι οι άλλοι ρόλοι κληρονομούν δικαιώματα από αυτόν. permissions_count: one: "%{count} δικαίωμα" other: "%{count} δικαιώματα" privileges: administrator: Διαχειριστής + administrator_description: Οι χρήστες με αυτό το δικαίωμα θα παρακάμπτουν κάθε δικαίωμα + delete_user_data: Διαγραφή Δεδομένων Χρήστη + delete_user_data_description: Επιτρέπει στους χρήστες να διαγράφουν τα δεδομένα άλλων χρηστών χωρίς καθυστέρηση invite_users: Πρόσκληση χρηστών + invite_users_description: Επιτρέπει στους χρήστες να προσκαλούν νέα άτομα στον διακομιστή manage_announcements: Διαχείριση ανακοινώσεων + manage_announcements_description: Επιτρέπει στους χρήστες να διαχειρίζονται ανακοινώσεις στον διακομιστή + manage_appeals: Διαχείριση Εφέσεων + manage_appeals_description: Επιτρέπει στους χρήστες να εξετάζουν τις εφέσεις κατά των ενεργειών της συντονισμού + manage_blocks: Διαχείριση Αποκλεισμών + manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους e-mail και διευθύνσεις IP + manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis + manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή + manage_federation: Διαχείριση Ομοσπονδίας + manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν την ομοσπονδία με άλλους τομείς και να ελέγχουν την παράδοση + manage_invites: Διαχείριση Προσκλήσεων + manage_invites_description: Επιτρέπει στους χρήστες να περιηγούνται και να απενεργοποιούν τους συνδέσμους πρόσκλησης + manage_reports: Διαχείριση Αναφορών + manage_reports_description: Επιτρέπει στους χρήστες να εξετάζουν τις αναφορές και να εκτελούν ενέργειες συντονισμού εναντίον τους manage_roles: Διαχείριση ρόλων + 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: Διαχείριση 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: add_new: Προσθήκη κανόνα @@ -581,23 +719,36 @@ el: 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: Δημόσιες ροές + publish_discovered_servers: Δημοσίευση διακομιστών που έχουν ανακαλυφθεί + publish_statistics: Δημοσίευση στατιστικών + title: Ανακάλυψη trends: Τάσεις domain_blocks: all: Για όλους disabled: Για κανέναν users: Προς συνδεδεμένους τοπικούς χρήστες registrations: + preamble: Ελέγξτε ποιος μπορεί να δημιουργήσει ένα λογαριασμό στον διακομιστή σας. title: Εγγραφές registrations_mode: modes: @@ -612,6 +763,7 @@ el: account: Συντάκτης application: Εφαρμογή back_to_account: Επιστροφή στη σελίδα λογαριασμού + back_to_report: Πίσω στη σελίδα αναφοράς batch: remove_from_report: Αφαίρεση από την αναφορά report: Αναφορά @@ -625,6 +777,7 @@ el: metadata: Μεταδεδομένα no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη open: Άνοιγμα δημοσίευσης + original_status: Αρχική δημοσίευση reblogs: Αναδημοσιεύσεις status_changed: Η ανάρτηση άλλαξε title: Καταστάσεις λογαριασμού @@ -632,10 +785,25 @@ el: visibility: Ορατότητα with_media: Με πολυμέσα strikes: + 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: Έφεση σε εκκρεμότητα appeal_rejected: Η αίτηση απορρίφθηκε 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: Δεν έχετε ορίσει κανέναν κανόνα διακομιστή. @@ -1050,6 +1218,7 @@ el: relationships: activity: Δραστηριότητα λογαριασμού dormant: Αδρανείς + follow_failure: Δεν ήταν δυνατή η παρακολούθηση ορισμένων από τους επιλεγμένους λογαριασμούς. followers: Σε ακολουθούν following: Ακολουθείς invited: Προσκεκλημένοι @@ -1083,6 +1252,7 @@ el: edge: Microsoft Edge firefox: Firefox generic: Άγνωστος φυλλομετρητής + huawei_browser: Huawei Browser ie: Internet Explorer opera: Opera otter: Otter @@ -1090,6 +1260,7 @@ el: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Άγνωστος φυλλομετρητής current_session: Τρέχουσα σύνδεση description: "%{browser} σε %{platform}" explanation: Αυτοί είναι οι φυλλομετρητές (browsers) που είναι συνδεδεμένοι στον λογαριασμό σου στο Mastodon αυτή τη στιγμή. @@ -1099,9 +1270,10 @@ el: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: άγνωστη πλατφόρμα + unknown_platform: Άγνωστη Πλατφόρμα revoke: Ανακάλεσε revoke_success: Η σύνδεση ανακλήθηκε επιτυχώς title: Σύνδεση diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 9b4f28c5d6..8e2e453506 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -366,6 +366,115 @@ en-GB: sources: Sign-up sources space: Space usage title: Dashboard + top_languages: Top active languages + top_servers: Top active servers + website: Website + disputes: + appeals: + empty: No appeals found. + title: Appeals + domain_allows: + add_new: Allow federation with domain + created_msg: Domain has been successfully allowed for federation + destroyed_msg: Domain has been disallowed from federation + export: Export + import: Import + undo: Disallow federation with domain + domain_blocks: + add_new: Add new domain block + created_msg: Domain block is now being processed + destroyed_msg: Domain block has been undone + domain: Domain + edit: Edit domain block + existing_domain_block: You have already imposed stricter limits on %{name}. + existing_domain_block_html: You have already imposed stricter limits on %{name}, you need to unblock it first. + export: Export + import: Import + new: + create: Create block + hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts. + severity: + desc_html: "Limit will make posts from accounts at this domain invisible to anyone who isn't following them. Suspend will remove all content, media, and profile data for this domain's accounts from your server. Use None if you just want to reject media files." + noop: None + silence: Limit + suspend: Suspend + title: New domain block + no_domain_block_selected: No domain blocks were changed as none were selected + not_permitted: You are not permitted to perform this action + obfuscate: Obfuscate domain name + obfuscate_hint: Partially obfuscate the domain name in the list if advertising the list of domain limitations is enabled + private_comment: Private comment + private_comment_hint: Comment about this domain limitation for internal use by the moderators. + public_comment: Public comment + public_comment_hint: Comment about this domain limitation for the general public, if advertising the list of domain limitations is enabled. + reject_media: Reject media files + reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions + reject_reports: Reject reports + reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions + undo: Undo domain block + view: View domain block + email_domain_blocks: + add_new: Add new + attempts_over_week: + one: "%{count} attempt over the last week" + other: "%{count} sign-up attempts over the last week" + created_msg: Successfully blocked e-mail domain + delete: Delete + dns: + types: + mx: MX record + domain: Domain + new: + create: Add domain + resolve: Resolve domain + title: Block new e-mail domain + no_email_domain_block_selected: No e-mail domain blocks were changed as none were selected + not_permitted: Not permitted + resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting e-mail. Blocking an MX domain will block sign-ups from any e-mail address which uses the same MX domain, even if the visible domain name is different. Be careful not to block major e-mail providers. + resolved_through_html: Resolved through %{domain} + title: Blocked e-mail domains + export_domain_allows: + new: + title: Import domain allows + no_file: No file selected + export_domain_blocks: + import: + description_html: You are about to import a list of domain blocks. Please review this list very carefully, especially if you have not authored this list yourself. + existing_relationships_warning: Existing follow relationships + 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 + follow_recommendations: + description_html: "Follow recommendations help new users quickly find interesting content. When a user has not interacted with others enough to form personalised follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language." + language: For language + status: Status + suppress: Suppress follow recommendation + suppressed: Suppressed + title: Follow recommendations + unsuppress: Restore follow recommendation + instances: + availability: + description_html: + one: If delivering to the domain fails %{count} day without succeeding, no further delivery attempts will be made unless a delivery from the domain is received. + other: If delivering to the domain fails on %{count} different days without succeeding, no further delivery attempts will be made unless a delivery from the domain is received. + failure_threshold_reached: Failure threshold reached on %{date}. + failures_recorded: + one: Failed attempt on %{count} day. + other: Failed attempts on %{count} different days. + no_failures_recorded: No failures on record. + title: Availability + warning: The last attempt to connect to this server has been unsuccessful + back_to_all: All + back_to_limited: Limited + back_to_warning: Warning + by_domain: Domain + confirm_purge: Are you sure you want to permanently delete data from this domain? + content_policies: + comment: Internal note roles: categories: devops: DevOps @@ -379,14 +488,253 @@ en-GB: '410': The page you were looking for doesn't exist here anymore. '429': Too many requests '503': The page could not be served due to a temporary server failure. + generic: + copy: Copy + delete: Delete + deselect: Deselect all + none: None + order_by: Order by + save_changes: Save changes + select_all_matching_items: + one: Select %{count} item matching your search. + other: Select all %{count} items matching your search. + today: today + validation_errors: + one: Something isn't quite right yet! Please review the error below + other: Something isn't quite right yet! Please review %{count} errors below + imports: + errors: + invalid_csv_file: 'Invalid CSV file. Error: %{error}' + over_rows_processing_limit: contains more than %{count} rows + modes: + merge: Merge + merge_long: Keep existing records and add new ones + overwrite: Overwrite + overwrite_long: Replace current records with the new ones + preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking. + success: Your data was successfully uploaded and will be processed in due time + types: + blocking: Blocking list + bookmarks: Bookmarks + domain_blocking: Domain blocking list + following: Following list + muting: Muting list + upload: Upload + invites: + delete: Deactivate + expired: Expired + notification_mailer: + admin: + sign_up: + subject: "%{name} signed up" + favourite: + body: 'Your post was favourited by %{name}:' + subject: "%{name} favourited your post" + title: New favourite + follow: + body: "%{name} is now following you!" + subject: "%{name} is now following you" + title: New follower + follow_request: + action: Manage follow requests + body: "%{name} has requested to follow you" + subject: 'Pending follower: %{name}' + polls: + errors: + too_many_options: can't contain more than %{max} items + preferences: + other: Other + posting_defaults: Posting defaults + public_timelines: Public timelines + privacy_policy: + title: Privacy Policy + reactions: + errors: + limit_reached: Limit of different reactions reached + unrecognized_emoji: is not a recognised 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_failure: Could not follow some of the selected accounts. + follow_selected_followers: Follow selected followers + followers: Followers + following: Following + invited: Invited + last_active: Last active + most_recent: Most recent + moved: Moved + mutual: Mutual + primary: Primary + relationship: Relationship + remove_selected_domains: Remove all followers from the selected domains + remove_selected_followers: Remove selected followers + remove_selected_follows: Unfollow selected users + status: Account status + remote_follow: + missing_resource: Could not find the required redirect URL for your account + reports: + errors: + invalid_rules: does not reference valid rules + rss: + content_warning: 'Content warning:' + descriptions: + account: Public posts from @%{acct} + tag: 'Public posts tagged #%{hashtag}' + scheduled_statuses: + over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for today + over_total_limit: You have exceeded the limit of %{limit} scheduled posts + too_soon: The scheduled date must be in the future sessions: + activity: Last activity + browser: Browser browsers: + alipay: Alipay blackberry: BlackBerry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox + generic: Unknown browser + huawei_browser: Huawei 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 + unknown_browser: Unknown Browser + weibo: Weibo + current_session: Current session + description: "%{browser} on %{platform}" + explanation: These are the web browsers currently logged in to your Mastodon account. + ip: IP platforms: + adobe_air: Adobe Air + android: Android blackberry: BlackBerry chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + kai_os: KaiOS + linux: Linux + mac: macOS + unknown_platform: Unknown Platform + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + revoke: Revoke + revoke_success: Session successfully revoked + title: Sessions + view_authentication_history: View authentication history of your account + settings: + account: Account + account_settings: Account settings + aliases: Account aliases + appearance: Appearance + authorized_apps: Authorised apps + back: Back to Mastodon + delete: Account deletion + development: Development + edit_profile: Edit profile + export: Data export + featured_tags: Featured hashtags + import: Import + import_and_export: Import and export + migrate: Account migration + notifications: Notifications + preferences: Preferences + profile: Profile + relationships: Follows and followers + statuses_cleanup: Automated post deletion + strikes: Moderation strikes + two_factor_authentication: Two-factor Auth + webauthn_authentication: Security keys + statuses: + attached: + audio: + one: "%{count} audio" + other: "%{count} audio" + description: 'Attached: %{attached}' + image: + one: "%{count} image" + other: "%{count} images" + video: + one: "%{count} video" + other: "%{count} videos" + boosted_from_html: Boosted from %{acct_link} + content_warning: 'Content warning: %{warning}' + default_language: Same as interface language + disallowed_hashtags: + one: 'contained a disallowed hashtag: %{tags}' + other: 'contained the disallowed hashtags: %{tags}' + edited_at_html: Edited %{date} + errors: + in_reply_not_found: The post you are trying to reply to does not appear to exist. + open_in_web: Open in web + over_character_limit: character limit of %{max} exceeded + pin_errors: + direct: Posts that are only visible to mentioned users cannot be pinned + limit: You have already pinned the maximum number of posts + ownership: Someone else's post cannot be pinned + reblog: A boost cannot be pinned + poll: + total_people: + one: "%{count} person" + other: "%{count} people" + total_votes: + one: "%{count} vote" + other: "%{count} votes" + vote: Vote + show_more: Show more + show_newer: Show newer + show_older: Show older + show_thread: Show thread + sign_in_to_participate: Sign in to participate in the conversation + title: '%{name}: "%{quote}"' + visibilities: + direct: Direct + private: Followers-only + private_long: Only show to followers + public: Public + public_long: Everyone can see + unlisted: Unlisted + unlisted_long: Everyone can see, but not listed on public timelines statuses_cleanup: + enabled: Automatically delete old posts + enabled_hint: Automatically deletes your posts once they reach a specified age threshold, unless they match one of the exceptions below + exceptions: Exceptions + explanation: Because deleting posts is an expensive operation, this is done slowly over time when the server is not otherwise busy. For this reason, your posts may be deleted a while after they reach the age threshold. + ignore_favs: Ignore favourites + ignore_reblogs: Ignore boosts + interaction_exceptions: Exceptions based on interactions + interaction_exceptions_explanation: Note that there is no guarantee for posts to be deleted if they go below the favourite or boost threshold after having once gone over them. + keep_direct: Keep direct messages + keep_direct_hint: Doesn't delete any of your direct messages + keep_media: Keep posts with media attachments + keep_media_hint: Doesn't delete any of your posts that have media attachments + keep_pinned: Keep pinned posts + keep_pinned_hint: Doesn't delete any of your pinned posts + keep_polls: Keep polls + keep_polls_hint: Doesn't delete any of your polls + keep_self_bookmark: Keep posts you bookmarked + keep_self_bookmark_hint: Doesn't delete your own posts if you have bookmarked them + keep_self_fav: Keep posts you favourited + keep_self_fav_hint: Doesn't delete your own posts if you have favourited them + min_age: + '1209600': 2 weeks + '15778476': 6 months + '2629746': 1 month + '31556952': 1 year + '5259492': 2 months + '604800': 1 week + '63113904': 2 years + '7889238': 3 months min_age_label: Age threshold min_favs: Keep posts favourited at least min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites @@ -399,7 +747,11 @@ en-GB: strikes: errors: too_late: It is too late to appeal this strike + tags: + does_not_match_previous_name: does not match the previous name themes: + contrast: Mastodon (High contrast) + default: Mastodon (Dark) mastodon-light: Mastodon (Light) time: formats: @@ -433,7 +785,14 @@ en-GB: title: Appeal rejected backup_ready: explanation: You requested a full backup of your Mastodon account. It's now ready for download! + subject: Your archive is ready for download + title: Archive takeout suspicious_sign_in: + change_password: change your password + details: 'Here are details of the sign-in:' + explanation: We've detected a sign-in to your account from a new IP address. + further_actions_html: If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure. + subject: Your account has been accessed from a new IP address title: A new sign-in warning: appeal: Submit an appeal diff --git a/config/locales/eo.yml b/config/locales/eo.yml index a8279b6a6f..b381805a10 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -834,6 +834,7 @@ eo: other: Diskonita de %{count} personoj ekde lasta semajno title: Tendencantaj ligiloj usage_comparison: Diskonita %{today}-foje hodiau, sed estas %{yesterday} hierau + not_allowed_to_trend: Ne rajtas fariĝi furoraĵo only_allowed: Nur permesitas pending_review: Atendante revizion preview_card_providers: @@ -1324,8 +1325,8 @@ eo: sign_up: subject: "%{name} registriĝis" favourite: - body: "%{name} stelumis vian mesaĝon:" - subject: "%{name} stelumis vian mesaĝon" + body: "%{name} stelumis vian afiŝon:" + subject: "%{name} stelumis vian afiŝon" title: Nova stelumo follow: body: "%{name} nun sekvas vin!" @@ -1345,7 +1346,7 @@ eo: subject: Enketo de %{name} finitas reblog: body: 'Via mesaĝo estis diskonigita de %{name}:' - subject: "%{name} diskonigis vian mesaĝon" + subject: "%{name} diskonigis vian afiŝon" title: Nova diskonigo status: subject: "%{name} ĵus afiŝis" @@ -1406,6 +1407,7 @@ eo: confirm_remove_selected_followers: Ĉu vi certas, ke vi volas forigi la elektitajn sekvantojn? confirm_remove_selected_follows: Ĉu vi certas, ke vi volas forigi la elektitajn sekvatojn? dormant: Dormanta + follow_failure: Ne eblis sekvi iom da la elektitaj kontoj. follow_selected_followers: Sekvi selektitajn sekvantojn followers: Sekvantoj following: Sekvatoj @@ -1445,6 +1447,7 @@ eo: electron: Electron firefox: Firefox generic: Nekonata retumilo + huawei_browser: Retumilo Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1454,6 +1457,7 @@ eo: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Nekonata retumilo weibo: Weibo current_session: Nuna seanco description: "%{browser} en %{platform}" @@ -1466,9 +1470,10 @@ eo: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: nekonata substrato + unknown_platform: Nekonata platformo windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index bef481b35d..2a395c80fe 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1405,6 +1405,7 @@ es-AR: confirm_remove_selected_followers: "¿Estás seguro que querés quitar a los seguidores seleccionados?" confirm_remove_selected_follows: "¿Estás seguro que querés quitar a las cuentas seguidas seleccionadas?" dormant: Inactivas + follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas. follow_selected_followers: Seguir a los seguidores seleccionados followers: Seguidores following: Siguiendo @@ -1444,6 +1445,7 @@ es-AR: electron: Electron firefox: Mozilla Firefox generic: "[Navegador web desconocido]" + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador web de Nokia S40 Ovi @@ -1453,6 +1455,7 @@ es-AR: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: "[Navegador web desconocido]" weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1465,9 +1468,10 @@ es-AR: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: GNU/Linux mac: macOS - other: "[Plataforma desconocida]" + unknown_platform: "[Plataforma desconocida]" windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 978cd0c3ce..3919b4064c 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1405,6 +1405,7 @@ es-MX: confirm_remove_selected_followers: "¿Estás seguro de que quieres eliminar a los seguidores seleccionados?" confirm_remove_selected_follows: "¿Estás seguro de que quieres eliminar los seguidos seleccionados?" dormant: Inactivo + follow_failure: No se pudo seguir algunas de las cuentas seleccionadas. follow_selected_followers: Seguir a los seguidores seleccionados followers: Seguidores following: Siguiendo @@ -1444,6 +1445,7 @@ es-MX: electron: Electron firefox: Firefox generic: Desconocido + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador de Nokia S40 Ovi @@ -1453,6 +1455,7 @@ es-MX: qq: Navegador QQ safari: Safari uc_browser: Navegador UC + unknown_browser: Navegador desconocido weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1465,9 +1468,10 @@ es-MX: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: GNU Linux mac: Mac - other: Desconocido + unknown_platform: Plataforma desconocida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/es.yml b/config/locales/es.yml index 29c4e84e73..04f9b23465 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1405,6 +1405,7 @@ es: confirm_remove_selected_followers: "¿Estás seguro de que quieres eliminar los seguidores seleccionados?" confirm_remove_selected_follows: "¿Estás seguro de que quieres eliminar los seguidos seleccionados?" dormant: Inactivo + follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas. follow_selected_followers: Seguir a los seguidores seleccionados followers: Seguidores following: Siguiendo @@ -1444,6 +1445,7 @@ es: electron: Electron firefox: Firefox generic: Desconocido + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador de Nokia S40 Ovi @@ -1453,6 +1455,7 @@ es: qq: Navegador QQ safari: Safari uc_browser: Navegador UC + unknown_browser: Navegador Desconocido weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1465,9 +1468,10 @@ es: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: GNU Linux mac: Mac - other: Desconocido + unknown_platform: Plataforma Desconocida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/et.yml b/config/locales/et.yml index 55cb810116..3da5784028 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -979,7 +979,7 @@ et: delete_account: Konto kustutamine delete_account_html: Kui soovid oma konto kustutada, siis jätka siit. Pead kustutamise eraldi kinnitama. description: - prefix_invited_by_user: "@%{name} kutsub Teid liituma selle Mastodoni serveriga!" + prefix_invited_by_user: "@%{name} kutsub sind liituma selle Mastodoni serveriga!" prefix_sign_up: Loo Mastodoni konto juba täna! 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? @@ -1248,7 +1248,7 @@ et: '86400': 1 päev expires_in_prompt: Mitte kunagi generate: Loo - invited_by: 'Teid kutsus:' + invited_by: 'Sind kutsus:' max_uses: one: 1 kasutus other: "%{count} kasutust" @@ -1332,13 +1332,13 @@ et: title: Uus jälgija follow_request: action: Halda jälgimistaotlusi - body: "%{name} soovib Teid jälgida" + body: "%{name} soovib sind jälgida" subject: 'Ootav jälgija: %{name}' title: Uus jälgimistaotlus mention: action: Vasta - body: "%{name} mainis Teid:" - subject: "%{name} mainis Teid" + body: "%{name} mainis sind:" + subject: "%{name} mainis sind" title: Uus mainimine poll: subject: "%{name} küsitlus lõppes" @@ -1405,6 +1405,7 @@ et: confirm_remove_selected_followers: Oled kindel, et soovid eemaldada valitud jälgijad? confirm_remove_selected_follows: Oled kindel, et soovid eemaldada valitud jälgitavad? dormant: Seisev + follow_failure: Mõne valitud konto jälgimine polnud võimalik. follow_selected_followers: Valitud jälgijate jälgimine followers: Jälgijad following: Jälgib @@ -1444,6 +1445,7 @@ et: electron: Electron firefox: Firefox generic: Tundmatu veebilehitseja + huawei_browser: Huawei veebilehitseja ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ et: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Tundmatu veebilehitseja weibo: Weibo current_session: Praegune seanss description: "%{browser} platvormil %{platform}" @@ -1465,9 +1468,10 @@ et: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: tundmatu platvorm + unknown_platform: Tundmatu platvorm windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 0b2ab33d4d..39e0b26070 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1407,6 +1407,7 @@ eu: confirm_remove_selected_followers: Ziur al zaude hautatutako jarraitzaileak ezabatu nahi dituzula? confirm_remove_selected_follows: Ziur al zaude hautatutako jarraipenak ezabatu nahi dituzula? dormant: Ez aktiboa + follow_failure: Ezin izan dira aukeratutako kontu batzuk jarraitu. follow_selected_followers: Jarraitu hautatutako jarraitzaileak followers: Jarraitzaileak following: Jarraitzen @@ -1446,6 +1447,7 @@ eu: electron: Electron firefox: Firefox generic: Nabigatzaile ezezaguna + huawei_browser: Huawei nabigatzailea ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi nabigatzailea @@ -1455,6 +1457,7 @@ eu: qq: QQ nabigatzailea safari: Safari uc_browser: UC nabigatzailea + unknown_browser: Nabigatzaile ezezaguna weibo: Weibo current_session: Uneko saioa description: "%{browser} - %{platform}" @@ -1467,9 +1470,10 @@ eu: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: plataforma ezezaguna + unknown_platform: Plataforma ezezaguna windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/fa.yml b/config/locales/fa.yml index a418dc3776..0127d0e616 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1,7 +1,7 @@ --- fa: about: - about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستودون صاحب داده‌های خودتان باشید!' + about_mastodon_html: 'شبکه‌ی اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستودون صاحب داده‌های خودتان باشید!' contact_missing: تنظیم نشده contact_unavailable: موجود نیست hosted_on: ماستودون، میزبانی‌شده روی %{domain} @@ -91,6 +91,7 @@ fa: moderation: active: فعّال all: همه + disabled: غیرفعال pending: منتظر silenced: محدود suspended: تعلیق شده @@ -128,6 +129,7 @@ fa: search: جستجو search_same_email_domain: دیگر کاربران با دامنهٔ رایانامهٔ یکسان search_same_ip: دیگر کاربران با IP یکسان + security: امنیت security_measures: only_password: فقط گذرواژه password_and_2fa: گذرواژه و ۲عاملی @@ -201,6 +203,7 @@ fa: reject_user: رد کاربر remove_avatar_user: برداشتن تصویر نمایه reopen_report: بازگشایی گزارش + resend_user: ارسال مجدد رایانامه تایید reset_password_user: بازنشانی گذرواژه resolve_report: رفع گزارش sensitive_account: علامت‌گذاری رسانه در حسابتان به عنوان حساس @@ -215,6 +218,7 @@ fa: update_custom_emoji: به‌روز رسانی اموجی سفارشی update_domain_block: به‌روزرسانی مسدودسازی دامنه update_status: به‌روز رسانی وضعیت + update_user_role: به روزرسانی نقش actions: approve_appeal_html: "%{name} درخواست تجدیدنظر تصمیم مدیر را از %{target} پذیرفت" approve_user_html: "%{name} ثبت نام %{target} را تایید کرد" @@ -425,6 +429,7 @@ fa: title: سیاست‌های محتوا dashboard: instance_accounts_dimension: حساب‌های پیش‌تر پی‌گیری شده + instance_accounts_measure: حساب‌های ذخیره شده instance_followers_measure: پی‌گیرندگانمان در آن‌جا instance_follows_measure: پی‌گیرندگانشان در این‌جا instance_languages_dimension: زبان‌های برتر @@ -511,9 +516,11 @@ fa: assign_to_self: به عهدهٔ من بگذار assigned: مدیر عهده‌دار by_target_domain: دامنهٔ حساب گزارش‌شده + cancel: لغو category: دسته comment: none: هیچ + confirm: تأیید created_at: گزارش‌شده delete_and_resolve: حذف فرسته‌ها forwarded: هدایت شده @@ -549,6 +556,7 @@ fa: add_new: افزودن نقش categories: administration: مدیریت + devops: DevOps invites: دعوت‌ها moderation: نظارت special: ویژه @@ -1124,7 +1132,6 @@ fa: ios: آی‌اواس linux: لینوکس mac: مک - other: سیستم ناشناخته windows: ویندوز windows_mobile: ویندوز همراه windows_phone: تلفن ویندوزی diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 30d5f11791..a9554d0961 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -954,7 +954,7 @@ fi: body: Mastodonin ovat kääntäneet vapaaehtoiset. guide_link: https://crowdin.com/project/mastodon guide_link_text: Kaikki voivat osallistua. - sensitive_content: Arkaluontoista sisältöä + sensitive_content: Arkaluonteinen sisältö toot_layout: Viestin asettelu application_mailer: notification_preferences: Muuta sähköpostiasetuksia @@ -1022,7 +1022,7 @@ fi: status: account_status: Tilin tila confirming: Odotetaan sähköpostivahvistuksen valmistumista. - functional: Tilisi on täysin toimiva. + functional: Tilisi on täysin toiminnassa. pending: Hakemuksesi odottaa henkilökuntamme tarkastusta. Tämä voi kestää jonkin aikaa. Saat sähköpostiviestin, jos hakemuksesi on hyväksytty. redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}. view_strikes: Näytä tiliäsi koskevia aiempia varoituksia @@ -1405,6 +1405,7 @@ fi: confirm_remove_selected_followers: Haluatko varmasti poistaa valitut seuraajat? confirm_remove_selected_follows: Haluatko varmasti poistaa valitut seuraamiset? dormant: Horroksessa + follow_failure: Joitain valittuja tilejä ei voitu seurata. follow_selected_followers: Seuraa valittuja seuraajia followers: Seuraajat following: Seuratut @@ -1444,6 +1445,7 @@ fi: electron: Electron firefox: Firefox generic: Tuntematon selain + huawei_browser: Huawei-selain ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi -selain @@ -1453,6 +1455,7 @@ fi: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Tuntematon selain weibo: Weibo current_session: Nykyinen istunto description: "%{browser} alustalla %{platform}" @@ -1465,9 +1468,10 @@ fi: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: tuntematon alusta + unknown_platform: Tuntematon alusta windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/fo.yml b/config/locales/fo.yml index baebaae2f3..3199690c9a 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1405,6 +1405,7 @@ fo: confirm_remove_selected_followers: Vil tú veruliga strika valdu fylgjararnar? confirm_remove_selected_follows: Vil tú veruliga strika valdu fylgingarnar? dormant: Í dvala + follow_failure: Tað bar ikki til at fylgja øllum valdu kontunum. follow_selected_followers: Fylg valdu fylgjarum followers: Fylgjarar following: Fylgi @@ -1444,6 +1445,7 @@ fo: electron: Electron firefox: Firefox generic: Ókendur kagi + huawei_browser: Huawei kagi ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ fo: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Ókendur kagi weibo: Weibo current_session: Verandi seta description: "%{browser} á %{platform}" @@ -1465,9 +1468,10 @@ fo: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: ókendur pallur + unknown_platform: Ókendur pallur windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 922cea0dca..400ed4b11e 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -1405,6 +1405,7 @@ fr-QC: confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ? confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ? dormant: Dormant + follow_failure: Impossibilité de suivre certains des comptes sélectionnés. follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s followers: Abonné·e following: Abonnement @@ -1444,6 +1445,7 @@ fr-QC: electron: Electron firefox: Firefox generic: Navigateur inconnu + huawei_browser: Navigateur Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ fr-QC: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Navigateur inconnu weibo: Weibo current_session: Session courante description: "%{browser} sur %{platform}" @@ -1465,9 +1468,10 @@ fr-QC: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: système inconnu + unknown_platform: Plateforme inconnue windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c0d48df88f..048cbd5270 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1405,6 +1405,7 @@ fr: confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ? confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ? dormant: Dormant + follow_failure: Impossibilité de suivre certains des comptes sélectionnés. follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s followers: Abonné·e following: Abonnement @@ -1444,6 +1445,7 @@ fr: electron: Electron firefox: Firefox generic: Navigateur inconnu + huawei_browser: Navigateur Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ fr: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Navigateur inconnu weibo: Weibo current_session: Session courante description: "%{browser} sur %{platform}" @@ -1465,9 +1468,10 @@ fr: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: système inconnu + unknown_platform: Plateforme inconnue windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 2c1c8657ff..15f4bd88b7 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1405,6 +1405,7 @@ fy: confirm_remove_selected_followers: Binne jo wis dat jo de selektearre folgers net mear folgje wolle? confirm_remove_selected_follows: Binne jo wis dat jo de selektearre folge accounts net mear folgje wolle? dormant: Slommerjend + follow_failure: Kin guon fan de selektearre accounts net folgje. follow_selected_followers: Selektearre folgers folgje followers: Folgers following: Folgjend @@ -1444,6 +1445,7 @@ fy: electron: Electron firefox: Firefox generic: Unbekende browser + huawei_browser: Huawei-browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ fy: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Unbekende browser weibo: Weibo current_session: Aktuele sesje description: "%{browser} op %{platform}" @@ -1465,9 +1468,10 @@ fy: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: ûnbekend platfoarm + unknown_platform: Unbekend platfoarm windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 4aa2ae98b9..f430379871 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -461,7 +461,6 @@ ga: ios: iOS linux: Linux mac: macOS - other: ardán anaithnid windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/gd.yml b/config/locales/gd.yml index b5347d91b4..fb3b8f8eea 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1503,7 +1503,6 @@ gd: ios: iOS linux: Linux mac: macOS - other: ùrlar nach aithne dhuinn windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 2c3af8f889..0eccaa9511 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1405,6 +1405,7 @@ gl: confirm_remove_selected_followers: Tes a certeza de querer deixar de seguir as seguidoras seleccionadas? confirm_remove_selected_follows: Tes a certeza de querer eliminar os seguimentos seleccionados? dormant: En repouso + follow_failure: Non puido seguir algunha das contas seleccionadas. follow_selected_followers: Seguir seguidoras seleccionadas followers: Seguidoras following: A Seguir @@ -1444,6 +1445,7 @@ gl: electron: Electron firefox: Firefox generic: Navegador descoñecido + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi @@ -1453,6 +1455,7 @@ gl: qq: Navegador QQ safari: Safari uc_browser: Navegador QQ + unknown_browser: Navegador descoñecido weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1465,9 +1468,10 @@ gl: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: plataforma descoñecida + unknown_platform: Plataforma descoñecida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/he.yml b/config/locales/he.yml index a4af50b533..aff0e7c6ac 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1457,6 +1457,7 @@ he: confirm_remove_selected_followers: האם את/ה בטוח/ה שברצונך להסיר את העוקבים שסומנו? confirm_remove_selected_follows: האם את/ה בטוח/ה שברצונך להסיר את הנעקבים שסומנו? dormant: רדומים + follow_failure: נכשלה העקיבה אחרי חלק מהחשבונות שבחרת. follow_selected_followers: עקוב אחר הנעקבים שנבחרו followers: עוקבים following: נעקבים @@ -1496,6 +1497,7 @@ he: electron: אלקטרון firefox: פיירפוקס generic: דפדפן לא ידוע + huawei_browser: דפדפן וואווי ie: אינטרנט אקספלורר micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1505,6 +1507,7 @@ he: qq: דפדפן QQ safari: ספארי uc_browser: דפדפן UC + unknown_browser: דפדפן לא מזוהה weibo: Weibo current_session: חיבור נוכחי description: "%{browser} על %{platform}" @@ -1517,9 +1520,10 @@ he: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: מערכת הפעלה KaiOS linux: לינוקס mac: macOS - other: סביבה לא ידועה + unknown_platform: פלטפורמה לא מזוהה windows: חלונות windows_mobile: חלונות מובייל windows_phone: טלפון חלונות diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 50fae82bd8..228bd16593 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -8,3 +8,12 @@ hi: '410': The page you were looking for doesn't exist here anymore. '429': Too many requests '503': The page could not be served due to a temporary server failure. + relationships: + follow_failure: चुने हुए अकाउंट्स में से कुछ को फ़ॉलो नहीं किया जा सकता + sessions: + browsers: + huawei_browser: हुआवे ब्राउज़र + unknown_browser: अनजान ब्राउज़र + platforms: + kai_os: काइ ओएस + unknown_platform: अनजान प्लेटफॉर्म diff --git a/config/locales/hr.yml b/config/locales/hr.yml index e9d414ef59..94cfb82aec 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -165,8 +165,6 @@ hr: remote_follow: missing_resource: Nije moguće pronaći traženi URL preusmjeravanja za Vaš račun sessions: - platforms: - other: nepoznata platforma revoke: Opozovi revoke_success: Sesija je uspješno opozvana title: Sesije diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 2887b4a69a..6c9d869e17 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1405,6 +1405,7 @@ hu: confirm_remove_selected_followers: Biztos, hogy el szeretnéd távolítani a kiválasztott követőket? confirm_remove_selected_follows: Biztos, hogy el szeretnéd távolítani a kiválasztott követéseket? dormant: Elhagyott + follow_failure: Nem sikerült bekövetni néhányat a kiválasztott fiókok közül. follow_selected_followers: Kiválasztott követők bekövetése followers: Követők following: Követve @@ -1444,6 +1445,7 @@ hu: electron: Electron firefox: Firefox generic: Ismeretlen böngésző + huawei_browser: Huawei Böngésző ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Böngésző @@ -1453,6 +1455,7 @@ hu: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Ismeretlen böngésző weibo: Weibo current_session: Jelenlegi munkamenet description: "%{browser} az alábbi platformon: %{platform}" @@ -1465,9 +1468,10 @@ hu: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: ismeretlen platform + unknown_platform: Ismeretlen platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 158402ce81..7a1b33c709 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -756,7 +756,6 @@ hy: ios: iOS linux: Լինուքս mac: macOS - other: անհայտ հարթակ windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/id.yml b/config/locales/id.yml index 0342c7bd90..d6672e96da 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1393,7 +1393,6 @@ id: ios: iOS linux: Linux mac: Mac - other: platform yang tidak diketahui windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/io.yml b/config/locales/io.yml index b557788297..ab37c13c2a 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1376,7 +1376,6 @@ io: ios: iOS linux: Linux mac: macOS - other: nesavata platformo windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/is.yml b/config/locales/is.yml index 2ba3d3108c..75fff84417 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1405,6 +1405,7 @@ is: confirm_remove_selected_followers: Ertu viss um að þú viljir fjarlægja valda fylgjendur? confirm_remove_selected_follows: Ertu viss um að þú viljir fjarlægja valið sem fylgst er með? dormant: Sofandi + follow_failure: Gat ekki fylgst með sumum af völdu aðgöngunum. follow_selected_followers: Fylgjast með völdum fylgjendum followers: Fylgjendur following: Fylgist með @@ -1444,6 +1445,7 @@ is: electron: Electron firefox: Firefox generic: Óþekktur vafri + huawei_browser: Huawei-vafri ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi vafri @@ -1453,6 +1455,7 @@ is: qq: QQ vafri safari: Safari uc_browser: UC-vafrinn + unknown_browser: Óþekktur vafri weibo: Weibo current_session: Núverandi seta description: "%{browser} á %{platform}" @@ -1465,9 +1468,10 @@ is: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: óþekktu stýrikerfi + unknown_platform: Óþekkt stýrikerfi windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/it.yml b/config/locales/it.yml index ce3fd34b7e..694f4e8061 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1407,6 +1407,7 @@ it: confirm_remove_selected_followers: Sei sicuro di voler rimuovere i follower selezionati? confirm_remove_selected_follows: Sei sicuro di voler rimuovere i follow selezionati? dormant: Dormiente + follow_failure: Impossibile seguire alcuni degli account selezionati. follow_selected_followers: Segui i seguaci selezionati followers: Seguaci following: Seguiti @@ -1446,6 +1447,7 @@ it: electron: Electron firefox: Firefox generic: Browser sconosciuto + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1455,6 +1457,7 @@ it: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Browser sconosciuto weibo: Weibo current_session: Sessione corrente description: "%{browser} su %{platform}" @@ -1467,9 +1470,10 @@ it: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: piattaforma sconosciuta + unknown_platform: Piattaforma sconosciuta windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 6743d83883..5d0b274111 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -569,7 +569,7 @@ ja: other_description_html: アカウントの動作を制御するためのオプションや、報告されたアカウントへの通信をカスタマイズするためのオプションを確認してください。 resolve_description_html: 報告されたアカウントに対していかなる措置も取られず、ストライクも記録されず、報告は終了します。 silence_description_html: このアカウントは、すでにフォローしている人、または手動で検索した人にしか見えないため、リーチが極端に制限されます。いつでも元に戻すことができます。このアカウントに対するすべての通報をクローズします。 - suspend_description_html: アカウントとそのすべての内容にアクセスできなくなり、最終的に削除され、それとやり取りは不可能になります。 30日以内にリバーシブル。このアカウントに対するすべての通報をクローズします。 + suspend_description_html: アカウントとそのすべての内容にアクセスできなくなり、最終的に削除され、やり取りは不可能になります。 30日以内であれば元に戻すことができます。このアカウントに対するすべての通報をクローズします。 actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されますがスパムカテゴリが選択されている場合を除きます。 actions_description_remote_html: この通報を解決するためのアクションを選択してください。これはあなたのサーバーがこのリモートアカウントと通信し、そのコンテンツを処理する時のみ影響します。 add_to_report: 通報にさらに追加 @@ -1139,7 +1139,7 @@ ja: filters: contexts: account: プロフィール - home: ホームタイムライン + home: ホームおよびリスト notifications: 通知 public: 公開タイムライン thread: 会話 @@ -1379,6 +1379,7 @@ ja: confirm_remove_selected_followers: 選択したフォロワーを削除してもよろしいですか? confirm_remove_selected_follows: 選択したフォローを削除してもよろしいですか? dormant: 非アクティブ + follow_failure: 選択したアカウントの一部をフォローできませんでした。 follow_selected_followers: 選択したフォロワーをフォロー followers: フォロワー following: フォロー中 @@ -1418,6 +1419,7 @@ ja: electron: Electron firefox: Firefox generic: 不明なブラウザ + huawei_browser: Huaweiブラウザ ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1427,6 +1429,7 @@ ja: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: 不明なブラウザ weibo: Weibo current_session: 現在のセッション description: "%{platform}上の%{browser}" @@ -1439,9 +1442,10 @@ ja: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: 不明なプラットフォーム + unknown_platform: 不明なプラットフォーム windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ka.yml b/config/locales/ka.yml index dcc7e6580e..80dc2b9f57 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -421,7 +421,6 @@ ka: ios: აი-ოსი linux: ლინუქსი mac: მაკი - other: ამოუცნობი პლატფორმა windows: ვინდოუსი windows_mobile: ვინდოუს მობაილი windows_phone: ვინდოუს ფოუნი diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 085a8958a9..ffd79e76f8 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -667,7 +667,6 @@ kab: ios: iOS linux: Linux mac: macOS - other: anagraw arussin windows: Windows windows_mobile: Windows Mobile windows_phone: Tiliγri Windows Phone diff --git a/config/locales/kk.yml b/config/locales/kk.yml index c7bdae1772..d250a30a89 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -644,7 +644,6 @@ kk: ios: iОS linux: Lіnux mac: Mаc - other: белгісіз платформа windows: Windоws windows_mobile: Windows Mоbile windows_phone: Windоws Phone diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 057e57068f..96d73af86c 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1065,7 +1065,7 @@ ko: email_contact_html: 아직 도착하지 않았다면, %{email}에 메일을 보내 도움을 요청할 수 있습니다 email_reconfirmation_html: 아직 확인 메일이 도착하지 않은 경우, 다시 요청할 수 있습니다 irreversible: 계정을 복구하거나 다시 사용할 수 없게 됩니다 - more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요. + more_details_html: 더 자세한 정보는, 개인정보처리방침을 참고하세요. username_available: 이 사용자명을 다시 쓸 수 있게 됩니다. username_unavailable: 이 사용자명은 앞으로도 쓸 수 없는 채로 남게 됩니다. disputes: @@ -1137,7 +1137,7 @@ ko: add_new: 추가 errors: limit: 추천 해시태그 최대 개수를 초과합니다 - hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다." + hint_html: "추천 해시태그가 무엇일까요? 해시태그는 공개 프로필에 눈에 잘 띄게 표시되며, 사람들은 해당 해시태그로 내 공개 글을 검색할 수 있습니다. 창작물이나 장기 프로젝트를 추적하는 데 유용한 도구입니다." filters: contexts: account: 프로필 @@ -1370,7 +1370,7 @@ ko: posting_defaults: 게시물 기본설정 public_timelines: 공개 타임라인 privacy_policy: - title: 개인정보 정책 + title: 개인정보처리방침 reactions: errors: limit_reached: 리액션 갯수 제한에 도달했습니다 @@ -1381,6 +1381,7 @@ ko: confirm_remove_selected_followers: 정말로 선택된 팔로워들을 삭제하시겠습니까? confirm_remove_selected_follows: 정말로 선택된 팔로우를 끊으시겠습니까? dormant: 휴면 + follow_failure: 선택한 계정 중 몇몇은 팔로우 할 수 없었습니다. follow_selected_followers: 선택한 팔로워들을 팔로우 followers: 팔로워 following: 팔로잉 @@ -1420,6 +1421,7 @@ ko: electron: 일렉트론 firefox: 파이어폭스 generic: 알 수 없는 브라우저 + huawei_browser: 화웨이 브라우저 ie: 인터넷 익스플로러 micro_messenger: 마이크로메신저 nokia: Nokia S40 Ovi 브라우저 @@ -1429,6 +1431,7 @@ ko: qq: QQ 브라우저 safari: 사파리 uc_browser: UC 브라우저 + unknown_browser: 알 수 없는 브라우저 weibo: 웨이보 current_session: 현재 세션 description: "%{platform}의 %{browser}" @@ -1441,9 +1444,10 @@ ko: chrome_os: 크롬OS firefox_os: 파이어폭스OS ios: iOS + kai_os: KaiOS linux: 리눅스 mac: macOS - other: 알 수 없는 플랫폼 + unknown_platform: 알 수 없는 플랫폼 windows: 윈도우 windows_mobile: 윈도우 모바일 windows_phone: 윈도우 폰 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index fa291b5c7f..534eacdd66 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1421,7 +1421,6 @@ ku: ios: iOS linux: Linux mac: macOS - other: platforma nenas windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/lt.yml b/config/locales/lt.yml index b6dd360dbe..5139c7c480 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -433,8 +433,6 @@ lt: current_session: Dabartinė sesija description: "%{browser} ant %{platform}" explanation: Čia rodomos web naršyklės prijungtos prie Jūsų Mastodon paskyros. - platforms: - other: nežinoma platforma revoke: Atšaukti revoke_success: Sesija sėkmingai atšaukta title: Sesijos diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 1c5eb356d4..fbe0ccc727 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1351,7 +1351,7 @@ lv: favourite: body: 'Tavu ziņu izlasei pievienoja %{name}:' subject: "%{name} pievienoja tavu ziņu izlasei" - title: Jauns izcēlums + title: Jauna izlase follow: body: "%{name} tagad tev seko!" subject: "%{name} tagad tev seko" @@ -1431,6 +1431,7 @@ lv: confirm_remove_selected_followers: Vai tiešām vēlies noņemt atlasītos sekotājus? confirm_remove_selected_follows: Vai tiešām vēlies noņemt atlasītos sekojumus? dormant: Snaudošie + follow_failure: Nevarēja sekot dažiem atlasītajiem kontiem. follow_selected_followers: Sekot atlasītajiem sekotājiem followers: Sekotāji following: Seko @@ -1470,6 +1471,7 @@ lv: electron: Electron firefox: Firefox generic: Nezināms pārlūks + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1479,6 +1481,7 @@ lv: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Nezināms Pārlūks weibo: Weibo current_session: Pašreizējā sesija description: "%{browser} uz %{platform}" @@ -1491,9 +1494,10 @@ lv: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: nezināma platforma + unknown_platform: Nezināma Platforma windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 2bee9fee14..60db149e06 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -921,7 +921,6 @@ ms: android: Android ios: iOS linux: Linux - other: platform tidak dikenali title: Sesi settings: account: Akaun diff --git a/config/locales/my.yml b/config/locales/my.yml index a2aaeece03..ae3b941e02 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -2,6 +2,7 @@ my: about: about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။ + contact_unavailable: မရှိ hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon" title: အကြောင်း accounts: @@ -17,8 +18,12 @@ my: other: ပို့စ်တင်မယ် posts_tab_heading: ပို့စ်များ admin: + account_actions: + title: "%{acct} စိစစ်မှုလုပ်ဆောင်ရန်" account_moderation_notes: create: မှတ်စုမှထွက်ရန် + created_msg: စိစစ်ခြင်းမှတ်စုကို ဖန်တီးပြီးပါပြီ။ + destroyed_msg: စိစစ်ခြင်းမှတ်စုကို ဖျက်ပစ်လိုက်ပါပြီ။ accounts: add_email_domain_block: ဒိုမိန်းကိုပိတ်မည် approve: အတည်ပြုပါ @@ -44,6 +49,8 @@ my: custom: စိတ်ကြိုက် delete: အချက်အလက်များဖျက်ပါ deleted: ဖျက်ပြီးပါပြီ + disable: ရပ်တန့် + disable_sign_in_token_auth: အီးမေးတိုကင် အထောက်အထားပြခြင်းကို ပိတ်ပါ disable_two_factor_authentication: 2FA ကို ပိတ်ပါ display_name: ဖော်ပြမည့်အမည် domain: ဒိုမိန်း @@ -55,6 +62,8 @@ my: followers: စောင့်ကြည့်သူများ follows: စောင့်ကြည့်မယ် header: မျက်နှာဖုံးပုံ + inbox_url: Inbox URL + invite_request_text: ပါဝင်ရခြင်း အကြောင်းအရင်း invited_by: ဖိတ်ခေါ်ထားသည် ip: IP joined: စတင်ဝင်ရောက်သည့်နေ့ @@ -66,6 +75,7 @@ my: login_status: အကောင့်ဝင်ရောက်မှုအခြေအနေ media_attachments: မီဒီယာ ပူးတွဲချက်များ memorialize: အမှတ်တရအဖြစ် ပြောင်းပါ + memorialized_msg: "%{username} ကို အမှတ်တရအကောင့်အဖြစ် ပြောင်းလဲခဲ့သည်" moderation: active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း all: အားလုံး @@ -78,6 +88,7 @@ my: most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + no_role_assigned: တာဝန်ပေးအပ်ထားခြင်း မရှိပါ not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ perform_full_suspension: ရပ်ဆိုင်းရန် promote: အထောက်အကူ @@ -86,6 +97,8 @@ my: redownload: ပရိုဖိုင်ကို ပြန်လည်စတင်ရန် redownloaded_msg: မူလမှစ၍ %{username} ၏ ပရိုဖိုင်ကို ပြန်လည်စတင်ပြီးပါပြီ reject: ဖယ်ရှားပါ + rejected_msg: "%{username} ၏ အကောင့်ဖွင့်အက်ပလီကေးရှင်းကို ဖယ်ရှားလိုက်ပါပြီ" + remote_suspension_irreversible: ဤအကောင့်၏အချက်အလက်ကို လုံးဝ ဖျက်လိုက်ပါပြီ။ remove_avatar: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ remove_header: မျက်နှာဖုံးပုံ ဖယ်ရှားရန် removed_avatar_msg: "%{username} ၏ ကိုယ်စားပြုရုပ်ပုံအား ဖယ်ရှားပြီးပါပြီ" @@ -98,11 +111,14 @@ my: resubscribe: ပြန်လည်စာရင်းသွင်းပါ role: အခန်းကဏ္ဍ search: ရှာရန် + search_same_email_domain: အီးမေးလ်ဒိုမိန်းတူညီသည့် အခြားအသုံးပြုသူများ search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ security: လုံခြုံရေး security_measures: only_password: စကားဝှက်ဖြင့်သာ password_and_2fa: စကားဝှက်နှင့် 2FA + sensitized: သတိထားရသည်ဟု အမှတ်အသားပြုထားပါ + shared_inbox_url: inbox URL ကို မျှဝေခဲ့သည် show: created_reports: ဆောင်ရွက်ခဲ့ပြီးသောအစီရင်ခံစာများ targeted_reports: အခြားသူများမှဆောင်ရွက်ခဲ့သော အစီရင်ခံစာများ @@ -115,10 +131,12 @@ my: title: အကောင့်များ unblock_email: အီးမေးလ်ကိုပြန်ဖွင့်မည် unblocked_email_msg: " %{username} အီးမေးလ်ကိုပြန်ဖွင့်လိုက်ပါပြီ" + unconfirmed_email: အတည်မပြုရသေးသော အီးမေးလ် unsubscribe: စာရင်းမှထွက်ရန် unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ" username: အသုံးပြုသူအမည် view_domain: ဒိုမိန်းအတွက် အကျဉ်းချုပ်ကို ကြည့်ပါ + warn: သတိပေးရန် web: ဝဘ် whitelisted: ဖက်ဒီကို ခွင့်ပြုခဲ့သည် action_logs: @@ -144,9 +162,11 @@ my: destroy_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖျက်ရန် destroy_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန် destroy_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန် + destroy_instance: ဒိုမိန်းကို ဖယ်ရှားပါ destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ destroy_status: Post ကို ဖျက်ပါ destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ + destroy_user_role: အခန်းကဏ္ဍကို ဖျက်ပါ disable_2fa_user: 2FA ကို ပိတ်ပါ disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ disable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ပိတ်ထားသည် @@ -174,6 +194,7 @@ my: update_status: ပို့စ်ပြင်ဆင်ရန် 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} ၏ အီးမေးလ်လိပ်စာကို ပြောင်းခဲ့သည်" @@ -187,6 +208,7 @@ my: create_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} အခန်းကဏ္ဍကို ဖန်တီးပြီးပါပြီ" demote_user_html: "%{name} က အသုံးပြုသူ %{target} ကို ဖြုတ်ပြီးပါပြီ" destroy_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ဖျက်လိုက်သည်" @@ -198,6 +220,7 @@ my: destroy_instance_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}" @@ -242,6 +265,8 @@ my: create: ကြေညာချက်ဖန်တီးပါ title: ကြေညာချက်အသစ် publish: ပို့စ်တင်မည် + published_msg: ကြေညာချက်တင်ပြီးပါပြီ။ + scheduled_for: "%{time} အတွက် စီစဉ်ထားသည်" title: ကြေညာချက်များ unpublish: ပြန်ဖြုတ်ပါ unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ @@ -282,6 +307,10 @@ my: new_users: အသုံးပြုသူအသစ်များ pending_appeals_html: other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း" + pending_reports_html: + other: "%{count} မှတ်တမ်းဆောင်ရွက်ဆဲ" + pending_tags_html: + other: "%{count} hashtag ဆောင်ရွက်ဆဲ" pending_users_html: other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ" software: ဆော့ဖ်ဝဲလ် @@ -298,6 +327,7 @@ my: domain_allows: add_new: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုရန် created_msg: ဒိုမိန်းကို ဖက်ဒီအတွက် ခွင့်ပြုပြီးပါပြီ + destroyed_msg: ဒိုမိန်းအား ဖက်ဒီမှ ခွင့်မပြုပါ export: ထုတ်ယူခြင်း import: ထည့်သွင်းခြင်း undo: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်မပြုပါ @@ -319,11 +349,17 @@ my: private_comment: သီးသန့်မှတ်ချက် private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။ public_comment: အများမြင်မှတ်ချက် + public_comment_hint: ဒိုမိန်းကန့်သတ်ချက်များစာရင်းကို ကြော်ငြာထားပါက အများသူငှာအတွက် ဤဒိုမိန်းကန့်သတ်ချက်နှင့်ပတ်သက်၍ ရေးသားပေးထားရန်။ reject_media: မီဒီယာဖိုင်များကို ဖယ်ရှားပါ + reject_media_hint: စက်တွင်းသိမ်းဆည်းထားသည့် မီဒီယာဖိုင်များကို ဖယ်ရှားပြီး ဒေါင်းလုဒ်လုပ်ခွင့် မရှိပါ။ ဆိုင်းငံ့ခြင်းများအတွက် မသက်ဆိုင်ပါ။ + reject_reports: မှတ်တမ်းများ ဖယ်ရှားရန် + reject_reports_hint: ဤဒိုမိန်းမှလာသော မှတ်တမ်းအားလုံးကို လျစ်လျူရှုပါ။ ဆိုင်းငံ့ခြင်းများအတွက် မသက်ဆိုင်ပါ။ undo: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြန်ဖျက်ရန် view: ဒိုမိန်းပိတ်ပင်ခြင်းကို ကြည့်ရန် email_domain_blocks: add_new: အသစ် ထည့်ပါ + attempts_over_week: + other: ပြီးခဲ့သည့် ရက်သတ္တပတ်အတွင်း %{count} ကြိုးပမ်းမှု created_msg: အီးမေးလ်ဒိုမိန်းကို ပိတ်ပင်နိုင်ခဲ့ပါသည် delete: ဖျက်ပါ dns: @@ -351,7 +387,13 @@ my: follow_recommendations: language: ဘာသာစကားအတွက် status: အခြေအနေ + title: အကြံပြုချက်များကို စောင့်ကြည့်ပါ + unsuppress: အကြံပြုချက်စောင့်ကြည့်ခြင်းအား ပြန်လည်ရယူပါ instances: + availability: + failures_recorded: + other: "%{count} ရက်နေ့တွင် ကြိုးစားမှု မအောင်မြင်ပါ။" + title: ရရှိနိုင်မှု back_to_all: အားလုံး back_to_limited: ကန့်သတ်ထားသည် back_to_warning: သတိပေးချက် @@ -365,6 +407,7 @@ my: silence: ကန့်သတ် suspend: ရပ်ဆိုင်းပါ policy: မူဝါဒ + title: အကြောင်းအရာမူဝါဒများ dashboard: instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ instance_accounts_measure: သိမ်းဆည်းထားသော အကောင့်များ @@ -372,10 +415,14 @@ my: instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ instance_media_attachments_measure: သိမ်းဆည်းထားသော မီဒီယာပူးတွဲဖိုင်များ + instance_reports_measure: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ" instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ delivery: all: အားလုံး + restart: ပေးပို့မှုကို ပြန်လည်စတင်ရန် + stop: ပေးပို့မှုကို ရပ်ရန် unavailable: မရရှိနိုင်ပါ + empty: ဒိုမိန်းများ မတွေ့ပါ။ moderation: all: အားလုံး limited: ကန့်သတ်ထားသော @@ -389,10 +436,13 @@ my: total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ" total_storage: မီဒီယာ ပူးတွဲချက်များ invites: + deactivate_all: အားလုံးပယ်ဖျက်ရန် filter: all: အားလုံး available: ရရှိနိုင်သော + expired: သက်တမ်းကုန်သွားပါပြီ title: စစ်ထုတ်ခြင်း + title: ဖိတ်ခေါ်ခြင်း ip_blocks: add_new: စည်းမျဉ်းဖန်တီးပါ created_msg: IP စည်းမျဉ်းအသစ် ထည့်သွင်းပြီးပါပြီ @@ -411,21 +461,32 @@ my: relationships: title: "%{acct} နှင့် ပတ်သက်မှု" relays: + add_new: relay အသစ်ထည့်ပါ delete: ဖျက်ပါ disable: ပိတ်ပါ disabled: ပိတ်ထားသည် enable: ဖွင့်ပါ enabled: ဖွင့်ထားသည် + inbox_url: ထပ်ဆင့်ပေးပို့မည့် URL + pending: ထပ်ဆင့်အတည်ပြုချက်ကို စောင့်ဆိုင်းနေခြင်း save_and_enable: သိမ်းပြီး ဖွင့်ရန် + setup: ထပ်ဆင့်ချိတ်ဆက်မှုစနစ် ထည့်သွင်းပါ + signatures_not_enabled: လုံခြုံရေးမုဒ် သို့မဟုတ် ကန့်သတ်ဖက်ဒီမုဒ်ကို ဖွင့်ထားစဉ် ထပ်ဆင့်ပို့ထားမှုများမှာ မှန်ကန်စွာ အလုပ်မလုပ်နိုင်တော့ပါ status: အခြေအနေ + title: ထပ်ဆင့်ပေးပို့ခြင်းများ + report_notes: + created_msg: မှတ်တမ်းမှတ်စုကို ဖန်တီးပြီးပါပြီ။ + destroyed_msg: မှတ်တမ်းမှတ်စုကို ဖျက်ပြီးပါပြီ။ reports: account: notes: other: "%{count} မှတ်စု" action_log: မှတ်တမ်းများစစ်ဆေးခြင်း + action_taken_by: ဆောင်ရွက်ခဲ့ပါသည် are_you_sure: သေချာပါသလား။ assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန် assigned: စိစစ်သူကို တာဝန်ပေးရန် + by_target_domain: တိုင်ကြားထားသော အကောင့်၏ ဒိုမိန်း cancel: ပယ်ဖျက်မည် category: အမျိုးအစား comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -" @@ -435,6 +496,7 @@ my: forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်" mark_as_resolved: ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ + mark_as_sensitive: သတိထားရသည်ဟု အမှတ်အသားပြုပါ mark_as_unresolved: မဖြေရှင်းရသေးကြောင်း အမှတ်အသားပြုပါ no_one_assigned: တစ်ယောက်မျှမရှိပါ notes: @@ -447,6 +509,7 @@ my: reopen: အစီရင်ခံစာပြန်ဖွင့်ရန် report: "#%{id} အစီရင်ခံရန်" resolved: ဖြေရှင်းပြီးပါပြီ + resolved_msg: မှတ်တမ်းကို ဖြေရှင်းပြီးပါပြီ။ skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန် status: အခြေအနေ summary: @@ -457,7 +520,10 @@ my: suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ - actions: suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း" + close_report: 'တိုင်ကြားစာ #%{id} ကို ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ' delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်" + preview_preamble_html: "@%{acct} သည် အောက်ပါအကြောင်းအရာများကြောင့် သတိပေးချက်ကို လက်ခံရရှိပါမည် -" + title: မှတ်တမ်းများ unassign: တာဝန်မှဖြုတ်ရန် unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action} unresolved: မဖြေရှင်းရသေးပါ @@ -480,7 +546,9 @@ my: other: "%{count} ခွင့်ပြုချက်" privileges: administrator: စီမံသူ + administrator_description: ဤခွင့်ပြုချက် အသုံးပြုသူများအနေဖြင့် ခွင့်ပြုချက်တိုင်းကို ကျော်သွားနိုင်ပါမည် delete_user_data: အသုံးပြုသူ၏အချက်အလက်ကို ဖျက်ပါ + delete_user_data_description: အခြားအသုံးပြုသူများ၏ အချက်အလက်များကို နှောင့်နှေးခြင်းမရှိဘဲ အသုံးပြုသူများအား ဖျက်ခွင့်ပြုသည် invite_users: အသုံးပြုသူများကို ဖိတ်ခေါ်ရန် invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန် manage_announcements: ကြေညာချက်များကို စီမံပါ @@ -488,63 +556,103 @@ my: manage_appeals: အယူခံဝင်ထားခြင်းများကို စီမံပါ manage_appeals_description: စိစစ်အရေးယူမှုများအပေါ် အယူခံဝင်မှုများ ပြန်လည်သုံးသပ်ရန်အတွက် အသုံးပြုသူများအား ခွင့်ပြုရန် manage_blocks: ပိတ်ပင်ထားမှုများကို စီမံပါ + manage_blocks_description: အသုံးပြုသူများအား အီးမေးလ်ဝန်ဆောင်မှုပေးသူများနှင့် IP လိပ်စာများကို ပိတ်ဆို့ရန် ခွင့်ပြုသည် manage_custom_emojis: စိတ်ကြိုက်အီမိုဂျီများကို ပြင်ဆင်ရန် manage_custom_emojis_description: အသုံးပြုသူများအား ဆာဗာပေါ်တွင် စိတ်ကြိုက်အီမိုဂျီများကို စီမံခန့်ခွဲရန် ခွင့်ပြုသည်။ manage_federation: ဖက်ဒီကို စီမံပါ manage_federation_description: အသုံးပြုသူများအား အခြားဒိုမိန်းများနှင့် ပိတ်ပင်ခြင်း၊ ဖက်ဒီခွင့်ပြုခြင်းနှင့် ပေးပို့နိုင်မှုကို ထိန်းချုပ်ခြင်းတို့ကို ခွင့်ပြုသည်။ manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန် + manage_invites_description: အသုံးပြုသူများအား ဖိတ်ခေါ်ထားသည့်လင့်များကို ရှာဖွေကြည့်ရှုပြီး ပိတ်ရန် ခွင့်ပြုသည် manage_reports: အစီရင်ခံစာများကို စီမံပါ manage_roles: အခန်းကဏ္ဍများကို စီမံပါ + manage_roles_description: အသုံးပြုသူများအား ၎င်းတို့၏အောက်တွင်ရှိသော အခန်းကဏ္ဍများကို စီမံခန့်ခွဲရန်နှင့် သတ်မှတ်ရန် ခွင့်ပြုထားသည် manage_rules: စည်းမျဉ်းများကို စီမံပါ + manage_rules_description: အသုံးပြုသူများအား ဆာဗာစည်းမျဉ်းများကို ပြောင်းလဲခွင့် ပြုထားသည် manage_settings: သတ်မှတ်ချက်များကို စီမံပါ manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန် + manage_taxonomies_description: ခေတ်စားနေသော အကြောင်းအရာများကို ပြန်လည်သုံးသပ်ရန်နှင့် hashtag သတ်မှတ်ချက်များကို ပြင်ဆင်ရန်အတွက် အသုံးပြုသူများကို ခွင့်ပြုသည် manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ + manage_user_access_description: အသုံးပြုသူများကို အခြားအသုံးပြုသူများ၏ နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ရန်၊ ၎င်းတို့၏ အီးမေးလ်လိပ်စာကို ပြောင်းလဲရန်နှင့် စကားဝှက်ကို ပြန်လည်သတ်မှတ်ရန် ခွင့်ပြုသည် manage_users: အသုံးပြုသူများကို စီမံပါ + manage_webhooks: Webhooks ကို စီမံပါ + manage_webhooks_description: စီမံခန့်ခွဲရေးဆိုင်ရာ ဖြစ်ရပ်များအတွက် အသုံးပြုသူများအား webhook စနစ်ထည့်သွင်းရန် ခွင့်ပြုထားသည် + view_audit_log_description: အသုံးပြုသူများကို ဆာဗာပေါ်တွင် စီမံခန့်ခွဲရေးဆိုင်ရာ လုပ်ဆောင်ချက်မှတ်တမ်းကို ကြည့်ရှုခွင့်ပြုသည်။ view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန် view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည် view_devops: DevOps + view_devops_description: အသုံးပြုသူများကို Sidekiq နှင့် pgHero ဒက်ရှ်ဘုတ်မြင်ကွင်းများသို့ ဝင်ရောက်ခွင့်ပြုသည် title: အခန်းကဏ္ဍများ rules: + add_new: စည်းမျဉ်းထည့်ပါ delete: ဖျက်ပါ + edit: စည်းမျဉ်းကို ပြင်ဆင်မည် title: ဆာဗာစည်းမျဉ်းများ settings: about: manage_rules: ဆာဗာစည်းမျဉ်းများကို စီမံရန် title: အကြောင်း appearance: + preamble: Mastodon ၏ ဝဘ်ပုံစံကို စိတ်ကြိုက်ပြင်ဆင်ပါ။ title: ပုံပန်းသဏ္ဌာန် + default_noindex: + desc_html: ဤသတ်မှတ်ချက်ကို ကိုယ်တိုင်မပြောင်းရသေးသော အသုံးပြုသူအားလုံးအပေါ် သက်ရောက်မှုရှိသည် discovery: + follow_recommendations: အကြံပြုချက်များကို စောင့်ကြည့်ပါ profile_directory: ပရိုဖိုင်လမ်းညွှန် + public_timelines: အများမြင်စာမျက်နှာ + title: ရှာဖွေတွေ့ရှိမှု + trends: လက်ရှိခေတ်စားမှုများ domain_blocks: all: လူတိုင်း disabled: မည်သူ့ကိုမျှ users: အကောင့်ဝင်ထားသော ပြည်တွင်းအသုံးပြုသူများအတွက် + registrations: + title: စာရင်းသွင်းထားခြင်းများ registrations_mode: modes: + approved: အကောင့်ဖွင့်ရန်အတွက် အတည်ပြုချက် လိုအပ်ပါသည် + none: မည်သူမျှ အကောင့်ဖွင့်၍မရပါ open: မည်သူမဆို အကောင့်ဖွင့်နိုင်ပါသည် title: ဆာဗာသတ်မှတ်ချက်များ site_uploads: delete: တင်ထားသောဖိုင်ဖျက်ရန် + destroyed_msg: ဆိုက်အပ်လုဒ်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ။ statuses: account: ရေးသားသူ application: အက်ပလီကေးရှင်း back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန် + batch: + remove_from_report: တိုင်ကြားစာမှ ဖယ်ရှားပါ + report: တိုင်ကြားစာ deleted: ဖျက်ပြီးပါပြီ favourites: အကြိုက်ဆုံးများ + history: ဗားရှင်းမှတ်တမ်း + in_reply_to: ထံ အကြောင်းပြန်ကြားခြင်း language: ဘာသာစကား media: title: မီဒီယာ + metadata: Metadata + no_status_selected: မည်သည့်ပို့စ်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ open: ပို့စ်ဖွင့်ရန် original_status: မူရင်းပို့စ် + reblogs: Reblog များ + status_changed: ပို့စ်ပြောင်းပြီးပါပြီ title: အကောင့်ပို့စ်များ + trending: လက်ရှိခေတ်စားနေခြင်း with_media: မီဒီယာနှင့်အတူ strikes: actions: delete_statuses: "%{name} မှ %{target} ၏ ပို့စ်များကို ဖျက်ခဲ့သည်" + mark_statuses_as_sensitive: "%{name} က %{target} ၏ ပို့စ်များကို သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုထားသည်" none: "%{name} မှ %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်" + sensitive: "%{name} က %{target} ၏ အကောင့်ကို သတိထားရသောအကောင့်အဖြစ် အမှတ်အသားပြုထားသည်" + silence: "%{name} က %{target} ၏ အကောင့်ကို ကန့်သတ်ထားသည်" + suspend: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်" system_checks: rules_check: action: ဆာဗာစည်းမျဉ်းများကို စီမံရန် + message_html: သင်သည် မည်သည့်ဆာဗာစည်းမျဉ်းများကိုမျှ မသတ်မှတ်ထားပါ။ + title: စီမံခန့်ခွဲခြင်း trends: allow: ခွင့်ပြု approved: အတည်ပြုပြီးပါပြီ @@ -552,52 +660,113 @@ my: links: allow: လင့်ခ်ကို ခွင့်ပြုရန် disallow: လင့်ခ်ကို ခွင့်မပြုရန် + title: လက်ရှိခေတ်စားနေသော လင့်များ + only_allowed: သာခွင့်ပြုသည် rejected: ဖယ်ရှားပြီးပါပြီ statuses: allow: ပို့စ်တင်ခွင့်ပြုရန် disallow: ပို့စ်ကို တင်ခွင့်မပြုရန် title: လက်ရှိခေတ်စားနေသော ပို့စ်များ tags: + current_score: "%{score} လက်ရှိရမှတ်" dashboard: tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ tag_servers_dimension: အသုံးများသည့်ဆာဗာများ tag_servers_measure: မတူညီသောဆာဗာများ tag_uses_measure: စုစုပေါင်းအသုံးပြုမှု listable: အကြံပြုနိုင်ပါသည် + not_listable: အကြံပြုမည်မဟုတ်ပါ + not_trendable: လက်ရှိခေတ်စားနေသာပို့စ်များအောက်တွင် ပေါ်လာမည်မဟုတ်ပါ not_usable: အသုံးမပြုနိုင်ပါ + title: လက်ရှိခေတ်စားနေသော hashtag များ + trending_rank: "#%{rank} ခေတ်စားနေခြင်း" usable: အသုံးပြုနိုင်သည် + usage_comparison: မနေ့က %{yesterday} နှင့် နှိုင်းယှဉ်လျှင် ယနေ့ %{today} ကြိမ် အသုံးပြုခဲ့သည် + used_by_over_week: + other: ပြီးခဲ့သည့် ရက်သတ္တပတ်အတွင်း လူ %{count} ဦး အသုံးပြုခဲ့သည်။ title: လက်ရှိခေတ်စားမှုများ trending: လက်ရှိခေတ်စားနေခြင်း warning_presets: add_new: အသစ်ထည့်ပါ delete: ဖျက်ပါ + edit_preset: ကြိုသတိပေးချက်ကို ပြင်ဆင်ပါ + empty: ကြိုသတိပေးချက်များကို မသတ်မှတ်ရသေးပါ။ + title: ကြိုသတိပေးချက်များကို စီမံပါ webhooks: + add_new: ဆုံးမှတ် ထည့်ပါ delete: ဖျက်ပါ disable: ပိတ်ပါ disabled: ပိတ်ထားသည် + edit: ဆုံးမှတ် ပြင်ဆင်ပါ enable: ဖွင့်ပါ enabled: လက်ရှိ events: ပွဲအစီအစဉ်များ + new: webhook အသစ် status: အခြေအနေ + title: Webhook များ + webhook: Webhook admin_mailer: new_appeal: actions: + delete_statuses: "၎င်းတို့၏ ပို့စ်များကို ဖျက်ရန်" + disable: "၎င်းတို့အကောင့်များအား ရပ်ထားရန်" + mark_statuses_as_sensitive: "၎င်းတို့၏ ပို့စ်များကို သတိထားရသော ပို့စ်များအဖြစ် အမှတ်အသားပြုရန်" none: သတိပေးချက် + sensitive: "၎င်းတို့၏ အကောင့်များကို သတိထားရသော အကောင့်များအဖြစ် အမှတ်အသားပြုရန်" + silence: "၎င်းတို့၏ ပို့စ်များကို ကန့်သတ်ရန်" + suspend: "၎င်းတို့၏ အကောင့်ကို ရပ်ဆိုင်းရန်" + new_pending_account: + body: အကောင့်သစ်၏အသေးစိတ်ကို အောက်တွင်ဖော်ပြထားသည်။ ၎င်းကို အတည်ပြုနိုင်သည် သို့မဟုတ် ငြင်းပယ်နိုင်သည်။ + subject: " (%{username}) %{instance} ပေါ်ရှိ ပြန်လည်သုံးသပ်ရမည့် အကောင့်သစ်" + new_report: + body: "%{reporter} က %{target} ကို တိုင်ကြားခဲ့သည်" + body_remote: "%{domain} မှ တစ်စုံတစ်ယောက်က %{target} ကို တိုင်ကြားခဲ့သည်" + new_trends: + body: အောက်ပါအရာများကို အများကိုမပြမီ ပြန်လည်သုံးသပ်ရန် လိုအပ်သည် - + new_trending_links: + title: လက်ရှိခေတ်စားနေသော လင့်များ + new_trending_statuses: + title: လက်ရှိခေတ်စားနေသော ပို့စ်များ + new_trending_tags: + no_approved_tags: လက်ရှိတွင် အတည်ပြုထားသော ခေတ်စားနေသည့် hashtag များမရှိပါ။ + title: လက်ရှိခေတ်စားနေသော hashtag များ + subject: "%{instance} တွင် ပြန်လည်သုံးသပ်ရမည့် ခေတ်စားနေသောပို့စ်အသစ်များ" + aliases: + add_new: နာမည်တူတစ်ခု ဖန်တီးမည် + created_msg: နာမည်တူတစ်ခုကို ဖန်တီးပြီးပါပြီ။ အကောင့်ဟောင်းမှ စတင်ရွှေ့နိုင်ပါပြီ။ + deleted_msg: နာမည်တူကို ဖယ်ရှားထားပြီးပါပြီ။ ထိုအကောင့်မှ ဤအကောင့်သို့ပြောင်းရန် မဖြစ်နိုင်တော့ပါ။ + empty: သင့်တွင် နာမည်တူများ မရှိပါ။ appearance: + advanced_web_interface: အဆင့်မြင့်ဝဘ်ပုံစံ + discovery: ရှာဖွေတွေ့ရှိမှု localization: + body: Mastodon ကို စေတနာ့ဝန်ထမ်းများမှ ဘာသာပြန်ထားပါသည်။ + guide_link: https://crowdin.com/project/mastodon guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။ + sensitive_content: သတိထားရသော အကြောင်းအရာ + toot_layout: ပို့စ်အပြင်အဆင် application_mailer: + notification_preferences: အီးမေးလ် သတ်မှတ်ချက်များကို ပြောင်းပါ salutation: "%{name}" + settings: အီးမေးလ် သတ်မှတ်ချက်များကို ပြောင်းပါ - %{link} view: ကြည့်ရှုရန် - view_profile: ပရိုဖိုင်ကိုကြည့်ရန် view_status: ပို့စ်ကိုကြည့်ရန် applications: created: အက်ပလီကေးရှင်းကို ဖန်တီးပြီးပါပြီ + destroyed: အက်ပလီကေးရှင်းကို ဖျက်ပြီးပါပြီ + logout: ထွက်မယ် + warning: ဤအချက်အလက်ကို သတိထားပါ။ မည်သူ့ကိုမျှ မမျှဝေပါနှင့်။ auth: + apply_for_account: အကောင့်တစ်ခုတောင်းဆိုပါ change_password: စကားဝှက် + confirmations: + wrong_email_hint: ထိုအီးမေးလ်လိပ်စာ မမှန်ပါက အကောင့်သတ်မှတ်ချက်များတွင် ပြောင်းလဲနိုင်သည်။ delete_account: အကောင့်ဖျက်ပါ description: + prefix_invited_by_user: "@%{name} က Mastodon ၏ ဆာဗာတွင် ပါဝင်ရန် သင့်ကို ဖိတ်ခေါ်ထားသည်။" prefix_sign_up: ယနေ့တွင် Mastodon ၌ စာရင်းသွင်းလိုက်ပါ။ + dont_have_your_security_key: သင့်တွင် လုံခြုံရေးကီး မရှိဘူးလား။ forgot_password: သင့်စကားဝှက် မေ့နေပါသလား။ log_in_with: ဖြင့် ဝင်ရောက်ပါ login: အကောင့်ဝင်ရန် @@ -608,13 +777,19 @@ my: saml: SAML register: အကောင့်ဖွင့်ရန် registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ" + rules: + accept: လက်ခံပါ + back: နောက်သို့ security: လုံခြုံရေး set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။ sign_in: title: "%{domain} သို့ အကောင့်ဝင်ရန်" status: account_status: အကောင့်အခြေအနေ + use_security_key: လုံခြုံရေးကီးကို သုံးပါ authorize_follow: + already_following: သင်သည် ဤအကောင့်ကို စောင့်ကြည့်နေပြီဖြစ်ပါသည် + already_requested: သင်သည် ထိုအကောင့်စောင့်ကြည့်ရန် တောင်းဆိုမှုတစ်ခု ပေးပို့ခဲ့ပြီးပါပြီ follow: စောင့်ကြည့်မယ် follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်- post_follow: @@ -645,15 +820,21 @@ my: x_months: "%{count}mo" x_seconds: "%{count}s" deletes: + confirm_password: အထောက်အထားကိုအတည်ပြုရန်အတွက် သင့်လက်ရှိစကားဝှက်ကို ထည့်ပါ + confirm_username: လုပ်ငန်းစဉ်ကို အတည်ပြုရန်အတွက် သင့်အသုံးပြုသူအမည်ကို ထည့်သွင်းပါ proceed: အကောင့်ဖျက်ပါ success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ + warning: + data_removal: သင့်ပို့စ်များနှင့် အခြားအချက်အလက်များကို အပြီးတိုင် ဖယ်ရှားပါမည် disputes: strikes: appeals: submit: အယူခံဝင်ခွင့်ပြုရန် + recipient: လိပ်မူထားသည် status: "#%{id} ပို့စ်" title: "%{date} မှ %{action}" title_actions: + delete_statuses: ပို့စ်ဖယ်ရှားခြင်း none: သတိပေးချက် errors: '400': The request you submitted was invalid or malformed. @@ -671,8 +852,10 @@ my: archive_takeout: date: ရက်စွဲ download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ + request: မှတ်တမ်း တောင်းဆိုရန် size: အရွယ်အစား blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း + bookmarks: မှတ်ထားသည်များ csv: CSV domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ lists: စာရင်းများ @@ -684,14 +867,21 @@ my: account: ပရိုဖိုင်များ home: ပင်မနှင့် စာရင်းများ notifications: အကြောင်းကြားချက်များ + public: အများမြင်စာမျက်နှာ thread: စကားဝိုင်းများ edit: + add_keyword: အဓိကစကားလုံး ထည့်ပါ + keywords: အဓိကစကားလုံးများ statuses: တစ်ဦးချင်းတင်ထားသောပို့စ်များ title: စစ်ထုတ်ခြင်းကို ပြင်ဆင်ရန် index: contexts: "%{contexts} ရှိ စစ်ထုတ်ထားမှုများ" delete: ဖျက်ပါ empty: သင့်တွင် စစ်ထုတ်ထားခြင်းများ မရှိပါ။ + expires_in: "%{distance} တွင် သက်တမ်းကုန်မည်" + expires_on: "%{date} ရက်နေ့တွင် သက်တမ်းကုန်မည်" + keywords: + other: "%{count} အဓိကစကားလုံး" statuses: other: "%{count} ပို့စ်" title: စစ်ထုတ်ခြင်းများ @@ -699,18 +889,26 @@ my: save: စစ်ထုတ်မှုအသစ် သိမ်းပါ title: စစ်ထုတ်မှုအသစ် ထည့်ပါ statuses: + back_to_filter: စစ်ထုတ်ခြင်းသို့ ပြန်သွားရန် + batch: + remove: စစ်ထုတ်ခြင်းမှ ဖယ်ရှားရန် index: title: စစ်ထုတ်ထားသော ပို့စ်များ generic: all: အားလုံး copy: ကူးယူပါ delete: ဖျက်ပါ + save_changes: ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ today: ယနေ့ imports: + modes: + merge: ပေါင်း preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။ types: blocking: ပိတ်ပင်ထားသည့်စာရင်း + bookmarks: Bookmarks domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း + following: စောင့်ကြည့်စာရင်း upload: တင္ရန် invites: expires_in: @@ -721,22 +919,38 @@ my: '604800': ၁ ပတ် '86400': ၁ ရက် max_uses_prompt: အကန့်အသတ်မဲ့ + title: ဖိတ်ခေါ်ရန် login_activities: authentication_methods: otp: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အက်ပ် password: စကားဝှက် + sign_in_token: အီးမေးလ်လုံခြုံရေးကုဒ် + webauthn: လုံခြုံရေးကီးများ media_attachments: validations: images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ migrations: acct: သို့ ပြောင်းရွှေ့ရန် + cancel: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ရန် errors: + missing_also_known_as: ဤအကောင့်၏ အမည်တူမဟုတ်ပါ + move_to_self: လက်ရှိအကောင့်မဖြစ်နိုင်ပါ not_found: ရှာမတွေ့ပါ + incoming_migrations_html: အခြားအကောင့်မှ ဤအကောင့်သို့ ရွှေ့ရန် ဦးစွာ သင်သည် အကောင့်အမည်တူတစ်ခု ဖန်တီးရန် လိုအပ်ပါသည်။ proceed_with_move: စောင့်ကြည့်သူများကို ရွှေ့ရန် warning: only_redirect_html: တနည်းအားဖြင့် သင်သည် သင့်ပရိုဖိုင်ပေါ်တွင် ပြန်ညွှန်းခြင်းကိုသာ ပြုလုပ်နိုင်သည်။ redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည် + moderation: + title: စိစစ်ခြင်း notification_mailer: + admin: + sign_up: + subject: "%{name} က အကောင့်ဖွင့်ထားသည်" + favourite: + body: "%{name} က နှစ်သက်ခဲ့သော သင့်ပို့စ် -" + subject: "%{name} က သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်" + title: နှစ်သက်မှုအသစ်တစ်ခု follow: body: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။" subject: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။" @@ -748,8 +962,12 @@ my: action: စာပြန်ရန် body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်- subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည် + reblog: + title: Boost အသစ် status: subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ" + update: + subject: "%{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်" number: human: decimal_units: @@ -763,6 +981,10 @@ my: otp_authentication: enable: ဖွင့်ပါ pagination: + newer: ပိုသစ်သော + next: ရှေ့သို့ + older: ပိုဟောင်းသော + prev: ရှေ့သို့ truncate: "…" polls: errors: @@ -775,41 +997,118 @@ my: over_character_limit: သတ်မှတ်ထားသောစာလုံးအရေအတွက် %{max} ထက်ပိုနေသည် too_few_options: တစ်ခုထက်ပိုနေသည် too_many_options: သတ်မှတ်ထားသောအရေအတွက် %{max} ကိုကျော်လွန်နေသည် + preferences: + other: အခြား + public_timelines: အများမြင်စာမျက်နှာ privacy_policy: title: ကိုယ်ရေးအချက်အလက်မူဝါဒ relationships: + activity: အကောင့်လုပ်ဆောင်ချက် + confirm_follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်လိုသည်မှာ သေချာပါသလား။ + confirm_remove_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။ + confirm_remove_selected_follows: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။ + follow_failure: ရွေးချယ်ထားသော အကောင့်အချို့ကို စောင့်ကြည့်၍ရမည်မဟုတ်ပါ။ + follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်ပါ followers: စောင့်ကြည့်သူများ following: စောင့်ကြည့်နေသည် + invited: ဖိတ်ခေါ်ထားပြီး + last_active: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် + most_recent: မကြာသေးမီက moved: ရွှေ့ပြီးပါပြီ mutual: အပြန်အလှန်စောင့်ကြည့်ထားခြင်း + primary: ဦးစားပေး + relationship: တော်စပ်ပုံ + remove_selected_domains: ရွေးချယ်ထားသော ဒိုမိန်းများမှ စောင့်ကြည့်သူအားလုံးကို ဖယ်ရှားပါ + remove_selected_followers: ရွေးချယ်ထားသော စောင့်ကြည့်သူများကို ဖယ်ရှားပါ + remove_selected_follows: ရွေးချယ်ထားသော အသုံးပြုသူများကို စောင့်ကြည့်ခြင်းမှ ဖြုတ်ပါ status: အကောင့်အခြေအနေ + remote_follow: + missing_resource: သင့်အကောင့်အတွက် လိုအပ်သော ပြန်ညွှန်းမည့် URL ကို ရှာမတွေ့ပါ + rss: + content_warning: 'အကြောင်းအရာသတိပေးချက် - ' + descriptions: + account: "@%{acct} မှ အများမြင်ပို့စ်များ" + tag: "#%{hashtag} ကို တဂ်ထားသော အများမြင်ပို့စ်များ" sessions: + activity: နောက်ဆုံးလုပ်ဆောင်ချက် + browser: ဘရောက်ဇာ + browsers: + alipay: Alipay + blackberry: BlackBerry + chrome: Chrome + edge: Microsoft Edge + electron: အီလက်ထရွန် + firefox: Firefox + generic: အမည်မသိဘရောက်ဆာ + huawei_browser: Huawei 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 + unknown_browser: အမည်မသိဘရောက်ဆာ + weibo: Weibo + current_session: လက်ရှိဆက်ရှင် description: "%{platform} ပေါ်ရှိ %{browser}" + ip: IP platforms: + adobe_air: Adobe Air + android: Android + blackberry: BlackBerry + chrome_os: ChromeOS + firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS + unknown_platform: အမည်မသိ Platform + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: ပြန်ရုပ်သိမ်းရန် + revoke_success: ဆက်ရှင်ကို ရုပ်သိမ်းလိုက်ပါပြီ + title: ဆက်ရှင်များ + view_authentication_history: သင့်အကောင့်၏ စစ်မှန်ကြောင်းအထောက်အထားပြမှုကို ကြည့်ပါ settings: account: အကောင့် account_settings: အကောင့်သတ်မှတ်ချက်များ + aliases: အကောင့်အမည်တူများ appearance: ပုံပန်းသဏ္ဌာန် + authorized_apps: ခွင့်ပြုထားသောအက်ပ်များ + back: Mastodon သို့ ပြန်သွားရန် delete: အကောင့်ဖျက်သိမ်းခြင်း edit_profile: ပရိုဖိုင်ပြင်ဆင်ရန် + export: အချက်အလက်ထုတ်ယူခြင်း + import: ထည့်သွင်းခြင်း notifications: အသိပေးချက်များ + preferences: သတ်မှတ်ချက်များ profile: ပရိုဖိုင် relationships: စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း statuses_cleanup: အလိုအလျောက်ပို့စ်ဖျက်ခြင်း two_factor_authentication: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် + webauthn_authentication: လုံခြုံရေးကီးများ statuses: attached: + audio: + other: "%{count} အသံ" description: ပူးတွဲပါ- %{attached} image: other: "%{count} ပုံ" video: other: "%{count} ဗီဒီယို" + boosted_from_html: "%{acct_link} မှ Boost လုပ်ခဲ့သည်" + content_warning: အကြောင်းအရာသတိပေးချက် - %{warning} + default_language: လက်ရှိသုံးနေသောဘာသာစကားအတိုင်း ပြပေးပါမည် + disallowed_hashtags: + other: ခွင့်မပြုထားသော hashtags များပါရှိသည် - %{tags} edited_at_html: "%{date} ကို ပြင်ဆင်ပြီးပါပြီ" open_in_web: ဝဘ်တွင် ဖွင့်ပါ + pin_errors: + reblog: Boost လုပ်ထားသောပို့စ်ကို ပင်ထား၍မရပါ poll: total_people: other: "%{count} ယောက်" @@ -819,6 +1118,8 @@ my: show_more: ပိုမိုပြရန် show_newer: ပို့စ်အသစ်များပြရန် show_older: ပို့စ်အဟောင်းများပြရန် + show_thread: Thread ကို ပြပါ + sign_in_to_participate: စကားဝိုင်းတွင် ပါဝင်ရန် အကောင့်ဝင်ပါ title: '%{name}: "%{quote}"' visibilities: direct: တိုက်ရိုက် @@ -826,9 +1127,20 @@ my: private_long: စောင့်ကြည့်သူများကိုသာ ပြရန် public: အများမြင် public_long: လူတိုင်းမြင်နိုင်ပါသည် + unlisted: စာရင်းမသွင်းထားပါ + unlisted_long: လူတိုင်းမြင်နိုင်သော်လည်း အများမြင်မည့်စာမျက်နှာများတွင် စာရင်းမသွင်းထားပါ။ statuses_cleanup: + enabled: ပို့စ်အဟောင်းများကို အလိုအလျောက် ဖျက်ပါ + ignore_favs: နှစ်သက်မှုများကို လျစ်လျူရှုပါ + ignore_reblogs: Boost များကို လျစ်လျူရှုပါ + keep_direct: တိုက်ရိုက်မက်ဆေ့ချ်များကို သိမ်းထားပါ + keep_direct_hint: တိုက်ရိုက်စကားပြောထားသည်များကို မဖျက်ပါနှင့် + keep_media: မီဒီယာဖိုင်များပါသောပို့စ်များကို သိမ်းဆည်းပါ + keep_media_hint: မီဒီယာဖိုင်များပါသောပို့စ်များကို မဖျက်ပါနှင့် + keep_pinned: ပင်ထိုးထားသော ပို့စ်များကို သိမ်းထားပါ keep_polls: စစ်တမ်းကိုဆက်လက်ထားမည် keep_polls_hint: သင့်မှတ်တမ်းတစ်ခုမှ မပျက်ပါ + keep_self_fav: သင်နှစ်သက်ခဲ့သောပို့စ်များကို သိမ်းထားပါ min_age: '1209600': ၂ ပတ် '15778476': ၆ လ @@ -840,8 +1152,11 @@ my: '7889238': ၃ လ stream_entries: pinned: ပင်တွဲထားသောပို့စ် + reblogged: Boost လုပ်ခဲ့သည် + sensitive_content: သတိထားရသော အကြောင်းအရာ themes: default: Mastodon (အနက်) + mastodon-light: Mastodon (အလင်းနောက်ခံ) time: formats: default: "%b %d, %Y, %H:%M" @@ -855,6 +1170,9 @@ my: enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည် enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ methods: နှစ်ဆင့်ခံလုံခြုံရေးနည်းလမ်းများ + otp: Authenticator အက်ပ် + recovery_codes: အရန်ပြန်လည်ရယူရေးကုဒ်များ + webauthn: လုံခြုံရေးကီးများ user_mailer: appeal_approved: action: သင့်အကောင့်သို့ သွားပါ @@ -862,19 +1180,29 @@ my: title: အယူခံကို ပယ်ချခဲ့သည် suspicious_sign_in: change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ + details: ဤသည်မှာ အကောင့်ဝင်ရောက်ခြင်းအတွက် အသေးစိတ်အချက်များဖြစ်သည် - + explanation: IP လိပ်စာအသစ်တစ်ခုမှနေ၍ သင့်အကောင့်ဝင်ရောက်သည်ကို တွေ့ရှိခဲ့ပါသည်။ + title: အကောင့်ဝင်ရောက်မှုအသစ် warning: appeal: အယူခံတင်သွင်းပါ + categories: + spam: Spam explanation: disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။ suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။ reason: အကြောင်းပြချက် - subject: delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ" + mark_statuses_as_sensitive: "%{acct} ရှိ သင့်ပို့စ်များကို သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုထားသည်" none: "%{acct} အတွက် သတိပေးချက်" silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည် title: delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည် + disable: အကောင့်ပိတ်သွားပါပြီ။ + mark_statuses_as_sensitive: သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုပါ none: သတိပေးချက် + sensitive: သတိထားရသောအကောင့်အဖြစ် အမှတ်အသားပြုပါ + silence: အကောင့်ကန့်သတ်ထားသည် suspend: အကောင့်ရပ်ဆိုင်းထားသည် welcome: edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန် @@ -885,6 +1213,23 @@ my: users: follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် + signed_in_as: အဖြစ် အကောင့်ဝင်ခဲ့သည် - + verification: + verification: စိစစ်ခြင်း webauthn_credentials: + add: လုံခြုံရေးကီးအသစ်ထည့်ပါ + create: + error: သင့်လုံခြုံရေးကီးထည့်ရာတွင် ပြဿနာရှိနေသည်။ ထပ်စမ်းကြည့်ပါ။ + success: လုံခြုံရေးကီး ထည့်ပြီးပါပြီ။ delete: ဖျက်ရန် + delete_confirmation: လုံခြုံရေးကီးဖျက်ရန် သေချာပါသလား။ + description_html: "လုံခြုံရေးကီးအထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားပါက လုံခြုံရေးကီးများထဲမှ တစ်ခုကို အကောင့်ဝင်ရောက်ရန်အတွက် အသုံးပြုရန်လိုအပ်ပါသည်" + destroy: + error: သင့်လုံခြုံရေးကီးကို ဖျက်ရာတွင် ပြဿနာရှိနေသည်။ ထပ်စမ်းကြည့်ပါ။ + success: လုံခြုံရေးကီး ဖျက်ပြီးပါပြီ။ + invalid_credential: လုံခြုံရေးကီးမမှန်ကန်ပါ + nickname_hint: သင့်လုံခြုံရေးကီးအသစ်၏ အမည်ပြောင်ကို ထည့်ပါ။ + not_enabled: WebAuthn ကို သင် မဖွင့်ရသေးပါ + not_supported: ဤဘရောက်ဆာသည် လုံခြုံရေးကီးများကို မပံ့ပိုးပါ + otp_required: လုံခြုံရေးကီးများကို အသုံးပြုရန်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်စိစစ်ခြင်းကို ဦးစွာဖွင့်ပါ။ registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 7732a64421..93e7c55024 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1405,6 +1405,7 @@ nl: confirm_remove_selected_followers: Weet je zeker dat je de geselecteerde volgers wilt verwijderen? confirm_remove_selected_follows: Weet je zeker dat je de geselecteerde gevolgde accounts wilt verwijderen? dormant: Sluimerend + follow_failure: Kan sommige van de geselecteerde accounts niet volgen. follow_selected_followers: Geselecteerde volgers volgen followers: Volgers following: Volgend @@ -1444,6 +1445,7 @@ nl: electron: Electron firefox: Firefox generic: Onbekende webbrowser + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ nl: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Onbekende browser weibo: Weibo current_session: Huidige sessie description: "%{browser} op %{platform}" @@ -1465,9 +1468,10 @@ nl: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: Onbekend platform + unknown_platform: Onbekend platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 7b860b54b2..ee496f2727 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -91,7 +91,7 @@ nn: moderation: active: Aktiv all: Alle - disabled: Deaktivert + disabled: Skrudd av pending: Ventar på svar silenced: Avgrensa suspended: Utvist @@ -134,7 +134,7 @@ nn: search: Søk search_same_email_domain: Andre brukarar med same e-postdomene search_same_ip: Andre brukarar med same IP - security: Sikkerhet + security: Tryggleik security_measures: only_password: Kun passord password_and_2fa: Passord og 2FA @@ -423,7 +423,7 @@ nn: resolve: Løs domene title: Ny blokkeringsoppføring av e-postdomene no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde - not_permitted: Ikke tillatt + not_permitted: Ikkje tillate resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. Pass på så du ikkje blokkerer dei store e-postleverandørane. resolved_through_html: Løyst gjennom %{domain} title: Blokkerte e-postadresser @@ -438,7 +438,7 @@ nn: private_comment_description_html: 'For å hjelpa deg med å halda oversikt over kvar importerte blokkeringar kjem frå, vil dei bli oppretta med fylgjande private kommentar: %{comment}' private_comment_template: Importert frå %{source} den %{date} title: Importer domeneblokkeringar - invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}' + invalid_domain_block: 'Hoppa over ei eller fleire domeneblokker på grunn av fylgjande feil: %{error}' new: title: Importer domeneblokkeringar no_file: Inga fil vald @@ -470,6 +470,7 @@ nn: content_policies: comment: Internt notat description_html: Du kan definere innholdsregler som vil bli brukt på alle kontoer fra dette domenet og hvilket som helst av underdomenene. + limited_federation_mode_description_html: Du kan velja om du vil tillata føderering med dette domenet. policies: reject_media: Avvis media reject_reports: Avvis rapporter @@ -573,10 +574,10 @@ nn: 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. Lukker alle rapporter mot denne kontoen. - suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen. + silence_description_html: Profilen vil berre vera synleg for dei som allereie fylgjer han eller søkjer han opp manuelt, noko som gjev profilen mykje mindre rekkjevidd. Du kan oppheva stenginga seinare. Dette avsluttar alle rapportar om brukarkontoen. + suspend_description_html: Brukarkontoen og alt innhaldet vil bli utilgjengeleg og til slutt sletta, og det vil vera uråd å samhandla med brukaren. Du kan angra dette innan 30 dagar. Dette avsluttar alle rapportar om kontoen. 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. - actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet. + actions_description_remote_html: Avgjer kva du vil gjera for å løysa denne rapporten. Dette påverkar berre korleis tenaren din kommuniserer med kontoen på ein annan tenar, og korleis tenaren din handterer innhald derifrå. add_to_report: Legg til i rapporten are_you_sure: Er du sikker? assign_to_self: Tilegn til meg @@ -588,8 +589,8 @@ nn: comment: none: Ingen comment_description_html: 'For å gje meir informasjon, skreiv %{name}:' - confirm: Bekreft - confirm_action: Bekreft moderasjonshandling mot @%{acct} + confirm: Stadfest + confirm_action: Stadfest at du vil moderera brukarkontoen @%{acct} created_at: Rapportert delete_and_resolve: Slett innlegg forwarded: Videresendt @@ -606,7 +607,7 @@ nn: 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 - processed_msg: 'Rapport #%{id} er behandlet' + processed_msg: 'Du har handsama rapport #%{id}' 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 @@ -621,13 +622,26 @@ nn: statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen summary: action_preambles: - delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:' - mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:' - silence_html: 'Du er i ferd med å avgrense @%{acct} sin konto. Dette vil:' - suspend_html: 'Du er i ferd med å stoppe @%{acct} sin konto. Dette vil:' + delete_html: 'Du er i ferd med å fjerna nokre av innlegga til @%{acct}. Det vil:' + mark_as_sensitive_html: 'Du er i ferd med å markera nokre av innlegga til @%{acct} som sensitive. Dette vil:' + silence_html: 'Du er i ferd med å avgrensa kontoen til @%{acct}. Dette vil:' + suspend_html: 'Du er i ferd med å stenga kontoen til @%{acct}. Dette vil:' + actions: + delete_html: Fjerna dei påtala innlegga + mark_as_sensitive_html: Markera dei påtala mediefilene som sensitive + silence_html: Sterkt avgrensa korleis @%{acct} kan samhandla ved å gjera brukarprofilen og innhaldet synleg berre for folk som allereie fylgjer brukarkontoen eller søkjer han opp manuelt + suspend_html: Stengja brukarkontoen til @%{acct}, slik at brukarprofilen og innhaldet blir utilgjengeleg og umogleg å samhandla med + close_report: Marker rapport nr. %{id} som løyst + close_reports_html: Marker alle rapportane om @%{acct} som løyste + delete_data_html: Slett brukarprofilen og innhaldet til@%{acct} om 30 dagar frå no med mindre brukarkontoen blir opna att + preview_preamble_html: "@%{acct} vil få ei åtvaring med dette innhaldet:" + record_strike_html: Noter at ei handling er gjort mot @%{acct} for å hjelpa deg å handtera framtidige overtramp frå denne brukarkontoen + send_email_html: Send ein åtvaringsepost til @%{acct} + warning_placeholder: Eventuelle fleire grunnar for å modereringshandlinga. target_origin: Opprinnelse for innrapportert konto title: Rapportar unassign: Avset + unknown_action_msg: 'Ukjend handling: %{action}' unresolved: Uløyst updated_at: Oppdatert view_profile: Vis profil @@ -722,6 +736,8 @@ nn: 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 + publish_discovered_servers: Publiser oppdaga tenarar + publish_statistics: Publiser statistikk title: Oppdaging trends: Trender domain_blocks: @@ -776,6 +792,7 @@ nn: suspend: "%{name} utviste %{target} sin konto" appeal_approved: Klage tatt til følge appeal_pending: Klage behandles + appeal_rejected: Anken er avvist system_checks: database_schema_check: message_html: Det venter på databaseoverføringer. Vennligst kjør disse for å sikre at applikasjonen oppfører seg som forventet @@ -811,6 +828,7 @@ nn: 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 + not_allowed_to_trend: Har ikkje lov å trenda only_allowed: Kun tillatne pending_review: Avventer gjennomgang preview_card_providers: @@ -837,12 +855,13 @@ nn: tag_accounts_measure: unike bruksområder tag_languages_dimension: Mest brukte språk tag_servers_dimension: Mest brukte servere - tag_servers_measure: forskjellige servere - tag_uses_measure: samlet bruk + tag_servers_measure: ulike tenarar + tag_uses_measure: brukarar totalt description_html: Dette er emneknagger som for øyeblikket vises i mange innlegg som serveren din ser. Det kan hjelpe dine brukere med å finne ut hva folk snakker mest om i øyeblikket. Ingen emneknagger vises offentlig før du godkjenner dem. listable: Kan bli foreslått + no_tag_selected: Ingen merkelappar vart endra fordi ingen var valde not_listable: Vil ikke bli foreslått - not_trendable: Kunne ikke vises under trender + not_trendable: Kjem ikkje til å syna under trendar not_usable: Kan ikke brukes peaked_on_and_decaying: Nådde toppen %{date}, nå på vei ned title: Populære emneknagger @@ -891,6 +910,9 @@ nn: sensitive: å merke kontoen sin som følsom silence: for å begrense deres konto suspend: for å suspendere kontoen deres + body: "%{target} ankar på ei modereringsavgjerd av %{action_taken_by} den %{date}, som var %{type}. Dei skreiv:" + next_steps: Du kan godkjenna anken for å endra modereringsavgjerda, eller du kan oversjå anken. + subject: "%{username} ankar ei modereringsavgjer på %{instance}" new_pending_account: body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden. subject: Ny konto opp til vurdering på %{instance} (%{username}) @@ -899,13 +921,16 @@ nn: body_remote: Nokon frå %{domain} har meldt %{target} subject: Ny rapport for %{instance} (#%{id}) new_trends: + body: 'Du må sjå gjennom desse elementa før dei kan visast offentleg:' new_trending_links: title: Populære lenker new_trending_statuses: title: Populære innlegg new_trending_tags: - title: Populære emneknagger - subject: Ny trender for gjennomsyn av %{instance} + no_approved_tags: Det er ingen godkjende populære emneknaggar no. + requirements: 'Alle desse kandidatane kan stiga høgare enn den godkjende populære emneknaggen #%{rank}, som er #%{lowest_tag_name} med ei plassering på %{lowest_tag_score}.' + title: Populære emneknaggar + subject: Nye trendar å sjå gjennom på %{instance} aliases: add_new: Lag psevdonym created_msg: Laga eit nytt kallenamn. No kan du setja i gang med flyttinga frå den gamle kontoen. @@ -927,7 +952,7 @@ nn: toot_layout: Tutoppsett application_mailer: notification_preferences: Endr e-post-innstillingane - salutation: "%{name}," + salutation: Hei %{name}, settings: 'Endr e-post-innstillingar: %{link}' view: 'Sjå:' view_profile: Sjå profil @@ -935,6 +960,7 @@ nn: applications: created: Søknad laga destroyed: Søknad sletta + logout: Logg ut regenerate_token: Lag tilgangsnykel på nytt token_regenerated: Tilgangsnykel laga på nytt warning: Ver varsam med dette datumet. Aldri del det med nokon! @@ -942,6 +968,8 @@ nn: auth: apply_for_account: Søk om ein konto change_password: Passord + confirmations: + wrong_email_hint: Viss epostadressa er feil, kan du endra ho i kontoinnstillingane. delete_account: Slett konto delete_account_html: Om du vil sletta kontoen din, kan du gå hit. Du vert spurd etter stadfesting. description: @@ -969,6 +997,8 @@ nn: resend_confirmation: Send stadfestingsinstruksjonar på nytt reset_password: Attstill passord rules: + accept: Godkjenn + back: Attende preamble: Disse angis og håndheves av %{domain}-moderatorene. title: Noen grunnregler. security: Tryggleik @@ -1115,6 +1145,8 @@ nn: storage: Medielagring featured_tags: add_new: Legg til ny + errors: + limit: Du har allereie framheva så mange emneknaggar som det går an å gjera hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." filters: contexts: @@ -1125,55 +1157,39 @@ nn: thread: Samtalar edit: add_keyword: Legg til stikkord - keywords: Nøkkelord + keywords: Stikkord statuses: Individuelle innlegg + statuses_hint_html: Dette filteret gjeld for utvalde, individuelle innlegg, uansett om dei passar til stikkorda under. Sjå gjennom eller fjern innlegg frå filteret. title: Endr filter errors: + deprecated_api_multiple_keywords: Du kan ikkje endra desse parametrane frå dette programmet fordi dei gjeld for meir enn eitt filterord. Bruk eit nyare program, eller nettsida. invalid_context: Ingen eller ugild kontekst gjeve index: - contexts: Filtre i %{contexts} + contexts: Filter i %{contexts} delete: Slett empty: Du har ingen filtre. - expires_in: Utløper om %{distance} - expires_on: Utløper den %{date} - keywords: - one: "%{count} nøkkelord" - other: "%{count} nøkkelorder" - statuses: - one: "%{count} innlegg" - other: "%{count} innlegger" - statuses_long: - one: "%{count} enkeltinnlegg skjult" - other: "%{count} individuelle innlegger skjult" + expires_in: Går ut om %{distance} + expires_on: Går ut %{date} title: Filter new: save: Lagre nytt filter title: Legg til nytt filter statuses: - back_to_filter: Tilbake til filter + back_to_filter: Tilbake til filteret batch: - remove: Fjern fra filter + remove: Fjern frå filteret index: - hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet. + hint: Dette filteret gjeld for utvalde, individuelle innlegg, uavhengig av andre kriterium. Du kan leggja til fleire innlegg til dette filteret frå nettsida. title: Filtrerte innlegg generic: all: Alle - all_items_on_page_selected_html: - one: "%{count} element på denne siden er valgt." - other: Alle %{count} elementer på denne siden er valgt. - all_matching_items_selected_html: - one: "%{count} element som matcher søket ditt er valgt." - other: Alle %{count} elementer som matcher søket velges. changes_saved_msg: Alle endringane vart lagra! copy: Kopier delete: Slett - deselect: Fjern all merking + deselect: Vel ingen none: Ingen order_by: Sorter etter save_changes: Lagr endringar - select_all_matching_items: - one: Velg %{count} element som samsvarer med søket ditt. - other: Velg alle %{count} elementer som samsvarer med søket ditt. today: i dag validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til @@ -1186,7 +1202,7 @@ nn: merge: Set saman merge_long: Hald på eksisterande data og legg til nye overwrite: Skriv over - overwrite_long: Erstatt gjeldende med de nye + overwrite_long: Byt ut dei noverande oppføringane med dei nye preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer. success: Dataa dine vart lasta opp og vert no handsama så fort som mogeleg types: @@ -1218,11 +1234,14 @@ nn: expires_at: Vert ugyldig uses: Bruk title: By folk inn + lists: + errors: + limit: Du har nådd grensa for kor mange lister du kan ha login_activities: authentication_methods: otp: to-faktor autentiseringsapp password: passord - sign_in_token: e-post sikkerhetskode + sign_in_token: tryggingskode på epost webauthn: sikkerhetsnøkler description_html: Hvis du ser aktivitet som du ikke gjenkjenner, bør du vurdere å endre passordet ditt og aktivere to-trinnsinnlogging. empty: Ingen innloggingshistorikk er tilgjengelig @@ -1272,7 +1291,7 @@ nn: carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet. copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:' navigation: - toggle_menu: Vis/Skjul meny + toggle_menu: Vis/gøym menyen notification_mailer: admin: report: @@ -1298,7 +1317,7 @@ nn: subject: Du vart nemnd av %{name} title: Ny nemning poll: - subject: En avstemming av %{name} er avsluttet + subject: Meiningsmålinga frå %{name} er avslutta reblog: body: 'Statusen din vart framheva av %{name}:' subject: "%{name} framheva statusen din" @@ -1362,6 +1381,7 @@ nn: confirm_remove_selected_followers: Er du sikker på at du ynskjer å fjerna dei valde fylgjarane? confirm_remove_selected_follows: Er du sikker på at du ynskjer å fjerna det valde følgjet? dormant: I dvale + follow_failure: Greidde ikkje fylgja alle kontoane du valde. follow_selected_followers: Følg valgte tilhengere followers: Følgere following: Følginger @@ -1382,7 +1402,7 @@ nn: errors: invalid_rules: refererer ikke til gyldige regler rss: - content_warning: 'Innholdsadvarsel:' + content_warning: 'Innhaldsvarsel:' descriptions: account: Offentlige innlegg fra @%{acct} tag: 'Offentlige innlegg merket med #%{hashtag}' @@ -1401,6 +1421,7 @@ nn: electron: Electron firefox: Firefox generic: Ukjend lesar + huawei_browser: Huawei-nettlesaren ie: Internet Explorer micro_messenger: Micromessenger nokia: Nokia S40 Ovi-lesar @@ -1410,6 +1431,7 @@ nn: qq: QQ-lesar safari: Safari uc_browser: QQ-lesar + unknown_browser: Ukjend nettlesar weibo: Weibo current_session: Noverande økt description: "%{browser} på %{platform}" @@ -1422,9 +1444,10 @@ nn: chrome_os: ChromeOS firefox_os: Firefox OS ios: IOS + kai_os: KaiOS linux: Linux mac: Mac - other: ukjend plattform + unknown_platform: Ukjend plattform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1531,6 +1554,7 @@ nn: '7889238': 3 månader min_age_label: Aldersterskel min_favs: Behold innlegg som er favorittmarkert av minst + min_favs_hint: Slettar ingen av innlegga dine som har fått minst så mange favorittar. La det stå tomt for å sletta innlegga uansett kor mange favorittar dei har fått min_reblogs: Behold innlegg fremhevet av minst min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger stream_entries: diff --git a/config/locales/no.yml b/config/locales/no.yml index ebad60b73c..9f22a1bdbd 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1396,7 +1396,6 @@ ios: iOS linux: Linux mac: macOS - other: ukjent plattform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/oc.yml b/config/locales/oc.yml index e1406ec614..fa23f0522b 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -830,7 +830,6 @@ oc: ios: iOS linux: Linux mac: Mac - other: plataforma desconeguda windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/pl.yml b/config/locales/pl.yml index d086161910..66f01ccaac 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1457,6 +1457,7 @@ pl: confirm_remove_selected_followers: Czy na pewno chcesz usunąć wybranych obserwujących? confirm_remove_selected_follows: Czy na pewno chcesz usunąć zaznaczone obserwacje? dormant: Uśpione + follow_failure: Nie można obserwować niektórych wybranych kont. follow_selected_followers: Zacznij obserwować wybranych obserwujących followers: Obserwujący following: Obserwowani @@ -1496,6 +1497,7 @@ pl: electron: Electron firefox: Firefox generic: nieznana przeglądarka + huawei_browser: Przeglądarka Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Przeglądarka Nokia S40 Ovi @@ -1505,6 +1507,7 @@ pl: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Nieznana Przeglądarka weibo: Weibo current_session: Obecna sesja description: "%{browser} na %{platform}" @@ -1517,9 +1520,10 @@ pl: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: nieznana platforma + unknown_platform: Nieznana platforma windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 5192a83d22..931c0009e0 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -394,6 +394,7 @@ pt-BR: create: Criar bloqueio hint: O bloqueio de domínio não vai prevenir a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nessas contas. severity: + desc_html: "Silenciar vai tornar as publicações da conta invisíveis para qualquer um que não estiver lhe seguindo. Suspender vai remover todo o conteúdo, mídia e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia." noop: Nenhum silence: Limitar suspend: Banir @@ -590,6 +591,7 @@ pt-BR: none: Nenhum comment_description_html: 'Para fornecer mais informações, %{name} escreveu:' confirm: Confirmar + confirm_action: Confirmar a moderação de @%{acct} created_at: Denunciado delete_and_resolve: Excluir publicações forwarded: Encaminhados @@ -627,6 +629,7 @@ pt-BR: suspend_html: 'Você está prestes a suspender a conta de @%{acct}. Isso irá:' actions: delete_html: Remover as publicações ofensivas + suspend_html: Suspender @%{acct}, tornando seu perfil e conteúdo inacessíveis, impossibilitando a interação close_report: 'Marcar denúncia #%{id} como resolvida' close_reports_html: Marcar todas as denúncias contra @%{acct} como resolvidas delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo @@ -786,6 +789,7 @@ pt-BR: suspend: "%{name} suspendeu a conta de %{target}" appeal_approved: Revisado appeal_pending: Revisão pendente + appeal_rejected: Revisão rejeitada system_checks: database_schema_check: message_html: Existem migrações de banco de dados pendentes. Execute-as para garantir que o aplicativo se comporte como esperado @@ -952,6 +956,7 @@ pt-BR: applications: created: Aplicativo criado com sucesso destroyed: Aplicativo excluído com sucesso + logout: Sair regenerate_token: Gerar código de acesso token_regenerated: Código de acesso gerado warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém! @@ -1136,6 +1141,8 @@ pt-BR: storage: Armazenamento de mídia featured_tags: add_new: Adicionar hashtag + errors: + limit: Você já destacou o número máximo de hashtags hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." filters: contexts: @@ -1388,6 +1395,7 @@ pt-BR: confirm_remove_selected_followers: Tem certeza que deseja remover os seguidores selecionados? confirm_remove_selected_follows: Tem certeza que deseja remover os grupos seguidos selecionados? dormant: Inativo + follow_failure: Não foi possível seguir algumas das contas selecionadas. follow_selected_followers: Seguir os seguidores selecionados followers: Seguidores following: Seguindo @@ -1427,6 +1435,7 @@ pt-BR: electron: Electron firefox: Firefox generic: Navegador desconhecido + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi @@ -1436,6 +1445,7 @@ pt-BR: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Navegador desconhecido weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" @@ -1448,9 +1458,10 @@ pt-BR: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: MacOS - other: Plataforma desconhecida + unknown_platform: Plataforma desconhecida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 2718a7fb46..082de57e33 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1405,6 +1405,7 @@ pt-PT: confirm_remove_selected_followers: Tem a certeza que deseja seguir os seguidores selecionados? confirm_remove_selected_follows: Tem certeza que deseja remover os seguidores selecionados? dormant: Inativo + follow_failure: Não foi possível seguir algumas das contas selecionadas. follow_selected_followers: Seguir seguidores selecionados followers: Seguidores following: A seguir @@ -1444,6 +1445,7 @@ pt-PT: electron: Electron firefox: Firefox generic: Navegador desconhecido + huawei_browser: Navegador Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi @@ -1453,6 +1455,7 @@ pt-PT: qq: QQ Browser safari: Safari uc_browser: Navegador UC + unknown_browser: Navegador Desconhecido weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" @@ -1465,9 +1468,10 @@ pt-PT: chrome_os: ChromeOS firefox_os: SO Firefox ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: plataforma desconhecida + unknown_platform: Plataforma Desconhecida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/ru.yml b/config/locales/ru.yml index bfb3f5779c..050ea2c25e 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1504,7 +1504,6 @@ ru: ios: iOS linux: Linux mac: Mac - other: неизвестной платформе windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 113786f77a..7a46fe38a8 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -876,7 +876,6 @@ sc: ios: iOS linux: Linux mac: macOS - other: prataforma disconnota windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/sco.yml b/config/locales/sco.yml index 719a8918fc..04c3f192c3 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1411,7 +1411,6 @@ sco: ios: iOS linux: Linux mac: macOS - other: unkent platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/si.yml b/config/locales/si.yml index 87eaee5b6b..4a53215243 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -1204,7 +1204,6 @@ si: ios: අයිඕඑස් linux: ලිනක්ස් mac: මැක්ඕඑස් - other: නොදන්නා වේදිකාව windows: වින්ඩෝස් windows_mobile: වින්ඩෝස් මොබයිල් windows_phone: වින්ඩෝස් පෝන් diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index 32364cf7e4..9e97d51f24 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -59,6 +59,10 @@ ast: ip_block: comment: Opcional. Un recordatoriu de por qué amestesti esta norma. expires_in: Les direiciones IP son un recursu finitu, suelen compartise ya cambiar de manes. Por esti motivu, nun s'aconseyen los bloqueos indefiníos de direiciones IP. + severities: + no_access: Bloquia l'accesu a tolos recursos + sign_up_block: Fai que nun se puedan rexistrar cuentes nueves + sign_up_requires_approval: Fai que se tengan de revisar les cuentes rexistraes nueves user: chosen_languages: Namás los artículos de les llingües que marques son los que van apaecer nes llinies de tiempu públiques labels: @@ -161,7 +165,12 @@ ast: invite_request: text: "¿Por qué quies xunite?" ip_block: + comment: Comentariu ip: IP + severities: + no_access: Bloquiar l'accesu + sign_up_block: Bloquiar el rexistru de cuentes nueves + sign_up_requires_approval: Llendar les cuentes rexistraes nueves notification_emails: favourite: Daquién marcó como favoritu'l to artículu follow: Daquién te sigue diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 213e519ce3..e84edc50da 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -15,8 +15,8 @@ bg: text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време type_html: Изберете какво ще правите с %{acct} types: - disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт. - none: Служи за изпращане на предупреждение до потребител, без да се активира друго действие. + disable: Предотвратяване на потребител да употребява акаунта си, но без да се изтрива или скрива съдържанието му. + none: Използвайте това за изпращане на предупреждение до потребител, без задействане на друго действие. sensitive: Принудително отбелязване на прикачената от потребителя мултимедия като чувствителна. silence: Предотвратяване на потребителя да може да публикува с обществена видимост, скриване на публикациите му и известията от хората, които не го следват. Затваря всички доклади срещу този акаунт. suspend: Предотвратяване на всякакво взаимодействие от или към този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт. @@ -28,7 +28,7 @@ bg: starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон text: Може да употребявате синтаксиса на публикации. Имайте предвид, че оповестяването ще заема известно място от екрана на потребителя appeal: - text: Можете да възразите срещу провинение само веднъж + text: Може да възразите срещу провинение само веднъж defaults: autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват avatar: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела @@ -52,17 +52,17 @@ bg: setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване setting_display_media_default: Скриване на мултимедия отбелязана като деликатна - setting_display_media_hide_all: Винаги да се скрива мултимедията - setting_display_media_show_all: Винаги да се показва мултимедията + setting_display_media_hide_all: Винаги скриване на мултимедията + setting_display_media_show_all: Винаги показване на мултимедията setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва setting_noindex: Засяга вашите публикации и публичен профил setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви setting_use_blurhash: Преливането е въз основа на цветовете на скритите визуализации, но се замъгляват подробностите setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала - username: Вашето потребителско име ще е неповторим в %{domain} + username: Вашето потребителско име ще е неповторимо в %{domain} whole_word: Ако ключовата дума или фраза е само буквеноцифрена, то ще се приложи само, ако съвпадне с цялата дума domain_allow: - domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени + domain: Домейнът ще може да извлича данни от този сървър и входящите данни от него ще се обработят и съхранят email_domain_block: domain: Това може да е името на домейна, който се съдържа в имейл адреса или MX записа, който той използва. Ще бъдат проверени при регистрация. with_dns_records: Ще има опит за преобразуване на DNS записите за дадения домейн и резултатите също ще бъдат блокирани @@ -74,14 +74,14 @@ bg: hide: Напълно скриване на филтрираното съдържание, сякаш не съществува warn: Скриване на филтрираното съдържание зад предупреждение, споменавайки заглавието на филтъра form_admin_settings: - activity_api_enabled: Брой публикувани постове, активни потребители и нови регистрации за седмицата + activity_api_enabled: Броят на местните публикувани публикации, дейни потребители и нови регистрации в седмични кофи backups_retention_period: Задържане на породените потребителски архиви за определения брой дни. bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители. closed_registrations_message: Показва се, когато е затворено за регистрации content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо. - custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon. + custom_css: Може да прилагате собствени стилове в уебверсията на Mastodon. mascot: Замества илюстрацията в разширения уеб интерфейс. - media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване. + media_cache_retention_period: Изтеглените мултимедийни файлове ще се изтрият след посочения брой дни, задавайки положително число, и ще се изтеглят пак при поискване. peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл. profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми. require_invite_text: Когато регистрацията изисква ръчно одобрение, текстовото поле за това "Защо желаете да се присъедините?" ще бъде задължително, вместо по желание @@ -95,7 +95,7 @@ bg: theme: Темата, която излизащи от системата посетители и нови потребители виждат. thumbnail: Образ в съотношение около 2:1, показвано до информацията за сървъра ви. timeline_preview: Излизащите от системата посетители ще може да разглеждат най-новите публични публикации, налични на сървъра. - trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие. + trendable_by_default: Прескачане на ръчния преглед на изгряващо съдържание. Отделни елементи още могат да се премахват от изгряващи постфактум. trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви. trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено. form_challenge: @@ -142,7 +142,7 @@ bg: account_migration: acct: Потребителско име на новия акаунт account_warning_preset: - text: Предварително настроен текст + text: Зададен текст title: Заглавие admin_account_action: include_statuses: Включване на докладваните публикации в имейла @@ -155,7 +155,7 @@ bg: sensitive: Деликатно silence: Ограничение suspend: Спиране - warning_preset_id: Употреба на преднастройка за предупреждение + warning_preset_id: Употреба на зададено предупреждение announcement: all_day: Целодневно събитие ends_at: Край на събитието @@ -171,7 +171,7 @@ bg: chosen_languages: Филтриране на езиците confirm_new_password: Потвърждаване на новата парола confirm_password: Потвърдете паролата - context: Филтриране на контекста + context: Прецеждане на контекста current_password: Текуща парола data: Данни discoverable: Предложете акаунта на други @@ -185,7 +185,7 @@ bg: irreversible: Премахване, вместо скриване locale: Език на интерфейса locked: Направи акаунта поверителен - max_uses: Максимален брой използвания + max_uses: Макс брой употреби new_password: Нова парола note: Биогр. otp_attempt: Двуфакторен код @@ -207,7 +207,7 @@ bg: setting_display_media_hide_all: Скриване на всичко setting_display_media_show_all: Показване на всичко setting_expand_spoilers: Винаги разширяване на публикации, отбелязани с предупреждения за съдържание - setting_hide_network: Скриване на социалното ви графосвързване + setting_hide_network: Скриване на социалния ви свързан граф setting_noindex: Отказване от индексирането от търсачки setting_reduce_motion: Обездвижване на анимациите setting_show_application: Разкриване на приложението, изпращащо публикации @@ -236,7 +236,7 @@ bg: activity_api_enabled: Публикуване на агрегирани статиски относно потребителската дейност в API backups_retention_period: Период за съхранение на потребителския архив bootstrap_timeline_accounts: Винаги да се препоръчват следните акаунти на нови потребители - closed_registrations_message: Съобщение, показвано, когато записвания не са възможни + closed_registrations_message: Съобщение при неналична регистрация content_cache_retention_period: Период на съхранение на кеша за съдържание custom_css: Персонализиран CSS mascot: Талисман по избор (остаряла настройка) @@ -283,7 +283,7 @@ bg: follow: Някой ви последва follow_request: Някой пожела да ви последва mention: Някой ви спомена - pending_account: Новите акаунти трябва да се прегледат + pending_account: Новите акаунти се нуждаят от преглед reblog: Някой подсили ваша публикация report: Новият доклад е подаден trending_tag: Изискване на преглед за новонашумели @@ -306,11 +306,11 @@ bg: events: Включване на събития url: URL адрес на крайната точка 'no': Не - not_recommended: Не се препоръчва - recommended: Препоръчано + not_recommended: Непрепоръчително + recommended: Препоръчва се required: mark: "*" - text: задължително + text: изисквано title: sessions: webauthn: Употребете един от ключовете си за сигурност, за да влезете diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 3116f02d81..af29427420 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -18,6 +18,8 @@ da: disable: Forhindre brugeren i at bruge sin konto, men slet eller skjul ikke vedkommendes indhold. none: Brug dette til at sende en advarsel til brugeren uden at udløse nogen anden handling. sensitive: Gennemtving sensitivmarkering af alle denne brugers medievedhæftninger. + silence: Forhindr brugeren i at udgive offentligt synlige indlæg, skjul vedkommendes indlæg samt notifikationer fra ikke-følgere. Lukker alle indrapporteringer af kontoen. + suspend: Forhindr alle interaktion fra/til kontoen og slet dens indhold. Kan omgøres inden for 30 dage. Lukker alle indrapporteringer af kontoen. warning_preset_id: Valgfri. Du kan stadig tilføje tilpasset tekst til slutningen af forvalgene announcement: all_day: Hvis markeret, vil kun datoerne for tidsintervallet blive vist @@ -80,6 +82,7 @@ da: custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen. mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade. media_cache_retention_period: Downloadede mediefiler slettes efter det angivne antal dage, når sat til en positiv værdi, og gendownloades på forlangende. + peers_api_enabled: En liste med domænenavne, som denne server har stødt på i fediverset. Ingen data inkluderes her om, hvorvidt der fødereres med en given server, blot at din server kender til det. Dette bruges af tjenester, som indsamler generelle føderationsstatistikker. profile_directory: Profilmappen oplister alle brugere, som har valgt at kunne opdages. require_invite_text: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit site_contact_email: Hvordan folk kan opnå kontakt ifm. juridiske eller supportforespørgsler. @@ -238,6 +241,7 @@ da: custom_css: Tilpasset CSS mascot: Tilpasset maskot (ældre funktion) media_cache_retention_period: Media-cache opbevaringsperiode + peers_api_enabled: Udgiv liste over fundne server i API'en profile_directory: Aktivér profiloversigt registrations_mode: Hvem, der kan tilmelde sig require_invite_text: Kræv tilmeldingsbegrundelse @@ -255,6 +259,7 @@ da: timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer trendable_by_default: Tillad ikke-reviderede tendenser trends: Aktivér trends + trends_as_landing_page: Brug tendenser som destinationssiden interactions: must_be_follower: Blokér notifikationer fra ikke-følgere must_be_following: Blokér notifikationer fra folk, som ikke følges diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 0090c2f96d..4a13cea7c4 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -50,7 +50,7 @@ de: scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen. setting_aggregate_reblogs: Zeige denselben Beitrag nicht nochmal an, wenn er erneut geteilt wurde (dies betrifft nur neulich erhaltene erneut geteilte Beiträge) setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail verschickt, wenn du gerade auf Mastodon aktiv bist - setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden erst nach einem zusätzlichen Klick angezeigt + setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen wurden, werden erst nach einem zusätzlichen Klick angezeigt setting_display_media_default: Medien mit Inhaltswarnung ausblenden setting_display_media_hide_all: Medien immer ausblenden setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen @@ -74,9 +74,9 @@ de: hide: Den gefilterten Beitrag vollständig ausblenden, als hätte er nie existiert warn: Den gefilterten Beitrag hinter einer Warnung, die den Filtertitel beinhaltet, ausblenden form_admin_settings: - activity_api_enabled: Anzahl der lokal veröffentlichten Beiträge, der aktiven Benutzer*innen und neuen Registrierungen in wöchentlichen Abständen + activity_api_enabled: Anzahl der wöchentlichen Beiträge, aktiven Profile und Registrierungen auf diesem Server backups_retention_period: Behalte die Archive, die von den Benutzer*innen erstellt worden sind, für die angegebene Anzahl an Tagen. - bootstrap_timeline_accounts: Diese Profile werden bei den Follower-Empfehlungen für neu registrierte Nutzer*innen oben angeheftet. + bootstrap_timeline_accounts: Diese Konten werden bei den Follower-Empfehlungen für neu registrierte Nutzer*innen oben angeheftet. closed_registrations_message: Wird angezeigt, wenn Registrierungen deaktiviert sind content_cache_retention_period: Beiträge von anderen Servern werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht. Dies kann eventuell nicht rückgängig gemacht werden. custom_css: Du kannst benutzerdefinierte Stile auf die Web-Version von Mastodon anwenden. @@ -91,7 +91,7 @@ de: site_short_description: Eine kurze Beschreibung zur eindeutigen Identifizierung des Servers. Wer betreibt ihn, für wen ist er bestimmt? site_terms: Verwende eine eigene Datenschutzerklärung oder lasse das Feld leer, um die allgemeine Vorlage zu verwenden. Kann mit der Markdown-Syntax formatiert werden. site_title: Wie Personen neben dem Domainnamen auf deinen Server verweisen können. - status_page_url: URL einer Seite, auf der der Status des Servers während eines Ausfalls angezeigt werden kann + status_page_url: URL einer Seite, auf der der Serverstatus während eines Ausfalls angezeigt wird theme: Das Design, das abgemeldete Besucher und neue Benutzer sehen. thumbnail: Ein Bild ungefähr im 2:1-Format, das neben den Server-Informationen angezeigt wird. timeline_preview: Besucher*innen und ausgeloggte Benutzer*innen können die neuesten öffentlichen Beiträge dieses Servers aufrufen. @@ -116,7 +116,7 @@ de: rule: text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp sessions: - otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:' + otp: 'Gib den Zwei-Faktor-Code von deinem Smartphone ein oder benutze einen deiner Wiederherstellungscodes:' webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst. tag: name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen @@ -131,21 +131,21 @@ de: 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 - url: Wo Ereignisse hingesendet werden + url: Wohin Ereignisse geschickt werden labels: account: fields: name: Beschriftung value: Inhalt account_alias: - acct: Adresse des alten Kontos + acct: Profilname des alten Kontos account_migration: acct: Adresse des neuen Kontos account_warning_preset: text: Vorlagentext title: Titel admin_account_action: - include_statuses: Beitragsmeldungen in die E-Mail mit anfügen + include_statuses: Gemeldete Beiträge der E-Mail beifügen send_email_notification: Benachrichtigung per E-Mail text: Benutzerdefinierte Verwarnung type: Aktion @@ -171,7 +171,7 @@ de: chosen_languages: Sprachen einschränken confirm_new_password: Neues Passwort bestätigen confirm_password: Passwort bestätigen - context: Filter nach Bereichen + context: Nach Bereichen filtern current_password: Derzeitiges Passwort data: Daten discoverable: Dieses Konto anderen empfehlen @@ -233,7 +233,7 @@ de: hide: Vollständig ausblenden warn: Mit einer Inhaltswarnung ausblenden form_admin_settings: - activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API + activity_api_enabled: Aggregierte Nutzungsdaten über die API veröffentlichen backups_retention_period: Aufbewahrungsfrist für Archive bootstrap_timeline_accounts: Neuen Nutzern immer diese Konten empfehlen closed_registrations_message: Nachricht, falls Registrierungen deaktiviert sind @@ -241,7 +241,7 @@ de: custom_css: Eigenes CSS mascot: Benutzerdefiniertes Maskottchen (Legacy) media_cache_retention_period: Aufbewahrungsfrist für den Medien-Cache - peers_api_enabled: Veröffentliche Liste bekannter Server in der API + peers_api_enabled: Über die API die bekanntgewordenen Fediverse-Server veröffentlichen profile_directory: Profilverzeichnis aktivieren registrations_mode: Wer darf ein neues Konto registrieren? require_invite_text: Begründung für Beitritt verlangen diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 8b7dace23c..83aa4159d8 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -30,7 +30,7 @@ et: appeal: text: Otsust on võimalik vaidlustada vaid 1 kord defaults: - autofollow: Inimesed, kes loovad konto selle kutse läbi, automaatselt jälgivad Teid + autofollow: Inimesed, kes loovad konto selle kutse läbi, automaatselt jälgivad sind avatar: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini 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 @@ -54,7 +54,7 @@ et: setting_display_media_default: Peida tundlikuks märgitud meedia 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_hide_network: Profiilil ei kuvata, keda sa jälgid ja kes sind jälgib 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 @@ -281,8 +281,8 @@ et: digest: Saada ülevaatlike e-kirju favourite: Saada e-kiri, kui keegi lisab su postituse lemmikuks 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 + follow_request: Saada e-kiri, kui keegi soovib sind jälgida + mention: Saada e-kiri, kui keegi mainib sind pending_account: Saada e-kiri, kui uus konto vajab ülevaatlust reblog: Keegi jagas postitust report: Esitatud on uus raport diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index f22ba7a981..ac5e0a8ce4 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -8,7 +8,7 @@ fi: 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, aihetunnisteita ja mainintoja - title: Vapaaehtoinen. Ei näytetä vastaanottajalle + title: Valinnainen. Ei näy vastaanottajalle admin_account_action: include_statuses: Käyttäjä näkee mitkä viestit johtivat toimenpiteeseen tai varoitukseen send_email_notification: Käyttäjä saa selityksen mitä tapahtui hänen tililleen @@ -67,7 +67,7 @@ fi: domain: Tämä voi olla se verkkotunnus, joka näkyy sähköpostiosoitteessa tai MX tietueessa jota se käyttää. Ne tarkistetaan rekisteröitymisen yhteydessä. with_dns_records: Annetun verkkotunnuksen DNS-tietueet yritetään ratkaista ja tulokset myös estetään featured_tag: - name: 'Tässä muutamia aihetunnisteita, joita käytit viime aikoina:' + name: 'Tässä muutamia hiljattain käyttämiäsi aihetunnisteita:' filters: action: Valitse, mikä toiminto suoritetaan, kun viesti vastaa suodatinta actions: diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 294fc548bb..1d63fb631c 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -167,7 +167,7 @@ ko: defaults: autofollow: 초대를 통한 팔로우 avatar: 아바타 - bot: 이것은 봇 계정입니다 + bot: 이것은 자동화된 계정입니다 chosen_languages: 언어 필터링 confirm_new_password: 암호 다시 입력 confirm_password: 암호 다시 입력 @@ -187,7 +187,7 @@ ko: locked: 팔로우 요청 필요 max_uses: 사용 횟수 제한 new_password: 새로운 암호 입력 - note: 자기소개 + note: 소개 otp_attempt: 이중 인증 코드 password: 암호 phrase: 키워드 또는 문장 @@ -214,7 +214,7 @@ ko: setting_system_font_ui: 시스템의 기본 글꼴을 사용 setting_theme: 사이트 테마 setting_trends: 오늘의 유행 보이기 - setting_unfollow_modal: 언팔로우 전 언팔로우 확인 표시 + setting_unfollow_modal: 누군가를 언팔로우 할 때 확인란 표시하기 setting_use_blurhash: 숨겨진 미디어에 대해 그라디언트 표시 setting_use_pending_items: 느린 모드 severity: 심각도 diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml index 8a1cefc94b..44a40e4868 100644 --- a/config/locales/simple_form.my.yml +++ b/config/locales/simple_form.my.yml @@ -2,40 +2,125 @@ my: simple_form: hints: + account_alias: + acct: သင်ပြောင်းရွှေ့လိုသောအကောင့်၏ username@domain ကိုသတ်မှတ်ပါ + account_warning_preset: + text: URLs၊ hashtags နှင့် mentions များကဲ့သို့ ပို့စ်ကို သုံးနိုင်သည် + admin_account_action: + include_statuses: အသုံးပြုသူသည် မည်သည့်ပို့စ်များမှာ စိစစ်ထားခြင်း သို့မဟုတ် သတိပေးထားခြင်းဖြစ်စေသည်ကို တွေ့မြင်နိုင်ပါသည် + send_email_notification: အသုံးပြုသူသည် ၎င်းတို့၏အကောင့်နှင့် ဖြစ်ပျက်ခဲ့သော ရှင်းလင်းချက်ကို လက်ခံရရှိမည်ဖြစ်သည် + type_html: "%{acct} နှင့် ဘာလုပ်ရမည်ကို ရွေးပါ။" + announcement: + scheduled_at: ကြေညာချက်ချက်ချင်းထုတ်ပြန်ရန်အတွက် နေရာလွတ်ချန်ထားပါ defaults: + autofollow: ဖိတ်ကြားချက်မှတစ်ဆင့် အကောင့်ဖွင့်သူများမှာ သင့်ကို အလိုအလျောက်စောင့်ကြည့်မည်ဖြစ်ပါသည် + avatar: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည်။ + bot: အကောင့်သည် အဓိကအားဖြင့် အလိုအလျောက် လုပ်ဆောင်ချက်များ ဆောင်ရွက်နိုင်ပြီး စောင့်ကြည့်ခြင်းမပြုနိုင်ကြောင်း အခြားသူများအား အသိပေးပါ + context: စစ်ထုတ်သင့်သည့် အကြောင်းအရာ တစ်ခု သို့မဟုတ် များစွာ + current_password: လုံခြုံရေးအတွက် ကျေးဇူးပြုပြီး လက်ရှိအကောင့်၏ စကားဝှက်ကို ထည့်ပါ + current_username: အတည်ပြုရန်အတွက် လက်ရှိအကောင့်၏ အသုံးပြုသူအမည်ကို ရိုက်ထည့်ပါ + digest: အချိန်အတော်ကြာ အသုံးမပြုသည့်သည့်နောက်တွင်သာ ပေးပို့ပြီး အသုံးမပြုသည့်ကာလအတွင်း ကိုယ်ရေးကိုယ်တာစာများသာ လက်ခံရန် + discoverable: အကြံပြုချက်များ၊ လက်ရှိခေတ်စားနေသောပို့စ်များနှင့် အခြားအကြောင်းအရာများမှတစ်ဆင့် သင့်အကောင့်ကို တခြားသူများက တွေ့ရှိနိုင်စေရန် ခွင့်ပြုပါ။ + email: သင့်ထံ အတည်ပြုချက်အီးမေးလ်တစ်စောင် ပေးပို့ပါမည် + fields: သင့်ပရိုဖိုင်တွင် ၄ ခုအထိ ပြသထားနိုင်သည် + header: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည် + inbox_url: သင်အသုံးပြုလိုသော relay ၏ ရှေ့စာမျက်နှာမှ URL ကို ကူးယူပါ + locale: အသုံးပြုသူမှ လက်ရှိသုံးနေသည့်ဘာသာစကား၊ အီးမေးလ်များနှင့် ရရှိစေရန်ပေးပို့သည့် အသိပေးချက်များ + locked: စောင့်ကြည့်ရန်အတွက် တောင်းဆိုမှုများကို အတည်ပြုခြင်းဖြင့် စောင့်ကြည့်သူများကို ထိန်းချုပ်နိုင်သည် password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။ + setting_aggregate_reblogs: မကြာသေးခင်က Boost လုပ်ထားသောပို့စ်များအတွက် Boost အသစ်များကို မပြပါနှင့် (အသစ်ရရှိထားသော Boost များကိုသာ ပြသပါရန်) + setting_always_send_emails: Mastodon ကို လက်ရှိအသုံးပြုနေချိန်တွင် ပုံမှန်အားဖြင့် အီးမေးလ်အသိပေးချက်များကို ပေးပို့မည်မဟုတ်ပါ + setting_default_sensitive: သတိထားရသောမီဒီယာကို မူလအားဖြင့် ဖျောက်ထားနိုင်ပြီး ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် ပြန်လည်ဖော်ပြနိုင်သည် + setting_display_media_default: သတိထားရသောမီဒီယာအဖြစ် သတ်မှတ်ထားမှုအား ဖျောက်ပါ setting_display_media_hide_all: မီဒီယာကို အမြဲတမ်းဖျောက်ထားပါ setting_display_media_show_all: မီဒီယာကို အမြဲတမ်းပြပါ setting_hide_network: သင်စောင့်ကြည့်မည့်သူများနှင့် သင့်ကိုစောင့်ကြည့်မည့်သူများကို သင့်ပရိုဖိုင်တွင် ဖျောက်ထားနိုင်ပါသည် setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည် setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည် + username: "%{domain} ရှိ သင့်အသုံးပြုသူအမည်မှာ တူညီ၍မရပါ" + email_domain_block: + domain: "၎င်းမှာ အီးမေးလ်လိပ်စာ သို့မဟုတ် အသုံးပြုသည့် MX မှတ်တမ်းတွင် ပေါ်လာသည့် ဒိုမိန်းအမည် ဖြစ်နိုင်သည်။ အကောင့်ဖွင့်ပြီးပါက စစ်ဆေးနိုင်မည်ဖြစ်သည်။" + featured_tag: + name: ဤသည်မှာ သင်မကြာသေးမီက အသုံးပြုခဲ့သော hashtag အချို့ဖြစ်သည် - + filters: + action: ပို့စ်တစ်ခုသည် စစ်ထုတ်မှုနှင့် ကိုက်ညီချိန်တွင် မည်သည့်လုပ်ဆောင်ချက် ဆောင်ရွက်မည်ကို ရွေးချယ်ပါ + actions: + warn: စစ်ထုတ်မှုခေါင်းစဉ်ကိုဖော်ပြသည့်သတိပေးချက်နောက်တွင် စစ်ထုတ်ထားသောအကြောင်းအရာကို ဖျောက်ထားပါ + form_admin_settings: + activity_api_enabled: အပတ်စဉ် စာရင်းများတွင် ဒေသတွင်းတင်ထားသောပို့စ်များ၊ လက်ရှိအသုံးပြုသူများနှင့် စာရင်းသွင်းမှုအသစ်များ + backups_retention_period: သတ်မှတ်ထားသော ရက်အရေအတွက်အလိုက် အသုံးပြုသူမှတ်တမ်းများကို သိမ်းဆည်းပါ။ + bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များ၏ စောင့်ကြည့်မှု အကြံပြုချက်များ၏ထိပ်ဆုံးတွင် ပင်ချိတ်ထားပါမည်။ + closed_registrations_message: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ထားသည့်အခါတွင် ပြသထားသည် + custom_css: Mastodon ဝဘ်ဗားရှင်းတွင် စိတ်ကြိုက်စတိုင်များကို အသုံးပြုနိုင်ပါသည်။ + site_contact_username: Mastodon တွင် အခြားသူများက သင့်ကို မည်သို့သိရှိနိုင်မည်နည်း။ + site_extended_description: ဝင်ရောက်ကြည့်ရှုသူများနှင့် အသုံးပြုသူများအတွက် အသုံးဝင်မည့် နောက်ထပ်အချက်အလက်များကို Markdown စာကြောင်းများဖြင့် ရေးသားနိုင်သည်။ + site_terms: သင့်ကိုယ်ပိုင် ကိုယ်ရေးအချက်အလက်မူဝါဒကို အသုံးပြုပါ သို့မဟုတ် မူလသတ်မှတ်ချက်ကို အသုံးပြုရန်အတွက် ကွက်လပ်ထားပါ။ Markdown စာများဖြင့် ရေးသားနိုင်သည်။ + status_page_url: ပြတ်တောက်နေစဉ်အတွင်း လူများက ဤဆာဗာအခြေအနေကို မြင်နိုင်မည့် စာမျက်နှာ URL + theme: အကောင့်မှထွက်ပြီး အသုံးပြုသူအသစ်များနှင့် ဝင်ကြည့်မည့်သူများအတွက် မြင်ရမည့်ပုံစံ။ + timeline_preview: အကောင့်မှထွက်ထားသူများသည် ဆာဗာပေါ်ရှိ လတ်တလော အများမြင်ပို့စ်များကို ရှာဖွေကြည့်ရှုနိုင်မည်ဖြစ်သည်။ + trends: လက်ရှိခေတ်စားနေသာပို့စ်များ၊ hashtag များနှင့် သတင်းဇာတ်လမ်းများကို သင့်ဆာဗာပေါ်တွင် တွေ့မြင်နိုင်ပါမည်။ + trends_as_landing_page: ဤဆာဗာဖော်ပြချက်အစား အကောင့်မှ ထွက်ထားသူများနှင့် ဝင်ရောက်ကြည့်ရှုသူများအတွက် ခေတ်စားနေသော အကြောင်းအရာများကို ပြသပါ။ ခေတ်စားနေသောပို့စ်များကို ဖွင့်ထားရန် လိုအပ်သည်။ + form_challenge: + current_password: သင်သည် လုံခြုံသောနေရာသို့ ဝင်ရောက်နေပါသည် imports: data: အခြား Mastodon ဆာဗာမှ CSV ဖိုင်ကို ပို့ထားသည် invite_request: text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်" ip_block: + comment: ရွေးချယ်ခွင့်ရှိသည်။ ဤစည်းမျဉ်းကို ဘာကြောင့်ထည့်ခဲ့တာလဲဆိုတာ သတိရပါ။ severities: + no_access: အရင်းအမြစ်များအားလုံးသို့ ဝင်ရောက်ခွင့်ကို ပိတ်ပါ + sign_up_block: အကောင့်အသစ်များ မဖွင့်နိုင်တော့ပါ sign_up_requires_approval: အကောင့်အသစ်များသည် သင့်ခွင့်ပြုချက်လိုအပ်ပါသည် + severity: ဤ IP မှ တောင်းဆိုမှုများဖြင့် ဖြစ်ပေါ်လာမည့်အရာ ရွေးချယ်ပါ + rule: + text: ဤဆာဗာအသုံးပြုသူများအတွက် စည်းမျဉ်း သို့မဟုတ် လိုအပ်ချက် ဖော်ပြပါ။ လိုရင်းတိုရှင်းဖြစ်ပါစေ။ sessions: otp: သင့်ဖုန်းအက်ပ်မှထုတ်ပေးသောနှစ်ဆင့်ခံလုံခြုံရေးကုဒ်ကို ထည့်ပါ သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုပါ - + webauthn: USB ကီးဖြစ်ပါက ထည့်သွင်းပါ။ လိုအပ်ပါက နှိပ်ပါ။ + tag: + name: ဥပမာအားဖြင့် စာလုံးများကို ပိုမိုဖတ်ရှုနိုင်စေရန်မှာ သင်သာ ပြောင်းလဲနိုင်သည်။ + user: + chosen_languages: အမှန်ခြစ် ရွေးချယ်ထားသော ဘာသာစကားများဖြင့်သာ ပို့စ်များကို အများမြင်စာမျက်နှာတွင် ပြသပါမည် + role: အသုံးပြုသူ၏ ခွင့်ပြုချက်ကဏ္ဍကို ထိန်းချုပ်ထားသည် + user_role: + color: hex ပုံစံ RGB အဖြစ် UI တစ်လျှောက်လုံး အခန်းကဏ္ဍအတွက် အသုံးပြုရမည့်အရောင် + highlighted: ယင်းက အခန်းကဏ္ဍကို အများမြင်အောင် ဖွင့်ပေးထားသည်။ + name: အကယ်၍ အခန်းကဏ္ဍကို သင်္ကေတတစ်ခုအဖြစ်ပြသရန် သတ်မှတ်ထားပါက အခန်းကဏ္ဍကို အများမြင်မည့်အမည် + permissions_as_keys: ဤအခန်းကဏ္ဍဖြင့် အသုံးပြုသူများသာ အသုံးပြုခွင့်ရှိပါမည်... + webhook: + events: ပို့မည့်အကြောင်းအရာများကို ရွေးချယ်ပါ + url: အကြောင်းအရာများကို ဘယ်ကို ပို့မလဲ။ labels: account: fields: + name: အညွှန်း value: အကြောင်းအရာ account_alias: acct: အကောင့်ဟောင်းကို ကိုင်တွယ်ပါ။ account_migration: acct: အကောင့်သစ်ကို ကိုင်တွယ်ပါ။ account_warning_preset: + text: ကြိုရေးထားသောစာ title: ခေါင်းစဥ် admin_account_action: + include_statuses: အီးမေးလ်တွင် တိုင်ကြားထားသောပို့စ်များကို ထည့်သွင်းပါ + send_email_notification: အသုံးပြုသူတစ်ယောက်တွင် အီးမေးလ်တစ်ခုသာ အသုံးပြုရပါမည် + text: စိတ်ကြိုက်သတိပေးချက် type: လုပ်ဆောင်ချက် types: none: သတိပေးချက်ပေးပို့ပါ + sensitive: သတိထားရသော silence: ကန့်သတ် + suspend: ရပ်ဆိုင်းရန် + warning_preset_id: ကြိုတင်သတိပေးချက်ကို အသုံးပြုပါ announcement: + all_day: တစ်နေ့တာလုပ်ငန်းစဉ် + ends_at: အကြောင်းအရာ၏အဆုံး + starts_at: အကြောင်းအရာ၏အစ text: ကြေညာချက် defaults: + autofollow: သင့်အကောင့်စောင့်ကြည့်ရန် ဖိတ်ခေါ်ပါ avatar: ကိုယ်စားပြုရုပ်ပုံ bot: ဤသည်မှာ ဘော့တ်အကောင့်တစ်ခုဖြစ်သည်။ chosen_languages: ဘာသာစကားများကို စစ်ထုတ်ထားခြင်း @@ -44,42 +129,82 @@ my: context: အကြောင်းအရာများကို စစ်ထုတ်ပါ။ current_password: လက်ရှိစကားဝှက် data: အချက်အလက် + discoverable: အကောင့်ကို အခြားသူများအား အကြံပြုပါ display_name: ဖော်ပြမည့်အမည် email: အီးမေးလ်လိပ်စာ + expires_in: သက်တမ်းကုန်ဆုံးမည့်ရက် header: မျက်နှာဖုံးပုံ honeypot: "%{label} (မဖြည့်ပါနှင့်)" + locale: ဘာသာစကား + locked: စောင့်ကြည့်တောင်းဆိုမှုများ လိုအပ်သည် + max_uses: အများဆုံးအသုံးပြုမှုအရေအတွက် new_password: စကားဝှက်အသစ် note: ကိုယ်ရေးအကျဉ်း otp_attempt: နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် password: စကားဝှက် phrase: အဓိကစကားလုံး သို့မဟုတ် စကားစု + setting_advanced_layout: အဆင့်မြှင့်ထားသည့်ဝဘ်ကို ဖွင့်ပါ + setting_aggregate_reblogs: စာမျက်နှာများရှိ အဖွဲ့လိုက် Boost များ setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ + setting_boost_modal: Boost မလုပ်မီ အတည်ပြုချက်ပြပါ + setting_default_language: ပို့စ်တင်မည့်ဘာသာစကား + setting_default_privacy: ပို့စ်ကို ဘယ်သူမြင်နိုင်မလဲ + setting_default_sensitive: သတိထားရသောမီဒီယာအဖြစ် အမြဲအမှတ်အသားပြုပါ + setting_delete_modal: ပို့စ်တစ်ခုမဖျက်မီ အတည်ပြုချက်ပြပါ။ setting_display_media: မီဒီယာဖော်ပြမှု + setting_display_media_default: မူလသတ်မှတ်ချက် setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ setting_display_media_show_all: အားလုံးပြရန် + setting_expand_spoilers: အကြောင်းအရာသတိပေးချက်များဖြင့် အမှတ်အသားပြုထားသော ပို့စ်များကို အမြဲချဲ့ပါ + setting_hide_network: သင့် Social Graph ကို ဖျောက်ထားပါ + setting_noindex: ရှာဖွေရေးအညွှန်းမှ ဖယ်ထုတ်ပါ + setting_show_application: ပို့စ်များ ပေးပို့ရာတွင် အသုံးပြုသည့် အက်ပလီကေးရှင်း setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ + setting_theme: ဆိုက်အပြင်အဆင် setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ + setting_use_pending_items: အနှေးပြကွက် sign_in_token_attempt: လုံခြုံရေးကုဒ် title: ခေါင်းစဥ် + type: ထည့်သွင်းမှုအမျိုးအစား username: အသုံးပြုသူအမည် username_or_email: အသုံးပြုသူအမည် သို့မဟုတ် အီးမေးလ် + whole_word: စကားလုံးဖြင့်သာ + email_domain_block: + with_dns_records: ဒိုမိန်း၏ MX မှတ်တမ်းများနှင့် IP များ ထည့်သွင်းပါ featured_tag: name: Hashtag + filters: + actions: + hide: လုံးဝဖျောက်ထားပါ + warn: သတိပေးချက်ဖြင့် ဖျောက်ပါ form_admin_settings: + backups_retention_period: အသုံးပြုသူ၏ မှတ်တမ်းကာလ + bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များအတွက် အကြံပြုပေးပါ + closed_registrations_message: အကောင့်ဖွင့်ခြင်းများ မရတော့သောအခါ စိတ်ကြိုက်မက်ဆေ့ချ်ပို့ခြင်း + content_cache_retention_period: အကြောင်းအရာ ကက်ရှ်ထိန်းသိမ်းသည့်ကာလ custom_css: စိတ်ကြိုက်ပြုလုပ်ထားသော CSS mascot: စိတ်ကြိုက်ပြုလုပ်ထားသော mascot (legacy) + media_cache_retention_period: မီဒီယာကက်ရှ် ထိန်းသိမ်းသည့်ကာလ + peers_api_enabled: API တွင် ရှာဖွေတွေ့ရှိထားသော ဆာဗာများစာရင်းကို ထုတ်ပြန်ပါ + profile_directory: ပရိုဖိုင်လမ်းညွှန်ကို ဖွင့်ပါ registrations_mode: ဘယ်သူတွေ အကောင့်ဖွင့်နိုင်မလဲ require_invite_text: ပါဝင်ရန် အကြောင်းပြချက်တစ်ခု လိုအပ်ပါသည် show_domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများကိုပြရန် show_domain_blocks_rationale: ဒိုမိန်းများကို ဘာကြောင့် ပိတ်ဆို့ထားရကြောင်း ပြရန် site_contact_email: ဆက်သွယ်ရမည့် အီးမေးလ် site_contact_username: ဆက်သွယ်ရမည့် အသုံးပြုသူအမည် + site_extended_description: တိုးချဲ့ဖော်ပြချက် site_short_description: ဆာဗာဖော်ပြချက် site_terms: ကိုယ်ရေးအချက်အလက်မူဝါဒ site_title: ဆာဗာအမည် + status_page_url: အခြေအနေပြစာမျက်နှာ URL + theme: မူလသတ်မှတ်ထားသည့် အပြင်အဆင် thumbnail: ဆာဗာ ပုံသေး + timeline_preview: အများမြင်စာမျက်နှာများသို့ အထောက်အထားမရှိဘဲ ဝင်ရောက်ခွင့်ပြုပါ + trendable_by_default: ကြိုမသုံးသပ်ဘဲ ခေတ်စားနေသောအကြောင်းအရာများကို ခွင့်ပြုပါ + trends: လက်ရှိခေတ်စားနေမှုများကိုပြပါ interactions: must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ @@ -92,26 +217,42 @@ my: comment: မှတ်ချက် ip: IP severities: + no_access: ဝင်ရောက်ခွင့်ကို ပိတ်ပါ sign_up_block: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ပါ sign_up_requires_approval: အကောင့်ဖွင့်ခြင်းများကို ကန့်သတ်ပါ severity: စည်းမျဉ်း notification_emails: + appeal: တစ်စုံတစ်ယောက်က စိစစ်ဆုံးဖြတ်ခြင်းကို တောင်းခံနေသည် + digest: အီးမေးလ်အကျဉ်းချုပ်များပို့ရန် favourite: တစ်စုံတစ်ဦးက သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်။ follow: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ခဲ့သည် follow_request: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုခဲ့သည် mention: တစ်စုံတစ်ဦးက သင့်ကို ဖော်ပြခဲ့သည် pending_account: အကောင့်အသစ်ကို ပြန်လည်သုံးသပ်ရန် လိုအပ်သည် + reblog: တစ်ယောက်က သင့်ပို့စ်ကို Boost လုပ်ခဲ့သည် + report: အစီရင်ခံစာအသစ် တင်သွင်းထားသည် + trending_tag: လက်ရှိခေတ်စားနေသောပို့စ်များကို ပြန်လည်သုံးသပ်ရန် လိုသည် rule: text: စည်းမျဉ်း tag: + listable: ရှာဖွေမှုများနှင့် အကြံပြုချက်များတွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ name: Hashtag + trendable: ခေတ်စားနေသောအကြောင်းအရာများအောက်တွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ + usable: ပို့စ်များကို ဤ hashtag သုံးခွင့်ပြုပါ user: role: အခန်းကဏ္ဍ user_role: + color: သင်္ကေတအရောင် + highlighted: အသုံးပြုသူပရိုဖိုင်များတွင် သင်္ကေတအဖြစ် အခန်းကဏ္ဍကို ပြသပါ name: အမည် permissions_as_keys: ခွင့်ပြုချက်များ position: ဦးစားပေး + webhook: + events: အကြောင်းအရာများကဏ္ဍကို ဖွင့်ထားသည် + url: URL ဆုံးမှတ် 'no': မလုပ်ပါ + not_recommended: ထောက်ခံထားမှုမရှိ + recommended: ထောက်ခံထားပြီး required: mark: "*" text: လိုအပ်သော diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 92578cfd73..ddc1a0d21b 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -257,6 +257,7 @@ pt-BR: timeline_preview: Permitir acesso não autenticado às linhas do tempo públicas trendable_by_default: Permitir tendências sem revisão prévia trends: Habilitar tendências + trends_as_landing_page: Usar tendências como página inicial interactions: must_be_follower: Bloquear notificações de não-seguidores must_be_following: Bloquear notificações de não-seguidos diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 2f45b63576..e987145c13 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -3,122 +3,128 @@ sr-Latn: simple_form: hints: account_alias: - acct: Navedi korisničko_ime@domen naloga sa kojeg želiš da pređeš + acct: Navedite korisničko_ime@domen naloga sa kojeg želite da se preselite account_migration: - acct: Navedi korisničko_ime@domen naloga na koji želiš da pređeš + acct: Navedite korisničko_ime@domen naloga na koji želite da se preselite account_warning_preset: - text: Možete koristiti sintaksu truba, kao što su npr. URL-ova, tarabe i pominjanja + text: Možete koristiti sintaksu objava, kao što su URL adrese, heš oznake i pominjanja title: Opciono. Nije vidljivo primaocu admin_account_action: - include_statuses: Korisnik će videti koje su objave prouzrokovale moderiranje ili upozorenje - send_email_notification: Korisnik će dobiti objašnjenje toga šta mu se desilo sa naloga - text_html: Opcionalno. Možete koristiti sintaksu truba. Možete dodati upozoravajuća prepodešavanje da sačuvate vreme + include_statuses: Korisnik će videti koje su objave prouzrokovale moderacijsku radnju ili upozorenje + send_email_notification: Korisnik će dobiti objašnjenje toga šta mu se desilo sa nalogom + text_html: Opcionalno. Možete koristiti sintaksu objava. Možete dodati unapred određene postavke upozorenja za uštedu vremena type_html: Izaberite šta da radite sa %{acct} types: - disable: Spreči korisnika da koristi svoj nalog, ali nemoj brisati ili sakrivati njegov sadržaj. - none: Koristi ovo da pošalješ upozorenje korisniku, bez pokretanja bilo koje druge akcije. + disable: Sprečava korisnika da koristi svoj nalog, ali ne briše niti sakriva njegove sadržaje. + none: Koristite ovo da pošaljete upozorenje korisniku bez pokretanja bilo koje druge radnje. sensitive: Učini da svi medijski prilozi ovog korisnika prisilno budu označeni kao osetljivi. + silence: Sprečava korisnika da pravi javne objave, sakriva njegove objave i obaveštenja od ljudi koji ga ne prate. Zatvara sve prijave podnete protiv ovog naloga. + suspend: Sprečava svu interakciju od ovog naloga i ka ovom nalogu i briše njegov sadržaj. Opozivo u roku od 30 dana. Zatvara sve prijave podnete protiv ovog naloga. warning_preset_id: Opcionalno. Možete i dalje dodati prilagođeni tekst na kraj preseta announcement: - all_day: Biće prikazani samo datumi vremenskog opsega koji su označeni + all_day: Kada je ova opcija označena, samo datumi iz vremenskog opsega će biti prikazani ends_at: Opciono. Objava će biti automatski opozvana u ovom trenutku - scheduled_at: Ostavi prazno da bi najava bila odmah objavljena + scheduled_at: Ostavite prazno da biste odmah objavili obaveštenje starts_at: Opciono. U slučaju da je najava vezana za određeni vremenski raspon - text: Možeš koristiti post sintaksu. Vodi računa o prostoru koji će objava zauzimati na ekranu korisnika + text: Možete koristiti sintaksu objava. Molimo Vas vodite računa o prostoru koji će objava zauzimati na ekranu korisnika appeal: - text: Na brisanje se možeš žaliti samo jednom + text: Možete podneti samo jednu žalbu na upisan prestup defaults: autofollow: Osobe koje se prijave kroz pozivnice će vas automatski zapratiti - avatar: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px - bot: Ovaj nalog uglavnom vrši automatizovane radnje i možda se ne nadgleda + avatar: PNG, GIF ili JPG. Najviše %{size}. Biće smanjeno na %{dimensions}px + bot: Daje drugima do znanja da ovaj nalog uglavnom vrši automatizovane radnje i možda se ne nadgleda context: Jedan ili više konteksta u kojima treba da se primeni filter - current_password: Unesi lozinku tekućeg naloga iz bezbednosnih razloga - current_username: Unesi korisničko ime tekućeg naloga za potvrdu - digest: Poslato posle dužeg perioda neaktivnosti sa pregledom svih bitnih stvari koje ste dobili dok ste bili odsutni - discoverable: Dozvoli nepoznatim korisnicima da otkriju tvoj nalog putem preporuka, trendova i drugih funkcija - email: Biće vam poslata e-pošta sa potvrdom - fields: Možete imati do 4 stavke prikazane kao tabela na vašem nalogu - header: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px + current_password: Iz bezbednosnih razloga molimo Vas unesite lozinku trenutnog naloga + current_username: Da biste potvrdili, Molimo Vas unesite korisničko ime trenutno aktivnog naloga + digest: Šalje se samo posle dužeg perioda neaktivnosti i samo u slučaju da ste primili jednu ili više ličnih poruka tokom Vašeg odsustva + discoverable: Dozvolite nepoznatim korisnicima da otkriju Vaš nalog putem preporuka, trendova i drugih funkcija + email: Biće Vam poslat mejl sa potvrdom + fields: Možete imati do 4 stavke prikazane kao tabela na svom profilu + header: PNG, GIF ili JPG. Najviše %{size}. Biće smanjeno na %{dimensions}px inbox_url: Kopirajte URL sa naslovne strane releja koji želite koristiti - irreversible: Filtrirane trube će nestati nepovratno, čak i ako je filter kasnije uklonjen - locale: Jezik korisničkog interfejsa, e-pošte i mobilnih obaveštenja - locked: Zahteva da pojedinačno odobrite pratioce + irreversible: Filtrirane obajve će nestati nepovratno, čak i ako je filter kasnije uklonjen + locale: Jezik korisničkog okruženja, e-pošte i mobilnih obaveštenja + locked: Kontrolišite ko može da Vas prati tako što ćete pojedinačno odobravati zahteve za praćenje password: Koristite najmanje 8 znakova - phrase: Biće uparena bez obzira na veliko ili malo slovo u tekstu ili upozorenja o sadržaju trube - scopes: Kojim API-jima će aplikacija dozvoliti pristup. Ako izaberete opseg najvišeg nivoa, ne morate odabrati pojedinačne. - setting_aggregate_reblogs: Ne pokazuj nova deljenja za trube koje su nedavno podeljene (utiče samo na nedavno primljena deljenja) - setting_always_send_emails: Obaveštenja e-poštom se po pravilu neće slati kada aktivno koristiš Mastodon + phrase: Biće uparena bez obzira na veliko ili malo slovo u tekstu ili upozorenja o sadržaju objave + scopes: Kojim API-jima će aplikacija imati pristup. Ako izaberete opseg najvišeg nivoa, ne morate odabrati pojedinačne. + setting_aggregate_reblogs: Ne prikazuj nova podržavanja za objave koje su nedavno podržane (utiče samo na nedavno primljena podržavanja) + setting_always_send_emails: Obaveštenja e-poštom se po pravilu neće slati kada aktivno koristite Mastodon setting_default_sensitive: Osetljivi mediji su podrazumevano skriveni i mogu se otkriti klikom setting_display_media_default: Sakrij medije označene kao osetljive setting_display_media_hide_all: Uvek sakrij sve medije setting_display_media_show_all: Uvek prikaži medije označene kao osetljive - setting_hide_network: Koga pratite i ko vas prati neće biti prikazano na vašem nalogu - setting_noindex: Utiče na Vaš javni nalog i statusne strane - setting_show_application: Aplikacija koju koristiš za objavljivanje biće prikazana u detaljnom prikazu tvojih objava - setting_use_blurhash: Gradijent se zasniva na bojama skrivenih vizuelnih prikaza, ali prikriva sve detalje - setting_use_pending_items: Sakrij ažuriranja vremenske ose iza klika umesto automatskog pomeranja izvora objava + setting_hide_network: Koga pratite i ko Vas prati neće biti prikazano na Vašem profilu + setting_noindex: Utiče na Vaš javni profil i stranice sa objavama + setting_show_application: Aplikacija koju koristite za objavljivanje će biti prikazana u detaljnom prikazu vaših objava + setting_use_blurhash: Gradijenti se formiraju na osnovu bojâ skrivenih slika i zamućuju prikaz, prikrivajući detalje + setting_use_pending_items: Sakriva ažuriranja vremenske linije iza klika umesto automatskog ažuriranja i pomeranja vremenske linije username: Vaš nadimak će biti jedinstven na %{domain} - whole_word: Kada je ključna reč ili fraza isključivo alfanumerička, biće primenjena samo ako se podudara sa celom reči + whole_word: Kada je ključna reč ili fraza isključivo alfanumerička, biće primenjena samo ako se podudara sa celom rečju domain_allow: domain: Ovaj domen će moći da preuzima podatke sa ovog servera i dolazni podaci sa njega će se obrađivati i čuvati email_domain_block: domain: Ovo može biti ime domena koje se pojavljuje u adresi e-pošte ili MX zapisa koji koristi. Oni će biti provereni prilikom registracije. with_dns_records: Biće učinjen pokušaj da se razreše DNS zapisi datog domena i rezultati će takođe biti blokirani featured_tag: - name: 'Evo nekih od heš oznaka koje ste nedavno koristili:' + name: 'Evo nekih od heš oznaka koje ste u prethodnom periodu često koristili:' filters: - action: Izaberi koju radnju treba izvršiti kada objava odgovara filteru + action: Izaberite koju radnju izvršiti kada objava odgovara filteru actions: hide: Potpuno sakrij filtrirani sadržaj, ponašajući se kao da ne postoji warn: Sakrij filtrirani sadržaj iza upozorenja u kome se navodi naziv filtera form_admin_settings: + activity_api_enabled: Brojevi lokalno postavljenih objava, aktivnih korisnika i novih registracija na nedeljnoj bazi backups_retention_period: Čuvaj generisane korisničke arhive navedeni broj dana. bootstrap_timeline_accounts: Ovi nalozi će biti zakačeni na vrh preporuka za praćenje novih korisnika. - closed_registrations_message: Prikazuje se kada su prijave zatvorene + closed_registrations_message: Prikazuje se kada su registracije zatvorene content_cache_retention_period: Kada se postavi na pozitivnu vrednost, objave sa drugih servera će biti izbrisane nakon navedenog broja dana. Ovo može biti nepovratno. - custom_css: Možeš da primeniš prilagođene stilove na veb verziji Mastodona. - mascot: Zamenjuje ilustraciju u naprednom veb interfejsu. + custom_css: Možete da primenite prilagođene stilove na veb verziji Mastodona. + mascot: Zamenjuje ilustraciju u naprednom veb okruženju. media_cache_retention_period: Kada se postavi na pozitivnu vrednost, preuzete medijske datoteke će biti izbrisane nakon navedenog broja dana, i ponovo preuzete na zahtev. + peers_api_enabled: Lista domena sa kojima se ovaj server susreo u fediverzumu. Ovde nisu sadržani podaci o tome da li se Vaš server federiše sa drugim serverima, već samo da Vaš server zna za njih. Ove informacije koriste servisi koji prikupljaju podatke i vode statistiku o federaciji u širem smislu. profile_directory: Direktorijum profila navodi sve korisnike koji su se opredelili da budu vidljivi. - require_invite_text: Kada registracije zahtevaju ručno odobrenje, postavi da unos teksta „Zašto želiš da se pridružiš?“ bude obavezan, a ne opcioni - site_contact_email: Kako korisnici mogu da te kontaktiraju za pravna pitanja ili pitanja u vezi podrške. - site_contact_username: Kako korisnici mogu da te kontaktiraju na Mastodonu. - site_extended_description: Bilo koja dodatna informacija koja može biti korisne posetiocima i tvojim korisnicima. Može se strukturirati pomoću Markdown sintakse. - site_short_description: Kratak opis pomoću koga se na jedinstven način identifikuje tvoj server. Ko ga održava, kome je namenjen? - site_terms: Koristi sopstvenu politiku privatnosti ili ostavi prazno da bi se koristila podrazumevana. Može se strukturirati pomoću Markdown sintakse. - site_title: Način na moji može da se pozove na tvoj server osim naziva njegovog domena. + require_invite_text: Kada registracije zahtevaju ručno odobrenje, postavite da odgovor na „Zašto želite da se pridružite?“ bude obavezan, a ne opcionalan + site_contact_email: Kako korisnici mogu da kontaktiraju sa Vama za pravna pitanja ili pitanja u vezi podrške. + site_contact_username: Kako korisnici mogu da kontaktiraju sa Vama na Mastodonu. + site_extended_description: Bilo kakve dodatne informacije koje mogu biti korisne posetiocima i Vašim korisnicima. Mogu se strukturirati pomoću Markdown sintakse. + site_short_description: Kratak opis pomoću koga se na jedinstven način identifikuje Vaš server. Ko ga održava, kome je namenjen? + site_terms: Koristite sopstvenu politiku privatnosti ili ostavite prazno da bi se koristila podrazumevana. Može se strukturirati pomoću Markdown sintakse. + site_title: Način na koji ljudi mogu da referišu na Vaš server osim naziva njegovog domena. + status_page_url: URL stranice gde ljudi mogu da vide status servera dok je server oboren theme: Tema koju vide posetioci koji nisu prijavljeni i novi korisnici. - thumbnail: Slika koja se približno 2:1 prikazuje pored informacija o tvom serveru. + thumbnail: Slika u razmeri od približno 2:1 koja se prikazuje pored informacija o Vašem serveru. timeline_preview: Posetioci koji nisu prijavljeni će moći da pregledaju najnovije javne objave dostupne na serveru. trendable_by_default: Preskoči ručni pregled sadržaja koji je u trendu. Pojedinačne stavke se nakon toga i dalje mogu ukloniti iz trendova. - trends: Trendovi pokazuju koje objave, heš oznake i vesti postaju sve popularniji na tvom serveru. + trends: Trendovi pokazuju koje objave, heš oznake i vesti postaju sve popularnije na Vašem serveru. + trends_as_landing_page: Prikaži sadržaj u trendu odjavljenim korisnicima i posetiocima umesto opisa ovog servera. Zahteva da trendovi budu omogućeni. form_challenge: - current_password: Ulaziš u bezbedno područje + current_password: Ulazite u bezbedno područje imports: data: CSV fajl izvezen sa druge Mastodont instance invite_request: - text: Ovo će nam pomoći da pregledamo tvoju prijavu + text: Ovo će nam pomoći da pregledamo Vašu prijavu ip_block: - comment: Opciono. Zapamti zašto si dodao ovo pravilo. + comment: Opciono. Zapamtite zašto ste dodali ovo pravilo. expires_in: IP adrese su ograničeni resurs, ponekad se dele i često menjaju korisnika. Zbog toga se IP blokovi na neograničeno vreme ne preporučuju. - ip: Unesi IPv4 ili IPv6 adresu. Možeš blokirati čitave opsege koristeći CIDR sintaksu. Vodi računa da sebe ne zaključaš! + ip: Unesite IPv4 ili IPv6 adresu. Možete blokirati čitave opsege koristeći CIDR sintaksu. Vodite računa da se ne zaključate! severities: no_access: Blokiraj pristup svim resursima - sign_up_block: Nove prijave neće biti moguće - sign_up_requires_approval: Nove prijave će zahtevati tvoje odobrenje - severity: Izaberi šta će se desiti sa zahtevima sa ove IP adrese + sign_up_block: Nove registracije neće biti moguće + sign_up_requires_approval: Nove registracije će zahtevati Vaše odobrenje + severity: Izaberite šta će se desiti sa zahtevima sa ove IP adrese rule: - text: Opiši pravilo ili zahtev za korisnike na ovom serveru. Potrudi se da opis bude kratak i jednostavan + text: Opišite pravilo ili uslov za korisnike na ovom serveru. Potrudite se da opis bude kratak i jednostavan sessions: otp: 'Unesite dvofaktorski kod sa Vašeg telefona ili koristite jedan od kodova za oporavak:' - webauthn: Ako je to USB ključ, obavezno ga ubaci i, ako je potrebno, pritisni ga. + webauthn: Ako je u pitanju USB ključ, obavezno ga ubacite i, ako je potrebno, pritisnite ga. tag: - name: Mogu se samo promeniti mala slova u velika, na primer, da bi bilo čitljivije + name: Mogu se samo promeniti mala slova u velika ili obrnuto, na primer, da bi bilo čitljivije user: - chosen_languages: Kada označite, trube u izabranim jezicima će se prikazati na javnoj vremenskoj liniji + chosen_languages: Kada je označeno, objave u izabranim jezicima će biti prikazane na javnoj vremenskoj liniji role: Uloga kontroliše koje dozvole korisnik ima user_role: - color: Boja koja će se koristiti za ulogu u celom korisničkom interfejsu, kao RGB, u heksadecimalnom formatu + color: Boja koja će se koristiti za ulogu u celom korisničkom okruženju, kao RGB u heksadecimalnom formatu highlighted: Ovo čini ulogu javno vidljivom name: Javni naziv uloge, ako je uloga podešena da se prikazuje kao značka permissions_as_keys: Korisnici sa ovom ulogom će imati pristup... @@ -185,24 +191,24 @@ sr-Latn: otp_attempt: Dvofaktorski kod password: Lozinka phrase: Ključna reč ili fraza - setting_advanced_layout: Omogući napredni veb interfejs + setting_advanced_layout: Omogući napredno veb okruženje setting_aggregate_reblogs: Grupiši deljenja u vremenskim linijama setting_always_send_emails: Uvek šalji obaveštenja e-poštom - setting_auto_play_gif: Automatski puštaj animirane GIF-ove + setting_auto_play_gif: Automatski reprodukuj animirane GIF-ove setting_boost_modal: Prikaži dijalog za potvrdu pre davanja podrške setting_crop_images: Izreži slike u neproširenim objavama na 16x9 setting_default_language: Jezik objavljivanja setting_default_privacy: Privatnost objava setting_default_sensitive: Uvek označi multimediju kao osetljivu - setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja tuta + setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja objave setting_disable_swiping: Onemogući pokrete prevlačenja setting_display_media: Prikaz medija setting_display_media_default: Podrazumevano setting_display_media_hide_all: Sakrij sve setting_display_media_show_all: Prikaži sve - setting_expand_spoilers: Uvek prošiti trube koje su označene upozorenjem sadržaja + setting_expand_spoilers: Uvek proširi objave koje su označene upozorenjem sadržaja setting_hide_network: Sakrij svoju mrežu - setting_noindex: Odjavi se od indeksiranja search engine-a + setting_noindex: Onemogući indeksiranje pretraživača setting_reduce_motion: Smanji pokrete u animacijama setting_show_application: Otkrij aplikaciju koja se koristi za slanje postova setting_system_font_ui: Koristi sistemski font @@ -227,6 +233,7 @@ sr-Latn: hide: Sakrij u potpunosti warn: Sakrij uz upozorenje form_admin_settings: + activity_api_enabled: Objavi prikupljenu statistiku o korisničkoj aktivnosti u API backups_retention_period: Period čuvanja korisničke arhive bootstrap_timeline_accounts: Uvek preporuči ove naloge novim korisnicima closed_registrations_message: Prilagođena poruka kada prijave nisu moguće @@ -234,6 +241,7 @@ sr-Latn: custom_css: Prilagođeni CSS mascot: Prilagođena maskota (nasleđe) media_cache_retention_period: Period čuvanja keša medija + peers_api_enabled: Objavite listu otkrivenih servera u API profile_directory: Omogući direktorijum profila registrations_mode: Ko može da se prijavi require_invite_text: Zatraži razlog za pristupanje @@ -245,11 +253,13 @@ sr-Latn: site_short_description: Opis servera site_terms: Politika privatnosti site_title: Ime servera + status_page_url: URL statusne stranice theme: Podrazumevana tema thumbnail: Sličica servera timeline_preview: Dozvoli neautorizovan pristup javnim vremenskim osama trendable_by_default: Dozvoli trendove bez prethodnog pregleda trends: Omogući trendove + trends_as_landing_page: Koristite trendove kao stranicu dočeka interactions: must_be_follower: Blokiraj obaveštenja od korisnika koji me ne prate must_be_following: Blokiraj obaveštenja od ljudi koje ne pratim @@ -260,7 +270,7 @@ sr-Latn: text: Zašto želiš da se pridružiš? ip_block: comment: Komentar - ip: Avatar + ip: IP severities: no_access: Blokiraj pristup sign_up_block: Blokiraj prijave diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index cb11250ad1..8ee5863770 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -3,117 +3,123 @@ sr: simple_form: hints: account_alias: - acct: Наведи корисничко_име@домен налога са којег желиш да пређеш + acct: Наведите корисничко_име@домен налога са којег желите да се преселите account_migration: - acct: Наведи корисничко_име@домен налога на који желиш да пређеш + acct: Наведите корисничко_име@домен налога на који желите да се преселите account_warning_preset: text: Можете користити синтаксу објава, као што су URL адресе, хеш ознаке и помињања title: Опционо. Није видљиво примаоцу admin_account_action: - include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење - send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога + include_statuses: Корисник ће видети које су објаве проузроковале модерацијску радњу или упозорење + send_email_notification: Корисник ће добити објашњење тога шта му се десило са налогом text_html: Опционално. Можете користити синтаксу објава. Можете додати унапред одређене поставке упозорења за уштеду времена type_html: Изаберите шта да радите са %{acct} types: - disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај. - none: Користи ово да пошаљеш упозорење кориснику, без покретања било које друге акције. + disable: Спречава корисника да користи свој налог, али не брише нити сакрива његове садржаје. + none: Користите ово да пошаљете упозорење кориснику без покретања било које друге радње. sensitive: Учини да сви медијски прилози овог корисника присилно буду означени као осетљиви. + silence: Спречава корисника да прави јавне објаве, сакрива његове објаве и обавештења од људи који га не прате. Затвара све пријаве поднете против овог налога. + suspend: Спречава сву интеракцију од овог налога и ка овом налогу и брише његов садржај. Опозиво у року од 30 дана. Затвара све пријаве поднете против овог налога. warning_preset_id: Опционално. Можете и даље додати прилагођени текст на крај пресета announcement: - all_day: Биће приказани само датуми временског опсега који су означени + all_day: Када је ова опција означена, само датуми из временског опсега ће бити приказани ends_at: Опционо. Објава ће бити аутоматски опозвана у овом тренутку - scheduled_at: Остави празно да би најава била одмах објављена + scheduled_at: Оставите празно да бисте одмах објавили обавештење starts_at: Опционо. У случају да је најава везана за одређени временски распон - text: Можеш користити пост синтаксу. Води рачуна о простору који ће објава заузимати на екрану корисника + text: Можете користити синтаксу објава. Молимо Вас водите рачуна о простору који ће објава заузимати на екрану корисника appeal: - text: На брисање се можеш жалити само једном + text: Можете поднети само једну жалбу на уписан преступ defaults: autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити avatar: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px - bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа + bot: Даје другима до знања да овај налог углавном врши аутоматизоване радње и можда се не надгледа context: Један или више контекста у којима треба да се примени филтер - current_password: Унеси лозинку текућег налога из безбедносних разлога - current_username: Унеси корисничко име текућег налога за потврду - digest: Послато после дужег периода неактивности са прегледом свих битних ствари које сте добили док сте били одсутни - discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција - email: Биће вам послата е-пошта са потврдом - fields: Можете имати до 4 ставке приказане као табела на вашем налогу + current_password: Из безбедносних разлога молимо Вас унесите лозинку тренутног налога + current_username: Да бисте потврдили, Молимо Вас унесите корисничко име тренутно активног налога + digest: Шаље се само после дужег периода неактивности и само у случају да сте примили једну или више личних порука током Вашег одсуства + discoverable: Дозволите непознатим корисницима да открију Ваш налог путем препорука, трендова и других функција + email: Биће Вам послат мејл са потврдом + fields: Можете имати до 4 ставке приказане као табела на свом профилу header: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px inbox_url: Копирајте URL са насловне стране релеја који желите користити irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен locale: Језик корисничког окружења, е-поште и мобилних обавештења - locked: Захтева да појединачно одобрите пратиоце + locked: Контролишите ко може да Вас прати тако што ћете појединачно одобравати захтеве за праћење password: Користите најмање 8 знакова phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају објаве - scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне. + scopes: Којим API-јима ће апликација имати приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне. setting_aggregate_reblogs: Не приказуј нова подржавања за објаве које су недавно подржане (утиче само на недавно примљена подржавања) - setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон + setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користите Мастодон setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом setting_display_media_default: Сакриј медије означене као осетљиве setting_display_media_hide_all: Увек сакриј све медије setting_display_media_show_all: Увек прикажи медије означене као осетљиве - setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу - setting_noindex: Утиче на Ваш јавни налог и статусне стране + setting_hide_network: Кога пратите и ко Вас прати неће бити приказано на Вашем профилу + setting_noindex: Утиче на Ваш јавни профил и странице са објавама setting_show_application: Апликација коју користите за објављивање ће бити приказана у детаљном приказу ваших објава - setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље - setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава + setting_use_blurhash: Градијенти се формирају на основу бојâ скривених слика и замућују приказ, прикривајући детаље + setting_use_pending_items: Сакрива ажурирања временске линије иза клика уместо аутоматског ажурирања и померања временске линије username: Ваш надимак ће бити јединствен на %{domain} - whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речи + whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речjу domain_allow: domain: Овај домен ће моћи да преузима податке са овог сервера и долазни подаци са њега ће се обрађивати и чувати email_domain_block: domain: Ово може бити име домена које се појављује у адреси е-поште или MX записа који користи. Они ће бити проверени приликом регистрације. with_dns_records: Биће учињен покушај да се разреше DNS записи датог домена и резултати ће такође бити блокирани featured_tag: - name: 'Ево неких од хеш ознака које сте недавно користили:' + name: 'Ево неких од хеш ознака које сте у претходном периоду често користили:' filters: - action: Изабери коју радњу треба извршити када објава одговара филтеру + action: Изаберите коју радњу извршити када објава одговара филтеру actions: hide: Потпуно сакриј филтрирани садржај, понашајући се као да не постоји warn: Сакриј филтрирани садржај иза упозорења у коме се наводи назив филтера form_admin_settings: + activity_api_enabled: Бројеви локално постављених објава, активних корисника и нових регистрација на недељној бази backups_retention_period: Чувај генерисане корисничке архиве наведени број дана. bootstrap_timeline_accounts: Ови налози ће бити закачени на врх препорука за праћење нових корисника. - closed_registrations_message: Приказује се када су пријаве затворене + closed_registrations_message: Приказује се када су регистрације затворене content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно. - custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона. + custom_css: Можете да примените прилагођене стилове на веб верзији Мастодона. mascot: Замењује илустрацију у напредном веб окружењу. media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев. + peers_api_enabled: Листа домена са којима се овај сервер сусрео у федиверзуму. Овде нису садржани подаци о томе да ли се Ваш сервер федерише са другим серверима, већ само да Ваш сервер зна за њих. Ове информације користе сервиси који прикупљају податке и воде статистику о федерацији у ширем смислу. profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви. - require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони - site_contact_email: Како корисници могу да те контактирају за правна питања или питања у вези подршке. - site_contact_username: Како корисници могу да те контактирају на Мастодону. - site_extended_description: Било која додатна информација која може бити корисне посетиоцима и твојим корисницима. Може се структурирати помоћу Markdown синтаксе. - site_short_description: Кратак опис помоћу кога се на јединствен начин идентификује твој сервер. Ко га одржава, коме је намењен? - site_terms: Користи сопствену политику приватности или остави празно да би се користила подразумевана. Може се структурирати помоћу Markdown синтаксе. - site_title: Начин на моји може да се позове на твој сервер осим назива његовог домена. + require_invite_text: Када регистрације захтевају ручно одобрење, поставите да одговор на „Зашто желите да се придружите?“ буде обавезан, а не опционалан + site_contact_email: Како корисници могу да контактирају са Вама за правна питања или питања у вези подршке. + site_contact_username: Како корисници могу да контактирају са Вама на Мастодону. + site_extended_description: Било какве додатне информације које могу бити корисне посетиоцима и Вашим корисницима. Могу се структурирати помоћу Markdown синтаксе. + site_short_description: Кратак опис помоћу кога се на јединствен начин идентификује Ваш сервер. Ко га одржава, коме је намењен? + site_terms: Користите сопствену политику приватности или оставите празно да би се користила подразумевана. Може се структурирати помоћу Markdown синтаксе. + site_title: Начин на који људи могу да реферишу на Ваш сервер осим назива његовог домена. + status_page_url: URL странице где људи могу да виде статус сервера док је сервер оборен theme: Тема коју виде посетиоци који нису пријављени и нови корисници. - thumbnail: Слика која се приближно 2:1 приказује поред информација о твом серверу. + thumbnail: Слика у размери од приближно 2:1 која се приказује поред информација о Вашем серверу. timeline_preview: Посетиоци који нису пријављени ће моћи да прегледају најновије јавне објаве доступне на серверу. trendable_by_default: Прескочи ручни преглед садржаја који је у тренду. Појединачне ставке се након тога и даље могу уклонити из трендова. - trends: Трендови показују које објаве, хеш ознаке и вести постају све популарнији на твом серверу. + trends: Трендови показују које објаве, хеш ознаке и вести постају све популарније на Вашем серверу. + trends_as_landing_page: Прикажи садржај у тренду одјављеним корисницима и посетиоцима уместо описа овог сервера. Захтева да трендови буду омогућени. form_challenge: - current_password: Улазиш у безбедно подручје + current_password: Улазите у безбедно подручје imports: data: CSV фајл извезен са друге Мастодонт инстанце invite_request: - text: Ово ће нам помоћи да прегледамо твоју пријаву + text: Ово ће нам помоћи да прегледамо Вашу пријаву ip_block: - comment: Опционо. Запамти зашто си додао ово правило. + comment: Опционо. Запамтите зашто сте додали ово правило. expires_in: IP адресе су ограничени ресурс, понекад се деле и често мењају корисника. Због тога се IP блокови на неограничено време не препоручују. - ip: Унеси IPv4 или IPv6 адресу. Можеш блокирати читаве опсеге користећи CIDR синтаксу. Води рачуна да себе не закључаш! + ip: Унесите IPv4 или IPv6 адресу. Можете блокирати читаве опсеге користећи CIDR синтаксу. Водите рачуна да се не закључате! severities: no_access: Блокирај приступ свим ресурсима - sign_up_block: Нове пријаве неће бити могуће - sign_up_requires_approval: Нове пријаве ће захтевати твоје одобрење - severity: Изабери шта ће се десити са захтевима са ове IP адресе + sign_up_block: Нове регистрације неће бити могуће + sign_up_requires_approval: Нове регистрације ће захтевати Ваше одобрење + severity: Изаберите шта ће се десити са захтевима са ове IP адресе rule: - text: Опиши правило или захтев за кориснике на овом серверу. Потруди се да опис буде кратак и једноставан + text: Опишите правило или услов за кориснике на овом серверу. Потрудите се да опис буде кратак и једноставан sessions: otp: 'Унесите двофакторски код са Вашег телефона или користите један од кодова за опоравак:' - webauthn: Ако је то USB кључ, обавезно га убаци и, ако је потребно, притисни га. + webauthn: Ако је у питању USB кључ, обавезно га убаците и, ако је потребно, притисните га. tag: - name: Могу се само променити мала слова у велика, на пример, да би било читљивије + name: Могу се само променити мала слова у велика или обрнуто, на пример, да би било читљивије user: chosen_languages: Када је означено, објаве у изабраним језицима ће бити приказане на јавној временској линији role: Улога контролише које дозволе корисник има @@ -227,6 +233,7 @@ sr: hide: Сакриј у потпуности warn: Сакриј уз упозорење form_admin_settings: + activity_api_enabled: Објави прикупљену статистику о корисничкој активности у API backups_retention_period: Период чувања корисничке архиве bootstrap_timeline_accounts: Увек препоручи ове налоге новим корисницима closed_registrations_message: Прилагођена порука када пријаве нису могуће @@ -234,6 +241,7 @@ sr: custom_css: Прилагођени CSS mascot: Прилагођена маскота (наслеђе) media_cache_retention_period: Период чувања кеша медија + peers_api_enabled: Објавите листу откривених сервера у API profile_directory: Омогући директоријум профила registrations_mode: Ко може да се пријави require_invite_text: Затражи разлог за приступање @@ -245,11 +253,13 @@ sr: site_short_description: Опис сервера site_terms: Политика приватности site_title: Име сервера + status_page_url: URL статусне странице theme: Подразумевана тема thumbnail: Сличица сервера timeline_preview: Дозволи неауторизован приступ јавним временским осама trendable_by_default: Дозволи трендове без претходног прегледа trends: Омогући трендове + trends_as_landing_page: Користите трендове као страницу дочека interactions: must_be_follower: Блокирај обавештења од корисника који ме не прате must_be_following: Блокирај обавештења од људи које не пратим diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index ed111ecc90..1e99fefa35 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -174,7 +174,7 @@ th: context: บริบทตัวกรอง current_password: รหัสผ่านปัจจุบัน data: ข้อมูล - discoverable: แนะนำบัญชีให้ผู้อื่น + discoverable: เสนอแนะบัญชีให้ผู้อื่น display_name: ชื่อที่แสดง email: ที่อยู่อีเมล expires_in: หมดอายุหลังจาก diff --git a/config/locales/simple_form.tt.yml b/config/locales/simple_form.tt.yml index d4e44c0db2..db2bd025c2 100644 --- a/config/locales/simple_form.tt.yml +++ b/config/locales/simple_form.tt.yml @@ -5,7 +5,7 @@ tt: account_warning_preset: title: Исем admin_account_action: - type: Ğämäl + type: Гамәл types: sensitive: Sizmäle suspend: Искә алмау @@ -14,7 +14,7 @@ tt: data: Мәгълүмат email: Почта адресы header: Башлам - password: Парол + password: Серсүз setting_display_media_default: Töpcay username: Кулланучы исеме featured_tag: diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 8a2bcc0a1f..1976df4d91 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -33,7 +33,7 @@ zh-TW: autofollow: 通過邀請網址註冊的使用者將自動跟隨您 avatar: 支援 PNG、GIF 或 JPG 圖片格式,檔案最大為 %{size},會等比例縮減至 %{dimensions} 像素 bot: 此帳號主要執行自動化操作且可能未受人為監控 - context: 應該套用過濾器的一項或多項內容 + context: 此過濾器應套用於以下一項或多項情境 current_password: 因安全因素,請輸入目前帳號的密碼 current_username: 請輸入目前帳號的使用者名稱以確認 digest: 僅在您長時間未登入且在未登入期間收到私訊時傳送 @@ -53,7 +53,7 @@ zh-TW: setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示 setting_display_media_default: 隱藏標為敏感內容的媒體 setting_display_media_hide_all: 總是隱藏所有媒體 - setting_display_media_show_all: 總是顯示標為敏感的媒體 + setting_display_media_show_all: 總是顯示標為敏感內容的媒體 setting_hide_network: 您跟隨的人與跟隨您的人將不會在您的個人檔案頁面上顯示 setting_noindex: 會影響您的公開個人檔案與嘟文頁面 setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index f1b021127b..53ef48fe59 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -229,6 +229,7 @@ sk: destroy_domain_block_html: "%{name} odblokoval/i doménu %{target}" destroy_ip_block_html: "%{name} vymazal/a pravidlo pre IP %{target}" destroy_status_html: "%{name} zmazal/a príspevok od %{target}" + memorialize_account_html: "%{name} zmenil/a účet %{target} na pamätnú stránku" reject_appeal_html: "%{name} zamietol/la námietku moderovacieho rozhodnutia od %{target}" deleted_account: zmazaný účet empty: Žiadne záznamy nenájdené. @@ -1012,6 +1013,7 @@ sk: otter: Prehliadač Otter qq: QQ Prehliadač safari: Apple Safari + unknown_browser: Neznámy prehliadač weibo: Sina/Tencent Weibo current_session: Aktuálna sezóna description: "%{browser} na %{platform}" @@ -1021,7 +1023,7 @@ sk: ios: Apple iOS linux: GNU/Linux mac: MacOSX - other: neznáma platforma + unknown_platform: Neznáma platforma windows: Microsoft Windows revoke: Zamietni revoke_success: Sezóna úspešne zamietnutá diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 303f9ea559..eb3085cd6f 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1457,6 +1457,7 @@ sl: confirm_remove_selected_followers: Ali ste prepričani, da želite odstraniti izbrane sledilce? confirm_remove_selected_follows: Ali ste prepričani, da želite odstraniti izbrana sledenja? dormant: Skrit + follow_failure: Nekaterim od izbranih računov ni bilo mogoče slediti. follow_selected_followers: Sledi izbranim sledilcem followers: Sledilci following: Sledi @@ -1496,6 +1497,7 @@ sl: electron: Electron firefox: Firefox generic: Neznan brskalnik + huawei_browser: Brskalnik Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Brskalnik Nokia S40 Ovi @@ -1505,6 +1507,7 @@ sl: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Neznan brskalnik weibo: Weibo current_session: Trenutna seja description: "%{browser} na %{platform}" @@ -1517,9 +1520,10 @@ sl: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: neznana platforma + unknown_platform: Neznana platforma windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/sq.yml b/config/locales/sq.yml index ea94dfb6a3..38afb2996c 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1399,6 +1399,7 @@ sq: confirm_remove_selected_followers: Jeni i sigurt se doni të hiqen ndjekësit e përzgjedhur? confirm_remove_selected_follows: Jeni i sigurt se doni të hiqen ndjekjet e përzgjedhura? dormant: Në gjumë + follow_failure: S’u ndoqën dot disa nga llogaritë e përzgjedhura. follow_selected_followers: Ndiq ndjekësit e përzgjedhur followers: Ndjekës following: Ndjek @@ -1438,6 +1439,7 @@ sq: electron: Electron firefox: Firefox generic: Shfletues i panjohur + huawei_browser: Shfletues Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Shfletues Nokia S40 Ovi @@ -1447,6 +1449,7 @@ sq: qq: QQ Browser safari: Safari uc_browser: Shfletues UC + unknown_browser: Shfletues i Panjohur weibo: Weibo current_session: Sesioni i tanishëm description: "%{browser} në %{platform}" @@ -1459,9 +1462,10 @@ sq: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: platformë e panjohur + unknown_platform: Platformë e Panjohur windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index fdb5d21859..b6e17677d3 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1,236 +1,1263 @@ --- sr-Latn: about: - about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta. + about_mastodon_html: 'Društvena mreža budućnosti: bez reklama, bez korporativnog praćenja, etički dizajn, i decentralizacija! Posedujte svoje podatke sa Mastodonom!' contact_missing: Nije postavljeno - hosted_on: Mastodont hostovan na %{domain} + contact_unavailable: Nije dostupno + hosted_on: Mastodon hostovan na %{domain} + title: O instanci accounts: - nothing_here: Ovde nema ništa! + follow: Zaprati + followers: + few: Pratioca + one: Pratilac + other: Pratilaca + following: Pratim + instance_actor_flash: Ovaj nalog je virtuelni akter koji ne predstavlja nijednog korisnika lično, već sâm server. Koristi se u svrhu federacije i ne treba ga suspendovati. + last_active: najskorija aktivnost + link_verified_on: Vlasništvo nad ovom vezom je provereno %{date} + nothing_here: Ovde nema ničega! + pin_errors: + following: Morate pratiti osobu koju želite da preporučite + posts: + few: Objave + one: Objava + other: Objava + posts_tab_heading: Objave admin: + account_actions: + action: Izvršite radnju + title: Izvršite moderatorske radnje na %{acct} account_moderation_notes: - create: Napravi + create: Ostavite belešku created_msg: Moderatorska beleška uspešno napravljena! destroyed_msg: Moderatorska beleška uspešno obrisana! accounts: + add_email_domain_block: Blokiraj domen e-pošte + approve: Odobri + approved_msg: Zahtev za registraciju korisnika %{username} je uspešno odobren are_you_sure: Da li ste sigurni? + avatar: Avatar by_domain: Domen + change_email: + changed_msg: E-pošta naloga uspešno promenjena! + current_email: Trenutna adresa e-pošte + label: Promenite adresu e-pošte + new_email: Nova adresa e-pošte + submit: Promenite adresu e-pošte + title: Promenite adresu e-pošte za %{username} + change_role: + changed_msg: Uloga uspešno promenjena! + label: Promeni ulogu + no_role: Nema ulogu + title: Promeni ulogu za %{username} confirm: Potvrdi confirmed: Potvrđeno - confirming: Potvrđujući + confirming: Potvrđivanje + custom: Proizvoljno + delete: Obriši podatke + deleted: Izbrisano demote: Ražaluj - disable: Isključi + destroyed_msg: Podaci korisnika %{username} su nepovratno stavljeni u red za brisanje + disable: Zamrzni + disable_sign_in_token_auth: Onemogući imejl autentifikaciju disable_two_factor_authentication: Isključi 2FA - disabled: Isključena - display_name: Prikazano ime + disabled: Zamrznut + display_name: Ime za prikaz domain: Domen edit: Izmeni email: E-pošta email_status: Status e-pošte - enable: Uključi - enabled: Uključeno + enable: Omogući + enable_sign_in_token_auth: Omogući imejl autentifikaciju + enabled: Omogućen + enabled_msg: Uspešno odleđen nalog korisnika %{username} followers: Pratioci follows: Praćeni + header: Zaglavlje inbox_url: Adresa sandučeta + invite_request_text: Razlozi za pridruživanje + invited_by: Pozvan od strane + ip: IP + joined: Pridružio/-la se location: all: Sve - local: Lokalne - remote: Udaljene + local: Lokalni + remote: Udaljeni title: Lokacija login_status: Status prijave media_attachments: Multimedijalni prilozi memorialize: Prebaci u in memoriam + memorialized: Podignut spomenik + memorialized_msg: "%{username} je uspešno pretvoren u memorijalni nalog" moderation: + active: Aktivan all: Svi + disabled: Isključen + pending: Na čekanju + silenced: Ograničeno suspended: Suspendovani title: Moderacija moderation_notes: Moderatorske beleške most_recent_activity: Najskorija aktivnost most_recent_ip: Najskorija IP adresa + no_account_selected: Nijedan nalog nije promenjen jer nijedan nije izabran + no_limits_imposed: Nema ograničenja + no_role_assigned: Nijedna uloga nije dodeljena not_subscribed: Nije pretplaćen - perform_full_suspension: Izvrši kompletno isključenje + pending: Čeka na pregled + perform_full_suspension: Suspenduj + previous_strikes: Prethodni prekršaji + previous_strikes_description_html: + few: Ovaj nalog ima %{count} prekršaja. + one: Ovaj nalog ima jedan prekršaj. + other: Ovaj nalog ima %{count} prekršaja. promote: Unapredi protocol: Protokol public: Javno - redownload: Osveži avatar - remote_suspension_reversible_hint_html: Налог је суспендован на њиховом серверу, а подаци ће бити у потпуности уклоњени %{date}. До тада, удаљени сервер може вратити овај налог без икаквих негативних ефеката. Ако желите одмах да уклоните све податке налога, то можете учинити у наставку. + push_subscription_expires: PuSH pretplata ističe + redownload: Osveži profil + redownloaded_msg: Uspešno osvežen profil korisnika %{username} iz izvora + reject: Odbij + rejected_msg: Zahtev za registraciju korisnika %{username} je uspešno odbijen + remote_suspension_irreversible: Podaci ovog naloga su nepovratno izbrisani. + remote_suspension_reversible_hint_html: Nalog je suspendovan sa svog servera i njegovi podaci će biti izbrisani datuma %{date}. Do tada, udaljeni server može da vrati ovaj nalog bez ikakvih promena. Ukoliko želite da odmah obrišete sve podatke naloga, možete to učiniti ispod. + remove_avatar: Ukloni avatar + remove_header: Odstrani zaglavlje + removed_avatar_msg: Slika avatara korisnika %{username} je uspešno uklonjena + removed_header_msg: Uspešno obrisana slika zaglavlja korisnika %{username} resend_confirmation: already_confirmed: Ovaj korisnik je već potvrđen - send: Ponovo pošaljite e-poruku za potvrdu - success: E-mail potvrde je uspešno poslat! + send: Ponovo pošalji imejl potvrdu + success: Imejl za potvrdu je uspešno poslat! reset: Resetuj reset_password: Resetuj lozinku resubscribe: Ponovo se pretplati + role: Uloga search: Pretraga + search_same_email_domain: Ostali korisnici sa istim domenom e-pošte + search_same_ip: Ostali korisnici sa istom IP adresom + security: Bezbednost + security_measures: + only_password: Samo lozinka + password_and_2fa: Lozinka i dvofaktorska autentifikacija + sensitive: Označi kao osetljiv + sensitized: Označeno kao osetljivo shared_inbox_url: Adresa deljenog sandučeta show: - created_reports: Prijave koje je napravio ovaj nalog - targeted_reports: Prijave napravljene o ovom nalogu + created_reports: Podnete prijave + targeted_reports: Prijave od strane drugih silence: Ućutkaj - statuses: Statusi + silenced: Ućutkan + statuses: Objave + strikes: Prethodni prestupi subscribe: Pretplati se + suspend: Suspenduj + suspended: Suspendovani + suspension_irreversible: Podaci ovog naloga su nepovratno izbrisani. Možete odsuspendovati ovaj nalog čime će on postati upotrebljiv, ali se podaci prethodno sadržani na nalogu neće vratiti. + suspension_reversible_hint_html: Nalog je suspendovan i njegovi podaci će biti izbrisani datuma %{date}. Do tada, ovaj nalog može biti vraćen bez ikakvih promena. Ukoliko želite da odmah obrišete sve podatke naloga, možete to učiniti ispod. title: Nalozi + unblock_email: Odblokiraj adresu e-pošte + unblocked_email_msg: Uspešno odblokirana imejl adresa korisnika %{username} + unconfirmed_email: Nepotvrđena adresa e-pošte + undo_sensitized: Ukloni oznaku „osetljiv” undo_silenced: Ukini ćutanje undo_suspension: Ukini suspenziju + unsilenced_msg: Uspešno poništeno ograničenje naloga %{username} unsubscribe: Ukini pretplatu + unsuspended_msg: Uspešno poništena suspenzija naloga %{username} username: Korisničko ime + view_domain: Pročitaj opis domena + warn: Upozori web: Veb + whitelisted: Dozvoljena federacija action_logs: + action_types: + approve_appeal: Uvaži žalbu + approve_user: Odobri korisnika + assigned_to_self_report: Dodeli prijavu + change_email_user: Promeni e-adresu korisnika + change_role_user: Promeni ulogu korisnika + confirm_user: Potvrdi korisnika + create_account_warning: Kreiraj upozorenje + create_announcement: Kreiraj najavu + create_canonical_email_block: Kreiraj blok e-pošte + create_custom_emoji: Napravi prilagođeni emodži + create_domain_allow: Dodaj dozvoljeni domen + create_domain_block: Dodaj blokirani domen + create_email_domain_block: Blokiraj imejl domen + create_ip_block: Napravi IP uslov + create_unavailable_domain: Dodaj domen kao nedostupan + create_user_role: Kreiraj ulogu + demote_user: Smanji ovlašćenja korisnika + destroy_announcement: Izbriši najavu + destroy_canonical_email_block: Izbriši blok e-pošte + destroy_custom_emoji: Obriši prilagođeni emodži + destroy_domain_allow: Obriši dozvoljeni domen + destroy_domain_block: Obriši blokirani domen + destroy_email_domain_block: Izbriši blok e-pošte + destroy_instance: Očisti domen + destroy_ip_block: Obriši IP uslov + destroy_status: Izbriši post + destroy_unavailable_domain: Obriši nedostupan domen + destroy_user_role: Uništi poziciju + disable_2fa_user: Onemogući dvofaktorsku autentifikaciju + disable_custom_emoji: Onemogući prilagođene emodžije + disable_sign_in_token_auth_user: Onemogući imejl autentifikaciju za korisnika + disable_user: Onemogući korisnika + enable_custom_emoji: Omogući prilagođene emodžije + enable_sign_in_token_auth_user: Omogući imejl autentifikaciju za korisnika + enable_user: Omogući korisnika + memorialize_account: Pretvori u memorijalni nalog + promote_user: Unapredi korisnika + reject_appeal: Odbij žalbu + reject_user: Odbaci korisnika + remove_avatar_user: Ukloni avatar + reopen_report: Ponovo otvori prijavu + resend_user: Ponovo pošalji mejl za potvrdu + reset_password_user: Resetuj lozinku + resolve_report: Zatvori prijavu + sensitive_account: Označi nalog kao osetljiv + silence_account: Ograniči nalog + suspend_account: Obustavi nalog + unassigned_report: Povuci prijavu + unblock_email_account: Odblokiraj imejl adresu + unsensitive_account: Ukloni dodeljenu oznaku „osetljiv” + unsilence_account: Povuci ograničenje naloga + unsuspend_account: Povuci suspenziju naloga + update_announcement: Saopštenje o ažuriranju + update_custom_emoji: Ažuriraj prilagođene emodžije + update_domain_block: Ažuriraj domen blok + update_ip_block: Ažuriraj IP uslov + update_status: Uredi objavu + update_user_role: Uredi ulogu + actions: + approve_appeal_html: "%{name} je uvažio žalbu korisnika %{target} na odluku moderatora" + approve_user_html: "%{name} je odobrio/-la registraciju korisnika %{target}" + assigned_to_self_report_html: "%{name} je sebi dodelio/-la prijavu %{target}" + change_email_user_html: "%{name} je promenio/-la imejl adresu korisnika %{target}" + change_role_user_html: "%{name} je promenio/-la ovlašćenja korisnika %{target}" + confirm_user_html: "%{name} je potvrdio/-la imejl adresu korisnika %{target}" + create_account_warning_html: "%{name} je poslao/-la upozorenje korisniku %{target}" + create_announcement_html: "%{name} je napravio/-la novo saopštenje %{target}" + create_canonical_email_block_html: "%{name} je blokirao/-la imejl adresu sa hešom %{target}" + create_custom_emoji_html: "%{name} je otpremio/-la nove emodžije %{target}" + create_domain_allow_html: "%{name} je dozvolio/-la federaciju sa domenom %{target}" + create_domain_block_html: "%{name} je blokirao/-la domen %{target}" + create_email_domain_block_html: "%{name} je blokirao/-la imejl domen %{target}" + create_ip_block_html: "%{name} je napravio/-la uslov za IP adrese %{target}" + create_unavailable_domain_html: "%{name} je obustavio/-la isporučivanje domenu %{target}" + create_user_role_html: "%{name} je napravio/-la %{target} poziciju" + demote_user_html: "%{name} je smanjio ovlašćenja korisnika %{target}" + destroy_announcement_html: "%{name} je obrisao/-la saopštenje %{target}" + destroy_canonical_email_block_html: "%{name} je odblokirao/-la imejl adresu sa hešom %{target}" + destroy_custom_emoji_html: "%{name} je obrisao/-la emodži %{target}" + destroy_domain_allow_html: "%{name} je zabranio/-la federaciju sa domenom %{target}" + destroy_domain_block_html: "%{name} je odblokirao/-la domen %{target}" + destroy_email_domain_block_html: "%{name} je odblokirao/-la imejl domen %{target}" + destroy_instance_html: "%{name} je očistio/-la domen %{target}" + destroy_ip_block_html: "%{name} je obrisao/-la uslov za IP adrese %{target}" + destroy_status_html: "%{name} je izbrisao/-la objavu korisnika %{target}" + destroy_unavailable_domain_html: "%{name} je ponovo uspostavio/-la isporučivanje domenu %{target}" + destroy_user_role_html: "%{name} je izbrisao/-la %{target} poziciju" + disable_2fa_user_html: "%{name} je onemogućio/-la dvofaktorsku autentifikaciju za korisnika %{target}" + disable_custom_emoji_html: "%{name} je onemogućio/-la emodži %{target}" + disable_sign_in_token_auth_user_html: "%{name} je onemogućio/-la imejl autentifikaciju za korisnika %{target}" + disable_user_html: "%{name} je onemogućio/-la prijavljivanje za korisnika %{target}" + enable_custom_emoji_html: "%{name} je omogućio/-la emodži %{target}" + enable_sign_in_token_auth_user_html: "%{name} je omogućio/-la imejl autentifikaciju za %{target}" + enable_user_html: "%{name} je omogućio/-la prijavljivanje korisniku %{target}" + memorialize_account_html: "%{name} je pretvorio/-la nalog korisnika %{target} u memorijalnu stranicu" + promote_user_html: "%{name} je unapredio/-la korisnika %{target}" + reject_appeal_html: "%{name} je odbio/-la žalbu na moderacijsku odluku koju je priložio korisnik %{target}" + reject_user_html: "%{name} je odbio/-la registraciju korisnika %{target}" + remove_avatar_user_html: "%{name} je uklonio avatar korisnika %{target}" + reopen_report_html: "%{name} je ponovo otvorio/-la prijavu %{target}" + resend_user_html: "%{name} je ponovo poslao/-la imejl za potvrdu korisniku %{target}" + reset_password_user_html: "%{name} je resetovao/-la lozinku korisnika %{target}" + resolve_report_html: "%{name} je rešio/-la prijavu %{target}" + sensitive_account_html: "%{name} je označio/-la medije naloga %{target} kao osetljive" + silence_account_html: "%{name} je ograničio/-la nalog %{target}" + suspend_account_html: "%{name} je suspendovao/-la nalog %{target}" + unassigned_report_html: "%{name} je povukao/-la dodelu prijave %{target}" + unblock_email_account_html: "%{name} je odblokirao/-la imejl adresu korisnika %{target}" + unsensitive_account_html: "%{name} je uklonio/-la oznaku „osetljivo” sa medija naloga %{target}" + unsilence_account_html: "%{name} je povukao/-la ograničenje naloga %{target}" + unsuspend_account_html: "%{name} je povukao/-la suspenziju naloga %{target}" + update_announcement_html: "%{name} je ažurirao/-la saopštenje %{target}" + update_custom_emoji_html: "%{name} je ažurirao/-la emodži %{target}" + update_domain_block_html: "%{name} je ažurirao/-la blok domena %{target}" + update_ip_block_html: "%{name} je promenio/-la IP uslov za %{target}" + update_status_html: "%{name} je ažurirao/-la objavu korisnika %{target}" + update_user_role_html: "%{name} je promenio/-la poziciju %{target}" + deleted_account: obrisan nalog + empty: Nije pronađen nijedan log. + filter_by_action: Filtriraj po aktivnosti + filter_by_user: Filtriraj po korisniku title: Zapisnik + announcements: + destroyed_msg: Saopštenje je uspešno obrisano! + edit: + title: Uredi najavu + empty: Nijedna najava nije pronađena. + live: Uživo + new: + create: Kreiraj najavu + title: Nova najava + publish: Objavi + published_msg: Najava uspešno objavljena! + scheduled_for: Zakazano za %{time} + scheduled_msg: Saopštenje je zakazano za objavljivanje! + title: Najave + unpublish: Povuci objavu + unpublished_msg: Objava saopštenja je uspešno povučena! + updated_msg: Saopštenje je uspešno ažurirano! custom_emojis: + assign_category: Dodeli kategoriju by_domain: Domen - copied_msg: Uspešno napravljena lokalna kopija emotikona + copied_msg: Uspešno napravljena lokalna kopija emodžija copy: Kopiraj - copy_failed_msg: Ne mogu da napravim lokalnu kopiju tog emotikona - created_msg: Emotikon uspešno napravljen! + copy_failed_msg: Ne mogu da napravim lokalnu kopiju tog emotidžija + create_new_category: Kreiraj novu kategoriju + created_msg: Emodži uspešno napravljen! delete: Obriši - destroyed_msg: Emotikon uspešno obrisan! + destroyed_msg: Emodži uspešno obrisan! disable: Onemogući - disabled_msg: Emotikon uspešno onemogućen - emoji: Emotikon + disabled: Onemogućeno + disabled_msg: Emodži uspešno onemogućen + emoji: Emodži enable: Omogući - enabled_msg: Emotikon uspešno omogućen + enabled: Omogućeno + enabled_msg: Emodži uspešno omogućen + image_hint: PNG ili GIF fajl veličine do %{size} + list: Lista listed: Izlistan new: - title: Dodaj novi proizvoljni emotikon + title: Dodaj novi proizvoljni emodži + no_emoji_selected: Nijedan emodži nije promenjen jer nijedan nije izabran + not_permitted: Niste ovlašćeni da obavljate ovu radnju overwrite: Prepiši shortcode: Prečica shortcode_hint: Najmanje 2 karaktera, dozvoljeni su samo slova, brojevi i donje crte - title: Proizvoljni emotikoni + title: Proizvoljni emotidžiji + uncategorized: Nekategorizovano + unlist: Neizlistan unlisted: Neizlistan - update_failed_msg: Ne mogu da ažuriram ovaj emotikon - updated_msg: emotikon uspešno ažuriran! + update_failed_msg: Ne mogu da ažuriram ovaj emodži + updated_msg: Emodži uspešno ažuriran! upload: Otpremi + dashboard: + active_users: aktivni korisnici + interactions: interakcije + media_storage: Multimedijalno skladište + new_users: novi korisnici + opened_reports: otvorene prijave + pending_appeals_html: + few: "%{count} žalbe na čekanju" + one: "%{count} žalba na čekanju" + other: "%{count} žalbi na čekanju" + pending_reports_html: + few: "%{count} prijave na čekanju" + one: "%{count} prijava na čekanju" + other: "%{count} prijava na čekanju" + pending_tags_html: + few: "%{count} heš oznake na čekanju" + one: "%{count} heš oznaka na čekanju" + other: "%{count} heš oznaka na čekanju" + pending_users_html: + few: "%{count} korisnika na čekanju" + one: "%{count} korisnik na čekanju" + other: "%{count} korisnika na čekanju" + resolved_reports: rešene prijave + software: Softver + sources: Izvori registracija + space: Korišćenje prostora + title: Komandna tabla + top_languages: Najzastupljeniji jezici + top_servers: Najaktivniji serveri + website: Vebsajt + disputes: + appeals: + empty: Nijedna žalba nije pronađena. + title: Žalbe + domain_allows: + add_new: Dozvoli federaciju sa domenom + created_msg: Domen je uspešno odobren za federaciju + destroyed_msg: Domen je odbijen za federaciju + export: Izvoz + import: Uvoz + undo: Zabrani federaciju sa domenom domain_blocks: - add_new: Dodaj novi + add_new: Dodaj novi blok domena created_msg: Blokiranje domena se obrađuje destroyed_msg: Blokiranje domena je opozvano domain: Domen + edit: Izmeni blok domena + existing_domain_block: Već ste uspostavili stroža ograničenja prema korisniku %{name}. + existing_domain_block_html: Već ste uspostavili stroža ograničenja prema %{name}, potrebno je da ga prvo odblokirate. + export: Izvoz + import: Uvoz new: create: Napravi blokadu hint: Blokiranje domena neće sprečiti pravljenje naloga u bazi, ali će retroaktivno i automatski primeniti određene moderatorske metode nad tim nalozima. severity: + desc_html: "Ograničenje će sakriti objave naloga sa ovog domena od svakog ko ih ne prati. Suspenzija će obrisati sav sadržaj, medije i podatke profila sa naloga ovog domena sa Vašeg servera. Koristite Ništa ukoliko samo želite da odbijete medijske fajlove." noop: Ništa + silence: Ograniči suspend: Suspenzija title: Novo blokiranje domena + no_domain_block_selected: Nijedan blok domena nije promenjen jer nijedan nije izabran + not_permitted: Niste ovlašćeni da obavljate ovu radnju + obfuscate: Sakrij ime domena + obfuscate_hint: Delimično sakrij ime domena na listi ako je reklamiranje liste ograničenih domena omogućeno + private_comment: Privatni komentar + private_comment_hint: Komentar o ograničenju ovog domena za internu upotrebu od strane moderatora. + public_comment: Javni komentar + public_comment_hint: Komentar o ograničenju ovog domena za javnost, ukoliko je reklamiranje liste ograničenih domena omogućeno. reject_media: Odbaci multimediju - reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida na dalje. Nebitno je za suspenziju - undo: Poništi + reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida ubuduće. Nebitno je za suspenziju + reject_reports: Odbaci izveštaj + reject_reports_hint: Ignoriši sve izveštaje koji dolaze sa ovog domena. Nebitno je za suspenzije + undo: Poništi blok domena + view: Pročitaj blok domena email_domain_blocks: - add_new: Dodaj novuAdd new - created_msg: Uspešno dodao domen e-pošte na crnu listu - delete: Ukloni + add_new: Dodaj novi + attempts_over_week: + few: "%{count} pokušaja tokom prethodne nedelje" + one: "%{count} pokušaj tokom prethodne nedelje" + other: "%{count} pokušaja registracije tokom prethodne nedelje" + created_msg: Uspešno dodao domen E-pošte na crnu listu + delete: Obriši + dns: + types: + mx: MX izveštaj domain: Domen new: create: Dodaj domen - title: Nova stavka u crnoj listi e-pošti - title: Crna lista adresa e-pošte + resolve: Pretvori domen + title: Nova stavka e-pošte u crnoj listi + no_email_domain_block_selected: Nijedan blok imejl domena nije promenjen jer nijedan nije izabran + not_permitted: Nije dozvoljeno + resolved_dns_records_hint_html: Ime domena se pretvara u sledeće MX domene, koji su naposletku odgovorni za prihvatanje elektronske pošte. Blokiranje MX domena će blokirati registracije sa svake imejl adrese koja koristi taj MX domen, čak i u slučaju kada se vidljivo ime domena razlikuje. Vodite računa o tome da ne blokirate velike imejl provajdere. + resolved_through_html: Preusmereno kroz %{domain} + title: Crna lista E-pošte + export_domain_allows: + new: + title: Uvezi dozvoljene domene + no_file: Nijedan fajl nije odabran + export_domain_blocks: + import: + description_html: Upravo ćete uvesti listu blokiranih domena. Molimo Vas, vrlo pažljivo pregledajte ovu listu, posebno ukoliko je niste sami napravili. + existing_relationships_warning: Postojeći odnosi u obliku praćenja + private_comment_description_html: 'Da bi Vam pomogli da pratite odakle su blokovi uvezeni, uvezeni blokovi će biti napravljeni sa sledećim privatnim komentarom: %{comment}' + private_comment_template: Uvezeno sa izvora %{source} na datum %{date} + title: Uvezi blokirane domene + invalid_domain_block: 'Jedan ili više blokova domena je preskočen zbog sledeće greške tj. grešaka: %{error}' + new: + title: Uvezi blokirane domene + no_file: Nijedan fajl nije odabran + follow_recommendations: + description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno interagovao sa ostalima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik." + language: Za jezik + status: Status + suppress: Potisni preporuke za praćenje + suppressed: Potisnuto + title: Preporuke za praćenje + unsuppress: Vrati preporuku za praćenje instances: - title: Poznate instance + availability: + description_html: + few: Ukoliko isporuka domenu ne uspe nijednom tokom %{count} različitih dana, dalji pokušaji isporuke neće biti inicirani osim ukoliko se ne primi isporuka sa domena. + one: Ako isporuka domenu ne uspe nijednom u vremenskom periodu od %{count} dana, dalji pokušaji isporuke se neće inicirati osim ukoliko se ne primi isporuka sa domena. + other: Ukoliko isporuka domenu ne uspe nijednom tokom %{count} različitih dana, dalji pokušaji isporuke se neće inicirati osim ukoliko se ne primi isporuka sa domena. + failure_threshold_reached: Prag neuspeha dostignut datuma %{date}. + failures_recorded: + few: Neuspeli pokušaji tokom %{count} različita dana. + one: Neuspeli pokušaj tokom %{count} dana. + other: Neuspeli pokušaji tokom %{count} različitih dana. + no_failures_recorded: Bez zabeleženih neuspeha. + title: Dostupnost + warning: Poslednji pokušaj povezivanja sa ovim serverom je bio neuspešan + back_to_all: Sve + back_to_limited: Ograničeno + back_to_warning: Upozorenje + by_domain: Domen + confirm_purge: Da li ste sigurni da želite da trajno uklonite podatke sa ovog domena? + content_policies: + comment: Interna beleška + description_html: Možete da definišete politiku sadržaja koja će važiti za sve naloge na ovom domenu i svakom od njegovih poddomena. + limited_federation_mode_description_html: Možete da odlučite da li da dopustite federaciju sa ovim domenom. + policies: + reject_media: Odbij multimediju + reject_reports: Odbij prijave + silence: Ograniči + suspend: Suspenduj + policy: Politika + reason: Javni razlog + title: Politika sadržaja + dashboard: + instance_accounts_dimension: Najpraćeniji nalozi + instance_accounts_measure: uskladišteni nalozi + instance_followers_measure: naši pratioci ovde + instance_follows_measure: njihovi pratioci ovde + instance_languages_dimension: Najzastupljeniji jezici + instance_media_attachments_measure: uskladišteni multimedijalni prilozi + instance_reports_measure: prijave protiv njih + instance_statuses_measure: uskladištene objave + delivery: + all: Sve + clear: Očisti greške prilikom isporuke + failing: Bez uspeha + restart: Započni isporuku ponovo + stop: Obustavi isporuku + unavailable: Nedostupno + delivery_available: Dostava je dostupna + delivery_error_days: Dani neuspešnih isporuka + delivery_error_hint: Ukoliko isporuka nije moguća %{count} dana, automatski će biti obeležena kao neisporučiva. + destroyed_msg: Podaci sa %{domain} su sada u redu za čekanje za izvesno brisanje. + empty: Nijedan domen nije pronađen. + known_accounts: + few: "%{count} poznata naloga" + one: "%{count} poznat nalog" + other: "%{count} poznatih naloga" + moderation: + all: Sve + limited: Ograničeno + title: Moderacija + private_comment: Privatni komentar + public_comment: Javni komentar + purge: Čistka + purge_description_html: Ukoliko verujete da je ovaj domen trajno ugašen, možete da obrišete sve zapise naloga i srodne podatke ovog domena sa svog skladišta. Ovo može da potraje. + title: Federacija + total_blocked_by_us: Blokirano od strane nas + total_followed_by_them: Praćeni od strane njih + total_followed_by_us: Praćeni od strane nas + total_reported: Prijave vezane za njih + total_storage: Multimedijalni prilozi + totals_time_period_hint_html: Ukupne vrednosti prikazane ispod uključuju podatke za sva vremena. invites: + deactivate_all: Deaktiviraj sve filter: all: Sve - available: Aktivne - expired: Istekle + available: Dostupni + expired: Istekli + title: Filter title: Pozivnice + ip_blocks: + add_new: Napravi pravilo + created_msg: Uspešno je dodato novo IP pravilo + delete: Izbriši + expires_in: + '1209600': 2 nedelje + '15778476': 6 meseci + '2629746': 1 mesec + '31556952': 1 godina + '86400': 1 dan + '94670856': 3 godine + new: + title: Kreiraj novo IP pravilo + no_ip_block_selected: Nijedno IP pravilo nije promenjeno jer nijedno nije izabrano + title: IP pravila + relationships: + title: Odnosi korisnika %{acct} + relays: + add_new: Dodaj novi relej + delete: Obriši + description_html: "Federalni relej je posrednički server koji razmenjuje velike količine javnih truba između servera na koji je pretplaćen i na koji objavljuje.Može pomoći malim i srednjim serverima da otkriju sadržaj iz fediversa, koji inače zahteva od lokalnih korisnika da ručno pratiti ostale ljude na udaljenim serverima." + disable: Isključi + disabled: Isključen + enable: Uključi + enable_hint: Kada se omogući, vaš server će biti pretplaćen na sve javne objave sa ovog releja, i počeće da šalje javne objave ovog servera na njega. + enabled: Uključen + inbox_url: URL Releja + pending: Čeka se odobrenje releja + save_and_enable: Sačuvaj i omogući + setup: Podesi vezu releja + signatures_not_enabled: Prenosi možda neće raditi ispravno dok je uključen bezbedni režim ili režim ograničene federacije + status: Status + title: Releji + report_notes: + created_msg: Beleška prijave uspešno napravljena! + destroyed_msg: Beleška prijave uspešno izbrisana! reports: + account: + notes: + few: "%{count} beleške" + one: "%{count} beleška" + other: "%{count} beležaka" + action_log: Zapisnik action_taken_by: Akciju izveo + actions: + delete_description_html: Prijavljene objave će biti obrisane i prekršaj će biti upisan da bi Vam olakšali intervenciju prilikom budućih prestupa sa istog naloga. + mark_as_sensitive_description_html: Multimedijalni sadržaj sa prijavljenih objava će biti označen kao osetljiv i prekršaj će biti upisan radi lakše intervencije u slučaju daljih prekršaja sa istog naloga. + other_description_html: Pogledajte više opcija za kontrolisanje ponašanja naloga i prilagodite komunikaciju sa prijavljenim nalogom. + resolve_description_html: Nijedna radnja neće biti preduzeta protiv prijavljenog naloga, nijedan prestup nije upisan i prijava će biti zatvorena. + silence_description_html: Nalog će biti vidljiv samo onima koji ga već prate ili koji ga ručno potraže, što će značajno ograničiti njegov domet. Ograničenje se može povući u svakom trenutku. Zatvara sve prijave podnete protiv ovog naloga. + suspend_description_html: Nalog i svi njegovi sadržaji će postati nedostupni i u jednom trenutku izbrisani, a interakcija sa nalogom više neće biti moguća. Suspenzija se može povući u roku od 30 dana. Zatvara sve prijave podnete protiv ovog naloga. + actions_description_html: Odlučite koju radnju da sprovedete radi rešavanja ove prijave. Ukoliko sprovedete kaznenu radnju protiv prijavljenog naloga, vlasnik naloga će biti obavešten putem i-mejla, osim ukoliko oznaka „Nepoželjne poruke” nije odabrana. + actions_description_remote_html: Odlučite koju radnju da preduzmete radi rešavanja ove prijave. Ovo će uticati samo na to kako Vaš server komunicira sa ovim udaljenim nalogom i obrađuje njegov sadržaj. + add_to_report: Dodaj još u prijavu are_you_sure: Da li ste sigurni? + assign_to_self: Dodeli meni + assigned: Dodeljeni moderator + by_target_domain: Domen prijavljenog naloga + cancel: Otkaži + category: Kategorija + category_description_html: Razlog zbog kog je ovaj nalog i/ili sadržaj prijavljen će biti obrazložen u komunikaciji sa prijavljenim nalogom comment: none: Ništa - mark_as_resolved: Označi kao rešen + comment_description_html: 'Radi pružanja više informacija, %{name} je napisao/-la:' + confirm: Potvrdi + confirm_action: Potvrdi moderacijsku radnju prema @%{acct} + created_at: Prijavljena + delete_and_resolve: Obriši objave + forwarded: Prosleđeno + forwarded_to: Prosleđeno ka %{domain} + mark_as_resolved: Označi kao rešenu + mark_as_sensitive: Obeleži kao osetljivo + mark_as_unresolved: Označi kao nerešenu + no_one_assigned: Niko + notes: + create: Dodaj belešku + create_and_resolve: Reši sa beleškom + create_and_unresolve: Otvori ponovo sa beleškom + delete: Obriši + placeholder: Opišite kakve su radnje preduzete, ili bilo kakve povezane novosti... + title: Beleške + notes_description_html: Pročitajte i ostavite napomene drugim moderatorima i sebi u budućnosti + processed_msg: 'Prijava #%{id} uspešno obrađena' + quick_actions_description_html: 'Preduzmite brzu radnju ili se spustite niže da biste videli prijavljeni sadržaj:' + remote_user_placeholder: udaljeni korisnik sa %{instance} + reopen: Otvori prijavu ponovo report: 'Prijava #%{id}' reported_account: Prijavljeni nalog reported_by: Prijavio - resolved: Rešeni + resolved: Rešena + resolved_msg: Prijava uspešno razrešena! + skip_to_actions: Preskoči do radnji + status: Status + statuses: Prijavljeni sadržaj + statuses_description_html: Sporni sadržaj će biti naveden u komunikaciji sa prijavljenim nalogom + summary: + action_preambles: + delete_html: 'Upravo ćete obrisati neke od objava korisnika @%{acct}. Ovo će:' + mark_as_sensitive_html: 'Upravo ćete označiti neke objave korisnika @%{acct} kao osetljive. Ovo će:' + silence_html: 'Upravo ćete ograničiti nalog korisnika @%{acct}. Ovo će:' + suspend_html: 'Upravo ćete suspendovati nalog korisnika @%{acct}. Ovo će:' + actions: + delete_html: Obrišite sporne objave + mark_as_sensitive_html: Obeležite medije spornih objava kao osetljive + silence_html: Žestoko ograničite domet korisnika @%{acct} tako što ćete učiniti njegov profil i sadržaje vidljive samo ljudima koji ih već prate i ljudima koji ručno potraže profil + suspend_html: Suspendujte korisnika @%{acct}, što će učiniti njegov profil i sadržaje nedostupnim za pristup i interakciju + close_report: 'Označite prijavu #%{id} kao rešenu' + close_reports_html: Označi sve prijave protiv @%{acct} kao rešene + delete_data_html: Obriši profil i sadržaje korisnika @%{acct} za 30 dana osim ukoliko suspenzija bude povučena u međuvremenu + preview_preamble_html: "@%{acct} će primiti upozorenje sledeće sadržine:" + record_strike_html: Upišite prekršaj na ime @%{acct} da bi Vam bilo lakše da u budućnosti intervenišete prilikom daljih prestupa sa ovog naloga + send_email_html: Pošalji imejl upozorenja korisniku @%{acct} + warning_placeholder: Opciono dodatno obrazloženje za moderacijsku radnju. + target_origin: Poreklo prijavljenog naloga title: Prijave - unresolved: Nerešeni + unassign: Ukloni dodelu + unknown_action_msg: 'Nepoznata radnja: %{action}' + unresolved: Nerešene + updated_at: Ažurirana + view_profile: Pogledaj profil + roles: + add_new: Dodaj ulogu + assigned_users: + few: "%{count} korisnika" + one: "%{count} korisnik" + other: "%{count} korisnika" + categories: + administration: Administracija + devops: DevOps + invites: Pozivnice + moderation: Moderacija + special: Posebno + delete: Izbriši + description_html: Pomoću korisničkih uloga možete da podesite kojim funkcijama i delovima Mastodona Vaši korisnici mogu da pristupe. + edit: Izmeni ulogu '%{name}' + everyone: Podrazumevana ovlašćenja + everyone_full_description_html: Ovo je osnovna uloga koja se odnosi na sve korisnike, čak i one kojima nije dodeljena uloga. Sve druge uloge nasleđuju ovlašćenja od osnovne uloge. + permissions_count: + few: "%{count} dozvole" + one: "%{count} dozvola" + other: "%{count} dozvola" + privileges: + administrator: Administrator + administrator_description: Korisnici sa ovom privilegijom mogu da zaobiđu sva druga ograničenja + delete_user_data: Izbriši podatke korisnika + delete_user_data_description: Dopušta korisnicima da izbrišu podatke drugih korisnika bez odlaganja + invite_users: Pozovi korisnike + invite_users_description: Dopušta korisnicima da pozove nove ljude na server + manage_announcements: Upravljaj obaveštenjima + manage_announcements_description: Dopušta korisnicima da rukovode saopštenjima na serveru + manage_appeals: Nadgledanje žalbi + manage_appeals_description: Dopušta korisnicima da pregledaju žalbe na moderacijske radnje + manage_blocks: Nadgledanje blokova + manage_blocks_description: Dopušta korisnicima da blokiraju imejl provajdere i IP adrese + manage_custom_emojis: Nadležnost nad prilagođenim emodžijima + manage_custom_emojis_description: Daje korisnicima kontrolu nad prilagođenim emodžijima na serveru + manage_federation: Nadgledanje federacije + manage_federation_description: Dopušta korisnicima da blokiraju ili dozvole federaciju sa drugim domenima i kontrolišu isporučivanje podataka drugim serverima + manage_invites: Nadgledanje pozivnica + manage_invites_description: Dopušta korisnicima da pretražuju i deaktiviraju pozivnice + manage_reports: Nadgledanje prijava + manage_reports_description: Dopušta korisnicima da pregledaju prijave i izvršavaju moderacijske radnje nad njima + manage_roles: Upravljaj ulogama + manage_roles_description: Dopušta korisnicima da nadgledaju i dodeljuju uloge sa nižim ovlašćenjima od njihove + manage_rules: Upravljaj pravilima + manage_rules_description: Dozvoli korisnicima da menjaju pravila servera + manage_settings: Upravljaj postavkama + manage_settings_description: Dozvoli korisnicima da menjaju postavke sajta + manage_taxonomies: Nadgledanje taksonomija + manage_taxonomies_description: Dopušta korisnicima da pregledaju sadržaj u trendu i ažuriraju postavke heš oznaka + manage_user_access: Nadležnost nad korisničkim pristupom + manage_user_access_description: Dopušta korisnicima da onemoguće dvofaktorsku autentifikaciju drugih korisnika, menjaju im imejl adrese i resetuju im lozinke + manage_users: Nadležnost nad korisnicima + manage_users_description: Dopušta korisnicima da pročitaju detalje drugih korisnika i izvršavaju moderacijske radnje nad njima + manage_webhooks: Nadležnost nad webhook elementima + manage_webhooks_description: Dopušta korisnicima da uspostave webhook elemente za administrativne radnje + view_audit_log: Pročitaj zapisnik revizija + view_audit_log_description: Dopušta korisnicima da vide istoriju administrativnih radnji na serveru + view_dashboard: Pogledaj kontrolni panel + view_dashboard_description: Dopušta korisnicima da pristupe kontrolnom panelu i raznim metrikama + view_devops: DevOps + view_devops_description: Dopušta korisnicima da pristupe Sidekiq i pgHero kontrolnim panelima + title: Uloge + rules: + add_new: Dodaj pravilo + delete: Izbriši + description_html: Dok većina tvrdi da je pročitala i slaže se sa uslovima korišćenja, ljudi ih obično ne čitaju sve dok se ne javi problem. Učinite pravila Vašeg servera čitljivijim i pristupačnijim tako što ćete ih izložiti u formi liste. Potrudite se da pojedinačna pravila budu kratka i jednostavna, ali pokušajte i da ih ne iscepkate u previše odvojenih stavki. + edit: Uredi pravilo + empty: Nijedno pravilo servera još nije definisano. + title: Pravila servera + settings: + about: + manage_rules: Upravljanje pravilima servera + preamble: Pružite detaljne informacije o tome kako se server vodi, moderira i finansira. + rules_hint: Postoji predviđeno mesto za pravila koja se od korisnika očekuje da poštuju. + title: Naziv + appearance: + preamble: Prilagodite veb interfejs Mastodona. + title: Izgled + branding: + preamble: Brendiranje Vašeg servera ga izdvaja od drugih servera na mreži. Ove informacije mogu biti prikazane u raznim okruženjima, poput Mastodonovog veb interfejsa, nativnih aplikacija, u pregledima linkova na drugim serverima i u aplikacijama za razmenu poruka, itd. Iz ovog razloga, najbolje je da ove informacije budu kratke, jasne i koncizne. + title: Brendiranje + content_retention: + preamble: Kontrolišite kako se sadržaj generisan od strane korisnika skladišti na Mastodonu. + title: Zadržavanje sadržaja + default_noindex: + desc_html: Utiče na sve korisnike koji nisu sami promenili ovu postavku + title: Podrazumevano isključi korisnike iz indeksiranja pretraživača + discovery: + follow_recommendations: Preporuke za praćenje + preamble: Održavanje zanimljivih sadržaja na površini je ključno u privlačenju novih korisnika koji možda ne znaju nikoga na Mastodonu. Kontrolišite kako različiti načini istraživanja funkcionišu na Vašem serveru. + profile_directory: Direktorijum profilâ + public_timelines: Javne vremenske linije + publish_discovered_servers: Objavi otkrivene servere + publish_statistics: Objavi statistiku + title: Otkrivanje + trends: Trendovi + domain_blocks: + all: Svima + disabled: Nikome + users: Prijavljenim lokalnim korisnicima + registrations: + preamble: Kontrolišite ko sme da napravi nalog na Vašem serveru. + title: Registracije + registrations_mode: + modes: + approved: Odobrenje neophodno za registraciju + none: Niko ne može da se registruje + open: Bilo ko može da se registruje + title: Podešavanja servera + site_uploads: + delete: Obriši otpremljeni fajl + destroyed_msg: Otpremanje uspešno obrisano! statuses: + account: Autor + application: Aplikacija back_to_account: Nazad na stranu naloga + back_to_report: Nazad na stranicu sa prijavama + batch: + remove_from_report: Uklonite iz prijave + report: Prijavi + deleted: Obrisano + favourites: Omiljeno + history: Istorija verzijâ + in_reply_to: Odgovor na + language: Jezik media: title: Multimedija + metadata: Meta podaci + no_status_selected: Nijedan status nije promenjen jer nijedan nije izabran + open: Otvori objavu + original_status: Originalna objava + reblogs: Deljenja + status_changed: Objava promenjena title: Statusi naloga + trending: U trendu + visibility: Vidljivost with_media: Sa multimedijom + strikes: + actions: + delete_statuses: "%{name} je obrisao/-la objave %{target}" + disable: "%{name} je zamrznuo nalog korisnika %{target}" + mark_statuses_as_sensitive: "%{name} je označio/-la objave korisnika %{target} kao osetljive" + none: "%{name} je poslao/-la upozorenje korisniku %{target}" + sensitive: "%{name} je obeležio/-la nalog %{target} kao osetljiv" + silence: "%{name} je ograničio/-la nalog %{target}" + suspend: "%{name} je suspendovao/-la nalog %{target}" + appeal_approved: Žalba uvažena + appeal_pending: Žalba u razmatranju + appeal_rejected: Žalba odbijena + system_checks: + database_schema_check: + message_html: Selidbe bazâ podataka su na čekanju. Molimo Vas obavite ih da bi se aplikacija ponašala kako treba + elasticsearch_running_check: + message_html: Povezivanje na Elasticsearch nije bilo moguće. Molimo Vas proverite da li je pokrenut, ili onemogućite pretragu celog teksta + elasticsearch_version_check: + message_html: 'Neusklađena Elasticsearch verzija: %{value}' + version_comparison: Elasticsearch %{running_version} je instaliran a %{required_version} je neophodan + rules_check: + action: Upravljanje pravilima servera + message_html: Niste definisali nijedno pravilo servera. + sidekiq_process_check: + message_html: Nijedan Sidekiq proces nije pokrenut za red(ove) %{value}. Molimo Vas pregledajte svoju Sidekiq konfiguraciju + tags: + review: Pregledaj status + updated_msg: Podešavanja heš oznaka uspešno ažurirana title: Administracija + trends: + allow: Dozvoli + approved: Odobreno + disallow: Zabrani + links: + allow: Dozvoli link + allow_provider: Dozvoli izdavača + description_html: Ovo su linkovi koji se trenutno često dele među nalozima koje Vaš server vidi. Može pomoći Vašim korisnicima da saznaju šta se dešava u svetu. Nijedan link nije javno prikazan sve dok Vi ne odobrite izdavača. Takođe možete da dozvolite ili odbijete zasebne linkove. + disallow: Zabrani link + disallow_provider: Zabrani izdavača + no_link_selected: Nijedan link nije promenjen jer nijedan nije izabran + publishers: + no_publisher_selected: Nijedan izdavač nije promenjen jer nijedan nije izabran + shared_by_over_week: + few: Podeljen od strane %{count} osobe tokom prethodne nedelje + one: Podeljen od strane jedne osobe tokom prethodne nedelje + other: Podeljen od strane %{count} osoba tokom prethodne nedelje + title: Linkovi u trendu + usage_comparison: Podeljeno %{today} puta danas, u poređenju sa %{yesterday} puta juče + not_allowed_to_trend: Nije odobreno za trend + only_allowed: Samo dozvoljeno + pending_review: Pregled na čekanju + preview_card_providers: + allowed: Linkovi sa ovog izvora mogu da budu „u trendu” + description_html: Ovo su domeni čiji se linkovi često dele na Vašem serveru. Linkovi neće biti javno prikazani kao „u trendu” osim ukoliko je domen linkova odobren. Vaše odobrenje (ili odbijanje) se prenosi i na poddomene. + rejected: Linkovi sa ovog izvora neće biti „u trendu” + title: Izdavači + rejected: Odbijen + statuses: + allow: Dozvoli objavu + allow_account: Odobri autora + description_html: Ovo su objave za koje Vaš server zna, a koje se trenutno često dele i koje korisnici često stavljaju u „omiljene”. Mogu pomoći Vašim novim korisnicima i povratnicima da pronađu još ljudi za praćenje. Nijedna objava nije prikazana javno sve dok Vi ne odobrite autora, odnosno dok autor ne dozvoli da njegov/njen nalog bude preporučen drugima. Takođe možete da odobrite ili odbijete zasebne objave. + disallow: Zabrani objavu + disallow_account: Zabrani autora + no_status_selected: Nijedna objava u trendu nije promenjena jer nijedna nije izabrana + not_discoverable: Autor nije dao saglasnost da bude preporučen + shared_by: + few: Podeljeno i stavljeno u „omiljene” %{friendly_count} puta + one: Podeljeno ili stavljeno u „omiljene” jednom + other: Podeljeno i stavljeno u „omiljene” %{friendly_count} puta + title: Objave u trendu + tags: + current_score: Trenutna vrednost %{score} + dashboard: + tag_accounts_measure: jedinstvene upotrebe + tag_languages_dimension: Najzastupljeniji jezici + tag_servers_dimension: Najaktivniji serveri + tag_servers_measure: različiti serveri + tag_uses_measure: ukupno upotreba + description_html: Ovo su heš oznake koje se trenutno često pojavljuju u objavama koje Vaš server vidi. Mogu pomoći Vašim korisnicima da otkriju o čemu se trenutno najviše govori. Nijedna heš oznaka nije prikazana javno sve dok Vi to ne odobrite. + listable: Može se preporučiti + no_tag_selected: Nijedna oznaka nije izmenjena jer nijedna nije izabrana + not_listable: Neće biti preporučeno + not_trendable: Neće se pojavljivati u trendovima + not_usable: Ne može se koristiti + peaked_on_and_decaying: Vrhunac dostignut datuma %{date}, od tada u opadanju + title: Heš oznake u trendu + trendable: Može da se pojavi pod trendovima + trending_rank: 'U trendu #%{rank}' + usable: Može se koristiti + usage_comparison: Upotrebljeno %{today} puta danas, u poređenju sa %{yesterday} puta juče + used_by_over_week: + few: Korišćeno od strane %{count} osobe tokom prethodne nedelje + one: Korišćeno od strane jedne osobe tokom prethodne nedelje + other: Korišćeno od strane %{count} ljudi tokom prethodne nedelje + title: Trendovi + trending: U trendu + warning_presets: + add_new: Dodaj novi + delete: Izbriši + edit_preset: Uredi preset upozorenja + empty: Još uvek niste definisali nijedan šablon upozorenja. + title: Upravljaj presetima upozorenja + webhooks: + add_new: Dodaj krajnju tačku + delete: Izbriši + description_html: "Webhook omogućava Mastodonu da Vašoj aplikaciji isporučuje obaveštenja u realnom vremenu o odabranim događajima, tako da Vaša aplikacija može da automatski izazove reakciju." + disable: Onemogući + disabled: Onemogućeno + edit: Izmeni krajnju tačku + empty: Još uvek nemate nijednu konfigurisanu webhook krajnju tačku. + enable: Omogući + enabled: Aktivno + enabled_events: + few: "%{count} omogućena događaja" + one: 1 omogućen događaj + other: "%{count} omogućenih događaja" + events: Događaji + new: Novi webhook + rotate_secret: Rotacija tajni + secret: Tajno potpisivanje + status: Status + title: Veb-presretač + webhook: Veb-presretač admin_mailer: + new_appeal: + actions: + delete_statuses: obrisati objave korisnika + disable: zamrznuti nalog korisnika + mark_statuses_as_sensitive: označiti objave korisnika kao osetljive + none: upozorenje + sensitive: označiti nalog kao osetljiv + silence: ograničiti nalog + suspend: suspendovati nalog + body: "%{target} prilaže žalbu na moderacijsku odluku korisnika %{action_taken_by} od %{date}, koja je glasila %{type}. U žalbi piše:" + next_steps: Možete uvažiti žalbu da biste povukli moderacijsku odluku, ili je možete ignorisati. + subject: "%{username} prilaže žalbu na moderacijsku odluku sa %{instance}" + new_pending_account: + body: Detalji novog naloga su navedeni dole. Možete odobriti ili odbiti ovaj zahtev. + subject: Nov nalog za pregled na %{instance} (%{username}) new_report: body: "%{reporter} je prijavio %{target}" + body_remote: Neka sa domena %{domain} je prijavio %{target} subject: Nova prijava za %{instance} (#%{id}) + new_trends: + body: 'Sledeće stavke je potrebno pregledati pre nego što mogu javno da se prikažu:' + new_trending_links: + title: Linkovi u trendu + new_trending_statuses: + title: Objave u trendu + new_trending_tags: + no_approved_tags: Trenutno nema odobrenih heš oznaka u trendu. + requirements: 'Bilo koji od sledećih kandidata bi mogao prevazići #%{rank} odobrenu heš oznaku u trendu, koja je trenutno #%{lowest_tag_name} sa vrednošću %{lowest_tag_score}.' + title: Heš oznake u trendu + subject: Novi trendovi za pregled na %{instance} + aliases: + add_new: Napravi pseudonim + created_msg: Uspešno je napravljen novi pseudonim. Sada možete inicirati preseljenje sa starog naloga. + deleted_msg: Uspešno je uklonjen pseudonim. Premeštanje sa tog naloga na ovaj više neće biti moguće. + empty: Nemate nijedan pseudonim. + hint_html: Ako želite da se preselite sa drugog naloga na ovaj, ovde možete napraviti pseudonim, koji je neophodan pre nego što možete nastaviti sa prebacivanjem pratilaca sa starog naloga na ovaj. Ova radnja sama po sebi je bezopasna i reverzibilna. Preseljenje naloga se inicira sa starog naloga. + remove: Odveži pseudonim + appearance: + advanced_web_interface: Napredno veb okruženje + advanced_web_interface_hint: 'Ako želite da iskoristite celu širinu ekrana, napredno veb okruženje vam omogućuje da konfigurišete mnogo različitih kolona da biste videli onoliko informacija u isto vreme koliko želite: početnu stranicu, obaveštenja, združenu vremensku liniju, bilo koji broj lista i heš oznaka.' + animations_and_accessibility: Animacije i pristupačnost + confirmation_dialogs: Dijalozi potvrde + discovery: Otkrivanje + localization: + body: Mastodon prevode dobrovoljci. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Svako može doprineti. + sensitive_content: Osetljiv sadržaj + toot_layout: Raspored objava application_mailer: + notification_preferences: Promeni preference E-pošte + salutation: Poštovani %{name}, settings: 'Promeni podešavanja e-pošte: %{link}' view: 'Pogledaj:' + view_profile: Pogledaj nalog + view_status: Pogledaj status applications: created: Aplikacija uspešno napravljena destroyed: Aplikacija uspešno obrisana + logout: Odjava regenerate_token: Rekreiraj pristupni token token_regenerated: Pristupni token uspešno rekreiran warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim! your_token: Vaš pristupni token auth: - delete_account: Obriši nalog - delete_account_html: Ako želite da obrišete Vaš nalog, možete nastaviti ovde. Bićete upitani da potvrdite. + apply_for_account: Zatražite nalog + change_password: Lozinka + confirmations: + wrong_email_hint: Ako ta imejl adresa nije ispravna, možete je promeniti u podešavanjima naloga. + delete_account: Brisanje naloga + delete_account_html: Ako želite da izbrišete vaš nalog, možete nastaviti ovde. Od vas će se tražiti potvrda. + description: + prefix_invited_by_user: "@%{name} Vas poziva da se pridružite ovom serveru Mastodona!" + prefix_sign_up: Pridružite se Mastodonu danas! + suffix: Sa nalogom, moći ćete da pratite ljude, objavljujete novosti i razmenjujete poruke sa korisnicima bilo kog Mastodon servera i više! didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga? + dont_have_your_security_key: Nemate sigurnosni ključ? forgot_password: Zaboravili ste lozinku? invalid_reset_password_token: Token za resetovanje lozinke je neispravan ili je istekao. Zatražite novi. + link_to_otp: Unesite dvofaktorski kod sa svog telefona ili rezervni kod + link_to_webauth: Koristite svoj sigurnosni ključ + log_in_with: Prijavite se pomoću login: Prijavi se logout: Odjava - migrate_account: Pomeri u drugi nalog + migrate_account: Premeštanje u drugi nalog migrate_account_html: Ako želite da preusmerite ovaj nalog na neki drugi, možete to podesiti ovde. + or_log_in_with: Ili se prijavite sa + privacy_policy_agreement_html: Pročitao/-la sam i saglasan/-a sam sa politikom privatnosti + providers: + cas: CAS-om + saml: SAML-om register: Registruj se + registration_closed: "%{instance} ne prima nove članove" resend_confirmation: Pošalji poruku sa uputstvima o potvrdi naloga ponovo reset_password: Resetuj lozinku + rules: + accept: Prihvati + back: Nazad + preamble: Ovo su pravila koja su uspostavili i koja sprovode moderatori servera %{domain}. + title: Neka osnovna pravila. security: Bezbednost set_new_password: Postavi novu lozinku + setup: + email_below_hint_html: Ako je imejl adresa ispod neispravna, možete je promeniti ovde i dobiti novi imejl potvrde. + email_settings_hint_html: Imejl potvrde je poslat na %{email}. Ako ta imejl adresa nije ispravna, možete je promeniti u podešavanjima naloga. + title: Postavljanje + sign_in: + preamble_html: Prijavite se sa svojim podacima za %{domain}. Ako se Vaš nalog nalazi na drugom serveru, nećete moći da se prijavite ovde. + title: Prijavite se na %{domain} + sign_up: + preamble: Sa nalogom na ovom Mastodon serveru, moći ćete da pratite bilo koga sa mreže, bez obzira na to na kom serveru se njegov/njen nalog nalazi. + title: Hajde da Vam namestimo nalog na %{domain}. + status: + account_status: Status naloga + confirming: Čekanje na potvrdu putem imejla. + functional: Vaš nalog je potpuno operativan. + pending: Vaš zahtev je na čekanju za pregled od strane našeg osoblja. Ovo može potrajati neko vreme. Primićete imejl poruku ukoliko Vam zahtev bude odobren. + redirecting_to: Vaš nalog je neaktivan jer preusmerava na %{acct}. + view_strikes: Pogledajte prethodne prestupe upisane na Vaše ime + too_fast: Formular je podnet prebrzo, pokušajte ponovo. + use_security_key: Koristite sigurnosni ključ authorize_follow: + already_following: Već pratite ovaj nalog + already_requested: Već ste poslali zahtev za praćenje tom nalogu error: Nažalost, desila se greška pri traženju udaljenog naloga follow: Zaprati follow_request: 'Poslali ste zahtev za praćenjen za:' following: 'Sjajno! Sada pratite:' post_follow: close: Ili možete zatvoriti ovaj prozor. - return: Vrati se na profil ovog korisnika + return: Vrati se na nalog ovog korisnika web: Idi na veb title: Zaprati %{acct} + challenge: + confirm: Nastavi + hint_html: "Savet: Nećemo Vas pitati za lozinku ponovo u narednih sat vremena." + invalid_password: Neispravna lozinka + prompt: Potvrdite lozinku za nastavak + crypto: + errors: + invalid_key: nije validan Ed25519 ili Curve25519 ključ + invalid_signature: nije validan Ed25519 potpis + date: + formats: + default: "%d. %b. %Y." + with_month_name: "%d. %B %Y." datetime: distance_in_words: + about_x_hours: "%{count} č." about_x_months: "%{count}mesec" about_x_years: "%{count}god" almost_x_years: "%{count}god" half_a_minute: Upravo sad + less_than_x_minutes: "%{count} min." less_than_x_seconds: Upravo sad over_x_years: "%{count}god" + x_days: "%{count}d" + x_minutes: "%{count} min." x_months: "%{count}mesec" + x_seconds: "%{count} sek." deletes: + challenge_not_passed: Lozinka koju ste uneli nije bila ispravna confirm_password: Unesite trenutnu lozinku da bismo proverili Vaš identitet + confirm_username: Unesite svoje korisničko ime da biste potvrdili proceduru proceed: Obriši nalog success_msg: Vaš nalog je uspešno obrisan + warning: + before: 'Pre nego što nastavite, molimo Vas pažljivo pročitajte sledeće napomene:' + caches: Sadržaj koji je keširan na drugim serverima može da ostane netaknut + data_removal: Vaše objave i drugi podaci će biti trajno izbrisani + email_change_html: Možete promeniti svoju imejl adresu bez brisanja svog naloga + email_contact_html: Ako poruka i dalje ne stiže, možete poslati mejl na %{email} za pomoć + email_reconfirmation_html: Ukoliko Vam imejl za potvrdu ne stiže, možete ga ponovo zatražiti + irreversible: Nećete biti u mogućnosti da vratite ili reaktivirate svoj nalog + more_details_html: Za više detalja, pogledajte politiku privatnosti. + username_available: Vaše korisničko ime će ponovo postati dostupno + username_unavailable: Vaše korisničko ime će ostati nedostupno + disputes: + strikes: + action_taken: Radnja preduzeta + appeal: Žalba + appeal_approved: Žalba na ovaj prestup je uvažena i prestup više nije validan + appeal_rejected: Žalba je odbijena + appeal_submitted_at: Žalba je priložena + appealed_msg: Vaša žalba je priložena. Bićete obavešteni ukoliko ona bude bila uvažena. + appeals: + submit: Priloži žalbu + approve_appeal: Uvaži žalbu + associated_report: Srodna prijava + created_at: Datum + description_html: Ovo su radnje preduzete protiv Vašeg naloga i upozorenja koja su Vam poslali članovi osoblja %{instance}. + recipient: Usmereno prema + reject_appeal: Odbij žalbu + status: 'Objava #%{id}' + status_removed: Objava je već uklonjena iz sistema + title: "%{action} od %{date}" + title_actions: + delete_statuses: Brisanje objava + disable: Zamrzavanje naloga + mark_statuses_as_sensitive: Označavanje objava kao osetljivih + none: Upozorenje + sensitive: Označavanje naloga kao osetljivog + silence: Ograničenje naloga + suspend: Suspenzija naloga + your_appeal_approved: Vaša žalba je uvažena + your_appeal_pending: Priložili ste žalbu + your_appeal_rejected: Vaša žalba je odbijena + domain_validator: + invalid_domain: nelegitimno ime domena errors: - '400': The request you submitted was invalid or malformed. + '400': Zahtev koji ste podneli je bio nelegitiman ili u pogrešnom formatu. '403': Nemate dozvola da vidite ovu stranu. '404': Strana koju ste tražili ne postoji. - '406': This page is not available in the requested format. + '406': Ova stranica nije dostupna u izabranom formatu. '410': Strana koju ste tražili više ne postoji. + '422': + content: Bezbedonosna provera nije uspela. Da ne blokirate kolačiće? + title: Bezbedonosna provera nije uspela '429': Uspored '500': content: Izvinjavamo se, nešto je pošlo po zlu sa ove strane. title: Strana nije ispravna - '503': The page could not be served due to a temporary server failure. + '503': Stranicu nije bilo moguće dostaviti usled privremenog pada servera. noscript_html: Da biste koristili Mastodont veb aplikaciju, omogućite JavaScript. U suprotnom, probajte neku od originalnih aplikacija za Mastodont za Vašu platformu. + existing_username_validator: + not_found: nije bilo moguće pronaći lokalnog korisnika sa tim korisničkim imenom + not_found_multiple: nije bilo moguće pronaći %{usernames} exports: + archive_takeout: + date: Datum + download: Preuzmite Vašu arhivu + hint_html: Možete zatražiti arhivu vaših objava i otpremljenih medija. Izvezeni podaci će biti u ActivityPub formatu, koji može čitati bilo koji kompatibilan softver. Arhivu možete zatražiti svakih 7 dana. + in_progress: Sastavljanje vaše arhive... + request: Zatražite svoju arhivu + size: Veličina blocks: Blokirali ste - mutes: Ućutkali ste + bookmarks: Obeleživači + csv: CSV + domain_blocks: Blokovi domena + lists: Liste + mutes: Ignorišete storage: Multimedijalno skladište + featured_tags: + add_new: Dodaj novu + errors: + limit: Već ste istakli maksimalan broj heš oznaka + hint_html: "Šta su istaknute heš onake? One se prikazuju istaknuto na vašem javnom profilu i omogućuju ljudima da pregledaju vaše javne objave konkretno pod tim heš oznakama. One su sjajan alat za praćenje kreativnih radova ili dugoročnih projekata." + filters: + contexts: + account: Profili + home: Vremenska linija početne + notifications: Obaveštenja + public: Javne vremenske linije + thread: Razgovori + edit: + add_keyword: Dodaj ključnu reč + keywords: Ključne reči + statuses: Zasebne objave + statuses_hint_html: Ovaj filter važi za odabrane zasebne objave bez obzira na to da li sadrže ključne reči navedene ispod. Pregledajte ili uklonite objave iz filtera. + title: Izmeni filter + errors: + deprecated_api_multiple_keywords: Ovi parametri ne mogu biti promenjeni u ovoj aplikaciji zato što se odnose na više od jedne ključne reči. Koristite ažurniju aplikaciju ili veb interfejs. + invalid_context: Nijedan ili nevažeći kontekst isporučen + index: + contexts: Filtrira u %{contexts} + delete: Izbriši + empty: Nemate filtere. + expires_in: Ističe za %{distance} + expires_on: Ističe datuma %{date} + keywords: + few: "%{count} ključne reči" + one: "%{count} ključna reč" + other: "%{count} ključnih reči" + statuses: + few: "%{count} objave" + one: "%{count} objava" + other: "%{count} objava" + statuses_long: + few: "%{count} zasebne objave sakrivene" + one: "%{count} zasebna objava sakrivena" + other: "%{count} zasebnih objava sakriveno" + title: Filteri + new: + save: Sačuvaj novi filter + title: Dodaj novi filter + statuses: + back_to_filter: Nazad na filter + batch: + remove: Ukloni iz filtera + index: + hint: Ovaj filter važi za odabrane zasebne objave bez obzira na druge kriterijume. Možete da dodate više objava u ovaj filter putem veb interfejsa. + title: Filtrirane objave generic: + all: Svi + all_items_on_page_selected_html: + few: Sve %{count} stavke sa ove stranice su izabrane. + one: "%{count} stavka sa ove stranice je izabrana." + other: Svih %{count} stavki sa ove stranice je izabrano. + all_matching_items_selected_html: + few: Sve %{count} stavke koje se poklapaju sa Vašom pretragom su izabrane. + one: "%{count} stavka koja se poklapa sa Vašom pretragom je izabrana." + other: Svih %{count} stavki koje se poklapaju sa Vašom pretragom su izabrane. changes_saved_msg: Izmene uspešno sačuvane! - save_changes: Snimi izmene + copy: Kopiraj + delete: Izbriši + deselect: Poništi sve izbore + none: Nijedna + order_by: Sortiraj prema + save_changes: Sačuvaj promene + select_all_matching_items: + few: Odaberite sve %{count} stavke koje se poklapaju sa Vašom pretragom. + one: Odaberite %{count} stavku koja se poklapa sa Vašom pretragom. + other: Odaberite svih %{count} stavki koje se poklapaju sa Vašom pretragom. + today: danas validation_errors: few: Nešto nije baš kako treba! Pregledajte %{count} greške ispod one: Nešto nije baš kako treba! Pregledajte greške ispod other: Nešto nije baš kako treba! Pregledajte %{count} grešaka ispod imports: + errors: + invalid_csv_file: 'Neispravan CSV fajl. Greška: %{error}' + over_rows_processing_limit: sadrži više od %{count} redova + modes: + merge: Stapanje + merge_long: Zadržite postojeće zapise i dodajte nove + overwrite: Zameni + overwrite_long: Zameni trenutne zapise novima preface: Možete uvesti podatke koje ste izvezli sa druge instance, kao što su liste ljudi koje ste pratili ili blokirali. success: Vaši podaci su uspešno otpremljeni i biće obrađeni uskoro types: blocking: Lista blokiranja + bookmarks: Obeleživači + domain_blocking: Lista blokiranih domena following: Lista pratilaca muting: Lista ućutkanih upload: Otpremi @@ -242,10 +1269,11 @@ sr-Latn: '21600': 6 sati '3600': 1 sad '43200': 12 sati - '604800': 1 week + '604800': 1 nedelja '86400': 1 dan expires_in_prompt: Nikad generate: Generiši + invited_by: 'Pozvao Vas je:' max_uses: few: "%{count} korišćenja" one: 1 korišćenje @@ -255,100 +1283,460 @@ sr-Latn: table: expires_at: Ističe uses: Korišćenja - title: Pozovi ljude + title: Pozovite ljude + lists: + errors: + limit: Dostigli ste maksimalni broj listâ + login_activities: + authentication_methods: + otp: aplikacija za dvofaktorsku autentifikaciju + password: lozinka + sign_in_token: imejl sigurnosni kod + webauthn: sigurnosni ključevi + description_html: Ukoliko primetite aktivnost koju ne prepoznajete, razmislite o tome da promenite svoju lozinku i uključite dvofaktorsku autentifikaciju. + empty: Istorija autentifikacije nije dostupna + failed_sign_in_html: Neuspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser}) + successful_sign_in_html: Uspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser}) + title: Istorija autentifikacije media_attachments: validations: images_and_video: Ne može da se prikači video na status koji već ima slike + not_ready: Ne mogu se priložiti fajlovi koji još uvek nisu obrađeni. Pokušajte ponovo za koji trenutak! too_many: Ne može se prikačiti više od 4 fajla migrations: acct: korisnik@domen novog naloga + cancel: Otkaži preusmerenje + cancel_explanation: Otkazivanje preusmerenja će ponovo aktivirati Vaš sadašnji nalog, ali neće vratiti pratioce koji su premešteni na drugi nalog. + cancelled_msg: Uspešno je otkazano preusmerenje. + errors: + already_moved: već ste se preselili na isti nalog + missing_also_known_as: nije pseudonim ovog naloga + move_to_self: ne možete se preseliti na sadašnji nalog + not_found: nije bilo moguće pronaći nalog + on_cooldown: Pod ograničenjem ste + followers_count: Pratioci u trenutku premeštaja + incoming_migrations: Premeštanje iz drugog naloga + incoming_migrations_html: Da biste prešli sa drugog naloga na ovaj, prvo morate kreirate pseudonim naloga. + moved_msg: Vaš nalog sada preusmerava na %{acct} i Vaši pratioci se trenutno prebacuju. + not_redirecting: Vaš nalog trenutno ne preusmerava ni na jedan drugi nalog. + on_cooldown: Nedavno ste se preselili na novi nalog. Ova funkcija će Vam ponovo postati dostupna za %{count} dana. + past_migrations: Prethodne selidbe + proceed_with_move: Prebacite pratioce + redirected_msg: Vaš nalog sada preusmerava na %{acct}. + redirecting_to: Vaš nalog preusmerava na %{acct}. + set_redirect: Postavi preusmerenje + warning: + backreference_required: Novi nalog prvo mora biti konfigurisan tako da referiše na ovaj nalog + before: 'Pre nego što nastavite, molimo Vas pažljivo pročitajte sledeće napomene:' + cooldown: Nakon preseljenja potrebno je da prođe određeno vreme pre nego što ćete ponovo moći da se preselite + disabled_account: Vaš trenutni nalog više neće biti upotrebljiv. Međutim, imaćete pristup izvozu podataka kao i reaktivaciji. + followers: Ova radnja će premestiti sve pratioce sa trenutnog naloga na novi nalog + only_redirect_html: Umesto preseljenja, možete samo dodati preusmeravajući link na svoj profil.. + other_data: Ostali podaci neće biti automatski prebačeni + redirect: Profil Vašeg sadašnjeg naloga će biti ažuriran sa obaveštenjem o preusmerenju i biće isključen iz pretrage moderation: title: Moderacija + move_handler: + carry_blocks_over_text: Ovaj korisnik se preselio sa naloga %{acct}, koji ste blokirali. + carry_mutes_over_text: Ovaj korisnik se preselio sa naloga %{acct}, koji ste utišali. + copy_account_note_text: 'Ovaj korisnik se preselio sa naloga %{acct}, o kome ste zapisali sledeće beleške:' + navigation: + toggle_menu: Prikaži/sakrij meni notification_mailer: + admin: + report: + subject: "%{name} je podneo/-la prijavu" + sign_up: + subject: "%{name} se registrovao/-la" favourite: body: "%{name} je postavio kao omiljen Vaš status:" subject: "%{name} je postavio kao omiljen Vaš status" + title: Novi omiljeni follow: body: "%{name} Vas je zapratio!" subject: "%{name} Vas je zapratio" + title: Novi pratioc follow_request: + action: Upravljajte zahtevima za praćenje body: "%{name} je zatražio da Vas zaprati" subject: 'Pratioci na čekanju: %{name}' + title: Novi zahtev za praćenje mention: + action: Odgovori body: "%{name} Vas je pomenuo u:" subject: "%{name} Vas je pomenuo" + title: Novo spominjanje + poll: + subject: Anketa korisnika %{name} se završila reblog: - body: "%{name} Vam je podržao(la) status:" - subject: "%{name} je podržao(la) Vaš status" + body: "%{name} Vam je podržao/la status:" + subject: "%{name} je podržao/la Vaš status" + title: Nova podrška + status: + subject: "%{name} je upravo postavio/-la objavu" + update: + subject: "%{name} je izmenio/-la objavu" + notifications: + email_events: Događaji za obaveštenja e-poštom + email_events_hint: 'Izaberite dešavanja za koja želite da primate obaveštenja:' + other_settings: Ostala podešavanja obaveštenja + number: + human: + decimal_units: + format: "%n %u" + units: + billion: mlrd. + million: mil. + quadrillion: tril. + thousand: hilj. + trillion: bil. + otp_authentication: + code_hint: Ukucajte kod generisan u Vašoj aplikaciji za autentifikaciju da biste potvrdili + description_html: Ako uključite dvofaktorsku autentifikaciju putem aplikacije za autentifikaciju, moraćete da budete pri telefonu prilikom prijavljivanja da biste imali pristup generisanim kodovima za prijavu. + enable: Omogući + instructions_html: "Skenirajte ovaj QR kod pomoću Google autentifikatora ili slične aplikacije na svom telefonu. Od sada pa ubuduće, ta aplikacija će generisati pristupne kodove koje ćete morati da unesete prilikom prijavljivanja." + manual_instructions: 'Ako ne možete da skenirate QR kod i morate da ga unesete ručno, evo njegove tekstualne šifre:' + setup: Instalacija + wrong_code: Uneseni kod je bio neispravan! Da li su vreme servera i vreme uređaja ispravni? pagination: - next: Sledeći + newer: Novije + next: Sledeće + older: Starije prev: Prethodni + truncate: "…" + polls: + errors: + already_voted: Već ste glasali u ovoj anketi + duplicate_options: sadrži duplikate + duration_too_long: previše je daleko u budućnosti + duration_too_short: previše je skoro + expired: Anketa je već završena + invalid_choice: Izabrana opcija ne postoji + over_character_limit: ne može biti duže od po %{max} karaktera + too_few_options: mora imati više od jedne opcije + too_many_options: ne može da sadrži više od %{max} opcija + preferences: + other: Ostalo + posting_defaults: Podrazumevana podešavanja objavljivanja + public_timelines: Javne vremenske linije + privacy_policy: + title: Politika privatnosti + reactions: + errors: + limit_reached: Dostignuto je ograničenje različitih reakcija + unrecognized_emoji: nije prepoznat emodži + relationships: + activity: Aktivnost naloga + confirm_follow_selected_followers: Da li ste sigurni da želite da pratite izabrane pratioce? + confirm_remove_selected_followers: Da li ste sigurni da želite da uklonite izabrane pratioce? + confirm_remove_selected_follows: Da li ste sigurni da želite da uklonite izabrana praćenja? + dormant: Neaktivan + follow_failure: Nije moguće pratiti neke od izabranih naloga. + follow_selected_followers: Prati izabrane pratioce + followers: Pratioci + following: Praćenja + invited: Pozvan + last_active: Poslednji put aktivan + most_recent: Najnoviji + moved: Premešten + mutual: Zajednički + primary: Primarni + relationship: Odnos + remove_selected_domains: Ukloni sve pratioce sa izabranih domena + remove_selected_followers: Ukloni izabrane pratioce + remove_selected_follows: Otprati izabrane korisnike + status: Status naloga remote_follow: missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog + reports: + errors: + invalid_rules: ne referiše na legitimna pravila + rss: + content_warning: 'Upozorenje o sadržaju:' + descriptions: + account: Javne objave sa @%{acct} + tag: 'Javne objave označene sa #%{hashtag}' + scheduled_statuses: + over_daily_limit: Prekoračili ste granicu od %{limit} planiranih objava za danas + over_total_limit: Prekoračili ste granicu od %{limit} planiranih objava + too_soon: Planirani datum mora biti u budućnosti sessions: activity: Poslednja aktivnost browser: Veb čitač browsers: - chrome: Hrom + alipay: Alipej + blackberry: Blekberi + chrome: Chrome + edge: Majkrosoft Edž + electron: Elektron + firefox: Fajerfoks generic: Nepoznati veb čitač + huawei_browser: Huawei pregledač + ie: Internet Eksplorer + micro_messenger: MajkroMesendžer + nokia: Nokija S40 Ovi Pretraživač + opera: Opera + otter: Oter + phantom_js: FantomDžejEs + qq: KjuKju Pretraživač + safari: Safari + uc_browser: UC Browser + unknown_browser: Nepoznati pregledač + weibo: Veibo current_session: Trenutna sesija description: "%{browser} sa %{platform}" - explanation: Ovo su trenutno prijavljeni veb čitači na Vaš Mastodont nalog. + explanation: Ovo su veb pretraživači koji su trenutno prijavljeni na Vaš Mastodon nalog. + ip: IP platforms: - adobe_air: Adobe Air-a + adobe_air: Adob Er-a android: Androida + blackberry: Blekberi + chrome_os: ChromeOS firefox_os: Fajerfoks OS-a + ios: iOS-a + kai_os: KaiOS linux: Linuksa - mac: Mac-a - other: nepoznate platforme - windows: Vindouza - windows_mobile: Vindouz mobilnog - windows_phone: Vindouz telefona + mac: Meka + unknown_platform: Nepoznata platforma + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: Opozovi revoke_success: Sesija uspešno opozvana title: Sesije + view_authentication_history: Pogledajte istoriju autentifikacije vašeg naloga settings: + account: Nalog + account_settings: Podešavanja naloga + aliases: Pseudonimi naloga + appearance: Izgled authorized_apps: Autorizovane aplikacije - back: Nazad na Mastodonta + back: Nazad na Mastodon delete: Brisanje naloga development: Razvoj - edit_profile: Izmena profila + edit_profile: Uređivanje profila export: Izvoz podataka + featured_tags: Istaknute heš oznake import: Uvoz + import_and_export: Uvoz i izvoz migrate: Prebacivanje naloga notifications: Obaveštenja preferences: Podešavanja + profile: Nalog + relationships: Praćenja i pratioci + statuses_cleanup: Automatsko brisanje objava + strikes: Moderacijski prestupi two_factor_authentication: Dvofaktorska identifikacija + webauthn_authentication: Sigurnosni ključevi statuses: + attached: + audio: + few: "%{count} audio zapisa" + one: "%{count} audio zapis" + other: "%{count} audio zapisa" + description: 'U prilogu: %{attached}' + image: + few: "%{count} slika" + one: "%{count} sliku" + other: "%{count} slika" + video: + few: "%{count} video zapisa" + one: "%{count} video zapis" + other: "%{count} video zapisa" + boosted_from_html: Podržano od %{acct_link} + content_warning: 'Upozorenje na sadržaj: %{warning}' + default_language: Isto kao jezik okruženja + disallowed_hashtags: + few: 'sadrži zabranjene heštegove: %{tags}' + one: 'sadrži zabranjeni hešteg: %{tags}' + other: 'sadrži zabranjene heštegove: %{tags}' + edited_at_html: Izmenjeno %{date} + errors: + in_reply_not_found: Objava na koju pokušavate da odgovorite naizgled ne postoji. open_in_web: Otvori u vebu over_character_limit: ograničenje od %{max} karaktera prekoračeno pin_errors: - limit: Već imate prikačen najveći broj tutova - ownership: Tuđi tutovi ne mogu da se prikače + direct: Objave koje su vidljive samo pomenutim korisnicima ne mogu biti prikačene + limit: Već ste zakačili maksimalan broj objava + ownership: Tuđa objava se ne može zakačiti reblog: Podrška ne može da se prikači + poll: + total_people: + few: "%{count} osobe" + one: "%{count} osoba" + other: "%{count} ljudi" + total_votes: + few: "%{count} glasa" + one: "%{count} glas" + other: "%{count} glasova" + vote: Glasajte show_more: Prikaži još + show_newer: Nikad ne prikazuj + show_older: Prikaži starije + show_thread: Prikaži niz + sign_in_to_participate: Prijavite se da učestvujete u razgovoru + title: "%{name}: „%{quote}”" visibilities: + direct: Direktno private: Samo pratioci - private_long: Samo prikaži pratiocima + private_long: Prikaži samo pratiocima public: Javno public_long: Svako može da vidi unlisted: Neizlistano - unlisted_long: Svako može da vidi, ali nije izlistano na javnim lajnama + unlisted_long: Svako može da vidi, ali nije izlistano na javnim vremenskim linijama + statuses_cleanup: + enabled: Automatski izbriši stare objave + enabled_hint: Automatski briše vaše objave kada dostignu određeni starosni prag, osim ako se ne podudaraju sa jednim od izuzetaka u nastavku + exceptions: Izuzeci + explanation: Pošto je brisanje objava skupa operacija, ovo se radi polako tokom vremena kada server inače nije zauzet. Iz tog razloga, vaše objave mogu biti izbrisane neko vreme nakon što dostignu starosni prag. + ignore_favs: Ignoriši omiljene + ignore_reblogs: Ignoriši podržavanja + interaction_exceptions: Izuzeci zasnovani na interakcijama + interaction_exceptions_explanation: Imajte na umu da ne postoji garancija da će objave biti izbrisane ako broj označavanja kao omiljenih ili broj podržavanja padne ispod praga nakon što ga premaše. + keep_direct: Zadrži direktne poruke + keep_direct_hint: Ne briše nijednu od vaših direktnih poruka + keep_media: Zadrži objave sa medijskim prilozima + keep_media_hint: Ne briše nijednu od vaših objava koje imaju medijske priloge + keep_pinned: Zadrži zakačene objave + keep_pinned_hint: Ne briše nijednu od vaših zakačenih objava + keep_polls: Zadrži ankete + keep_polls_hint: Ne briše nijednu od vaših anketa + keep_self_bookmark: Zadrži objave koje ste dodali u obeleživače + keep_self_bookmark_hint: Ne briše vaše sopstvene objave ako ste ih dodlai u obeleživače + keep_self_fav: Zadrži omiljene objave + keep_self_fav_hint: Ne briše vaše sopstvene objave ako ste ih označili kao omiljene + min_age: + '1209600': 2 sedmice + '15778476': 6 meseci + '2629746': 1 mesec + '31556952': 1 godina + '5259492': 2 meseca + '604800': 1 sedmica + '63113904': 2 godine + '7889238': 3 meseca + min_age_label: Starosni prag + min_favs: Zadrži objave označene kao omiljene najmanje + min_favs_hint: Ne briše nijednu vašu objavu koja je dobila najmanje ovaj broj omiljenih. Ostavite prazno za brisanje objava bez obzira na njihov broj omiljenih + min_reblogs: Zadrži objave podržane barem + min_reblogs_hint: Ne briše nijednu vašu objavu koja je bila podržana najmanje ovoliko puta. Ostavite prazno za brisanje objava bez obzira na njihov broj podržavanja stream_entries: - pinned: Prikačeni tut + pinned: Zakačena objava reblogged: podržano sensitive_content: Osetljiv sadržaj + strikes: + errors: + too_late: Istekao je rok za podnošenje žalbe na zabeležen prestup + tags: + does_not_match_previous_name: ne poklapa se sa prethodnim imenom themes: - default: Mastodont + contrast: Veliki kontrast + default: Mastodon + mastodon-light: Mastodon (svetlo) + time: + formats: + default: "%d %b %Y, %H:%M" + month: "%b %Y" + time: "%H:%M" two_factor_authentication: + add: Dodaj disable: Isključi + disabled_success: Dvofaktorska autentifikacija je uspešno onemogućena + edit: Izmeni enabled: Dvofaktorska identifikacija je uključena enabled_success: Dvofaktorska identifikacija je uspešno uključena generate_recovery_codes: Generiši kodove za oporavak - lost_recovery_codes: Kodovi za oporavak Vam omogućavaju da povratite pristup nalogu ako izgubite telefon. Ako izgubite kodove za oporavak, možete ih regenerisati ovde. Od tog trenutka, stari kodovi za oporavak više ne važe. + lost_recovery_codes: Kodovi za oporavak Vam omogućavaju da povratite pristup nalogu ako izgubite telefon. Ako izgubite kodove za oporavak, možete ih re-generisati ovde. Od tog trenutka, stari kodovi za oporavak više ne važe. + methods: Metode dvofaktorske autentifikacije + otp: Aplikacija za autentifikaciju recovery_codes: Napravite rezervu kodova za oporavak - recovery_codes_regenerated: Kodovi za oporavak uspešno regenerisani + recovery_codes_regenerated: Kodovi za oporavak uspešno re-generisani recovery_instructions_html: Ako ikada izgubite pristup telefonu, možete iskoristiti kodove za oporavak date ispod da povratite pristup nalogu. Držite kodove za oporavak na sigurnom. Na primer, odštampajte ih i čuvajte ih sa ostalim važnim dokumentima. + webauthn: Sigurnosni ključevi + user_mailer: + appeal_approved: + action: Idite na svoj nalog + explanation: Žalba podneta datuma %{appeal_date} na upisan prestup na Vaše ime datuma %{strike_date} je uvažena. Vaš nalog je ponovo u povoljnom položaju. + subject: Vaša žalba podneta %{date} je uvažena + title: Žalba uvažena + appeal_rejected: + explanation: Žalba podneta datuma %{appeal_date} na upisan prestup na Vaše ime datuma %{strike_date} je odbijena. + subject: Vaša žalba podneta %{date} je odbijena + title: Žalba odbijena + backup_ready: + explanation: Tražili ste potpunu rezervnu kopiju vašeg Mastodon računa. Spremna za preuzimanje! + subject: Vaša arhiva je spremna za preuzimanje + title: Izvoz arhive + suspicious_sign_in: + change_password: promenite svoju lozinku + details: 'Evo detalja o prijavi:' + explanation: Primetili smo prijavu na Vaš nalog sa nepoznate IP adrese. + further_actions_html: Ukoliko to niste bili Vi, preporučujemo da odmah %{action} i uključite dvofaktorsku autentifikaciju da biste održali bezbednost svog naloga. + subject: Vašem nalogu je pristupljeno sa nepozate IP adrese + title: Novo prijavljivanje + warning: + appeal: Priložite žalbu + appeal_description: Ukoliko verujete da je u pitanju greška, možete priložiti žalbu osoblju %{instance}. + categories: + spam: Neželjena pošta + violation: Sadržaj krši sledeća pravila zajednice + explanation: + delete_statuses: Za neke od Vaših objava je ustanovljeno da krše jedno ili više pravila zajednice i usled toga su uklonjene od strane moderatora %{instance}. + disable: Više ne možete da koristite svoj nalog, ali Vaš profil i drugi podaci ostaju netaknuti. Možete da zatražite rezervnu kopiju svojih podataka, promenite podešavanja naloga ili obrišete svoj nalog. + mark_statuses_as_sensitive: Neke od Vaših objava su označene kao osetljive od strane moderatora %{instance}. Ovo znači da će ljudi morati da kliknu na multimedije u objavama pre nego što mogu da ih vide. Ubuduće možete sami da označite svoju multimediju kao osetljivu prilikom sastavljanja objave. + sensitive: Od sada će svi Vaši otpremljeni multimedijalni fajlovi biti označeni kao osetljivi i sakriveni iza tastera upozorenja. + silence: I dalje možete koristiti svoj nalog ali samo ljudi koji Vas već prate će videti Vaše objave na ovom serveru, i možda ćete biti isključeni iz raznih mehanizama otkrivanja. Međutim, drugi ljudi i dalje mogu ručno da Vas zaprate. + suspend: Više ne možete da koristite svoj nalog, i Vaš profil i ostali podaci Vam više nisu dostupni. I dalje možete da se prijavite da biste zatražili rezervnu kopiju svojih podataka sve dok se Vaši podaci trajno ne izbrišu za oko 30 dana, s tim što ćemo zadržati neke osnovne podatke da bismo Vas sprečili u eventualnom zaobilaženju suspenzije. + reason: 'Obrazloženje:' + statuses: 'Citirane objave:' + subject: + delete_statuses: Vaše objave sa %{acct} su izbrisane + disable: Vaš nalog %{acct} je zamrznut + mark_statuses_as_sensitive: Vaše objave sa %{acct} su obeležene kao osetljive + none: Upozorenje za %{acct} + sensitive: Vaše objave sa %{acct} će ubuduće biti označene kao osetljive + silence: Vaš nalog %{acct} je ograničen + suspend: Vaš nalog %{acct} je suspendovan + title: + delete_statuses: Objave su obrisane + disable: Nalog zamrznut + mark_statuses_as_sensitive: Objave su označene kao osetljive + none: Upozorenje + sensitive: Nalog je označen kao osetljiv + silence: Nalog ograničen + suspend: Nalog suspendovan + welcome: + edit_profile_action: Podesi nalog + edit_profile_step: Možete prilagoditi svoj profil tako što ćete postaviti profilnu sliku, promeniti ime za prikaz i tako dalje. Možete dati saglasnost da pregledate nove pratioce pre nego što im dozvolite da Vas zaprate. + explanation: Evo nekoliko saveta za početak + final_action: Počnite objavljivati + final_step: 'Počnite da objavljujete! Čak i bez pratilaca, Vaše javne objave su vidljive drugim ljudima, na primer na lokalnoj vremenskoj liniji ili u heš oznakama. Možda želite da se predstavite sa heš oznakom #introductions ili #predstavljanja.' + full_handle: Vaš pun nadimak + full_handle_hint: Ovo biste rekli svojim prijateljima kako bi vam oni poslali poruku, ili zapratili sa druge instance. + subject: Dobrodošli na Mastodon + title: Dobrodošli, %{name}! users: + follow_limit_reached: Ne možete pratiti više od %{limit} ljudi invalid_otp_token: Neispravni dvofaktorski kod - signed_in_as: 'Prijavljen kao:' + otp_lost_help_html: Ako izgubite pristup za oba, možete stupiti u kontakt sa %{email} + seamless_external_login: Prijavljeni ste putem spoljašnje usluge, tako da lozinka i podešavanja E-pošte nisu dostupni. + signed_in_as: 'Prijavljen/a kao:' + verification: + explanation_html: 'Možete izvršiti proveru da ste Vi vlasnik veza na Vašem nalogu. Da bi to radilo, povezani veb sajt mora da sadrži vezu nazad ka Vašem Mastodon nalogu. Veza nazad mora da ima rel="me" atribut. Tekstuelni sadržaj veze nije bitan. Evo primera:' + verification: Provera + webauthn_credentials: + add: Dodajte novi sigurnosni ključ + create: + error: Iskrsao je problem prilikom dodavanja Vašeg sigurnosnog ključa. Molimo Vas pokušajte ponovo. + success: Vaš sigurnosni ključ je uspešno dodat. + delete: Izbriši + delete_confirmation: Da li ste sigurni da želite da izbrišete ovaj sigurnosni ključ? + description_html: Ako uključite autentifikaciju sigurnosnim ključem, moraćete da koristite jedan od svojih sigurnosnih ključeva prilikom prijavljivanja. + destroy: + error: Iskrsao je problem prilikom brisanja Vašeg sigurnosnog ključa. Molimo Vas pokušajte ponovo. + success: Vaš sigurnosni ključ je uspešno obrisan. + invalid_credential: Neispravan sigurnosni ključ + nickname_hint: Unesite nadimak svog novog sigurnosnog ključa + not_enabled: Još uvek niste omogućili WebAuthn + not_supported: Ovaj pretraživač ne podržava sigurnosne ključeve + otp_required: Da biste koristili sigurnosne ključeve, molimo Vas prvo uključite dvofaktorsku autentifikaciju. + registered_on: Registrovan/-a %{date} diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8a56fa7f30..9fc831f202 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1,23 +1,24 @@ --- sr: about: - about_mastodon_html: Мастодон је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта. + about_mastodon_html: 'Друштвена мрежа будућности: без реклама, без корпоративног праћења, етички дизајн, и децентрализација! Поседујте своје податке са Мастодоном!' contact_missing: Није постављено contact_unavailable: Није доступно hosted_on: Мастодон хостован на %{domain} - title: О + title: О инстанци accounts: - follow: Прати + follow: Запрати followers: - few: Пратиоци - one: Пратиоц - other: Пратиоци + few: Пратиоца + one: Пратилац + other: Пратилаца following: Пратим - last_active: последњи пут активни + instance_actor_flash: Овај налог је виртуелни актер који не представља ниједног корисника лично, већ сâм сервер. Користи се у сврху федерације и не треба га суспендовати. + last_active: најскорија активност link_verified_on: Власништво над овом везом је проверено %{date} - nothing_here: Овде нема ништа! + nothing_here: Овде нема ничега! pin_errors: - following: Морате пратити ову особу ако хоћете да потврдите + following: Морате пратити особу коју желите да препоручите posts: few: Објаве one: Објава @@ -34,16 +35,17 @@ sr: accounts: add_email_domain_block: Блокирај домен е-поште approve: Одобри + approved_msg: Захтев за регистрацију корисника %{username} је успешно одобрен are_you_sure: Да ли сте сигурни? avatar: Аватар by_domain: Домен change_email: changed_msg: Е-пошта налога успешно промењена! - current_email: Тренутна е-пошта - label: Промените е-пошту - new_email: Нова e-пошта - submit: Промените e-пошту - title: Промените e-пошту за %{username} + current_email: Тренутна адреса е-поште + label: Промените адресу е-поште + new_email: Нова адреса e-поште + submit: Промените адресу e-поште + title: Промените адресу e-поште за %{username} change_role: changed_msg: Улога успешно промењена! label: Промени улогу @@ -51,21 +53,25 @@ sr: title: Промени улогу за %{username} confirm: Потврди confirmed: Потврђено - confirming: Потврдување + confirming: Потврђивање custom: Произвољно delete: Обриши податке deleted: Избрисано demote: Ражалуј - disable: Искључи + destroyed_msg: Подаци корисника %{username} су неповратно стављени у ред за брисање + disable: Замрзни + disable_sign_in_token_auth: Онемогући имејл аутентификацију disable_two_factor_authentication: Искључи 2FA - disabled: Искључена - display_name: Приказано име + disabled: Замрзнут + display_name: Име за приказ domain: Домен edit: Измени email: Е-пошта email_status: Статус е-поште enable: Омогући - enabled: Укључено + enable_sign_in_token_auth: Омогући имејл аутентификацију + enabled: Омогућен + enabled_msg: Успешно одлеђен налог корисника %{username} followers: Пратиоци follows: Праћени header: Заглавље @@ -73,18 +79,21 @@ sr: invite_request_text: Разлози за придруживање invited_by: Позван од стране ip: IP - joined: Придружио се + joined: Придружио/-ла се location: all: Све - local: Локалне - remote: Удаљене + local: Локални + remote: Удаљени title: Локација login_status: Статус пријаве media_attachments: Мултимедијални прилози memorialize: Пребаци у in memoriam + memorialized: Подигнут споменик + memorialized_msg: "%{username} је успешно претворен у меморијални налог" moderation: active: Активан all: Сви + disabled: Искључен pending: На чекању silenced: Ограничено suspended: Суспендовани @@ -92,79 +101,202 @@ sr: moderation_notes: Модераторске белешке most_recent_activity: Најскорија активност most_recent_ip: Најскорија IP адреса + no_account_selected: Ниједан налог није промењен јер ниједан није изабран no_limits_imposed: Нема ограничења no_role_assigned: Ниједна улога није додељена not_subscribed: Није претплаћен pending: Чека на преглед - perform_full_suspension: Искључи + perform_full_suspension: Суспендуј + previous_strikes: Претходни прекршаји + previous_strikes_description_html: + few: Овај налог има %{count} прекршаја. + one: Овај налог има један прекршај. + other: Овај налог има %{count} прекршаја. promote: Унапреди protocol: Протокол public: Јавно push_subscription_expires: PuSH претплата истиче - redownload: Освежи налог - reject: Одбаци + redownload: Освежи профил + redownloaded_msg: Успешно освежен профил корисника %{username} из извора + reject: Одбиј + rejected_msg: Захтев за регистрацију корисника %{username} је успешно одбијен + remote_suspension_irreversible: Подаци овог налога су неповратно избрисани. + remote_suspension_reversible_hint_html: Налог је суспендован са свог сервера и његови подаци ће бити избрисани датума %{date}. До тада, удаљени сервер може да врати овај налог без икаквих промена. Уколико желите да одмах обришете све податке налога, можете то учинити испод. remove_avatar: Уклони аватар remove_header: Одстрани заглавље removed_avatar_msg: Слика аватара корисника %{username} је успешно уклоњена + removed_header_msg: Успешно обрисана слика заглавља корисника %{username} resend_confirmation: - already_confirmed: Овој корисник е веќе потврден - send: Препрати го е-мајлот за потврда - success: Е-пошта за потврда успешно испратена! + already_confirmed: Овај корисник је већ потврђен + send: Поново пошаљи имејл потврду + success: Имејл за потврду је успешно послат! reset: Ресетуј reset_password: Ресетуј лозинку resubscribe: Поново се претплати role: Улога search: Претрага + search_same_email_domain: Остали корисници са истим доменом е-поште + search_same_ip: Остали корисници са истом IP адресом + security: Безбедност security_measures: only_password: Само лозинка + password_and_2fa: Лозинка и двофакторска аутентификација + sensitive: Означи као осетљив sensitized: Означено као осетљиво shared_inbox_url: Адреса дељеног сандучета show: - created_reports: Направљени извештаји + created_reports: Поднете пријаве targeted_reports: Пријаве од стране других silence: Ућуткај silenced: Ућуткан - statuses: Статуси + statuses: Објаве + strikes: Претходни преступи subscribe: Претплати се suspend: Суспендуј suspended: Суспендовани + suspension_irreversible: Подаци овог налога су неповратно избрисани. Можете одсуспендовати овај налог чиме ће он постати употребљив, али се подаци претходно садржани на налогу неће вратити. + suspension_reversible_hint_html: Налог је суспендован и његови подаци ће бити избрисани датума %{date}. До тада, овај налог може бити враћен без икаквих промена. Уколико желите да одмах обришете све податке налога, можете то учинити испод. title: Налози unblock_email: Одблокирај адресу е-поште - unconfirmed_email: Непотврђена е-пошта + unblocked_email_msg: Успешно одблокирана имејл адреса корисника %{username} + unconfirmed_email: Непотврђена адреса е-поште + undo_sensitized: Уклони ознаку „осетљив” undo_silenced: Укини ћутање undo_suspension: Укини суспензију + unsilenced_msg: Успешно поништено ограничење налога %{username} unsubscribe: Укини претплату + unsuspended_msg: Успешно поништена суспензија налога %{username} username: Корисничко име + view_domain: Прочитај опис домена warn: Упозори web: Веб + whitelisted: Дозвољена федерација action_logs: action_types: + approve_appeal: Уважи жалбу approve_user: Одобри корисника + assigned_to_self_report: Додели пријаву change_email_user: Промени e-адресу корисника change_role_user: Промени улогу корисника confirm_user: Потврди корисника create_account_warning: Креирај упозорење create_announcement: Креирај најаву create_canonical_email_block: Креирај блок е-поште + create_custom_emoji: Направи прилагођени емоџи + create_domain_allow: Додај дозвољени домен + create_domain_block: Додај блокирани домен + create_email_domain_block: Блокирај имејл домен + create_ip_block: Направи IP услов + create_unavailable_domain: Додај домен као недоступан create_user_role: Креирај улогу + demote_user: Смањи овлашћења корисника destroy_announcement: Избриши најаву destroy_canonical_email_block: Избриши блок е-поште + destroy_custom_emoji: Обриши прилагођени емоџи + destroy_domain_allow: Обриши дозвољени домен + destroy_domain_block: Обриши блокирани домен + destroy_email_domain_block: Избриши блок е-поште + destroy_instance: Очисти домен + destroy_ip_block: Обриши IP услов destroy_status: Избриши пост + destroy_unavailable_domain: Обриши недоступан домен + destroy_user_role: Уништи позицију + disable_2fa_user: Онемогући двофакторску аутентификацију + disable_custom_emoji: Онемогући прилагођене емоџије + disable_sign_in_token_auth_user: Онемогући имејл аутентификацију за корисника disable_user: Онемогући корисника + enable_custom_emoji: Омогући прилагођене емоџије + enable_sign_in_token_auth_user: Омогући имејл аутентификацију за корисника enable_user: Омогући корисника + memorialize_account: Претвори у меморијални налог + promote_user: Унапреди корисника + reject_appeal: Одбиј жалбу reject_user: Одбаци корисника remove_avatar_user: Уклони аватар + reopen_report: Поново отвори пријаву + resend_user: Поново пошаљи мејл за потврду + reset_password_user: Ресетуј лозинку + resolve_report: Затвори пријаву + sensitive_account: Означи налог као осетљив silence_account: Ограничи налог suspend_account: Обустави налог + unassigned_report: Повуци пријаву + unblock_email_account: Одблокирај имејл адресу + unsensitive_account: Уклони додељену ознаку „осетљив” + unsilence_account: Повуци ограничење налога + unsuspend_account: Повуци суспензију налога + update_announcement: Саопштење о ажурирању + update_custom_emoji: Ажурирај прилагођене емоџије + update_domain_block: Ажурирај домен блок + update_ip_block: Ажурирај IP услов update_status: Уреди објаву 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}" + change_role_user_html: "%{name} је променио/-ла овлашћења корисника %{target}" + confirm_user_html: "%{name} је потврдио/-ла имејл адресу корисника %{target}" + create_account_warning_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_ip_block_html: "%{name} је направио/-ла услов за IP адресе %{target}" + create_unavailable_domain_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_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_instance_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}" + disable_sign_in_token_auth_user_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}" + 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}" + reopen_report_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}" + unblock_email_account_html: "%{name} је одблокирао/-ла имејл адресу корисника %{target}" + unsensitive_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}" + update_domain_block_html: "%{name} је ажурирао/-ла блок домена %{target}" + update_ip_block_html: "%{name} је променио/-ла IP услов за %{target}" + update_status_html: "%{name} је ажурирао/-ла објаву корисника %{target}" + update_user_role_html: "%{name} је променио/-ла позицију %{target}" deleted_account: обрисан налог + empty: Није пронађен ниједан лог. filter_by_action: Филтрирај по активности filter_by_user: Филтрирај по кориснику title: Записник announcements: + destroyed_msg: Саопштење је успешно обрисано! edit: title: Уреди најаву empty: Ниједна најава није пронађена. @@ -174,7 +306,12 @@ sr: title: Нова најава publish: Објави published_msg: Најава успешно објављена! + scheduled_for: Заказано за %{time} + scheduled_msg: Саопштење је заказано за објављивање! title: Најаве + unpublish: Повуци објаву + unpublished_msg: Објава саопштења је успешно повучена! + updated_msg: Саопштење је успешно ажурирано! custom_emojis: assign_category: Додели категорију by_domain: Домен @@ -192,85 +329,212 @@ sr: enable: Омогући enabled: Омогућено enabled_msg: Емоџи успешно омогућен + image_hint: PNG или GIF фајл величине до %{size} + list: Листа listed: Излистан new: title: Додај нови произвољни емоџи + no_emoji_selected: Ниједан емоџи није промењен јер ниједан није изабран + not_permitted: Нисте овлашћени да обављате ову радњу overwrite: Препиши shortcode: Пречица shortcode_hint: Најмање 2 карактера, дозвољени су само слова, бројеви и доње црте title: Произвољни емотиџији + uncategorized: Некатегоризовано + unlist: Неизлистан unlisted: Неизлистан update_failed_msg: Не могу да ажурирам овај емоџи updated_msg: Емоџи успешно ажуриран! upload: Отпреми dashboard: + active_users: активни корисници + interactions: интеракције + media_storage: Мултимедијално складиште + new_users: нови корисници + opened_reports: отворене пријаве + pending_appeals_html: + few: "%{count} жалбе на чекању" + one: "%{count} жалба на чекању" + other: "%{count} жалби на чекању" + pending_reports_html: + few: "%{count} пријаве на чекању" + one: "%{count} пријава на чекању" + other: "%{count} пријава на чекању" + pending_tags_html: + few: "%{count} хеш ознаке на чекању" + one: "%{count} хеш ознака на чекању" + other: "%{count} хеш ознака на чекању" + pending_users_html: + few: "%{count} корисника на чекању" + one: "%{count} корисник на чекању" + other: "%{count} корисника на чекању" + resolved_reports: решене пријаве software: Софтвер + sources: Извори регистрација space: Коришћење простора title: Командна табла + top_languages: Најзаступљенији језици + top_servers: Најактивнији сервери + website: Вебсајт + disputes: + appeals: + empty: Ниједна жалба није пронађена. + title: Жалбе domain_allows: + add_new: Дозволи федерацију са доменом + created_msg: Домен је успешно одобрен за федерацију + destroyed_msg: Домен је одбијен за федерацију export: Извоз import: Увоз + undo: Забрани федерацију са доменом domain_blocks: add_new: Додај нови блок домена created_msg: Блокирање домена се обрађује destroyed_msg: Блокирање домена је опозвано domain: Домен + edit: Измени блок домена + existing_domain_block: Већ сте успоставили строжа ограничења према кориснику %{name}. + existing_domain_block_html: Већ сте успоставили строжа ограничења према %{name}, потребно је да га прво одблокирате. export: Извоз import: Увоз new: create: Направи блокаду hint: Блокирање домена неће спречити прављење налога у бази, али ће ретроактивно и аутоматски применити одређене модераторске методе над тим налозима. severity: + desc_html: "Ограничење ће сакрити објаве налога са овог домена од сваког ко их не прати. Суспензија ће обрисати сав садржај, медије и податке профила са налога овог домена са Вашег сервера. Користите Ништа уколико само желите да одбијете медијске фајлове." noop: Ништа + silence: Ограничи suspend: Суспензија title: Ново блокирање домена + no_domain_block_selected: Ниједан блок домена није промењен јер ниједан није изабран + not_permitted: Нисте овлашћени да обављате ову радњу + obfuscate: Сакриј име домена + obfuscate_hint: Делимично сакриј име домена на листи ако је рекламирање листе ограничених домена омогућено private_comment: Приватни коментар + private_comment_hint: Коментар о ограничењу овог домена за интерну употребу од стране модератора. public_comment: Јавни коментар + public_comment_hint: Коментар о ограничењу овог домена за јавност, уколико је рекламирање листе ограничених домена омогућено. reject_media: Одбаци мултимедију reject_media_hint: Уклања локално ускладиштене мултимедијске фајлове и одбија да их скида убудуће. Небитно је за суспензију reject_reports: Одбаци извештај reject_reports_hint: Игнориши све извештаје који долазе са овог домена. Небитно је за суспензије undo: Поништи блок домена + view: Прочитај блок домена email_domain_blocks: add_new: Додај нови + attempts_over_week: + few: "%{count} покушаја током претходне недеље" + one: "%{count} покушај током претходне недеље" + other: "%{count} покушаја регистрације током претходне недеље" created_msg: Успешно додао домен Е-поште на црну листу delete: Обриши + dns: + types: + mx: MX извештај domain: Домен new: create: Додај домен + resolve: Претвори домен title: Нова ставка е-поштe у црној листи + no_email_domain_block_selected: Ниједан блок имејл домена није промењен јер ниједан није изабран + not_permitted: Није дозвољено + resolved_dns_records_hint_html: Име домена се претвара у следеће MX домене, који су напослетку одговорни за прихватање електронске поште. Блокирање MX домена ће блокирати регистрације са сваке имејл адресе која користи тај MX домен, чак и у случају када се видљиво име домена разликује. Водите рачуна о томе да не блокирате велике имејл провајдере. + resolved_through_html: Преусмерено кроз %{domain} title: Црна листа E-поште + export_domain_allows: + new: + title: Увези дозвољене домене + no_file: Ниједан фајл није одабран export_domain_blocks: import: + description_html: Управо ћете увести листу блокираних домена. Молимо Вас, врло пажљиво прегледајте ову листу, посебно уколико је нисте сами направили. existing_relationships_warning: Постојећи односи у облику праћења + private_comment_description_html: 'Да би Вам помогли да пратите одакле су блокови увезени, увезени блокови ће бити направљени са следећим приватним коментаром: %{comment}' + private_comment_template: Увезено са извора %{source} на датум %{date} + title: Увези блокиране домене + invalid_domain_block: 'Један или више блокова домена је прескочен због следеће грешке тј. грешака: %{error}' + new: + title: Увези блокиране домене + no_file: Ниједан фајл није одабран follow_recommendations: + description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно интераговао са осталима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик." + language: За језик status: Статус + suppress: Потисни препоруке за праћење + suppressed: Потиснуто + title: Препоруке за праћење + unsuppress: Врати препоруку за праћење instances: + availability: + description_html: + few: Уколико испорука домену не успе ниједном током %{count} различитих дана, даљи покушаји испоруке неће бити иницирани осим уколико се не прими испорука са домена. + one: Ако испорука домену не успе ниједном у временском периоду од %{count} дана, даљи покушаји испоруке се неће иницирати осим уколико се не прими испорука са домена. + other: Уколико испорука домену не успе ниједном током %{count} различитих дана, даљи покушаји испоруке се неће иницирати осим уколико се не прими испорука са домена. + failure_threshold_reached: Праг неуспеха достигнут датума %{date}. + failures_recorded: + few: Неуспели покушаји током %{count} различита дана. + one: Неуспели покушај током %{count} дана. + other: Неуспели покушаји током %{count} различитих дана. + no_failures_recorded: Без забележених неуспеха. + title: Доступност + warning: Последњи покушај повезивања са овим сервером је био неуспешан back_to_all: Све back_to_limited: Ограничено back_to_warning: Упозорење by_domain: Домен + confirm_purge: Да ли сте сигурни да желите да трајно уклоните податке са овог домена? content_policies: + comment: Интерна белешка + description_html: Можете да дефинишете политику садржаја која ће важити за све налоге на овом домену и сваком од његових поддомена. + limited_federation_mode_description_html: Можете да одлучите да ли да допустите федерацију са овим доменом. policies: + reject_media: Одбиј мултимедију + reject_reports: Одбиј пријаве silence: Ограничи suspend: Суспендуј policy: Политика reason: Јавни разлог + title: Политика садржаја + dashboard: + instance_accounts_dimension: Најпраћенији налози + instance_accounts_measure: ускладиштени налози + instance_followers_measure: наши пратиоци овде + instance_follows_measure: њихови пратиоци овде + instance_languages_dimension: Најзаступљенији језици + instance_media_attachments_measure: ускладиштени мултимедијални прилози + instance_reports_measure: пријаве против њих + instance_statuses_measure: ускладиштене објаве delivery: all: Све + clear: Очисти грешке приликом испоруке + failing: Без успеха + restart: Започни испоруку поново + stop: Обустави испоруку unavailable: Недоступно delivery_available: Достава је доступна + delivery_error_days: Дани неуспешних испорука + delivery_error_hint: Уколико испорука није могућа %{count} дана, аутоматски ће бити обележена као неиспоручива. + destroyed_msg: Подаци са %{domain} су сада у реду за чекање за извесно брисање. + empty: Ниједан домен није пронађен. + known_accounts: + few: "%{count} позната налога" + one: "%{count} познат налог" + other: "%{count} познатих налога" moderation: all: Све limited: Ограничено title: Модерација private_comment: Приватни коментар public_comment: Јавни коментар + purge: Чистка + purge_description_html: Уколико верујете да је овај домен трајно угашен, можете да обришете све записе налога и сродне податке овог домена са свог складишта. Ово може да потраје. title: Федерација total_blocked_by_us: Блокирано од стране нас total_followed_by_them: Праћени од стране њих total_followed_by_us: Праћени од стране нас total_reported: Пријаве везане за њих + total_storage: Мултимедијални прилози + totals_time_period_hint_html: Укупне вредности приказане испод укључују податке за сва времена. invites: deactivate_all: Деактивирај све filter: @@ -280,6 +544,9 @@ sr: title: Филтер title: Позивнице ip_blocks: + add_new: Направи правило + created_msg: Успешно је додато ново IP правило + delete: Избриши expires_in: '1209600': 2 недеље '15778476': 6 месеци @@ -290,6 +557,7 @@ sr: new: title: Креирај ново IP правило no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано + title: IP правила relationships: title: Односи корисника %{acct} relays: @@ -305,88 +573,395 @@ sr: pending: Чека се одобрење релеја save_and_enable: Сачувај и омогући setup: Подеси везу релеја + signatures_not_enabled: Преноси можда неће радити исправно док је укључен безбедни режим или режим ограничене федерације status: Статус title: Релеји report_notes: created_msg: Белешка пријаве успешно направљена! destroyed_msg: Белешка пријаве успешно избрисана! reports: + account: + notes: + few: "%{count} белешке" + one: "%{count} белешка" + 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: Одлучите коју радњу да спроведете ради решавања ове пријаве. Уколико спроведете казнену радњу против пријављеног налога, власник налога ће бити обавештен путем и-мејла, осим уколико ознака „Непожељне поруке” није одабрана. + actions_description_remote_html: Одлучите коју радњу да предузмете ради решавања ове пријаве. Ово ће утицати само на то како Ваш сервер комуницира са овим удаљеним налогом и обрађује његов садржај. + add_to_report: Додај још у пријаву are_you_sure: Да ли сте сигурни? assign_to_self: Додели мени assigned: Додељени модератор + by_target_domain: Домен пријављеног налога + cancel: Откажи + category: Категорија + category_description_html: Разлог због ког је овај налог и/или садржај пријављен ће бити образложен у комуникацији са пријављеним налогом comment: none: Ништа + comment_description_html: 'Ради пружања више информација, %{name} је написао/-ла:' + confirm: Потврди + confirm_action: Потврди модерацијску радњу према @%{acct} created_at: Пријављена + delete_and_resolve: Обриши објаве + forwarded: Прослеђено + forwarded_to: Прослеђено ка %{domain} 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: Прочитајте и оставите напомене другим модераторима и себи у будућности + processed_msg: 'Пријава #%{id} успешно обрађена' + 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: Спорни садржај ће бити наведен у комуникацији са пријављеним налогом + summary: + action_preambles: + delete_html: 'Управо ћете обрисати неке од објава корисника @%{acct}. Ово ће:' + mark_as_sensitive_html: 'Управо ћете означити неке објаве корисника @%{acct} као осетљиве. Ово ће:' + silence_html: 'Управо ћете ограничити налог корисника @%{acct}. Ово ће:' + suspend_html: 'Управо ћете суспендовати налог корисника @%{acct}. Ово ће:' + actions: + delete_html: Обришите спорне објаве + mark_as_sensitive_html: Обележите медије спорних објава као осетљиве + silence_html: Жестоко ограничите домет корисника @%{acct} тако што ћете учинити његов профил и садржаје видљиве само људима који их већ прате и људима који ручно потраже профил + suspend_html: Суспендујте корисника @%{acct}, што ће учинити његов профил и садржаје недоступним за приступ и интеракцију + close_report: 'Означите пријаву #%{id} као решену' + close_reports_html: Означи све пријаве против @%{acct} као решене + delete_data_html: Обриши профил и садржаје корисника @%{acct} за 30 дана осим уколико суспензија буде повучена у међувремену + preview_preamble_html: "@%{acct} ће примити упозорење следеће садржине:" + record_strike_html: Упишите прекршај на име @%{acct} да би Вам било лакше да у будућности интервенишете приликом даљих преступа са овог налога + send_email_html: Пошаљи имејл упозорења кориснику @%{acct} + warning_placeholder: Опционо додатно образложење за модерацијску радњу. + target_origin: Порекло пријављеног налога title: Пријаве unassign: Уклони доделу + unknown_action_msg: 'Непозната радња: %{action}' unresolved: Нерешене updated_at: Ажурирана view_profile: Погледај профил roles: add_new: Додај улогу + assigned_users: + few: "%{count} корисника" + one: "%{count} корисник" + other: "%{count} корисника" categories: administration: Администрација + devops: DevOps + invites: Позивнице moderation: Модерација + special: Посебно delete: Избриши + description_html: Помоћу корисничких улога можете да подесите којим функцијама и деловима Мастодона Ваши корисници могу да приступе. + edit: Измени улогу '%{name}' + everyone: Подразумевана овлашћења + everyone_full_description_html: Ово је основна улога која се односи на све кориснике, чак и оне којима није додељена улога. Све друге улоге наслеђују овлашћења од основне улоге. + permissions_count: + few: "%{count} дозволе" + one: "%{count} дозвола" + other: "%{count} дозвола" privileges: administrator: Администратор + administrator_description: Корисници са овом привилегијом могу да заобиђу сва друга ограничења delete_user_data: Избриши податке корисника + delete_user_data_description: Допушта корисницима да избришу податке других корисника без одлагања invite_users: Позови кориснике + invite_users_description: Допушта корисницима да позове нове људе на сервер manage_announcements: Управљај обавештењима + manage_announcements_description: Допушта корисницима да руководе саопштењима на серверу + manage_appeals: Надгледање жалби + manage_appeals_description: Допушта корисницима да прегледају жалбе на модерацијске радње + manage_blocks: Надгледање блокова + manage_blocks_description: Допушта корисницима да блокирају имејл провајдере и IP адресе + manage_custom_emojis: Надлежност над прилагођеним емоџијима + manage_custom_emojis_description: Даје корисницима контролу над прилагођеним емоџијима на серверу + manage_federation: Надгледање федерације + manage_federation_description: Допушта корисницима да блокирају или дозволе федерацију са другим доменима и контролишу испоручивање података другим серверима + manage_invites: Надгледање позивница + manage_invites_description: Допушта корисницима да претражују и деактивирају позивнице + manage_reports: Надгледање пријава + manage_reports_description: Допушта корисницима да прегледају пријаве и извршавају модерацијске радње над њима manage_roles: Управљај улогама + 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: Надлежност над webhook елементима + manage_webhooks_description: Допушта корисницима да успоставе webhook елементе за административне радње + view_audit_log: Прочитај записник ревизија + view_audit_log_description: Допушта корисницима да виде историју административних радњи на серверу + view_dashboard: Погледај контролни панел + view_dashboard_description: Допушта корисницима да приступе контролном панелу и разним метрикама + view_devops: 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: Прилагодите веб интерфејс Мастодона. title: Изглед + branding: + preamble: Брендирање Вашег сервера га издваја од других сервера на мрежи. Ове информације могу бити приказане у разним окружењима, попут Мастодоновог веб интерфејса, нативних апликација, у прегледима линкова на другим серверима и у апликацијама за размену порука, итд. Из овог разлога, најбоље је да ове информације буду кратке, јасне и концизне. + title: Брендирање + content_retention: + preamble: Контролишите како се садржај генерисан од стране корисника складишти на Мастодону. + title: Задржавање садржаја default_noindex: desc_html: Утиче на све кориснике који нису сами променили ову поставку title: Подразумевано искључи кориснике из индексирања претраживача discovery: + follow_recommendations: Препоруке за праћење + preamble: Одржавање занимљивих садржаја на површини је кључно у привлачењу нових корисника који можда не знају никога на Мастодону. Контролишите како различити начини истраживања функционишу на Вашем серверу. + profile_directory: Директоријум профилâ public_timelines: Јавне временске линије + publish_discovered_servers: Објави откривене сервере + publish_statistics: Објави статистику title: Откривање + trends: Трендови + domain_blocks: + all: Свима + disabled: Никоме + users: Пријављеним локалним корисницима + registrations: + preamble: Контролишите ко сме да направи налог на Вашем серверу. + title: Регистрације + registrations_mode: + modes: + approved: Одобрење неопходно за регистрацију + none: Нико не може да се региструје + open: Било ко може да се региструје + title: Подешавања сервера + site_uploads: + delete: Обриши отпремљени фајл + destroyed_msg: Отпремање успешно обрисано! statuses: + account: Аутор + application: Апликација back_to_account: Назад на страну налога + back_to_report: Назад на страницу са пријавама + batch: + remove_from_report: Уклоните из пријаве + report: Пријави + deleted: Обрисано + favourites: Омиљено + history: Историја верзијâ + in_reply_to: Одговор на + language: Језик media: title: Мултимедија + metadata: Мета подаци no_status_selected: Ниједан статус није промењен јер ниједан није изабран + open: Отвори објаву + original_status: Оригинална објава + reblogs: Дељења + status_changed: Објава промењена title: Статуси налога + trending: У тренду + visibility: Видљивост with_media: Са мултимедијом + strikes: + 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: Жалба у разматрању + appeal_rejected: Жалба одбијена + 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: Нисте дефинисали ниједно правило сервера. + sidekiq_process_check: + message_html: Ниједан Sidekiq процес није покренут за ред(ове) %{value}. Молимо Вас прегледајте своју Sidekiq конфигурацију + tags: + review: Прегледај статус + updated_msg: Подешавања хеш ознака успешно ажурирана title: Администрација + trends: + allow: Дозволи + approved: Одобрено + disallow: Забрани + links: + allow: Дозволи линк + allow_provider: Дозволи издавача + description_html: Ово су линкови који се тренутно често деле међу налозима које Ваш сервер види. Може помоћи Вашим корисницима да сазнају шта се дешава у свету. Ниједан линк није јавно приказан све док Ви не одобрите издавача. Такође можете да дозволите или одбијете засебне линкове. + disallow: Забрани линк + disallow_provider: Забрани издавача + no_link_selected: Ниједан линк није промењен јер ниједан није изабран + publishers: + no_publisher_selected: Ниједан издавач није промењен јер ниједан није изабран + shared_by_over_week: + few: Подељен од стране %{count} особе током претходне недеље + one: Подељен од стране једне особе током претходне недеље + other: Подељен од стране %{count} особа током претходне недеље + title: Линкови у тренду + usage_comparison: Подељено %{today} пута данас, у поређењу са %{yesterday} пута јуче + not_allowed_to_trend: Није одобрено за тренд + 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: Аутор није дао сагласност да буде препоручен + shared_by: + few: Подељено и стављено у „омиљене” %{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: + few: Коришћено од стране %{count} особе током претходне недеље + one: Коришћено од стране једне особе током претходне недеље + other: Коришћено од стране %{count} људи током претходне недеље + title: Трендови + trending: У тренду warning_presets: add_new: Додај нови delete: Избриши edit_preset: Уреди пресет упозорења + empty: Још увек нисте дефинисали ниједан шаблон упозорења. title: Управљај пресетима упозорења + webhooks: + add_new: Додај крајњу тачку + delete: Избриши + description_html: "Webhook омогућава Мастодону да Вашој апликацији испоручује обавештења у реалном времену о одабраним догађајима, тако да Ваша апликација може да aутоматски изазове реакцију." + disable: Онемогући + disabled: Онемогућено + edit: Измени крајњу тачку + empty: Још увек немате ниједну конфигурисану webhook крајњу тачку. + enable: Омогући + enabled: Активно + enabled_events: + few: "%{count} омогућена догађаја" + one: 1 омогућен догађај + other: "%{count} омогућених догађаја" + events: Догађаји + new: Нови webhook + rotate_secret: Ротација тајни + secret: Тајно потписивање + status: Статус + title: Веб-пресретач + webhook: Веб-пресретач admin_mailer: + 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: 'Ако желите да искористите целу ширину екрана, напредно веб окружење вам омогућује да конфигуришете много различитих колона да бисте видели онолико информација у исто време колико желите: почетну страницу, обавештења, здружену временску линију, било који број листа и хеш ознака.' @@ -395,11 +970,13 @@ sr: discovery: Откривање localization: body: Mastodon преводе добровољци. + guide_link: https://crowdin.com/project/mastodon guide_link_text: Свако може допринети. sensitive_content: Осетљив садржај toot_layout: Распоред објава application_mailer: notification_preferences: Промени преференце Е-поште + salutation: Поштовани %{name}, settings: 'Промени подешавања е-поште: %{link}' view: 'Погледај:' view_profile: Погледај налог @@ -407,35 +984,71 @@ sr: applications: created: Апликација успешно направљена destroyed: Апликација успешно обрисана + logout: Одјава regenerate_token: Рекреирај приступни токен token_regenerated: Приступни токен успешно рекреиран warning: Опрезно са овим подацима. Никад је не делите ни са ким! your_token: Ваш приступни токен auth: + apply_for_account: Затражите налог change_password: Лозинка + confirmations: + wrong_email_hint: Ако та имејл адреса није исправна, можете је променити у подешавањима налога. delete_account: Брисање налога delete_account_html: Ако желите да избришете ваш налог, можете наставити овде. Од вас ће се тражити потврда. + description: + prefix_invited_by_user: "@%{name} Вас позива да се придружите овом серверу Мастодона!" + prefix_sign_up: Придружите се Мастодону данас! + suffix: Са налогом, моћи ћете да пратите људе, објављујете новости и размењујете поруке са корисницима било ког Мастодон сервера и више! didnt_get_confirmation: Нисте добили поруку са упутствима за потврду налога? + dont_have_your_security_key: Немате сигурносни кључ? forgot_password: Заборавили сте лозинку? invalid_reset_password_token: Токен за ресетовање лозинке је неисправан или је истекао. Затражите нови. + link_to_otp: Унесите двофакторски код са свог телефона или резервни код + link_to_webauth: Користите свој сигурносни кључ + log_in_with: Пријавите се помоћу login: Пријави се logout: Одјава migrate_account: Премештање у други налог 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: + accept: Прихвати + back: Назад + 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: Са налогом на овом Мастодон серверу, моћи ћете да пратите било кога са мреже, без обзира на то на ком серверу се његов/њен налог налази. + 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: 'Послали сте захтев за праћењен за:' @@ -445,25 +1058,87 @@ sr: return: Врати се на налог овог корисника web: Иди на веб title: Запрати %{acct} + challenge: + confirm: Настави + hint_html: "Савет: Нећемо Вас питати за лозинку поново у наредних сат времена." + invalid_password: Неисправна лозинка + prompt: Потврдите лозинку за наставак + crypto: + errors: + invalid_key: није валидан Ed25519 или Curve25519 кључ + invalid_signature: није валидан Ed25519 потпис + date: + formats: + default: "%d. %b. %Y." + with_month_name: "%d. %B %Y." datetime: distance_in_words: + about_x_hours: "%{count} ч." about_x_months: "%{count}месец" about_x_years: "%{count}год" almost_x_years: "%{count}год" half_a_minute: Управо сад + less_than_x_minutes: "%{count} мин." less_than_x_seconds: Управо сад over_x_years: "%{count}год" x_days: "%{count}д" + x_minutes: "%{count} мин." x_months: "%{count}месец" + x_seconds: "%{count} сек." deletes: + challenge_not_passed: Лозинка коју сте унели није била исправна confirm_password: Унесите тренутну лозинку да бисмо проверили Ваш идентитет + confirm_username: Унесите своје корисничко име да бисте потврдили процедуру proceed: Обриши налог success_msg: Ваш налог је успешно обрисан + warning: + before: 'Пре него што наставите, молимо Вас пажљиво прочитајте следеће напомене:' + caches: Садржај који је кеширан на другим серверима може да остане нетакнут + data_removal: Ваше објаве и други подаци ће бити трајно избрисани + email_change_html: Можете променити своју имејл адресу без брисања свог налога + email_contact_html: Ако порука и даље не стиже, можете послати мејл на %{email} за помоћ + email_reconfirmation_html: Уколико Вам имејл за потврду не стиже, можете га поново затражити + irreversible: Нећете бити у могућности да вратите или реактивирате свој налог + more_details_html: За више детаља, погледајте политику приватности. + username_available: Ваше корисничко име ће поново постати доступно + username_unavailable: Ваше корисничко име ће остати недоступно + 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: нелегитимно име домена errors: - '400': The request you submitted was invalid or malformed. + '400': Захтев који сте поднели је био нелегитиман или у погрешном формату. '403': Немате дозвола да видите ову страну. '404': Страна коју сте тражили не постоји. - '406': This page is not available in the requested format. + '406': Ова страница није доступна у изабраном формату. '410': Страна коју сте тражили више не постоји. '422': content: Безбедоносна провера није успела. Да не блокирате колачиће? @@ -472,8 +1147,11 @@ sr: '500': content: Извињавамо се, нешто је пошло по злу са ове стране. title: Страна није исправна - '503': The page could not be served due to a temporary server failure. + '503': Страницу није било могуће доставити услед привременoг пада сервера. noscript_html: Да бисте користили Мастодонт веб апликацију, омогућите JavaScript. У супротном, пробајте неку од оригиналних апликација за Мастодонт за Вашу платформу. + existing_username_validator: + not_found: није било могуће пронаћи локалног корисника са тим корисничким именом + not_found_multiple: није било могуће пронаћи %{usernames} exports: archive_takeout: date: Датум @@ -483,6 +1161,8 @@ sr: request: Затражите своју архиву size: Величина blocks: Блокирали сте + bookmarks: Обележивачи + csv: CSV domain_blocks: Блокови домена lists: Листе mutes: Игноришете @@ -494,33 +1174,90 @@ sr: hint_html: "Шта су истакнуте хеш онаке? Оне се приказују истакнуто на вашем јавном профилу и омогућују људима да прегледају ваше јавне објаве конкретно под тим хеш ознакама. Оне су сјајан алат за праћење креативних радова или дугорочних пројеката." filters: contexts: + account: Профили home: Временска линија почетне notifications: Обавештења public: Јавне временске линије thread: Разговори edit: + 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: + few: "%{count} кључне речи" + one: "%{count} кључна реч" + other: "%{count} кључних речи" + statuses: + few: "%{count} објаве" + one: "%{count} објава" + other: "%{count} објава" + statuses_long: + few: "%{count} засебне објаве сакривене" + one: "%{count} засебна објава сакривена" + other: "%{count} засебних објава сакривено" title: Филтери new: + save: Сачувај нови филтер title: Додај нови филтер + statuses: + back_to_filter: Назад на филтер + batch: + remove: Уклони из филтера + index: + hint: Овај филтер важи за одабране засебне објаве без обзира на друге критеријуме. Можете да додате више објава у овај филтер путем веб интерфејса. + title: Филтриране објаве generic: + all: Сви + all_items_on_page_selected_html: + few: Све %{count} ставке са ове странице су изабране. + one: "%{count} ставка са ове странице је изабрана." + other: Свих %{count} ставки са ове странице је изабрано. + all_matching_items_selected_html: + few: Све %{count} ставке које се поклапају са Вашом претрагом су изабране. + one: "%{count} ставка која се поклапа са Вашом претрагом је изабрана." + other: Свих %{count} ставки које се поклапају са Вашом претрагом су изабране. changes_saved_msg: Измене успешно сачуване! copy: Копирај + delete: Избриши + deselect: Поништи све изборе + none: Ниједна + order_by: Сортирај према save_changes: Сачувај промене + select_all_matching_items: + few: Одаберите све %{count} ставке које се поклапају са Вашом претрагом. + one: Одаберите %{count} ставку која се поклапа са Вашом претрагом. + other: Одаберите свих %{count} ставки које се поклапају са Вашом претрагом. + today: данас validation_errors: few: Нешто није баш како треба! Прегледајте %{count} грешке испод one: Нешто није баш како треба! Прегледајте грешке испод other: Нешто није баш како треба! Прегледајте %{count} грешака испод imports: + errors: + invalid_csv_file: 'Неисправан CSV фајл. Грешка: %{error}' + over_rows_processing_limit: садржи више од %{count} редова + modes: + merge: Стапање + merge_long: Задржите постојеће записе и додајте нове + overwrite: Замени + overwrite_long: Замени тренутне записе новима preface: Можете увести податке које сте извезли са друге инстанце, као што су листе људи које сте пратили или блокирали. success: Ваши подаци су успешно отпремљени и биће обрађени ускоро types: blocking: Листа блокирања + bookmarks: Обележивачи + domain_blocking: Листа блокираних домена following: Листа пратилаца muting: Листа ућутканих upload: Отпреми @@ -547,17 +1284,70 @@ sr: expires_at: Истиче uses: Коришћења title: Позовите људе + lists: + errors: + limit: Достигли сте максимални број листâ + login_activities: + authentication_methods: + otp: апликација за двофакторску аутентификацију + password: лозинка + sign_in_token: имејл сигурносни код + 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: Модерација + move_handler: + 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: body: "%{name} је поставио као омиљен Ваш статус:" subject: "%{name} је поставио као омиљен Ваш статус" @@ -576,29 +1366,72 @@ sr: body: "%{name} Вас је поменуо у:" subject: "%{name} Вас је поменуо" title: Ново спомињање + poll: + subject: Анкета корисника %{name} се завршила reblog: body: "%{name} Вам је подржао/ла статус:" subject: "%{name} је подржао/ла Ваш статус" title: Нова подршка + status: + subject: "%{name} jе управо поставио/-ла објаву" + update: + subject: "%{name} је изменио/-ла објаву" notifications: email_events: Догађаји за обавештења е-поштом email_events_hint: 'Изаберите дешавања за која желите да примате обавештења:' other_settings: Остала подешавања обавештења + number: + human: + decimal_units: + format: "%n %u" + units: + billion: млрд. + million: мил. + quadrillion: трил. + thousand: хиљ. + trillion: бил. + otp_authentication: + code_hint: Укуцајте код генерисан у Вашој апликацији за аутентификацију да бисте потврдили + description_html: Ако укључите двофакторску аутентификацију путем апликације за аутентификацију, мораћете да будете при телефону приликом пријављивања да бисте имали приступ генерисаним кодовима за пријаву. + enable: Омогући + instructions_html: "Скенирајте овај QR код помоћу Google аутентификатора или сличне апликације на свом телефону. Од сада па убудуће, та апликација ће генерисати приступне кодове које ћете морати да унесете приликом пријављивања." + manual_instructions: 'Ако не можете да скенирате QR код и морате да га унесете ручно, ево његове текстуалне шифре:' + setup: Инсталација + wrong_code: Унесени код је био неисправан! Да ли су време сервера и време уређаја исправни? pagination: newer: Новије next: Следеће older: Старије prev: Претходни + truncate: "…" + polls: + errors: + already_voted: Већ сте гласали у овој анкети + duplicate_options: садржи дупликате + duration_too_long: превише је далеко у будућности + duration_too_short: превише је скоро + expired: Анкета је већ завршена + invalid_choice: Изабрана опција не постоји + over_character_limit: не може бити дуже од по %{max} карактера + too_few_options: мора имати више од једне опције + too_many_options: не може да садржи више од %{max} опција preferences: other: Остало posting_defaults: Подразумевана подешавања објављивања public_timelines: Јавне временске линије + privacy_policy: + title: Политика приватности + reactions: + errors: + limit_reached: Достигнуто је ограничење различитих реакција + unrecognized_emoji: није препознат емоџи relationships: activity: Активност налога confirm_follow_selected_followers: Да ли сте сигурни да желите да пратите изабране пратиоце? confirm_remove_selected_followers: Да ли сте сигурни да желите да уклоните изабране пратиоце? confirm_remove_selected_follows: Да ли сте сигурни да желите да уклоните изабрана праћења? dormant: Неактиван + follow_failure: Није могуће пратити неке од изабраних налога. follow_selected_followers: Прати изабране пратиоце followers: Пратиоци following: Праћења @@ -615,6 +1448,14 @@ sr: 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} планираних објава @@ -624,11 +1465,13 @@ sr: browser: Веб читач browsers: alipay: Алипеј + blackberry: Блекбери chrome: Chrome edge: Мајкрософт Еџ electron: Електрон firefox: Фајерфокс generic: Непознати веб читач + huawei_browser: Huawei прегледач ie: Интернет Експлорер micro_messenger: МајкроМесенџер nokia: Нокија С40 Ови Претраживач @@ -637,18 +1480,24 @@ sr: phantom_js: ФантомЏејЕс qq: КјуКју Претраживач safari: Сафари + uc_browser: UC Browser + unknown_browser: Непознати прегледач weibo: Веибо current_session: Тренутна сесија description: "%{browser} са %{platform}" explanation: Ово су веб претраживачи који су тренутно пријављени на Ваш Мастодон налог. + ip: IP platforms: adobe_air: Адоб Ер-а android: Андроида + blackberry: Блекбери + chrome_os: ChromeOS firefox_os: Фајерфокс ОС-а ios: иОС-а + kai_os: KaiOS linux: Линукса mac: Мека - other: непознате платформе + unknown_platform: Непозната платформа windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -659,6 +1508,7 @@ sr: settings: account: Налог account_settings: Подешавања налога + aliases: Псеудоними налога appearance: Изглед authorized_apps: Ауторизоване апликације back: Назад на Мастодон @@ -675,9 +1525,15 @@ sr: profile: Налог relationships: Праћења и пратиоци statuses_cleanup: Аутоматско брисање објава + strikes: Модерацијски преступи two_factor_authentication: Двофакторска идентификација + webauthn_authentication: Сигурносни кључеви statuses: attached: + audio: + few: "%{count} аудио записа" + one: "%{count} аудио запис" + other: "%{count} аудио записа" description: 'У прилогу: %{attached}' image: few: "%{count} слика" @@ -694,15 +1550,34 @@ sr: few: 'садржи забрањене хештегове: %{tags}' one: 'садржи забрањени хештег: %{tags}' other: 'садржи забрањене хештегове: %{tags}' + edited_at_html: Измењено %{date} + errors: + in_reply_not_found: Објава на коју покушавате да одговорите наизглед не постоји. open_in_web: Отвори у вебу over_character_limit: ограничење од %{max} карактера прекорачено pin_errors: + direct: Објаве које су видљиве само поменутим корисницима не могу бити прикачене limit: Већ сте закачили максималан број објава ownership: Туђа објава се не може закачити reblog: Подршка не може да се прикачи + poll: + total_people: + few: "%{count} особе" + one: "%{count} особа" + other: "%{count} људи" + total_votes: + few: "%{count} гласа" + one: "%{count} глас" + other: "%{count} гласова" + vote: Гласајте show_more: Прикажи још + show_newer: Никад не приказуј + show_older: Прикажи старије + show_thread: Прикажи низ sign_in_to_participate: Пријавите се да учествујете у разговору + title: "%{name}: „%{quote}”" visibilities: + direct: Директно private: Само пратиоци private_long: Прикажи само пратиоцима public: Јавно @@ -742,44 +1617,99 @@ sr: min_age_label: Старосни праг 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: contrast: Велики контраст default: Мастодон mastodon-light: Мастодон (светло) + time: + formats: + default: "%d %b %Y, %H:%M" + month: "%b %Y" + time: "%H:%M" two_factor_authentication: + add: Додај disable: Искључи + disabled_success: Двофакторска аутентификација је успешно онемогућена + edit: Измени enabled: Двофакторска идентификација је укључена enabled_success: Двофакторска идентификација је успешно укључена generate_recovery_codes: Генериши кодове за опоравак lost_recovery_codes: Кодови за опоравак Вам омогућавају да повратите приступ налогу ако изгубите телефон. Ако изгубите кодове за опоравак, можете их ре-генерисати овде. Од тог тренутка, стари кодови за опоравак више не важе. + methods: Методе двофакторске аутентификације + otp: Апликација за аутентификацију recovery_codes: Направите резерву кодова за опоравак recovery_codes_regenerated: Кодови за опоравак успешно ре-генерисани recovery_instructions_html: Ако икада изгубите приступ телефону, можете искористити кодове за опоравак дате испод да повратите приступ налогу. Држите кодове за опоравак на сигурном. На пример, одштампајте их и чувајте их са осталим важним документима. + webauthn: Сигурносни кључеви 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: Тражили сте потпуну резервну копију вашег Мастодон рачуна. Спремна за преузимање! subject: Ваша архива је спремна за преузимање title: Извоз архиве + suspicious_sign_in: + change_password: промените своју лозинку + details: 'Ево детаља о пријави:' + explanation: Приметили смо пријаву на Ваш налог са непознате IP адресе. + further_actions_html: Уколико то нисте били Ви, препоручујемо да одмах %{action} и укључите двофакторску аутентификацију да бисте одржали безбедност свог налога. + subject: Вашем налогу је приступљено са непозате IP адресе + title: Ново пријављивање warning: + appeal: Приложите жалбу + appeal_description: Уколико верујете да је у питању грешка, можете приложити жалбу особљу %{instance}. + categories: + spam: Нежељена пошта + violation: Садржај крши следећа правила заједнице + explanation: + delete_statuses: За неке од Ваших објава је установљено да крше једно или више правила заједнице и услед тога су уклоњене од стране модератора %{instance}. + disable: Више не можете да користите свој налог, али Ваш профил и други подаци остају нетакнути. Можете да затражите резервну копију својих података, промените подешавања налога или обришете свој налог. + mark_statuses_as_sensitive: Неке од Ваших објава су означене као осетљиве од стране модератора %{instance}. Ово значи да ће људи морати да кликну на мултимедије у објавама пре него што могу да их виде. Убудуће можете сами да означите своју мултимедију као осетљиву приликом састављања објаве. + sensitive: Од сада ће сви Ваши отпремљени мултимедијални фајлови бити означени као осетљиви и сакривени иза тастера упозорења. + silence: И даље можете користити свој налог али само људи који Вас већ прате ће видети Ваше објаве на овом серверу, и можда ћете бити искључени из разних механизама откривања. Међутим, други људи и даље могу ручно да Вас запрате. + suspend: Више не можете да користите свој налог, и Ваш профил и остали подаци Вам више нису доступни. И даље можете да се пријавите да бисте затражили резервну копију својих података све док се Ваши подаци трајно не избришу за око 30 дана, с тим што ћемо задржати неке основне податке да бисмо Вас спречили у евентуалном заобилажењу суспензије. + reason: 'Образложење:' + statuses: 'Цитиране објаве:' 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: Добродошли на Мастодон @@ -793,3 +1723,20 @@ sr: verification: explanation_html: 'Можете извршити проверу да сте Ви власник веза на Вашем налогу. Да би то радило, повезани веб сајт мора да садржи везу назад ка Вашем Мастодон налогу. Веза назад мора да има rel="me" атрибут. Текстуелни садржај везе није битан. Ево примера:' verification: Провера + webauthn_credentials: + add: Додајте нови сигурносни кључ + create: + error: Искрсао је проблем приликом додавања Вашег сигурносног кључа. Молимо Вас покушајте поново. + success: Ваш сигурносни кључ је успешно додат. + delete: Избриши + delete_confirmation: Да ли сте сигурни да желите да избришете овај сигурносни кључ? + description_html: Ако укључите аутентификацију сигурносним кључем, мораћете да користите један од својих сигурносних кључева приликом пријављивања. + destroy: + error: Искрсао је проблем приликом брисања Вашег сигурносног кључа. Молимо Вас покушајте поново. + success: Ваш сигурносни кључ је успешно обрисан. + invalid_credential: Неисправан сигурносни кључ + nickname_hint: Унесите надимак свог новог сигурносног кључа + not_enabled: Још увек нисте омогућили WebAuthn + not_supported: Овај претраживач не подржава сигурносне кључеве + otp_required: Да бисте користили сигурносне кључеве, молимо Вас прво укључите двофакторску аутентификацију. + registered_on: Регистрован/-а %{date} diff --git a/config/locales/sv.yml b/config/locales/sv.yml index aea9cea4e6..b543b18cbe 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1405,6 +1405,7 @@ sv: confirm_remove_selected_followers: Är du säker på att du vill ta bort valda följare? confirm_remove_selected_follows: Är du säker på att du vill ta bort valda följare? dormant: Vilande + follow_failure: Kan inte följa några av de valda kontona. follow_selected_followers: Följ valda personer followers: Följare following: Följer @@ -1444,6 +1445,7 @@ sv: electron: Electron firefox: Firefox generic: Okänd browser + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ sv: qq: QQ browser safari: Safari uc_browser: UC Browser + unknown_browser: Okänd browser weibo: Weibo current_session: Nuvarande session description: "%{browser} på %{platform}" @@ -1465,9 +1468,10 @@ sv: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: okänd plattform + unknown_platform: Okänd plattform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/th.yml b/config/locales/th.yml index 815936a2d1..13a312f269 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -963,7 +963,7 @@ th: description: prefix_invited_by_user: "@%{name} เชิญคุณเข้าร่วมเซิร์ฟเวอร์ Mastodon นี้!" prefix_sign_up: ลงทะเบียนใน Mastodon วันนี้! - suffix: เมื่อมีบัญชี คุณจะสามารถติดตามผู้คน โพสต์การอัปเดต และแลกเปลี่ยนข้อความกับผู้ใช้จากเซิร์ฟเวอร์ Mastodon และอื่น ๆ! + suffix: ด้วยบัญชี คุณจะสามารถติดตามผู้คน โพสต์การอัปเดต และแลกเปลี่ยนข้อความกับผู้ใช้จากเซิร์ฟเวอร์ Mastodon และอื่น ๆ! didnt_get_confirmation: ไม่ได้รับคำแนะนำการยืนยัน? dont_have_your_security_key: ไม่มีกุญแจความปลอดภัยของคุณ? forgot_password: ลืมรหัสผ่านของคุณ? @@ -999,7 +999,7 @@ th: preamble_html: ลงชื่อเข้าด้วยข้อมูลประจำตัว %{domain} ของคุณ หากบัญชีของคุณได้รับการโฮสต์ในเซิร์ฟเวอร์อื่น คุณจะไม่สามารถเข้าสู่ระบบได้ที่นี่ title: ลงชื่อเข้า %{domain} sign_up: - preamble: เมื่อมีบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์ + preamble: ด้วยบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์ title: มาตั้งค่าของคุณใน %{domain} กันเลย status: account_status: สถานะบัญชี @@ -1379,6 +1379,7 @@ th: confirm_remove_selected_followers: คุณแน่ใจหรือไม่ว่าต้องการเอาผู้ติดตามที่เลือกออก? confirm_remove_selected_follows: คุณแน่ใจหรือไม่ว่าต้องการเอาการติดตามที่เลือกออก? dormant: ไม่เคลื่อนไหว + follow_failure: ไม่สามารถติดตามบัญชีที่เลือกบางส่วน follow_selected_followers: ติดตามผู้ติดตามที่เลือก followers: ผู้ติดตาม following: กำลังติดตาม @@ -1418,6 +1419,7 @@ th: electron: Electron firefox: Firefox generic: เบราว์เซอร์ที่ไม่รู้จัก + huawei_browser: เบราว์เซอร์ Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: เบราว์เซอร์ Nokia S40 Ovi @@ -1427,6 +1429,7 @@ th: qq: เบราว์เซอร์ QQ safari: Safari uc_browser: เบราว์เซอร์ UC + unknown_browser: เบราว์เซอร์ที่ไม่รู้จัก weibo: Weibo current_session: เซสชันปัจจุบัน description: "%{browser} ใน %{platform}" @@ -1439,9 +1442,10 @@ th: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: แพลตฟอร์มที่ไม่รู้จัก + unknown_platform: แพลตฟอร์มที่ไม่รู้จัก windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 6cbd3f5103..384e060858 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1405,6 +1405,7 @@ tr: confirm_remove_selected_followers: Seçili takipçileri kaldırmak istediğinizden emin misiniz? confirm_remove_selected_follows: Seçili takipleri kaldırmak istediğinizden emin misiniz? dormant: Uykuda + follow_failure: Seçilen hesaplardan bazıları takip edilemedi. follow_selected_followers: Seçili takipçileri takip et followers: Takipçiler following: Takip edilenler @@ -1444,6 +1445,7 @@ tr: electron: Electron firefox: Firefox generic: Bilinmeyen tarayıcı + huawei_browser: Huawei Tarayıcı ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1453,6 +1455,7 @@ tr: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Bilinmeyen Tarayıcı weibo: Weibo current_session: Geçerli oturum description: "%{platform} - %{browser}" @@ -1465,9 +1468,10 @@ tr: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: bilinmeyen platform + unknown_platform: Bilinmeyen Platform windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/tt.yml b/config/locales/tt.yml index 9e03822489..d260e8be20 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -2,16 +2,20 @@ tt: about: contact_unavailable: Юк + title: Проект турында accounts: follow: Языл following: Язылгансыз admin: accounts: + approve: Хуплау avatar: Аватар by_domain: Домен change_email: label: Emailны үзгәртү submit: Emailны үзгәртү + change_role: + no_role: Рольсез confirm: Раслау deleted: Бетерелде domain: Домен @@ -19,6 +23,7 @@ tt: email: Эл. почта header: Башлам ip: ІР + joined: Кушылды location: all: Бөтенесе local: Җирле @@ -28,8 +33,13 @@ tt: all: Бөтенесе perform_full_suspension: Искә алмау reset: Ташлату + role: Роль search: Эзләү + security: Иминлек + security_measures: + only_password: Серсүз генә sensitive: Sizmäle + title: Аккаунтлар username: Кулланучы исеме web: Веб action_logs: @@ -40,10 +50,10 @@ tt: copy: Күчереп алу delete: Бетерү disable: Cүндерү - disabled: Cүндерелгән - enable: Кабызу + disabled: Cүнек + enable: Кушу list: Исемлек - upload: Йөкләү + upload: Йөкләтү domain_blocks: domain: Домен new: @@ -101,7 +111,7 @@ tt: application_mailer: salutation: "%{name}," auth: - change_password: Парол + change_password: Серсүз login: Керү providers: cas: САS @@ -141,7 +151,7 @@ tt: exports: archive_takeout: date: Көне - size: Olılıq + size: Зурлык bookmarks: Кыстыргычлар csv: СSV filters: @@ -158,7 +168,7 @@ tt: imports: types: bookmarks: Кыстыргычлар - upload: Йөкләү + upload: Йөкләтү invites: expired: Гамәлдән чыкты expires_in: @@ -172,15 +182,15 @@ tt: number: human: decimal_units: - format: "%n%u" + format: "%n %u" otp_authentication: - enable: Кабызу + enable: Кушу pagination: next: Киләсе prev: Алдыгы truncate: "…" relationships: - following: Язылгансыз + following: Язылулар sessions: browser: Браузер browsers: @@ -198,7 +208,7 @@ tt: qq: QQ Brоwser safari: Safаri weibo: Weibо - description: "%{browser} - %{platform}" + description: "%{platform} платформасында %{browser}" ip: ІР platforms: adobe_air: Adobе Air @@ -211,10 +221,10 @@ tt: windows_mobile: Windows Mоbile windows_phone: Windоws Phone settings: - account: Хисап язмасы - appearance: Küreneş - development: Эшләнмә - edit_profile: Профильны үзгәртү + account: Аккаунт + appearance: Тышкы кыяфәт + development: Ясаучылар өчен + edit_profile: Профильне үзгәртү import: Импортлау preferences: Caylaw profile: Профиль @@ -244,7 +254,7 @@ tt: edit: Үзгәртү user_mailer: warning: - reason: 'Сәбаб:' + reason: 'Сәбәп:' title: none: Игътибар webauthn_credentials: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 44d54363f3..8bd005961e 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1457,6 +1457,7 @@ uk: confirm_remove_selected_followers: Ви дійсно бажаєте видалити вибраних підписників? confirm_remove_selected_follows: Ви дійсно хочете вилучити вибрані підписки? dormant: Неактивні + follow_failure: Не вдалося підписатися на деякі вибрані облікові записи. follow_selected_followers: Стежити за вибраними підписниками followers: Підписники following: Підписник @@ -1496,6 +1497,7 @@ uk: electron: Electron firefox: Firefox generic: Невідомий браузер + huawei_browser: Huawei Браузер ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1505,6 +1507,7 @@ uk: qq: QQ Browser safari: Сафарі uc_browser: UC Browser + unknown_browser: Невідомий браузер weibo: Weibo current_session: Поточний сеанс description: "%{browser} на %{platform}" @@ -1517,9 +1520,10 @@ uk: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS - other: невідома платформа + unknown_platform: Невідома Платформа windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 88592b7044..81b30e6a2b 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1379,6 +1379,7 @@ vi: confirm_remove_selected_followers: Bạn có chắc muốn bỏ theo dõi những người đã chọn? confirm_remove_selected_follows: Bạn có chắc muốn xoá những người theo dõi bạn đã chọn không? dormant: Chưa + follow_failure: Không thể theo dõi một số tài khoản đã chọn. follow_selected_followers: Theo dõi những người đã chọn followers: Người theo dõi following: Đang theo dõi @@ -1418,6 +1419,7 @@ vi: electron: Electron firefox: Firefox generic: Trình duyệt khác + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMes hành khách nokia: Trình duyệt Nokia S40 Ovi @@ -1427,6 +1429,7 @@ vi: qq: QQ safari: Safari uc_browser: UC Browser + unknown_browser: Trình duyệt khác weibo: Weibo current_session: Phiên hiện tại description: "%{browser} trên %{platform}" @@ -1439,9 +1442,10 @@ vi: chrome_os: ChromeOS firefox_os: Hệ điều hành Firefox ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: nền tảng khác + unknown_platform: Nền tảng khác windows: Windows windows_mobile: Windows Mobile windows_phone: Điện thoại Windows diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index ed1780ce8d..4267b652fd 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -999,7 +999,7 @@ zh-CN: preamble_html: 使用您在 %{domain} 的账户和密码登录。如果您的账户托管在其他的服务器上,您将无法在此登录。 title: 登录到 %{domain} sign_up: - preamble: 使用此 Mastodon 服务器上的帐号,您将能够关注网络上的任何其他人,无论他们的帐号托管在哪里的主机。 + preamble: 有了这个Mastodon服务器上的账户,您就可以关注Mastodon网络上的任何其他人,无论他们的账户在哪里。 title: 让我们在 %{domain} 上开始。 status: account_status: 账户状态 @@ -1379,6 +1379,7 @@ zh-CN: confirm_remove_selected_followers: 您确定想要取关所选的关注者吗? confirm_remove_selected_follows: 您确定要删除选定的关注着吗? dormant: 休眠 + follow_failure: 无法关注选中的部分账户。 follow_selected_followers: 关注选中的关注者 followers: 关注者 following: 正在关注 @@ -1418,6 +1419,7 @@ zh-CN: electron: Electron firefox: 火狐 generic: 未知浏览器 + huawei_browser: 华为浏览器 ie: IE 浏览器 micro_messenger: 微信 nokia: Nokia S40 Ovi 浏览器 @@ -1427,6 +1429,7 @@ zh-CN: qq: QQ浏览器 safari: Safari uc_browser: UC 浏览器 + unknown_browser: 未知浏览器 weibo: 新浪微博 current_session: 当前会话 description: "%{platform} 上的 %{browser}" @@ -1439,9 +1442,10 @@ zh-CN: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: 未知平台 + unknown_platform: 未知平台 windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 405f321d46..835ecd33c1 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1441,7 +1441,6 @@ zh-HK: ios: iOS linux: Linux mac: Mac - other: 未知平台 windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 3174287175..1e31e22491 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1132,7 +1132,7 @@ zh-TW: domain_blocks: 網域封鎖 lists: 列表 mutes: 您靜音的使用者 - storage: 儲存空間大小 + storage: 匯出檔案大小 featured_tags: add_new: 新增 errors: @@ -1381,6 +1381,7 @@ zh-TW: confirm_remove_selected_followers: 您確定要移除選取的跟隨者嗎? confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎? dormant: 潛水中 + follow_failure: 無法跟隨某些所選取的帳號。 follow_selected_followers: 跟隨選取的跟隨者 followers: 跟隨者 following: 跟隨中 @@ -1420,6 +1421,7 @@ zh-TW: electron: Electron 瀏覽器 firefox: Firefox 瀏覽器 generic: 未知的瀏覽器 + huawei_browser: 華為瀏覽器 ie: Internet Explorer 瀏覽器 micro_messenger: 微信 nokia: Nokia S40 Ovi 瀏覽器 @@ -1429,6 +1431,7 @@ zh-TW: qq: QQ 瀏覽器 safari: Safari 瀏覽器 uc_browser: UC 瀏覽器 + unknown_browser: 未知的瀏覽器 weibo: 新浪微博 current_session: 目前的 session description: "%{platform} 上的 %{browser}" @@ -1441,9 +1444,10 @@ zh-TW: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac - other: 不明平台 + unknown_platform: 未知的平台 windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1523,8 +1527,8 @@ zh-TW: enabled_hint: 一旦達到指定的保存期限,就會自動刪除您的嘟文,除非該嘟文符合下列例外 exceptions: 例外 explanation: 因為刪除嘟文是耗費資源的操作,當伺服器不那麼忙碌時才會慢慢完成。因此,您的嘟文會在到達保存期限後一段時間才會被刪除。 - ignore_favs: 忽略最愛 - ignore_reblogs: 忽略轉嘟 + ignore_favs: 忽略最愛數 + ignore_reblogs: 忽略轉嘟數 interaction_exceptions: 基於互動的例外規則 interaction_exceptions_explanation: 請注意嘟文是無法保證被刪除的,如果在一次處理過後嘟文低於最愛或轉嘟的門檻。 keep_direct: 保留私訊 @@ -1645,7 +1649,7 @@ zh-TW: final_action: 開始嘟嘟 final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。' full_handle: 您的完整帳號名稱 - full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。 + full_handle_hint: 您需要將這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。 subject: 歡迎來到 Mastodon title: "%{name} 誠摯歡迎您的加入!" users: From edc7ca5920641e938cb50c0bf49ff6b0c77a80b4 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 16 Mar 2023 17:24:01 -0400 Subject: [PATCH 0698/1220] Roll back unintentionally activated rubocop rules (#24132) Co-authored-by: Eugen Rochko Co-authored-by: Nick Schonning --- .rubocop.yml | 10 + .rubocop_todo.yml | 1787 +-------------------------------------------- 2 files changed, 11 insertions(+), 1786 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 8eb3d402ef..4f4c98dc93 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -113,6 +113,16 @@ RSpec/NotToNot: RSpec/Rails/HttpStatus: EnforcedStyle: numeric +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#styleclassandmodulechildren +Style/ClassAndModuleChildren: + Enabled: false + +# Reason: Classes mostly self-document with their names +# https://docs.rubocop.org/rubocop/cops_style.html#styledocumentation +Style/Documentation: + Enabled: false + Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 85f078dcf2..1df2a7b107 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -150,7 +150,7 @@ Metrics/BlockNesting: # Configuration parameters: CountComments, CountAsOne. Metrics/ClassLength: - Max: 373 + Max: 368 # Configuration parameters: AllowedMethods, AllowedPatterns. Metrics/CyclomaticComplexity: @@ -1724,455 +1724,6 @@ Style/CaseLikeIf: Exclude: - 'app/controllers/concerns/signature_verification.rb' -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: EnforcedStyle. -# SupportedStyles: nested, compact -Style/ClassAndModuleChildren: - Exclude: - - 'app/controllers/activitypub/base_controller.rb' - - 'app/controllers/activitypub/claims_controller.rb' - - 'app/controllers/activitypub/collections_controller.rb' - - 'app/controllers/activitypub/followers_synchronizations_controller.rb' - - 'app/controllers/activitypub/inboxes_controller.rb' - - 'app/controllers/activitypub/outboxes_controller.rb' - - 'app/controllers/activitypub/replies_controller.rb' - - 'app/controllers/admin/announcements_controller.rb' - - 'app/controllers/admin/disputes/appeals_controller.rb' - - 'app/controllers/admin/domain_allows_controller.rb' - - 'app/controllers/admin/reports/actions_controller.rb' - - 'app/controllers/admin/settings/about_controller.rb' - - 'app/controllers/admin/settings/appearance_controller.rb' - - 'app/controllers/admin/settings/branding_controller.rb' - - 'app/controllers/admin/settings/content_retention_controller.rb' - - 'app/controllers/admin/settings/discovery_controller.rb' - - 'app/controllers/admin/settings/registrations_controller.rb' - - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb' - - 'app/controllers/admin/trends/links_controller.rb' - - 'app/controllers/admin/trends/statuses_controller.rb' - - 'app/controllers/admin/trends/tags_controller.rb' - - 'app/controllers/admin/users/roles_controller.rb' - - 'app/controllers/admin/users/two_factor_authentications_controller.rb' - - 'app/controllers/admin/webhooks/secrets_controller.rb' - - 'app/controllers/api/base_controller.rb' - - 'app/controllers/api/oembed_controller.rb' - - 'app/controllers/api/v1/accounts/credentials_controller.rb' - - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb' - - 'app/controllers/api/v1/accounts/featured_tags_controller.rb' - - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb' - - 'app/controllers/api/v1/accounts/lists_controller.rb' - - 'app/controllers/api/v1/accounts/lookup_controller.rb' - - 'app/controllers/api/v1/accounts/notes_controller.rb' - - 'app/controllers/api/v1/accounts/pins_controller.rb' - - 'app/controllers/api/v1/accounts/relationships_controller.rb' - - 'app/controllers/api/v1/accounts/search_controller.rb' - - 'app/controllers/api/v1/accounts/statuses_controller.rb' - - 'app/controllers/api/v1/accounts_controller.rb' - - 'app/controllers/api/v1/admin/account_actions_controller.rb' - - 'app/controllers/api/v1/admin/accounts_controller.rb' - - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' - - 'app/controllers/api/v1/admin/dimensions_controller.rb' - - 'app/controllers/api/v1/admin/domain_allows_controller.rb' - - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' - - 'app/controllers/api/v1/admin/measures_controller.rb' - - 'app/controllers/api/v1/admin/reports_controller.rb' - - 'app/controllers/api/v1/admin/retention_controller.rb' - - 'app/controllers/api/v1/admin/trends/links_controller.rb' - - 'app/controllers/api/v1/admin/trends/statuses_controller.rb' - - 'app/controllers/api/v1/admin/trends/tags_controller.rb' - - 'app/controllers/api/v1/announcements/reactions_controller.rb' - - 'app/controllers/api/v1/announcements_controller.rb' - - 'app/controllers/api/v1/apps/credentials_controller.rb' - - 'app/controllers/api/v1/apps_controller.rb' - - 'app/controllers/api/v1/blocks_controller.rb' - - 'app/controllers/api/v1/bookmarks_controller.rb' - - 'app/controllers/api/v1/conversations_controller.rb' - - 'app/controllers/api/v1/crypto/deliveries_controller.rb' - - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb' - - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' - - 'app/controllers/api/v1/crypto/keys/counts_controller.rb' - - 'app/controllers/api/v1/crypto/keys/queries_controller.rb' - - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' - - 'app/controllers/api/v1/custom_emojis_controller.rb' - - 'app/controllers/api/v1/directories_controller.rb' - - 'app/controllers/api/v1/domain_blocks_controller.rb' - - 'app/controllers/api/v1/emails/confirmations_controller.rb' - - 'app/controllers/api/v1/endorsements_controller.rb' - - 'app/controllers/api/v1/favourites_controller.rb' - - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb' - - 'app/controllers/api/v1/featured_tags_controller.rb' - - 'app/controllers/api/v1/filters_controller.rb' - - 'app/controllers/api/v1/follow_requests_controller.rb' - - 'app/controllers/api/v1/followed_tags_controller.rb' - - 'app/controllers/api/v1/instances/activity_controller.rb' - - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' - - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb' - - 'app/controllers/api/v1/instances/peers_controller.rb' - - 'app/controllers/api/v1/instances/privacy_policies_controller.rb' - - 'app/controllers/api/v1/instances/rules_controller.rb' - - 'app/controllers/api/v1/instances_controller.rb' - - 'app/controllers/api/v1/lists/accounts_controller.rb' - - 'app/controllers/api/v1/lists_controller.rb' - - 'app/controllers/api/v1/markers_controller.rb' - - 'app/controllers/api/v1/media_controller.rb' - - 'app/controllers/api/v1/mutes_controller.rb' - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/api/v1/polls/votes_controller.rb' - - 'app/controllers/api/v1/polls_controller.rb' - - 'app/controllers/api/v1/preferences_controller.rb' - - 'app/controllers/api/v1/push/subscriptions_controller.rb' - - 'app/controllers/api/v1/reports_controller.rb' - - 'app/controllers/api/v1/scheduled_statuses_controller.rb' - - 'app/controllers/api/v1/statuses/bookmarks_controller.rb' - - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/favourites_controller.rb' - - 'app/controllers/api/v1/statuses/histories_controller.rb' - - 'app/controllers/api/v1/statuses/mutes_controller.rb' - - 'app/controllers/api/v1/statuses/pins_controller.rb' - - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/reblogs_controller.rb' - - 'app/controllers/api/v1/statuses/sources_controller.rb' - - 'app/controllers/api/v1/statuses/translations_controller.rb' - - 'app/controllers/api/v1/statuses_controller.rb' - - 'app/controllers/api/v1/streaming_controller.rb' - - 'app/controllers/api/v1/suggestions_controller.rb' - - 'app/controllers/api/v1/tags_controller.rb' - - 'app/controllers/api/v1/timelines/home_controller.rb' - - 'app/controllers/api/v1/timelines/list_controller.rb' - - 'app/controllers/api/v1/timelines/public_controller.rb' - - 'app/controllers/api/v1/timelines/tag_controller.rb' - - 'app/controllers/api/v1/trends/links_controller.rb' - - 'app/controllers/api/v1/trends/statuses_controller.rb' - - 'app/controllers/api/v1/trends/tags_controller.rb' - - 'app/controllers/api/v2/admin/accounts_controller.rb' - - 'app/controllers/api/v2/filters/keywords_controller.rb' - - 'app/controllers/api/v2/filters/statuses_controller.rb' - - 'app/controllers/api/v2/filters_controller.rb' - - 'app/controllers/api/v2/instances_controller.rb' - - 'app/controllers/api/v2/media_controller.rb' - - 'app/controllers/api/v2/search_controller.rb' - - 'app/controllers/api/v2/suggestions_controller.rb' - - 'app/controllers/api/web/base_controller.rb' - - 'app/controllers/api/web/embeds_controller.rb' - - 'app/controllers/api/web/push_subscriptions_controller.rb' - - 'app/controllers/api/web/settings_controller.rb' - - 'app/controllers/auth/challenges_controller.rb' - - 'app/controllers/auth/confirmations_controller.rb' - - 'app/controllers/auth/omniauth_callbacks_controller.rb' - - 'app/controllers/auth/passwords_controller.rb' - - 'app/controllers/auth/registrations_controller.rb' - - 'app/controllers/auth/sessions_controller.rb' - - 'app/controllers/auth/setup_controller.rb' - - 'app/controllers/disputes/appeals_controller.rb' - - 'app/controllers/disputes/base_controller.rb' - - 'app/controllers/disputes/strikes_controller.rb' - - 'app/controllers/filters/statuses_controller.rb' - - 'app/controllers/oauth/authorizations_controller.rb' - - 'app/controllers/oauth/authorized_applications_controller.rb' - - 'app/controllers/oauth/tokens_controller.rb' - - 'app/controllers/settings/aliases_controller.rb' - - 'app/controllers/settings/applications_controller.rb' - - 'app/controllers/settings/base_controller.rb' - - 'app/controllers/settings/deletes_controller.rb' - - 'app/controllers/settings/exports_controller.rb' - - 'app/controllers/settings/featured_tags_controller.rb' - - 'app/controllers/settings/imports_controller.rb' - - 'app/controllers/settings/login_activities_controller.rb' - - 'app/controllers/settings/migration/redirects_controller.rb' - - 'app/controllers/settings/migrations_controller.rb' - - 'app/controllers/settings/preferences/appearance_controller.rb' - - 'app/controllers/settings/preferences/notifications_controller.rb' - - 'app/controllers/settings/preferences/other_controller.rb' - - 'app/controllers/settings/preferences_controller.rb' - - 'app/controllers/settings/profiles_controller.rb' - - 'app/controllers/settings/sessions_controller.rb' - - 'app/helpers/admin/account_moderation_notes_helper.rb' - - 'app/helpers/admin/action_logs_helper.rb' - - 'app/helpers/admin/dashboard_helper.rb' - - 'app/helpers/admin/filter_helper.rb' - - 'app/helpers/admin/settings_helper.rb' - - 'app/helpers/admin/trends/statuses_helper.rb' - - 'app/lib/activitypub/activity.rb' - - 'app/lib/activitypub/activity/accept.rb' - - 'app/lib/activitypub/activity/add.rb' - - 'app/lib/activitypub/activity/announce.rb' - - 'app/lib/activitypub/activity/block.rb' - - 'app/lib/activitypub/activity/create.rb' - - 'app/lib/activitypub/activity/delete.rb' - - 'app/lib/activitypub/activity/flag.rb' - - 'app/lib/activitypub/activity/follow.rb' - - 'app/lib/activitypub/activity/like.rb' - - 'app/lib/activitypub/activity/move.rb' - - 'app/lib/activitypub/activity/reject.rb' - - 'app/lib/activitypub/activity/remove.rb' - - 'app/lib/activitypub/activity/undo.rb' - - 'app/lib/activitypub/activity/update.rb' - - 'app/lib/activitypub/adapter.rb' - - 'app/lib/activitypub/case_transform.rb' - - 'app/lib/activitypub/dereferencer.rb' - - 'app/lib/activitypub/forwarder.rb' - - 'app/lib/activitypub/linked_data_signature.rb' - - 'app/lib/activitypub/parser/custom_emoji_parser.rb' - - 'app/lib/activitypub/parser/media_attachment_parser.rb' - - 'app/lib/activitypub/parser/poll_parser.rb' - - 'app/lib/activitypub/parser/status_parser.rb' - - 'app/lib/activitypub/serializer.rb' - - 'app/lib/activitypub/tag_manager.rb' - - 'app/lib/admin/metrics/dimension.rb' - - 'app/lib/admin/metrics/dimension/base_dimension.rb' - - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb' - - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/servers_dimension.rb' - - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' - - 'app/lib/admin/metrics/dimension/sources_dimension.rb' - - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' - - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb' - - 'app/lib/admin/metrics/measure.rb' - - 'app/lib/admin/metrics/measure/active_users_measure.rb' - - 'app/lib/admin/metrics/measure/base_measure.rb' - - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb' - - 'app/lib/admin/metrics/measure/instance_followers_measure.rb' - - 'app/lib/admin/metrics/measure/instance_follows_measure.rb' - - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb' - - 'app/lib/admin/metrics/measure/instance_reports_measure.rb' - - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb' - - 'app/lib/admin/metrics/measure/interactions_measure.rb' - - 'app/lib/admin/metrics/measure/new_users_measure.rb' - - 'app/lib/admin/metrics/measure/opened_reports_measure.rb' - - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb' - - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb' - - 'app/lib/admin/metrics/measure/tag_servers_measure.rb' - - 'app/lib/admin/metrics/measure/tag_uses_measure.rb' - - 'app/lib/admin/metrics/retention.rb' - - 'app/lib/admin/system_check.rb' - - 'app/lib/admin/system_check/base_check.rb' - - 'app/lib/admin/system_check/database_schema_check.rb' - - 'app/lib/admin/system_check/elasticsearch_check.rb' - - 'app/lib/admin/system_check/message.rb' - - 'app/lib/admin/system_check/rules_check.rb' - - 'app/lib/admin/system_check/sidekiq_process_check.rb' - - 'app/lib/connection_pool/shared_connection_pool.rb' - - 'app/lib/connection_pool/shared_timed_stack.rb' - - 'app/lib/importer/accounts_index_importer.rb' - - 'app/lib/importer/base_importer.rb' - - 'app/lib/importer/statuses_index_importer.rb' - - 'app/lib/importer/tags_index_importer.rb' - - 'app/lib/nodeinfo/adapter.rb' - - 'app/lib/ostatus/tag_manager.rb' - - 'app/lib/request.rb' - - 'app/lib/rss/builder.rb' - - 'app/lib/rss/channel.rb' - - 'app/lib/rss/element.rb' - - 'app/lib/rss/item.rb' - - 'app/lib/rss/media_content.rb' - - 'app/lib/translation_service/deepl.rb' - - 'app/lib/translation_service/libre_translate.rb' - - 'app/lib/translation_service/translation.rb' - - 'app/lib/vacuum/access_tokens_vacuum.rb' - - 'app/lib/vacuum/backups_vacuum.rb' - - 'app/lib/vacuum/feeds_vacuum.rb' - - 'app/lib/vacuum/media_attachments_vacuum.rb' - - 'app/lib/vacuum/preview_cards_vacuum.rb' - - 'app/lib/vacuum/statuses_vacuum.rb' - - 'app/lib/vacuum/system_keys_vacuum.rb' - - 'app/models/account/field.rb' - - 'app/models/account_suggestions/global_source.rb' - - 'app/models/account_suggestions/past_interactions_source.rb' - - 'app/models/account_suggestions/setting_source.rb' - - 'app/models/account_suggestions/source.rb' - - 'app/models/account_suggestions/suggestion.rb' - - 'app/models/admin/account_action.rb' - - 'app/models/admin/action_log.rb' - - 'app/models/admin/action_log_filter.rb' - - 'app/models/admin/appeal_filter.rb' - - 'app/models/admin/import.rb' - - 'app/models/admin/status_batch_action.rb' - - 'app/models/admin/status_filter.rb' - - 'app/models/form/account_batch.rb' - - 'app/models/form/admin_settings.rb' - - 'app/models/form/challenge.rb' - - 'app/models/form/custom_emoji_batch.rb' - - 'app/models/form/delete_confirmation.rb' - - 'app/models/form/domain_block_batch.rb' - - 'app/models/form/email_domain_block_batch.rb' - - 'app/models/form/ip_block_batch.rb' - - 'app/models/form/redirect.rb' - - 'app/models/form/status_filter_batch_action.rb' - - 'app/models/form/two_factor_confirmation.rb' - - 'app/models/trends/base.rb' - - 'app/models/trends/history.rb' - - 'app/models/trends/links.rb' - - 'app/models/trends/preview_card_batch.rb' - - 'app/models/trends/preview_card_filter.rb' - - 'app/models/trends/preview_card_provider_batch.rb' - - 'app/models/trends/preview_card_provider_filter.rb' - - 'app/models/trends/query.rb' - - 'app/models/trends/status_batch.rb' - - 'app/models/trends/status_filter.rb' - - 'app/models/trends/statuses.rb' - - 'app/models/trends/tag_batch.rb' - - 'app/models/trends/tag_filter.rb' - - 'app/models/trends/tags.rb' - - 'app/models/web/push_subscription.rb' - - 'app/models/web/setting.rb' - - 'app/policies/admin/status_policy.rb' - - 'app/presenters/activitypub/activity_presenter.rb' - - 'app/presenters/activitypub/collection_presenter.rb' - - 'app/presenters/webhooks/event_presenter.rb' - - 'app/serializers/activitypub/accept_follow_serializer.rb' - - 'app/serializers/activitypub/activity_serializer.rb' - - 'app/serializers/activitypub/actor_serializer.rb' - - 'app/serializers/activitypub/add_serializer.rb' - - 'app/serializers/activitypub/block_serializer.rb' - - 'app/serializers/activitypub/collection_serializer.rb' - - 'app/serializers/activitypub/delete_actor_serializer.rb' - - 'app/serializers/activitypub/delete_serializer.rb' - - 'app/serializers/activitypub/device_serializer.rb' - - 'app/serializers/activitypub/emoji_serializer.rb' - - 'app/serializers/activitypub/encrypted_message_serializer.rb' - - 'app/serializers/activitypub/flag_serializer.rb' - - 'app/serializers/activitypub/follow_serializer.rb' - - 'app/serializers/activitypub/hashtag_serializer.rb' - - 'app/serializers/activitypub/image_serializer.rb' - - 'app/serializers/activitypub/like_serializer.rb' - - 'app/serializers/activitypub/move_serializer.rb' - - 'app/serializers/activitypub/note_serializer.rb' - - 'app/serializers/activitypub/one_time_key_serializer.rb' - - 'app/serializers/activitypub/outbox_serializer.rb' - - 'app/serializers/activitypub/public_key_serializer.rb' - - 'app/serializers/activitypub/reject_follow_serializer.rb' - - 'app/serializers/activitypub/remove_serializer.rb' - - 'app/serializers/activitypub/undo_announce_serializer.rb' - - 'app/serializers/activitypub/undo_block_serializer.rb' - - 'app/serializers/activitypub/undo_follow_serializer.rb' - - 'app/serializers/activitypub/undo_like_serializer.rb' - - 'app/serializers/activitypub/update_poll_serializer.rb' - - 'app/serializers/activitypub/update_serializer.rb' - - 'app/serializers/activitypub/vote_serializer.rb' - - 'app/serializers/nodeinfo/discovery_serializer.rb' - - 'app/serializers/nodeinfo/serializer.rb' - - 'app/serializers/rest/account_serializer.rb' - - 'app/serializers/rest/admin/account_serializer.rb' - - 'app/serializers/rest/admin/canonical_email_block_serializer.rb' - - 'app/serializers/rest/admin/cohort_serializer.rb' - - 'app/serializers/rest/admin/dimension_serializer.rb' - - 'app/serializers/rest/admin/domain_allow_serializer.rb' - - 'app/serializers/rest/admin/domain_block_serializer.rb' - - 'app/serializers/rest/admin/email_domain_block_serializer.rb' - - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb' - - 'app/serializers/rest/admin/ip_block_serializer.rb' - - 'app/serializers/rest/admin/ip_serializer.rb' - - 'app/serializers/rest/admin/measure_serializer.rb' - - 'app/serializers/rest/admin/report_serializer.rb' - - 'app/serializers/rest/admin/tag_serializer.rb' - - 'app/serializers/rest/admin/webhook_event_serializer.rb' - - 'app/serializers/rest/announcement_serializer.rb' - - 'app/serializers/rest/application_serializer.rb' - - 'app/serializers/rest/context_serializer.rb' - - 'app/serializers/rest/conversation_serializer.rb' - - 'app/serializers/rest/credential_account_serializer.rb' - - 'app/serializers/rest/custom_emoji_serializer.rb' - - 'app/serializers/rest/domain_block_serializer.rb' - - 'app/serializers/rest/encrypted_message_serializer.rb' - - 'app/serializers/rest/extended_description_serializer.rb' - - 'app/serializers/rest/familiar_followers_serializer.rb' - - 'app/serializers/rest/featured_tag_serializer.rb' - - 'app/serializers/rest/filter_keyword_serializer.rb' - - 'app/serializers/rest/filter_result_serializer.rb' - - 'app/serializers/rest/filter_serializer.rb' - - 'app/serializers/rest/filter_status_serializer.rb' - - 'app/serializers/rest/instance_serializer.rb' - - 'app/serializers/rest/keys/claim_result_serializer.rb' - - 'app/serializers/rest/keys/device_serializer.rb' - - 'app/serializers/rest/keys/query_result_serializer.rb' - - 'app/serializers/rest/list_serializer.rb' - - 'app/serializers/rest/marker_serializer.rb' - - 'app/serializers/rest/media_attachment_serializer.rb' - - 'app/serializers/rest/muted_account_serializer.rb' - - 'app/serializers/rest/notification_serializer.rb' - - 'app/serializers/rest/poll_serializer.rb' - - 'app/serializers/rest/preferences_serializer.rb' - - 'app/serializers/rest/preview_card_serializer.rb' - - 'app/serializers/rest/privacy_policy_serializer.rb' - - 'app/serializers/rest/reaction_serializer.rb' - - 'app/serializers/rest/relationship_serializer.rb' - - 'app/serializers/rest/report_serializer.rb' - - 'app/serializers/rest/role_serializer.rb' - - 'app/serializers/rest/rule_serializer.rb' - - 'app/serializers/rest/scheduled_status_serializer.rb' - - 'app/serializers/rest/search_serializer.rb' - - 'app/serializers/rest/status_edit_serializer.rb' - - 'app/serializers/rest/status_serializer.rb' - - 'app/serializers/rest/status_source_serializer.rb' - - 'app/serializers/rest/suggestion_serializer.rb' - - 'app/serializers/rest/tag_serializer.rb' - - 'app/serializers/rest/translation_serializer.rb' - - 'app/serializers/rest/trends/link_serializer.rb' - - 'app/serializers/rest/v1/filter_serializer.rb' - - 'app/serializers/rest/v1/instance_serializer.rb' - - 'app/serializers/rest/web_push_subscription_serializer.rb' - - 'app/serializers/web/notification_serializer.rb' - - 'app/services/activitypub/fetch_featured_collection_service.rb' - - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' - - 'app/services/activitypub/fetch_remote_account_service.rb' - - 'app/services/activitypub/fetch_remote_actor_service.rb' - - 'app/services/activitypub/fetch_remote_key_service.rb' - - 'app/services/activitypub/fetch_remote_poll_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/activitypub/fetch_replies_service.rb' - - 'app/services/activitypub/prepare_followers_synchronization_service.rb' - - 'app/services/activitypub/process_account_service.rb' - - 'app/services/activitypub/process_collection_service.rb' - - 'app/services/activitypub/process_status_update_service.rb' - - 'app/services/activitypub/synchronize_followers_service.rb' - - 'app/services/keys/claim_service.rb' - - 'app/services/keys/query_service.rb' - - 'app/workers/activitypub/account_raw_distribution_worker.rb' - - 'app/workers/activitypub/delivery_worker.rb' - - 'app/workers/activitypub/distribute_poll_update_worker.rb' - - 'app/workers/activitypub/distribution_worker.rb' - - 'app/workers/activitypub/fetch_replies_worker.rb' - - 'app/workers/activitypub/followers_synchronization_worker.rb' - - 'app/workers/activitypub/low_priority_delivery_worker.rb' - - 'app/workers/activitypub/migrated_follow_delivery_worker.rb' - - 'app/workers/activitypub/move_distribution_worker.rb' - - 'app/workers/activitypub/post_upgrade_worker.rb' - - 'app/workers/activitypub/processing_worker.rb' - - 'app/workers/activitypub/raw_distribution_worker.rb' - - 'app/workers/activitypub/status_update_distribution_worker.rb' - - 'app/workers/activitypub/synchronize_featured_collection_worker.rb' - - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb' - - 'app/workers/activitypub/update_distribution_worker.rb' - - 'app/workers/admin/account_deletion_worker.rb' - - 'app/workers/admin/domain_purge_worker.rb' - - 'app/workers/admin/suspension_worker.rb' - - 'app/workers/admin/unsuspension_worker.rb' - - 'app/workers/import/relationship_worker.rb' - - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' - - 'app/workers/scheduler/follow_recommendations_scheduler.rb' - - 'app/workers/scheduler/indexing_scheduler.rb' - - 'app/workers/scheduler/instance_refresh_scheduler.rb' - - 'app/workers/scheduler/ip_cleanup_scheduler.rb' - - 'app/workers/scheduler/pghero_scheduler.rb' - - 'app/workers/scheduler/scheduled_statuses_scheduler.rb' - - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb' - - 'app/workers/scheduler/trends/refresh_scheduler.rb' - - 'app/workers/scheduler/trends/review_notifications_scheduler.rb' - - 'app/workers/scheduler/user_cleanup_scheduler.rb' - - 'app/workers/scheduler/vacuum_scheduler.rb' - - 'app/workers/web/push_notification_worker.rb' - - 'app/workers/webhooks/delivery_worker.rb' - - 'lib/mastodon/rack_middleware.rb' - - 'lib/mastodon/sidekiq_middleware.rb' - - 'lib/mastodon/snowflake.rb' - - 'lib/webpacker/helper_extensions.rb' - - 'lib/webpacker/manifest_extensions.rb' - # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowedMethods, AllowedPatterns. # AllowedMethods: ==, equal?, eql? @@ -2191,1342 +1742,6 @@ Style/ConcatArrayLiterals: Exclude: - 'app/lib/feed_manager.rb' -# Configuration parameters: AllowedConstants. -Style/Documentation: - Exclude: - - 'app/chewy/accounts_index.rb' - - 'app/chewy/statuses_index.rb' - - 'app/chewy/tags_index.rb' - - 'app/controllers/about_controller.rb' - - 'app/controllers/accounts_controller.rb' - - 'app/controllers/activitypub/base_controller.rb' - - 'app/controllers/activitypub/claims_controller.rb' - - 'app/controllers/activitypub/collections_controller.rb' - - 'app/controllers/activitypub/followers_synchronizations_controller.rb' - - 'app/controllers/activitypub/inboxes_controller.rb' - - 'app/controllers/activitypub/outboxes_controller.rb' - - 'app/controllers/activitypub/replies_controller.rb' - - 'app/controllers/admin/account_actions_controller.rb' - - 'app/controllers/admin/account_moderation_notes_controller.rb' - - 'app/controllers/admin/accounts_controller.rb' - - 'app/controllers/admin/action_logs_controller.rb' - - 'app/controllers/admin/announcements_controller.rb' - - 'app/controllers/admin/base_controller.rb' - - 'app/controllers/admin/change_emails_controller.rb' - - 'app/controllers/admin/confirmations_controller.rb' - - 'app/controllers/admin/custom_emojis_controller.rb' - - 'app/controllers/admin/dashboard_controller.rb' - - 'app/controllers/admin/disputes/appeals_controller.rb' - - 'app/controllers/admin/domain_allows_controller.rb' - - 'app/controllers/admin/domain_blocks_controller.rb' - - 'app/controllers/admin/email_domain_blocks_controller.rb' - - 'app/controllers/admin/export_domain_allows_controller.rb' - - 'app/controllers/admin/export_domain_blocks_controller.rb' - - 'app/controllers/admin/follow_recommendations_controller.rb' - - 'app/controllers/admin/instances_controller.rb' - - 'app/controllers/admin/invites_controller.rb' - - 'app/controllers/admin/ip_blocks_controller.rb' - - 'app/controllers/admin/relationships_controller.rb' - - 'app/controllers/admin/relays_controller.rb' - - 'app/controllers/admin/report_notes_controller.rb' - - 'app/controllers/admin/reports/actions_controller.rb' - - 'app/controllers/admin/reports_controller.rb' - - 'app/controllers/admin/resets_controller.rb' - - 'app/controllers/admin/roles_controller.rb' - - 'app/controllers/admin/rules_controller.rb' - - 'app/controllers/admin/settings/about_controller.rb' - - 'app/controllers/admin/settings/appearance_controller.rb' - - 'app/controllers/admin/settings/branding_controller.rb' - - 'app/controllers/admin/settings/content_retention_controller.rb' - - 'app/controllers/admin/settings/discovery_controller.rb' - - 'app/controllers/admin/settings/registrations_controller.rb' - - 'app/controllers/admin/settings_controller.rb' - - 'app/controllers/admin/site_uploads_controller.rb' - - 'app/controllers/admin/statuses_controller.rb' - - 'app/controllers/admin/tags_controller.rb' - - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb' - - 'app/controllers/admin/trends/links_controller.rb' - - 'app/controllers/admin/trends/statuses_controller.rb' - - 'app/controllers/admin/trends/tags_controller.rb' - - 'app/controllers/admin/users/roles_controller.rb' - - 'app/controllers/admin/users/two_factor_authentications_controller.rb' - - 'app/controllers/admin/warning_presets_controller.rb' - - 'app/controllers/admin/webhooks/secrets_controller.rb' - - 'app/controllers/admin/webhooks_controller.rb' - - 'app/controllers/api/base_controller.rb' - - 'app/controllers/api/oembed_controller.rb' - - 'app/controllers/api/v1/accounts/credentials_controller.rb' - - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb' - - 'app/controllers/api/v1/accounts/featured_tags_controller.rb' - - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/following_accounts_controller.rb' - - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb' - - 'app/controllers/api/v1/accounts/lists_controller.rb' - - 'app/controllers/api/v1/accounts/lookup_controller.rb' - - 'app/controllers/api/v1/accounts/notes_controller.rb' - - 'app/controllers/api/v1/accounts/pins_controller.rb' - - 'app/controllers/api/v1/accounts/relationships_controller.rb' - - 'app/controllers/api/v1/accounts/search_controller.rb' - - 'app/controllers/api/v1/accounts/statuses_controller.rb' - - 'app/controllers/api/v1/accounts_controller.rb' - - 'app/controllers/api/v1/admin/account_actions_controller.rb' - - 'app/controllers/api/v1/admin/accounts_controller.rb' - - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb' - - 'app/controllers/api/v1/admin/dimensions_controller.rb' - - 'app/controllers/api/v1/admin/domain_allows_controller.rb' - - 'app/controllers/api/v1/admin/domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb' - - 'app/controllers/api/v1/admin/ip_blocks_controller.rb' - - 'app/controllers/api/v1/admin/measures_controller.rb' - - 'app/controllers/api/v1/admin/reports_controller.rb' - - 'app/controllers/api/v1/admin/retention_controller.rb' - - 'app/controllers/api/v1/admin/trends/links_controller.rb' - - 'app/controllers/api/v1/admin/trends/statuses_controller.rb' - - 'app/controllers/api/v1/admin/trends/tags_controller.rb' - - 'app/controllers/api/v1/announcements/reactions_controller.rb' - - 'app/controllers/api/v1/announcements_controller.rb' - - 'app/controllers/api/v1/apps/credentials_controller.rb' - - 'app/controllers/api/v1/apps_controller.rb' - - 'app/controllers/api/v1/blocks_controller.rb' - - 'app/controllers/api/v1/bookmarks_controller.rb' - - 'app/controllers/api/v1/conversations_controller.rb' - - 'app/controllers/api/v1/crypto/deliveries_controller.rb' - - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb' - - 'app/controllers/api/v1/crypto/keys/claims_controller.rb' - - 'app/controllers/api/v1/crypto/keys/counts_controller.rb' - - 'app/controllers/api/v1/crypto/keys/queries_controller.rb' - - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb' - - 'app/controllers/api/v1/custom_emojis_controller.rb' - - 'app/controllers/api/v1/directories_controller.rb' - - 'app/controllers/api/v1/domain_blocks_controller.rb' - - 'app/controllers/api/v1/emails/confirmations_controller.rb' - - 'app/controllers/api/v1/endorsements_controller.rb' - - 'app/controllers/api/v1/favourites_controller.rb' - - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb' - - 'app/controllers/api/v1/featured_tags_controller.rb' - - 'app/controllers/api/v1/filters_controller.rb' - - 'app/controllers/api/v1/follow_requests_controller.rb' - - 'app/controllers/api/v1/followed_tags_controller.rb' - - 'app/controllers/api/v1/instances/activity_controller.rb' - - 'app/controllers/api/v1/instances/domain_blocks_controller.rb' - - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb' - - 'app/controllers/api/v1/instances/peers_controller.rb' - - 'app/controllers/api/v1/instances/privacy_policies_controller.rb' - - 'app/controllers/api/v1/instances/rules_controller.rb' - - 'app/controllers/api/v1/instances_controller.rb' - - 'app/controllers/api/v1/lists/accounts_controller.rb' - - 'app/controllers/api/v1/lists_controller.rb' - - 'app/controllers/api/v1/markers_controller.rb' - - 'app/controllers/api/v1/media_controller.rb' - - 'app/controllers/api/v1/mutes_controller.rb' - - 'app/controllers/api/v1/notifications_controller.rb' - - 'app/controllers/api/v1/polls/votes_controller.rb' - - 'app/controllers/api/v1/polls_controller.rb' - - 'app/controllers/api/v1/preferences_controller.rb' - - 'app/controllers/api/v1/push/subscriptions_controller.rb' - - 'app/controllers/api/v1/reports_controller.rb' - - 'app/controllers/api/v1/scheduled_statuses_controller.rb' - - 'app/controllers/api/v1/statuses/bookmarks_controller.rb' - - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/favourites_controller.rb' - - 'app/controllers/api/v1/statuses/histories_controller.rb' - - 'app/controllers/api/v1/statuses/mutes_controller.rb' - - 'app/controllers/api/v1/statuses/pins_controller.rb' - - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb' - - 'app/controllers/api/v1/statuses/reblogs_controller.rb' - - 'app/controllers/api/v1/statuses/sources_controller.rb' - - 'app/controllers/api/v1/statuses/translations_controller.rb' - - 'app/controllers/api/v1/statuses_controller.rb' - - 'app/controllers/api/v1/streaming_controller.rb' - - 'app/controllers/api/v1/suggestions_controller.rb' - - 'app/controllers/api/v1/tags_controller.rb' - - 'app/controllers/api/v1/timelines/home_controller.rb' - - 'app/controllers/api/v1/timelines/list_controller.rb' - - 'app/controllers/api/v1/timelines/public_controller.rb' - - 'app/controllers/api/v1/timelines/tag_controller.rb' - - 'app/controllers/api/v1/trends/links_controller.rb' - - 'app/controllers/api/v1/trends/statuses_controller.rb' - - 'app/controllers/api/v1/trends/tags_controller.rb' - - 'app/controllers/api/v2/admin/accounts_controller.rb' - - 'app/controllers/api/v2/filters/keywords_controller.rb' - - 'app/controllers/api/v2/filters/statuses_controller.rb' - - 'app/controllers/api/v2/filters_controller.rb' - - 'app/controllers/api/v2/instances_controller.rb' - - 'app/controllers/api/v2/media_controller.rb' - - 'app/controllers/api/v2/search_controller.rb' - - 'app/controllers/api/v2/suggestions_controller.rb' - - 'app/controllers/api/web/base_controller.rb' - - 'app/controllers/api/web/embeds_controller.rb' - - 'app/controllers/api/web/push_subscriptions_controller.rb' - - 'app/controllers/api/web/settings_controller.rb' - - 'app/controllers/application_controller.rb' - - 'app/controllers/auth/challenges_controller.rb' - - 'app/controllers/auth/confirmations_controller.rb' - - 'app/controllers/auth/omniauth_callbacks_controller.rb' - - 'app/controllers/auth/passwords_controller.rb' - - 'app/controllers/auth/registrations_controller.rb' - - 'app/controllers/auth/sessions_controller.rb' - - 'app/controllers/auth/setup_controller.rb' - - 'app/controllers/authorize_interactions_controller.rb' - - 'app/controllers/concerns/access_token_tracking_concern.rb' - - 'app/controllers/concerns/account_controller_concern.rb' - - 'app/controllers/concerns/account_owned_concern.rb' - - 'app/controllers/concerns/accountable_concern.rb' - - 'app/controllers/concerns/admin_export_controller_concern.rb' - - 'app/controllers/concerns/authorization.rb' - - 'app/controllers/concerns/cache_concern.rb' - - 'app/controllers/concerns/export_controller_concern.rb' - - 'app/controllers/concerns/localized.rb' - - 'app/controllers/concerns/rate_limit_headers.rb' - - 'app/controllers/concerns/registration_spam_concern.rb' - - 'app/controllers/concerns/session_tracking_concern.rb' - - 'app/controllers/concerns/signature_authentication.rb' - - 'app/controllers/concerns/signature_verification.rb' - - 'app/controllers/concerns/two_factor_authentication_concern.rb' - - 'app/controllers/concerns/user_tracking_concern.rb' - - 'app/controllers/concerns/web_app_controller_concern.rb' - - 'app/controllers/custom_css_controller.rb' - - 'app/controllers/disputes/appeals_controller.rb' - - 'app/controllers/disputes/base_controller.rb' - - 'app/controllers/disputes/strikes_controller.rb' - - 'app/controllers/emojis_controller.rb' - - 'app/controllers/filters/statuses_controller.rb' - - 'app/controllers/filters_controller.rb' - - 'app/controllers/follower_accounts_controller.rb' - - 'app/controllers/following_accounts_controller.rb' - - 'app/controllers/health_controller.rb' - - 'app/controllers/home_controller.rb' - - 'app/controllers/instance_actors_controller.rb' - - 'app/controllers/intents_controller.rb' - - 'app/controllers/invites_controller.rb' - - 'app/controllers/manifests_controller.rb' - - 'app/controllers/media_controller.rb' - - 'app/controllers/media_proxy_controller.rb' - - 'app/controllers/oauth/authorizations_controller.rb' - - 'app/controllers/oauth/authorized_applications_controller.rb' - - 'app/controllers/oauth/tokens_controller.rb' - - 'app/controllers/privacy_controller.rb' - - 'app/controllers/relationships_controller.rb' - - 'app/controllers/settings/aliases_controller.rb' - - 'app/controllers/settings/applications_controller.rb' - - 'app/controllers/settings/base_controller.rb' - - 'app/controllers/settings/deletes_controller.rb' - - 'app/controllers/settings/exports/blocked_accounts_controller.rb' - - 'app/controllers/settings/exports/blocked_domains_controller.rb' - - 'app/controllers/settings/exports/bookmarks_controller.rb' - - 'app/controllers/settings/exports/following_accounts_controller.rb' - - 'app/controllers/settings/exports/lists_controller.rb' - - 'app/controllers/settings/exports/muted_accounts_controller.rb' - - 'app/controllers/settings/exports_controller.rb' - - 'app/controllers/settings/featured_tags_controller.rb' - - 'app/controllers/settings/imports_controller.rb' - - 'app/controllers/settings/login_activities_controller.rb' - - 'app/controllers/settings/migration/redirects_controller.rb' - - 'app/controllers/settings/migrations_controller.rb' - - 'app/controllers/settings/pictures_controller.rb' - - 'app/controllers/settings/preferences/appearance_controller.rb' - - 'app/controllers/settings/preferences/notifications_controller.rb' - - 'app/controllers/settings/preferences/other_controller.rb' - - 'app/controllers/settings/preferences_controller.rb' - - 'app/controllers/settings/profiles_controller.rb' - - 'app/controllers/settings/sessions_controller.rb' - - 'app/controllers/settings/two_factor_authentication/confirmations_controller.rb' - - 'app/controllers/settings/two_factor_authentication/otp_authentication_controller.rb' - - 'app/controllers/settings/two_factor_authentication/recovery_codes_controller.rb' - - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb' - - 'app/controllers/settings/two_factor_authentication_methods_controller.rb' - - 'app/controllers/shares_controller.rb' - - 'app/controllers/statuses_cleanup_controller.rb' - - 'app/controllers/statuses_controller.rb' - - 'app/controllers/tags_controller.rb' - - 'app/controllers/well_known/host_meta_controller.rb' - - 'app/controllers/well_known/nodeinfo_controller.rb' - - 'app/controllers/well_known/webfinger_controller.rb' - - 'app/helpers/accounts_helper.rb' - - 'app/helpers/admin/account_moderation_notes_helper.rb' - - 'app/helpers/admin/action_logs_helper.rb' - - 'app/helpers/admin/dashboard_helper.rb' - - 'app/helpers/admin/filter_helper.rb' - - 'app/helpers/admin/settings_helper.rb' - - 'app/helpers/admin/trends/statuses_helper.rb' - - 'app/helpers/application_helper.rb' - - 'app/helpers/branding_helper.rb' - - 'app/helpers/context_helper.rb' - - 'app/helpers/domain_control_helper.rb' - - 'app/helpers/email_helper.rb' - - 'app/helpers/flashes_helper.rb' - - 'app/helpers/formatting_helper.rb' - - 'app/helpers/home_helper.rb' - - 'app/helpers/instance_helper.rb' - - 'app/helpers/jsonld_helper.rb' - - 'app/helpers/languages_helper.rb' - - 'app/helpers/mascot_helper.rb' - - 'app/helpers/routing_helper.rb' - - 'app/helpers/settings_helper.rb' - - 'app/helpers/statuses_helper.rb' - - 'app/helpers/webfinger_helper.rb' - - 'app/lib/access_token_extension.rb' - - 'app/lib/account_reach_finder.rb' - - 'app/lib/activity_tracker.rb' - - 'app/lib/activitypub/activity.rb' - - 'app/lib/activitypub/activity/accept.rb' - - 'app/lib/activitypub/activity/add.rb' - - 'app/lib/activitypub/activity/announce.rb' - - 'app/lib/activitypub/activity/block.rb' - - 'app/lib/activitypub/activity/create.rb' - - 'app/lib/activitypub/activity/delete.rb' - - 'app/lib/activitypub/activity/flag.rb' - - 'app/lib/activitypub/activity/follow.rb' - - 'app/lib/activitypub/activity/like.rb' - - 'app/lib/activitypub/activity/move.rb' - - 'app/lib/activitypub/activity/reject.rb' - - 'app/lib/activitypub/activity/remove.rb' - - 'app/lib/activitypub/activity/undo.rb' - - 'app/lib/activitypub/activity/update.rb' - - 'app/lib/activitypub/adapter.rb' - - 'app/lib/activitypub/case_transform.rb' - - 'app/lib/activitypub/dereferencer.rb' - - 'app/lib/activitypub/forwarder.rb' - - 'app/lib/activitypub/linked_data_signature.rb' - - 'app/lib/activitypub/parser/custom_emoji_parser.rb' - - 'app/lib/activitypub/parser/media_attachment_parser.rb' - - 'app/lib/activitypub/parser/poll_parser.rb' - - 'app/lib/activitypub/parser/status_parser.rb' - - 'app/lib/activitypub/serializer.rb' - - 'app/lib/activitypub/tag_manager.rb' - - 'app/lib/admin/metrics/dimension.rb' - - 'app/lib/admin/metrics/dimension/base_dimension.rb' - - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb' - - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/servers_dimension.rb' - - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb' - - 'app/lib/admin/metrics/dimension/sources_dimension.rb' - - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb' - - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb' - - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb' - - 'app/lib/admin/metrics/measure.rb' - - 'app/lib/admin/metrics/measure/active_users_measure.rb' - - 'app/lib/admin/metrics/measure/base_measure.rb' - - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb' - - 'app/lib/admin/metrics/measure/instance_followers_measure.rb' - - 'app/lib/admin/metrics/measure/instance_follows_measure.rb' - - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb' - - 'app/lib/admin/metrics/measure/instance_reports_measure.rb' - - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb' - - 'app/lib/admin/metrics/measure/interactions_measure.rb' - - 'app/lib/admin/metrics/measure/new_users_measure.rb' - - 'app/lib/admin/metrics/measure/opened_reports_measure.rb' - - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb' - - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb' - - 'app/lib/admin/metrics/measure/tag_servers_measure.rb' - - 'app/lib/admin/metrics/measure/tag_uses_measure.rb' - - 'app/lib/admin/metrics/retention.rb' - - 'app/lib/admin/system_check.rb' - - 'app/lib/admin/system_check/base_check.rb' - - 'app/lib/admin/system_check/database_schema_check.rb' - - 'app/lib/admin/system_check/elasticsearch_check.rb' - - 'app/lib/admin/system_check/message.rb' - - 'app/lib/admin/system_check/rules_check.rb' - - 'app/lib/admin/system_check/sidekiq_process_check.rb' - - 'app/lib/application_extension.rb' - - 'app/lib/ascii_folding.rb' - - 'app/lib/cache_buster.rb' - - 'app/lib/connection_pool/shared_connection_pool.rb' - - 'app/lib/connection_pool/shared_timed_stack.rb' - - 'app/lib/delivery_failure_tracker.rb' - - 'app/lib/emoji_formatter.rb' - - 'app/lib/entity_cache.rb' - - 'app/lib/extractor.rb' - - 'app/lib/fast_geometry_parser.rb' - - 'app/lib/fast_ip_map.rb' - - 'app/lib/feed_manager.rb' - - 'app/lib/hash_object.rb' - - 'app/lib/hashtag_normalizer.rb' - - 'app/lib/html_aware_formatter.rb' - - 'app/lib/importer/accounts_index_importer.rb' - - 'app/lib/importer/base_importer.rb' - - 'app/lib/importer/statuses_index_importer.rb' - - 'app/lib/importer/tags_index_importer.rb' - - 'app/lib/inline_renderer.rb' - - 'app/lib/link_details_extractor.rb' - - 'app/lib/nodeinfo/adapter.rb' - - 'app/lib/ostatus/tag_manager.rb' - - 'app/lib/permalink_redirector.rb' - - 'app/lib/plain_text_formatter.rb' - - 'app/lib/potential_friendship_tracker.rb' - - 'app/lib/rate_limiter.rb' - - 'app/lib/redis_configuration.rb' - - 'app/lib/request.rb' - - 'app/lib/request_pool.rb' - - 'app/lib/response_with_limit.rb' - - 'app/lib/rss/builder.rb' - - 'app/lib/rss/channel.rb' - - 'app/lib/rss/element.rb' - - 'app/lib/rss/item.rb' - - 'app/lib/rss/media_content.rb' - - 'app/lib/scope_parser.rb' - - 'app/lib/scope_transformer.rb' - - 'app/lib/search_query_parser.rb' - - 'app/lib/search_query_transformer.rb' - - 'app/lib/settings/extend.rb' - - 'app/lib/settings/scoped_settings.rb' - - 'app/lib/status_cache_hydrator.rb' - - 'app/lib/status_filter.rb' - - 'app/lib/status_finder.rb' - - 'app/lib/status_reach_finder.rb' - - 'app/lib/suspicious_sign_in_detector.rb' - - 'app/lib/tag_manager.rb' - - 'app/lib/text_formatter.rb' - - 'app/lib/themes.rb' - - 'app/lib/translation_service.rb' - - 'app/lib/translation_service/deepl.rb' - - 'app/lib/translation_service/libre_translate.rb' - - 'app/lib/translation_service/translation.rb' - - 'app/lib/user_settings_decorator.rb' - - 'app/lib/vacuum.rb' - - 'app/lib/vacuum/access_tokens_vacuum.rb' - - 'app/lib/vacuum/backups_vacuum.rb' - - 'app/lib/vacuum/feeds_vacuum.rb' - - 'app/lib/vacuum/media_attachments_vacuum.rb' - - 'app/lib/vacuum/preview_cards_vacuum.rb' - - 'app/lib/vacuum/statuses_vacuum.rb' - - 'app/lib/vacuum/system_keys_vacuum.rb' - - 'app/lib/validation_error_formatter.rb' - - 'app/lib/video_metadata_extractor.rb' - - 'app/lib/webfinger.rb' - - 'app/lib/webfinger_resource.rb' - - 'app/mailers/admin_mailer.rb' - - 'app/mailers/application_mailer.rb' - - 'app/mailers/notification_mailer.rb' - - 'app/mailers/user_mailer.rb' - - 'app/models/account.rb' - - 'app/models/account/field.rb' - - 'app/models/account_alias.rb' - - 'app/models/account_conversation.rb' - - 'app/models/account_domain_block.rb' - - 'app/models/account_filter.rb' - - 'app/models/account_migration.rb' - - 'app/models/account_moderation_note.rb' - - 'app/models/account_pin.rb' - - 'app/models/account_stat.rb' - - 'app/models/account_statuses_filter.rb' - - 'app/models/account_suggestions.rb' - - 'app/models/account_suggestions/global_source.rb' - - 'app/models/account_suggestions/past_interactions_source.rb' - - 'app/models/account_suggestions/setting_source.rb' - - 'app/models/account_suggestions/source.rb' - - 'app/models/account_suggestions/suggestion.rb' - - 'app/models/account_summary.rb' - - 'app/models/account_warning.rb' - - 'app/models/account_warning_preset.rb' - - 'app/models/admin.rb' - - 'app/models/admin/account_action.rb' - - 'app/models/admin/action_log.rb' - - 'app/models/admin/action_log_filter.rb' - - 'app/models/admin/appeal_filter.rb' - - 'app/models/admin/status_batch_action.rb' - - 'app/models/admin/status_filter.rb' - - 'app/models/announcement.rb' - - 'app/models/announcement_filter.rb' - - 'app/models/announcement_mute.rb' - - 'app/models/announcement_reaction.rb' - - 'app/models/application_record.rb' - - 'app/models/backup.rb' - - 'app/models/block.rb' - - 'app/models/bookmark.rb' - - 'app/models/canonical_email_block.rb' - - 'app/models/concerns/account_associations.rb' - - 'app/models/concerns/account_avatar.rb' - - 'app/models/concerns/account_counters.rb' - - 'app/models/concerns/account_finder_concern.rb' - - 'app/models/concerns/account_header.rb' - - 'app/models/concerns/account_interactions.rb' - - 'app/models/concerns/account_merging.rb' - - 'app/models/concerns/attachmentable.rb' - - 'app/models/concerns/cacheable.rb' - - 'app/models/concerns/domain_materializable.rb' - - 'app/models/concerns/domain_normalizable.rb' - - 'app/models/concerns/expireable.rb' - - 'app/models/concerns/follow_limitable.rb' - - 'app/models/concerns/ldap_authenticable.rb' - - 'app/models/concerns/lockable.rb' - - 'app/models/concerns/omniauthable.rb' - - 'app/models/concerns/paginable.rb' - - 'app/models/concerns/pam_authenticable.rb' - - 'app/models/concerns/rate_limitable.rb' - - 'app/models/concerns/redisable.rb' - - 'app/models/concerns/relationship_cacheable.rb' - - 'app/models/concerns/remotable.rb' - - 'app/models/concerns/status_snapshot_concern.rb' - - 'app/models/concerns/status_threading_concern.rb' - - 'app/models/content_retention_policy.rb' - - 'app/models/context.rb' - - 'app/models/conversation.rb' - - 'app/models/conversation_mute.rb' - - 'app/models/custom_emoji.rb' - - 'app/models/custom_emoji_category.rb' - - 'app/models/custom_emoji_filter.rb' - - 'app/models/custom_filter.rb' - - 'app/models/custom_filter_keyword.rb' - - 'app/models/custom_filter_status.rb' - - 'app/models/device.rb' - - 'app/models/domain_allow.rb' - - 'app/models/domain_block.rb' - - 'app/models/email_domain_block.rb' - - 'app/models/encrypted_message.rb' - - 'app/models/export.rb' - - 'app/models/extended_description.rb' - - 'app/models/favourite.rb' - - 'app/models/featured_tag.rb' - - 'app/models/feed.rb' - - 'app/models/follow.rb' - - 'app/models/follow_recommendation.rb' - - 'app/models/follow_recommendation_filter.rb' - - 'app/models/follow_recommendation_suppression.rb' - - 'app/models/follow_request.rb' - - 'app/models/form/account_batch.rb' - - 'app/models/form/admin_settings.rb' - - 'app/models/form/challenge.rb' - - 'app/models/form/custom_emoji_batch.rb' - - 'app/models/form/delete_confirmation.rb' - - 'app/models/form/domain_block_batch.rb' - - 'app/models/form/email_domain_block_batch.rb' - - 'app/models/form/ip_block_batch.rb' - - 'app/models/form/redirect.rb' - - 'app/models/form/status_filter_batch_action.rb' - - 'app/models/form/two_factor_confirmation.rb' - - 'app/models/home_feed.rb' - - 'app/models/identity.rb' - - 'app/models/import.rb' - - 'app/models/instance.rb' - - 'app/models/instance_filter.rb' - - 'app/models/invite.rb' - - 'app/models/invite_filter.rb' - - 'app/models/ip_block.rb' - - 'app/models/list.rb' - - 'app/models/list_account.rb' - - 'app/models/list_feed.rb' - - 'app/models/login_activity.rb' - - 'app/models/marker.rb' - - 'app/models/media_attachment.rb' - - 'app/models/mention.rb' - - 'app/models/message_franking.rb' - - 'app/models/mute.rb' - - 'app/models/notification.rb' - - 'app/models/one_time_key.rb' - - 'app/models/poll.rb' - - 'app/models/poll_vote.rb' - - 'app/models/preview_card.rb' - - 'app/models/preview_card_provider.rb' - - 'app/models/privacy_policy.rb' - - 'app/models/public_feed.rb' - - 'app/models/relationship_filter.rb' - - 'app/models/relay.rb' - - 'app/models/remote_follow.rb' - - 'app/models/report.rb' - - 'app/models/report_filter.rb' - - 'app/models/report_note.rb' - - 'app/models/scheduled_status.rb' - - 'app/models/search.rb' - - 'app/models/session_activation.rb' - - 'app/models/setting.rb' - - 'app/models/site_upload.rb' - - 'app/models/status.rb' - - 'app/models/status_edit.rb' - - 'app/models/status_pin.rb' - - 'app/models/status_stat.rb' - - 'app/models/status_trend.rb' - - 'app/models/tag.rb' - - 'app/models/tag_feed.rb' - - 'app/models/tag_follow.rb' - - 'app/models/tombstone.rb' - - 'app/models/trends.rb' - - 'app/models/trends/base.rb' - - 'app/models/trends/history.rb' - - 'app/models/trends/links.rb' - - 'app/models/trends/preview_card_batch.rb' - - 'app/models/trends/preview_card_filter.rb' - - 'app/models/trends/preview_card_provider_batch.rb' - - 'app/models/trends/preview_card_provider_filter.rb' - - 'app/models/trends/query.rb' - - 'app/models/trends/status_batch.rb' - - 'app/models/trends/status_filter.rb' - - 'app/models/trends/statuses.rb' - - 'app/models/trends/tag_batch.rb' - - 'app/models/trends/tag_filter.rb' - - 'app/models/trends/tags.rb' - - 'app/models/unavailable_domain.rb' - - 'app/models/user.rb' - - 'app/models/user_invite_request.rb' - - 'app/models/user_ip.rb' - - 'app/models/user_role.rb' - - 'app/models/web.rb' - - 'app/models/web/push_subscription.rb' - - 'app/models/web/setting.rb' - - 'app/models/webauthn_credential.rb' - - 'app/models/webhook.rb' - - 'app/policies/account_moderation_note_policy.rb' - - 'app/policies/account_policy.rb' - - 'app/policies/account_warning_policy.rb' - - 'app/policies/account_warning_preset_policy.rb' - - 'app/policies/admin/status_policy.rb' - - 'app/policies/announcement_policy.rb' - - 'app/policies/appeal_policy.rb' - - 'app/policies/application_policy.rb' - - 'app/policies/audit_log_policy.rb' - - 'app/policies/backup_policy.rb' - - 'app/policies/canonical_email_block_policy.rb' - - 'app/policies/custom_emoji_policy.rb' - - 'app/policies/dashboard_policy.rb' - - 'app/policies/delivery_policy.rb' - - 'app/policies/domain_allow_policy.rb' - - 'app/policies/domain_block_policy.rb' - - 'app/policies/email_domain_block_policy.rb' - - 'app/policies/follow_recommendation_policy.rb' - - 'app/policies/instance_policy.rb' - - 'app/policies/invite_policy.rb' - - 'app/policies/ip_block_policy.rb' - - 'app/policies/poll_policy.rb' - - 'app/policies/preview_card_policy.rb' - - 'app/policies/preview_card_provider_policy.rb' - - 'app/policies/relay_policy.rb' - - 'app/policies/report_note_policy.rb' - - 'app/policies/report_policy.rb' - - 'app/policies/rule_policy.rb' - - 'app/policies/settings_policy.rb' - - 'app/policies/status_policy.rb' - - 'app/policies/tag_policy.rb' - - 'app/policies/user_policy.rb' - - 'app/policies/user_role_policy.rb' - - 'app/policies/webhook_policy.rb' - - 'app/presenters/account_relationships_presenter.rb' - - 'app/presenters/activitypub/activity_presenter.rb' - - 'app/presenters/activitypub/collection_presenter.rb' - - 'app/presenters/familiar_followers_presenter.rb' - - 'app/presenters/filter_result_presenter.rb' - - 'app/presenters/initial_state_presenter.rb' - - 'app/presenters/instance_presenter.rb' - - 'app/presenters/status_relationships_presenter.rb' - - 'app/presenters/tag_relationships_presenter.rb' - - 'app/presenters/webhooks/event_presenter.rb' - - 'app/serializers/activitypub/accept_follow_serializer.rb' - - 'app/serializers/activitypub/activity_serializer.rb' - - 'app/serializers/activitypub/actor_serializer.rb' - - 'app/serializers/activitypub/add_serializer.rb' - - 'app/serializers/activitypub/block_serializer.rb' - - 'app/serializers/activitypub/collection_serializer.rb' - - 'app/serializers/activitypub/delete_actor_serializer.rb' - - 'app/serializers/activitypub/delete_serializer.rb' - - 'app/serializers/activitypub/device_serializer.rb' - - 'app/serializers/activitypub/emoji_serializer.rb' - - 'app/serializers/activitypub/encrypted_message_serializer.rb' - - 'app/serializers/activitypub/flag_serializer.rb' - - 'app/serializers/activitypub/follow_serializer.rb' - - 'app/serializers/activitypub/hashtag_serializer.rb' - - 'app/serializers/activitypub/image_serializer.rb' - - 'app/serializers/activitypub/like_serializer.rb' - - 'app/serializers/activitypub/move_serializer.rb' - - 'app/serializers/activitypub/note_serializer.rb' - - 'app/serializers/activitypub/one_time_key_serializer.rb' - - 'app/serializers/activitypub/outbox_serializer.rb' - - 'app/serializers/activitypub/public_key_serializer.rb' - - 'app/serializers/activitypub/reject_follow_serializer.rb' - - 'app/serializers/activitypub/remove_serializer.rb' - - 'app/serializers/activitypub/undo_announce_serializer.rb' - - 'app/serializers/activitypub/undo_block_serializer.rb' - - 'app/serializers/activitypub/undo_follow_serializer.rb' - - 'app/serializers/activitypub/undo_like_serializer.rb' - - 'app/serializers/activitypub/update_poll_serializer.rb' - - 'app/serializers/activitypub/update_serializer.rb' - - 'app/serializers/activitypub/vote_serializer.rb' - - 'app/serializers/initial_state_serializer.rb' - - 'app/serializers/manifest_serializer.rb' - - 'app/serializers/nodeinfo/discovery_serializer.rb' - - 'app/serializers/nodeinfo/serializer.rb' - - 'app/serializers/oembed_serializer.rb' - - 'app/serializers/rest/account_serializer.rb' - - 'app/serializers/rest/admin/account_serializer.rb' - - 'app/serializers/rest/admin/canonical_email_block_serializer.rb' - - 'app/serializers/rest/admin/cohort_serializer.rb' - - 'app/serializers/rest/admin/dimension_serializer.rb' - - 'app/serializers/rest/admin/domain_allow_serializer.rb' - - 'app/serializers/rest/admin/domain_block_serializer.rb' - - 'app/serializers/rest/admin/email_domain_block_serializer.rb' - - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb' - - 'app/serializers/rest/admin/ip_block_serializer.rb' - - 'app/serializers/rest/admin/ip_serializer.rb' - - 'app/serializers/rest/admin/measure_serializer.rb' - - 'app/serializers/rest/admin/report_serializer.rb' - - 'app/serializers/rest/admin/tag_serializer.rb' - - 'app/serializers/rest/admin/webhook_event_serializer.rb' - - 'app/serializers/rest/announcement_serializer.rb' - - 'app/serializers/rest/application_serializer.rb' - - 'app/serializers/rest/context_serializer.rb' - - 'app/serializers/rest/conversation_serializer.rb' - - 'app/serializers/rest/credential_account_serializer.rb' - - 'app/serializers/rest/custom_emoji_serializer.rb' - - 'app/serializers/rest/domain_block_serializer.rb' - - 'app/serializers/rest/encrypted_message_serializer.rb' - - 'app/serializers/rest/extended_description_serializer.rb' - - 'app/serializers/rest/familiar_followers_serializer.rb' - - 'app/serializers/rest/featured_tag_serializer.rb' - - 'app/serializers/rest/filter_keyword_serializer.rb' - - 'app/serializers/rest/filter_result_serializer.rb' - - 'app/serializers/rest/filter_serializer.rb' - - 'app/serializers/rest/filter_status_serializer.rb' - - 'app/serializers/rest/instance_serializer.rb' - - 'app/serializers/rest/keys/claim_result_serializer.rb' - - 'app/serializers/rest/keys/device_serializer.rb' - - 'app/serializers/rest/keys/query_result_serializer.rb' - - 'app/serializers/rest/list_serializer.rb' - - 'app/serializers/rest/marker_serializer.rb' - - 'app/serializers/rest/media_attachment_serializer.rb' - - 'app/serializers/rest/muted_account_serializer.rb' - - 'app/serializers/rest/notification_serializer.rb' - - 'app/serializers/rest/poll_serializer.rb' - - 'app/serializers/rest/preferences_serializer.rb' - - 'app/serializers/rest/preview_card_serializer.rb' - - 'app/serializers/rest/privacy_policy_serializer.rb' - - 'app/serializers/rest/reaction_serializer.rb' - - 'app/serializers/rest/relationship_serializer.rb' - - 'app/serializers/rest/report_serializer.rb' - - 'app/serializers/rest/role_serializer.rb' - - 'app/serializers/rest/rule_serializer.rb' - - 'app/serializers/rest/scheduled_status_serializer.rb' - - 'app/serializers/rest/search_serializer.rb' - - 'app/serializers/rest/status_edit_serializer.rb' - - 'app/serializers/rest/status_serializer.rb' - - 'app/serializers/rest/status_source_serializer.rb' - - 'app/serializers/rest/suggestion_serializer.rb' - - 'app/serializers/rest/tag_serializer.rb' - - 'app/serializers/rest/translation_serializer.rb' - - 'app/serializers/rest/trends/link_serializer.rb' - - 'app/serializers/rest/v1/filter_serializer.rb' - - 'app/serializers/rest/v1/instance_serializer.rb' - - 'app/serializers/rest/web_push_subscription_serializer.rb' - - 'app/serializers/web/notification_serializer.rb' - - 'app/serializers/webfinger_serializer.rb' - - 'app/services/account_search_service.rb' - - 'app/services/account_statuses_cleanup_service.rb' - - 'app/services/activitypub/fetch_featured_collection_service.rb' - - 'app/services/activitypub/fetch_featured_tags_collection_service.rb' - - 'app/services/activitypub/fetch_remote_account_service.rb' - - 'app/services/activitypub/fetch_remote_actor_service.rb' - - 'app/services/activitypub/fetch_remote_key_service.rb' - - 'app/services/activitypub/fetch_remote_poll_service.rb' - - 'app/services/activitypub/fetch_remote_status_service.rb' - - 'app/services/activitypub/fetch_replies_service.rb' - - 'app/services/activitypub/prepare_followers_synchronization_service.rb' - - 'app/services/activitypub/process_account_service.rb' - - 'app/services/activitypub/process_collection_service.rb' - - 'app/services/activitypub/process_status_update_service.rb' - - 'app/services/activitypub/synchronize_followers_service.rb' - - 'app/services/after_block_domain_from_account_service.rb' - - 'app/services/after_block_service.rb' - - 'app/services/after_unallow_domain_service.rb' - - 'app/services/app_sign_up_service.rb' - - 'app/services/appeal_service.rb' - - 'app/services/approve_appeal_service.rb' - - 'app/services/authorize_follow_service.rb' - - 'app/services/backup_service.rb' - - 'app/services/base_service.rb' - - 'app/services/batched_remove_status_service.rb' - - 'app/services/block_domain_service.rb' - - 'app/services/block_service.rb' - - 'app/services/bootstrap_timeline_service.rb' - - 'app/services/clear_domain_media_service.rb' - - 'app/services/concerns/payloadable.rb' - - 'app/services/create_featured_tag_service.rb' - - 'app/services/delete_account_service.rb' - - 'app/services/deliver_to_device_service.rb' - - 'app/services/fan_out_on_write_service.rb' - - 'app/services/favourite_service.rb' - - 'app/services/fetch_link_card_service.rb' - - 'app/services/fetch_oembed_service.rb' - - 'app/services/fetch_remote_status_service.rb' - - 'app/services/fetch_resource_service.rb' - - 'app/services/follow_migration_service.rb' - - 'app/services/follow_service.rb' - - 'app/services/import_service.rb' - - 'app/services/keys/claim_service.rb' - - 'app/services/keys/query_service.rb' - - 'app/services/move_service.rb' - - 'app/services/mute_service.rb' - - 'app/services/notify_service.rb' - - 'app/services/post_status_service.rb' - - 'app/services/precompute_feed_service.rb' - - 'app/services/process_hashtags_service.rb' - - 'app/services/process_mentions_service.rb' - - 'app/services/purge_domain_service.rb' - - 'app/services/reblog_service.rb' - - 'app/services/reject_follow_service.rb' - - 'app/services/remove_domains_from_followers_service.rb' - - 'app/services/remove_featured_tag_service.rb' - - 'app/services/remove_from_followers_service.rb' - - 'app/services/remove_status_service.rb' - - 'app/services/report_service.rb' - - 'app/services/resolve_account_service.rb' - - 'app/services/resolve_url_service.rb' - - 'app/services/search_service.rb' - - 'app/services/suspend_account_service.rb' - - 'app/services/tag_search_service.rb' - - 'app/services/translate_status_service.rb' - - 'app/services/unallow_domain_service.rb' - - 'app/services/unblock_domain_service.rb' - - 'app/services/unblock_service.rb' - - 'app/services/unfavourite_service.rb' - - 'app/services/unfollow_service.rb' - - 'app/services/unmute_service.rb' - - 'app/services/unsuspend_account_service.rb' - - 'app/services/update_account_service.rb' - - 'app/services/update_status_service.rb' - - 'app/services/verify_link_service.rb' - - 'app/services/vote_service.rb' - - 'app/services/webhook_service.rb' - - 'app/validators/blacklisted_email_validator.rb' - - 'app/validators/disallowed_hashtags_validator.rb' - - 'app/validators/domain_validator.rb' - - 'app/validators/ed25519_key_validator.rb' - - 'app/validators/ed25519_signature_validator.rb' - - 'app/validators/email_mx_validator.rb' - - 'app/validators/existing_username_validator.rb' - - 'app/validators/follow_limit_validator.rb' - - 'app/validators/import_validator.rb' - - 'app/validators/language_validator.rb' - - 'app/validators/note_length_validator.rb' - - 'app/validators/poll_validator.rb' - - 'app/validators/reaction_validator.rb' - - 'app/validators/registration_form_time_validator.rb' - - 'app/validators/status_length_validator.rb' - - 'app/validators/status_pin_validator.rb' - - 'app/validators/unique_username_validator.rb' - - 'app/validators/unreserved_username_validator.rb' - - 'app/validators/url_validator.rb' - - 'app/validators/vote_validator.rb' - - 'app/workers/account_deletion_worker.rb' - - 'app/workers/account_merging_worker.rb' - - 'app/workers/activitypub/account_raw_distribution_worker.rb' - - 'app/workers/activitypub/delivery_worker.rb' - - 'app/workers/activitypub/distribute_poll_update_worker.rb' - - 'app/workers/activitypub/distribution_worker.rb' - - 'app/workers/activitypub/fetch_replies_worker.rb' - - 'app/workers/activitypub/followers_synchronization_worker.rb' - - 'app/workers/activitypub/low_priority_delivery_worker.rb' - - 'app/workers/activitypub/migrated_follow_delivery_worker.rb' - - 'app/workers/activitypub/move_distribution_worker.rb' - - 'app/workers/activitypub/post_upgrade_worker.rb' - - 'app/workers/activitypub/processing_worker.rb' - - 'app/workers/activitypub/raw_distribution_worker.rb' - - 'app/workers/activitypub/status_update_distribution_worker.rb' - - 'app/workers/activitypub/synchronize_featured_collection_worker.rb' - - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb' - - 'app/workers/activitypub/update_distribution_worker.rb' - - 'app/workers/admin/account_deletion_worker.rb' - - 'app/workers/admin/domain_purge_worker.rb' - - 'app/workers/admin/suspension_worker.rb' - - 'app/workers/admin/unsuspension_worker.rb' - - 'app/workers/after_account_domain_block_worker.rb' - - 'app/workers/after_unallow_domain_worker.rb' - - 'app/workers/authorize_follow_worker.rb' - - 'app/workers/backup_worker.rb' - - 'app/workers/block_worker.rb' - - 'app/workers/bootstrap_timeline_worker.rb' - - 'app/workers/cache_buster_worker.rb' - - 'app/workers/concerns/exponential_backoff.rb' - - 'app/workers/delete_mute_worker.rb' - - 'app/workers/distribution_worker.rb' - - 'app/workers/domain_block_worker.rb' - - 'app/workers/domain_clear_media_worker.rb' - - 'app/workers/feed_insert_worker.rb' - - 'app/workers/fetch_reply_worker.rb' - - 'app/workers/import/relationship_worker.rb' - - 'app/workers/import_worker.rb' - - 'app/workers/link_crawl_worker.rb' - - 'app/workers/local_notification_worker.rb' - - 'app/workers/merge_worker.rb' - - 'app/workers/move_worker.rb' - - 'app/workers/mute_worker.rb' - - 'app/workers/poll_expiration_notify_worker.rb' - - 'app/workers/post_process_media_worker.rb' - - 'app/workers/publish_announcement_reaction_worker.rb' - - 'app/workers/publish_scheduled_announcement_worker.rb' - - 'app/workers/publish_scheduled_status_worker.rb' - - 'app/workers/push_conversation_worker.rb' - - 'app/workers/push_encrypted_message_worker.rb' - - 'app/workers/push_update_worker.rb' - - 'app/workers/redownload_avatar_worker.rb' - - 'app/workers/redownload_header_worker.rb' - - 'app/workers/redownload_media_worker.rb' - - 'app/workers/refollow_worker.rb' - - 'app/workers/regeneration_worker.rb' - - 'app/workers/remote_account_refresh_worker.rb' - - 'app/workers/removal_worker.rb' - - 'app/workers/remove_featured_tag_worker.rb' - - 'app/workers/resolve_account_worker.rb' - - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb' - - 'app/workers/scheduler/follow_recommendations_scheduler.rb' - - 'app/workers/scheduler/indexing_scheduler.rb' - - 'app/workers/scheduler/instance_refresh_scheduler.rb' - - 'app/workers/scheduler/ip_cleanup_scheduler.rb' - - 'app/workers/scheduler/pghero_scheduler.rb' - - 'app/workers/scheduler/scheduled_statuses_scheduler.rb' - - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb' - - 'app/workers/scheduler/trends/refresh_scheduler.rb' - - 'app/workers/scheduler/trends/review_notifications_scheduler.rb' - - 'app/workers/scheduler/user_cleanup_scheduler.rb' - - 'app/workers/scheduler/vacuum_scheduler.rb' - - 'app/workers/thread_resolve_worker.rb' - - 'app/workers/trigger_webhook_worker.rb' - - 'app/workers/unfavourite_worker.rb' - - 'app/workers/unfollow_follow_worker.rb' - - 'app/workers/unmerge_worker.rb' - - 'app/workers/unpublish_announcement_worker.rb' - - 'app/workers/verify_account_links_worker.rb' - - 'app/workers/web/push_notification_worker.rb' - - 'app/workers/webhooks/delivery_worker.rb' - - 'db/migrate/20160220174730_create_accounts.rb' - - 'db/migrate/20160220211917_create_statuses.rb' - - 'db/migrate/20160221003140_create_users.rb' - - 'db/migrate/20160221003621_create_follows.rb' - - 'db/migrate/20160222122600_create_stream_entries.rb' - - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb' - - 'db/migrate/20160223162837_add_metadata_to_statuses.rb' - - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb' - - 'db/migrate/20160223165723_add_url_to_statuses.rb' - - 'db/migrate/20160223165855_add_url_to_accounts.rb' - - 'db/migrate/20160223171800_create_favourites.rb' - - 'db/migrate/20160224223247_create_mentions.rb' - - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb' - - 'db/migrate/20160305115639_add_devise_to_users.rb' - - 'db/migrate/20160306172223_create_doorkeeper_tables.rb' - - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb' - - 'db/migrate/20160314164231_add_owner_to_application.rb' - - 'db/migrate/20160316103650_add_missing_indices.rb' - - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb' - - 'db/migrate/20160325130944_add_admin_to_users.rb' - - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb' - - 'db/migrate/20160905150353_create_media_attachments.rb' - - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb' - - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb' - - 'db/migrate/20160926213048_remove_owner_from_application.rb' - - 'db/migrate/20161003142332_add_confirmable_to_users.rb' - - 'db/migrate/20161003145426_create_blocks.rb' - - 'db/migrate/20161006213403_rails_settings_migration.rb' - - 'db/migrate/20161009120834_create_domain_blocks.rb' - - 'db/migrate/20161027172456_add_silenced_to_accounts.rb' - - 'db/migrate/20161104173623_create_tags.rb' - - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb' - - 'db/migrate/20161116162355_add_locale_to_users.rb' - - 'db/migrate/20161119211120_create_notifications.rb' - - 'db/migrate/20161122163057_remove_unneeded_indexes.rb' - - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb' - - 'db/migrate/20161128103007_create_subscriptions.rb' - - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb' - - 'db/migrate/20161130185319_add_visibility_to_statuses.rb' - - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb' - - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb' - - 'db/migrate/20161205214545_add_suspended_to_accounts.rb' - - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb' - - 'db/migrate/20161222201034_add_locked_to_accounts.rb' - - 'db/migrate/20161222204147_create_follow_requests.rb' - - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb' - - 'db/migrate/20170109120109_create_web_settings.rb' - - 'db/migrate/20170112154826_migrate_settings.rb' - - 'db/migrate/20170114194937_add_application_to_statuses.rb' - - 'db/migrate/20170114203041_add_website_to_oauth_application.rb' - - 'db/migrate/20170119214911_create_preview_cards.rb' - - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb' - - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb' - - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb' - - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb' - - 'db/migrate/20170205175257_remove_devices.rb' - - 'db/migrate/20170209184350_add_reply_to_statuses.rb' - - 'db/migrate/20170214110202_create_reports.rb' - - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb' - - 'db/migrate/20170301222600_create_mutes.rb' - - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb' - - 'db/migrate/20170304202101_add_type_to_media_attachments.rb' - - 'db/migrate/20170317193015_add_search_index_to_accounts.rb' - - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb' - - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb' - - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb' - - 'db/migrate/20170322162804_add_search_index_to_tags.rb' - - 'db/migrate/20170330021336_add_counter_caches.rb' - - 'db/migrate/20170330163835_create_imports.rb' - - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb' - - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb' - - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb' - - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb' - - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb' - - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb' - - 'db/migrate/20170414132105_add_language_to_statuses.rb' - - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb' - - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb' - - 'db/migrate/20170424003227_create_account_domain_blocks.rb' - - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb' - - 'db/migrate/20170425131920_add_media_attachment_meta.rb' - - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb' - - 'db/migrate/20170427011934_re_add_owner_to_application.rb' - - 'db/migrate/20170506235850_create_conversations.rb' - - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb' - - 'db/migrate/20170507141759_optimize_index_subscriptions.rb' - - 'db/migrate/20170508230434_create_conversation_mutes.rb' - - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb' - - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb' - - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb' - - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb' - - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb' - - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb' - - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb' - - 'db/migrate/20170623152212_create_session_activations.rb' - - 'db/migrate/20170624134742_add_description_to_session_activations.rb' - - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb' - - 'db/migrate/20170711225116_fix_null_booleans.rb' - - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb' - - 'db/migrate/20170713175513_create_web_push_subscriptions.rb' - - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb' - - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb' - - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' - - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb' - - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb' - - 'db/migrate/20170823162448_create_status_pins.rb' - - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb' - - 'db/migrate/20170829215220_remove_status_pins_account_index.rb' - - 'db/migrate/20170901141119_truncate_preview_cards.rb' - - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb' - - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb' - - 'db/migrate/20170905165803_add_local_to_statuses.rb' - - 'db/migrate/20170913000752_create_site_uploads.rb' - - 'db/migrate/20170917153509_create_custom_emojis.rb' - - 'db/migrate/20170918125918_ids_to_bigints.rb' - - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb' - - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb' - - 'db/migrate/20170924022025_ids_to_bigints2.rb' - - 'db/migrate/20170927215609_add_description_to_media_attachments.rb' - - 'db/migrate/20170928082043_create_email_domain_blocks.rb' - - 'db/migrate/20171005102658_create_account_moderation_notes.rb' - - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' - - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb' - - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb' - - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb' - - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb' - - 'db/migrate/20171028221157_add_reblogs_to_follows.rb' - - 'db/migrate/20171107143332_add_memorial_to_accounts.rb' - - 'db/migrate/20171107143624_add_disabled_to_users.rb' - - 'db/migrate/20171109012327_add_moderator_to_accounts.rb' - - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb' - - 'db/migrate/20171114231651_create_lists.rb' - - 'db/migrate/20171116161857_create_list_accounts.rb' - - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb' - - 'db/migrate/20171119172437_create_admin_action_logs.rb' - - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb' - - 'db/migrate/20171125024930_create_invites.rb' - - 'db/migrate/20171125031751_add_invite_id_to_users.rb' - - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb' - - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb' - - 'db/migrate/20171129172043_add_index_on_stream_entries.rb' - - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb' - - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb' - - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb' - - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb' - - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180109143959_add_remember_token_to_users.rb' - - 'db/migrate/20180204034416_create_identities.rb' - - 'db/migrate/20180206000000_change_user_id_nonnullable.rb' - - 'db/migrate/20180211015820_create_backups.rb' - - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb' - - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb' - - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb' - - 'db/migrate/20180402040909_create_report_notes.rb' - - 'db/migrate/20180410204633_add_fields_to_accounts.rb' - - 'db/migrate/20180416210259_add_uri_to_relationships.rb' - - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb' - - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb' - - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb' - - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb' - - 'db/migrate/20180528141303_fix_accounts_unique_index.rb' - - 'db/migrate/20180608213548_reject_following_blocked_users.rb' - - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb' - - 'db/migrate/20180615122121_add_autofollow_to_invites.rb' - - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb' - - 'db/migrate/20180617162849_remove_unused_indexes.rb' - - 'db/migrate/20180628181026_create_custom_filters.rb' - - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb' - - 'db/migrate/20180711152640_create_relays.rb' - - 'db/migrate/20180808175627_create_account_pins.rb' - - 'db/migrate/20180812123222_change_relays_enabled.rb' - - 'db/migrate/20180812162710_create_status_stats.rb' - - 'db/migrate/20180812173710_copy_status_stats.rb' - - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb' - - 'db/migrate/20180820232245_add_foreign_key_indices.rb' - - 'db/migrate/20180831171112_create_bookmarks.rb' - - 'db/migrate/20180929222014_create_account_conversations.rb' - - 'db/migrate/20181007025445_create_pghero_space_stats.rb' - - 'db/migrate/20181010141500_add_silent_to_mentions.rb' - - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb' - - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb' - - 'db/migrate/20181024224956_migrate_account_conversations.rb' - - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb' - - 'db/migrate/20181116165755_create_account_stats.rb' - - 'db/migrate/20181116173541_copy_account_stats.rb' - - 'db/migrate/20181127130500_identity_id_to_bigint.rb' - - 'db/migrate/20181127165847_add_show_replies_to_lists.rb' - - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb' - - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb' - - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb' - - 'db/migrate/20181204215309_create_account_tag_stats.rb' - - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb' - - 'db/migrate/20181213184704_create_account_warnings.rb' - - 'db/migrate/20181213185533_create_account_warning_presets.rb' - - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb' - - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb' - - 'db/migrate/20190103124649_create_scheduled_statuses.rb' - - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb' - - 'db/migrate/20190117114553_create_tombstones.rb' - - 'db/migrate/20190201012802_add_overwrite_to_imports.rb' - - 'db/migrate/20190203180359_create_featured_tags.rb' - - 'db/migrate/20190225031541_create_polls.rb' - - 'db/migrate/20190225031625_create_poll_votes.rb' - - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb' - - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb' - - 'db/migrate/20190306145741_add_lock_version_to_polls.rb' - - 'db/migrate/20190307234537_add_approved_to_users.rb' - - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb' - - 'db/migrate/20190316190352_create_account_identity_proofs.rb' - - 'db/migrate/20190317135723_add_uri_to_reports.rb' - - 'db/migrate/20190403141604_add_comment_to_invites.rb' - - 'db/migrate/20190409054914_create_user_invite_requests.rb' - - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb' - - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb' - - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' - - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb' - - 'db/migrate/20190627222225_create_custom_emoji_categories.rb' - - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb' - - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb' - - 'db/migrate/20190705002136_create_domain_allows.rb' - - 'db/migrate/20190715164535_add_instance_actor.rb' - - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb' - - 'db/migrate/20190729185330_add_score_to_tags.rb' - - 'db/migrate/20190805123746_add_capabilities_to_tags.rb' - - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb' - - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb' - - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb' - - 'db/migrate/20190820003045_update_statuses_index.rb' - - 'db/migrate/20190823221802_add_local_index_to_statuses.rb' - - 'db/migrate/20190901035623_add_max_score_to_tags.rb' - - 'db/migrate/20190904222339_create_markers.rb' - - 'db/migrate/20190914202517_create_account_migrations.rb' - - 'db/migrate/20190915194355_create_account_aliases.rb' - - 'db/migrate/20190917213523_add_remember_token_index.rb' - - 'db/migrate/20190927232842_add_voters_count_to_polls.rb' - - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb' - - 'db/migrate/20191007013357_update_pt_locales.rb' - - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb' - - 'db/migrate/20191212003415_increase_backup_size.rb' - - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb' - - 'db/migrate/20191218153258_create_announcements.rb' - - 'db/migrate/20200113125135_create_announcement_mutes.rb' - - 'db/migrate/20200114113335_create_announcement_reactions.rb' - - 'db/migrate/20200119112504_add_public_index_to_statuses.rb' - - 'db/migrate/20200126203551_add_published_at_to_announcements.rb' - - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb' - - 'db/migrate/20200309150742_add_forwarded_to_reports.rb' - - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb' - - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb' - - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb' - - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb' - - 'db/migrate/20200407201300_create_unavailable_domains.rb' - - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb' - - 'db/migrate/20200417125749_add_storage_schema_version.rb' - - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb' - - 'db/migrate/20200510110808_reset_web_app_secret.rb' - - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb' - - 'db/migrate/20200516180352_create_devices.rb' - - 'db/migrate/20200516183822_create_one_time_keys.rb' - - 'db/migrate/20200518083523_create_encrypted_messages.rb' - - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb' - - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb' - - 'db/migrate/20200601222558_create_system_keys.rb' - - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb' - - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb' - - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb' - - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb' - - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb' - - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb' - - 'db/migrate/20200628133322_create_account_notes.rb' - - 'db/migrate/20200630190240_create_webauthn_credentials.rb' - - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb' - - 'db/migrate/20200908193330_create_account_deletion_requests.rb' - - 'db/migrate/20200917192924_add_notify_to_follows.rb' - - 'db/migrate/20200917193034_add_type_to_notifications.rb' - - 'db/migrate/20200917222316_add_index_notifications_on_type.rb' - - 'db/migrate/20201008202037_create_ip_blocks.rb' - - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb' - - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb' - - 'db/migrate/20201206004238_create_instances.rb' - - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb' - - 'db/migrate/20210221045109_create_rules.rb' - - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb' - - 'db/migrate/20210322164601_create_account_summaries.rb' - - 'db/migrate/20210323114347_create_follow_recommendations.rb' - - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb' - - 'db/migrate/20210416200740_create_canonical_email_blocks.rb' - - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb' - - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb' - - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb' - - 'db/migrate/20210609202149_create_login_activities.rb' - - 'db/migrate/20210616214526_create_user_ips.rb' - - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb' - - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb' - - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb' - - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb' - - 'db/migrate/20210908220918_create_status_edits.rb' - - 'db/migrate/20211031031021_create_preview_card_providers.rb' - - 'db/migrate/20211112011713_add_language_to_preview_cards.rb' - - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb' - - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb' - - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb' - - 'db/migrate/20211231080958_add_category_to_reports.rb' - - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb' - - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb' - - 'db/migrate/20220115125341_fix_account_warning_actions.rb' - - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb' - - 'db/migrate/20220124141035_create_appeals.rb' - - 'db/migrate/20220202200743_add_trendable_to_accounts.rb' - - 'db/migrate/20220202200926_add_trendable_to_statuses.rb' - - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb' - - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb' - - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb' - - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb' - - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' - - 'db/migrate/20220304195405_migrate_hide_network_preference.rb' - - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb' - - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb' - - 'db/migrate/20220316233212_update_kurdish_locales.rb' - - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb' - - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb' - - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb' - - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb' - - 'db/migrate/20220606044941_create_webhooks.rb' - - 'db/migrate/20220611210335_create_user_roles.rb' - - 'db/migrate/20220611212541_add_role_id_to_users.rb' - - 'db/migrate/20220613110628_create_custom_filter_keywords.rb' - - 'db/migrate/20220613110711_migrate_custom_filters.rb' - - 'db/migrate/20220613110834_add_action_to_custom_filters.rb' - - 'db/migrate/20220710102457_add_display_name_to_tags.rb' - - 'db/migrate/20220714171049_create_tag_follows.rb' - - 'db/migrate/20220808101323_create_custom_filter_statuses.rb' - - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' - - 'db/migrate/20220824233535_create_status_trends.rb' - - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb' - - 'db/migrate/20220829192633_add_languages_to_follows.rb' - - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb' - - 'db/migrate/20221006061337_create_preview_card_trends.rb' - - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb' - - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb' - - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb' - - 'db/migrate/20221104133904_add_name_to_featured_tags.rb' - - 'db/post_migrate/20180813113448_copy_status_stats_cleanup.rb' - - 'db/post_migrate/20181116184611_copy_account_stats_cleanup.rb' - - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' - - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb' - - 'db/post_migrate/20190706233204_drop_stream_entries.rb' - - 'db/post_migrate/20190715031050_drop_subscriptions.rb' - - 'db/post_migrate/20190901040524_remove_score_from_tags.rb' - - 'db/post_migrate/20190927124642_remove_invalid_web_push_subscription.rb' - - 'db/post_migrate/20200917193528_migrate_notifications_type.rb' - - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb' - - 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb' - - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb' - - 'db/post_migrate/20210502233513_drop_account_tag_stats.rb' - - 'db/post_migrate/20210507001928_remove_hub_url_from_accounts.rb' - - 'db/post_migrate/20210526193025_remove_lock_version_from_account_stats.rb' - - 'db/post_migrate/20210616214135_remove_current_sign_in_ip_from_users.rb' - - 'db/post_migrate/20210808071221_clear_orphaned_account_notes.rb' - - 'db/post_migrate/20211126000907_drop_account_identity_proofs.rb' - - 'db/post_migrate/20220109213908_remove_action_taken_from_reports.rb' - - 'db/post_migrate/20220118183010_remove_index_users_on_remember_token.rb' - - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb' - - 'db/post_migrate/20220202201015_remove_trust_level_from_accounts.rb' - - 'db/post_migrate/20220303203437_remove_media_attachments_changed_from_status_edits.rb' - - 'db/post_migrate/20220307083603_optimize_null_index_conversations_uri.rb' - - 'db/post_migrate/20220310060545_optimize_null_index_statuses_in_reply_to_account_id.rb' - - 'db/post_migrate/20220310060556_optimize_null_index_statuses_in_reply_to_id.rb' - - 'db/post_migrate/20220310060614_optimize_null_index_media_attachments_scheduled_status_id.rb' - - 'db/post_migrate/20220310060626_optimize_null_index_media_attachments_shortcode.rb' - - 'db/post_migrate/20220310060641_optimize_null_index_users_reset_password_token.rb' - - 'db/post_migrate/20220310060653_optimize_null_index_users_created_by_application_id.rb' - - 'db/post_migrate/20220310060706_optimize_null_index_statuses_uri.rb' - - 'db/post_migrate/20220310060722_optimize_null_index_accounts_moved_to_account_id.rb' - - 'db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb' - - 'db/post_migrate/20220310060750_optimize_null_index_accounts_url.rb' - - 'db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb' - - 'db/post_migrate/20220310060833_optimize_null_index_announcement_reactions_custom_emoji_id.rb' - - 'db/post_migrate/20220310060854_optimize_null_index_appeals_approved_by_account_id.rb' - - 'db/post_migrate/20220310060913_optimize_null_index_account_migrations_target_account_id.rb' - - 'db/post_migrate/20220310060926_optimize_null_index_appeals_rejected_by_account_id.rb' - - 'db/post_migrate/20220310060939_optimize_null_index_list_accounts_follow_id.rb' - - 'db/post_migrate/20220310060959_optimize_null_index_web_push_subscriptions_access_token_id.rb' - - 'db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb' - - 'db/post_migrate/20220429101850_clear_email_domain_blocks.rb' - - 'db/post_migrate/20220527114923_remove_filtered_languages_from_users.rb' - - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb' - - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb' - - 'db/post_migrate/20220617202502_migrate_roles.rb' - - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb' - - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb' - - 'db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb' - - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' - - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - - 'lib/active_record/batches.rb' - - 'lib/active_record/database_tasks_extensions.rb' - - 'lib/chewy/strategy/mastodon.rb' - - 'lib/cli.rb' - - 'lib/devise/two_factor_ldap_authenticatable.rb' - - 'lib/devise/two_factor_pam_authenticatable.rb' - - 'lib/exceptions.rb' - - 'lib/generators/post_deployment_migration_generator.rb' - - 'lib/mastodon/accounts_cli.rb' - - 'lib/mastodon/cache_cli.rb' - - 'lib/mastodon/canonical_email_blocks_cli.rb' - - 'lib/mastodon/cli_helper.rb' - - 'lib/mastodon/domains_cli.rb' - - 'lib/mastodon/email_domain_blocks_cli.rb' - - 'lib/mastodon/emoji_cli.rb' - - 'lib/mastodon/feeds_cli.rb' - - 'lib/mastodon/ip_blocks_cli.rb' - - 'lib/mastodon/maintenance_cli.rb' - - 'lib/mastodon/media_cli.rb' - - 'lib/mastodon/premailer_webpack_strategy.rb' - - 'lib/mastodon/preview_cards_cli.rb' - - 'lib/mastodon/rack_middleware.rb' - - 'lib/mastodon/search_cli.rb' - - 'lib/mastodon/settings_cli.rb' - - 'lib/mastodon/sidekiq_middleware.rb' - - 'lib/mastodon/snowflake.rb' - - 'lib/mastodon/statuses_cli.rb' - - 'lib/mastodon/upgrade_cli.rb' - - 'lib/mastodon/version.rb' - - 'lib/paperclip/attachment_extensions.rb' - - 'lib/paperclip/blurhash_transcoder.rb' - - 'lib/paperclip/color_extractor.rb' - - 'lib/paperclip/gif_transcoder.rb' - - 'lib/paperclip/image_extractor.rb' - - 'lib/paperclip/lazy_thumbnail.rb' - - 'lib/paperclip/response_with_limit_adapter.rb' - - 'lib/paperclip/type_corrector.rb' - - 'lib/paperclip/url_generator_extensions.rb' - - 'lib/public_file_server_middleware.rb' - - 'lib/rails/engine_extensions.rb' - - 'lib/redis/namespace_extensions.rb' - - 'lib/sanitize_ext/sanitize_config.rb' - - 'lib/simple_navigation/item_extensions.rb' - - 'lib/terrapin/multi_pipe_extensions.rb' - - 'lib/webpacker/helper_extensions.rb' - - 'lib/webpacker/manifest_extensions.rb' - # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowedVars. Style/FetchEnvVar: From 75e5a6e43738c278390c03c96d5d3e8575a2783c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Mar 2023 22:46:52 +0100 Subject: [PATCH 0699/1220] Change user backups to use expiring URLs for download when possible (#24136) --- app/controllers/backups_controller.rb | 27 ++++++++++++++++++++ app/models/backup.rb | 2 +- app/views/settings/exports/show.html.haml | 2 +- app/views/user_mailer/backup_ready.html.haml | 2 +- app/views/user_mailer/backup_ready.text.erb | 2 +- config/routes.rb | 1 + 6 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 app/controllers/backups_controller.rb diff --git a/app/controllers/backups_controller.rb b/app/controllers/backups_controller.rb new file mode 100644 index 0000000000..2f4b400b8d --- /dev/null +++ b/app/controllers/backups_controller.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class BackupsController < ApplicationController + include RoutingHelper + + skip_before_action :require_functional! + + before_action :authenticate_user! + before_action :set_backup + + def download + case Paperclip::Attachment.default_options[:storage] + when :s3 + redirect_to @backup.dump.expiring_url(10) + when :fog + redirect_to @backup.dump.expiring_url(Time.now.utc + 10) + when :filesystem + redirect_to full_asset_url(@backup.dump.url) + end + end + + private + + def set_backup + @backup = current_user.backups.find(params[:id]) + end +end diff --git a/app/models/backup.rb b/app/models/backup.rb index bec3cbfe5e..dca06eb588 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -18,6 +18,6 @@ class Backup < ApplicationRecord belongs_to :user, inverse_of: :backups - has_attached_file :dump + has_attached_file :dump, s3_permissions: 'private' validates_attachment_content_type :dump, content_type: /\Aapplication/ end diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml index c49613fdc0..d7b59af270 100644 --- a/app/views/settings/exports/show.html.haml +++ b/app/views/settings/exports/show.html.haml @@ -64,6 +64,6 @@ %td= l backup.created_at - if backup.processed? %td= number_to_human_size backup.dump_file_size - %td= table_link_to 'download', t('exports.archive_takeout.download'), backup.dump.url + %td= table_link_to 'download', t('exports.archive_takeout.download'), download_backup_url(backup) - else %td{ colspan: 2 }= t('exports.archive_takeout.in_progress') diff --git a/app/views/user_mailer/backup_ready.html.haml b/app/views/user_mailer/backup_ready.html.haml index 85140b08be..465ead2c8b 100644 --- a/app/views/user_mailer/backup_ready.html.haml +++ b/app/views/user_mailer/backup_ready.html.haml @@ -55,5 +55,5 @@ %tbody %tr %td.button-primary - = link_to full_asset_url(@backup.dump.url) do + = link_to download_backup_url(@backup) do %span= t 'exports.archive_takeout.download' diff --git a/app/views/user_mailer/backup_ready.text.erb b/app/views/user_mailer/backup_ready.text.erb index eb89e7d743..8ebbaae85a 100644 --- a/app/views/user_mailer/backup_ready.text.erb +++ b/app/views/user_mailer/backup_ready.text.erb @@ -4,4 +4,4 @@ <%= t 'user_mailer.backup_ready.explanation' %> -=> <%= full_asset_url(@backup.dump.url) %> +=> <%= download_backup_url(@backup) %> diff --git a/config/routes.rb b/config/routes.rb index ea595e1e12..8850545ca7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -220,6 +220,7 @@ Rails.application.routes.draw do resource :statuses_cleanup, controller: :statuses_cleanup, only: [:show, :update] get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy, format: false + get '/backups/:id/download', to: 'backups#download', as: :download_backup, format: false resource :authorize_interaction, only: [:show, :create] resource :share, only: [:show, :create] From 8fdf49b11deca38f4dcb39179daf8c56de25b938 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 16 Mar 2023 22:47:01 +0100 Subject: [PATCH 0700/1220] Add warning for object storage misconfiguration (#24137) --- app/lib/admin/system_check.rb | 1 + .../admin/system_check/media_privacy_check.rb | 105 ++++++++++++++++++ app/lib/admin/system_check/message.rb | 11 +- app/views/admin/dashboard/index.html.haml | 2 +- config/locales/en.yml | 6 + 5 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 app/lib/admin/system_check/media_privacy_check.rb diff --git a/app/lib/admin/system_check.rb b/app/lib/admin/system_check.rb index f512635abb..89dfcef9f1 100644 --- a/app/lib/admin/system_check.rb +++ b/app/lib/admin/system_check.rb @@ -2,6 +2,7 @@ class Admin::SystemCheck ACTIVE_CHECKS = [ + Admin::SystemCheck::MediaPrivacyCheck, Admin::SystemCheck::DatabaseSchemaCheck, Admin::SystemCheck::SidekiqProcessCheck, Admin::SystemCheck::RulesCheck, diff --git a/app/lib/admin/system_check/media_privacy_check.rb b/app/lib/admin/system_check/media_privacy_check.rb new file mode 100644 index 0000000000..1df05b120e --- /dev/null +++ b/app/lib/admin/system_check/media_privacy_check.rb @@ -0,0 +1,105 @@ +# frozen_string_literal: true + +class Admin::SystemCheck::MediaPrivacyCheck < Admin::SystemCheck::BaseCheck + include RoutingHelper + + def skip? + !current_user.can?(:view_devops) + end + + def pass? + check_media_uploads! + @failure_message.nil? + end + + def message + Admin::SystemCheck::Message.new(@failure_message, @failure_value, @failure_action, true) + end + + private + + def check_media_uploads! + if Rails.configuration.x.use_s3 + check_media_listing_inaccessible_s3! + else + check_media_listing_inaccessible! + end + end + + def check_media_listing_inaccessible! + full_url = full_asset_url(media_attachment.file.url(:original, false)) + + # Check if we can list the uploaded file. If true, that's an error + directory_url = Addressable::URI.parse(full_url) + directory_url.query = nil + filename = directory_url.path.gsub(%r{.*/}, '') + directory_url.path = directory_url.path.gsub(%r{/[^/]+\Z}, '/') + Request.new(:get, directory_url, allow_local: true).perform do |res| + if res.truncated_body&.include?(filename) + @failure_message = use_storage? ? :upload_check_privacy_error_object_storage : :upload_check_privacy_error + @failure_action = 'https://docs.joinmastodon.org/admin/optional/object-storage/#FS' + end + end + rescue + nil + end + + def check_media_listing_inaccessible_s3! + urls_to_check = [] + paperclip_options = Paperclip::Attachment.default_options + s3_protocol = paperclip_options[:s3_protocol] + s3_host_alias = paperclip_options[:s3_host_alias] + s3_host_name = paperclip_options[:s3_host_name] + bucket_name = paperclip_options.dig(:s3_credentials, :bucket) + + urls_to_check << "#{s3_protocol}://#{s3_host_alias}/" if s3_host_alias.present? + urls_to_check << "#{s3_protocol}://#{s3_host_name}/#{bucket_name}/" + urls_to_check.uniq.each do |full_url| + check_s3_listing!(full_url) + break if @failure_message.present? + end + rescue + nil + end + + def check_s3_listing!(full_url) + bucket_url = Addressable::URI.parse(full_url) + bucket_url.path = bucket_url.path.delete_suffix(media_attachment.file.path(:original)) + bucket_url.query = "max-keys=1&x-random=#{SecureRandom.hex(10)}" + Request.new(:get, bucket_url, allow_local: true).perform do |res| + if res.truncated_body&.include?('ListBucketResult') + @failure_message = :upload_check_privacy_error_object_storage + @failure_action = 'https://docs.joinmastodon.org/admin/optional/object-storage/#S3' + end + end + end + + def media_attachment + @media_attachment ||= begin + attachment = Account.representative.media_attachments.first + if attachment.present? + attachment.touch # rubocop:disable Rails/SkipsModelValidations + attachment + else + create_test_attachment! + end + end + end + + def create_test_attachment! + Tempfile.create(%w(test-upload .jpg), binmode: true) do |tmp_file| + tmp_file.write( + Base64.decode64( + '/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' \ + 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' \ + 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' \ + 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' \ + 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' \ + 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==' + ) + ) + tmp_file.flush + Account.representative.media_attachments.create!(file: tmp_file) + end + end +end diff --git a/app/lib/admin/system_check/message.rb b/app/lib/admin/system_check/message.rb index bfcad3bf3d..ad8d4b6073 100644 --- a/app/lib/admin/system_check/message.rb +++ b/app/lib/admin/system_check/message.rb @@ -1,11 +1,12 @@ # frozen_string_literal: true class Admin::SystemCheck::Message - attr_reader :key, :value, :action + attr_reader :key, :value, :action, :critical - def initialize(key, value = nil, action = nil) - @key = key - @value = value - @action = action + def initialize(key, value = nil, action = nil, critical = false) + @key = key + @value = value + @action = action + @critical = critical end end diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml index e05215327f..ab7cb9de65 100644 --- a/app/views/admin/dashboard/index.html.haml +++ b/app/views/admin/dashboard/index.html.haml @@ -12,7 +12,7 @@ - unless @system_checks.empty? .flash-message-stack - @system_checks.each do |message| - .flash-message.warning + .flash-message{ class: message.critical ? 'alert' : 'warning' } = t("admin.system_checks.#{message.key}.message_html", value: message.value ? content_tag(:strong, message.value) : nil) - if message.action = link_to t("admin.system_checks.#{message.key}.action"), message.action diff --git a/config/locales/en.yml b/config/locales/en.yml index 87231836ae..c6b1139561 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -812,6 +812,12 @@ en: message_html: You haven't defined any server rules. sidekiq_process_check: message_html: No Sidekiq process running for the %{value} queue(s). Please review your Sidekiq configuration + upload_check_privacy_error: + action: Check here for more information + message_html: "Your web server is misconfigured. The privacy of your users is at risk." + upload_check_privacy_error_object_storage: + action: Check here for more information + message_html: "Your object storage is misconfigured. The privacy of your users is at risk." tags: review: Review status updated_msg: Hashtag settings updated successfully From 681dcd3fa35e886a21853ca829ff1be7f220e83a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 16 Mar 2023 18:07:25 -0400 Subject: [PATCH 0701/1220] Ignore additional Style/OptionalBooleanParameter (#24138) --- .rubocop_todo.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1df2a7b107..e41c10e1c3 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2222,6 +2222,7 @@ Style/OptionalBooleanParameter: Exclude: - 'app/helpers/admin/account_moderation_notes_helper.rb' - 'app/helpers/jsonld_helper.rb' + - 'app/lib/admin/system_check/message.rb' - 'app/lib/request.rb' - 'app/lib/webfinger.rb' - 'app/services/block_domain_service.rb' From 8f97ffe91e79c0418666f64b5830d3e74fcc83ba Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 16 Mar 2023 11:07:24 +0100 Subject: [PATCH 0702/1220] [Glitch] Replace `Status#translatable?` with language matrix in separate endpoint Port bd047acc356671727c112336bb237f979bba517d to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/server.js | 27 +++++++++++++++++++ .../glitch/components/status_content.jsx | 13 +++++++-- .../flavours/glitch/features/ui/index.jsx | 3 ++- .../flavours/glitch/reducers/server.js | 9 +++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/server.js b/app/javascript/flavours/glitch/actions/server.js index 31d4aea100..091af0f0fe 100644 --- a/app/javascript/flavours/glitch/actions/server.js +++ b/app/javascript/flavours/glitch/actions/server.js @@ -5,6 +5,10 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS'; +export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL'; + export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; @@ -37,6 +41,29 @@ const fetchServerFail = error => ({ error, }); +export const fetchServerTranslationLanguages = () => (dispatch, getState) => { + dispatch(fetchServerTranslationLanguagesRequest()); + + api(getState) + .get('/api/v1/instance/translation_languages').then(({ data }) => { + dispatch(fetchServerTranslationLanguagesSuccess(data)); + }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err))); +}; + +const fetchServerTranslationLanguagesRequest = () => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, +}); + +const fetchServerTranslationLanguagesSuccess = translationLanguages => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, + translationLanguages, +}); + +const fetchServerTranslationLanguagesFail = error => ({ + type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, + error, +}); + export const fetchExtendedDescription = () => (dispatch, getState) => { dispatch(fetchExtendedDescriptionRequest()); diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx index f217320659..6e1cc275e6 100644 --- a/app/javascript/flavours/glitch/components/status_content.jsx +++ b/app/javascript/flavours/glitch/components/status_content.jsx @@ -3,6 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import { FormattedMessage, injectIntl } from 'react-intl'; import Permalink from './permalink'; +import { connect } from 'react-redux'; import classnames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; import { autoPlayGif, languages as preloadedLanguages } from 'flavours/glitch/initial_state'; @@ -99,7 +100,12 @@ class TranslateButton extends React.PureComponent { } -export default @injectIntl +const mapStateToProps = state => ({ + languages: state.getIn(['server', 'translationLanguages', 'items']), +}); + +export default @connect(mapStateToProps) +@injectIntl class StatusContent extends React.PureComponent { static contextTypes = { @@ -120,6 +126,7 @@ class StatusContent extends React.PureComponent { onUpdate: PropTypes.func, tagLinks: PropTypes.bool, rewriteMentions: PropTypes.string, + languages: ImmutablePropTypes.map, intl: PropTypes.object, }; @@ -315,7 +322,9 @@ class StatusContent extends React.PureComponent { } = this.props; const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; - const renderTranslate = this.props.onTranslate && status.get('translatable'); + const contentLocale = intl.locale.replace(/[_-].*/, ''); + const targetLanguages = this.props.languages?.get(status.get('language') || 'und'); + const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && targetLanguages?.includes(contentLocale); const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; diff --git a/app/javascript/flavours/glitch/features/ui/index.jsx b/app/javascript/flavours/glitch/features/ui/index.jsx index 9255e346e4..488c1b919d 100644 --- a/app/javascript/flavours/glitch/features/ui/index.jsx +++ b/app/javascript/flavours/glitch/features/ui/index.jsx @@ -10,7 +10,7 @@ import { debounce } from 'lodash'; import { uploadCompose, resetCompose, changeComposeSpoilerness } from 'flavours/glitch/actions/compose'; import { expandHomeTimeline } from 'flavours/glitch/actions/timelines'; import { expandNotifications, notificationsSetVisibility } from 'flavours/glitch/actions/notifications'; -import { fetchServer } from 'flavours/glitch/actions/server'; +import { fetchServer, fetchServerTranslationLanguages } from 'flavours/glitch/actions/server'; import { clearHeight } from 'flavours/glitch/actions/height_cache'; import { changeLayout } from 'flavours/glitch/actions/app'; import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'flavours/glitch/actions/markers'; @@ -419,6 +419,7 @@ class UI extends React.Component { this.props.dispatch(fetchMarkers()); this.props.dispatch(expandHomeTimeline()); this.props.dispatch(expandNotifications()); + this.props.dispatch(fetchServerTranslationLanguages()); setTimeout(() => this.props.dispatch(fetchServer()), 3000); } diff --git a/app/javascript/flavours/glitch/reducers/server.js b/app/javascript/flavours/glitch/reducers/server.js index cc5798fb34..af0cfc7a90 100644 --- a/app/javascript/flavours/glitch/reducers/server.js +++ b/app/javascript/flavours/glitch/reducers/server.js @@ -2,6 +2,9 @@ import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL, + SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, + SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, + SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, EXTENDED_DESCRIPTION_REQUEST, EXTENDED_DESCRIPTION_SUCCESS, EXTENDED_DESCRIPTION_FAIL, @@ -35,6 +38,12 @@ export default function server(state = initialState, action) { return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: return state.setIn(['server', 'isLoading'], false); + case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST: + return state.setIn(['translationLanguages', 'isLoading'], true); + case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS: + return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false); + case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL: + return state.setIn(['translationLanguages', 'isLoading'], false); case EXTENDED_DESCRIPTION_REQUEST: return state.setIn(['extendedDescription', 'isLoading'], true); case EXTENDED_DESCRIPTION_SUCCESS: From 9aa172f7df3dd1a8ba13711e8d7e2c1be1be008d Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Mar 2023 07:22:12 +0100 Subject: [PATCH 0703/1220] Move back to Ruby 3.1.3 --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index e4604e3afd..ff365e06b9 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.1 +3.1.3 From 080569b3fd00651930ab3811ae9e95cc98b6cacc Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Mar 2023 07:53:35 +0100 Subject: [PATCH 0704/1220] Remove fetch_value issue logging Since we've moved back to Ruby 3.1.3 in 9aa172f7df3dd1a8ba13711e8d7e2c1be1be008d and the issue only occurs on Ruby 3.2.1 due to the marshaller changing the ordering of instance variables, as explained by byroot / casperisfine in https://github.com/mastodon/mastodon/issues/23644#issuecomment-1472637530. As such, we no longer need this logging, and should be able to upgrade past Ruby 3.1 once the marshaller does ordering correctly again or Rails is changed to do custom marshalling. --- app/controllers/concerns/cache_concern.rb | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index a010fac165..05e431b19a 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -34,25 +34,7 @@ module CacheConcern raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) return [] if raw.empty? - cached_keys_with_value = begin - Rails.cache.read_multi(*raw).transform_keys(&:id) - rescue NoMethodError - culprit = raw.find do |item| - Rails.cache.read(item) - false - rescue NoMethodError - true - end - - Rails.logger.warn "culprit: #{culprit.inspect}" - - cache_key = Rails.cache.send(:normalize_key, culprit, {}) - entry = Rails.cache.send(:read_entry, cache_key) - raw_marshal = Zlib::Inflate.inflate(entry.instance_variable_get(:@value)) - Rails.logger.warn "base64 marshal: #{Base64.encode64(raw_marshal)}" - raise - end - + cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id) uncached_ids = raw.map(&:id) - cached_keys_with_value.keys klass.reload_stale_associations!(cached_keys_with_value.values) if klass.respond_to?(:reload_stale_associations!) From f53970abcefd44593341d561ac9d38c1660e5209 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 09:43:16 +0100 Subject: [PATCH 0705/1220] Bump glob from 8.1.0 to 9.3.0 (#24110) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 81e265ffab..d077c8aeab 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "file-loader": "^6.2.0", "font-awesome": "^4.7.0", "fuzzysort": "^2.0.4", - "glob": "^8.1.0", + "glob": "^9.3.0", "history": "^4.10.1", "http-link-header": "^1.1.0", "immutable": "^4.3.0", diff --git a/yarn.lock b/yarn.lock index 4e647d44ce..befdd60288 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5310,16 +5310,15 @@ 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.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== +glob@^9.3.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0" + integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w== dependencies: fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" + minimatch "^7.4.1" + minipass "^4.2.4" + path-scurry "^1.6.1" global-modules@^1.0.0: version "1.0.0" @@ -7172,6 +7171,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" @@ -7426,6 +7430,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.1: + version "7.4.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" + integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -7468,6 +7479,11 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minipass@^4.0.2, minipass@^4.2.4: + version "4.2.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" + integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -8114,6 +8130,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.1.tgz#dab45f7bb1d3f45a0e271ab258999f4ab7e23132" + integrity sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA== + dependencies: + lru-cache "^7.14.1" + minipass "^4.0.2" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" From be9a4912d8e61123dfe77c921a58cc5e8e22ae6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 10:08:10 +0100 Subject: [PATCH 0706/1220] Bump rimraf from 4.1.2 to 4.4.0 (#24048) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d077c8aeab..53648a86f7 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": "^4.1.2", + "rimraf": "^4.4.0", "sass": "^1.59.3", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index befdd60288..c5e71d1334 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5310,7 +5310,7 @@ 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@^9.3.0: +glob@^9.2.0, glob@^9.3.0: version "9.3.0" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0" integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w== @@ -9455,10 +9455,12 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.2.tgz#20dfbc98083bdfaa28b01183162885ef213dbf7c" - integrity sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ== +rimraf@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.0.tgz#c7a9f45bb2ec058d2e60ef9aca5167974313d605" + integrity sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ== + dependencies: + glob "^9.2.0" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" From d75a1e5054bc51d00b2ded834887f0cac23537b4 Mon Sep 17 00:00:00 2001 From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com> Date: Fri, 17 Mar 2023 10:09:01 +0100 Subject: [PATCH 0707/1220] Link to the Identity provider's account settings from the account settings (#24100) Co-authored-by: Claire --- app/controllers/application_controller.rb | 10 ++++++++++ app/views/auth/registrations/edit.html.haml | 4 +++- config/locales/en.yml | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index cee2061b5d..fb01abb935 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,6 +16,8 @@ class ApplicationController < ActionController::Base helper_method :current_theme helper_method :single_user_mode? helper_method :use_seamless_external_login? + helper_method :omniauth_only? + helper_method :sso_account_settings helper_method :whitelist_mode? rescue_from ActionController::ParameterMissing, Paperclip::AdapterRegistry::NoHandlerError, with: :bad_request @@ -118,6 +120,14 @@ class ApplicationController < ActionController::Base Devise.pam_authentication || Devise.ldap_authentication end + def omniauth_only? + ENV['OMNIAUTH_ONLY'] == 'true' + end + + def sso_account_settings + ENV.fetch('SSO_ACCOUNT_SETTINGS') + end + def current_account return @current_account if defined?(@current_account) diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml index 60fd1635ef..27d3f331eb 100644 --- a/app/views/auth/registrations/edit.html.haml +++ b/app/views/auth/registrations/edit.html.haml @@ -8,7 +8,7 @@ = simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, class: 'auth_edit', novalidate: false }) do |f| = render 'shared/error_messages', object: resource - - if !use_seamless_external_login? || resource.encrypted_password.present? + - if (!use_seamless_external_login? || resource.encrypted_password.present?) && !omniauth_only? .fields-row .fields-row__column.fields-group.fields-row__column-6 = f.input :email, wrapper: :with_label, input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, required: true, disabled: current_account.suspended? @@ -23,6 +23,8 @@ .actions = f.button :button, t('generic.save_changes'), type: :submit, class: 'button', disabled: current_account.suspended? + - elsif omniauth_only? && sso_account_settings.present? + = link_to t('users.go_to_sso_account_settings'), sso_account_settings - else %p.hint= t('users.seamless_external_login') diff --git a/config/locales/en.yml b/config/locales/en.yml index c6b1139561..5924501008 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1691,6 +1691,7 @@ en: title: Welcome aboard, %{name}! users: follow_limit_reached: You cannot follow more than %{limit} people + go_to_sso_account_settings: Go to your identity provider's account settings invalid_otp_token: Invalid two-factor code otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. From b22b4bac03182aecdc09e2e6b896ff7ec67d7dd6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 17 Mar 2023 05:13:28 -0400 Subject: [PATCH 0708/1220] Include config/ and update all rubcop deps (#23963) --- .rubocop.yml | 2 +- .rubocop_todo.yml | 404 +++++++++++++++++++++++++++++++- Gemfile | 2 + Gemfile.lock | 9 +- app/helpers/languages_helper.rb | 4 +- 5 files changed, 412 insertions(+), 9 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 4f4c98dc93..9e9240636f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,6 +8,7 @@ require: - rubocop-rails - rubocop-rspec - rubocop-performance + - rubocop-capybara AllCops: TargetRubyVersion: 2.7 @@ -19,7 +20,6 @@ AllCops: NewCops: enable Exclude: - db/schema.rb - - 'config/**/*' - 'bin/*' - 'Rakefile' - 'node_modules/**/*' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e41c10e1c3..a3536e2023 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -13,6 +13,81 @@ Bundler/OrderedGems: Exclude: - 'Gemfile' +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: with_first_argument, with_fixed_indentation +Layout/ArgumentAlignment: + Exclude: + - 'config/initializers/cors.rb' + - 'config/initializers/session_store.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: empty_lines, no_empty_lines +Layout/EmptyLinesAroundBlockBody: + Exclude: + - 'config/routes.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment. +Layout/ExtraSpacing: + Exclude: + - 'config/initializers/omniauth.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle. +# SupportedHashRocketStyles: key, separator, table +# SupportedColonStyles: key, separator, table +# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit +Layout/HashAlignment: + Exclude: + - 'config/boot.rb' + - 'config/environments/production.rb' + - 'config/initializers/rack_attack.rb' + - 'config/routes.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Width, AllowedPatterns. +Layout/IndentationWidth: + Exclude: + - 'config/initializers/ffmpeg.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment. +Layout/LeadingCommentSpace: + Exclude: + - 'config/application.rb' + - 'config/initializers/omniauth.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. +# SupportedStyles: space, no_space +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceBeforeBlockBraces: + Exclude: + - 'config/initializers/paperclip.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: require_no_space, require_space +Layout/SpaceInLambdaLiteral: + Exclude: + - 'config/environments/production.rb' + - 'config/initializers/content_security_policy.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: space, no_space +Layout/SpaceInsideStringInterpolation: + Exclude: + - 'config/initializers/webauthn.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowInHeredoc. +Layout/TrailingWhitespace: + Exclude: + - 'config/initializers/paperclip.rb' + # Configuration parameters: AllowedMethods, AllowedPatterns. Lint/AmbiguousBlockAssociation: Exclude: @@ -26,6 +101,11 @@ Lint/AmbiguousBlockAssociation: - 'spec/services/unsuspend_account_service_spec.rb' - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' +# This cop supports safe autocorrection (--autocorrect). +Lint/AmbiguousOperatorPrecedence: + Exclude: + - 'config/initializers/rack_attack.rb' + # Configuration parameters: AllowedMethods. # AllowedMethods: enums Lint/ConstantDefinitionInBlock: @@ -109,9 +189,24 @@ Lint/OrAssignmentToConstant: Exclude: - 'lib/sanitize_ext/sanitize_config.rb' +# This cop supports safe autocorrection (--autocorrect). +Lint/SendWithMixinArgument: + Exclude: + - 'config/application.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. +Lint/UnusedBlockArgument: + Exclude: + - 'config/initializers/content_security_policy.rb' + - 'config/initializers/doorkeeper.rb' + - 'config/initializers/paperclip.rb' + - 'config/initializers/simple_form.rb' + Lint/UselessAssignment: Exclude: - 'app/services/activitypub/process_status_update_service.rb' + - 'config/initializers/omniauth.rb' - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb' - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb' - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' @@ -141,7 +236,7 @@ Metrics/AbcSize: # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. # AllowedMethods: refine Metrics/BlockLength: - Max: 433 + Max: 544 # Configuration parameters: CountBlocks, Max. Metrics/BlockNesting: @@ -185,6 +280,13 @@ Naming/AccessorMethodName: Exclude: - 'app/controllers/auth/sessions_controller.rb' +# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms. +# CheckDefinitionPathHierarchyRoots: lib, spec, test, src +# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS +Naming/FileName: + Exclude: + - 'config/locales/sr-Latn.rb' + # Configuration parameters: EnforcedStyleForLeadingUnderscores. # SupportedStylesForLeadingUnderscores: disallowed, required, optional Naming/MemoizedInstanceVariableName: @@ -195,6 +297,7 @@ Naming/MemoizedInstanceVariableName: - 'app/lib/activitypub/activity.rb' - 'app/services/resolve_url_service.rb' - 'app/services/search_service.rb' + - 'config/initializers/rack_attack.rb' # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns. # SupportedStyles: snake_case, normalcase, non_integer @@ -227,6 +330,7 @@ Performance/CollectionLiteralInLoop: - 'app/services/fetch_resource_service.rb' - 'app/services/suspend_account_service.rb' - 'app/services/unsuspend_account_service.rb' + - 'config/deploy.rb' - 'lib/mastodon/media_cli.rb' # This cop supports unsafe autocorrection (--autocorrect-all). @@ -279,6 +383,12 @@ Performance/RedundantEqualityComparisonBlock: Exclude: - 'spec/requests/link_headers_spec.rb' +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: MaxKeyValuePairs. +Performance/RedundantMerge: + Exclude: + - 'config/initializers/paperclip.rb' + # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: SafeMultiline. Performance/StartWith: @@ -679,6 +789,29 @@ RSpec/LetSetup: - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb' +# This cop supports safe autocorrection (--autocorrect). +RSpec/MatchArray: + Exclude: + - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb' + - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb' + - 'spec/controllers/api/v1/bookmarks_controller_spec.rb' + - 'spec/controllers/api/v1/favourites_controller_spec.rb' + - 'spec/controllers/api/v1/reports_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb' + - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb' + - 'spec/models/account_filter_spec.rb' + - 'spec/models/account_spec.rb' + - 'spec/models/account_statuses_cleanup_policy_spec.rb' + - 'spec/models/custom_emoji_filter_spec.rb' + - 'spec/models/status_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/presenters/familiar_followers_presenter_spec.rb' + - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb' + - 'spec/services/update_status_service_spec.rb' + RSpec/MessageChain: Exclude: - 'spec/controllers/api/v1/media_controller_spec.rb' @@ -962,8 +1095,9 @@ RSpec/NoExpectationExample: RSpec/PendingWithoutReason: Exclude: + - 'spec/controllers/statuses_controller_spec.rb' - 'spec/models/account_spec.rb' - - 'spec/support/examples/lib/settings/scoped_settings.rb' + - 'spec/models/user_spec.rb' # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. @@ -1348,6 +1482,7 @@ Rails/CompactBlank: - 'app/models/poll.rb' - 'app/models/user.rb' - 'app/services/import_service.rb' + - 'config/initializers/paperclip.rb' # This cop supports safe autocorrection (--autocorrect). Rails/ContentTag: @@ -1369,16 +1504,24 @@ Rails/CreateTableWithTimestamps: - 'db/migrate/20221006061337_create_preview_card_trends.rb' # This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Severity. Rails/DeprecatedActiveModelErrorsMethods: Exclude: - 'lib/mastodon/accounts_cli.rb' # This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: Severity. Rails/DuplicateAssociation: Exclude: - 'app/serializers/activitypub/collection_serializer.rb' - 'app/serializers/activitypub/note_serializer.rb' +# Configuration parameters: Include. +# Include: app/**/*.rb, config/**/*.rb, lib/**/*.rb +Rails/Exit: + Exclude: + - 'config/boot.rb' + # Configuration parameters: EnforcedStyle. # SupportedStyles: slashes, arguments Rails/FilePath: @@ -1386,6 +1529,7 @@ Rails/FilePath: - 'app/lib/themes.rb' - 'app/models/setting.rb' - 'app/validators/reaction_validator.rb' + - 'config/environments/test.rb' - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' - 'db/migrate/20170918125918_ids_to_bigints.rb' - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' @@ -1558,6 +1702,16 @@ Rails/Output: Exclude: - 'lib/mastodon/ip_blocks_cli.rb' +Rails/OutputSafety: + Exclude: + - 'config/initializers/simple_form.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: NotNilAndNotEmpty, NotBlank, UnlessBlank. +Rails/Present: + Exclude: + - 'config/initializers/content_security_policy.rb' + # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Include. # Include: **/Rakefile, **/*.rake @@ -1570,6 +1724,15 @@ Rails/RakeEnvironment: - 'lib/tasks/repo.rake' - 'lib/tasks/statistics.rake' +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Include. +# Include: spec/controllers/**/*.rb, spec/requests/**/*.rb, test/controllers/**/*.rb, test/integration/**/*.rb +Rails/ResponseParsedBody: + Exclude: + - 'spec/controllers/follower_accounts_controller_spec.rb' + - 'spec/controllers/following_accounts_controller_spec.rb' + - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb' + # Configuration parameters: Include. # Include: db/**/*.rb Rails/ReversibleMigration: @@ -1718,6 +1881,12 @@ Rails/WhereExists: - 'spec/services/purge_domain_service_spec.rb' - 'spec/services/unallow_domain_service_spec.rb' +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: AllowOnConstant, AllowOnSelfClass. +Style/CaseEquality: + Exclude: + - 'config/initializers/trusted_proxies.rb' + # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: MinBranchesCount. Style/CaseLikeIf: @@ -1732,6 +1901,10 @@ Style/ClassEqualityComparison: - 'app/helpers/jsonld_helper.rb' - 'app/serializers/activitypub/outbox_serializer.rb' +Style/ClassVars: + Exclude: + - 'config/initializers/devise.rb' + Style/CombinableLoops: Exclude: - 'app/models/form/custom_emoji_batch.rb' @@ -1749,6 +1922,16 @@ Style/FetchEnvVar: - 'app/helpers/application_helper.rb' - 'app/lib/redis_configuration.rb' - 'app/lib/translation_service.rb' + - 'config/environments/development.rb' + - 'config/environments/production.rb' + - 'config/initializers/2_whitelist_mode.rb' + - 'config/initializers/blacklists.rb' + - 'config/initializers/cache_buster.rb' + - 'config/initializers/content_security_policy.rb' + - 'config/initializers/devise.rb' + - 'config/initializers/omniauth.rb' + - 'config/initializers/paperclip.rb' + - 'config/initializers/vapid.rb' - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/mastodon/redis_config.rb' - 'lib/tasks/repo.rake' @@ -1757,9 +1940,11 @@ Style/FetchEnvVar: # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns. # SupportedStyles: annotated, template, unannotated +# AllowedMethods: redirect Style/FormatStringToken: Exclude: - 'app/models/privacy_policy.rb' + - 'config/initializers/devise.rb' - 'lib/mastodon/maintenance_cli.rb' - 'lib/paperclip/color_extractor.rb' @@ -1771,6 +1956,52 @@ Style/FrozenStringLiteralComment: - 'app/views/accounts/show.rss.ruby' - 'app/views/tags/show.rss.ruby' - 'app/views/well_known/host_meta/show.xml.ruby' + - 'config/application.rb' + - 'config/boot.rb' + - 'config/environment.rb' + - 'config/environments/development.rb' + - 'config/environments/production.rb' + - 'config/environments/test.rb' + - 'config/initializers/0_post_deployment_migrations.rb' + - 'config/initializers/active_model_serializers.rb' + - 'config/initializers/application_controller_renderer.rb' + - 'config/initializers/assets.rb' + - 'config/initializers/backtrace_silencers.rb' + - 'config/initializers/cache_logging.rb' + - 'config/initializers/chewy.rb' + - 'config/initializers/content_security_policy.rb' + - 'config/initializers/cookies_serializer.rb' + - 'config/initializers/cors.rb' + - 'config/initializers/devise.rb' + - 'config/initializers/doorkeeper.rb' + - 'config/initializers/fast_blank.rb' + - 'config/initializers/ffmpeg.rb' + - 'config/initializers/filter_parameter_logging.rb' + - 'config/initializers/http_client_proxy.rb' + - 'config/initializers/httplog.rb' + - 'config/initializers/inflections.rb' + - 'config/initializers/mail_delivery_job.rb' + - 'config/initializers/makara.rb' + - 'config/initializers/mime_types.rb' + - 'config/initializers/oj.rb' + - 'config/initializers/omniauth.rb' + - 'config/initializers/open_uri_redirection.rb' + - 'config/initializers/permissions_policy.rb' + - 'config/initializers/pghero.rb' + - 'config/initializers/preload_link_headers.rb' + - 'config/initializers/premailer_rails.rb' + - 'config/initializers/rack_attack_logging.rb' + - 'config/initializers/redis.rb' + - 'config/initializers/session_store.rb' + - 'config/initializers/simple_form.rb' + - 'config/initializers/stoplight.rb' + - 'config/initializers/trusted_proxies.rb' + - 'config/initializers/twitter_regex.rb' + - 'config/initializers/webauthn.rb' + - 'config/initializers/wrap_parameters.rb' + - 'config/locales/sr-Latn.rb' + - 'config/locales/sr.rb' + - 'config/puma.rb' - 'db/migrate/20160220174730_create_accounts.rb' - 'db/migrate/20160220211917_create_statuses.rb' - 'db/migrate/20160221003140_create_users.rb' @@ -2117,6 +2348,18 @@ Style/FrozenStringLiteralComment: - 'lib/tasks/branding.rake' - 'spec/fabricators_spec.rb' +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/GlobalStdStream: + Exclude: + - 'config/boot.rb' + - 'config/environments/development.rb' + - 'config/environments/production.rb' + +# Configuration parameters: AllowedVariables. +Style/GlobalVars: + Exclude: + - 'config/initializers/statsd.rb' + # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: MinBodyLength, AllowConsecutiveConditionals. Style/GuardClause: @@ -2143,6 +2386,7 @@ Style/GuardClause: - 'app/workers/redownload_header_worker.rb' - 'app/workers/redownload_media_worker.rb' - 'app/workers/remote_account_refresh_worker.rb' + - 'config/initializers/devise.rb' - 'db/migrate/20170901141119_truncate_preview_cards.rb' - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb' - 'lib/devise/two_factor_ldap_authenticatable.rb' @@ -2187,14 +2431,48 @@ Style/HashTransformValues: - 'app/serializers/rest/web_push_subscription_serializer.rb' - 'app/services/import_service.rb' +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/IdenticalConditionalBranches: + Exclude: + - 'config/initializers/content_security_policy.rb' + +# This cop supports safe autocorrection (--autocorrect). +Style/IfUnlessModifier: + Exclude: + - 'config/environments/production.rb' + - 'config/initializers/devise.rb' + - 'config/initializers/ffmpeg.rb' + # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: InverseMethods, InverseBlocks. Style/InverseMethods: Exclude: + - 'app/controllers/concerns/signature_verification.rb' + - 'app/helpers/jsonld_helper.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/activity/move.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/models/concerns/attachmentable.rb' + - 'app/models/concerns/remotable.rb' - 'app/models/custom_filter.rb' + - 'app/models/webhook.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/search_service.rb' - 'app/services/update_account_service.rb' + - 'app/workers/web/push_notification_worker.rb' + - 'lib/paperclip/color_extractor.rb' - 'spec/controllers/activitypub/replies_controller_spec.rb' +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: line_count_dependent, lambda, literal +Style/Lambda: + Exclude: + - 'config/initializers/simple_form.rb' + - 'config/routes.rb' + # This cop supports unsafe autocorrection (--autocorrect-all). Style/MapToHash: Exclude: @@ -2213,9 +2491,21 @@ Style/MutableConstant: - 'app/services/delete_account_service.rb' - 'app/services/fetch_link_card_service.rb' - 'app/services/resolve_url_service.rb' + - 'config/initializers/twitter_regex.rb' - 'lib/mastodon/snowflake.rb' - 'spec/controllers/api/base_controller_spec.rb' +# This cop supports safe autocorrection (--autocorrect). +Style/NilLambda: + Exclude: + - 'config/initializers/paperclip.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: MinDigits, Strict, AllowedNumbers, AllowedPatterns. +Style/NumericLiterals: + Exclude: + - 'config/initializers/strong_migrations.rb' + # Configuration parameters: AllowedMethods. # AllowedMethods: respond_to_missing? Style/OptionalBooleanParameter: @@ -2231,6 +2521,44 @@ Style/OptionalBooleanParameter: - 'app/workers/unfollow_follow_worker.rb' - 'lib/mastodon/redis_config.rb' +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Exclude: + - 'config/deploy.rb' + - 'config/initializers/doorkeeper.rb' + +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: short, verbose +Style/PreferredHashMethods: + Exclude: + - 'config/initializers/paperclip.rb' + +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantBegin: + Exclude: + - 'config/initializers/simple_form.rb' + +# This cop supports safe autocorrection (--autocorrect). +Style/RedundantConstantBase: + Exclude: + - 'config/environments/production.rb' + - 'config/initializers/sidekiq.rb' + - 'config/initializers/statsd.rb' + - 'config/locales/sr-Latn.rb' + - 'config/locales/sr.rb' + +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: SafeForConstants. +Style/RedundantFetchBlock: + Exclude: + - 'config/initializers/1_hosts.rb' + - 'config/initializers/chewy.rb' + - 'config/initializers/devise.rb' + - 'config/initializers/paperclip.rb' + - 'config/puma.rb' + # This cop supports safe autocorrection (--autocorrect). Style/RedundantRegexpCharacterClass: Exclude: @@ -2239,6 +2567,7 @@ Style/RedundantRegexpCharacterClass: - 'app/models/domain_allow.rb' - 'app/models/domain_block.rb' - 'app/services/fetch_oembed_service.rb' + - 'config/initializers/rack_attack.rb' - 'lib/tasks/emojis.rake' - 'lib/tasks/mastodon.rake' @@ -2249,6 +2578,7 @@ Style/RedundantRegexpEscape: - 'app/models/account.rb' - 'app/models/tag.rb' - 'app/services/fetch_link_card_service.rb' + - 'config/initializers/twitter_regex.rb' - 'lib/paperclip/color_extractor.rb' - 'lib/tasks/mastodon.rake' @@ -2270,6 +2600,9 @@ Style/RegexpLiteral: - 'app/services/backup_service.rb' - 'app/services/fetch_oembed_service.rb' - 'app/services/search_service.rb' + - 'config/initializers/rack_attack.rb' + - 'config/initializers/twitter_regex.rb' + - 'config/routes.rb' - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/mastodon.rake' @@ -2317,6 +2650,73 @@ Style/SlicingWithRange: - 'lib/mastodon/premailer_webpack_strategy.rb' - 'lib/tasks/repo.rake' +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: require_parentheses, require_no_parentheses +Style/StabbyLambdaParentheses: + Exclude: + - 'config/environments/production.rb' + - 'config/initializers/content_security_policy.rb' + +# This cop supports safe autocorrection (--autocorrect). +Style/StderrPuts: + Exclude: + - 'config/boot.rb' + +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: Mode. +Style/StringConcatenation: + Exclude: + - 'config/initializers/paperclip.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Exclude: + - 'config/environments/production.rb' + - 'config/initializers/backtrace_silencers.rb' + - 'config/initializers/http_client_proxy.rb' + - 'config/initializers/rack_attack.rb' + - 'config/initializers/webauthn.rb' + - 'config/routes.rb' + +# This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments. +# AllowedMethods: define_method, mail, respond_to +Style/SymbolProc: + Exclude: + - 'config/initializers/omniauth.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyle, AllowSafeAssignment. +# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex +Style/TernaryParentheses: + Exclude: + - 'config/environments/development.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInArguments: + Exclude: + - 'config/initializers/paperclip.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInHashLiteral: + Exclude: + - 'config/environments/production.rb' + - 'config/environments/test.rb' + +# This cop supports safe autocorrection (--autocorrect). +# Configuration parameters: WordRegex. +# SupportedStyles: percent, brackets +Style/WordArray: + EnforcedStyle: percent + MinSize: 6 + # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns. # URISchemes: http, https diff --git a/Gemfile b/Gemfile index e5353a08c9..b5669582bf 100644 --- a/Gemfile +++ b/Gemfile @@ -105,6 +105,8 @@ group :development, :test do gem 'i18n-tasks', '~> 1.0', require: false gem 'rspec-rails', '~> 6.0' gem 'rspec_chunked', '~> 0.6' + + gem 'rubocop-capybara', require: false gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false gem 'rubocop-rspec', require: false diff --git a/Gemfile.lock b/Gemfile.lock index c7e1d17504..8b16b9308b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -613,19 +613,19 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.27.0) parser (>= 3.2.1.0) - rubocop-capybara (2.17.0) + rubocop-capybara (2.17.1) rubocop (~> 1.41) rubocop-performance (1.16.0) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.17.4) + rubocop-rails (2.18.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.18.1) + rubocop-rspec (2.19.0) rubocop (~> 1.33) rubocop-capybara (~> 2.17) - ruby-progressbar (1.11.0) + ruby-progressbar (1.13.0) ruby-saml (1.13.0) nokogiri (>= 1.10.5) rexml @@ -864,6 +864,7 @@ DEPENDENCIES rspec_chunked (~> 0.6) rspec_junit_formatter (~> 0.6) rubocop + rubocop-capybara rubocop-performance rubocop-rails rubocop-rspec diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 5843947584..bbf0a97fc3 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# rubocop:disable Metrics/ModuleLength, Style/WordArray +# rubocop:disable Metrics/ModuleLength module LanguagesHelper ISO_639_1 = { @@ -275,4 +275,4 @@ module LanguagesHelper end end -# rubocop:enable Metrics/ModuleLength, Style/WordArray +# rubocop:enable Metrics/ModuleLength From 03a96ba2e1209ecd5b005702a07fd523e0af94dc Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 17 Mar 2023 09:06:52 +0000 Subject: [PATCH 0709/1220] Workaround the ActiveRecord / Marshal serialization bug on Ruby 3.2 Fix: https://github.com/mastodon/mastodon/issues/23644 As mentioned on that other thread, the issue arise when a `Status` is created with SHAPE_TOO_COMPLEX making the instance variable ordering unpredictable. But we can sidestep that issue using code inspired from Shopify/paquito. I added some code in the test environment initializer to cause this issue to be reproduced and prove this change fixes it. This code is also easily converted into a monkey patch. --- app/controllers/concerns/cache_concern.rb | 163 +++++++++++++++++++++- config/environments/test.rb | 6 + 2 files changed, 166 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index 05e431b19a..e606218acb 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -3,6 +3,158 @@ module CacheConcern extend ActiveSupport::Concern + module ActiveRecordCoder + EMPTY_HASH = {}.freeze + + class << self + def dump(record) + instances = InstanceTracker.new + serialized_associations = serialize_associations(record, instances) + serialized_records = instances.map { |r| serialize_record(r) } + [serialized_associations, *serialized_records] + end + + def load(payload) + instances = InstanceTracker.new + serialized_associations, *serialized_records = payload + serialized_records.each { |attrs| instances.push(deserialize_record(*attrs)) } + deserialize_associations(serialized_associations, instances) + end + + private + + # Records without associations, or which have already been visited before, + # are serialized by their id alone. + # + # Records with associations are serialized as a two-element array including + # their id and the record's association cache. + # + def serialize_associations(record, instances) + return unless record + + if (id = instances.lookup(record)) + payload = id + else + payload = instances.push(record) + + cached_associations = record.class.reflect_on_all_associations.select do |reflection| + record.association_cached?(reflection.name) + end + + unless cached_associations.empty? + serialized_associations = cached_associations.map do |reflection| + association = record.association(reflection.name) + + serialized_target = if reflection.collection? + association.target.map { |target_record| serialize_associations(target_record, instances) } + else + serialize_associations(association.target, instances) + end + + [reflection.name, serialized_target] + end + + payload = [payload, serialized_associations] + end + end + + payload + end + + def deserialize_associations(payload, instances) + return unless payload + + id, associations = payload + record = instances.fetch(id) + + associations&.each do |name, serialized_target| + begin + association = record.association(name) + rescue ActiveRecord::AssociationNotFoundError + raise AssociationMissingError, "undefined association: #{name}" + end + + target = if association.reflection.collection? + serialized_target.map! { |serialized_record| deserialize_associations(serialized_record, instances) } + else + deserialize_associations(serialized_target, instances) + end + + association.target = target + end + + record + end + + def serialize_record(record) + arguments = [record.class.name, attributes_for_database(record)] + arguments << true if record.new_record? + arguments + end + + if Rails.gem_version >= Gem::Version.new('7.0') + def attributes_for_database(record) + attributes = record.attributes_for_database + attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr } + attributes + end + else + def attributes_for_database(record) + attributes = record.instance_variable_get(:@attributes).send(:attributes).transform_values(&:value_for_database) + attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr } + attributes + end + end + + def deserialize_record(class_name, attributes_from_database, new_record = false) # rubocop:disable Style/OptionalBooleanParameter + begin + klass = Object.const_get(class_name) + rescue NameError + raise ClassMissingError, "undefined class: #{class_name}" + end + + # Ideally we'd like to call `klass.instantiate`, however it doesn't allow to pass + # wether the record was persisted or not. + attributes = klass.attributes_builder.build_from_database(attributes_from_database, EMPTY_HASH) + klass.allocate.init_with_attributes(attributes, new_record) + end + end + + class Error < StandardError + end + + class ClassMissingError < Error + end + + class AssociationMissingError < Error + end + + class InstanceTracker + def initialize + @instances = [] + @ids = {}.compare_by_identity + end + + def map(&block) + @instances.map(&block) + end + + def fetch(...) + @instances.fetch(...) + end + + def push(instance) + id = @ids[instance] = @instances.size + @instances << instance + id + end + + def lookup(instance) + @ids[instance] + end + end + end + def render_with_cache(**options) raise ArgumentError, 'only JSON render calls are supported' unless options.key?(:json) || block_given? @@ -34,8 +186,13 @@ module CacheConcern raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) return [] if raw.empty? - cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id) - uncached_ids = raw.map(&:id) - cached_keys_with_value.keys + cached_keys_with_value = begin + Rails.cache.read_multi(*raw, namespace: 'v2').transform_keys(&:id).transform_values { |r| ActiveRecordCoder.load(r) } + rescue ActiveRecordCoder::Error + {} # The serialization format may have changed, let's pretend it's a cache miss. + end + + uncached_ids = raw.map(&:id) - cached_keys_with_value.keys klass.reload_stale_associations!(cached_keys_with_value.values) if klass.respond_to?(:reload_stale_associations!) @@ -43,7 +200,7 @@ module CacheConcern uncached = klass.where(id: uncached_ids).with_includes.index_by(&:id) uncached.each_value do |item| - Rails.cache.write(item, item) + Rails.cache.write(item, ActiveRecordCoder.dump(item), namespace: 'v2') end end diff --git a/config/environments/test.rb b/config/environments/test.rb index 9cbf31e8d7..87beaac508 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -56,6 +56,12 @@ Rails.application.configure do config.i18n.default_locale = :en config.i18n.fallbacks = true + + config.to_prepare do + # Force Status to always be SHAPE_TOO_COMPLEX + # Ref: https://github.com/mastodon/mastodon/issues/23644 + 10.times { |i| Status.allocate.instance_variable_set(:"@ivar_#{i}", nil) } + end end Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension" From fd351e4b3c04fca31ae36c602a943c8d7af4e228 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Mar 2023 12:45:16 +0100 Subject: [PATCH 0710/1220] Move back to Ruby 3.2.1 Previous commit fixes the issue, so we move back to Ruby 3.2.1. --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index ff365e06b9..e4604e3afd 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.3 +3.2.1 From abc56dff2c202d45e4ca3e6605d07b69143a34d4 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Mar 2023 13:00:32 +0100 Subject: [PATCH 0711/1220] Update CatCatNya~ prod config --- .env.production.catcatnya | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.production.catcatnya b/.env.production.catcatnya index 62fb476bb0..6758c4cc3c 100644 --- a/.env.production.catcatnya +++ b/.env.production.catcatnya @@ -29,7 +29,7 @@ ES_PORT=[REDACTED] ES_PREFIX=[REDACTED] AUTHORIZED_FETCH=true RAILS_SERVE_STATIC_FILES=false -RAILS_LOG_LEVEL=error +RAILS_LOG_LEVEL=warn MAX_TOOT_CHARS=6942 MAX_DESCRIPTION_CHARS=6942 From 255ea1c131e2569288942fdc7eab4c0151d4280a Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 17 Mar 2023 13:01:21 +0100 Subject: [PATCH 0712/1220] v4.1.0+2.0.5 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 72b5a3e2f1..45c8ca1295 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+2.0.4' + '+2.0.5' end def to_a From 160f38f03d821b026ea62b09e1c817eb311507e1 Mon Sep 17 00:00:00 2001 From: Jean byroot Boussier Date: Fri, 17 Mar 2023 13:37:30 +0000 Subject: [PATCH 0713/1220] Workaround the ActiveRecord / Marshal serialization bug on Ruby 3.2 (#24142) Co-authored-by: Jean Boussier --- app/controllers/concerns/cache_concern.rb | 163 +++++++++++++++++++++- config/environments/test.rb | 6 + 2 files changed, 166 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index 05e431b19a..e606218acb 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -3,6 +3,158 @@ module CacheConcern extend ActiveSupport::Concern + module ActiveRecordCoder + EMPTY_HASH = {}.freeze + + class << self + def dump(record) + instances = InstanceTracker.new + serialized_associations = serialize_associations(record, instances) + serialized_records = instances.map { |r| serialize_record(r) } + [serialized_associations, *serialized_records] + end + + def load(payload) + instances = InstanceTracker.new + serialized_associations, *serialized_records = payload + serialized_records.each { |attrs| instances.push(deserialize_record(*attrs)) } + deserialize_associations(serialized_associations, instances) + end + + private + + # Records without associations, or which have already been visited before, + # are serialized by their id alone. + # + # Records with associations are serialized as a two-element array including + # their id and the record's association cache. + # + def serialize_associations(record, instances) + return unless record + + if (id = instances.lookup(record)) + payload = id + else + payload = instances.push(record) + + cached_associations = record.class.reflect_on_all_associations.select do |reflection| + record.association_cached?(reflection.name) + end + + unless cached_associations.empty? + serialized_associations = cached_associations.map do |reflection| + association = record.association(reflection.name) + + serialized_target = if reflection.collection? + association.target.map { |target_record| serialize_associations(target_record, instances) } + else + serialize_associations(association.target, instances) + end + + [reflection.name, serialized_target] + end + + payload = [payload, serialized_associations] + end + end + + payload + end + + def deserialize_associations(payload, instances) + return unless payload + + id, associations = payload + record = instances.fetch(id) + + associations&.each do |name, serialized_target| + begin + association = record.association(name) + rescue ActiveRecord::AssociationNotFoundError + raise AssociationMissingError, "undefined association: #{name}" + end + + target = if association.reflection.collection? + serialized_target.map! { |serialized_record| deserialize_associations(serialized_record, instances) } + else + deserialize_associations(serialized_target, instances) + end + + association.target = target + end + + record + end + + def serialize_record(record) + arguments = [record.class.name, attributes_for_database(record)] + arguments << true if record.new_record? + arguments + end + + if Rails.gem_version >= Gem::Version.new('7.0') + def attributes_for_database(record) + attributes = record.attributes_for_database + attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr } + attributes + end + else + def attributes_for_database(record) + attributes = record.instance_variable_get(:@attributes).send(:attributes).transform_values(&:value_for_database) + attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr } + attributes + end + end + + def deserialize_record(class_name, attributes_from_database, new_record = false) # rubocop:disable Style/OptionalBooleanParameter + begin + klass = Object.const_get(class_name) + rescue NameError + raise ClassMissingError, "undefined class: #{class_name}" + end + + # Ideally we'd like to call `klass.instantiate`, however it doesn't allow to pass + # wether the record was persisted or not. + attributes = klass.attributes_builder.build_from_database(attributes_from_database, EMPTY_HASH) + klass.allocate.init_with_attributes(attributes, new_record) + end + end + + class Error < StandardError + end + + class ClassMissingError < Error + end + + class AssociationMissingError < Error + end + + class InstanceTracker + def initialize + @instances = [] + @ids = {}.compare_by_identity + end + + def map(&block) + @instances.map(&block) + end + + def fetch(...) + @instances.fetch(...) + end + + def push(instance) + id = @ids[instance] = @instances.size + @instances << instance + id + end + + def lookup(instance) + @ids[instance] + end + end + end + def render_with_cache(**options) raise ArgumentError, 'only JSON render calls are supported' unless options.key?(:json) || block_given? @@ -34,8 +186,13 @@ module CacheConcern raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation) return [] if raw.empty? - cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id) - uncached_ids = raw.map(&:id) - cached_keys_with_value.keys + cached_keys_with_value = begin + Rails.cache.read_multi(*raw, namespace: 'v2').transform_keys(&:id).transform_values { |r| ActiveRecordCoder.load(r) } + rescue ActiveRecordCoder::Error + {} # The serialization format may have changed, let's pretend it's a cache miss. + end + + uncached_ids = raw.map(&:id) - cached_keys_with_value.keys klass.reload_stale_associations!(cached_keys_with_value.values) if klass.respond_to?(:reload_stale_associations!) @@ -43,7 +200,7 @@ module CacheConcern uncached = klass.where(id: uncached_ids).with_includes.index_by(&:id) uncached.each_value do |item| - Rails.cache.write(item, item) + Rails.cache.write(item, ActiveRecordCoder.dump(item), namespace: 'v2') end end diff --git a/config/environments/test.rb b/config/environments/test.rb index 1328e155a3..493b041ebb 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -51,6 +51,12 @@ Rails.application.configure do config.i18n.default_locale = :en config.i18n.fallbacks = true + + config.to_prepare do + # Force Status to always be SHAPE_TOO_COMPLEX + # Ref: https://github.com/mastodon/mastodon/issues/23644 + 10.times { |i| Status.allocate.instance_variable_set(:"@ivar_#{i}", nil) } + end end Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension" From 9758112c978df17d195ad31405061b2419ac3d17 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Mar 2023 03:09:39 -0400 Subject: [PATCH 0714/1220] Dedupe yarn.lock with yarn-deduplicate (#24119) --- yarn.lock | 141 +++++++++--------------------------------------------- 1 file changed, 23 insertions(+), 118 deletions(-) diff --git a/yarn.lock b/yarn.lock index c5e71d1334..dfceca518e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,12 +31,7 @@ dependencies: "@babel/highlight" "^7.18.6" -"@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/compat-data@^7.20.5": +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@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== @@ -161,15 +156,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-function-name@^7.21.0": +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== @@ -184,14 +171,7 @@ dependencies: "@babel/types" "^7.18.6" -"@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.20.7" - -"@babel/helper-member-expression-to-functions@^7.21.0": +"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== @@ -260,14 +240,7 @@ dependencies: "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== @@ -1537,35 +1510,17 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" - integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== - "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@1.4.14": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.10" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186" - integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.17": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -1969,19 +1924,19 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^17": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== +"@types/react@*", "@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/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== +"@types/react@^17": + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" + integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3826,11 +3781,6 @@ cssstyle@^3.0.0: dependencies: rrweb-cssom "^0.6.0" -csstype@^2.6.7: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== - csstype@^3.0.2: version "3.0.6" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" @@ -4154,15 +4104,7 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-helpers@^5.0.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821" - integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw== - dependencies: - "@babel/runtime" "^7.6.3" - csstype "^2.6.7" - -dom-helpers@^5.2.0: +dom-helpers@^5.0.1, 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== @@ -4184,12 +4126,7 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domelementtype@^2.2.0: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== @@ -4353,7 +4290,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: version "1.20.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== @@ -5232,7 +5169,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -5829,16 +5766,7 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -internal-slot@^1.0.4: +internal-slot@^1.0.3, internal-slot@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== @@ -5939,12 +5867,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arguments@^1.1.1: +is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -6018,12 +5941,7 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-date-object@^1.0.5: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -7783,15 +7701,7 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-is@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" - integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -object-is@^1.1.5: +object-is@^1.0.1, object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -8176,12 +8086,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pg-connection-string@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" - integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== - -pg-connection-string@^2.5.0: +pg-connection-string@^2.4.0, pg-connection-string@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== From f7b9b36fc3d54817831d35923fcd347f89c6c9e5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Mar 2023 04:05:01 -0400 Subject: [PATCH 0715/1220] Revert "Dedupe yarn.lock with yarn-deduplicate" (#24155) --- yarn.lock | 141 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 118 insertions(+), 23 deletions(-) diff --git a/yarn.lock b/yarn.lock index dfceca518e..c5e71d1334 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,7 +31,12 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": +"@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/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== @@ -156,7 +161,15 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-function-name@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== @@ -171,7 +184,14 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": +"@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.20.7" + +"@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== @@ -240,7 +260,14 @@ dependencies: "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== @@ -1510,17 +1537,35 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" + integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== + "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.10" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186" + integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -1924,19 +1969,19 @@ dependencies: "@types/react" "*" -"@types/react@*", "@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== +"@types/react@*", "@types/react@^17": + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" + integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^17": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== +"@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" "*" @@ -3781,6 +3826,11 @@ cssstyle@^3.0.0: dependencies: rrweb-cssom "^0.6.0" +csstype@^2.6.7: + version "2.6.13" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" + integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + csstype@^3.0.2: version "3.0.6" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" @@ -4104,7 +4154,15 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-helpers@^5.0.1, dom-helpers@^5.2.0: +dom-helpers@^5.0.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821" + integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw== + dependencies: + "@babel/runtime" "^7.6.3" + csstype "^2.6.7" + +dom-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== @@ -4126,7 +4184,12 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@^2.0.1, domelementtype@^2.2.0: +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== @@ -4290,7 +4353,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: +es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4: version "1.20.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== @@ -5169,7 +5232,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -5766,7 +5829,16 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.3, internal-slot@^1.0.4: +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +internal-slot@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== @@ -5867,7 +5939,12 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -5941,7 +6018,12 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -7701,7 +7783,15 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-is@^1.0.1, object-is@^1.1.5: +object-is@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" + integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -8086,7 +8176,12 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pg-connection-string@^2.4.0, pg-connection-string@^2.5.0: +pg-connection-string@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" + integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== + +pg-connection-string@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== From 34096bc6ea788fece267116ef190e0d218f77b18 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 18 Mar 2023 04:05:17 -0400 Subject: [PATCH 0716/1220] Upgrade redis-node to latest (#24154) --- package.json | 2 +- yarn.lock | 117 +++++++++++++++++++++++---------------------------- 2 files changed, 53 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 53648a86f7..ee3eab9985 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "react-swipeable-views": "^0.14.0", "react-textarea-autosize": "^8.4.0", "react-toggle": "^4.1.3", - "redis": "^4.0.6 <4.1.0", + "redis": "^4.6.5", "redux": "^4.2.1", "redux-immutable": "^4.0.0", "redux-thunk": "^2.4.2", diff --git a/yarn.lock b/yarn.lock index c5e71d1334..cd5e4f1a76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1580,41 +1580,6 @@ dependencies: eslint-scope "5.1.1" -"@node-redis/bloom@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@node-redis/bloom/-/bloom-1.0.1.tgz#144474a0b7dc4a4b91badea2cfa9538ce0a1854e" - integrity sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw== - -"@node-redis/client@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@node-redis/client/-/client-1.0.5.tgz#ebac5e2bbf12214042a37621604973a954ede755" - integrity sha512-ESZ3bd1f+od62h4MaBLKum+klVJfA4wAeLHcVQBkoXa1l0viFesOWnakLQqKg+UyrlJhZmXJWtu0Y9v7iTMrig== - dependencies: - cluster-key-slot "1.1.0" - generic-pool "3.8.2" - redis-parser "3.0.0" - yallist "4.0.0" - -"@node-redis/graph@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@node-redis/graph/-/graph-1.0.0.tgz#baf8eaac4a400f86ea04d65ec3d65715fd7951ab" - integrity sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g== - -"@node-redis/json@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/json/-/json-1.0.2.tgz#8ad2d0f026698dc1a4238cc3d1eb099a3bee5ab8" - integrity sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g== - -"@node-redis/search@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@node-redis/search/-/search-1.0.5.tgz#96050007eb7c50a7e47080320b4f12aca8cf94c4" - integrity sha512-MCOL8iCKq4v+3HgEQv8zGlSkZyXSXtERgrAJ4TSryIG/eLFy84b57KmNNa/V7M1Q2Wd2hgn2nPCGNcQtk1R1OQ== - -"@node-redis/time-series@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/time-series/-/time-series-1.0.2.tgz#5dd3638374edd85ebe0aa6b0e87addc88fb9df69" - integrity sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1658,6 +1623,40 @@ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.7.tgz#b09dc5b2105dd267e8374c47e4490240451dc7f6" integrity sha512-0e7WQ4LE/+LEfW2zfAw9ppsB6A8RmxbdAUPAF++UT80epY+7emuQDkKXmaK0a9lp6An50RvzezI0cIQjp1A58w== +"@redis/bloom@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71" + integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg== + +"@redis/client@1.5.6": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.5.6.tgz#869cc65718d7d5493ef655a71dc40f3bc64a1b28" + integrity sha512-dFD1S6je+A47Lj22jN/upVU2fj4huR7S9APd7/ziUXsIXDL+11GPYti4Suv5y8FuXaN+0ZG4JF+y1houEJ7ToA== + dependencies: + cluster-key-slot "1.1.2" + generic-pool "3.9.0" + yallist "4.0.0" + +"@redis/graph@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@redis/graph/-/graph-1.1.0.tgz#cc2b82e5141a29ada2cce7d267a6b74baa6dd519" + integrity sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg== + +"@redis/json@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@redis/json/-/json-1.0.4.tgz#f372b5f93324e6ffb7f16aadcbcb4e5c3d39bda1" + integrity sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw== + +"@redis/search@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.1.2.tgz#6a8f66ba90812d39c2457420f859ce8fbd8f3838" + integrity sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA== + +"@redis/time-series@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-1.0.4.tgz#af85eb080f6934580e4d3b58046026b6c2b18717" + integrity sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng== + "@restart/hooks@^0.4.7": version "0.4.7" resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.7.tgz#d79ca6472c01ce04389fc73d4a79af1b5e33cd39" @@ -3328,10 +3327,10 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -cluster-key-slot@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" - integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== +cluster-key-slot@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== co@^4.6.0: version "4.6.0" @@ -5217,10 +5216,10 @@ gauge@^5.0.0: strip-ansi "^6.0.1" wide-align "^1.1.5" -generic-pool@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9" - integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg== +generic-pool@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4" + integrity sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -9195,29 +9194,17 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redis-errors@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= - -redis-parser@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= +redis@^4.6.5: + version "4.6.5" + resolved "https://registry.yarnpkg.com/redis/-/redis-4.6.5.tgz#f32fbde44429e96f562bb0c9b1db0143ab8cfa4f" + integrity sha512-O0OWA36gDQbswOdUuAhRL6mTZpHFN525HlgZgDaVNgCJIAZR3ya06NTESb0R+TUZ+BFaDpz6NnnVvoMx9meUFg== dependencies: - redis-errors "^1.0.0" - -"redis@^4.0.6 <4.1.0": - version "4.0.6" - resolved "https://registry.yarnpkg.com/redis/-/redis-4.0.6.tgz#a2ded4d9f4f4bad148e54781051618fc684cd858" - integrity sha512-IaPAxgF5dV0jx+A9l6yd6R9/PAChZIoAskDVRzUODeLDNhsMlq7OLLTmu0AwAr0xjrJ1bibW5xdpRwqIQ8Q0Xg== - dependencies: - "@node-redis/bloom" "1.0.1" - "@node-redis/client" "1.0.5" - "@node-redis/graph" "1.0.0" - "@node-redis/json" "1.0.2" - "@node-redis/search" "1.0.5" - "@node-redis/time-series" "1.0.2" + "@redis/bloom" "1.2.0" + "@redis/client" "1.5.6" + "@redis/graph" "1.1.0" + "@redis/json" "1.0.4" + "@redis/search" "1.1.2" + "@redis/time-series" "1.0.4" redux-immutable@^4.0.0: version "4.0.0" From 94cbd808b5b3e7999c7e77dc724b7e8c9dd2bdec Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Sat, 18 Mar 2023 23:47:54 -0700 Subject: [PATCH 0717/1220] Webhooks for local status.create, status.update, account.update (#24133) --- .rubocop_todo.yml | 2 +- app/models/account.rb | 7 +++++++ app/models/status.rb | 11 +++++++++++ app/models/webhook.rb | 3 +++ app/workers/webhooks/delivery_worker.rb | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a3536e2023..b2f8bf52cb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -245,7 +245,7 @@ Metrics/BlockNesting: # Configuration parameters: CountComments, CountAsOne. Metrics/ClassLength: - Max: 368 + Max: 375 # Configuration parameters: AllowedMethods, AllowedPatterns. Metrics/CyclomaticComplexity: diff --git a/app/models/account.rb b/app/models/account.rb index 1ff083e54a..c4df488789 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -122,6 +122,8 @@ class Account < ApplicationRecord scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) } scope :not_domain_blocked_by_account, ->(account) { where(arel_table[:domain].eq(nil).or(arel_table[:domain].not_in(account.excluded_from_timeline_domains))) } + after_update_commit :trigger_update_webhooks + delegate :email, :unconfirmed_email, :current_sign_in_at, @@ -593,4 +595,9 @@ class Account < ApplicationRecord CanonicalEmailBlock.where(reference_account: self).delete_all end + + # NOTE: the `account.created` webhook is triggered by the `User` model, not `Account`. + def trigger_update_webhooks + TriggerWebhookWorker.perform_async('account.updated', 'Account', id) if local? + end end diff --git a/app/models/status.rb b/app/models/status.rb index e7ea191a80..2e32c3f16b 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -111,6 +111,9 @@ class Status < ApplicationRecord where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids) } + after_create_commit :trigger_create_webhooks + after_update_commit :trigger_update_webhooks + cache_associated :application, :media_attachments, :conversation, @@ -535,4 +538,12 @@ class Status < ApplicationRecord reblog&.decrement_count!(:reblogs_count) if reblog? thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && distributable? end + + def trigger_create_webhooks + TriggerWebhookWorker.perform_async('status.created', 'Status', id) if local? + end + + def trigger_update_webhooks + TriggerWebhookWorker.perform_async('status.updated', 'Status', id) if local? + end end diff --git a/app/models/webhook.rb b/app/models/webhook.rb index 4aafb1257b..9a056a3862 100644 --- a/app/models/webhook.rb +++ b/app/models/webhook.rb @@ -17,7 +17,10 @@ class Webhook < ApplicationRecord EVENTS = %w( account.approved account.created + account.updated report.created + status.created + status.updated ).freeze scope :enabled, -> { where(enabled: true) } diff --git a/app/workers/webhooks/delivery_worker.rb b/app/workers/webhooks/delivery_worker.rb index b1e345c5ef..f8ed669fb5 100644 --- a/app/workers/webhooks/delivery_worker.rb +++ b/app/workers/webhooks/delivery_worker.rb @@ -19,7 +19,7 @@ class Webhooks::DeliveryWorker private def perform_request - request = Request.new(:post, @webhook.url, body: @body) + request = Request.new(:post, @webhook.url, body: @body, allow_local: true) request.add_headers( 'Content-Type' => 'application/json', From 02ac94490a67659c7cc669ead5b107b724db6e68 Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Sun, 19 Mar 2023 17:26:02 +0100 Subject: [PATCH 0718/1220] Add getting-started-misc to route (#2141) * Add getting-started-misc to web_app_paths Signed-off-by: Plastikmensch * Add signed in check to navigation entries Enabling routing for getting-started-misc allows the column to be directly accessible, which showed every entry and threw unnecessary errors. Also fixed the keys as these were literally "i++". Signed-off-by: Plastikmensch * Remove "Extended information" from getting-started-misc I couldn't find any reference to this translation string, so I removed it too. Signed-off-by: Plastikmensch --------- Signed-off-by: Plastikmensch --- .../features/getting_started_misc/index.jsx | 27 ++++++++++--------- .../flavours/glitch/locales/en.json | 1 - config/routes.rb | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx index 613b43df7f..f3779280f2 100644 --- a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx +++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx @@ -16,10 +16,8 @@ const messages = defineMessages({ blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' }, domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' }, mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' }, - info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' }, show_me_around: { id: 'getting_started.onboarding', defaultMessage: 'Show me around' }, pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' }, - info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' }, keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' }, featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' }, }); @@ -28,6 +26,11 @@ export default @connect() @injectIntl class gettingStartedMisc extends ImmutablePureComponent { + static contextTypes = { + router: PropTypes.object.isRequired, + identity: PropTypes.object, + }; + static propTypes = { intl: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, @@ -43,8 +46,7 @@ class gettingStartedMisc extends ImmutablePureComponent { render () { const { intl } = this.props; - - let i = 1; + const { signedIn } = this.context.identity; return ( @@ -52,15 +54,14 @@ class gettingStartedMisc extends ImmutablePureComponent {
    - - - - - - - - - + {signedIn && ()} + {signedIn && ()} + {signedIn && ()} + {signedIn && ()} + {signedIn && ()} + {signedIn && ()} + + {signedIn && ()}
    ); diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json index 7c21f69c3c..d15c23e134 100644 --- a/app/javascript/flavours/glitch/locales/en.json +++ b/app/javascript/flavours/glitch/locales/en.json @@ -67,7 +67,6 @@ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.", "navigation_bar.app_settings": "App settings", "navigation_bar.featured_users": "Featured users", - "navigation_bar.info": "Extended information", "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.misc": "Misc", "notification.markForDeletion": "Mark for deletion", diff --git a/config/routes.rb b/config/routes.rb index 8c6f126649..257babbf6b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,6 +8,7 @@ Rails.application.routes.draw do # have alternative format representations requiring separate controllers web_app_paths = %w( /getting-started + /getting-started-misc /keyboard-shortcuts /home /public From 0ca54a4105907fc61792052fcdb703af8bbd1fee Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 20 Mar 2023 20:02:09 +0100 Subject: [PATCH 0719/1220] Remove `Permissions-Policy` header from all responses (#24124) --- config/environments/production.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 00d7834775..ef52228a0a 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -127,7 +127,6 @@ Rails.application.configure do 'X-Frame-Options' => 'DENY', 'X-Content-Type-Options' => 'nosniff', 'X-XSS-Protection' => '0', - 'Permissions-Policy' => 'interest-cohort=()', 'Referrer-Policy' => 'same-origin', } From bdeb6ff18049870e76139f7434249096bc4d1fca Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 20 Mar 2023 20:02:58 +0100 Subject: [PATCH 0720/1220] Fix crash in `tootctl` commands making use of parallelization when Elasticsearch is enabled (#24182) --- lib/mastodon/cli_helper.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb index 8704edd75e..ab1351ae80 100644 --- a/lib/mastodon/cli_helper.rb +++ b/lib/mastodon/cli_helper.rb @@ -52,14 +52,16 @@ module Mastodon progress.log("Processing #{item.id}") if options[:verbose] - result = ActiveRecord::Base.connection_pool.with_connection do - yield(item) - ensure - RedisConfiguration.pool.checkin if Thread.current[:redis] - Thread.current[:redis] = nil - end + Chewy.strategy(:mastodon) do + result = ActiveRecord::Base.connection_pool.with_connection do + yield(item) + ensure + RedisConfiguration.pool.checkin if Thread.current[:redis] + Thread.current[:redis] = nil + end - aggregate.increment(result) if result.is_a?(Integer) + aggregate.increment(result) if result.is_a?(Integer) + end rescue => e progress.log pastel.red("Error processing #{item.id}: #{e}") ensure From 7bef11630d6decac46bc006bf12e7d962dffa57e Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 20 Mar 2023 15:03:44 -0400 Subject: [PATCH 0721/1220] Remove references to non-existent actions (#24183) --- .rubocop_todo.yml | 2 -- app/controllers/admin/domain_blocks_controller.rb | 2 +- app/controllers/admin/email_domain_blocks_controller.rb | 6 ------ config/routes.rb | 2 +- 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b2f8bf52cb..3b4ff3597e 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1670,8 +1670,6 @@ Rails/InverseOf: # Include: app/controllers/**/*.rb, app/mailers/**/*.rb Rails/LexicallyScopedActionFilter: Exclude: - - 'app/controllers/admin/domain_blocks_controller.rb' - - 'app/controllers/admin/email_domain_blocks_controller.rb' - 'app/controllers/auth/passwords_controller.rb' - 'app/controllers/auth/registrations_controller.rb' - 'app/controllers/auth/sessions_controller.rb' diff --git a/app/controllers/admin/domain_blocks_controller.rb b/app/controllers/admin/domain_blocks_controller.rb index 060db11bbd..750f5c995c 100644 --- a/app/controllers/admin/domain_blocks_controller.rb +++ b/app/controllers/admin/domain_blocks_controller.rb @@ -2,7 +2,7 @@ module Admin class DomainBlocksController < BaseController - before_action :set_domain_block, only: [:show, :destroy, :edit, :update] + before_action :set_domain_block, only: [:destroy, :edit, :update] def batch authorize :domain_block, :create? diff --git a/app/controllers/admin/email_domain_blocks_controller.rb b/app/controllers/admin/email_domain_blocks_controller.rb index a0a43de192..4a3228ec30 100644 --- a/app/controllers/admin/email_domain_blocks_controller.rb +++ b/app/controllers/admin/email_domain_blocks_controller.rb @@ -2,8 +2,6 @@ module Admin class EmailDomainBlocksController < BaseController - before_action :set_email_domain_block, only: [:show, :destroy] - def index authorize :email_domain_block, :index? @@ -59,10 +57,6 @@ module Admin private - def set_email_domain_block - @email_domain_block = EmailDomainBlock.find(params[:id]) - end - def set_resolved_records Resolv::DNS.open do |dns| dns.timeouts = 5 diff --git a/config/routes.rb b/config/routes.rb index 8850545ca7..22ef10866e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -229,7 +229,7 @@ Rails.application.routes.draw do get '/dashboard', to: 'dashboard#index' resources :domain_allows, only: [:new, :create, :show, :destroy] - resources :domain_blocks, only: [:new, :create, :show, :destroy, :update, :edit] do + resources :domain_blocks, only: [:new, :create, :destroy, :update, :edit] do collection do post :batch end From 0a9def5498d9630bb9ebf1585f76b2af5fad5169 Mon Sep 17 00:00:00 2001 From: mogamin <5103195+mgmn@users.noreply.github.com> Date: Tue, 21 Mar 2023 04:04:25 +0900 Subject: [PATCH 0722/1220] Fit the max-width of media in .prose to parent box (#24180) --- app/javascript/styles/mastodon/components.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index ecec71804b..9f6958b37d 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -8249,11 +8249,13 @@ noscript { img { margin-top: 2em; margin-bottom: 2em; + max-width: 100%; } video { margin-top: 2em; margin-bottom: 2em; + max-width: 100%; } figure { From 60298487f1a93c62026a029d6410e963e4dccdc3 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Mon, 20 Mar 2023 23:23:17 +0100 Subject: [PATCH 0723/1220] Bump Catstodon version --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index a7235372de..1102511ddc 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+2.1.0' + '+2.1.1' end def to_a From 4f4cbce295c7ae0777575f5807b2b44a355e49f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 00:56:45 +0100 Subject: [PATCH 0724/1220] Bump pghero from 3.3.0 to 3.3.1 (#24186) 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 8b16b9308b..8540fee5f6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -485,7 +485,7 @@ GEM pastel (0.8.0) tty-color (~> 0.5) pg (1.4.6) - pghero (3.3.0) + pghero (3.3.1) activerecord (>= 6) pkg-config (1.5.1) posix-spawn (0.3.15) From 84f14b245155a43f1ba3ad93b2ac23a18fb95f77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:42:34 +0900 Subject: [PATCH 0725/1220] Bump rack-cors from 1.1.1 to 2.0.1 (#24189) 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 b5669582bf..286b333c1c 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem 'public_suffix', '~> 5.0' gem 'pundit', '~> 2.3' gem 'premailer-rails' gem 'rack-attack', '~> 6.6' -gem 'rack-cors', '~> 1.1', require: 'rack/cors' +gem 'rack-cors', '~> 2.0', require: 'rack/cors' gem 'rails-i18n', '~> 6.0' gem 'rails-settings-cached', '~> 0.6', git: 'https://github.com/mastodon/rails-settings-cached.git', branch: 'v0.6.6-aliases-true' gem 'redcarpet', '~> 3.6' diff --git a/Gemfile.lock b/Gemfile.lock index 8540fee5f6..90ab6f2273 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -508,7 +508,7 @@ GEM rack (2.2.6.4) rack-attack (6.6.1) rack (>= 1.0, < 3) - rack-cors (1.1.1) + rack-cors (2.0.1) rack (>= 2.0.0) rack-oauth2 (1.21.3) activesupport @@ -848,7 +848,7 @@ DEPENDENCIES pundit (~> 2.3) rack (~> 2.2.6) rack-attack (~> 6.6) - rack-cors (~> 1.1) + rack-cors (~> 2.0) rack-test (~> 2.1) rails (~> 6.1.7) rails-controller-testing (~> 1.0) From f20843e60da93e98ffe7a26e10ec9e036d89cf8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:47:25 +0900 Subject: [PATCH 0726/1220] Bump react-select from 5.7.0 to 5.7.1 (#24187) 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 ee3eab9985..8978310fe4 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "react-redux-loading-bar": "^5.0.4", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", - "react-select": "^5.7.0", + "react-select": "^5.7.1", "react-sparklines": "^1.7.0", "react-swipeable-views": "^0.14.0", "react-textarea-autosize": "^8.4.0", diff --git a/yarn.lock b/yarn.lock index cd5e4f1a76..226f930ab8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9016,10 +9016,10 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-select@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.0.tgz#82921b38f1fcf1471a0b62304da01f2896cd8ce6" - integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== +react-select@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.1.tgz#c85afa8a771d75c935ec698726a8fbfece662ed0" + integrity sha512-u/brzm3B6vgI+PtxNyE4/18kXgaf6bn5sOAjKhaQ54EItBfW41SRLH1AJC5fefPnGM4JmMcM51t/HAVCi5GrpQ== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" From de6d504023ebe275c256adf600144394d48c382b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:49:48 +0900 Subject: [PATCH 0727/1220] Bump stylelint from 15.2.0 to 15.3.0 (#24185) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 8978310fe4..f47f65234c 100644 --- a/package.json +++ b/package.json @@ -158,7 +158,7 @@ "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", - "stylelint": "^15.2.0", + "stylelint": "^15.3.0", "stylelint-config-standard-scss": "^7.0.1", "webpack-dev-server": "^3.11.3", "yargs": "^17.7.1" diff --git a/yarn.lock b/yarn.lock index 226f930ab8..914b4b1698 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1098,10 +1098,10 @@ resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.0.1.tgz#ff02629c7c95d1f4f8ea84d5ef1173461610535e" integrity sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw== -"@csstools/css-tokenizer@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.0.1.tgz#cb1e11752db57e69d9aa0e84c3105a25845d4055" - integrity sha512-sYD3H7ReR88S/4+V5VbKiBEUJF4FqvG+8aNJkxqoPAnbhFziDG22IDZc4+h+xA63SfgM+h15lq5OnLeCxQ9nPA== +"@csstools/css-tokenizer@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz#fee4de3d444db3ce9007f3af6474af8ba3e4b930" + integrity sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A== "@csstools/media-query-list-parser@^2.0.1": version "2.0.1" @@ -3587,10 +3587,10 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" - integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== +cosmiconfig@^8.1.0: + version "8.1.3" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" + integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== dependencies: import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -6979,10 +6979,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.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== +known-css-properties@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" + integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== language-subtag-registry@~0.3.2: version "0.3.20" @@ -10292,18 +10292,18 @@ stylelint-scss@^4.4.0: postcss-selector-parser "^6.0.6" postcss-value-parser "^4.1.0" -stylelint@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.2.0.tgz#e906eb59df83bde075d148623216f298f9ceb03a" - integrity sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA== +stylelint@^15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.3.0.tgz#5f0f3264abeb29c54f571ea3f3934eba2c2be96d" + integrity sha512-9UYBYk7K9rtlKcTUDZrtntE840sZM00qyYBQHHe7tjwMNUsPsGvR6Fd43IxHEAhRrDLzpy3TVaHb6CReBB3eFg== dependencies: "@csstools/css-parser-algorithms" "^2.0.1" - "@csstools/css-tokenizer" "^2.0.1" + "@csstools/css-tokenizer" "^2.1.0" "@csstools/media-query-list-parser" "^2.0.1" "@csstools/selector-specificity" "^2.1.1" balanced-match "^2.0.0" colord "^2.9.3" - cosmiconfig "^8.0.0" + cosmiconfig "^8.1.0" css-functions-list "^3.1.0" css-tree "^2.3.1" debug "^4.3.4" @@ -10318,7 +10318,7 @@ stylelint@^15.2.0: import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.26.0" + known-css-properties "^0.27.0" mathml-tag-names "^2.1.3" meow "^9.0.0" micromatch "^4.0.5" @@ -10334,7 +10334,7 @@ stylelint@^15.2.0: string-width "^4.2.3" strip-ansi "^6.0.1" style-search "^0.1.0" - supports-hyperlinks "^2.3.0" + supports-hyperlinks "^3.0.0" svg-tags "^1.0.0" table "^6.8.1" v8-compile-cache "^2.3.0" @@ -10378,10 +10378,10 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== +supports-hyperlinks@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" + integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" From a4d285f2f991b56ee2ad738f7f7251a56f273cf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:51:31 +0900 Subject: [PATCH 0728/1220] Bump prettier from 2.8.4 to 2.8.5 (#24188) 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 f47f65234c..247fe66ab4 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "postcss-scss": "^4.0.6", - "prettier": "^2.8.4", + "prettier": "^2.8.5", "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 914b4b1698..d09efa23bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8606,10 +8606,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.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== +prettier@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.5.tgz#3dd8ae1ebddc4f6aa419c9b64d8c8319a7e0d982" + integrity sha512-3gzuxrHbKUePRBB4ZeU08VNkUcqEHaUaouNt0m7LGP4Hti/NuB07C7PPTM/LkWqXoJYJn2McEo5+kxPNrtQkLQ== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" From 9f8d1601a4877459b4d332d03796e5b70f07134e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:25:19 +0100 Subject: [PATCH 0729/1220] Bump stackprof from 0.2.23 to 0.2.24 (#24190) 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 90ab6f2273..6fa4894dbe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -679,7 +679,7 @@ GEM sshkit (1.21.4) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.23) + stackprof (0.2.24) statsd-ruby (1.5.0) stoplight (3.0.1) redlock (~> 1.0) From 38c84f57b6d2de1683974f91d726c30ba7f1491b Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Tue, 21 Mar 2023 18:32:58 +0900 Subject: [PATCH 0730/1220] Refactoring relations_map (#24195) --- app/models/concerns/account_interactions.rb | 15 +++++++++++++++ app/models/concerns/status_threading_concern.rb | 14 +------------- app/services/import_service.rb | 12 +----------- app/services/search_service.rb | 12 +----------- 4 files changed, 18 insertions(+), 35 deletions(-) diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index 1898516b00..48ab1349dd 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -292,6 +292,21 @@ module AccountInteractions end end + def relations_map(account_ids, domains = nil, **options) + relations = { + blocked_by: Account.blocked_by_map(account_ids, id), + following: Account.following_map(account_ids, id), + } + + return relations if options[:skip_blocking_and_muting] + + relations.merge!({ + blocking: Account.blocking_map(account_ids, id), + muting: Account.muting_map(account_ids, id), + domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, id), + }) + end + private def remove_potential_friendship(other_account) diff --git a/app/models/concerns/status_threading_concern.rb b/app/models/concerns/status_threading_concern.rb index 8b628beea2..2ca3b66c27 100644 --- a/app/models/concerns/status_threading_concern.rb +++ b/app/models/concerns/status_threading_concern.rb @@ -79,7 +79,7 @@ module StatusThreadingConcern statuses = Status.with_accounts(ids).to_a account_ids = statuses.map(&:account_id).uniq domains = statuses.filter_map(&:account_domain).uniq - relations = relations_map_for_account(account, account_ids, domains) + relations = account&.relations_map(account_ids, domains) || {} statuses.reject! { |status| StatusFilter.new(status, account, relations).filtered? } @@ -108,16 +108,4 @@ module StatusThreadingConcern arr end - - def relations_map_for_account(account, account_ids, domains) - return {} if account.nil? - - { - blocking: Account.blocking_map(account_ids, account.id), - blocked_by: Account.blocked_by_map(account_ids, account.id), - muting: Account.muting_map(account_ids, account.id), - following: Account.following_map(account_ids, account.id), - domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id), - } - end end diff --git a/app/services/import_service.rb b/app/services/import_service.rb index 940c236d4c..56f191c1fe 100644 --- a/app/services/import_service.rb +++ b/app/services/import_service.rb @@ -120,7 +120,7 @@ class ImportService < BaseService end account_ids = statuses.map(&:account_id) - preloaded_relations = relations_map_for_account(@account, account_ids) + preloaded_relations = @account.relations_map(account_ids, skip_blocking_and_muting: true) statuses.keep_if { |status| StatusPolicy.new(@account, status, preloaded_relations).show? } @@ -138,14 +138,4 @@ class ImportService < BaseService def import_data Paperclip.io_adapters.for(@import.data).read.force_encoding(Encoding::UTF_8) end - - def relations_map_for_account(account, account_ids) - { - blocking: {}, - blocked_by: Account.blocked_by_map(account_ids, account.id), - muting: {}, - following: Account.following_map(account_ids, account.id), - domain_blocking_by_domain: {}, - } - end end diff --git a/app/services/search_service.rb b/app/services/search_service.rb index 93b72fa0c4..b1ce5453fb 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -49,7 +49,7 @@ class SearchService < BaseService results = definition.limit(@limit).offset(@offset).objects.compact account_ids = results.map(&:account_id) account_domains = results.map(&:account_domain) - preloaded_relations = relations_map_for_account(@account, account_ids, account_domains) + preloaded_relations = @account.relations_map(account_ids, account_domains) results.reject { |status| StatusFilter.new(status, @account, preloaded_relations).filtered? } rescue Faraday::ConnectionFailed, Parslet::ParseFailed @@ -111,16 +111,6 @@ class SearchService < BaseService @options[:type].blank? || @options[:type] == 'statuses' end - def relations_map_for_account(account, account_ids, domains) - { - blocking: Account.blocking_map(account_ids, account.id), - blocked_by: Account.blocked_by_map(account_ids, account.id), - muting: Account.muting_map(account_ids, account.id), - following: Account.following_map(account_ids, account.id), - domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id), - } - end - def parsed_query SearchQueryTransformer.new.apply(SearchQueryParser.new.parse(@query)) end From 7f8e1bede4e68c01ff167fc3f4e1e63da24307a8 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 21 Mar 2023 15:04:21 +0100 Subject: [PATCH 0731/1220] Bump version to v4.1.1 (#24201) --- CHANGELOG.md | 51 +++++++++++++++++++++++++++++++++++++++++ lib/mastodon/version.rb | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b826fb14a..4527c50d95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,57 @@ All notable changes to this project will be documented in this file. +## [4.1.1] - 2023-03-16 + +### Added + +- Add redirection from paths with url-encoded `@` to their decoded form ([thijskh](https://github.com/mastodon/mastodon/pull/23593)) +- Add `lang` attribute to native language names in language picker in Web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23749)) +- Add headers to outgoing mails to avoid auto-replies ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23597)) +- Add support for refreshing many accounts at once with `tootctl accounts refresh` ([9p4](https://github.com/mastodon/mastodon/pull/23304)) +- Add confirmation modal when clicking to edit a post with a non-empty compose form ([PauloVilarinho](https://github.com/mastodon/mastodon/pull/23936)) +- Add support for the HAproxy PROXY protocol through the `PROXY_PROTO_V1` environment variable ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24064)) +- Add `SENDFILE_HEADER` environment variable ([Gargron](https://github.com/mastodon/mastodon/pull/24123)) +- Add cache headers to static files served through Rails ([Gargron](https://github.com/mastodon/mastodon/pull/24120)) + +### Changed + +- Increase contrast of upload progress bar background ([toolmantim](https://github.com/mastodon/mastodon/pull/23836)) +- Change post auto-deletion throttling constants to better scale with server size ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23320)) +- Change order of bookmark and favourite sidebar entries in single-column UI for consistency ([TerryGarcia](https://github.com/mastodon/mastodon/pull/23701)) +- Change `ActivityPub::DeliveryWorker` retries to be spread out more ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21956)) + +### Fixed + +- Fix “Remove all followers from the selected domains” also removing follows and notifications ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23805)) +- Fix streaming metrics format ([emilweth](https://github.com/mastodon/mastodon/pull/23519), [emilweth](https://github.com/mastodon/mastodon/pull/23520)) +- Fix case-sensitive check for previously used hashtags in hashtag autocompletion ([deanveloper](https://github.com/mastodon/mastodon/pull/23526)) +- Fix focus point of already-attached media not saving after edit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23566)) +- Fix sidebar behavior in settings/admin UI on mobile ([wxt2005](https://github.com/mastodon/mastodon/pull/23764)) +- Fix inefficiency when searching accounts per username in admin interface ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23801)) +- Fix duplicate “Publish” button on mobile ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23804)) +- Fix server error when failing to follow back followers from `/relationships` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23787)) +- Fix server error when attempting to display the edit history of a trendable post in the admin interface ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23574)) +- Fix `tootctl accounts migrate` crashing because of a typo ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23567)) +- Fix original account being unfollowed on migration before the follow request to the new account could be sent ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21957)) +- Fix the “Back” button in column headers sometimes leaving Mastodon ([c960657](https://github.com/mastodon/mastodon/pull/23953)) +- Fix pgBouncer resetting application name on every transaction ([Gargron](https://github.com/mastodon/mastodon/pull/23958)) +- Fix unconfirmed accounts being counted as active users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23803)) +- Fix `/api/v1/streaming` sub-paths not being redirected ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23988)) +- Fix drag'n'drop upload area text that spans multiple lines not being centered ([vintprox](https://github.com/mastodon/mastodon/pull/24029)) +- Fix sidekiq jobs not triggering Elasticsearch index updates ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24046)) +- Fix tags being unnecessarily stripped from plain-text short site description ([c960657](https://github.com/mastodon/mastodon/pull/23975)) +- Fix HTML entities not being un-escaped in extracted plain-text from remote posts ([c960657](https://github.com/mastodon/mastodon/pull/24019)) +- Fix dashboard crash on ElasticSearch server error ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23751)) +- Fix incorrect post links in strikes when the account is remote ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23611)) +- Fix misleading error code when receiving invalid WebAuthn credentials ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23568)) +- Fix duplicate mails being sent when the SMTP server is too slow to close the connection ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23750)) + +### Security + +- Change user backups to use expiring URLs for download when possible ([Gargron](https://github.com/mastodon/mastodon/pull/24136)) +- Add warning for object storage misconfiguration ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24137)) + ## [4.1.0] - 2023-02-10 ### Added diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 8101e61dd2..6a797fccf9 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -13,7 +13,7 @@ module Mastodon end def patch - 0 + 1 end def flags From 148c3d589461440400c2850cecc79c45a70bdca6 Mon Sep 17 00:00:00 2001 From: Simon Elvery Date: Wed, 22 Mar 2023 20:22:35 +1000 Subject: [PATCH 0732/1220] Update profile link verification instructions (#19723) Co-authored-by: Effy Elden --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 5924501008..fa7fb6be08 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1697,7 +1697,7 @@ en: seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' verification: - explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' + explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. After adding the link you may need to come back here and re-save your profile for the verification to take effect. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' verification: Verification webauthn_credentials: add: Add new security key From b179ff84c76b79f91793fdb23e5e9c84ad46707a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 22 Mar 2023 09:06:26 -0400 Subject: [PATCH 0733/1220] Add specs for Chewy importers (#24204) --- .../lib/importer/accounts_index_importer_spec.rb | 16 ++++++++++++++++ .../lib/importer/statuses_index_importer_spec.rb | 16 ++++++++++++++++ spec/lib/importer/tags_index_importer_spec.rb | 16 ++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 spec/lib/importer/accounts_index_importer_spec.rb create mode 100644 spec/lib/importer/statuses_index_importer_spec.rb create mode 100644 spec/lib/importer/tags_index_importer_spec.rb diff --git a/spec/lib/importer/accounts_index_importer_spec.rb b/spec/lib/importer/accounts_index_importer_spec.rb new file mode 100644 index 0000000000..73f9bce399 --- /dev/null +++ b/spec/lib/importer/accounts_index_importer_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Importer::AccountsIndexImporter do + describe 'import!' do + let(:pool) { Concurrent::FixedThreadPool.new(5) } + let(:importer) { described_class.new(batch_size: 123, executor: pool) } + + before { Fabricate(:account) } + + it 'indexes relevant accounts' do + expect { importer.import! }.to update_index(AccountsIndex) + end + end +end diff --git a/spec/lib/importer/statuses_index_importer_spec.rb b/spec/lib/importer/statuses_index_importer_spec.rb new file mode 100644 index 0000000000..d5e1c9f2cb --- /dev/null +++ b/spec/lib/importer/statuses_index_importer_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Importer::StatusesIndexImporter do + describe 'import!' do + let(:pool) { Concurrent::FixedThreadPool.new(5) } + let(:importer) { described_class.new(batch_size: 123, executor: pool) } + + before { Fabricate(:status) } + + it 'indexes relevant statuses' do + expect { importer.import! }.to update_index(StatusesIndex) + end + end +end diff --git a/spec/lib/importer/tags_index_importer_spec.rb b/spec/lib/importer/tags_index_importer_spec.rb new file mode 100644 index 0000000000..348990c01e --- /dev/null +++ b/spec/lib/importer/tags_index_importer_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Importer::TagsIndexImporter do + describe 'import!' do + let(:pool) { Concurrent::FixedThreadPool.new(5) } + let(:importer) { described_class.new(batch_size: 123, executor: pool) } + + before { Fabricate(:tag) } + + it 'indexes relevant tags' do + expect { importer.import! }.to update_index(TagsIndex) + end + end +end From a7a578a05553cc3ac34f6cd3c60b43117b309763 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 22 Mar 2023 09:15:22 -0400 Subject: [PATCH 0734/1220] Remove unused InstancePresenter methods (#24206) --- app/presenters/instance_presenter.rb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index 50e2a51566..25df4d85aa 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -22,10 +22,6 @@ class InstancePresenter < ActiveModelSerializers::Model ContactPresenter.new end - def closed_registrations_message - Setting.closed_registrations_message - end - def description Setting.site_short_description end @@ -34,10 +30,6 @@ class InstancePresenter < ActiveModelSerializers::Model Setting.site_extended_description end - def privacy_policy - Setting.site_terms - end - def status_page_url Setting.status_page_url end From 2626097869c9520c21aaba73c9bcfe72c0f25f28 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 22 Mar 2023 15:47:44 +0100 Subject: [PATCH 0735/1220] Fix Rails cache namespace being overriden with `v2` for cached statuses (#24202) --- app/controllers/concerns/cache_concern.rb | 4 ++-- app/models/status.rb | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index e606218acb..a5a9ba3e1f 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -187,7 +187,7 @@ module CacheConcern return [] if raw.empty? cached_keys_with_value = begin - Rails.cache.read_multi(*raw, namespace: 'v2').transform_keys(&:id).transform_values { |r| ActiveRecordCoder.load(r) } + Rails.cache.read_multi(*raw).transform_keys(&:id).transform_values { |r| ActiveRecordCoder.load(r) } rescue ActiveRecordCoder::Error {} # The serialization format may have changed, let's pretend it's a cache miss. end @@ -200,7 +200,7 @@ module CacheConcern uncached = klass.where(id: uncached_ids).with_includes.index_by(&:id) uncached.each_value do |item| - Rails.cache.write(item, ActiveRecordCoder.dump(item), namespace: 'v2') + Rails.cache.write(item, ActiveRecordCoder.dump(item)) end end diff --git a/app/models/status.rb b/app/models/status.rb index 2e32c3f16b..2757497db9 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -140,6 +140,10 @@ class Status < ApplicationRecord REAL_TIME_WINDOW = 6.hours + def cache_key + "v2:#{super}" + end + def searchable_by(preloaded = nil) ids = [] From b4f60bc6de4ece3b2ff908d31a0c34ddbbfacf2c Mon Sep 17 00:00:00 2001 From: mogamin <5103195+mgmn@users.noreply.github.com> Date: Tue, 21 Mar 2023 04:04:25 +0900 Subject: [PATCH 0736/1220] [Glitch] Fit the max-width of media in .prose to parent box Port 0a9def5498d9630bb9ebf1585f76b2af5fad5169 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/components/privacy_policy.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss index c99e99131d..93123075ee 100644 --- a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss +++ b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss @@ -26,11 +26,13 @@ img { margin-top: 2em; margin-bottom: 2em; + max-width: 100%; } video { margin-top: 2em; margin-bottom: 2em; + max-width: 100%; } figure { From 16da4a09e8bd7ce383487530b97ffa7dfa59b960 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 23 Mar 2023 05:17:29 +0100 Subject: [PATCH 0737/1220] Fix broken links in account gallery (#24218) --- .../features/account_gallery/components/media_item.jsx | 2 +- app/javascript/mastodon/selectors/index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.jsx b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx index 53b04acfd3..00526016d7 100644 --- a/app/javascript/mastodon/features/account_gallery/components/media_item.jsx +++ b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx @@ -74,7 +74,7 @@ export default class MediaItem extends ImmutablePureComponent { if (['audio', 'video'].includes(attachment.get('type'))) { content = ( {attachment.get('description')} { - const status = statuses.get(statusId); - medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status).set('account', account))); + const status = statuses.get(statusId).set('account', account); + medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status))); }); return medias; From b46125224c26bc0144659b4319ea416b01289961 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Mar 2023 04:47:13 -0400 Subject: [PATCH 0738/1220] Remove isNaN polyfill (#24224) --- app/javascript/mastodon/base_polyfills.js | 5 ----- app/javascript/mastodon/load_polyfills.js | 1 - package.json | 1 - yarn.lock | 8 -------- 4 files changed, 15 deletions(-) diff --git a/app/javascript/mastodon/base_polyfills.js b/app/javascript/mastodon/base_polyfills.js index 12096d9021..d3ac0d5108 100644 --- a/app/javascript/mastodon/base_polyfills.js +++ b/app/javascript/mastodon/base_polyfills.js @@ -4,7 +4,6 @@ import 'es6-symbol/implement'; import includes from 'array-includes'; import assign from 'object-assign'; import values from 'object.values'; -import isNaN from 'is-nan'; import { decode as decodeBase64 } from './utils/base64'; import promiseFinally from 'promise.prototype.finally'; @@ -20,10 +19,6 @@ if (!Object.values) { values.shim(); } -if (!Number.isNaN) { - Number.isNaN = isNaN; -} - promiseFinally.shim(); if (!HTMLCanvasElement.prototype.toBlob) { diff --git a/app/javascript/mastodon/load_polyfills.js b/app/javascript/mastodon/load_polyfills.js index f5a897f754..b2c41303aa 100644 --- a/app/javascript/mastodon/load_polyfills.js +++ b/app/javascript/mastodon/load_polyfills.js @@ -15,7 +15,6 @@ function loadPolyfills() { Array.prototype.includes && HTMLCanvasElement.prototype.toBlob && window.Intl && - Number.isNaN && Object.assign && Object.values && window.Symbol && diff --git a/package.json b/package.json index 247fe66ab4..ed9f72e8c3 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,6 @@ "intl": "^1.2.5", "intl-messageformat": "^2.2.0", "intl-relativeformat": "^6.4.3", - "is-nan": "^1.3.2", "js-yaml": "^4.1.0", "jsdom": "^21.1.1", "lodash": "^4.17.21", diff --git a/yarn.lock b/yarn.lock index d09efa23bc..3d63792469 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6108,14 +6108,6 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" From 81e85782d1cf595310180c3106ed92682045b5fd Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Thu, 23 Mar 2023 10:15:41 +0100 Subject: [PATCH 0739/1220] Fix docker images not being pushed (#2143) * Change repo from mastodon/mastodon to glitch-soc/mastodon Signed-off-by: Plastikmensch * Remove repo check from build-image workflow Reverts 0b8b0ef65221e5341cd81b212f0e40722ffd5ef7 Signed-off-by: Plastikmensch --------- Signed-off-by: Plastikmensch --- .github/workflows/build-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 25675c2188..97a363d1e6 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -49,7 +49,7 @@ jobs: platforms: linux/amd64,linux/arm64 provenance: false builder: ${{ steps.buildx.outputs.name }} - push: ${{ github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request' }} + push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha From 276e958dae06c8fdefaf2dc3a12e4c2a79007681 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Thu, 23 Mar 2023 11:19:09 +0100 Subject: [PATCH 0740/1220] Reset suffix_version to 1.0.0 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 9e1a5401a2..379d770ffc 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+2.1.1' + '+1.0.0' end def to_a From e7e189fa44f246f087e451cfd8333a99544ae0d3 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Mar 2023 17:49:47 -0400 Subject: [PATCH 0741/1220] Use Yarn production install for asset compile (#24232) --- .github/workflows/test-ruby.yml | 2 +- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index bfdabd4ea6..1be3e08e9b 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -40,7 +40,7 @@ jobs: ruby-version: .ruby-version bundler-cache: true - - run: yarn install --frozen-lockfile + - run: yarn --frozen-lockfile --production - name: Precompile assets # Previously had set this, but it's not supported # export NODE_OPTIONS=--openssl-legacy-provider diff --git a/Dockerfile b/Dockerfile index c2b18ce886..169d3af4f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,7 @@ RUN apt-get update && \ bundle config set --local without 'development test' && \ bundle config set silence_root_warning true && \ bundle install -j"$(nproc)" && \ - yarn install --pure-lockfile --network-timeout 600000 && \ + yarn install --pure-lockfile --production --network-timeout 600000 && \ yarn cache clean FROM node:${NODE_VERSION} From 503022d6f9c6a63ff005b048d56ea0efbaec2cdc Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Mar 2023 18:19:41 -0400 Subject: [PATCH 0742/1220] Exclude files for Rubocop Metrics/ClassLength (#24213) --- .rubocop.yml | 41 ++++++++++++++++++++++++++++++++++++++++- .rubocop_todo.yml | 4 ---- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 9e9240636f..1033db92d9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -59,10 +59,49 @@ Metrics/BlockNesting: Exclude: - 'lib/mastodon/*_cli.rb' +# Reason: Some Excluded files would be candidates for refactoring but not currently addressed +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsclasslength Metrics/ClassLength: - CountAsOne: [array, heredoc] + CountAsOne: ['array', 'hash', 'heredoc', 'method_call'] Exclude: - 'lib/mastodon/*_cli.rb' + - 'app/controllers/admin/accounts_controller.rb' + - 'app/controllers/api/base_controller.rb' + - 'app/controllers/api/v1/admin/accounts_controller.rb' + - 'app/controllers/application_controller.rb' + - 'app/controllers/auth/registrations_controller.rb' + - 'app/controllers/auth/sessions_controller.rb' + - 'app/lib/activitypub/activity.rb' + - 'app/lib/activitypub/activity/create.rb' + - 'app/lib/activitypub/tag_manager.rb' + - 'app/lib/feed_manager.rb' + - 'app/lib/link_details_extractor.rb' + - 'app/lib/request.rb' + - 'app/lib/text_formatter.rb' + - 'app/lib/user_settings_decorator.rb' + - 'app/mailers/user_mailer.rb' + - 'app/models/account.rb' + - 'app/models/admin/account_action.rb' + - 'app/models/form/account_batch.rb' + - 'app/models/media_attachment.rb' + - 'app/models/status.rb' + - 'app/models/tag.rb' + - 'app/models/user.rb' + - 'app/serializers/activitypub/actor_serializer.rb' + - 'app/serializers/activitypub/note_serializer.rb' + - 'app/serializers/rest/status_serializer.rb' + - 'app/services/account_search_service.rb' + - 'app/services/activitypub/process_account_service.rb' + - 'app/services/activitypub/process_status_update_service.rb' + - 'app/services/backup_service.rb' + - 'app/services/delete_account_service.rb' + - 'app/services/fan_out_on_write_service.rb' + - 'app/services/fetch_link_card_service.rb' + - 'app/services/import_service.rb' + - 'app/services/notify_service.rb' + - 'app/services/post_status_service.rb' + - 'app/services/update_status_service.rb' + - 'lib/paperclip/color_extractor.rb' Metrics/CyclomaticComplexity: Exclude: diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 3b4ff3597e..64a6b6b33a 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -243,10 +243,6 @@ Metrics/BlockNesting: Exclude: - 'lib/tasks/mastodon.rake' -# Configuration parameters: CountComments, CountAsOne. -Metrics/ClassLength: - Max: 375 - # Configuration parameters: AllowedMethods, AllowedPatterns. Metrics/CyclomaticComplexity: Max: 25 From d1b057a0ac41a5756b6a416d2f290b086cb59220 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Fri, 24 Mar 2023 11:17:53 +0900 Subject: [PATCH 0743/1220] Remove legacy decorators syntax (#18357) --- .eslintrc.js | 24 +++- .../mastodon/components/account.jsx | 3 +- .../components/admin/ReportReasonSelector.jsx | 3 +- .../mastodon/components/column_header.jsx | 3 +- .../components/dismissable_banner.jsx | 3 +- app/javascript/mastodon/components/domain.jsx | 3 +- .../components/edited_timestamp/index.jsx | 4 +- .../mastodon/components/inline_account.jsx | 3 +- .../mastodon/components/load_gap.jsx | 3 +- .../mastodon/components/media_gallery.jsx | 3 +- .../mastodon/components/navigation_portal.jsx | 2 +- .../picture_in_picture_placeholder.jsx | 3 +- app/javascript/mastodon/components/poll.jsx | 3 +- .../components/relative_timestamp.jsx | 3 +- .../mastodon/components/scrollable_list.jsx | 3 +- .../mastodon/components/server_banner.jsx | 4 +- app/javascript/mastodon/components/status.jsx | 3 +- .../mastodon/components/status_action_bar.jsx | 4 +- .../mastodon/components/status_content.jsx | 4 +- .../mastodon/features/about/index.jsx | 4 +- .../account/components/account_note.jsx | 3 +- .../account/components/featured_tags.jsx | 3 +- .../features/account/components/header.jsx | 3 +- .../mastodon/features/account/navigation.jsx | 3 +- .../features/account_gallery/index.jsx | 3 +- .../components/limited_account_hint.jsx | 3 +- .../features/account_timeline/index.jsx | 3 +- .../mastodon/features/audio/index.jsx | 3 +- .../mastodon/features/blocks/index.jsx | 4 +- .../features/bookmarked_statuses/index.jsx | 4 +- .../closed_registrations_modal/index.jsx | 3 +- .../components/column_settings.jsx | 3 +- .../features/community_timeline/index.jsx | 4 +- .../compose/components/action_bar.jsx | 3 +- .../compose/components/compose_form.jsx | 3 +- .../components/emoji_picker_dropdown.jsx | 8 +- .../compose/components/language_dropdown.jsx | 3 +- .../compose/components/poll_button.jsx | 4 +- .../features/compose/components/poll_form.jsx | 9 +- .../compose/components/privacy_dropdown.jsx | 3 +- .../compose/components/reply_indicator.jsx | 3 +- .../features/compose/components/search.jsx | 3 +- .../compose/components/search_results.jsx | 3 +- .../compose/components/upload_button.jsx | 4 +- .../mastodon/features/compose/index.jsx | 4 +- .../components/conversation.jsx | 3 +- .../features/direct_timeline/index.jsx | 4 +- .../directory/components/account_card.jsx | 5 +- .../mastodon/features/directory/index.jsx | 4 +- .../mastodon/features/domain_blocks/index.jsx | 4 +- .../mastodon/features/explore/index.jsx | 4 +- .../mastodon/features/explore/links.jsx | 3 +- .../mastodon/features/explore/results.jsx | 4 +- .../mastodon/features/explore/statuses.jsx | 3 +- .../mastodon/features/explore/suggestions.jsx | 3 +- .../mastodon/features/explore/tags.jsx | 3 +- .../features/favourited_statuses/index.jsx | 4 +- .../mastodon/features/favourites/index.jsx | 4 +- .../features/filters/added_to_filter.jsx | 3 +- .../features/filters/select_filter.jsx | 4 +- .../components/account.jsx | 4 +- .../features/follow_recommendations/index.jsx | 3 +- .../components/account_authorize.jsx | 3 +- .../features/follow_requests/index.jsx | 4 +- .../mastodon/features/followed_tags/index.jsx | 4 +- .../mastodon/features/followers/index.jsx | 3 +- .../mastodon/features/following/index.jsx | 3 +- .../components/announcements.jsx | 3 +- .../features/getting_started/index.jsx | 4 +- .../components/column_settings.jsx | 3 +- .../features/hashtag_timeline/index.jsx | 4 +- .../components/column_settings.jsx | 3 +- .../mastodon/features/home_timeline/index.jsx | 4 +- .../features/interaction_modal/index.jsx | 3 +- .../features/keyboard_shortcuts/index.jsx | 3 +- .../list_adder/components/account.jsx | 5 +- .../features/list_adder/components/list.jsx | 4 +- .../mastodon/features/list_adder/index.jsx | 4 +- .../list_editor/components/account.jsx | 4 +- .../list_editor/components/edit_list_form.jsx | 4 +- .../list_editor/components/search.jsx | 4 +- .../mastodon/features/list_editor/index.jsx | 4 +- .../mastodon/features/list_timeline/index.jsx | 4 +- .../lists/components/new_list_form.jsx | 4 +- .../mastodon/features/lists/index.jsx | 4 +- .../mastodon/features/mutes/index.jsx | 4 +- .../notifications/components/filter_bar.jsx | 3 +- .../components/follow_request.jsx | 9 +- .../notifications/components/notification.jsx | 3 +- .../notifications_permission_banner.jsx | 4 +- .../notifications/components/report.jsx | 3 +- .../mastodon/features/notifications/index.jsx | 4 +- .../picture_in_picture/components/footer.jsx | 4 +- .../picture_in_picture/components/header.jsx | 4 +- .../features/picture_in_picture/index.jsx | 3 +- .../features/pinned_statuses/index.jsx | 4 +- .../features/privacy_policy/index.jsx | 3 +- .../components/column_settings.jsx | 3 +- .../features/public_timeline/index.jsx | 4 +- .../mastodon/features/reblogs/index.jsx | 4 +- .../mastodon/features/report/category.jsx | 4 +- .../mastodon/features/report/comment.jsx | 3 +- .../report/components/status_check_box.jsx | 3 +- .../mastodon/features/report/rules.jsx | 3 +- .../mastodon/features/report/statuses.jsx | 3 +- .../mastodon/features/report/thanks.jsx | 3 +- .../features/status/components/action_bar.jsx | 4 +- .../status/components/detailed_status.jsx | 3 +- .../mastodon/features/status/index.jsx | 4 +- .../subscribed_languages_modal/index.jsx | 4 +- .../features/ui/components/audio_modal.jsx | 3 +- .../features/ui/components/block_modal.jsx | 4 +- .../features/ui/components/boost_modal.jsx | 4 +- .../ui/components/bundle_column_error.jsx | 3 +- .../ui/components/compare_history_modal.jsx | 3 +- .../features/ui/components/compose_panel.jsx | 3 +- .../ui/components/confirmation_modal.jsx | 3 +- .../ui/components/disabled_account_banner.jsx | 4 +- .../features/ui/components/embed_modal.jsx | 3 +- .../features/ui/components/filter_modal.jsx | 4 +- .../ui/components/focal_point_modal.jsx | 6 +- .../follow_requests_column_link.jsx | 4 +- .../features/ui/components/header.jsx | 4 +- .../features/ui/components/image_modal.jsx | 3 +- .../features/ui/components/link_footer.jsx | 4 +- .../features/ui/components/list_panel.jsx | 4 +- .../features/ui/components/media_modal.jsx | 4 +- .../features/ui/components/mute_modal.jsx | 4 +- .../ui/components/navigation_panel.jsx | 3 +- .../features/ui/components/report_modal.jsx | 4 +- .../features/ui/components/video_modal.jsx | 3 +- .../features/ui/components/zoomable_image.jsx | 3 +- app/javascript/mastodon/features/ui/index.jsx | 5 +- .../mastodon/features/video/index.jsx | 3 +- babel.config.js | 1 - package.json | 1 - yarn.lock | 125 ++++++++++++++---- 137 files changed, 396 insertions(+), 236 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 606a87e415..faed3c54a5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -32,10 +32,14 @@ module.exports = { parserOptions: { sourceType: 'module', ecmaFeatures: { - experimentalObjectRestSpread: true, jsx: true, }, ecmaVersion: 2021, + requireConfigFile: false, + babelOptions: { + configFile: false, + presets: ['@babel/react', '@babel/env'], + }, }, settings: { @@ -214,4 +218,22 @@ module.exports = { 'promise/no-nesting': 'off', 'promise/no-promise-in-callback': 'off', }, + + overrides: [ + { + files: [ + '*.config.js', + '.*rc.js', + 'ide-helper.js', + ], + + env: { + commonjs: true, + }, + + parserOptions: { + sourceType: 'script', + }, + }, + ], }; diff --git a/app/javascript/mastodon/components/account.jsx b/app/javascript/mastodon/components/account.jsx index 7706c3f88a..7aaa668fe0 100644 --- a/app/javascript/mastodon/components/account.jsx +++ b/app/javascript/mastodon/components/account.jsx @@ -23,7 +23,6 @@ const messages = defineMessages({ block: { id: 'account.block', defaultMessage: 'Block @{name}' }, }); -export default @injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -155,3 +154,5 @@ class Account extends ImmutablePureComponent { } } + +export default injectIntl(Account); diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx index 1f91d25175..58a861fde6 100644 --- a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx +++ b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx @@ -84,7 +84,6 @@ class Rule extends React.PureComponent { } -export default @injectIntl class ReportReasonSelector extends React.PureComponent { static propTypes = { @@ -157,3 +156,5 @@ class ReportReasonSelector extends React.PureComponent { } } + +export default injectIntl(ReportReasonSelector); diff --git a/app/javascript/mastodon/components/column_header.jsx b/app/javascript/mastodon/components/column_header.jsx index 9ba783d903..afc526f27f 100644 --- a/app/javascript/mastodon/components/column_header.jsx +++ b/app/javascript/mastodon/components/column_header.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ moveRight: { id: 'column_header.moveRight_settings', defaultMessage: 'Move column to the right' }, }); -export default @injectIntl class ColumnHeader extends React.PureComponent { static contextTypes = { @@ -209,3 +208,5 @@ class ColumnHeader extends React.PureComponent { } } + +export default injectIntl(ColumnHeader); diff --git a/app/javascript/mastodon/components/dismissable_banner.jsx b/app/javascript/mastodon/components/dismissable_banner.jsx index 47ca7e4bc7..242021e764 100644 --- a/app/javascript/mastodon/components/dismissable_banner.jsx +++ b/app/javascript/mastodon/components/dismissable_banner.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' }, }); -export default @injectIntl class DismissableBanner extends React.PureComponent { static propTypes = { @@ -49,3 +48,5 @@ class DismissableBanner extends React.PureComponent { } } + +export default injectIntl(DismissableBanner); diff --git a/app/javascript/mastodon/components/domain.jsx b/app/javascript/mastodon/components/domain.jsx index e09fa45910..85ebdbde93 100644 --- a/app/javascript/mastodon/components/domain.jsx +++ b/app/javascript/mastodon/components/domain.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, }); -export default @injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -40,3 +39,5 @@ class Account extends ImmutablePureComponent { } } + +export default injectIntl(Account); diff --git a/app/javascript/mastodon/components/edited_timestamp/index.jsx b/app/javascript/mastodon/components/edited_timestamp/index.jsx index b30d885723..1513f93619 100644 --- a/app/javascript/mastodon/components/edited_timestamp/index.jsx +++ b/app/javascript/mastodon/components/edited_timestamp/index.jsx @@ -16,8 +16,6 @@ const mapDispatchToProps = (dispatch, { statusId }) => ({ }); -export default @connect(null, mapDispatchToProps) -@injectIntl class EditedTimestamp extends React.PureComponent { static propTypes = { @@ -68,3 +66,5 @@ class EditedTimestamp extends React.PureComponent { } } + +export default connect(null, mapDispatchToProps)(injectIntl(EditedTimestamp)); diff --git a/app/javascript/mastodon/components/inline_account.jsx b/app/javascript/mastodon/components/inline_account.jsx index a1b4955904..31dc63f93f 100644 --- a/app/javascript/mastodon/components/inline_account.jsx +++ b/app/javascript/mastodon/components/inline_account.jsx @@ -14,7 +14,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) class InlineAccount extends React.PureComponent { static propTypes = { @@ -32,3 +31,5 @@ class InlineAccount extends React.PureComponent { } } + +export default connect(makeMapStateToProps)(InlineAccount); diff --git a/app/javascript/mastodon/components/load_gap.jsx b/app/javascript/mastodon/components/load_gap.jsx index c50b245fcd..2c91d37be7 100644 --- a/app/javascript/mastodon/components/load_gap.jsx +++ b/app/javascript/mastodon/components/load_gap.jsx @@ -7,7 +7,6 @@ const messages = defineMessages({ load_more: { id: 'status.load_more', defaultMessage: 'Load more' }, }); -export default @injectIntl class LoadGap extends React.PureComponent { static propTypes = { @@ -32,3 +31,5 @@ class LoadGap extends React.PureComponent { } } + +export default injectIntl(LoadGap); diff --git a/app/javascript/mastodon/components/media_gallery.jsx b/app/javascript/mastodon/components/media_gallery.jsx index f869bd62d1..5be0070a33 100644 --- a/app/javascript/mastodon/components/media_gallery.jsx +++ b/app/javascript/mastodon/components/media_gallery.jsx @@ -223,7 +223,6 @@ class Item extends React.PureComponent { } -export default @injectIntl class MediaGallery extends React.PureComponent { static propTypes = { @@ -369,3 +368,5 @@ class MediaGallery extends React.PureComponent { } } + +export default injectIntl(MediaGallery); diff --git a/app/javascript/mastodon/components/navigation_portal.jsx b/app/javascript/mastodon/components/navigation_portal.jsx index 45407be43e..a100dc04a6 100644 --- a/app/javascript/mastodon/components/navigation_portal.jsx +++ b/app/javascript/mastodon/components/navigation_portal.jsx @@ -15,7 +15,6 @@ const DefaultNavigation = () => ( ); -export default @withRouter class NavigationPortal extends React.PureComponent { render () { @@ -33,3 +32,4 @@ class NavigationPortal extends React.PureComponent { } } +export default withRouter(NavigationPortal); diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx index 0effddef98..c8aa8f7579 100644 --- a/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx +++ b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx @@ -6,7 +6,6 @@ import { connect } from 'react-redux'; import { debounce } from 'lodash'; import { FormattedMessage } from 'react-intl'; -export default @connect() class PictureInPicturePlaceholder extends React.PureComponent { static propTypes = { @@ -67,3 +66,5 @@ class PictureInPicturePlaceholder extends React.PureComponent { } } + +export default connect()(PictureInPicturePlaceholder); diff --git a/app/javascript/mastodon/components/poll.jsx b/app/javascript/mastodon/components/poll.jsx index 7efedfe345..360557d007 100644 --- a/app/javascript/mastodon/components/poll.jsx +++ b/app/javascript/mastodon/components/poll.jsx @@ -31,7 +31,6 @@ const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => { return obj; }, {}); -export default @injectIntl class Poll extends ImmutablePureComponent { static contextTypes = { @@ -234,3 +233,5 @@ class Poll extends ImmutablePureComponent { } } + +export default injectIntl(Poll); diff --git a/app/javascript/mastodon/components/relative_timestamp.jsx b/app/javascript/mastodon/components/relative_timestamp.jsx index 5124803392..e6c3e08805 100644 --- a/app/javascript/mastodon/components/relative_timestamp.jsx +++ b/app/javascript/mastodon/components/relative_timestamp.jsx @@ -121,7 +121,6 @@ const timeRemainingString = (intl, date, now, timeGiven = true) => { return relativeTime; }; -export default @injectIntl class RelativeTimestamp extends React.Component { static propTypes = { @@ -197,3 +196,5 @@ class RelativeTimestamp extends React.Component { } } + +export default injectIntl(RelativeTimestamp); diff --git a/app/javascript/mastodon/components/scrollable_list.jsx b/app/javascript/mastodon/components/scrollable_list.jsx index 4a6ffb149c..57bc881218 100644 --- a/app/javascript/mastodon/components/scrollable_list.jsx +++ b/app/javascript/mastodon/components/scrollable_list.jsx @@ -20,7 +20,6 @@ const mapStateToProps = (state, { scrollKey }) => { }; }; -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class ScrollableList extends PureComponent { static contextTypes = { @@ -365,3 +364,5 @@ class ScrollableList extends PureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(ScrollableList); diff --git a/app/javascript/mastodon/components/server_banner.jsx b/app/javascript/mastodon/components/server_banner.jsx index 617fdecdfe..c21e414b4a 100644 --- a/app/javascript/mastodon/components/server_banner.jsx +++ b/app/javascript/mastodon/components/server_banner.jsx @@ -18,8 +18,6 @@ const mapStateToProps = state => ({ server: state.getIn(['server', 'server']), }); -export default @connect(mapStateToProps) -@injectIntl class ServerBanner extends React.PureComponent { static propTypes = { @@ -91,3 +89,5 @@ class ServerBanner extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(ServerBanner)); diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index a48230bafa..2d200a55b0 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -59,7 +59,6 @@ const messages = defineMessages({ edited: { id: 'status.edited', defaultMessage: 'Edited {date}' }, }); -export default @injectIntl class Status extends ImmutablePureComponent { static contextTypes = { @@ -549,3 +548,5 @@ class Status extends ImmutablePureComponent { } } + +export default injectIntl(Status); diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index eeb376561c..08e37e0892 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -53,8 +53,6 @@ const mapStateToProps = (state, { status }) => ({ relationship: state.getIn(['relationships', status.getIn(['account', 'id'])]), }); -export default @connect(mapStateToProps) -@injectIntl class StatusActionBar extends ImmutablePureComponent { static contextTypes = { @@ -385,3 +383,5 @@ class StatusActionBar extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(StatusActionBar)); diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index 67a487b007..8d3a80248d 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -52,8 +52,6 @@ const mapStateToProps = state => ({ languages: state.getIn(['server', 'translationLanguages', 'items']), }); -export default @connect(mapStateToProps) -@injectIntl class StatusContent extends React.PureComponent { static contextTypes = { @@ -311,3 +309,5 @@ class StatusContent extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(StatusContent)); diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx index dc1942c631..aa3d5b7f83 100644 --- a/app/javascript/mastodon/features/about/index.jsx +++ b/app/javascript/mastodon/features/about/index.jsx @@ -80,8 +80,6 @@ class Section extends React.PureComponent { } -export default @connect(mapStateToProps) -@injectIntl class About extends React.PureComponent { static propTypes = { @@ -217,3 +215,5 @@ class About extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(About)); diff --git a/app/javascript/mastodon/features/account/components/account_note.jsx b/app/javascript/mastodon/features/account/components/account_note.jsx index fdacc7583c..5201ebd4dc 100644 --- a/app/javascript/mastodon/features/account/components/account_note.jsx +++ b/app/javascript/mastodon/features/account/components/account_note.jsx @@ -43,7 +43,6 @@ class InlineAlert extends React.PureComponent { } -export default @injectIntl class AccountNote extends ImmutablePureComponent { static propTypes = { @@ -168,3 +167,5 @@ class AccountNote extends ImmutablePureComponent { } } + +export default injectIntl(AccountNote); diff --git a/app/javascript/mastodon/features/account/components/featured_tags.jsx b/app/javascript/mastodon/features/account/components/featured_tags.jsx index 24a3f21714..52aa232caf 100644 --- a/app/javascript/mastodon/features/account/components/featured_tags.jsx +++ b/app/javascript/mastodon/features/account/components/featured_tags.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, }); -export default @injectIntl class FeaturedTags extends ImmutablePureComponent { static contextTypes = { @@ -50,3 +49,5 @@ class FeaturedTags extends ImmutablePureComponent { } } + +export default injectIntl(FeaturedTags); diff --git a/app/javascript/mastodon/features/account/components/header.jsx b/app/javascript/mastodon/features/account/components/header.jsx index 539d725741..be6b178969 100644 --- a/app/javascript/mastodon/features/account/components/header.jsx +++ b/app/javascript/mastodon/features/account/components/header.jsx @@ -76,7 +76,6 @@ const dateFormatOptions = { minute: '2-digit', }; -export default @injectIntl class Header extends ImmutablePureComponent { static contextTypes = { @@ -419,3 +418,5 @@ class Header extends ImmutablePureComponent { } } + +export default injectIntl(Header); diff --git a/app/javascript/mastodon/features/account/navigation.jsx b/app/javascript/mastodon/features/account/navigation.jsx index eb9ff9a954..07dc3757cc 100644 --- a/app/javascript/mastodon/features/account/navigation.jsx +++ b/app/javascript/mastodon/features/account/navigation.jsx @@ -19,7 +19,6 @@ const mapStateToProps = (state, { match: { params: { acct } } }) => { }; }; -export default @connect(mapStateToProps) class AccountNavigation extends React.PureComponent { static propTypes = { @@ -50,3 +49,5 @@ class AccountNavigation extends React.PureComponent { } } + +export default connect(mapStateToProps)(AccountNavigation); diff --git a/app/javascript/mastodon/features/account_gallery/index.jsx b/app/javascript/mastodon/features/account_gallery/index.jsx index 3942b57cb8..db76507dbf 100644 --- a/app/javascript/mastodon/features/account_gallery/index.jsx +++ b/app/javascript/mastodon/features/account_gallery/index.jsx @@ -60,7 +60,6 @@ class LoadMoreMedia extends ImmutablePureComponent { } -export default @connect(mapStateToProps) class AccountGallery extends ImmutablePureComponent { static propTypes = { @@ -226,3 +225,5 @@ class AccountGallery extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(AccountGallery); diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx index 9ee347bb5d..e6a1114706 100644 --- a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx +++ b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx @@ -14,7 +14,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({ }); -export default @connect(() => {}, mapDispatchToProps) class LimitedAccountHint extends React.PureComponent { static propTypes = { @@ -34,3 +33,5 @@ class LimitedAccountHint extends React.PureComponent { } } + +export default connect(() => {}, mapDispatchToProps)(LimitedAccountHint); diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx index 337977fded..d775636840 100644 --- a/app/javascript/mastodon/features/account_timeline/index.jsx +++ b/app/javascript/mastodon/features/account_timeline/index.jsx @@ -64,7 +64,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class AccountTimeline extends ImmutablePureComponent { static propTypes = { @@ -206,3 +205,5 @@ class AccountTimeline extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(AccountTimeline); diff --git a/app/javascript/mastodon/features/audio/index.jsx b/app/javascript/mastodon/features/audio/index.jsx index 9a9de02ae8..b0c6eeee62 100644 --- a/app/javascript/mastodon/features/audio/index.jsx +++ b/app/javascript/mastodon/features/audio/index.jsx @@ -22,7 +22,6 @@ const messages = defineMessages({ const TICK_SIZE = 10; const PADDING = 180; -export default @injectIntl class Audio extends React.PureComponent { static propTypes = { @@ -569,3 +568,5 @@ class Audio extends React.PureComponent { } } + +export default injectIntl(Audio); diff --git a/app/javascript/mastodon/features/blocks/index.jsx b/app/javascript/mastodon/features/blocks/index.jsx index e00f2b60e0..38616ba844 100644 --- a/app/javascript/mastodon/features/blocks/index.jsx +++ b/app/javascript/mastodon/features/blocks/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['user_lists', 'blocks', 'isLoading'], true), }); -export default @connect(mapStateToProps) -@injectIntl class Blocks extends ImmutablePureComponent { static propTypes = { @@ -77,3 +75,5 @@ class Blocks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Blocks)); diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.jsx b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx index 8ef7855c19..46fff856e4 100644 --- a/app/javascript/mastodon/features/bookmarked_statuses/index.jsx +++ b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Bookmarks extends ImmutablePureComponent { static propTypes = { @@ -106,3 +104,5 @@ class Bookmarks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Bookmarks)); diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.jsx b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx index e6540e825d..40df804f2d 100644 --- a/app/javascript/mastodon/features/closed_registrations_modal/index.jsx +++ b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx @@ -9,7 +9,6 @@ const mapStateToProps = state => ({ message: state.getIn(['server', 'server', 'registrations', 'message']), }); -export default @connect(mapStateToProps) class ClosedRegistrationsModal extends ImmutablePureComponent { componentDidMount () { @@ -73,3 +72,5 @@ class ClosedRegistrationsModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(ClosedRegistrationsModal); diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx index 0cb6db8836..d6181919ab 100644 --- a/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx +++ b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx @@ -4,7 +4,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { injectIntl, FormattedMessage } from 'react-intl'; import SettingToggle from '../../notifications/components/setting_toggle'; -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -27,3 +26,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/mastodon/features/community_timeline/index.jsx b/app/javascript/mastodon/features/community_timeline/index.jsx index 4dbd55cf2f..e41d11bb5c 100644 --- a/app/javascript/mastodon/features/community_timeline/index.jsx +++ b/app/javascript/mastodon/features/community_timeline/index.jsx @@ -30,8 +30,6 @@ const mapStateToProps = (state, { columnId }) => { }; }; -export default @connect(mapStateToProps) -@injectIntl class CommunityTimeline extends React.PureComponent { static contextTypes = { @@ -158,3 +156,5 @@ class CommunityTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(CommunityTimeline)); diff --git a/app/javascript/mastodon/features/compose/components/action_bar.jsx b/app/javascript/mastodon/features/compose/components/action_bar.jsx index ee584cb1ba..13760582ec 100644 --- a/app/javascript/mastodon/features/compose/components/action_bar.jsx +++ b/app/javascript/mastodon/features/compose/components/action_bar.jsx @@ -20,7 +20,6 @@ const messages = defineMessages({ bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, }); -export default @injectIntl class ActionBar extends React.PureComponent { static propTypes = { @@ -65,3 +64,5 @@ class ActionBar extends React.PureComponent { } } + +export default injectIntl(ActionBar); diff --git a/app/javascript/mastodon/features/compose/components/compose_form.jsx b/app/javascript/mastodon/features/compose/components/compose_form.jsx index e641d59f4d..4a8f403016 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.jsx +++ b/app/javascript/mastodon/features/compose/components/compose_form.jsx @@ -31,7 +31,6 @@ const messages = defineMessages({ saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' }, }); -export default @injectIntl class ComposeForm extends ImmutablePureComponent { static contextTypes = { @@ -299,3 +298,5 @@ class ComposeForm extends ImmutablePureComponent { } } + +export default injectIntl(ComposeForm); diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx index 79378454d0..4fb131b476 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx @@ -144,8 +144,7 @@ class ModifierPicker extends React.PureComponent { } -@injectIntl -class EmojiPickerMenu extends React.PureComponent { +class EmojiPickerMenuImpl extends React.PureComponent { static propTypes = { custom_emojis: ImmutablePropTypes.list, @@ -305,7 +304,8 @@ class EmojiPickerMenu extends React.PureComponent { } -export default @injectIntl +const EmojiPickerMenu = injectIntl(EmojiPickerMenuImpl); + class EmojiPickerDropdown extends React.PureComponent { static propTypes = { @@ -409,3 +409,5 @@ class EmojiPickerDropdown extends React.PureComponent { } } + +export default injectIntl(EmojiPickerDropdown); diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx index 82547e0793..908cb61a75 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx @@ -237,7 +237,6 @@ class LanguageDropdownMenu extends React.PureComponent { } -export default @injectIntl class LanguageDropdown extends React.PureComponent { static propTypes = { @@ -325,3 +324,5 @@ class LanguageDropdown extends React.PureComponent { } } + +export default injectIntl(LanguageDropdown); diff --git a/app/javascript/mastodon/features/compose/components/poll_button.jsx b/app/javascript/mastodon/features/compose/components/poll_button.jsx index ff7a104aa0..6ad689ccc8 100644 --- a/app/javascript/mastodon/features/compose/components/poll_button.jsx +++ b/app/javascript/mastodon/features/compose/components/poll_button.jsx @@ -13,8 +13,6 @@ const iconStyle = { lineHeight: '27px', }; -export default -@injectIntl class PollButton extends React.PureComponent { static propTypes = { @@ -53,3 +51,5 @@ class PollButton extends React.PureComponent { } } + +export default injectIntl(PollButton); diff --git a/app/javascript/mastodon/features/compose/components/poll_form.jsx b/app/javascript/mastodon/features/compose/components/poll_form.jsx index bb03f6f662..c5a8f8ca7f 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.jsx +++ b/app/javascript/mastodon/features/compose/components/poll_form.jsx @@ -20,8 +20,7 @@ const messages = defineMessages({ days: { id: 'intervals.full.days', defaultMessage: '{number, plural, one {# day} other {# days}}' }, }); -@injectIntl -class Option extends React.PureComponent { +class OptionIntl extends React.PureComponent { static propTypes = { title: PropTypes.string.isRequired, @@ -113,8 +112,8 @@ class Option extends React.PureComponent { } -export default -@injectIntl +const Option = injectIntl(OptionIntl); + class PollForm extends ImmutablePureComponent { static propTypes = { @@ -180,3 +179,5 @@ class PollForm extends ImmutablePureComponent { } } + +export default injectIntl(PollForm); diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx index ffd1094cd3..6c4b1064e6 100644 --- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx @@ -132,7 +132,6 @@ class PrivacyDropdownMenu extends React.PureComponent { } -export default @injectIntl class PrivacyDropdown extends React.PureComponent { static propTypes = { @@ -285,3 +284,5 @@ class PrivacyDropdown extends React.PureComponent { } } + +export default injectIntl(PrivacyDropdown); diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.jsx b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx index 98b142ab86..81de4ea765 100644 --- a/app/javascript/mastodon/features/compose/components/reply_indicator.jsx +++ b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' }, }); -export default @injectIntl class ReplyIndicator extends ImmutablePureComponent { static contextTypes = { @@ -69,3 +68,5 @@ class ReplyIndicator extends ImmutablePureComponent { } } + +export default injectIntl(ReplyIndicator); diff --git a/app/javascript/mastodon/features/compose/components/search.jsx b/app/javascript/mastodon/features/compose/components/search.jsx index 0539c6b808..5d2d8d194f 100644 --- a/app/javascript/mastodon/features/compose/components/search.jsx +++ b/app/javascript/mastodon/features/compose/components/search.jsx @@ -32,7 +32,6 @@ class SearchPopout extends React.PureComponent { } -export default @injectIntl class Search extends React.PureComponent { static contextTypes = { @@ -145,3 +144,5 @@ class Search extends React.PureComponent { } } + +export default injectIntl(Search); diff --git a/app/javascript/mastodon/features/compose/components/search_results.jsx b/app/javascript/mastodon/features/compose/components/search_results.jsx index 44ab43638b..78da3ca274 100644 --- a/app/javascript/mastodon/features/compose/components/search_results.jsx +++ b/app/javascript/mastodon/features/compose/components/search_results.jsx @@ -14,7 +14,6 @@ const messages = defineMessages({ dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' }, }); -export default @injectIntl class SearchResults extends ImmutablePureComponent { static propTypes = { @@ -138,3 +137,5 @@ class SearchResults extends ImmutablePureComponent { } } + +export default injectIntl(SearchResults); diff --git a/app/javascript/mastodon/features/compose/components/upload_button.jsx b/app/javascript/mastodon/features/compose/components/upload_button.jsx index 964340d827..f2e6ff85c3 100644 --- a/app/javascript/mastodon/features/compose/components/upload_button.jsx +++ b/app/javascript/mastodon/features/compose/components/upload_button.jsx @@ -23,8 +23,6 @@ const iconStyle = { lineHeight: '27px', }; -export default @connect(makeMapStateToProps) -@injectIntl class UploadButton extends ImmutablePureComponent { static propTypes = { @@ -81,3 +79,5 @@ class UploadButton extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(UploadButton)); diff --git a/app/javascript/mastodon/features/compose/index.jsx b/app/javascript/mastodon/features/compose/index.jsx index 4b30d09aea..6cba1e9ad8 100644 --- a/app/javascript/mastodon/features/compose/index.jsx +++ b/app/javascript/mastodon/features/compose/index.jsx @@ -38,8 +38,6 @@ const mapStateToProps = (state, ownProps) => ({ showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : false, }); -export default @connect(mapStateToProps) -@injectIntl class Compose extends React.PureComponent { static propTypes = { @@ -148,3 +146,5 @@ class Compose extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Compose)); diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx index fbdff1bdd0..5996dd6663 100644 --- a/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx +++ b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx @@ -24,7 +24,6 @@ const messages = defineMessages({ unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, }); -export default @injectIntl class Conversation extends ImmutablePureComponent { static contextTypes = { @@ -198,3 +197,5 @@ class Conversation extends ImmutablePureComponent { } } + +export default injectIntl(Conversation); diff --git a/app/javascript/mastodon/features/direct_timeline/index.jsx b/app/javascript/mastodon/features/direct_timeline/index.jsx index a45965bb20..e2667d8e94 100644 --- a/app/javascript/mastodon/features/direct_timeline/index.jsx +++ b/app/javascript/mastodon/features/direct_timeline/index.jsx @@ -14,8 +14,6 @@ const messages = defineMessages({ title: { id: 'column.direct', defaultMessage: 'Direct messages' }, }); -export default @connect() -@injectIntl class DirectTimeline extends React.PureComponent { static propTypes = { @@ -105,3 +103,5 @@ class DirectTimeline extends React.PureComponent { } } + +export default connect()(injectIntl(DirectTimeline)); diff --git a/app/javascript/mastodon/features/directory/components/account_card.jsx b/app/javascript/mastodon/features/directory/components/account_card.jsx index 15c8ad3039..1cee3a4e4e 100644 --- a/app/javascript/mastodon/features/directory/components/account_card.jsx +++ b/app/javascript/mastodon/features/directory/components/account_card.jsx @@ -91,9 +91,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }); -export default -@injectIntl -@connect(makeMapStateToProps, mapDispatchToProps) class AccountCard extends ImmutablePureComponent { static propTypes = { @@ -233,3 +230,5 @@ class AccountCard extends ImmutablePureComponent { } } + +export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(AccountCard)); diff --git a/app/javascript/mastodon/features/directory/index.jsx b/app/javascript/mastodon/features/directory/index.jsx index bb5e021cc9..afaf39b773 100644 --- a/app/javascript/mastodon/features/directory/index.jsx +++ b/app/javascript/mastodon/features/directory/index.jsx @@ -29,8 +29,6 @@ const mapStateToProps = state => ({ domain: state.getIn(['meta', 'domain']), }); -export default @connect(mapStateToProps) -@injectIntl class Directory extends React.PureComponent { static contextTypes = { @@ -176,3 +174,5 @@ class Directory extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Directory)); diff --git a/app/javascript/mastodon/features/domain_blocks/index.jsx b/app/javascript/mastodon/features/domain_blocks/index.jsx index 43b275c2d9..0c22aa2396 100644 --- a/app/javascript/mastodon/features/domain_blocks/index.jsx +++ b/app/javascript/mastodon/features/domain_blocks/index.jsx @@ -23,8 +23,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['domain_lists', 'blocks', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Blocks extends ImmutablePureComponent { static propTypes = { @@ -81,3 +79,5 @@ class Blocks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Blocks)); diff --git a/app/javascript/mastodon/features/explore/index.jsx b/app/javascript/mastodon/features/explore/index.jsx index d91755ff64..569b8612c3 100644 --- a/app/javascript/mastodon/features/explore/index.jsx +++ b/app/javascript/mastodon/features/explore/index.jsx @@ -24,8 +24,6 @@ const mapStateToProps = state => ({ isSearching: state.getIn(['search', 'submitted']) || !showTrends, }); -export default @connect(mapStateToProps) -@injectIntl class Explore extends React.PureComponent { static contextTypes = { @@ -105,3 +103,5 @@ class Explore extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Explore)); diff --git a/app/javascript/mastodon/features/explore/links.jsx b/app/javascript/mastodon/features/explore/links.jsx index b47fc8fcf7..1937399161 100644 --- a/app/javascript/mastodon/features/explore/links.jsx +++ b/app/javascript/mastodon/features/explore/links.jsx @@ -13,7 +13,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['trends', 'links', 'isLoading']), }); -export default @connect(mapStateToProps) class Links extends React.PureComponent { static propTypes = { @@ -68,3 +67,5 @@ class Links extends React.PureComponent { } } + +export default connect(mapStateToProps)(Links); diff --git a/app/javascript/mastodon/features/explore/results.jsx b/app/javascript/mastodon/features/explore/results.jsx index b2f6c72b74..27132f1328 100644 --- a/app/javascript/mastodon/features/explore/results.jsx +++ b/app/javascript/mastodon/features/explore/results.jsx @@ -42,8 +42,6 @@ const renderStatuses = (results, onLoadMore) => appendLoadMore('statuses', resul )), onLoadMore); -export default @connect(mapStateToProps) -@injectIntl class Results extends React.PureComponent { static propTypes = { @@ -124,3 +122,5 @@ class Results extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Results)); diff --git a/app/javascript/mastodon/features/explore/statuses.jsx b/app/javascript/mastodon/features/explore/statuses.jsx index b027487d58..a98a6d0465 100644 --- a/app/javascript/mastodon/features/explore/statuses.jsx +++ b/app/javascript/mastodon/features/explore/statuses.jsx @@ -14,7 +14,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'trending', 'next']), }); -export default @connect(mapStateToProps) class Statuses extends React.PureComponent { static propTypes = { @@ -62,3 +61,5 @@ class Statuses extends React.PureComponent { } } + +export default connect(mapStateToProps)(Statuses); diff --git a/app/javascript/mastodon/features/explore/suggestions.jsx b/app/javascript/mastodon/features/explore/suggestions.jsx index e6ad09974c..53eb7ba4b4 100644 --- a/app/javascript/mastodon/features/explore/suggestions.jsx +++ b/app/javascript/mastodon/features/explore/suggestions.jsx @@ -12,7 +12,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['suggestions', 'isLoading']), }); -export default @connect(mapStateToProps) class Suggestions extends React.PureComponent { static propTypes = { @@ -49,3 +48,5 @@ class Suggestions extends React.PureComponent { } } + +export default connect(mapStateToProps)(Suggestions); diff --git a/app/javascript/mastodon/features/explore/tags.jsx b/app/javascript/mastodon/features/explore/tags.jsx index 258dc392f2..3ba813c3f8 100644 --- a/app/javascript/mastodon/features/explore/tags.jsx +++ b/app/javascript/mastodon/features/explore/tags.jsx @@ -13,7 +13,6 @@ const mapStateToProps = state => ({ isLoadingHashtags: state.getIn(['trends', 'tags', 'isLoading']), }); -export default @connect(mapStateToProps) class Tags extends React.PureComponent { static propTypes = { @@ -60,3 +59,5 @@ class Tags extends React.PureComponent { } } + +export default connect(mapStateToProps)(Tags); diff --git a/app/javascript/mastodon/features/favourited_statuses/index.jsx b/app/javascript/mastodon/features/favourited_statuses/index.jsx index 89093f682b..2cbf002919 100644 --- a/app/javascript/mastodon/features/favourited_statuses/index.jsx +++ b/app/javascript/mastodon/features/favourited_statuses/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'favourites', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Favourites extends ImmutablePureComponent { static propTypes = { @@ -106,3 +104,5 @@ class Favourites extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Favourites)); diff --git a/app/javascript/mastodon/features/favourites/index.jsx b/app/javascript/mastodon/features/favourites/index.jsx index 7179e64700..b1e81debd5 100644 --- a/app/javascript/mastodon/features/favourites/index.jsx +++ b/app/javascript/mastodon/features/favourites/index.jsx @@ -21,8 +21,6 @@ const mapStateToProps = (state, props) => ({ accountIds: state.getIn(['user_lists', 'favourited_by', props.params.statusId]), }); -export default @connect(mapStateToProps) -@injectIntl class Favourites extends ImmutablePureComponent { static propTypes = { @@ -90,3 +88,5 @@ class Favourites extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Favourites)); diff --git a/app/javascript/mastodon/features/filters/added_to_filter.jsx b/app/javascript/mastodon/features/filters/added_to_filter.jsx index 3785eb3c5a..d935d96e29 100644 --- a/app/javascript/mastodon/features/filters/added_to_filter.jsx +++ b/app/javascript/mastodon/features/filters/added_to_filter.jsx @@ -10,7 +10,6 @@ const mapStateToProps = (state, { filterId }) => ({ filter: state.getIn(['filters', filterId]), }); -export default @connect(mapStateToProps) class AddedToFilter extends React.PureComponent { static propTypes = { @@ -100,3 +99,5 @@ class AddedToFilter extends React.PureComponent { } } + +export default connect(mapStateToProps)(AddedToFilter); diff --git a/app/javascript/mastodon/features/filters/select_filter.jsx b/app/javascript/mastodon/features/filters/select_filter.jsx index 8a21905d71..b0aede1877 100644 --- a/app/javascript/mastodon/features/filters/select_filter.jsx +++ b/app/javascript/mastodon/features/filters/select_filter.jsx @@ -22,8 +22,6 @@ const mapStateToProps = (state, { contextType }) => ({ ]), }); -export default @connect(mapStateToProps) -@injectIntl class SelectFilter extends React.PureComponent { static propTypes = { @@ -190,3 +188,5 @@ class SelectFilter extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(SelectFilter)); diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.jsx b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx index ddd0c8baab..9cb26fe645 100644 --- a/app/javascript/mastodon/features/follow_recommendations/components/account.jsx +++ b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx @@ -32,8 +32,6 @@ const getFirstSentence = str => { return arr[0]; }; -export default @connect(makeMapStateToProps) -@injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -83,3 +81,5 @@ class Account extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Account)); diff --git a/app/javascript/mastodon/features/follow_recommendations/index.jsx b/app/javascript/mastodon/features/follow_recommendations/index.jsx index 436cc582b3..7ba34b51f4 100644 --- a/app/javascript/mastodon/features/follow_recommendations/index.jsx +++ b/app/javascript/mastodon/features/follow_recommendations/index.jsx @@ -19,7 +19,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['suggestions', 'isLoading']), }); -export default @connect(mapStateToProps) class FollowRecommendations extends ImmutablePureComponent { static contextTypes = { @@ -114,3 +113,5 @@ class FollowRecommendations extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(FollowRecommendations); diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx index d41f331e5e..0bd45592c9 100644 --- a/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx +++ b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx @@ -13,7 +13,6 @@ const messages = defineMessages({ reject: { id: 'follow_request.reject', defaultMessage: 'Reject' }, }); -export default @injectIntl class AccountAuthorize extends ImmutablePureComponent { static propTypes = { @@ -47,3 +46,5 @@ class AccountAuthorize extends ImmutablePureComponent { } } + +export default injectIntl(AccountAuthorize); diff --git a/app/javascript/mastodon/features/follow_requests/index.jsx b/app/javascript/mastodon/features/follow_requests/index.jsx index 526ae4cde7..a8875bbd31 100644 --- a/app/javascript/mastodon/features/follow_requests/index.jsx +++ b/app/javascript/mastodon/features/follow_requests/index.jsx @@ -25,8 +25,6 @@ const mapStateToProps = state => ({ domain: state.getIn(['meta', 'domain']), }); -export default @connect(mapStateToProps) -@injectIntl class FollowRequests extends ImmutablePureComponent { static propTypes = { @@ -89,3 +87,5 @@ class FollowRequests extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(FollowRequests)); diff --git a/app/javascript/mastodon/features/followed_tags/index.jsx b/app/javascript/mastodon/features/followed_tags/index.jsx index c2d0e47318..7c53542c2e 100644 --- a/app/javascript/mastodon/features/followed_tags/index.jsx +++ b/app/javascript/mastodon/features/followed_tags/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['followed_tags', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class FollowedTags extends ImmutablePureComponent { static propTypes = { @@ -87,3 +85,5 @@ class FollowedTags extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(FollowedTags)); diff --git a/app/javascript/mastodon/features/followers/index.jsx b/app/javascript/mastodon/features/followers/index.jsx index 277eb702fb..fe86ebb3b4 100644 --- a/app/javascript/mastodon/features/followers/index.jsx +++ b/app/javascript/mastodon/features/followers/index.jsx @@ -54,7 +54,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class Followers extends ImmutablePureComponent { static propTypes = { @@ -168,3 +167,5 @@ class Followers extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(Followers); diff --git a/app/javascript/mastodon/features/following/index.jsx b/app/javascript/mastodon/features/following/index.jsx index e23d9b35cd..8095d73a35 100644 --- a/app/javascript/mastodon/features/following/index.jsx +++ b/app/javascript/mastodon/features/following/index.jsx @@ -54,7 +54,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class Following extends ImmutablePureComponent { static propTypes = { @@ -168,3 +167,5 @@ class Following extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(Following); diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.jsx b/app/javascript/mastodon/features/getting_started/components/announcements.jsx index 0cae0bd1fe..954f407f53 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.jsx +++ b/app/javascript/mastodon/features/getting_started/components/announcements.jsx @@ -355,7 +355,6 @@ class Announcement extends ImmutablePureComponent { } -export default @injectIntl class Announcements extends ImmutablePureComponent { static propTypes = { @@ -447,3 +446,5 @@ class Announcements extends ImmutablePureComponent { } } + +export default injectIntl(Announcements); diff --git a/app/javascript/mastodon/features/getting_started/index.jsx b/app/javascript/mastodon/features/getting_started/index.jsx index fc91070d1a..ee8a009eea 100644 --- a/app/javascript/mastodon/features/getting_started/index.jsx +++ b/app/javascript/mastodon/features/getting_started/index.jsx @@ -58,8 +58,6 @@ const badgeDisplay = (number, limit) => { } }; -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class GettingStarted extends ImmutablePureComponent { static contextTypes = { @@ -153,3 +151,5 @@ class GettingStarted extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(GettingStarted)); diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx index ac7863ed38..f140f2d013 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ noOptions: { id: 'hashtag.column_settings.select.no_options_message', defaultMessage: 'No suggestions found' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -131,3 +130,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx index e5262d70d1..58423f4295 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx @@ -26,8 +26,6 @@ const mapStateToProps = (state, props) => ({ tag: state.getIn(['tags', props.params.id]), }); -export default @connect(mapStateToProps) -@injectIntl class HashtagTimeline extends React.PureComponent { disconnects = []; @@ -235,3 +233,5 @@ class HashtagTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(HashtagTimeline)); diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx index 455e218817..bd15390c0b 100644 --- a/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx +++ b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx @@ -4,7 +4,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { injectIntl, FormattedMessage } from 'react-intl'; import SettingToggle from '../../notifications/components/setting_toggle'; -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -32,3 +31,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/mastodon/features/home_timeline/index.jsx b/app/javascript/mastodon/features/home_timeline/index.jsx index 001de15d1b..9aa4c6d821 100644 --- a/app/javascript/mastodon/features/home_timeline/index.jsx +++ b/app/javascript/mastodon/features/home_timeline/index.jsx @@ -30,8 +30,6 @@ const mapStateToProps = state => ({ showAnnouncements: state.getIn(['announcements', 'show']), }); -export default @connect(mapStateToProps) -@injectIntl class HomeTimeline extends React.PureComponent { static contextTypes = { @@ -174,3 +172,5 @@ class HomeTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(HomeTimeline)); diff --git a/app/javascript/mastodon/features/interaction_modal/index.jsx b/app/javascript/mastodon/features/interaction_modal/index.jsx index c1d346fed4..5742f11042 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.jsx +++ b/app/javascript/mastodon/features/interaction_modal/index.jsx @@ -74,7 +74,6 @@ class Copypaste extends React.PureComponent { } -export default @connect(mapStateToProps, mapDispatchToProps) class InteractionModal extends React.PureComponent { static propTypes = { @@ -159,3 +158,5 @@ class InteractionModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(InteractionModal); diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx index 9a870478da..70f019712e 100644 --- a/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx +++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' }, }); -export default @injectIntl class KeyboardShortcuts extends ImmutablePureComponent { static propTypes = { @@ -174,3 +173,5 @@ class KeyboardShortcuts extends ImmutablePureComponent { } } + +export default injectIntl(KeyboardShortcuts); diff --git a/app/javascript/mastodon/features/list_adder/components/account.jsx b/app/javascript/mastodon/features/list_adder/components/account.jsx index 1369aac074..786af3bb1c 100644 --- a/app/javascript/mastodon/features/list_adder/components/account.jsx +++ b/app/javascript/mastodon/features/list_adder/components/account.jsx @@ -17,9 +17,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; - -export default @connect(makeMapStateToProps) -@injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -41,3 +38,5 @@ class Account extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Account)); diff --git a/app/javascript/mastodon/features/list_adder/components/list.jsx b/app/javascript/mastodon/features/list_adder/components/list.jsx index 60c8958a73..34ccf8451d 100644 --- a/app/javascript/mastodon/features/list_adder/components/list.jsx +++ b/app/javascript/mastodon/features/list_adder/components/list.jsx @@ -23,8 +23,6 @@ const mapDispatchToProps = (dispatch, { listId }) => ({ onAdd: () => dispatch(addToListAdder(listId)), }); -export default @connect(MapStateToProps, mapDispatchToProps) -@injectIntl class List extends ImmutablePureComponent { static propTypes = { @@ -67,3 +65,5 @@ class List extends ImmutablePureComponent { } } + +export default connect(MapStateToProps, mapDispatchToProps)(injectIntl(List)); diff --git a/app/javascript/mastodon/features/list_adder/index.jsx b/app/javascript/mastodon/features/list_adder/index.jsx index cb8a15e8c7..45d5589f96 100644 --- a/app/javascript/mastodon/features/list_adder/index.jsx +++ b/app/javascript/mastodon/features/list_adder/index.jsx @@ -28,8 +28,6 @@ const mapDispatchToProps = dispatch => ({ onReset: () => dispatch(resetListAdder()), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListAdder extends ImmutablePureComponent { static propTypes = { @@ -71,3 +69,5 @@ class ListAdder extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListAdder)); diff --git a/app/javascript/mastodon/features/list_editor/components/account.jsx b/app/javascript/mastodon/features/list_editor/components/account.jsx index 48085af43d..86209bb3cb 100644 --- a/app/javascript/mastodon/features/list_editor/components/account.jsx +++ b/app/javascript/mastodon/features/list_editor/components/account.jsx @@ -31,8 +31,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({ onAdd: () => dispatch(addToListEditor(accountId)), }); -export default @connect(makeMapStateToProps, mapDispatchToProps) -@injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -75,3 +73,5 @@ class Account extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(Account)); diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx index 4d7e49ec09..9c1c244cbc 100644 --- a/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx +++ b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx @@ -19,8 +19,6 @@ const mapDispatchToProps = dispatch => ({ onSubmit: () => dispatch(submitListEditor(false)), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListForm extends React.PureComponent { static propTypes = { @@ -68,3 +66,5 @@ class ListForm extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListForm)); diff --git a/app/javascript/mastodon/features/list_editor/components/search.jsx b/app/javascript/mastodon/features/list_editor/components/search.jsx index 3ee26c8eb4..b9745e0a8b 100644 --- a/app/javascript/mastodon/features/list_editor/components/search.jsx +++ b/app/javascript/mastodon/features/list_editor/components/search.jsx @@ -20,8 +20,6 @@ const mapDispatchToProps = dispatch => ({ onChange: value => dispatch(changeListSuggestions(value)), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class Search extends React.PureComponent { static propTypes = { @@ -74,3 +72,5 @@ class Search extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(Search)); diff --git a/app/javascript/mastodon/features/list_editor/index.jsx b/app/javascript/mastodon/features/list_editor/index.jsx index 48466604a7..65cebbdc83 100644 --- a/app/javascript/mastodon/features/list_editor/index.jsx +++ b/app/javascript/mastodon/features/list_editor/index.jsx @@ -22,8 +22,6 @@ const mapDispatchToProps = dispatch => ({ onReset: () => dispatch(resetListEditor()), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListEditor extends ImmutablePureComponent { static propTypes = { @@ -77,3 +75,5 @@ class ListEditor extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListEditor)); diff --git a/app/javascript/mastodon/features/list_timeline/index.jsx b/app/javascript/mastodon/features/list_timeline/index.jsx index 25dbe311a7..d0ba2a186a 100644 --- a/app/javascript/mastodon/features/list_timeline/index.jsx +++ b/app/javascript/mastodon/features/list_timeline/index.jsx @@ -31,8 +31,6 @@ const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `list:${props.params.id}`, 'unread']) > 0, }); -export default @connect(mapStateToProps) -@injectIntl class ListTimeline extends React.PureComponent { static contextTypes = { @@ -219,3 +217,5 @@ class ListTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(ListTimeline)); diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.jsx b/app/javascript/mastodon/features/lists/components/new_list_form.jsx index 4e00e52009..50b52518e9 100644 --- a/app/javascript/mastodon/features/lists/components/new_list_form.jsx +++ b/app/javascript/mastodon/features/lists/components/new_list_form.jsx @@ -20,8 +20,6 @@ const mapDispatchToProps = dispatch => ({ onSubmit: () => dispatch(submitListEditor(true)), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class NewListForm extends React.PureComponent { static propTypes = { @@ -75,3 +73,5 @@ class NewListForm extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(NewListForm)); diff --git a/app/javascript/mastodon/features/lists/index.jsx b/app/javascript/mastodon/features/lists/index.jsx index 3a0b1373a6..afd645a308 100644 --- a/app/javascript/mastodon/features/lists/index.jsx +++ b/app/javascript/mastodon/features/lists/index.jsx @@ -32,8 +32,6 @@ const mapStateToProps = state => ({ lists: getOrderedLists(state), }); -export default @connect(mapStateToProps) -@injectIntl class Lists extends ImmutablePureComponent { static propTypes = { @@ -87,3 +85,5 @@ class Lists extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Lists)); diff --git a/app/javascript/mastodon/features/mutes/index.jsx b/app/javascript/mastodon/features/mutes/index.jsx index 65df6149fe..5c05d2f700 100644 --- a/app/javascript/mastodon/features/mutes/index.jsx +++ b/app/javascript/mastodon/features/mutes/index.jsx @@ -23,8 +23,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['user_lists', 'mutes', 'isLoading'], true), }); -export default @connect(mapStateToProps) -@injectIntl class Mutes extends ImmutablePureComponent { static propTypes = { @@ -82,3 +80,5 @@ class Mutes extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Mutes)); diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx index 368eb0b7e6..88e95cf48f 100644 --- a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx +++ b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx @@ -12,7 +12,6 @@ const tooltips = defineMessages({ statuses: { id: 'notifications.filter.statuses', defaultMessage: 'Updates from people you follow' }, }); -export default @injectIntl class FilterBar extends React.PureComponent { static propTypes = { @@ -108,3 +107,5 @@ class FilterBar extends React.PureComponent { } } + +export default injectIntl(FilterBar); diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.jsx b/app/javascript/mastodon/features/notifications/components/follow_request.jsx index 08de875e36..01bf670650 100644 --- a/app/javascript/mastodon/features/notifications/components/follow_request.jsx +++ b/app/javascript/mastodon/features/notifications/components/follow_request.jsx @@ -1,4 +1,4 @@ -import React, { Fragment } from 'react'; +import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Avatar from 'mastodon/components/avatar'; @@ -13,7 +13,6 @@ const messages = defineMessages({ reject: { id: 'follow_request.reject', defaultMessage: 'Reject' }, }); -export default @injectIntl class FollowRequest extends ImmutablePureComponent { static propTypes = { @@ -32,10 +31,10 @@ class FollowRequest extends ImmutablePureComponent { if (hidden) { return ( - + {account.get('display_name')} {account.get('username')} - + ); } @@ -57,3 +56,5 @@ class FollowRequest extends ImmutablePureComponent { } } + +export default injectIntl(FollowRequest); diff --git a/app/javascript/mastodon/features/notifications/components/notification.jsx b/app/javascript/mastodon/features/notifications/components/notification.jsx index 9e2517f084..cf9d9f72c9 100644 --- a/app/javascript/mastodon/features/notifications/components/notification.jsx +++ b/app/javascript/mastodon/features/notifications/components/notification.jsx @@ -33,7 +33,6 @@ const notificationForScreenReader = (intl, message, timestamp) => { return output.join(', '); }; -export default @injectIntl class Notification extends ImmutablePureComponent { static contextTypes = { @@ -447,3 +446,5 @@ class Notification extends ImmutablePureComponent { } } + +export default injectIntl(Notification); diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx index 3a7556c1d9..c54137e60c 100644 --- a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx +++ b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx @@ -12,8 +12,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @connect() -@injectIntl class NotificationsPermissionBanner extends React.PureComponent { static propTypes = { @@ -46,3 +44,5 @@ class NotificationsPermissionBanner extends React.PureComponent { } } + +export default connect()(injectIntl(NotificationsPermissionBanner)); diff --git a/app/javascript/mastodon/features/notifications/components/report.jsx b/app/javascript/mastodon/features/notifications/components/report.jsx index 3ce3eb9d32..4663b23597 100644 --- a/app/javascript/mastodon/features/notifications/components/report.jsx +++ b/app/javascript/mastodon/features/notifications/components/report.jsx @@ -13,7 +13,6 @@ const messages = defineMessages({ violation: { id: 'report_notification.categories.violation', defaultMessage: 'Rule violation' }, }); -export default @injectIntl class Report extends ImmutablePureComponent { static propTypes = { @@ -60,3 +59,5 @@ class Report extends ImmutablePureComponent { } } + +export default injectIntl(Report); diff --git a/app/javascript/mastodon/features/notifications/index.jsx b/app/javascript/mastodon/features/notifications/index.jsx index fee016a025..bb8852abf1 100644 --- a/app/javascript/mastodon/features/notifications/index.jsx +++ b/app/javascript/mastodon/features/notifications/index.jsx @@ -67,8 +67,6 @@ const mapStateToProps = state => ({ needsNotificationPermission: state.getIn(['settings', 'notifications', 'alerts']).includes(true) && state.getIn(['notifications', 'browserSupport']) && state.getIn(['notifications', 'browserPermission']) === 'default' && !state.getIn(['settings', 'notifications', 'dismissPermissionBanner']), }); -export default @connect(mapStateToProps) -@injectIntl class Notifications extends React.PureComponent { static contextTypes = { @@ -288,3 +286,5 @@ class Notifications extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Notifications)); diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx index 0ee6d06c7f..66124f3311 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx @@ -37,8 +37,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) -@injectIntl class Footer extends ImmutablePureComponent { static contextTypes = { @@ -190,3 +188,5 @@ class Footer extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Footer)); diff --git a/app/javascript/mastodon/features/picture_in_picture/components/header.jsx b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx index e05d8c62e9..100f9db7ac 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/header.jsx +++ b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx @@ -17,8 +17,6 @@ const mapStateToProps = (state, { accountId }) => ({ account: state.getIn(['accounts', accountId]), }); -export default @connect(mapStateToProps) -@injectIntl class Header extends ImmutablePureComponent { static propTypes = { @@ -45,3 +43,5 @@ class Header extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Header)); diff --git a/app/javascript/mastodon/features/picture_in_picture/index.jsx b/app/javascript/mastodon/features/picture_in_picture/index.jsx index 01a7d43f22..ae48a1b4e5 100644 --- a/app/javascript/mastodon/features/picture_in_picture/index.jsx +++ b/app/javascript/mastodon/features/picture_in_picture/index.jsx @@ -11,7 +11,6 @@ const mapStateToProps = state => ({ ...state.get('picture_in_picture'), }); -export default @connect(mapStateToProps) class PictureInPicture extends React.Component { static propTypes = { @@ -83,3 +82,5 @@ class PictureInPicture extends React.Component { } } + +export default connect(mapStateToProps)(PictureInPicture); diff --git a/app/javascript/mastodon/features/pinned_statuses/index.jsx b/app/javascript/mastodon/features/pinned_statuses/index.jsx index 504fda4158..24a0b6d2e3 100644 --- a/app/javascript/mastodon/features/pinned_statuses/index.jsx +++ b/app/javascript/mastodon/features/pinned_statuses/index.jsx @@ -19,8 +19,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'pins', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class PinnedStatuses extends ImmutablePureComponent { static propTypes = { @@ -63,3 +61,5 @@ class PinnedStatuses extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(PinnedStatuses)); diff --git a/app/javascript/mastodon/features/privacy_policy/index.jsx b/app/javascript/mastodon/features/privacy_policy/index.jsx index 3df487e8ff..d5bbda6a33 100644 --- a/app/javascript/mastodon/features/privacy_policy/index.jsx +++ b/app/javascript/mastodon/features/privacy_policy/index.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' }, }); -export default @injectIntl class PrivacyPolicy extends React.PureComponent { static propTypes = { @@ -59,3 +58,5 @@ class PrivacyPolicy extends React.PureComponent { } } + +export default injectIntl(PrivacyPolicy); diff --git a/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx index 756b6fe06d..bf8a8323e0 100644 --- a/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx +++ b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx @@ -4,7 +4,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { injectIntl, FormattedMessage } from 'react-intl'; import SettingToggle from '../../notifications/components/setting_toggle'; -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -28,3 +27,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/mastodon/features/public_timeline/index.jsx b/app/javascript/mastodon/features/public_timeline/index.jsx index aaef45c865..f89caa2c95 100644 --- a/app/javascript/mastodon/features/public_timeline/index.jsx +++ b/app/javascript/mastodon/features/public_timeline/index.jsx @@ -31,8 +31,6 @@ const mapStateToProps = (state, { columnId }) => { }; }; -export default @connect(mapStateToProps) -@injectIntl class PublicTimeline extends React.PureComponent { static contextTypes = { @@ -160,3 +158,5 @@ class PublicTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(PublicTimeline)); diff --git a/app/javascript/mastodon/features/reblogs/index.jsx b/app/javascript/mastodon/features/reblogs/index.jsx index 31e5dc1d43..35edb0d6af 100644 --- a/app/javascript/mastodon/features/reblogs/index.jsx +++ b/app/javascript/mastodon/features/reblogs/index.jsx @@ -21,8 +21,6 @@ const mapStateToProps = (state, props) => ({ accountIds: state.getIn(['user_lists', 'reblogged_by', props.params.statusId]), }); -export default @connect(mapStateToProps) -@injectIntl class Reblogs extends ImmutablePureComponent { static propTypes = { @@ -90,3 +88,5 @@ class Reblogs extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Reblogs)); diff --git a/app/javascript/mastodon/features/report/category.jsx b/app/javascript/mastodon/features/report/category.jsx index c6c0a506f3..492a533f20 100644 --- a/app/javascript/mastodon/features/report/category.jsx +++ b/app/javascript/mastodon/features/report/category.jsx @@ -24,8 +24,6 @@ const mapStateToProps = state => ({ rules: state.getIn(['server', 'server', 'rules'], ImmutableList()), }); -export default @connect(mapStateToProps) -@injectIntl class Category extends React.PureComponent { static propTypes = { @@ -104,3 +102,5 @@ class Category extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Category)); diff --git a/app/javascript/mastodon/features/report/comment.jsx b/app/javascript/mastodon/features/report/comment.jsx index cde1564158..ab29f6c227 100644 --- a/app/javascript/mastodon/features/report/comment.jsx +++ b/app/javascript/mastodon/features/report/comment.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ placeholder: { id: 'report.placeholder', defaultMessage: 'Type or paste additional comments' }, }); -export default @injectIntl class Comment extends React.PureComponent { static propTypes = { @@ -81,3 +80,5 @@ class Comment extends React.PureComponent { } } + +export default injectIntl(Comment); diff --git a/app/javascript/mastodon/features/report/components/status_check_box.jsx b/app/javascript/mastodon/features/report/components/status_check_box.jsx index 5366da90be..28d572e898 100644 --- a/app/javascript/mastodon/features/report/components/status_check_box.jsx +++ b/app/javascript/mastodon/features/report/components/status_check_box.jsx @@ -17,7 +17,6 @@ const messages = defineMessages({ direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, }); -export default @injectIntl class StatusCheckBox extends React.PureComponent { static propTypes = { @@ -80,3 +79,5 @@ class StatusCheckBox extends React.PureComponent { } } + +export default injectIntl(StatusCheckBox); diff --git a/app/javascript/mastodon/features/report/rules.jsx b/app/javascript/mastodon/features/report/rules.jsx index 920da68d63..b500c0503d 100644 --- a/app/javascript/mastodon/features/report/rules.jsx +++ b/app/javascript/mastodon/features/report/rules.jsx @@ -10,7 +10,6 @@ const mapStateToProps = state => ({ rules: state.getIn(['server', 'server', 'rules']), }); -export default @connect(mapStateToProps) class Rules extends React.PureComponent { static propTypes = { @@ -62,3 +61,5 @@ class Rules extends React.PureComponent { } } + +export default connect(mapStateToProps)(Rules); diff --git a/app/javascript/mastodon/features/report/statuses.jsx b/app/javascript/mastodon/features/report/statuses.jsx index d5d86034fb..87163aeb89 100644 --- a/app/javascript/mastodon/features/report/statuses.jsx +++ b/app/javascript/mastodon/features/report/statuses.jsx @@ -13,7 +13,6 @@ const mapStateToProps = (state, { accountId }) => ({ isLoading: state.getIn(['timelines', `account:${accountId}:with_replies`, 'isLoading']), }); -export default @connect(mapStateToProps) class Statuses extends React.PureComponent { static propTypes = { @@ -59,3 +58,5 @@ class Statuses extends React.PureComponent { } } + +export default connect(mapStateToProps)(Statuses); diff --git a/app/javascript/mastodon/features/report/thanks.jsx b/app/javascript/mastodon/features/report/thanks.jsx index d169b1e329..4e5b6e8648 100644 --- a/app/javascript/mastodon/features/report/thanks.jsx +++ b/app/javascript/mastodon/features/report/thanks.jsx @@ -12,7 +12,6 @@ import { const mapStateToProps = () => ({}); -export default @connect(mapStateToProps) class Thanks extends React.PureComponent { static propTypes = { @@ -82,3 +81,5 @@ class Thanks extends React.PureComponent { } } + +export default connect(mapStateToProps)(Thanks); diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index 0d4767331a..5cbe4984cf 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -47,8 +47,6 @@ const mapStateToProps = (state, { status }) => ({ relationship: state.getIn(['relationships', status.getIn(['account', 'id'])]), }); -export default @connect(mapStateToProps) -@injectIntl class ActionBar extends React.PureComponent { static contextTypes = { @@ -298,3 +296,5 @@ class ActionBar extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(ActionBar)); diff --git a/app/javascript/mastodon/features/status/components/detailed_status.jsx b/app/javascript/mastodon/features/status/components/detailed_status.jsx index f9ff57261c..8a2194450c 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.jsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.jsx @@ -25,7 +25,6 @@ const messages = defineMessages({ direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' }, }); -export default @injectIntl class DetailedStatus extends ImmutablePureComponent { static contextTypes = { @@ -289,3 +288,5 @@ class DetailedStatus extends ImmutablePureComponent { } } + +export default injectIntl(DetailedStatus); diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index 2c6728fc05..358ad14c46 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -176,8 +176,6 @@ const titleFromStatus = status => { return `${prefix}: "${truncate(text, 30)}"`; }; -export default @injectIntl -@connect(makeMapStateToProps) class Status extends ImmutablePureComponent { static contextTypes = { @@ -684,3 +682,5 @@ class Status extends ImmutablePureComponent { } } + +export default injectIntl(connect(makeMapStateToProps)(Status)); diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx index f1360613e0..04fe31b5c1 100644 --- a/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx +++ b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx @@ -36,8 +36,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({ }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class SubscribedLanguagesModal extends ImmutablePureComponent { static propTypes = { @@ -123,3 +121,5 @@ class SubscribedLanguagesModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(SubscribedLanguagesModal)); diff --git a/app/javascript/mastodon/features/ui/components/audio_modal.jsx b/app/javascript/mastodon/features/ui/components/audio_modal.jsx index a2fa8c49c3..c0ac12ba7b 100644 --- a/app/javascript/mastodon/features/ui/components/audio_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/audio_modal.jsx @@ -11,7 +11,6 @@ const mapStateToProps = (state, { statusId }) => ({ accountStaticAvatar: state.getIn(['accounts', state.getIn(['statuses', statusId, 'account']), 'avatar_static']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class AudioModal extends ImmutablePureComponent { static propTypes = { @@ -55,3 +54,5 @@ class AudioModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(AudioModal); diff --git a/app/javascript/mastodon/features/ui/components/block_modal.jsx b/app/javascript/mastodon/features/ui/components/block_modal.jsx index 6c9d2043ca..a9506aa69f 100644 --- a/app/javascript/mastodon/features/ui/components/block_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/block_modal.jsx @@ -36,8 +36,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(makeMapStateToProps, mapDispatchToProps) -@injectIntl class BlockModal extends React.PureComponent { static propTypes = { @@ -101,3 +99,5 @@ class BlockModal extends React.PureComponent { } } + +export default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(BlockModal)); diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.jsx b/app/javascript/mastodon/features/ui/components/boost_modal.jsx index d6a6cea31e..fe55c963a8 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/boost_modal.jsx @@ -38,8 +38,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class BoostModal extends ImmutablePureComponent { static contextTypes = { @@ -140,3 +138,5 @@ class BoostModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(BoostModal)); diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx index 9955173ebf..dc9b0e5392 100644 --- a/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx +++ b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx @@ -92,7 +92,6 @@ class CopyButton extends React.PureComponent { } -export default @injectIntl class BundleColumnError extends React.PureComponent { static propTypes = { @@ -160,3 +159,5 @@ class BundleColumnError extends React.PureComponent { } } + +export default injectIntl(BundleColumnError); diff --git a/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx index cbb1567b70..1802c167c1 100644 --- a/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx @@ -24,7 +24,6 @@ const mapDispatchToProps = dispatch => ({ }); -export default @connect(mapStateToProps, mapDispatchToProps) class CompareHistoryModal extends React.PureComponent { static propTypes = { @@ -100,3 +99,5 @@ class CompareHistoryModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(CompareHistoryModal); diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.jsx b/app/javascript/mastodon/features/ui/components/compose_panel.jsx index 6cb3523224..1b0a0c74a0 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/compose_panel.jsx @@ -8,7 +8,6 @@ import LinkFooter from './link_footer'; import ServerBanner from 'mastodon/components/server_banner'; import { changeComposing, mountCompose, unmountCompose } from 'mastodon/actions/compose'; -export default @connect() class ComposePanel extends React.PureComponent { static contextTypes = { @@ -66,3 +65,5 @@ class ComposePanel extends React.PureComponent { } } + +export default connect(ComposePanel); diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx index b023b00b25..4437567a14 100644 --- a/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import { injectIntl, FormattedMessage } from 'react-intl'; import Button from '../../../components/button'; -export default @injectIntl class ConfirmationModal extends React.PureComponent { static propTypes = { @@ -68,3 +67,5 @@ class ConfirmationModal extends React.PureComponent { } } + +export default injectIntl(ConfirmationModal); diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx index 35520478b3..ea11cea44d 100644 --- a/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx +++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx @@ -28,8 +28,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, }); -export default @injectIntl -@connect(mapStateToProps, mapDispatchToProps) class DisabledAccountBanner extends React.PureComponent { static propTypes = { @@ -90,3 +88,5 @@ class DisabledAccountBanner extends React.PureComponent { } } + +export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(DisabledAccountBanner)); diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.jsx b/app/javascript/mastodon/features/ui/components/embed_modal.jsx index a054dd3cf3..baf6be411f 100644 --- a/app/javascript/mastodon/features/ui/components/embed_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/embed_modal.jsx @@ -9,7 +9,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @injectIntl class EmbedModal extends ImmutablePureComponent { static propTypes = { @@ -95,3 +94,5 @@ class EmbedModal extends ImmutablePureComponent { } } + +export default injectIntl(EmbedModal); diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.jsx b/app/javascript/mastodon/features/ui/components/filter_modal.jsx index 376db961d1..32ebaf7b79 100644 --- a/app/javascript/mastodon/features/ui/components/filter_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/filter_modal.jsx @@ -13,8 +13,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @connect(undefined) -@injectIntl class FilterModal extends ImmutablePureComponent { static propTypes = { @@ -132,3 +130,5 @@ class FilterModal extends ImmutablePureComponent { } } + +export default connect(injectIntl(FilterModal)); diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx index 6e8d017eee..11c4c52375 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx @@ -100,8 +100,6 @@ class ImageLoader extends React.PureComponent { } -export default @connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true }) -@(component => injectIntl(component, { withRef: true })) class FocalPointModal extends ImmutablePureComponent { static propTypes = { @@ -428,3 +426,7 @@ class FocalPointModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps, null, { + forwardRef: true, +})(injectIntl(FocalPointModal, { withRef: true })); diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx index 8d4057782c..1cd1b79bce 100644 --- a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx +++ b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx @@ -15,8 +15,6 @@ const mapStateToProps = state => ({ count: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, }); -export default @injectIntl -@connect(mapStateToProps) class FollowRequestsColumnLink extends React.Component { static propTypes = { @@ -49,3 +47,5 @@ class FollowRequestsColumnLink extends React.Component { } } + +export default injectIntl(connect(mapStateToProps)(FollowRequestsColumnLink)); diff --git a/app/javascript/mastodon/features/ui/components/header.jsx b/app/javascript/mastodon/features/ui/components/header.jsx index 92adc47a9c..c14c6faa75 100644 --- a/app/javascript/mastodon/features/ui/components/header.jsx +++ b/app/javascript/mastodon/features/ui/components/header.jsx @@ -22,8 +22,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -export default @withRouter -@connect(null, mapDispatchToProps) class Header extends React.PureComponent { static contextTypes = { @@ -85,3 +83,5 @@ class Header extends React.PureComponent { } } + +export default withRouter(connect(null, mapDispatchToProps)(Header)); diff --git a/app/javascript/mastodon/features/ui/components/image_modal.jsx b/app/javascript/mastodon/features/ui/components/image_modal.jsx index 7522c3da55..ca93d7b4ed 100644 --- a/app/javascript/mastodon/features/ui/components/image_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/image_modal.jsx @@ -9,7 +9,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @injectIntl class ImageModal extends React.PureComponent { static propTypes = { @@ -57,3 +56,5 @@ class ImageModal extends React.PureComponent { } } + +export default injectIntl(ImageModal); diff --git a/app/javascript/mastodon/features/ui/components/link_footer.jsx b/app/javascript/mastodon/features/ui/components/link_footer.jsx index be21112079..68ef015ab9 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.jsx +++ b/app/javascript/mastodon/features/ui/components/link_footer.jsx @@ -24,8 +24,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, }); -export default @injectIntl -@connect(null, mapDispatchToProps) class LinkFooter extends React.PureComponent { static contextTypes = { @@ -100,3 +98,5 @@ class LinkFooter extends React.PureComponent { } } + +export default injectIntl(connect(null, mapDispatchToProps)(LinkFooter)); diff --git a/app/javascript/mastodon/features/ui/components/list_panel.jsx b/app/javascript/mastodon/features/ui/components/list_panel.jsx index 2f92a9254e..fcff4e37dc 100644 --- a/app/javascript/mastodon/features/ui/components/list_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/list_panel.jsx @@ -20,8 +20,6 @@ const mapStateToProps = state => ({ lists: getOrderedLists(state), }); -export default @withRouter -@connect(mapStateToProps) class ListPanel extends ImmutablePureComponent { static propTypes = { @@ -53,3 +51,5 @@ class ListPanel extends ImmutablePureComponent { } } + +export default withRouter(connect(mapStateToProps)(ListPanel)); diff --git a/app/javascript/mastodon/features/ui/components/media_modal.jsx b/app/javascript/mastodon/features/ui/components/media_modal.jsx index 086da8cf5e..aa179a9656 100644 --- a/app/javascript/mastodon/features/ui/components/media_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/media_modal.jsx @@ -25,8 +25,6 @@ const mapStateToProps = (state, { statusId }) => ({ language: state.getIn(['statuses', statusId, 'language']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) -@injectIntl class MediaModal extends ImmutablePureComponent { static propTypes = { @@ -257,3 +255,5 @@ class MediaModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(injectIntl(MediaModal)); diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.jsx b/app/javascript/mastodon/features/ui/components/mute_modal.jsx index b3e0ef56be..fa64bf0f40 100644 --- a/app/javascript/mastodon/features/ui/components/mute_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/mute_modal.jsx @@ -43,8 +43,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class MuteModal extends React.PureComponent { static propTypes = { @@ -138,3 +136,5 @@ class MuteModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(MuteModal)); diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx index 755b19349d..90a3fcdf7f 100644 --- a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx @@ -28,7 +28,6 @@ const messages = defineMessages({ search: { id: 'navigation_bar.search', defaultMessage: 'Search' }, }); -export default @injectIntl class NavigationPanel extends React.Component { static contextTypes = { @@ -105,3 +104,5 @@ class NavigationPanel extends React.Component { } } + +export default injectIntl(NavigationPanel); diff --git a/app/javascript/mastodon/features/ui/components/report_modal.jsx b/app/javascript/mastodon/features/ui/components/report_modal.jsx index 22c31eb52d..8b505b8bd8 100644 --- a/app/javascript/mastodon/features/ui/components/report_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/report_modal.jsx @@ -30,8 +30,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) -@injectIntl class ReportModal extends ImmutablePureComponent { static propTypes = { @@ -217,3 +215,5 @@ class ReportModal extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(ReportModal)); diff --git a/app/javascript/mastodon/features/ui/components/video_modal.jsx b/app/javascript/mastodon/features/ui/components/video_modal.jsx index 1737d52dba..99359a58cc 100644 --- a/app/javascript/mastodon/features/ui/components/video_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/video_modal.jsx @@ -11,7 +11,6 @@ const mapStateToProps = (state, { statusId }) => ({ language: state.getIn(['statuses', statusId, 'language']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class VideoModal extends ImmutablePureComponent { static propTypes = { @@ -68,3 +67,5 @@ class VideoModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(VideoModal); diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx index 7faba4c101..b41d0fe316 100644 --- a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx +++ b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx @@ -91,7 +91,6 @@ const normalizeWheel = event => { }; }; -export default @injectIntl class ZoomableImage extends React.PureComponent { static propTypes = { @@ -451,3 +450,5 @@ class ZoomableImage extends React.PureComponent { } } + +export default injectIntl(ZoomableImage); diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index 083707220b..0e73f4c096 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -229,9 +229,6 @@ class SwitchingColumnsArea extends React.PureComponent { } -export default @connect(mapStateToProps) -@injectIntl -@withRouter class UI extends React.PureComponent { static contextTypes = { @@ -588,3 +585,5 @@ class UI extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(withRouter(UI))); diff --git a/app/javascript/mastodon/features/video/index.jsx b/app/javascript/mastodon/features/video/index.jsx index dc722a7a77..58bb45908b 100644 --- a/app/javascript/mastodon/features/video/index.jsx +++ b/app/javascript/mastodon/features/video/index.jsx @@ -94,7 +94,6 @@ export const fileNameFromURL = str => { return pathname.slice(index + 1); }; -export default @injectIntl class Video extends React.PureComponent { static propTypes = { @@ -655,3 +654,5 @@ class Video extends React.PureComponent { } } + +export default injectIntl(Video); diff --git a/babel.config.js b/babel.config.js index b040cc1596..3ff98802c7 100644 --- a/babel.config.js +++ b/babel.config.js @@ -17,7 +17,6 @@ module.exports = (api) => { ['@babel/env', envOptions], ], plugins: [ - ['@babel/proposal-decorators', { legacy: true }], ['react-intl', { messagesDir: './build/messages' }], 'preval', ], diff --git a/package.json b/package.json index ed9f72e8c3..045db8d143 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "private": true, "dependencies": { "@babel/core": "^7.21.3", - "@babel/plugin-proposal-decorators": "^7.21.0", "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.20.2", diff --git a/yarn.lock b/yarn.lock index 3d63792469..d2be342c91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,7 +24,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -71,7 +71,16 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": +"@babel/generator@^7.17.10": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.6.tgz#9ab2d46d3cbf631f0e80f72e72874a04c3fc12a9" + integrity sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw== + dependencies: + "@babel/types" "^7.18.6" + "@jridgewell/gen-mapping" "^0.3.0" + jsesc "^2.5.1" + +"@babel/generator@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== @@ -81,6 +90,15 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" + integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== + dependencies: + "@babel/types" "^7.17.10" + "@jridgewell/gen-mapping" "^0.1.0" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -115,7 +133,7 @@ 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.21.0": +"@babel/helper-create-class-features-plugin@^7.18.6": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== @@ -149,6 +167,11 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" + integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== + "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -161,6 +184,14 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-function-name@^7.17.9": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" + integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.6" + "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" @@ -177,7 +208,7 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" -"@babel/helper-hoist-variables@^7.18.6": +"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== @@ -274,7 +305,7 @@ dependencies: "@babel/types" "^7.20.0" -"@babel/helper-split-export-declaration@^7.18.6": +"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== @@ -286,7 +317,12 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -324,7 +360,17 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" + integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== + +"@babel/parser@^7.17.10": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" + integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== + +"@babel/parser@^7.20.7", "@babel/parser@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== @@ -372,17 +418,6 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" - integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.21.0" - "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" @@ -513,13 +548,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" - integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" @@ -1054,7 +1082,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": +"@babel/template@^7.18.10", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1063,7 +1091,16 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": +"@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== @@ -1079,7 +1116,39 @@ 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.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/traverse@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" + integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.10" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.10" + "@babel/types" "^7.17.10" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" + integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.17.10", "@babel/types@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.6.tgz#5d781dd10a3f0c9f1f931bd19de5eb26ec31acf0" + integrity sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + to-fast-properties "^2.0.0" + +"@babel/types@^7.18.10", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== From 6e8711ff91e01212ac7c82de6349fa2b143582e2 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Fri, 24 Mar 2023 12:35:43 +0900 Subject: [PATCH 0744/1220] Add missing parenthesis (#24238) --- .../mastodon/features/ui/components/compose_panel.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.jsx b/app/javascript/mastodon/features/ui/components/compose_panel.jsx index 1b0a0c74a0..1c6f80ad5c 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/compose_panel.jsx @@ -66,4 +66,4 @@ class ComposePanel extends React.PureComponent { } -export default connect(ComposePanel); +export default connect()(ComposePanel); From ef127c964a60f365129bc97a2cb2fc6d12ba6407 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Mar 2023 08:46:32 +0100 Subject: [PATCH 0745/1220] Change design of account rows in web UI (#24247) --- .../mastodon/components/account.jsx | 53 ++++++++++++++++--- .../styles/mastodon/components.scss | 29 +++++++--- 2 files changed, 69 insertions(+), 13 deletions(-) diff --git a/app/javascript/mastodon/components/account.jsx b/app/javascript/mastodon/components/account.jsx index 7aaa668fe0..0ee0e45517 100644 --- a/app/javascript/mastodon/components/account.jsx +++ b/app/javascript/mastodon/components/account.jsx @@ -10,6 +10,9 @@ import { me } from '../initial_state'; import RelativeTimestamp from './relative_timestamp'; import Skeleton from 'mastodon/components/skeleton'; import { Link } from 'react-router-dom'; +import { counterRenderer } from 'mastodon/components/common_counter'; +import ShortNumber from 'mastodon/components/short_number'; +import Icon from 'mastodon/components/icon'; const messages = defineMessages({ follow: { id: 'account.follow', defaultMessage: 'Follow' }, @@ -23,6 +26,26 @@ const messages = defineMessages({ block: { id: 'account.block', defaultMessage: 'Block @{name}' }, }); +class VerifiedBadge extends React.PureComponent { + + static propTypes = { + link: PropTypes.string.isRequired, + verifiedAt: PropTypes.string.isRequired, + }; + + render () { + const { link } = this.props; + + return ( + + + + + ); + } + +} + class Account extends ImmutablePureComponent { static propTypes = { @@ -77,7 +100,11 @@ class Account extends ImmutablePureComponent {
    - + +
    + + +
    @@ -131,18 +158,32 @@ class Account extends ImmutablePureComponent { } } - let mute_expires_at; + let muteTimeRemaining; + if (account.get('mute_expires_at')) { - mute_expires_at =
    ; + muteTimeRemaining = <>· ; + } + + let verification; + + const firstVerifiedField = account.get('fields').find(item => !!item.get('verified_at')); + + if (firstVerifiedField) { + verification = <>· ; } return (
    -
    - {mute_expires_at} - +
    + +
    + +
    + + {verification} {muteTimeRemaining} +
    diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 9f6958b37d..0893ea7d93 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1403,10 +1403,12 @@ body > [data-popper-placement] { text-decoration: none; font-size: 14px; - &--with-note { - strong { - display: inline; - } + .display-name { + margin-bottom: 4px; + } + + .display-name strong { + display: inline; } } @@ -1629,7 +1631,7 @@ a .account__avatar { .status__display-name, .account__display-name { - strong { + .display-name strong { color: $primary-text-color; } } @@ -1644,12 +1646,12 @@ a .account__avatar { .reply-indicator__display-name, .detailed-status__display-name, a.account__display-name { - &:hover strong { + &:hover .display-name strong { text-decoration: underline; } } -.account__display-name strong { +.account__display-name .display-name strong { display: block; overflow: hidden; text-overflow: ellipsis; @@ -7356,6 +7358,19 @@ noscript { } } +.verified-badge { + display: inline-flex; + align-items: center; + color: $valid-value-color; + gap: 4px; + + a { + color: inherit; + font-weight: 500; + text-decoration: none; + } +} + .trends { &__header { color: $dark-text-color; From 9bda93374093c738f1007922b2e8df58043c718f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Mar 2023 10:00:03 +0100 Subject: [PATCH 0746/1220] Change media upload limits and remove client-side resizing (#23726) --- app/javascript/mastodon/actions/compose.js | 63 +++--- app/javascript/mastodon/utils/resize_image.js | 189 ------------------ app/models/concerns/attachmentable.rb | 2 +- app/models/media_attachment.rb | 10 +- app/models/preview_card.rb | 4 +- dist/nginx.conf | 2 +- package.json | 1 - .../settings/profiles_controller_spec.rb | 8 - yarn.lock | 5 - 9 files changed, 38 insertions(+), 246 deletions(-) delete mode 100644 app/javascript/mastodon/utils/resize_image.js diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 3756a975b7..9615032875 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -4,7 +4,6 @@ import { defineMessages } from 'react-intl'; import api from 'mastodon/api'; import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light'; import { tagHistory } from 'mastodon/settings'; -import resizeImage from 'mastodon/utils/resize_image'; import { showAlert, showAlertForError } from './alerts'; import { useEmoji } from './emojis'; import { importFetchedAccounts, importFetchedStatus } from './importer'; @@ -274,46 +273,42 @@ export function uploadCompose(files) { dispatch(uploadComposeRequest()); - for (const [i, f] of Array.from(files).entries()) { + for (const [i, file] of Array.from(files).entries()) { if (media.size + i > 3) break; - resizeImage(f).then(file => { - const data = new FormData(); - data.append('file', file); - // Account for disparity in size of original image and resized data - total += file.size - f.size; + const data = new FormData(); + data.append('file', file); - return api(getState).post('/api/v2/media', data, { - onUploadProgress: function({ loaded }){ - progress[i] = loaded; - dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total)); - }, - }).then(({ status, data }) => { - // If server-side processing of the media attachment has not completed yet, - // poll the server until it is, before showing the media attachment as uploaded + api(getState).post('/api/v2/media', data, { + onUploadProgress: function({ loaded }){ + progress[i] = loaded; + dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total)); + }, + }).then(({ status, data }) => { + // If server-side processing of the media attachment has not completed yet, + // poll the server until it is, before showing the media attachment as uploaded - if (status === 200) { - dispatch(uploadComposeSuccess(data, f)); - } else if (status === 202) { - dispatch(uploadComposeProcessing()); + if (status === 200) { + dispatch(uploadComposeSuccess(data, file)); + } else if (status === 202) { + dispatch(uploadComposeProcessing()); - let tryCount = 1; + let tryCount = 1; - const poll = () => { - api(getState).get(`/api/v1/media/${data.id}`).then(response => { - if (response.status === 200) { - dispatch(uploadComposeSuccess(response.data, f)); - } else if (response.status === 206) { - const retryAfter = (Math.log2(tryCount) || 1) * 1000; - tryCount += 1; - setTimeout(() => poll(), retryAfter); - } - }).catch(error => dispatch(uploadComposeFail(error))); - }; + const poll = () => { + api(getState).get(`/api/v1/media/${data.id}`).then(response => { + if (response.status === 200) { + dispatch(uploadComposeSuccess(response.data, file)); + } else if (response.status === 206) { + const retryAfter = (Math.log2(tryCount) || 1) * 1000; + tryCount += 1; + setTimeout(() => poll(), retryAfter); + } + }).catch(error => dispatch(uploadComposeFail(error))); + }; - poll(); - } - }); + poll(); + } }).catch(error => dispatch(uploadComposeFail(error))); } }; diff --git a/app/javascript/mastodon/utils/resize_image.js b/app/javascript/mastodon/utils/resize_image.js deleted file mode 100644 index fb8c3c11e6..0000000000 --- a/app/javascript/mastodon/utils/resize_image.js +++ /dev/null @@ -1,189 +0,0 @@ -import EXIF from 'exif-js'; - -const MAX_IMAGE_PIXELS = 2073600; // 1920x1080px - -const _browser_quirks = {}; - -// Some browsers will automatically draw images respecting their EXIF orientation -// while others won't, and the safest way to detect that is to examine how it -// is done on a known image. -// See https://github.com/w3c/csswg-drafts/issues/4666 -// and https://github.com/blueimp/JavaScript-Load-Image/commit/1e4df707821a0afcc11ea0720ee403b8759f3881 -const dropOrientationIfNeeded = (orientation) => new Promise(resolve => { - switch (_browser_quirks['image-orientation-automatic']) { - case true: - resolve(1); - break; - case false: - resolve(orientation); - break; - default: - // black 2x1 JPEG, with the following meta information set: - // - EXIF Orientation: 6 (Rotated 90° CCW) - const testImageURL = - 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' + - 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' + - 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' + - 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' + - 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' + - 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q=='; - const img = new Image(); - img.onload = () => { - const automatic = (img.width === 1 && img.height === 2); - _browser_quirks['image-orientation-automatic'] = automatic; - resolve(automatic ? 1 : orientation); - }; - img.onerror = () => { - _browser_quirks['image-orientation-automatic'] = false; - resolve(orientation); - }; - img.src = testImageURL; - } -}); - -// Some browsers don't allow reading from a canvas and instead return all-white -// or randomized data. Use a pre-defined image to check if reading the canvas -// works. -const checkCanvasReliability = () => new Promise((resolve, reject) => { - switch(_browser_quirks['canvas-read-unreliable']) { - case true: - reject('Canvas reading unreliable'); - break; - case false: - resolve(); - break; - default: - // 2×2 GIF with white, red, green and blue pixels - const testImageURL = - 'data:image/gif;base64,R0lGODdhAgACAKEDAAAA//8AAAD/AP///ywAAAAAAgACAAACA1wEBQA7'; - const refData = - [255, 255, 255, 255, 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255]; - const img = new Image(); - img.onload = () => { - const canvas = document.createElement('canvas'); - const context = canvas.getContext('2d'); - context.drawImage(img, 0, 0, 2, 2); - const imageData = context.getImageData(0, 0, 2, 2); - if (imageData.data.every((x, i) => refData[i] === x)) { - _browser_quirks['canvas-read-unreliable'] = false; - resolve(); - } else { - _browser_quirks['canvas-read-unreliable'] = true; - reject('Canvas reading unreliable'); - } - }; - img.onerror = () => { - _browser_quirks['canvas-read-unreliable'] = true; - reject('Failed to load test image'); - }; - img.src = testImageURL; - } -}); - -const getImageUrl = inputFile => new Promise((resolve, reject) => { - if (window.URL && URL.createObjectURL) { - try { - resolve(URL.createObjectURL(inputFile)); - } catch (error) { - reject(error); - } - return; - } - - const reader = new FileReader(); - reader.onerror = (...args) => reject(...args); - reader.onload = ({ target }) => resolve(target.result); - - reader.readAsDataURL(inputFile); -}); - -const loadImage = inputFile => new Promise((resolve, reject) => { - getImageUrl(inputFile).then(url => { - const img = new Image(); - - img.onerror = (...args) => reject(...args); - img.onload = () => resolve(img); - - img.src = url; - }).catch(reject); -}); - -const getOrientation = (img, type = 'image/png') => new Promise(resolve => { - if (!['image/jpeg', 'image/webp'].includes(type)) { - resolve(1); - return; - } - - EXIF.getData(img, () => { - const orientation = EXIF.getTag(img, 'Orientation'); - if (orientation !== 1) { - dropOrientationIfNeeded(orientation).then(resolve).catch(() => resolve(orientation)); - } else { - resolve(orientation); - } - }); -}); - -const processImage = (img, { width, height, orientation, type = 'image/png' }) => new Promise(resolve => { - const canvas = document.createElement('canvas'); - - if (4 < orientation && orientation < 9) { - canvas.width = height; - canvas.height = width; - } else { - canvas.width = width; - canvas.height = height; - } - - const context = canvas.getContext('2d'); - - switch (orientation) { - case 2: context.transform(-1, 0, 0, 1, width, 0); break; - case 3: context.transform(-1, 0, 0, -1, width, height); break; - case 4: context.transform(1, 0, 0, -1, 0, height); break; - case 5: context.transform(0, 1, 1, 0, 0, 0); break; - case 6: context.transform(0, 1, -1, 0, height, 0); break; - case 7: context.transform(0, -1, -1, 0, height, width); break; - case 8: context.transform(0, -1, 1, 0, 0, width); break; - } - - context.drawImage(img, 0, 0, width, height); - - canvas.toBlob(resolve, type); -}); - -const resizeImage = (img, type = 'image/png') => new Promise((resolve, reject) => { - const { width, height } = img; - - const newWidth = Math.round(Math.sqrt(MAX_IMAGE_PIXELS * (width / height))); - const newHeight = Math.round(Math.sqrt(MAX_IMAGE_PIXELS * (height / width))); - - checkCanvasReliability() - .then(getOrientation(img, type)) - .then(orientation => processImage(img, { - width: newWidth, - height: newHeight, - orientation, - type, - })) - .then(resolve) - .catch(reject); -}); - -export default inputFile => new Promise((resolve) => { - if (!inputFile.type.match(/image.*/) || inputFile.type === 'image/gif') { - resolve(inputFile); - return; - } - - loadImage(inputFile).then(img => { - if (img.width * img.height < MAX_IMAGE_PIXELS) { - resolve(inputFile); - return; - } - - resizeImage(img, inputFile.type) - .then(resolve) - .catch(() => resolve(inputFile)); - }).catch(() => resolve(inputFile)); -}); diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb index 01fae4236f..d44c224381 100644 --- a/app/models/concerns/attachmentable.rb +++ b/app/models/concerns/attachmentable.rb @@ -5,7 +5,7 @@ require 'mime/types/columnar' module Attachmentable extend ActiveSupport::Concern - MAX_MATRIX_LIMIT = 16_777_216 # 4096x4096px or approx. 16MB + MAX_MATRIX_LIMIT = 33_177_600 # 7680x4320px or approx. 847MB in RAM GIF_MATRIX_LIMIT = 921_600 # 1280x720px # For some file extensions, there exist different content diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 08abd4e43b..e51e13b956 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -39,11 +39,11 @@ class MediaAttachment < ApplicationRecord MAX_DESCRIPTION_LENGTH = 1_500 - IMAGE_LIMIT = 10.megabytes - VIDEO_LIMIT = 40.megabytes + IMAGE_LIMIT = 16.megabytes + VIDEO_LIMIT = 99.megabytes - MAX_VIDEO_MATRIX_LIMIT = 2_304_000 # 1920x1200px - MAX_VIDEO_FRAME_RATE = 60 + MAX_VIDEO_MATRIX_LIMIT = 8_294_400 # 3840x2160px + MAX_VIDEO_FRAME_RATE = 120 IMAGE_FILE_EXTENSIONS = %w(.jpg .jpeg .png .gif .webp .heic .heif .avif).freeze VIDEO_FILE_EXTENSIONS = %w(.webm .mp4 .m4v .mov).freeze @@ -69,7 +69,7 @@ class MediaAttachment < ApplicationRecord IMAGE_STYLES = { original: { - pixels: 2_073_600, # 1920x1080px + pixels: 8_294_400, # 3840x2160px file_geometry_parser: FastGeometryParser, }.freeze, diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index 6bce165629..a738940be8 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -36,7 +36,7 @@ class PreviewCard < ApplicationRecord include Attachmentable IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze - LIMIT = 1.megabytes + LIMIT = 2.megabytes BLURHASH_OPTIONS = { x_comp: 4, @@ -121,7 +121,7 @@ class PreviewCard < ApplicationRecord def image_styles(file) styles = { original: { - geometry: '400x400>', + pixels: 230_400, # 640x360px file_geometry_parser: FastGeometryParser, convert_options: '-coalesce', blurhash: BLURHASH_OPTIONS, diff --git a/dist/nginx.conf b/dist/nginx.conf index 5bc960e256..bed4bd3db9 100644 --- a/dist/nginx.conf +++ b/dist/nginx.conf @@ -39,7 +39,7 @@ server { keepalive_timeout 70; sendfile on; - client_max_body_size 80m; + client_max_body_size 99m; root /home/mastodon/live/public; diff --git a/package.json b/package.json index 045db8d143..90d76001bb 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,6 @@ "emoji-mart": "npm:emoji-mart-lazyload@latest", "es6-symbol": "^3.1.3", "escape-html": "^1.0.3", - "exif-js": "^2.3.0", "express": "^4.18.2", "file-loader": "^6.2.0", "font-awesome": "^4.7.0", diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb index e45596b1af..563e60271f 100644 --- a/spec/controllers/settings/profiles_controller_spec.rb +++ b/spec/controllers/settings/profiles_controller_spec.rb @@ -44,12 +44,4 @@ RSpec.describe Settings::ProfilesController, type: :controller do expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id) end end - - describe 'PUT #update with oversized image' do - it 'gives the user an error message' do - allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_async) - put :update, params: { account: { avatar: fixture_file_upload('4096x4097.png', 'image/png') } } - expect(response.body).to include('images are not supported') - end - end end diff --git a/yarn.lock b/yarn.lock index d2be342c91..0dc40b4698 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4821,11 +4821,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exif-js@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814" - integrity sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ= - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" From e63524f45792af83cf802270c3beebc76bada645 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 25 Mar 2023 19:37:57 -0400 Subject: [PATCH 0747/1220] Update retention model sql query (#24249) --- app/lib/admin/metrics/retention.rb | 74 +++++++++++++++++------------- 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/app/lib/admin/metrics/retention.rb b/app/lib/admin/metrics/retention.rb index f6135ac1ef..9bd47c58e4 100644 --- a/app/lib/admin/metrics/retention.rb +++ b/app/lib/admin/metrics/retention.rb @@ -42,38 +42,7 @@ class Admin::Metrics::Retention end def perform_query - sql = <<-SQL.squish - SELECT axis.*, ( - WITH new_users AS ( - SELECT users.id - FROM users - WHERE date_trunc($3, users.created_at)::date = axis.cohort_period - ), - retained_users AS ( - SELECT users.id - FROM users - INNER JOIN new_users on new_users.id = users.id - WHERE date_trunc($3, users.current_sign_in_at) >= axis.retention_period - ) - SELECT ARRAY[count(*), (count(*))::float / (SELECT GREATEST(count(*), 1) FROM new_users)] AS retention_value_and_rate - FROM retained_users - ) - FROM ( - WITH cohort_periods AS ( - SELECT generate_series(date_trunc($3, $1::timestamp)::date, date_trunc($3, $2::timestamp)::date, ('1 ' || $3)::interval) AS cohort_period - ), - retention_periods AS ( - SELECT cohort_period AS retention_period FROM cohort_periods - ) - SELECT * - FROM cohort_periods, retention_periods - WHERE retention_period >= cohort_period - ) as axis - SQL - - rows = ActiveRecord::Base.connection.select_all(sql, nil, [[nil, @start_at], [nil, @end_at], [nil, @frequency]]) - - rows.each_with_object([]) do |row, arr| + report_rows.each_with_object([]) do |row, arr| current_cohort = arr.last if current_cohort.nil? || current_cohort.period != row['cohort_period'] @@ -90,4 +59,45 @@ class Admin::Metrics::Retention ) end end + + def report_rows + ActiveRecord::Base.connection.select_all(sanitized_sql_string) + end + + def sanitized_sql_string + ActiveRecord::Base.sanitize_sql_array( + [sql_query_string, { start_at: @start_at, end_at: @end_at, frequency: @frequency }] + ) + end + + def sql_query_string + <<~SQL.squish + SELECT axis.*, ( + WITH new_users AS ( + SELECT users.id + FROM users + WHERE date_trunc(:frequency, users.created_at)::date = axis.cohort_period + ), + retained_users AS ( + SELECT users.id + FROM users + INNER JOIN new_users on new_users.id = users.id + WHERE date_trunc(:frequency, users.current_sign_in_at) >= axis.retention_period + ) + SELECT ARRAY[count(*), (count(*))::float / (SELECT GREATEST(count(*), 1) FROM new_users)] AS retention_value_and_rate + FROM retained_users + ) + FROM ( + WITH cohort_periods AS ( + SELECT generate_series(date_trunc(:frequency, :start_at::timestamp)::date, date_trunc(:frequency, :end_at::timestamp)::date, ('1 ' || :frequency)::interval) AS cohort_period + ), + retention_periods AS ( + SELECT cohort_period AS retention_period FROM cohort_periods + ) + SELECT * + FROM cohort_periods, retention_periods + WHERE retention_period >= cohort_period + ) as axis + SQL + end end From e633b26f4f69c068f6479e09254a6ae2277b73dd Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 25 Mar 2023 19:38:32 -0400 Subject: [PATCH 0748/1220] Add allow_other_host in redirects which may go outside app (#24252) --- app/controllers/api/v1/streaming_controller.rb | 2 +- app/controllers/media_proxy_controller.rb | 2 +- app/controllers/statuses_controller.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/streaming_controller.rb b/app/controllers/api/v1/streaming_controller.rb index b23a60170c..0cdd00d62f 100644 --- a/app/controllers/api/v1/streaming_controller.rb +++ b/app/controllers/api/v1/streaming_controller.rb @@ -5,7 +5,7 @@ class Api::V1::StreamingController < Api::BaseController if Rails.configuration.x.streaming_api_base_url == request.host not_found else - redirect_to streaming_api_url, status: 301 + redirect_to streaming_api_url, status: 301, allow_other_host: true end end diff --git a/app/controllers/media_proxy_controller.rb b/app/controllers/media_proxy_controller.rb index 3b228722f3..f29b69a24a 100644 --- a/app/controllers/media_proxy_controller.rb +++ b/app/controllers/media_proxy_controller.rb @@ -23,7 +23,7 @@ class MediaProxyController < ApplicationController redownload! if @media_attachment.needs_redownload? && !reject_media? end - redirect_to full_asset_url(@media_attachment.file.url(version)) + redirect_to full_asset_url(@media_attachment.file.url(version)), allow_other_host: true end private diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 0e0783b4b2..fcb3cd4fa3 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -70,6 +70,6 @@ class StatusesController < ApplicationController end def redirect_to_original - redirect_to ActivityPub::TagManager.instance.url_for(@status.reblog) if @status.reblog? + redirect_to(ActivityPub::TagManager.instance.url_for(@status.reblog), allow_other_host: true) if @status.reblog? end end From b9e34ef098026eaa451f42927ce72cb5ba48f413 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 25 Mar 2023 19:39:24 -0400 Subject: [PATCH 0749/1220] Migration warning helper, and only run in production env (#24253) --- db/migrate/20170918125918_ids_to_bigints.rb | 26 +++------ ...0180528141303_fix_accounts_unique_index.rb | 25 +++------ ...024224956_migrate_account_conversations.rb | 18 ++---- lib/mastodon/migration_warning.rb | 55 +++++++++++++++++++ 4 files changed, 77 insertions(+), 47 deletions(-) create mode 100644 lib/mastodon/migration_warning.rb diff --git a/db/migrate/20170918125918_ids_to_bigints.rb b/db/migrate/20170918125918_ids_to_bigints.rb index bf875e4e59..e3fc34a517 100644 --- a/db/migrate/20170918125918_ids_to_bigints.rb +++ b/db/migrate/20170918125918_ids_to_bigints.rb @@ -1,7 +1,9 @@ -require Rails.root.join('lib', 'mastodon', 'migration_helpers') +require_relative '../../lib/mastodon/migration_helpers' +require_relative '../../lib/mastodon/migration_warning' class IdsToBigints < ActiveRecord::Migration[5.1] include Mastodon::MigrationHelpers + include Mastodon::MigrationWarning disable_ddl_transaction! @@ -69,24 +71,12 @@ class IdsToBigints < ActiveRecord::Migration[5.1] ] included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards) - # Print out a warning that this will probably take a while. - if $stdout.isatty - say '' - say 'WARNING: This migration may take a *long* time for large instances' - say 'It will *not* lock tables for any significant time, but it may run' - say 'for a very long time. We will pause for 10 seconds to allow you to' - say 'interrupt this migration if you are not ready.' - say '' - say 'This migration has some sections that can be safely interrupted' - say 'and restarted later, and will tell you when those are occurring.' - say '' - say 'For more information, see https://github.com/mastodon/mastodon/pull/5088' + migration_duration_warning(<<~EXPLANATION) + This migration has some sections that can be safely interrupted + and restarted later, and will tell you when those are occurring. - 10.downto(1) do |i| - say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true - sleep 1 - end - end + For more information, see https://github.com/mastodon/mastodon/pull/5088 + EXPLANATION tables = included_columns.map(&:first).uniq table_sizes = {} diff --git a/db/migrate/20180528141303_fix_accounts_unique_index.rb b/db/migrate/20180528141303_fix_accounts_unique_index.rb index 0b39f71079..1e67b4bb4d 100644 --- a/db/migrate/20180528141303_fix_accounts_unique_index.rb +++ b/db/migrate/20180528141303_fix_accounts_unique_index.rb @@ -1,4 +1,8 @@ +require_relative '../../lib/mastodon/migration_warning' + class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2] + include Mastodon::MigrationWarning + class Account < ApplicationRecord # Dummy class, to make migration possible across version changes has_one :user, inverse_of: :account @@ -35,22 +39,11 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2] disable_ddl_transaction! def up - if $stdout.isatty - say '' - say 'WARNING: This migration may take a *long* time for large instances' - say 'It will *not* lock tables for any significant time, but it may run' - say 'for a very long time. We will pause for 10 seconds to allow you to' - say 'interrupt this migration if you are not ready.' - say '' - say 'This migration will irreversibly delete user accounts with duplicate' - say 'usernames. You may use the `rake mastodon:maintenance:find_duplicate_usernames`' - say 'task to manually deal with such accounts before running this migration.' - - 10.downto(1) do |i| - say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true - sleep 1 - end - end + migration_duration_warning(<<~EXPLANATION) + This migration will irreversibly delete user accounts with duplicate + usernames. You may use the `rake mastodon:maintenance:find_duplicate_usernames` + task to manually deal with such accounts before running this migration. + EXPLANATION duplicates = Account.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM accounts GROUP BY lower(username), lower(domain) HAVING count(*) > 1').to_ary diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb index aca6638e18..e4dcdb18b3 100644 --- a/db/migrate/20181024224956_migrate_account_conversations.rb +++ b/db/migrate/20181024224956_migrate_account_conversations.rb @@ -1,4 +1,8 @@ +require_relative '../../lib/mastodon/migration_warning' + class MigrateAccountConversations < ActiveRecord::Migration[5.2] + include Mastodon::MigrationWarning + disable_ddl_transaction! class Mention < ApplicationRecord @@ -62,19 +66,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end def up - if $stdout.isatty - say '' - say 'WARNING: This migration may take a *long* time for large instances' - say 'It will *not* lock tables for any significant time, but it may run' - say 'for a very long time. We will pause for 10 seconds to allow you to' - say 'interrupt this migration if you are not ready.' - say '' - - 10.downto(1) do |i| - say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true - sleep 1 - end - end + migration_duration_warning migrated = 0 last_time = Time.zone.now diff --git a/lib/mastodon/migration_warning.rb b/lib/mastodon/migration_warning.rb new file mode 100644 index 0000000000..227f6705d3 --- /dev/null +++ b/lib/mastodon/migration_warning.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Mastodon + module MigrationWarning + WARNING_SECONDS = 10 + + DEFAULT_WARNING = <<~WARNING_MESSAGE + WARNING: This migration may take a *long* time for large instances. + It will *not* lock tables for any significant time, but it may run + for a very long time. We will pause for #{WARNING_SECONDS} seconds to allow you to + interrupt this migration if you are not ready. + WARNING_MESSAGE + + def migration_duration_warning(explanation = nil) + return unless valid_environment? + + announce_warning(explanation) + + announce_countdown + end + + private + + def announce_countdown + WARNING_SECONDS.downto(1) do |i| + say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true + sleep 1 + end + end + + def valid_environment? + $stdout.isatty && Rails.env.production? + end + + def announce_warning(explanation) + announce_message prepare_message(explanation) + end + + def announce_message(text) + say '' + text.each_line do |line| + say(line) + end + say '' + end + + def prepare_message(explanation) + if explanation.blank? + DEFAULT_WARNING + else + DEFAULT_WARNING + "\n#{explanation}" + end + end + end +end From 0663803348440cc4b66f061801259dc10c0ad83d Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 25 Mar 2023 19:40:01 -0400 Subject: [PATCH 0750/1220] Move link header setting to after_action (#24251) --- app/controllers/concerns/account_controller_concern.rb | 3 ++- app/controllers/statuses_controller.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/account_controller_concern.rb b/app/controllers/concerns/account_controller_concern.rb index 2f7d84df04..e9cff22ca8 100644 --- a/app/controllers/concerns/account_controller_concern.rb +++ b/app/controllers/concerns/account_controller_concern.rb @@ -10,7 +10,8 @@ module AccountControllerConcern included do before_action :set_instance_presenter - before_action :set_link_headers, if: -> { request.format.nil? || request.format == :html } + + after_action :set_link_headers, if: -> { request.format.nil? || request.format == :html } end private diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index fcb3cd4fa3..d369cd8e6d 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -9,11 +9,12 @@ class StatusesController < ApplicationController before_action :require_account_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_status before_action :set_instance_presenter - before_action :set_link_headers before_action :redirect_to_original, only: :show before_action :set_cache_headers before_action :set_body_classes, only: :embed + after_action :set_link_headers + skip_around_action :set_locale, if: -> { request.format == :json } skip_before_action :require_functional!, only: [:show, :embed], unless: :whitelist_mode? From 3557a65bb255cddb29bb3163835fe6b6a44bccd4 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 25 Mar 2023 19:40:36 -0400 Subject: [PATCH 0751/1220] Reset model in migration after removing column (#24250) --- .../20190511152737_remove_suspended_silenced_account_fields.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb b/db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb index a46349cb73..615f35cd0d 100644 --- a/db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb +++ b/db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb @@ -34,6 +34,7 @@ class RemoveSuspendedSilencedAccountFields < ActiveRecord::Migration[5.2] remove_column :accounts, :suspended, :boolean, null: false, default: false remove_column :accounts, :silenced, :boolean, null: false, default: false end + Account.reset_column_information end def down From 63a6808ee12e2b23353a62e2a37b20fd48e4e429 Mon Sep 17 00:00:00 2001 From: mogamin <5103195+mgmn@users.noreply.github.com> Date: Sun, 26 Mar 2023 17:59:14 +0900 Subject: [PATCH 0752/1220] Fix typo in _login_activity.html.haml (#24263) --- app/views/settings/login_activities/_login_activity.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/settings/login_activities/_login_activity.html.haml b/app/views/settings/login_activities/_login_activity.html.haml index 9f4c24d871..94ed60312c 100644 --- a/app/views/settings/login_activities/_login_activity.html.haml +++ b/app/views/settings/login_activities/_login_activity.html.haml @@ -1,6 +1,6 @@ - method_str = content_tag(:span, login_activity.omniauth? ? t(login_activity.provider, scope: 'auth.providers') : t(login_activity.authentication_method, scope: 'login_activities.authentication_methods'), class: 'target') - ip_str = content_tag(:span, login_activity.ip, class: 'target') -- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: login_activity.browser.to_s), platform: t("sessions.platforms.#{login_activity.platform}", default: login_activity.platform.to_)), class: 'target', title: login_activity.user_agent) +- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: login_activity.browser.to_s), platform: t("sessions.platforms.#{login_activity.platform}", default: login_activity.platform.to_s)), class: 'target', title: login_activity.user_agent) .log-entry .log-entry__header From 00c839b9a912ee495d344d61a5c7f26ca133e13d Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 23 Mar 2023 04:47:13 -0400 Subject: [PATCH 0753/1220] [Glitch] Remove isNaN polyfill Port b46125224c26bc0144659b4319ea416b01289961 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/base_polyfills.js | 5 ----- app/javascript/flavours/glitch/load_polyfills.js | 1 - 2 files changed, 6 deletions(-) diff --git a/app/javascript/flavours/glitch/base_polyfills.js b/app/javascript/flavours/glitch/base_polyfills.js index 12096d9021..d3ac0d5108 100644 --- a/app/javascript/flavours/glitch/base_polyfills.js +++ b/app/javascript/flavours/glitch/base_polyfills.js @@ -4,7 +4,6 @@ import 'es6-symbol/implement'; import includes from 'array-includes'; import assign from 'object-assign'; import values from 'object.values'; -import isNaN from 'is-nan'; import { decode as decodeBase64 } from './utils/base64'; import promiseFinally from 'promise.prototype.finally'; @@ -20,10 +19,6 @@ if (!Object.values) { values.shim(); } -if (!Number.isNaN) { - Number.isNaN = isNaN; -} - promiseFinally.shim(); if (!HTMLCanvasElement.prototype.toBlob) { diff --git a/app/javascript/flavours/glitch/load_polyfills.js b/app/javascript/flavours/glitch/load_polyfills.js index f5a897f754..b2c41303aa 100644 --- a/app/javascript/flavours/glitch/load_polyfills.js +++ b/app/javascript/flavours/glitch/load_polyfills.js @@ -15,7 +15,6 @@ function loadPolyfills() { Array.prototype.includes && HTMLCanvasElement.prototype.toBlob && window.Intl && - Number.isNaN && Object.assign && Object.values && window.Symbol && From 34225d7199ee79f252275722b98b988e984a0943 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 26 Mar 2023 23:17:19 -0400 Subject: [PATCH 0754/1220] Setup Husky and lint-stage for commit fixing (#23308) --- .husky/pre-commit | 4 + .yarnclean | 3 + package.json | 10 +- yarn.lock | 274 +++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 285 insertions(+), 6 deletions(-) create mode 100755 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000000..36af219892 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/.yarnclean b/.yarnclean index 0cc2b50d7b..21eb734a6c 100644 --- a/.yarnclean +++ b/.yarnclean @@ -44,3 +44,6 @@ Gruntfile.js # for specific ignore !.svgo.yml !sass-lint/**/*.yml + +# breaks lint-staged or generally anything using https://github.com/eemeli/yaml/issues/384 +!**/yaml/dist/**/doc diff --git a/package.json b/package.json index 90d76001bb..0851c838d4 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write .", - "format-check": "prettier --check ." + "format-check": "prettier --check .", + "prepare": "husky install" }, "repository": { "type": "git", @@ -148,8 +149,10 @@ "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-promise": "~6.1.1", "eslint-plugin-react": "~7.32.2", + "husky": "^8.0.3", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", + "lint-staged": "^13.1.2", "postcss-scss": "^4.0.6", "prettier": "^2.8.5", "raf": "^3.4.1", @@ -166,5 +169,10 @@ "optionalDependencies": { "bufferutil": "^4.0.7", "utf-8-validate": "^6.0.3" + }, + "lint-staged": { + "*": "prettier --ignore-unknown --write", + "*.{js,jsx}": "eslint --fix", + "*.{css,scss}": "stylelint --fix" } } diff --git a/yarn.lock b/yarn.lock index 0dc40b4698..2d146e5aa0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1082,7 +1082,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7": +"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1592,7 +1592,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -2390,6 +2390,13 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-html-community@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -2410,6 +2417,11 @@ 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-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + 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" @@ -2430,6 +2442,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -3250,6 +3267,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -3369,6 +3391,29 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -3463,6 +3508,11 @@ colord@^2.9.1, colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3470,6 +3520,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -4305,6 +4360,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4821,6 +4881,21 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -5321,7 +5396,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -5753,6 +5828,16 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -6143,6 +6228,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -6280,6 +6370,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -7073,7 +7168,7 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@^2.0.3: +lilconfig@2.1.0, lilconfig@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -7083,6 +7178,39 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +lint-staged@^13.1.2: + version "13.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.0.tgz#b7abaf79c91cd36d824f17b23a4ce5209206126a" + integrity sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw== + dependencies: + chalk "5.2.0" + cli-truncate "^3.1.0" + commander "^10.0.0" + debug "^4.3.4" + execa "^7.0.0" + lilconfig "2.1.0" + listr2 "^5.0.7" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.3" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.2.1" + +listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" + integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.19" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.8.0" + through "^2.3.8" + wrap-ansi "^7.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -7200,6 +7328,16 @@ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + loglevel@^1.6.8: version "1.7.0" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" @@ -7447,6 +7585,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -7797,6 +7940,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + npmlog@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" @@ -7838,6 +7988,11 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + object-is@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" @@ -7942,13 +8097,20 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -8180,6 +8342,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -8297,6 +8464,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatc resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9469,6 +9641,14 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -9484,6 +9664,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -9549,6 +9734,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +rxjs@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -9847,6 +10039,15 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -9856,6 +10057,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -10156,6 +10365,11 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +string-argv@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-length@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" @@ -10182,6 +10396,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -10258,6 +10481,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10283,6 +10513,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -10613,6 +10848,11 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -10753,6 +10993,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -10812,6 +11057,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -11625,6 +11875,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -11712,6 +11971,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" From 8215df76c070f7d400a6091fcb1c0f6ff78474a0 Mon Sep 17 00:00:00 2001 From: neatchee Date: Fri, 24 Mar 2023 15:15:25 -0700 Subject: [PATCH 0755/1220] [Glitch] Remove legacy decorators syntax Port d1b057a0ac41a5756b6a416d2f290b086cb59220 to glitch-soc --- .../flavours/glitch/components/account.jsx | 3 ++- .../glitch/components/admin/ReportReasonSelector.jsx | 3 ++- .../flavours/glitch/components/column_header.jsx | 3 ++- .../glitch/components/dismissable_banner.jsx | 3 ++- app/javascript/flavours/glitch/components/domain.jsx | 3 ++- .../glitch/components/edited_timestamp/index.jsx | 4 ++-- .../flavours/glitch/components/inline_account.jsx | 3 ++- .../flavours/glitch/components/load_gap.jsx | 3 ++- .../flavours/glitch/components/media_gallery.jsx | 3 ++- .../flavours/glitch/components/navigation_portal.jsx | 3 ++- .../glitch/components/notification_purge_buttons.jsx | 3 ++- .../components/picture_in_picture_placeholder.jsx | 3 ++- app/javascript/flavours/glitch/components/poll.jsx | 3 ++- .../glitch/components/relative_timestamp.jsx | 3 ++- .../flavours/glitch/components/scrollable_list.jsx | 3 ++- .../flavours/glitch/components/server_banner.jsx | 4 ++-- app/javascript/flavours/glitch/components/status.jsx | 3 ++- .../flavours/glitch/components/status_action_bar.jsx | 3 ++- .../flavours/glitch/components/status_content.jsx | 4 ++-- .../flavours/glitch/components/status_icons.jsx | 3 ++- .../glitch/components/status_visibility_icon.jsx | 3 ++- .../flavours/glitch/features/about/index.jsx | 4 ++-- .../features/account/components/account_note.jsx | 3 ++- .../features/account/components/action_bar.jsx | 3 ++- .../features/account/components/featured_tags.jsx | 3 ++- .../glitch/features/account/components/header.jsx | 3 ++- .../account/components/profile_column_header.jsx | 3 ++- .../flavours/glitch/features/account/navigation.jsx | 3 ++- .../glitch/features/account_gallery/index.jsx | 3 ++- .../components/limited_account_hint.jsx | 3 ++- .../glitch/features/account_timeline/index.jsx | 3 ++- .../flavours/glitch/features/audio/index.jsx | 3 ++- .../flavours/glitch/features/blocks/index.jsx | 4 ++-- .../glitch/features/bookmarked_statuses/index.jsx | 4 ++-- .../features/closed_registrations_modal/index.jsx | 3 ++- .../components/column_settings.jsx | 3 ++- .../glitch/features/community_timeline/index.jsx | 4 ++-- .../features/compose/components/action_bar.jsx | 3 ++- .../features/compose/components/compose_form.jsx | 3 ++- .../compose/components/emoji_picker_dropdown.jsx | 8 +++++--- .../glitch/features/compose/components/header.jsx | 3 ++- .../compose/components/language_dropdown.jsx | 3 ++- .../glitch/features/compose/components/options.jsx | 12 +++++++++--- .../glitch/features/compose/components/poll_form.jsx | 9 +++++---- .../features/compose/components/privacy_dropdown.jsx | 3 ++- .../glitch/features/compose/components/publisher.jsx | 3 ++- .../features/compose/components/reply_indicator.jsx | 3 ++- .../glitch/features/compose/components/search.jsx | 3 ++- .../features/compose/components/search_results.jsx | 3 ++- .../features/compose/components/textarea_icons.jsx | 3 ++- .../flavours/glitch/features/compose/index.jsx | 4 ++-- .../direct_timeline/components/column_settings.jsx | 3 ++- .../direct_timeline/components/conversation.jsx | 3 ++- .../glitch/features/direct_timeline/index.jsx | 4 ++-- .../features/directory/components/account_card.jsx | 5 ++--- .../flavours/glitch/features/directory/index.jsx | 4 ++-- .../flavours/glitch/features/domain_blocks/index.jsx | 4 ++-- .../flavours/glitch/features/explore/index.jsx | 4 ++-- .../flavours/glitch/features/explore/links.jsx | 3 ++- .../flavours/glitch/features/explore/results.jsx | 4 ++-- .../flavours/glitch/features/explore/statuses.jsx | 3 ++- .../flavours/glitch/features/explore/suggestions.jsx | 3 ++- .../flavours/glitch/features/explore/tags.jsx | 3 ++- .../glitch/features/favourited_statuses/index.jsx | 4 ++-- .../flavours/glitch/features/favourites/index.jsx | 4 ++-- .../glitch/features/filters/added_to_filter.jsx | 3 ++- .../glitch/features/filters/select_filter.jsx | 4 ++-- .../follow_recommendations/components/account.jsx | 4 ++-- .../glitch/features/follow_recommendations/index.jsx | 3 ++- .../follow_requests/components/account_authorize.jsx | 3 ++- .../glitch/features/follow_requests/index.jsx | 4 ++-- .../flavours/glitch/features/followed_tags/index.jsx | 4 ++-- .../flavours/glitch/features/followers/index.jsx | 3 ++- .../flavours/glitch/features/following/index.jsx | 3 ++- .../getting_started/components/announcements.jsx | 3 ++- .../glitch/features/getting_started/index.jsx | 4 ++-- .../glitch/features/getting_started_misc/index.jsx | 6 +++--- .../hashtag_timeline/components/column_settings.jsx | 3 ++- .../glitch/features/hashtag_timeline/index.jsx | 4 ++-- .../home_timeline/components/column_settings.jsx | 3 ++- .../flavours/glitch/features/home_timeline/index.jsx | 4 ++-- .../glitch/features/interaction_modal/index.jsx | 3 ++- .../glitch/features/keyboard_shortcuts/index.jsx | 4 ++-- .../features/list_adder/components/account.jsx | 4 ++-- .../glitch/features/list_adder/components/list.jsx | 6 +++--- .../flavours/glitch/features/list_adder/index.jsx | 4 ++-- .../list_editor/components/edit_list_form.jsx | 4 ++-- .../flavours/glitch/features/list_editor/index.jsx | 4 ++-- .../flavours/glitch/features/list_timeline/index.jsx | 4 ++-- .../features/lists/components/new_list_form.jsx | 4 ++-- .../flavours/glitch/features/lists/index.jsx | 4 ++-- .../features/local_settings/navigation/index.jsx | 3 ++- .../glitch/features/local_settings/page/index.jsx | 3 ++- .../flavours/glitch/features/mutes/index.jsx | 4 ++-- .../features/notifications/components/filter_bar.jsx | 3 ++- .../notifications/components/follow_request.jsx | 3 ++- .../components/notifications_permission_banner.jsx | 4 ++-- .../features/notifications/components/overlay.jsx | 3 ++- .../features/notifications/components/report.jsx | 3 ++- .../flavours/glitch/features/notifications/index.jsx | 4 ++-- .../picture_in_picture/components/footer.jsx | 4 ++-- .../picture_in_picture/components/header.jsx | 4 ++-- .../glitch/features/picture_in_picture/index.jsx | 3 ++- .../glitch/features/pinned_accounts_editor/index.jsx | 4 ++-- .../glitch/features/pinned_statuses/index.jsx | 4 ++-- .../glitch/features/privacy_policy/index.jsx | 3 ++- .../public_timeline/components/column_settings.jsx | 3 ++- .../glitch/features/public_timeline/index.jsx | 4 ++-- .../flavours/glitch/features/reblogs/index.jsx | 4 ++-- .../flavours/glitch/features/report/category.jsx | 4 ++-- .../flavours/glitch/features/report/comment.jsx | 3 ++- .../flavours/glitch/features/report/rules.jsx | 3 ++- .../flavours/glitch/features/report/statuses.jsx | 3 ++- .../flavours/glitch/features/report/thanks.jsx | 3 ++- .../glitch/features/status/components/action_bar.jsx | 3 ++- .../features/status/components/detailed_status.jsx | 3 ++- .../flavours/glitch/features/status/index.jsx | 4 ++-- .../features/subscribed_languages_modal/index.jsx | 4 ++-- .../glitch/features/ui/components/audio_modal.jsx | 3 ++- .../glitch/features/ui/components/block_modal.jsx | 4 ++-- .../glitch/features/ui/components/boost_modal.jsx | 4 ++-- .../features/ui/components/bundle_column_error.jsx | 3 ++- .../features/ui/components/compare_history_modal.jsx | 3 ++- .../glitch/features/ui/components/compose_panel.jsx | 3 ++- .../features/ui/components/confirmation_modal.jsx | 3 ++- .../ui/components/deprecated_settings_modal.jsx | 3 ++- .../ui/components/disabled_account_banner.jsx | 4 ++-- .../glitch/features/ui/components/doodle_modal.jsx | 3 ++- .../glitch/features/ui/components/embed_modal.jsx | 3 ++- .../features/ui/components/favourite_modal.jsx | 3 ++- .../glitch/features/ui/components/filter_modal.jsx | 4 ++-- .../features/ui/components/focal_point_modal.jsx | 6 ++++-- .../ui/components/follow_requests_column_link.jsx | 4 ++-- .../glitch/features/ui/components/header.jsx | 4 ++-- .../glitch/features/ui/components/image_modal.jsx | 3 ++- .../glitch/features/ui/components/link_footer.jsx | 4 ++-- .../glitch/features/ui/components/list_panel.jsx | 4 ++-- .../glitch/features/ui/components/media_modal.jsx | 4 ++-- .../glitch/features/ui/components/mute_modal.jsx | 4 ++-- .../features/ui/components/navigation_panel.jsx | 3 ++- .../features/ui/components/onboarding_modal.jsx | 4 ++-- .../glitch/features/ui/components/report_modal.jsx | 4 ++-- .../glitch/features/ui/components/video_modal.jsx | 3 ++- .../glitch/features/ui/components/zoomable_image.jsx | 3 ++- app/javascript/flavours/glitch/features/ui/index.jsx | 5 ++--- .../flavours/glitch/features/video/index.jsx | 3 ++- 146 files changed, 309 insertions(+), 216 deletions(-) diff --git a/app/javascript/flavours/glitch/components/account.jsx b/app/javascript/flavours/glitch/components/account.jsx index 7ce4b65aac..7b66d5a6ef 100644 --- a/app/javascript/flavours/glitch/components/account.jsx +++ b/app/javascript/flavours/glitch/components/account.jsx @@ -23,7 +23,6 @@ const messages = defineMessages({ block: { id: 'account.block', defaultMessage: 'Block @{name}' }, }); -export default @injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -184,3 +183,5 @@ class Account extends ImmutablePureComponent { } } + +export default injectIntl(Account); diff --git a/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx b/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx index 771dbb452d..8478ba3662 100644 --- a/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx +++ b/app/javascript/flavours/glitch/components/admin/ReportReasonSelector.jsx @@ -84,7 +84,6 @@ class Rule extends React.PureComponent { } -export default @injectIntl class ReportReasonSelector extends React.PureComponent { static propTypes = { @@ -157,3 +156,5 @@ class ReportReasonSelector extends React.PureComponent { } } + +export default injectIntl(ReportReasonSelector); diff --git a/app/javascript/flavours/glitch/components/column_header.jsx b/app/javascript/flavours/glitch/components/column_header.jsx index 3790960ddf..6fbe2955d7 100644 --- a/app/javascript/flavours/glitch/components/column_header.jsx +++ b/app/javascript/flavours/glitch/components/column_header.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ moveRight: { id: 'column_header.moveRight_settings', defaultMessage: 'Move column to the right' }, }); -export default @injectIntl class ColumnHeader extends React.PureComponent { static contextTypes = { @@ -218,3 +217,5 @@ class ColumnHeader extends React.PureComponent { } } + +export default injectIntl(ColumnHeader); diff --git a/app/javascript/flavours/glitch/components/dismissable_banner.jsx b/app/javascript/flavours/glitch/components/dismissable_banner.jsx index c4968ac3c2..9b3faf6f27 100644 --- a/app/javascript/flavours/glitch/components/dismissable_banner.jsx +++ b/app/javascript/flavours/glitch/components/dismissable_banner.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' }, }); -export default @injectIntl class DismissableBanner extends React.PureComponent { static propTypes = { @@ -49,3 +48,5 @@ class DismissableBanner extends React.PureComponent { } } + +export default injectIntl(DismissableBanner); diff --git a/app/javascript/flavours/glitch/components/domain.jsx b/app/javascript/flavours/glitch/components/domain.jsx index e09fa45910..85ebdbde93 100644 --- a/app/javascript/flavours/glitch/components/domain.jsx +++ b/app/javascript/flavours/glitch/components/domain.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, }); -export default @injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -40,3 +39,5 @@ class Account extends ImmutablePureComponent { } } + +export default injectIntl(Account); diff --git a/app/javascript/flavours/glitch/components/edited_timestamp/index.jsx b/app/javascript/flavours/glitch/components/edited_timestamp/index.jsx index c973bda58f..6d73fa68c8 100644 --- a/app/javascript/flavours/glitch/components/edited_timestamp/index.jsx +++ b/app/javascript/flavours/glitch/components/edited_timestamp/index.jsx @@ -16,8 +16,6 @@ const mapDispatchToProps = (dispatch, { statusId }) => ({ }); -export default @connect(null, mapDispatchToProps) -@injectIntl class EditedTimestamp extends React.PureComponent { static propTypes = { @@ -68,3 +66,5 @@ class EditedTimestamp extends React.PureComponent { } } + +export default connect(null, mapDispatchToProps)(injectIntl(EditedTimestamp)); diff --git a/app/javascript/flavours/glitch/components/inline_account.jsx b/app/javascript/flavours/glitch/components/inline_account.jsx index 2ef1f52cc8..c04618d66e 100644 --- a/app/javascript/flavours/glitch/components/inline_account.jsx +++ b/app/javascript/flavours/glitch/components/inline_account.jsx @@ -14,7 +14,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) class InlineAccount extends React.PureComponent { static propTypes = { @@ -32,3 +31,5 @@ class InlineAccount extends React.PureComponent { } } + +export default connect(makeMapStateToProps)(InlineAccount); diff --git a/app/javascript/flavours/glitch/components/load_gap.jsx b/app/javascript/flavours/glitch/components/load_gap.jsx index 6ed9a38c63..e70365d9ef 100644 --- a/app/javascript/flavours/glitch/components/load_gap.jsx +++ b/app/javascript/flavours/glitch/components/load_gap.jsx @@ -7,7 +7,6 @@ const messages = defineMessages({ load_more: { id: 'status.load_more', defaultMessage: 'Load more' }, }); -export default @injectIntl class LoadGap extends React.PureComponent { static propTypes = { @@ -32,3 +31,5 @@ class LoadGap extends React.PureComponent { } } + +export default injectIntl(LoadGap); diff --git a/app/javascript/flavours/glitch/components/media_gallery.jsx b/app/javascript/flavours/glitch/components/media_gallery.jsx index 6ae510d08e..b38f732f1c 100644 --- a/app/javascript/flavours/glitch/components/media_gallery.jsx +++ b/app/javascript/flavours/glitch/components/media_gallery.jsx @@ -244,7 +244,6 @@ class Item extends React.PureComponent { } -export default @injectIntl class MediaGallery extends React.PureComponent { static propTypes = { @@ -406,3 +405,5 @@ class MediaGallery extends React.PureComponent { } } + +export default injectIntl(MediaGallery); diff --git a/app/javascript/flavours/glitch/components/navigation_portal.jsx b/app/javascript/flavours/glitch/components/navigation_portal.jsx index 90afa1da0b..9e84941793 100644 --- a/app/javascript/flavours/glitch/components/navigation_portal.jsx +++ b/app/javascript/flavours/glitch/components/navigation_portal.jsx @@ -15,7 +15,6 @@ const DefaultNavigation = () => ( ); -export default @withRouter class NavigationPortal extends React.PureComponent { render () { @@ -33,3 +32,5 @@ class NavigationPortal extends React.PureComponent { } } + +export default withRouter(NavigationPortal); diff --git a/app/javascript/flavours/glitch/components/notification_purge_buttons.jsx b/app/javascript/flavours/glitch/components/notification_purge_buttons.jsx index 3c7d67109d..1d807bc233 100644 --- a/app/javascript/flavours/glitch/components/notification_purge_buttons.jsx +++ b/app/javascript/flavours/glitch/components/notification_purge_buttons.jsx @@ -19,7 +19,6 @@ const messages = defineMessages({ btnApply : { id: 'notification_purge.btn_apply', defaultMessage: 'Clear\nselected' }, }); -export default @injectIntl class NotificationPurgeButtons extends ImmutablePureComponent { static propTypes = { @@ -57,3 +56,5 @@ class NotificationPurgeButtons extends ImmutablePureComponent { } } + +export default injectIntl(NotificationPurgeButtons); diff --git a/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx b/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx index 8bfdf343cf..961d3deadd 100644 --- a/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx +++ b/app/javascript/flavours/glitch/components/picture_in_picture_placeholder.jsx @@ -6,7 +6,6 @@ import { connect } from 'react-redux'; import { debounce } from 'lodash'; import { FormattedMessage } from 'react-intl'; -export default @connect() class PictureInPicturePlaceholder extends React.PureComponent { static propTypes = { @@ -67,3 +66,5 @@ class PictureInPicturePlaceholder extends React.PureComponent { } } + +export default connect()(PictureInPicturePlaceholder); diff --git a/app/javascript/flavours/glitch/components/poll.jsx b/app/javascript/flavours/glitch/components/poll.jsx index 8b799309bf..2ccc1761e4 100644 --- a/app/javascript/flavours/glitch/components/poll.jsx +++ b/app/javascript/flavours/glitch/components/poll.jsx @@ -31,7 +31,6 @@ const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => { return obj; }, {}); -export default @injectIntl class Poll extends ImmutablePureComponent { static contextTypes = { @@ -234,3 +233,5 @@ class Poll extends ImmutablePureComponent { } } + +export default injectIntl(Poll); diff --git a/app/javascript/flavours/glitch/components/relative_timestamp.jsx b/app/javascript/flavours/glitch/components/relative_timestamp.jsx index 5124803392..e6c3e08805 100644 --- a/app/javascript/flavours/glitch/components/relative_timestamp.jsx +++ b/app/javascript/flavours/glitch/components/relative_timestamp.jsx @@ -121,7 +121,6 @@ const timeRemainingString = (intl, date, now, timeGiven = true) => { return relativeTime; }; -export default @injectIntl class RelativeTimestamp extends React.Component { static propTypes = { @@ -197,3 +196,5 @@ class RelativeTimestamp extends React.Component { } } + +export default injectIntl(RelativeTimestamp); diff --git a/app/javascript/flavours/glitch/components/scrollable_list.jsx b/app/javascript/flavours/glitch/components/scrollable_list.jsx index ae1ba3037a..fc7dc989d0 100644 --- a/app/javascript/flavours/glitch/components/scrollable_list.jsx +++ b/app/javascript/flavours/glitch/components/scrollable_list.jsx @@ -20,7 +20,6 @@ const mapStateToProps = (state, { scrollKey }) => { }; }; -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class ScrollableList extends PureComponent { static contextTypes = { @@ -352,3 +351,5 @@ class ScrollableList extends PureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(ScrollableList); diff --git a/app/javascript/flavours/glitch/components/server_banner.jsx b/app/javascript/flavours/glitch/components/server_banner.jsx index 36e0ff2381..ba84064a8b 100644 --- a/app/javascript/flavours/glitch/components/server_banner.jsx +++ b/app/javascript/flavours/glitch/components/server_banner.jsx @@ -18,8 +18,6 @@ const mapStateToProps = state => ({ server: state.getIn(['server', 'server']), }); -export default @connect(mapStateToProps) -@injectIntl class ServerBanner extends React.PureComponent { static propTypes = { @@ -91,3 +89,5 @@ class ServerBanner extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(ServerBanner)); diff --git a/app/javascript/flavours/glitch/components/status.jsx b/app/javascript/flavours/glitch/components/status.jsx index 2f919176c4..fa90c98d02 100644 --- a/app/javascript/flavours/glitch/components/status.jsx +++ b/app/javascript/flavours/glitch/components/status.jsx @@ -56,7 +56,6 @@ export const defaultMediaVisibility = (status, settings) => { return (displayMedia !== 'hide_all' && !status.get('sensitive') || displayMedia === 'show_all'); }; -export default @injectIntl class Status extends ImmutablePureComponent { static contextTypes = { @@ -830,3 +829,5 @@ class Status extends ImmutablePureComponent { } } + +export default injectIntl(Status); diff --git a/app/javascript/flavours/glitch/components/status_action_bar.jsx b/app/javascript/flavours/glitch/components/status_action_bar.jsx index 02c5442b58..091d0b24be 100644 --- a/app/javascript/flavours/glitch/components/status_action_bar.jsx +++ b/app/javascript/flavours/glitch/components/status_action_bar.jsx @@ -46,7 +46,6 @@ const messages = defineMessages({ openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); -export default @injectIntl class StatusActionBar extends ImmutablePureComponent { static contextTypes = { @@ -339,3 +338,5 @@ class StatusActionBar extends ImmutablePureComponent { } } + +export default injectIntl(StatusActionBar); diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx index 6e1cc275e6..34742c81b5 100644 --- a/app/javascript/flavours/glitch/components/status_content.jsx +++ b/app/javascript/flavours/glitch/components/status_content.jsx @@ -104,8 +104,6 @@ const mapStateToProps = state => ({ languages: state.getIn(['server', 'translationLanguages', 'items']), }); -export default @connect(mapStateToProps) -@injectIntl class StatusContent extends React.PureComponent { static contextTypes = { @@ -468,3 +466,5 @@ class StatusContent extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(StatusContent)); diff --git a/app/javascript/flavours/glitch/components/status_icons.jsx b/app/javascript/flavours/glitch/components/status_icons.jsx index c4cb42741b..3baff2206a 100644 --- a/app/javascript/flavours/glitch/components/status_icons.jsx +++ b/app/javascript/flavours/glitch/components/status_icons.jsx @@ -40,7 +40,6 @@ LanguageIcon.propTypes = { language: PropTypes.string.isRequired, }; -export default @injectIntl class StatusIcons extends React.PureComponent { static propTypes = { @@ -143,3 +142,5 @@ class StatusIcons extends React.PureComponent { } } + +export default injectIntl(StatusIcons); diff --git a/app/javascript/flavours/glitch/components/status_visibility_icon.jsx b/app/javascript/flavours/glitch/components/status_visibility_icon.jsx index 07d56c7a8d..fcedfbfd6b 100644 --- a/app/javascript/flavours/glitch/components/status_visibility_icon.jsx +++ b/app/javascript/flavours/glitch/components/status_visibility_icon.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ direct: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, }); -export default @injectIntl class VisibilityIcon extends ImmutablePureComponent { static propTypes = { @@ -49,3 +48,5 @@ class VisibilityIcon extends ImmutablePureComponent { } } + +export default injectIntl(VisibilityIcon); diff --git a/app/javascript/flavours/glitch/features/about/index.jsx b/app/javascript/flavours/glitch/features/about/index.jsx index 1e0a8666ab..f366f734dd 100644 --- a/app/javascript/flavours/glitch/features/about/index.jsx +++ b/app/javascript/flavours/glitch/features/about/index.jsx @@ -80,8 +80,6 @@ class Section extends React.PureComponent { } -export default @connect(mapStateToProps) -@injectIntl class About extends React.PureComponent { static propTypes = { @@ -218,3 +216,5 @@ class About extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(About)); diff --git a/app/javascript/flavours/glitch/features/account/components/account_note.jsx b/app/javascript/flavours/glitch/features/account/components/account_note.jsx index b5c0c9205f..5adca87d0a 100644 --- a/app/javascript/flavours/glitch/features/account/components/account_note.jsx +++ b/app/javascript/flavours/glitch/features/account/components/account_note.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ placeholder: { id: 'account_note.glitch_placeholder', defaultMessage: 'No comment provided' }, }); -export default @injectIntl class Header extends ImmutablePureComponent { static propTypes = { @@ -102,3 +101,5 @@ class Header extends ImmutablePureComponent { } } + +export default injectIntl(Header); diff --git a/app/javascript/flavours/glitch/features/account/components/action_bar.jsx b/app/javascript/flavours/glitch/features/account/components/action_bar.jsx index d53080d4f7..e32bc01416 100644 --- a/app/javascript/flavours/glitch/features/account/components/action_bar.jsx +++ b/app/javascript/flavours/glitch/features/account/components/action_bar.jsx @@ -8,7 +8,6 @@ import { me, isStaff } from 'flavours/glitch/initial_state'; import { profileLink, accountAdminLink } from 'flavours/glitch/utils/backend_links'; import Icon from 'flavours/glitch/components/icon'; -export default @injectIntl class ActionBar extends React.PureComponent { static propTypes = { @@ -83,3 +82,5 @@ class ActionBar extends React.PureComponent { } } + +export default injectIntl(ActionBar); diff --git a/app/javascript/flavours/glitch/features/account/components/featured_tags.jsx b/app/javascript/flavours/glitch/features/account/components/featured_tags.jsx index d646b08b29..42e0a8d2f7 100644 --- a/app/javascript/flavours/glitch/features/account/components/featured_tags.jsx +++ b/app/javascript/flavours/glitch/features/account/components/featured_tags.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, }); -export default @injectIntl class FeaturedTags extends ImmutablePureComponent { static contextTypes = { @@ -51,3 +50,5 @@ class FeaturedTags extends ImmutablePureComponent { } } + +export default injectIntl(FeaturedTags); diff --git a/app/javascript/flavours/glitch/features/account/components/header.jsx b/app/javascript/flavours/glitch/features/account/components/header.jsx index c11a472e75..6f918abcf2 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.jsx +++ b/app/javascript/flavours/glitch/features/account/components/header.jsx @@ -76,7 +76,6 @@ const dateFormatOptions = { minute: '2-digit', }; -export default @injectIntl class Header extends ImmutablePureComponent { static contextTypes = { @@ -403,3 +402,5 @@ class Header extends ImmutablePureComponent { } } + +export default injectIntl(Header); diff --git a/app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx b/app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx index 17c08e375a..62a459fffb 100644 --- a/app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx +++ b/app/javascript/flavours/glitch/features/account/components/profile_column_header.jsx @@ -7,7 +7,6 @@ const messages = defineMessages({ profile: { id: 'column_header.profile', defaultMessage: 'Profile' }, }); -export default @injectIntl class ProfileColumnHeader extends React.PureComponent { static propTypes = { @@ -31,3 +30,5 @@ class ProfileColumnHeader extends React.PureComponent { } } + +export default injectIntl(ProfileColumnHeader); diff --git a/app/javascript/flavours/glitch/features/account/navigation.jsx b/app/javascript/flavours/glitch/features/account/navigation.jsx index edae38ce5f..b8b8e54deb 100644 --- a/app/javascript/flavours/glitch/features/account/navigation.jsx +++ b/app/javascript/flavours/glitch/features/account/navigation.jsx @@ -19,7 +19,6 @@ const mapStateToProps = (state, { match: { params: { acct } } }) => { }; }; -export default @connect(mapStateToProps) class AccountNavigation extends React.PureComponent { static propTypes = { @@ -50,3 +49,5 @@ class AccountNavigation extends React.PureComponent { } } + +export default connect(mapStateToProps)(AccountNavigation); diff --git a/app/javascript/flavours/glitch/features/account_gallery/index.jsx b/app/javascript/flavours/glitch/features/account_gallery/index.jsx index afd6e5161c..6914bcba70 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/index.jsx +++ b/app/javascript/flavours/glitch/features/account_gallery/index.jsx @@ -58,7 +58,6 @@ class LoadMoreMedia extends ImmutablePureComponent { } -export default @connect(mapStateToProps) class AccountGallery extends ImmutablePureComponent { static propTypes = { @@ -223,3 +222,5 @@ class AccountGallery extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(AccountGallery); diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx b/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx index dc2b3e3e61..c622b76072 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx +++ b/app/javascript/flavours/glitch/features/account_timeline/components/limited_account_hint.jsx @@ -14,7 +14,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({ }); -export default @connect(() => {}, mapDispatchToProps) class LimitedAccountHint extends React.PureComponent { static propTypes = { @@ -34,3 +33,5 @@ class LimitedAccountHint extends React.PureComponent { } } + +export default connect(() => {}, mapDispatchToProps)(LimitedAccountHint); diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.jsx b/app/javascript/flavours/glitch/features/account_timeline/index.jsx index 9151c1990e..38361b1ca6 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/account_timeline/index.jsx @@ -62,7 +62,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class AccountTimeline extends ImmutablePureComponent { static propTypes = { @@ -207,3 +206,5 @@ class AccountTimeline extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(AccountTimeline); diff --git a/app/javascript/flavours/glitch/features/audio/index.jsx b/app/javascript/flavours/glitch/features/audio/index.jsx index 05c3beef96..fd7229cc56 100644 --- a/app/javascript/flavours/glitch/features/audio/index.jsx +++ b/app/javascript/flavours/glitch/features/audio/index.jsx @@ -22,7 +22,6 @@ const messages = defineMessages({ const TICK_SIZE = 10; const PADDING = 180; -export default @injectIntl class Audio extends React.PureComponent { static propTypes = { @@ -575,3 +574,5 @@ class Audio extends React.PureComponent { } } + +export default injectIntl(Audio); diff --git a/app/javascript/flavours/glitch/features/blocks/index.jsx b/app/javascript/flavours/glitch/features/blocks/index.jsx index 4461bd14d8..461dac2ec0 100644 --- a/app/javascript/flavours/glitch/features/blocks/index.jsx +++ b/app/javascript/flavours/glitch/features/blocks/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['user_lists', 'blocks', 'isLoading'], true), }); -export default @connect(mapStateToProps) -@injectIntl class Blocks extends ImmutablePureComponent { static propTypes = { @@ -77,3 +75,5 @@ class Blocks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Blocks)); diff --git a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx index 8e25bc6fd9..90d8fd0ef1 100644 --- a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx +++ b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Bookmarks extends ImmutablePureComponent { static propTypes = { @@ -106,3 +104,5 @@ class Bookmarks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Bookmarks)); diff --git a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx index bdaa9885c8..1f17ea9cfd 100644 --- a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx +++ b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.jsx @@ -9,7 +9,6 @@ const mapStateToProps = state => ({ message: state.getIn(['server', 'server', 'registrations', 'message']), }); -export default @connect(mapStateToProps) class ClosedRegistrationsModal extends ImmutablePureComponent { componentDidMount () { @@ -73,3 +72,5 @@ class ClosedRegistrationsModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(ClosedRegistrationsModal); diff --git a/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx index 69a4699acd..0ea874e959 100644 --- a/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/community_timeline/components/column_settings.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ settings: { id: 'home.settings', defaultMessage: 'Column settings' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -39,3 +38,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/flavours/glitch/features/community_timeline/index.jsx b/app/javascript/flavours/glitch/features/community_timeline/index.jsx index b9a59fdc70..8f3e10fe9b 100644 --- a/app/javascript/flavours/glitch/features/community_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/community_timeline/index.jsx @@ -32,8 +32,6 @@ const mapStateToProps = (state, { columnId }) => { }; }; -export default @connect(mapStateToProps) -@injectIntl class CommunityTimeline extends React.PureComponent { static defaultProps = { @@ -162,3 +160,5 @@ class CommunityTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(CommunityTimeline)); diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx b/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx index 1843fdacbd..af1f02efc9 100644 --- a/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/action_bar.jsx @@ -21,7 +21,6 @@ const messages = defineMessages({ bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, }); -export default @injectIntl class ActionBar extends React.PureComponent { static propTypes = { @@ -66,3 +65,5 @@ class ActionBar extends React.PureComponent { } } + +export default injectIntl(ActionBar); diff --git a/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx b/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx index 696188f31a..973a17a1ae 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx @@ -32,7 +32,6 @@ const messages = defineMessages({ spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' }, }); -export default @injectIntl class ComposeForm extends ImmutablePureComponent { static contextTypes = { @@ -389,3 +388,5 @@ class ComposeForm extends ImmutablePureComponent { } } + +export default injectIntl(ComposeForm); diff --git a/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx b/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx index 66355e0883..1b8991f009 100644 --- a/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx @@ -145,8 +145,7 @@ class ModifierPicker extends React.PureComponent { } -@injectIntl -class EmojiPickerMenu extends React.PureComponent { +class EmojiPickerMenuImpl extends React.PureComponent { static propTypes = { custom_emojis: ImmutablePropTypes.list, @@ -307,7 +306,8 @@ class EmojiPickerMenu extends React.PureComponent { } -export default @injectIntl +const EmojiPickerMenu = injectIntl(EmojiPickerMenuImpl); + class EmojiPickerDropdown extends React.PureComponent { static propTypes = { @@ -411,3 +411,5 @@ class EmojiPickerDropdown extends React.PureComponent { } } + +export default injectIntl(EmojiPickerDropdown); diff --git a/app/javascript/flavours/glitch/features/compose/components/header.jsx b/app/javascript/flavours/glitch/features/compose/components/header.jsx index dcbdafa576..764fcec5ed 100644 --- a/app/javascript/flavours/glitch/features/compose/components/header.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/header.jsx @@ -45,7 +45,6 @@ const messages = defineMessages({ }, }); -export default @injectIntl class Header extends ImmutablePureComponent { static propTypes = { @@ -134,3 +133,5 @@ class Header extends ImmutablePureComponent { } } + +export default injectIntl(Header); diff --git a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx index 03fb899f88..14f285c3d2 100644 --- a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.jsx @@ -237,7 +237,6 @@ class LanguageDropdownMenu extends React.PureComponent { } -export default @injectIntl class LanguageDropdown extends React.PureComponent { static propTypes = { @@ -325,3 +324,5 @@ class LanguageDropdown extends React.PureComponent { } } + +export default injectIntl(LanguageDropdown); diff --git a/app/javascript/flavours/glitch/features/compose/components/options.jsx b/app/javascript/flavours/glitch/features/compose/components/options.jsx index e09e13bcb9..19ead2f217 100644 --- a/app/javascript/flavours/glitch/features/compose/components/options.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/options.jsx @@ -83,8 +83,11 @@ const messages = defineMessages({ }, }); -@connect((state, { name }) => ({ checked: state.getIn(['compose', 'advanced_options', name]) })) -class ToggleOption extends ImmutablePureComponent { +const mapStateToProps = (state, { name }) => ({ + checked: state.getIn(['compose', 'advanced_options', name]), +}); + +class ToggleOptionImpl extends ImmutablePureComponent { static propTypes = { name: PropTypes.string.isRequired, @@ -113,7 +116,8 @@ class ToggleOption extends ImmutablePureComponent { } -export default @injectIntl +const ToggleOption = connect(mapStateToProps)(ToggleOptionImpl); + class ComposerOptions extends ImmutablePureComponent { static propTypes = { @@ -315,3 +319,5 @@ class ComposerOptions extends ImmutablePureComponent { } } + +export default injectIntl(ComposerOptions); diff --git a/app/javascript/flavours/glitch/features/compose/components/poll_form.jsx b/app/javascript/flavours/glitch/features/compose/components/poll_form.jsx index cb6b577bf8..cbd53c4d5e 100644 --- a/app/javascript/flavours/glitch/features/compose/components/poll_form.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/poll_form.jsx @@ -21,8 +21,7 @@ const messages = defineMessages({ days: { id: 'intervals.full.days', defaultMessage: '{number, plural, one {# day} other {# days}}' }, }); -@injectIntl -class Option extends React.PureComponent { +class OptionIntl extends React.PureComponent { static propTypes = { title: PropTypes.string.isRequired, @@ -92,8 +91,8 @@ class Option extends React.PureComponent { } -export default -@injectIntl +const Option = injectIntl(OptionIntl); + class PollForm extends ImmutablePureComponent { static propTypes = { @@ -168,3 +167,5 @@ class PollForm extends ImmutablePureComponent { } } + +export default injectIntl(PollForm); diff --git a/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx b/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx index 02cf722891..4bfbb5b8ca 100644 --- a/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx @@ -16,7 +16,6 @@ const messages = defineMessages({ change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' }, }); -export default @injectIntl class PrivacyDropdown extends React.PureComponent { static propTypes = { @@ -86,3 +85,5 @@ class PrivacyDropdown extends React.PureComponent { } } + +export default injectIntl(PrivacyDropdown); diff --git a/app/javascript/flavours/glitch/features/compose/components/publisher.jsx b/app/javascript/flavours/glitch/features/compose/components/publisher.jsx index 59254990b1..3128303c62 100644 --- a/app/javascript/flavours/glitch/features/compose/components/publisher.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/publisher.jsx @@ -26,7 +26,6 @@ const messages = defineMessages({ saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' }, }); -export default @injectIntl class Publisher extends ImmutablePureComponent { static propTypes = { @@ -97,3 +96,5 @@ class Publisher extends ImmutablePureComponent { } } + +export default injectIntl(Publisher); diff --git a/app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx b/app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx index ca167d1148..179d85ac3b 100644 --- a/app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx @@ -19,7 +19,6 @@ const messages = defineMessages({ }); -export default @injectIntl class ReplyIndicator extends ImmutablePureComponent { static propTypes = { @@ -80,3 +79,5 @@ class ReplyIndicator extends ImmutablePureComponent { } } + +export default injectIntl(ReplyIndicator); diff --git a/app/javascript/flavours/glitch/features/compose/components/search.jsx b/app/javascript/flavours/glitch/features/compose/components/search.jsx index 6241e2a0ab..d2187b8ae9 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/search.jsx @@ -45,7 +45,6 @@ class SearchPopout extends React.PureComponent { } // The component. -export default @injectIntl class Search extends React.PureComponent { static contextTypes = { @@ -166,3 +165,5 @@ class Search extends React.PureComponent { } } + +export default injectIntl(Search); diff --git a/app/javascript/flavours/glitch/features/compose/components/search_results.jsx b/app/javascript/flavours/glitch/features/compose/components/search_results.jsx index 23ff609365..bf009d13a8 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search_results.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/search_results.jsx @@ -14,7 +14,6 @@ const messages = defineMessages({ dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' }, }); -export default @injectIntl class SearchResults extends ImmutablePureComponent { static propTypes = { @@ -139,3 +138,5 @@ class SearchResults extends ImmutablePureComponent { } } + +export default injectIntl(SearchResults); diff --git a/app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx b/app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx index d8ee5c81b0..73281fc746 100644 --- a/app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx @@ -27,7 +27,6 @@ const iconMap = [ ['threaded_mode', 'comments', messages.threadedMode], ]; -export default @injectIntl class TextareaIcons extends ImmutablePureComponent { static propTypes = { @@ -58,3 +57,5 @@ class TextareaIcons extends ImmutablePureComponent { } } + +export default injectIntl(TextareaIcons); diff --git a/app/javascript/flavours/glitch/features/compose/index.jsx b/app/javascript/flavours/glitch/features/compose/index.jsx index 241caa03b3..5547a12102 100644 --- a/app/javascript/flavours/glitch/features/compose/index.jsx +++ b/app/javascript/flavours/glitch/features/compose/index.jsx @@ -39,8 +39,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class Compose extends React.PureComponent { static propTypes = { @@ -114,3 +112,5 @@ class Compose extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(Compose)); diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx index 18c3c7e21e..79e98ec6fc 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ settings: { id: 'home.settings', defaultMessage: 'Column settings' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -40,3 +39,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx index ad2a68ebdc..05fd68707f 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx +++ b/app/javascript/flavours/glitch/features/direct_timeline/components/conversation.jsx @@ -24,7 +24,6 @@ const messages = defineMessages({ unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, }); -export default @injectIntl class Conversation extends ImmutablePureComponent { static contextTypes = { @@ -230,3 +229,5 @@ class Conversation extends ImmutablePureComponent { } } + +export default injectIntl(Conversation); diff --git a/app/javascript/flavours/glitch/features/direct_timeline/index.jsx b/app/javascript/flavours/glitch/features/direct_timeline/index.jsx index afd348988d..433574c3ee 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/direct_timeline/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ conversationsMode: state.getIn(['settings', 'direct', 'conversations']), }); -export default @connect(mapStateToProps) -@injectIntl class DirectTimeline extends React.PureComponent { static propTypes = { @@ -154,3 +152,5 @@ class DirectTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(DirectTimeline)); diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.jsx b/app/javascript/flavours/glitch/features/directory/components/account_card.jsx index 3fddb5b81c..663710b063 100644 --- a/app/javascript/flavours/glitch/features/directory/components/account_card.jsx +++ b/app/javascript/flavours/glitch/features/directory/components/account_card.jsx @@ -93,9 +93,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }); -export default -@injectIntl -@connect(makeMapStateToProps, mapDispatchToProps) class AccountCard extends ImmutablePureComponent { static propTypes = { @@ -246,3 +243,5 @@ class AccountCard extends ImmutablePureComponent { } } + +export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(AccountCard)); diff --git a/app/javascript/flavours/glitch/features/directory/index.jsx b/app/javascript/flavours/glitch/features/directory/index.jsx index 07875b3e1c..4278a4e719 100644 --- a/app/javascript/flavours/glitch/features/directory/index.jsx +++ b/app/javascript/flavours/glitch/features/directory/index.jsx @@ -29,8 +29,6 @@ const mapStateToProps = state => ({ domain: state.getIn(['meta', 'domain']), }); -export default @connect(mapStateToProps) -@injectIntl class Directory extends React.PureComponent { static contextTypes = { @@ -176,3 +174,5 @@ class Directory extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Directory)); diff --git a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx index cb0b55c637..1ab7c36633 100644 --- a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx +++ b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx @@ -23,8 +23,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['domain_lists', 'blocks', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Blocks extends ImmutablePureComponent { static propTypes = { @@ -81,3 +79,5 @@ class Blocks extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Blocks)); diff --git a/app/javascript/flavours/glitch/features/explore/index.jsx b/app/javascript/flavours/glitch/features/explore/index.jsx index 4cbc5294bb..4f6730438c 100644 --- a/app/javascript/flavours/glitch/features/explore/index.jsx +++ b/app/javascript/flavours/glitch/features/explore/index.jsx @@ -24,8 +24,6 @@ const mapStateToProps = state => ({ isSearching: state.getIn(['search', 'submitted']) || !showTrends, }); -export default @connect(mapStateToProps) -@injectIntl class Explore extends React.PureComponent { static contextTypes = { @@ -105,3 +103,5 @@ class Explore extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Explore)); diff --git a/app/javascript/flavours/glitch/features/explore/links.jsx b/app/javascript/flavours/glitch/features/explore/links.jsx index 092f86b29b..425934c4ab 100644 --- a/app/javascript/flavours/glitch/features/explore/links.jsx +++ b/app/javascript/flavours/glitch/features/explore/links.jsx @@ -13,7 +13,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['trends', 'links', 'isLoading']), }); -export default @connect(mapStateToProps) class Links extends React.PureComponent { static propTypes = { @@ -68,3 +67,5 @@ class Links extends React.PureComponent { } } + +export default connect(mapStateToProps)(Links); diff --git a/app/javascript/flavours/glitch/features/explore/results.jsx b/app/javascript/flavours/glitch/features/explore/results.jsx index 892980d954..0d6c0e8f1d 100644 --- a/app/javascript/flavours/glitch/features/explore/results.jsx +++ b/app/javascript/flavours/glitch/features/explore/results.jsx @@ -42,8 +42,6 @@ const renderStatuses = (results, onLoadMore) => appendLoadMore('statuses', resul )), onLoadMore); -export default @connect(mapStateToProps) -@injectIntl class Results extends React.PureComponent { static propTypes = { @@ -124,3 +122,5 @@ class Results extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Results)); diff --git a/app/javascript/flavours/glitch/features/explore/statuses.jsx b/app/javascript/flavours/glitch/features/explore/statuses.jsx index 21768dd242..381c50c5d5 100644 --- a/app/javascript/flavours/glitch/features/explore/statuses.jsx +++ b/app/javascript/flavours/glitch/features/explore/statuses.jsx @@ -14,7 +14,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'trending', 'next']), }); -export default @connect(mapStateToProps) class Statuses extends React.PureComponent { static propTypes = { @@ -62,3 +61,5 @@ class Statuses extends React.PureComponent { } } + +export default connect(mapStateToProps)(Statuses); diff --git a/app/javascript/flavours/glitch/features/explore/suggestions.jsx b/app/javascript/flavours/glitch/features/explore/suggestions.jsx index 1c9b992662..e1b84098a0 100644 --- a/app/javascript/flavours/glitch/features/explore/suggestions.jsx +++ b/app/javascript/flavours/glitch/features/explore/suggestions.jsx @@ -12,7 +12,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['suggestions', 'isLoading']), }); -export default @connect(mapStateToProps) class Suggestions extends React.PureComponent { static propTypes = { @@ -54,3 +53,5 @@ class Suggestions extends React.PureComponent { } } + +export default connect(mapStateToProps)(Suggestions); diff --git a/app/javascript/flavours/glitch/features/explore/tags.jsx b/app/javascript/flavours/glitch/features/explore/tags.jsx index 938036b642..e0fdd1d912 100644 --- a/app/javascript/flavours/glitch/features/explore/tags.jsx +++ b/app/javascript/flavours/glitch/features/explore/tags.jsx @@ -13,7 +13,6 @@ const mapStateToProps = state => ({ isLoadingHashtags: state.getIn(['trends', 'tags', 'isLoading']), }); -export default @connect(mapStateToProps) class Tags extends React.PureComponent { static propTypes = { @@ -60,3 +59,5 @@ class Tags extends React.PureComponent { } } + +export default connect(mapStateToProps)(Tags); diff --git a/app/javascript/flavours/glitch/features/favourited_statuses/index.jsx b/app/javascript/flavours/glitch/features/favourited_statuses/index.jsx index 0667c205b6..60d281f974 100644 --- a/app/javascript/flavours/glitch/features/favourited_statuses/index.jsx +++ b/app/javascript/flavours/glitch/features/favourited_statuses/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'favourites', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class Favourites extends ImmutablePureComponent { static propTypes = { @@ -106,3 +104,5 @@ class Favourites extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Favourites)); diff --git a/app/javascript/flavours/glitch/features/favourites/index.jsx b/app/javascript/flavours/glitch/features/favourites/index.jsx index ba58ed43b3..21ce7fcc7e 100644 --- a/app/javascript/flavours/glitch/features/favourites/index.jsx +++ b/app/javascript/flavours/glitch/features/favourites/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = (state, props) => ({ accountIds: state.getIn(['user_lists', 'favourited_by', props.params.statusId]), }); -export default @connect(mapStateToProps) -@injectIntl class Favourites extends ImmutablePureComponent { static propTypes = { @@ -101,3 +99,5 @@ class Favourites extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Favourites)); diff --git a/app/javascript/flavours/glitch/features/filters/added_to_filter.jsx b/app/javascript/flavours/glitch/features/filters/added_to_filter.jsx index becb170cd2..2f3f98c813 100644 --- a/app/javascript/flavours/glitch/features/filters/added_to_filter.jsx +++ b/app/javascript/flavours/glitch/features/filters/added_to_filter.jsx @@ -10,7 +10,6 @@ const mapStateToProps = (state, { filterId }) => ({ filter: state.getIn(['filters', filterId]), }); -export default @connect(mapStateToProps) class AddedToFilter extends React.PureComponent { static propTypes = { @@ -100,3 +99,5 @@ class AddedToFilter extends React.PureComponent { } } + +export default connect(mapStateToProps)(AddedToFilter); diff --git a/app/javascript/flavours/glitch/features/filters/select_filter.jsx b/app/javascript/flavours/glitch/features/filters/select_filter.jsx index 57adb59ccc..b3285bc917 100644 --- a/app/javascript/flavours/glitch/features/filters/select_filter.jsx +++ b/app/javascript/flavours/glitch/features/filters/select_filter.jsx @@ -22,8 +22,6 @@ const mapStateToProps = (state, { contextType }) => ({ ]), }); -export default @connect(mapStateToProps) -@injectIntl class SelectFilter extends React.PureComponent { static propTypes = { @@ -190,3 +188,5 @@ class SelectFilter extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(SelectFilter)); diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx index 81d39bd49b..e56af7364b 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx +++ b/app/javascript/flavours/glitch/features/follow_recommendations/components/account.jsx @@ -32,8 +32,6 @@ const getFirstSentence = str => { return arr[0]; }; -export default @connect(makeMapStateToProps) -@injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -83,3 +81,5 @@ class Account extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Account)); diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/index.jsx b/app/javascript/flavours/glitch/features/follow_recommendations/index.jsx index 11396d2a3a..70f2191f11 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/index.jsx +++ b/app/javascript/flavours/glitch/features/follow_recommendations/index.jsx @@ -19,7 +19,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['suggestions', 'isLoading']), }); -export default @connect(mapStateToProps) class FollowRecommendations extends ImmutablePureComponent { static contextTypes = { @@ -114,3 +113,5 @@ class FollowRecommendations extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(FollowRecommendations); diff --git a/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx b/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx index cbe7a10329..af8a534fa4 100644 --- a/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx +++ b/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx @@ -13,7 +13,6 @@ const messages = defineMessages({ reject: { id: 'follow_request.reject', defaultMessage: 'Reject' }, }); -export default @injectIntl class AccountAuthorize extends ImmutablePureComponent { static propTypes = { @@ -47,3 +46,5 @@ class AccountAuthorize extends ImmutablePureComponent { } } + +export default injectIntl(AccountAuthorize); diff --git a/app/javascript/flavours/glitch/features/follow_requests/index.jsx b/app/javascript/flavours/glitch/features/follow_requests/index.jsx index aa60bd7b8d..a9a35f54b8 100644 --- a/app/javascript/flavours/glitch/features/follow_requests/index.jsx +++ b/app/javascript/flavours/glitch/features/follow_requests/index.jsx @@ -25,8 +25,6 @@ const mapStateToProps = state => ({ domain: state.getIn(['meta', 'domain']), }); -export default @connect(mapStateToProps) -@injectIntl class FollowRequests extends ImmutablePureComponent { static propTypes = { @@ -90,3 +88,5 @@ class FollowRequests extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(FollowRequests)); diff --git a/app/javascript/flavours/glitch/features/followed_tags/index.jsx b/app/javascript/flavours/glitch/features/followed_tags/index.jsx index 73203636c0..a5abb151f3 100644 --- a/app/javascript/flavours/glitch/features/followed_tags/index.jsx +++ b/app/javascript/flavours/glitch/features/followed_tags/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['followed_tags', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class FollowedTags extends ImmutablePureComponent { static propTypes = { @@ -87,3 +85,5 @@ class FollowedTags extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(FollowedTags)); diff --git a/app/javascript/flavours/glitch/features/followers/index.jsx b/app/javascript/flavours/glitch/features/followers/index.jsx index 10fd76865f..2565772d13 100644 --- a/app/javascript/flavours/glitch/features/followers/index.jsx +++ b/app/javascript/flavours/glitch/features/followers/index.jsx @@ -53,7 +53,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class Followers extends ImmutablePureComponent { static propTypes = { @@ -172,3 +171,5 @@ class Followers extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(Followers); diff --git a/app/javascript/flavours/glitch/features/following/index.jsx b/app/javascript/flavours/glitch/features/following/index.jsx index 5af4e60b6b..2c05e33109 100644 --- a/app/javascript/flavours/glitch/features/following/index.jsx +++ b/app/javascript/flavours/glitch/features/following/index.jsx @@ -53,7 +53,6 @@ RemoteHint.propTypes = { url: PropTypes.string.isRequired, }; -export default @connect(mapStateToProps) class Following extends ImmutablePureComponent { static propTypes = { @@ -172,3 +171,5 @@ class Following extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(Following); diff --git a/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx b/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx index fb90244473..5c3a27f932 100644 --- a/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx +++ b/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx @@ -355,7 +355,6 @@ class Announcement extends ImmutablePureComponent { } -export default @injectIntl class Announcements extends ImmutablePureComponent { static propTypes = { @@ -447,3 +446,5 @@ class Announcements extends ImmutablePureComponent { } } + +export default injectIntl(Announcements); diff --git a/app/javascript/flavours/glitch/features/getting_started/index.jsx b/app/javascript/flavours/glitch/features/getting_started/index.jsx index 91b33c1dd5..4064a54518 100644 --- a/app/javascript/flavours/glitch/features/getting_started/index.jsx +++ b/app/javascript/flavours/glitch/features/getting_started/index.jsx @@ -79,8 +79,6 @@ const badgeDisplay = (number, limit) => { const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); -export default @connect(makeMapStateToProps, mapDispatchToProps) - @injectIntl class GettingStarted extends ImmutablePureComponent { static contextTypes = { @@ -202,3 +200,5 @@ class GettingStarted extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(GettingStarted)); diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx index f3779280f2..fb4ec2fce0 100644 --- a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx +++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx @@ -22,9 +22,7 @@ const messages = defineMessages({ featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' }, }); -export default @connect() -@injectIntl -class gettingStartedMisc extends ImmutablePureComponent { +class GettingStartedMisc extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, @@ -68,3 +66,5 @@ class gettingStartedMisc extends ImmutablePureComponent { } } + +export default connect()(injectIntl(GettingStartedMisc)); diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx index ac7863ed38..f140f2d013 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/components/column_settings.jsx @@ -12,7 +12,6 @@ const messages = defineMessages({ noOptions: { id: 'hashtag.column_settings.select.no_options_message', defaultMessage: 'No suggestions found' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -131,3 +130,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx index 54a67804ee..43b7f90d15 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx @@ -26,8 +26,6 @@ const mapStateToProps = (state, props) => ({ tag: state.getIn(['tags', props.params.id]), }); -export default @connect(mapStateToProps) -@injectIntl class HashtagTimeline extends React.PureComponent { disconnects = []; @@ -235,3 +233,5 @@ class HashtagTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(HashtagTimeline)); diff --git a/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx index df615db651..1eeeaa378a 100644 --- a/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ settings: { id: 'home.settings', defaultMessage: 'Column settings' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -48,3 +47,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/flavours/glitch/features/home_timeline/index.jsx b/app/javascript/flavours/glitch/features/home_timeline/index.jsx index b2bfd3f173..71619394b6 100644 --- a/app/javascript/flavours/glitch/features/home_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/home_timeline/index.jsx @@ -31,8 +31,6 @@ const mapStateToProps = state => ({ regex: state.getIn(['settings', 'home', 'regex', 'body']), }); -export default @connect(mapStateToProps) -@injectIntl class HomeTimeline extends React.PureComponent { static contextTypes = { @@ -176,3 +174,5 @@ class HomeTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(HomeTimeline)); diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx index 3a54105a36..20e4959e6f 100644 --- a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx +++ b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx @@ -74,7 +74,6 @@ class Copypaste extends React.PureComponent { } -export default @connect(mapStateToProps, mapDispatchToProps) class InteractionModal extends React.PureComponent { static propTypes = { @@ -159,3 +158,5 @@ class InteractionModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(InteractionModal); diff --git a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx index 2bc0116d4d..7160e7efbf 100644 --- a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx +++ b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx @@ -15,8 +15,6 @@ const mapStateToProps = state => ({ collapseEnabled: state.getIn(['local_settings', 'collapsed', 'enabled']), }); -export default @connect(mapStateToProps) -@injectIntl class KeyboardShortcuts extends ImmutablePureComponent { static propTypes = { @@ -147,3 +145,5 @@ class KeyboardShortcuts extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(KeyboardShortcuts)); diff --git a/app/javascript/flavours/glitch/features/list_adder/components/account.jsx b/app/javascript/flavours/glitch/features/list_adder/components/account.jsx index 1369aac074..034ed0edc9 100644 --- a/app/javascript/flavours/glitch/features/list_adder/components/account.jsx +++ b/app/javascript/flavours/glitch/features/list_adder/components/account.jsx @@ -18,8 +18,6 @@ const makeMapStateToProps = () => { }; -export default @connect(makeMapStateToProps) -@injectIntl class Account extends ImmutablePureComponent { static propTypes = { @@ -41,3 +39,5 @@ class Account extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Account)); diff --git a/app/javascript/flavours/glitch/features/list_adder/components/list.jsx b/app/javascript/flavours/glitch/features/list_adder/components/list.jsx index 4666ca47b8..1957bbe420 100644 --- a/app/javascript/flavours/glitch/features/list_adder/components/list.jsx +++ b/app/javascript/flavours/glitch/features/list_adder/components/list.jsx @@ -13,7 +13,7 @@ const messages = defineMessages({ add: { id: 'lists.account.add', defaultMessage: 'Add to list' }, }); -const MapStateToProps = (state, { listId, added }) => ({ +const mapStateToProps = (state, { listId, added }) => ({ list: state.get('lists').get(listId), added: typeof added === 'undefined' ? state.getIn(['listAdder', 'lists', 'items']).includes(listId) : added, }); @@ -23,8 +23,6 @@ const mapDispatchToProps = (dispatch, { listId }) => ({ onAdd: () => dispatch(addToListAdder(listId)), }); -export default @connect(MapStateToProps, mapDispatchToProps) -@injectIntl class List extends ImmutablePureComponent { static propTypes = { @@ -67,3 +65,5 @@ class List extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(List)); diff --git a/app/javascript/flavours/glitch/features/list_adder/index.jsx b/app/javascript/flavours/glitch/features/list_adder/index.jsx index cb8a15e8c7..45d5589f96 100644 --- a/app/javascript/flavours/glitch/features/list_adder/index.jsx +++ b/app/javascript/flavours/glitch/features/list_adder/index.jsx @@ -28,8 +28,6 @@ const mapDispatchToProps = dispatch => ({ onReset: () => dispatch(resetListAdder()), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListAdder extends ImmutablePureComponent { static propTypes = { @@ -71,3 +69,5 @@ class ListAdder extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListAdder)); diff --git a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx index 418c2a3e74..b4886ef0ed 100644 --- a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx +++ b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx @@ -19,8 +19,6 @@ const mapDispatchToProps = dispatch => ({ onSubmit: () => dispatch(submitListEditor(false)), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListForm extends React.PureComponent { static propTypes = { @@ -68,3 +66,5 @@ class ListForm extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListForm)); diff --git a/app/javascript/flavours/glitch/features/list_editor/index.jsx b/app/javascript/flavours/glitch/features/list_editor/index.jsx index c2ca070532..8b8a0cf310 100644 --- a/app/javascript/flavours/glitch/features/list_editor/index.jsx +++ b/app/javascript/flavours/glitch/features/list_editor/index.jsx @@ -22,8 +22,6 @@ const mapDispatchToProps = dispatch => ({ onReset: () => dispatch(resetListEditor()), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class ListEditor extends ImmutablePureComponent { static propTypes = { @@ -77,3 +75,5 @@ class ListEditor extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(ListEditor)); diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.jsx b/app/javascript/flavours/glitch/features/list_timeline/index.jsx index 3f15035480..f885a751f3 100644 --- a/app/javascript/flavours/glitch/features/list_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/list_timeline/index.jsx @@ -31,8 +31,6 @@ const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `list:${props.params.id}`, 'unread']) > 0, }); -export default @connect(mapStateToProps) -@injectIntl class ListTimeline extends React.PureComponent { static contextTypes = { @@ -222,3 +220,5 @@ class ListTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(ListTimeline)); diff --git a/app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx b/app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx index e78a6a3bc3..be94ff5595 100644 --- a/app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx +++ b/app/javascript/flavours/glitch/features/lists/components/new_list_form.jsx @@ -20,8 +20,6 @@ const mapDispatchToProps = dispatch => ({ onSubmit: () => dispatch(submitListEditor(true)), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class NewListForm extends React.PureComponent { static propTypes = { @@ -76,3 +74,5 @@ class NewListForm extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(NewListForm)); diff --git a/app/javascript/flavours/glitch/features/lists/index.jsx b/app/javascript/flavours/glitch/features/lists/index.jsx index 8773be5e6d..dce0dcd8f8 100644 --- a/app/javascript/flavours/glitch/features/lists/index.jsx +++ b/app/javascript/flavours/glitch/features/lists/index.jsx @@ -32,8 +32,6 @@ const mapStateToProps = state => ({ lists: getOrderedLists(state), }); -export default @connect(mapStateToProps) -@injectIntl class Lists extends ImmutablePureComponent { static propTypes = { @@ -87,3 +85,5 @@ class Lists extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Lists)); diff --git a/app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx b/app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx index cc1f3df6d9..fe08e5d7b0 100644 --- a/app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx +++ b/app/javascript/flavours/glitch/features/local_settings/navigation/index.jsx @@ -19,7 +19,6 @@ const messages = defineMessages({ close: { id: 'settings.close', defaultMessage: 'Close' }, }); -export default @injectIntl class LocalSettingsNavigation extends React.PureComponent { static propTypes = { @@ -90,3 +89,5 @@ class LocalSettingsNavigation extends React.PureComponent { } } + +export default injectIntl(LocalSettingsNavigation); diff --git a/app/javascript/flavours/glitch/features/local_settings/page/index.jsx b/app/javascript/flavours/glitch/features/local_settings/page/index.jsx index a8120663c5..83b0c79605 100644 --- a/app/javascript/flavours/glitch/features/local_settings/page/index.jsx +++ b/app/javascript/flavours/glitch/features/local_settings/page/index.jsx @@ -31,7 +31,6 @@ const messages = defineMessages({ pop_in_right: { id: 'settings.pop_in_right', defaultMessage: 'Right' }, }); -export default @injectIntl class LocalSettingsPage extends React.PureComponent { static propTypes = { @@ -513,3 +512,5 @@ class LocalSettingsPage extends React.PureComponent { } } + +export default injectIntl(LocalSettingsPage); diff --git a/app/javascript/flavours/glitch/features/mutes/index.jsx b/app/javascript/flavours/glitch/features/mutes/index.jsx index 8da106e47c..b699fdb278 100644 --- a/app/javascript/flavours/glitch/features/mutes/index.jsx +++ b/app/javascript/flavours/glitch/features/mutes/index.jsx @@ -23,8 +23,6 @@ const mapStateToProps = state => ({ isLoading: state.getIn(['user_lists', 'mutes', 'isLoading'], true), }); -export default @connect(mapStateToProps) -@injectIntl class Mutes extends ImmutablePureComponent { static propTypes = { @@ -82,3 +80,5 @@ class Mutes extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Mutes)); diff --git a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx index c1de0f90ea..7f36fb8135 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx @@ -12,7 +12,6 @@ const tooltips = defineMessages({ statuses: { id: 'notifications.filter.statuses', defaultMessage: 'Updates from people you follow' }, }); -export default @injectIntl class FilterBar extends React.PureComponent { static propTypes = { @@ -108,3 +107,5 @@ class FilterBar extends React.PureComponent { } } + +export default injectIntl(FilterBar); diff --git a/app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx b/app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx index a3fdf8a61b..01dec320e2 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx @@ -17,7 +17,6 @@ const messages = defineMessages({ reject: { id: 'follow_request.reject', defaultMessage: 'Reject' }, }); -export default @injectIntl class FollowRequest extends ImmutablePureComponent { static propTypes = { @@ -130,3 +129,5 @@ class FollowRequest extends ImmutablePureComponent { } } + +export default injectIntl(FollowRequest); diff --git a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx index 7b6ab0c7da..5a12191a51 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx @@ -12,8 +12,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @connect() -@injectIntl class NotificationsPermissionBanner extends React.PureComponent { static propTypes = { @@ -46,3 +44,5 @@ class NotificationsPermissionBanner extends React.PureComponent { } } + +export default connect()(injectIntl(NotificationsPermissionBanner)); diff --git a/app/javascript/flavours/glitch/features/notifications/components/overlay.jsx b/app/javascript/flavours/glitch/features/notifications/components/overlay.jsx index 21d3f8acf1..554a7a668e 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/overlay.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/overlay.jsx @@ -15,7 +15,6 @@ const messages = defineMessages({ markForDeletion: { id: 'notification.markForDeletion', defaultMessage: 'Mark for deletion' }, }); -export default @injectIntl class NotificationOverlay extends ImmutablePureComponent { static propTypes = { @@ -56,3 +55,5 @@ class NotificationOverlay extends ImmutablePureComponent { } } + +export default injectIntl(NotificationOverlay); diff --git a/app/javascript/flavours/glitch/features/notifications/components/report.jsx b/app/javascript/flavours/glitch/features/notifications/components/report.jsx index 46a3072504..9110735a14 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/report.jsx +++ b/app/javascript/flavours/glitch/features/notifications/components/report.jsx @@ -13,7 +13,6 @@ const messages = defineMessages({ violation: { id: 'report_notification.categories.violation', defaultMessage: 'Rule violation' }, }); -export default @injectIntl class Report extends ImmutablePureComponent { static propTypes = { @@ -60,3 +59,5 @@ class Report extends ImmutablePureComponent { } } + +export default injectIntl(Report); diff --git a/app/javascript/flavours/glitch/features/notifications/index.jsx b/app/javascript/flavours/glitch/features/notifications/index.jsx index fff3656174..2de073077b 100644 --- a/app/javascript/flavours/glitch/features/notifications/index.jsx +++ b/app/javascript/flavours/glitch/features/notifications/index.jsx @@ -92,8 +92,6 @@ const mapDispatchToProps = dispatch => ({ dispatch, }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class Notifications extends React.PureComponent { static contextTypes = { @@ -380,3 +378,5 @@ class Notifications extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(Notifications)); diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx index bc312d5305..51fe023d32 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx +++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx @@ -38,8 +38,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) -@injectIntl class Footer extends ImmutablePureComponent { static contextTypes = { @@ -215,3 +213,5 @@ class Footer extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(Footer)); diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx index 26f2da3743..b9b90f1d8f 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx +++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx @@ -17,8 +17,6 @@ const mapStateToProps = (state, { accountId }) => ({ account: state.getIn(['accounts', accountId]), }); -export default @connect(mapStateToProps) -@injectIntl class Header extends ImmutablePureComponent { static propTypes = { @@ -45,3 +43,5 @@ class Header extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Header)); diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/index.jsx b/app/javascript/flavours/glitch/features/picture_in_picture/index.jsx index d445b6d586..e6fb64ff99 100644 --- a/app/javascript/flavours/glitch/features/picture_in_picture/index.jsx +++ b/app/javascript/flavours/glitch/features/picture_in_picture/index.jsx @@ -13,7 +13,6 @@ const mapStateToProps = state => ({ left: state.getIn(['local_settings', 'media', 'pop_in_position']) === 'left', }); -export default @connect(mapStateToProps) class PictureInPicture extends React.Component { static propTypes = { @@ -86,3 +85,5 @@ class PictureInPicture extends React.Component { } } + +export default connect(mapStateToProps)(PictureInPicture); diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx b/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx index 43ae0ec2fe..de3fff8ece 100644 --- a/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx +++ b/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx @@ -21,8 +21,6 @@ const mapDispatchToProps = dispatch => ({ onReset: () => dispatch(resetPinnedAccountsEditor()), }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class PinnedAccountsEditor extends ImmutablePureComponent { static propTypes = { @@ -76,3 +74,5 @@ class PinnedAccountsEditor extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(PinnedAccountsEditor)); diff --git a/app/javascript/flavours/glitch/features/pinned_statuses/index.jsx b/app/javascript/flavours/glitch/features/pinned_statuses/index.jsx index b7bd46fbe3..41be2f7f33 100644 --- a/app/javascript/flavours/glitch/features/pinned_statuses/index.jsx +++ b/app/javascript/flavours/glitch/features/pinned_statuses/index.jsx @@ -19,8 +19,6 @@ const mapStateToProps = state => ({ hasMore: !!state.getIn(['status_lists', 'pins', 'next']), }); -export default @connect(mapStateToProps) -@injectIntl class PinnedStatuses extends ImmutablePureComponent { static propTypes = { @@ -63,3 +61,5 @@ class PinnedStatuses extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(PinnedStatuses)); diff --git a/app/javascript/flavours/glitch/features/privacy_policy/index.jsx b/app/javascript/flavours/glitch/features/privacy_policy/index.jsx index 4618d9e32e..a43befa73e 100644 --- a/app/javascript/flavours/glitch/features/privacy_policy/index.jsx +++ b/app/javascript/flavours/glitch/features/privacy_policy/index.jsx @@ -10,7 +10,6 @@ const messages = defineMessages({ title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' }, }); -export default @injectIntl class PrivacyPolicy extends React.PureComponent { static propTypes = { @@ -59,3 +58,5 @@ class PrivacyPolicy extends React.PureComponent { } } + +export default injectIntl(PrivacyPolicy); diff --git a/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx index cfe821cfc1..a44d5c784d 100644 --- a/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx +++ b/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx @@ -9,7 +9,6 @@ const messages = defineMessages({ filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' }, }); -export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { @@ -40,3 +39,5 @@ class ColumnSettings extends React.PureComponent { } } + +export default injectIntl(ColumnSettings); diff --git a/app/javascript/flavours/glitch/features/public_timeline/index.jsx b/app/javascript/flavours/glitch/features/public_timeline/index.jsx index 810643f970..737e5723f4 100644 --- a/app/javascript/flavours/glitch/features/public_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/public_timeline/index.jsx @@ -35,8 +35,6 @@ const mapStateToProps = (state, { columnId }) => { }; }; -export default @connect(mapStateToProps) -@injectIntl class PublicTimeline extends React.PureComponent { static defaultProps = { @@ -166,3 +164,5 @@ class PublicTimeline extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(PublicTimeline)); diff --git a/app/javascript/flavours/glitch/features/reblogs/index.jsx b/app/javascript/flavours/glitch/features/reblogs/index.jsx index 46b1ed4e54..34fe24d3fe 100644 --- a/app/javascript/flavours/glitch/features/reblogs/index.jsx +++ b/app/javascript/flavours/glitch/features/reblogs/index.jsx @@ -22,8 +22,6 @@ const mapStateToProps = (state, props) => ({ accountIds: state.getIn(['user_lists', 'reblogged_by', props.params.statusId]), }); -export default @connect(mapStateToProps) -@injectIntl class Reblogs extends ImmutablePureComponent { static propTypes = { @@ -102,3 +100,5 @@ class Reblogs extends ImmutablePureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Reblogs)); diff --git a/app/javascript/flavours/glitch/features/report/category.jsx b/app/javascript/flavours/glitch/features/report/category.jsx index 55c43577bb..43e311f3d0 100644 --- a/app/javascript/flavours/glitch/features/report/category.jsx +++ b/app/javascript/flavours/glitch/features/report/category.jsx @@ -24,8 +24,6 @@ const mapStateToProps = state => ({ rules: state.getIn(['server', 'server', 'rules'], ImmutableList()), }); -export default @connect(mapStateToProps) -@injectIntl class Category extends React.PureComponent { static propTypes = { @@ -102,3 +100,5 @@ class Category extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(Category)); diff --git a/app/javascript/flavours/glitch/features/report/comment.jsx b/app/javascript/flavours/glitch/features/report/comment.jsx index ec261afcbc..afcb7afa4f 100644 --- a/app/javascript/flavours/glitch/features/report/comment.jsx +++ b/app/javascript/flavours/glitch/features/report/comment.jsx @@ -8,7 +8,6 @@ const messages = defineMessages({ placeholder: { id: 'report.placeholder', defaultMessage: 'Type or paste additional comments' }, }); -export default @injectIntl class Comment extends React.PureComponent { static propTypes = { @@ -81,3 +80,5 @@ class Comment extends React.PureComponent { } } + +export default injectIntl(Comment); diff --git a/app/javascript/flavours/glitch/features/report/rules.jsx b/app/javascript/flavours/glitch/features/report/rules.jsx index efcdf1fcf4..72ba75b485 100644 --- a/app/javascript/flavours/glitch/features/report/rules.jsx +++ b/app/javascript/flavours/glitch/features/report/rules.jsx @@ -10,7 +10,6 @@ const mapStateToProps = state => ({ rules: state.getIn(['server', 'server', 'rules']), }); -export default @connect(mapStateToProps) class Rules extends React.PureComponent { static propTypes = { @@ -62,3 +61,5 @@ class Rules extends React.PureComponent { } } + +export default connect(mapStateToProps)(Rules); diff --git a/app/javascript/flavours/glitch/features/report/statuses.jsx b/app/javascript/flavours/glitch/features/report/statuses.jsx index 47d5ee8639..a687917ce6 100644 --- a/app/javascript/flavours/glitch/features/report/statuses.jsx +++ b/app/javascript/flavours/glitch/features/report/statuses.jsx @@ -13,7 +13,6 @@ const mapStateToProps = (state, { accountId }) => ({ isLoading: state.getIn(['timelines', `account:${accountId}:with_replies`, 'isLoading']), }); -export default @connect(mapStateToProps) class Statuses extends React.PureComponent { static propTypes = { @@ -59,3 +58,5 @@ class Statuses extends React.PureComponent { } } + +export default connect(mapStateToProps)(Statuses); diff --git a/app/javascript/flavours/glitch/features/report/thanks.jsx b/app/javascript/flavours/glitch/features/report/thanks.jsx index 454979f9fa..30c88e2f29 100644 --- a/app/javascript/flavours/glitch/features/report/thanks.jsx +++ b/app/javascript/flavours/glitch/features/report/thanks.jsx @@ -12,7 +12,6 @@ import { const mapStateToProps = () => ({}); -export default @connect(mapStateToProps) class Thanks extends React.PureComponent { static propTypes = { @@ -82,3 +81,5 @@ class Thanks extends React.PureComponent { } } + +export default connect(mapStateToProps)(Thanks); diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.jsx b/app/javascript/flavours/glitch/features/status/components/action_bar.jsx index 4901fc4ccb..d5ab730d65 100644 --- a/app/javascript/flavours/glitch/features/status/components/action_bar.jsx +++ b/app/javascript/flavours/glitch/features/status/components/action_bar.jsx @@ -39,7 +39,6 @@ const messages = defineMessages({ openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); -export default @injectIntl class ActionBar extends React.PureComponent { static contextTypes = { @@ -228,3 +227,5 @@ class ActionBar extends React.PureComponent { } } + +export default injectIntl(ActionBar); diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx index a945728551..cfe6c965ed 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx @@ -21,7 +21,6 @@ import AnimatedNumber from 'flavours/glitch/components/animated_number'; import PictureInPicturePlaceholder from 'flavours/glitch/components/picture_in_picture_placeholder'; import EditedTimestamp from 'flavours/glitch/components/edited_timestamp'; -export default @injectIntl class DetailedStatus extends ImmutablePureComponent { static contextTypes = { @@ -336,3 +335,5 @@ class DetailedStatus extends ImmutablePureComponent { } } + +export default injectIntl(DetailedStatus); diff --git a/app/javascript/flavours/glitch/features/status/index.jsx b/app/javascript/flavours/glitch/features/status/index.jsx index cbab90e81f..a59da5e109 100644 --- a/app/javascript/flavours/glitch/features/status/index.jsx +++ b/app/javascript/flavours/glitch/features/status/index.jsx @@ -171,8 +171,6 @@ const titleFromStatus = status => { return `${prefix}: "${truncate(text, 30)}"`; }; -export default @injectIntl -@connect(makeMapStateToProps) class Status extends ImmutablePureComponent { static contextTypes = { @@ -724,3 +722,5 @@ class Status extends ImmutablePureComponent { } } + +export default injectIntl(connect(makeMapStateToProps)(Status)); diff --git a/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx b/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx index 35083503c4..85144a191e 100644 --- a/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx +++ b/app/javascript/flavours/glitch/features/subscribed_languages_modal/index.jsx @@ -36,8 +36,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({ }); -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class SubscribedLanguagesModal extends ImmutablePureComponent { static propTypes = { @@ -123,3 +121,5 @@ class SubscribedLanguagesModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(SubscribedLanguagesModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx index ff7687c1e9..0aeabd94c3 100644 --- a/app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/audio_modal.jsx @@ -11,7 +11,6 @@ const mapStateToProps = (state, { statusId }) => ({ accountStaticAvatar: state.getIn(['accounts', state.getIn(['statuses', statusId, 'account']), 'avatar_static']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class AudioModal extends ImmutablePureComponent { static propTypes = { @@ -59,3 +58,5 @@ class AudioModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(AudioModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx index 6c9d2043ca..a9506aa69f 100644 --- a/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx @@ -36,8 +36,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(makeMapStateToProps, mapDispatchToProps) -@injectIntl class BlockModal extends React.PureComponent { static propTypes = { @@ -101,3 +99,5 @@ class BlockModal extends React.PureComponent { } } + +export default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(BlockModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx index a65b84e209..d9523a26ed 100644 --- a/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx @@ -35,8 +35,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class BoostModal extends ImmutablePureComponent { static contextTypes = { @@ -137,3 +135,5 @@ class BoostModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(BoostModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx index 88304dc361..eaabbc4608 100644 --- a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.jsx @@ -92,7 +92,6 @@ class CopyButton extends React.PureComponent { } -export default @injectIntl class BundleColumnError extends React.PureComponent { static propTypes = { @@ -160,3 +159,5 @@ class BundleColumnError extends React.PureComponent { } } + +export default injectIntl(BundleColumnError); diff --git a/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx index 4e74feb029..cc3a16d170 100644 --- a/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/compare_history_modal.jsx @@ -24,7 +24,6 @@ const mapDispatchToProps = dispatch => ({ }); -export default @connect(mapStateToProps, mapDispatchToProps) class CompareHistoryModal extends React.PureComponent { static propTypes = { @@ -100,3 +99,5 @@ class CompareHistoryModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(CompareHistoryModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx index 34c194c99d..1dedf92cad 100644 --- a/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx @@ -8,7 +8,6 @@ import LinkFooter from './link_footer'; import ServerBanner from 'flavours/glitch/components/server_banner'; import { mountCompose, unmountCompose } from 'flavours/glitch/actions/compose'; -export default @connect() class ComposePanel extends React.PureComponent { static contextTypes = { @@ -56,3 +55,5 @@ class ComposePanel extends React.PureComponent { } } + +export default connect()(ComposePanel); diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx index 94935de5d8..08f55c1253 100644 --- a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import { injectIntl, FormattedMessage } from 'react-intl'; import Button from 'flavours/glitch/components/button'; -export default @injectIntl class ConfirmationModal extends React.PureComponent { static propTypes = { @@ -86,3 +85,5 @@ class ConfirmationModal extends React.PureComponent { } } + +export default injectIntl(ConfirmationModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx index 37f52b014b..5a1c1ee1b5 100644 --- a/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.jsx @@ -13,7 +13,6 @@ const messages = defineMessages({ user_setting_disable_swiping: { id: 'settings.swipe_to_change_columns', defaultMessage: 'Allow swiping to change columns (Mobile only)' }, }); -export default @injectIntl class DeprecatedSettingsModal extends React.PureComponent { static propTypes = { @@ -84,3 +83,5 @@ class DeprecatedSettingsModal extends React.PureComponent { } } + +export default injectIntl(DeprecatedSettingsModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx index 35933bedbd..0ba79d6489 100644 --- a/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/disabled_account_banner.jsx @@ -28,8 +28,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, }); -export default @injectIntl -@connect(mapStateToProps, mapDispatchToProps) class DisabledAccountBanner extends React.PureComponent { static propTypes = { @@ -90,3 +88,5 @@ class DisabledAccountBanner extends React.PureComponent { } } + +export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(DisabledAccountBanner)); diff --git a/app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx index c8ea33a0e3..162957ad89 100644 --- a/app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx @@ -145,7 +145,6 @@ const mapDispatchToProps = dispatch => ({ * - Ctrl + left mouse button: pick background * - Right mouse button: pick background */ -export default @connect(mapStateToProps, mapDispatchToProps) class DoodleModal extends ImmutablePureComponent { static propTypes = { @@ -612,3 +611,5 @@ class DoodleModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(DoodleModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx index 92bfa79c41..4f1173fd56 100644 --- a/app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx @@ -9,7 +9,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @injectIntl class EmbedModal extends ImmutablePureComponent { static propTypes = { @@ -95,3 +94,5 @@ class EmbedModal extends ImmutablePureComponent { } } + +export default injectIntl(EmbedModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx index 78cbfeb511..fa6f117925 100644 --- a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.jsx @@ -17,7 +17,6 @@ const messages = defineMessages({ favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, }); -export default @injectIntl class FavouriteModal extends ImmutablePureComponent { static contextTypes = { @@ -99,3 +98,5 @@ class FavouriteModal extends ImmutablePureComponent { } } + +export default injectIntl(FavouriteModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx index d2482e7334..2d49312e51 100644 --- a/app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx @@ -13,8 +13,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @connect(undefined) -@injectIntl class FilterModal extends ImmutablePureComponent { static propTypes = { @@ -132,3 +130,5 @@ class FilterModal extends ImmutablePureComponent { } } + +export default connect(injectIntl(FilterModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx index 8e624adb3e..a5637d31cb 100644 --- a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx @@ -99,8 +99,6 @@ class ImageLoader extends React.PureComponent { } -export default @connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true }) -@(component => injectIntl(component, { withRef: true })) class FocalPointModal extends ImmutablePureComponent { static propTypes = { @@ -416,3 +414,7 @@ class FocalPointModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps, null, { + forwardRef: true, +})(injectIntl(FocalPointModal, { withRef: true })); diff --git a/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx b/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx index 301392a52a..f3e3b78ed9 100644 --- a/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.jsx @@ -15,8 +15,6 @@ const mapStateToProps = state => ({ count: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, }); -export default @injectIntl -@connect(mapStateToProps) class FollowRequestsColumnLink extends React.Component { static propTypes = { @@ -49,3 +47,5 @@ class FollowRequestsColumnLink extends React.Component { } } + +export default injectIntl(connect(mapStateToProps)(FollowRequestsColumnLink)); diff --git a/app/javascript/flavours/glitch/features/ui/components/header.jsx b/app/javascript/flavours/glitch/features/ui/components/header.jsx index 5aa045fee9..f7bab24871 100644 --- a/app/javascript/flavours/glitch/features/ui/components/header.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/header.jsx @@ -23,8 +23,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -export default @withRouter -@connect(null, mapDispatchToProps) class Header extends React.PureComponent { static contextTypes = { @@ -86,3 +84,5 @@ class Header extends React.PureComponent { } } + +export default withRouter(connect(null, mapDispatchToProps)(Header)); diff --git a/app/javascript/flavours/glitch/features/ui/components/image_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/image_modal.jsx index a792b9be77..5198b88092 100644 --- a/app/javascript/flavours/glitch/features/ui/components/image_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/image_modal.jsx @@ -9,7 +9,6 @@ const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); -export default @injectIntl class ImageModal extends React.PureComponent { static propTypes = { @@ -57,3 +56,5 @@ class ImageModal extends React.PureComponent { } } + +export default injectIntl(ImageModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx b/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx index 0d1d4040f7..e813a72b0e 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.jsx @@ -24,8 +24,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ }, }); -export default @injectIntl -@connect(null, mapDispatchToProps) class LinkFooter extends React.PureComponent { static contextTypes = { @@ -100,3 +98,5 @@ class LinkFooter extends React.PureComponent { } } + +export default injectIntl(connect(null, mapDispatchToProps)(LinkFooter)); diff --git a/app/javascript/flavours/glitch/features/ui/components/list_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/list_panel.jsx index dff8300656..489f3a1b46 100644 --- a/app/javascript/flavours/glitch/features/ui/components/list_panel.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/list_panel.jsx @@ -20,8 +20,6 @@ const mapStateToProps = state => ({ lists: getOrderedLists(state), }); -export default @withRouter -@connect(mapStateToProps) class ListPanel extends ImmutablePureComponent { static propTypes = { @@ -53,3 +51,5 @@ class ListPanel extends ImmutablePureComponent { } } + +export default withRouter(connect(mapStateToProps)(ListPanel)); diff --git a/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx index 9c67ed8087..a3811e91d3 100644 --- a/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx @@ -25,8 +25,6 @@ const mapStateToProps = (state, { statusId }) => ({ language: state.getIn(['statuses', statusId, 'language']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) -@injectIntl class MediaModal extends ImmutablePureComponent { static contextTypes = { @@ -259,3 +257,5 @@ class MediaModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(injectIntl(MediaModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx index f8bb9a3642..a74ebfb052 100644 --- a/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx @@ -43,8 +43,6 @@ const mapDispatchToProps = dispatch => { }; }; -export default @connect(mapStateToProps, mapDispatchToProps) -@injectIntl class MuteModal extends React.PureComponent { static propTypes = { @@ -138,3 +136,5 @@ class MuteModal extends React.PureComponent { } } + +export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(MuteModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx index 5a296435f6..6e8744ef07 100644 --- a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx @@ -29,7 +29,6 @@ const messages = defineMessages({ app_settings: { id: 'navigation_bar.app_settings', defaultMessage: 'App settings' }, }); -export default @injectIntl class NavigationPanel extends React.Component { static contextTypes = { @@ -102,3 +101,5 @@ class NavigationPanel extends React.Component { } } + +export default injectIntl(NavigationPanel); diff --git a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx index d972fe3b5b..df84a15713 100644 --- a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.jsx @@ -170,8 +170,6 @@ const mapStateToProps = state => ({ domain: state.getIn(['meta', 'domain']), }); -export default @connect(mapStateToProps) -@injectIntl class OnboardingModal extends React.PureComponent { static propTypes = { @@ -319,3 +317,5 @@ class OnboardingModal extends React.PureComponent { } } + +export default connect(mapStateToProps)(injectIntl(OnboardingModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/report_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/report_modal.jsx index 4d7f84bae0..79b4958771 100644 --- a/app/javascript/flavours/glitch/features/ui/components/report_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/report_modal.jsx @@ -31,8 +31,6 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -export default @connect(makeMapStateToProps) -@injectIntl class ReportModal extends ImmutablePureComponent { static propTypes = { @@ -219,3 +217,5 @@ class ReportModal extends ImmutablePureComponent { } } + +export default connect(makeMapStateToProps)(injectIntl(ReportModal)); diff --git a/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx index c1f8377176..4cde0ebad6 100644 --- a/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/video_modal.jsx @@ -11,7 +11,6 @@ const mapStateToProps = (state, { statusId }) => ({ language: state.getIn(['statuses', statusId, 'language']), }); -export default @connect(mapStateToProps, null, null, { forwardRef: true }) class VideoModal extends ImmutablePureComponent { static contextTypes = { @@ -72,3 +71,5 @@ class VideoModal extends ImmutablePureComponent { } } + +export default connect(mapStateToProps, null, null, { forwardRef: true })(VideoModal); diff --git a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx index 82ba6e692a..47401cfe4c 100644 --- a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx @@ -91,7 +91,6 @@ const normalizeWheel = event => { }; }; -export default @injectIntl class ZoomableImage extends React.PureComponent { static propTypes = { @@ -451,3 +450,5 @@ class ZoomableImage extends React.PureComponent { } } + +export default injectIntl(ZoomableImage); diff --git a/app/javascript/flavours/glitch/features/ui/index.jsx b/app/javascript/flavours/glitch/features/ui/index.jsx index 488c1b919d..fa35f689d7 100644 --- a/app/javascript/flavours/glitch/features/ui/index.jsx +++ b/app/javascript/flavours/glitch/features/ui/index.jsx @@ -244,9 +244,6 @@ class SwitchingColumnsArea extends React.PureComponent { } -export default @connect(mapStateToProps) -@injectIntl -@withRouter class UI extends React.Component { static contextTypes = { @@ -683,3 +680,5 @@ class UI extends React.Component { } } + +export default connect(mapStateToProps)(injectIntl(withRouter(UI))); diff --git a/app/javascript/flavours/glitch/features/video/index.jsx b/app/javascript/flavours/glitch/features/video/index.jsx index 9ab56b439e..80323770ca 100644 --- a/app/javascript/flavours/glitch/features/video/index.jsx +++ b/app/javascript/flavours/glitch/features/video/index.jsx @@ -93,7 +93,6 @@ export const fileNameFromURL = str => { return pathname.slice(index + 1); }; -export default @injectIntl class Video extends React.PureComponent { static propTypes = { @@ -673,3 +672,5 @@ class Video extends React.PureComponent { } } + +export default injectIntl(Video); From 5b7898230e1a380f5f12cea9c1f1a74ba228cd5b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 27 Mar 2023 03:11:10 -0400 Subject: [PATCH 0756/1220] Update strong_migrations to version 0.8.0 (#24270) --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 286b333c1c..2d94f37c39 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'simple-navigation', '~> 4.4' gem 'simple_form', '~> 5.2' gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie' gem 'stoplight', '~> 3.0.1' -gem 'strong_migrations', '~> 0.7' +gem 'strong_migrations', '~> 0.8' gem 'tty-prompt', '~> 0.23', require: false gem 'twitter-text', '~> 3.1.0' gem 'tzinfo-data', '~> 1.2022' diff --git a/Gemfile.lock b/Gemfile.lock index 6fa4894dbe..bba8db9961 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -683,8 +683,8 @@ GEM statsd-ruby (1.5.0) stoplight (3.0.1) redlock (~> 1.0) - strong_migrations (0.7.9) - activerecord (>= 5) + strong_migrations (0.8.0) + activerecord (>= 5.2) swd (1.3.0) activesupport (>= 3) attr_required (>= 0.0.5) @@ -882,7 +882,7 @@ DEPENDENCIES sprockets-rails (~> 3.4) stackprof stoplight (~> 3.0.1) - strong_migrations (~> 0.7) + strong_migrations (~> 0.8) thor (~> 1.2) tty-prompt (~> 0.23) twitter-text (~> 3.1.0) From 88fc04d3d71b43dc788239f7df7897c054c01e57 Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Mon, 27 Mar 2023 00:14:21 -0700 Subject: [PATCH 0757/1220] Serialize status webhook events in REST API format (#24243) --- app/serializers/rest/admin/webhook_event_serializer.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/serializers/rest/admin/webhook_event_serializer.rb b/app/serializers/rest/admin/webhook_event_serializer.rb index fe0ac23f98..b6d2616e53 100644 --- a/app/serializers/rest/admin/webhook_event_serializer.rb +++ b/app/serializers/rest/admin/webhook_event_serializer.rb @@ -7,6 +7,8 @@ class REST::Admin::WebhookEventSerializer < ActiveModel::Serializer REST::Admin::AccountSerializer when 'Report' REST::Admin::ReportSerializer + when 'Status' + REST::StatusSerializer else super end From babd86e594bbdd6dcc512d522ccbb4b24c1355e3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 27 Mar 2023 10:56:25 +0200 Subject: [PATCH 0758/1220] Refactor styles to use logical properties for positioning (#23944) --- app/javascript/styles/mastodon/about.scss | 4 +- app/javascript/styles/mastodon/accounts.scss | 16 +- app/javascript/styles/mastodon/admin.scss | 83 +++-- app/javascript/styles/mastodon/basics.scss | 2 +- .../styles/mastodon/components.scss | 334 +++++++++--------- .../styles/mastodon/containers.scss | 6 +- .../styles/mastodon/emoji_picker.scss | 10 +- app/javascript/styles/mastodon/forms.scss | 34 +- app/javascript/styles/mastodon/modal.scss | 2 +- app/javascript/styles/mastodon/polls.scss | 2 +- app/javascript/styles/mastodon/rich_text.scss | 6 +- app/javascript/styles/mastodon/rtl.scss | 305 +--------------- app/javascript/styles/mastodon/statuses.scss | 8 +- app/javascript/styles/mastodon/tables.scss | 22 +- app/javascript/styles/mastodon/widgets.scss | 16 +- 15 files changed, 279 insertions(+), 571 deletions(-) diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index 0183c43d5e..0f02563b48 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -28,14 +28,14 @@ $fluid-breakpoint: $maximum-width + 20px; position: relative; border-bottom: 1px solid lighten($ui-base-color, 8%); padding: 1em 1.75em; - padding-left: 3em; + padding-inline-start: 3em; font-weight: 500; counter-increment: list-counter; &::before { content: counter(list-counter); position: absolute; - left: 0; + inset-inline-start: 0; top: 50%; transform: translateY(-50%); background: $highlight-text-color; diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index c007eb4b57..af0d8b5ed9 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -73,8 +73,8 @@ } .display-name { - margin-left: 15px; - text-align: left; + margin-inline-start: 15px; + text-align: start; i[data-hidden] { display: none; @@ -138,22 +138,22 @@ } .older { - float: left; - padding-left: 0; + float: inline-start; + padding-inline-start: 0; .fa { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } } .newer { - float: right; - padding-right: 0; + float: inline-end; + padding-inline-end: 0; .fa { display: inline-block; - margin-left: 5px; + margin-inline-start: 5px; } } diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index d54d6634da..accddc0043 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -117,7 +117,7 @@ $content-width: 840px; text-overflow: ellipsis; i.fa { - margin-right: 5px; + margin-inline-end: 5px; } &:hover { @@ -186,7 +186,10 @@ $content-width: 840px; } .content { - padding: 55px 15px 20px 25px; + padding-top: 55px; + padding-bottom: 20px; + padding-inline-start: 25px; + padding-inline-end: 15px; @media screen and (max-width: $no-columns-breakpoint) { max-width: none; @@ -202,11 +205,12 @@ $content-width: 840px; flex-wrap: wrap; align-items: center; justify-content: space-between; - margin: -15px -15px 0 0; + margin-top: -15px; + margin-inline-end: -15px; & > * { margin-top: 15px; - margin-right: 15px; + margin-inline-end: 15px; } } @@ -385,7 +389,7 @@ $content-width: 840px; z-index: 10; width: 100%; height: calc(100% - 56px); - left: 0; + inset-inline-start: 0; bottom: 0; overflow-y: auto; background: $ui-base-color; @@ -470,10 +474,11 @@ body, .filters { display: flex; flex-wrap: wrap; + gap: 40px; .filter-subset { flex: 0 0 auto; - margin: 0 40px 20px 0; + margin-bottom: 20px; &:last-child { margin-bottom: 30px; @@ -485,7 +490,7 @@ body, li { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } } @@ -572,7 +577,7 @@ body, .activity-stream { flex: 2 0 0; - margin-right: 20px; + margin-inline-end: 20px; max-width: calc(100% - 60px); .entry { @@ -625,12 +630,12 @@ body, } .media-spoiler-toggle-buttons { - margin-left: auto; + margin-inline-start: auto; .button { overflow: visible; margin: 0 0 5px 5px; - float: right; + float: inline-end; } } } @@ -651,7 +656,7 @@ body, .special-action-button, .back-link { - text-align: right; + text-align: end; flex: 1 1 auto; } @@ -669,7 +674,7 @@ body, display: block; line-height: 20px; padding: 15px; - padding-left: 15px * 2 + 40px; + padding-inline-start: 15px * 2 + 40px; background: $ui-base-color; border-bottom: 1px solid darken($ui-base-color, 8%); position: relative; @@ -696,7 +701,7 @@ body, &__avatar { position: absolute; - left: 15px; + inset-inline-start: 15px; top: 15px; .avatar { @@ -764,7 +769,7 @@ a.name-tag, .avatar { display: block; margin: 0; - margin-right: 5px; + margin-inline-end: 5px; border-radius: 50%; } @@ -778,7 +783,7 @@ a.name-tag, .speech-bubble { margin-bottom: 20px; - border-left: 4px solid $ui-highlight-color; + border-inset-inline-start: 4px solid $ui-highlight-color; &.positive { border-left-color: $success-green; @@ -794,7 +799,7 @@ a.name-tag, &__bubble { padding: 16px; - padding-left: 14px; + padding-inline-start: 14px; font-size: 15px; line-height: 20px; border-radius: 4px 4px 4px 0; @@ -808,7 +813,7 @@ a.name-tag, &__owner { padding: 8px; - padding-left: 12px; + padding-inline-start: 12px; } time { @@ -832,7 +837,7 @@ a.name-tag, border: 0; &__avatar-wrapper { - margin-left: 0; + margin-inline-start: 0; } } @@ -841,7 +846,7 @@ a.name-tag, font-weight: 500; color: $darker-text-color; text-transform: uppercase; - text-align: right; + text-align: end; a { color: inherit; @@ -892,7 +897,7 @@ a.name-tag, &__icon { color: $dark-text-color; - margin-right: 4px; + margin-inline-end: 4px; font-weight: 500; } } @@ -1090,7 +1095,7 @@ a.name-tag, > h4 { position: sticky; - left: 0; + inset-inline-start: 0; } &__table { @@ -1102,7 +1107,7 @@ a.name-tag, &__date { white-space: nowrap; padding: 10px 0; - text-align: left; + text-align: start; min-width: 120px; &.retention__table__average { @@ -1160,7 +1165,7 @@ a.name-tag, &__total { display: block; - margin-right: 10px; + margin-inline-end: 10px; font-weight: 500; font-size: 28px; color: $primary-text-color; @@ -1262,7 +1267,7 @@ a.sparkline { } &__value { - text-align: right; + text-align: end; color: $darker-text-color; padding: 11px 10px; } @@ -1273,7 +1278,7 @@ a.sparkline { height: 8px; border-radius: 50%; background: $ui-highlight-color; - margin-right: 10px; + margin-inline-end: 10px; @for $i from 0 through 10 { &--#{10 * $i} { @@ -1309,7 +1314,7 @@ a.sparkline { } &__rules { - margin-left: 30px; + margin-inline-start: 30px; } } @@ -1431,7 +1436,7 @@ a.sparkline { height: 21px; position: absolute; bottom: 0; - right: 15px; + inset-inline-end: 15px; background: linear-gradient(to left, $ui-base-color, transparent); pointer-events: none; } @@ -1511,7 +1516,7 @@ a.sparkline { background: $ui-base-color; position: relative; padding: 15px; - padding-left: 15px * 2 + 40px; + padding-inline-start: 15px * 2 + 40px; border-bottom: 1px solid darken($ui-base-color, 8%); &:first-child { @@ -1531,7 +1536,7 @@ a.sparkline { &__avatar { position: absolute; - left: 15px; + inset-inline-start: 15px; top: 15px; border-radius: 4px; width: 40px; @@ -1547,7 +1552,7 @@ a.sparkline { .username { color: $primary-text-color; font-weight: 500; - margin-right: 5px; + margin-inline-end: 5px; a { color: inherit; @@ -1562,7 +1567,7 @@ a.sparkline { } time { - margin-left: 5px; + margin-inline-start: 5px; vertical-align: baseline; } } @@ -1597,8 +1602,8 @@ a.sparkline { &__actions { position: absolute; top: 15px; - right: 15px; - text-align: right; + inset-inline-end: 15px; + text-align: end; } } } @@ -1621,7 +1626,7 @@ a.sparkline { flex: 0 0 auto; width: 200px; padding: 15px; - padding-right: 0; + padding-inline-end: 0; .button { display: block; @@ -1657,7 +1662,7 @@ a.sparkline { } .section-skip-link { - float: right; + float: inline-end; a { color: $ui-highlight-color; @@ -1707,7 +1712,7 @@ a.sparkline { &__rules { list-style: disc; - padding-left: 15px; + padding-inline-start: 15px; margin-bottom: 20px; color: $darker-text-color; @@ -1796,7 +1801,7 @@ a.sparkline { li { counter-increment: step 1; - padding-left: 2.5rem; + padding-inline-start: 2.5rem; padding-bottom: 8px; position: relative; margin-bottom: 8px; @@ -1806,7 +1811,7 @@ a.sparkline { content: counter(step); font-size: 0.625rem; font-weight: 500; - left: 0; + inset-inline-start: 0; display: flex; justify-content: center; align-items: center; @@ -1825,7 +1830,7 @@ a.sparkline { background: $highlight-text-color; bottom: 0; top: calc(1.875rem + 1px); - left: 0.6875rem; + inset-inline-start: 0.6875rem; } &:last-child { diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 1d08b12e57..a344c7fa4f 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -267,7 +267,7 @@ button { overflow: hidden; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: -1000; } diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 0893ea7d93..b9303f2ef5 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -309,7 +309,7 @@ &__counter { display: inline-block; width: auto; - margin-left: 4px; + margin-inline-start: 4px; font-size: 12px; font-weight: 500; } @@ -413,7 +413,7 @@ body > [data-popper-placement] { width: 18px; height: 18px; flex: 0 0 auto; - margin-right: 10px; + margin-inline-end: 10px; top: -1px; border-radius: 4px; vertical-align: middle; @@ -465,7 +465,7 @@ body > [data-popper-placement] { .emoji-picker-dropdown { position: absolute; top: 0; - right: 0; + inset-inline-end: 0; } .compose-form__autosuggest-wrapper { @@ -527,7 +527,7 @@ body > [data-popper-placement] { min-height: 100px; border-radius: 4px 4px 0 0; padding-bottom: 0; - padding-right: 10px + 22px; + padding-right: 10px + 22px; // Cannot use inline-end because of dir=auto resize: none; scrollbar-color: initial; @@ -536,7 +536,7 @@ body > [data-popper-placement] { } @media screen and (max-width: 600px) { - height: 100px !important; // prevent auto-resize textarea + height: 100px !important; // Prevent auto-resize textarea resize: vertical; } } @@ -605,7 +605,7 @@ body > [data-popper-placement] { &__uses { flex: 0 0 auto; - text-align: right; + text-align: end; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -615,7 +615,7 @@ body > [data-popper-placement] { .autosuggest-account-icon, .autosuggest-emoji img { display: block; - margin-right: 8px; + margin-inline-end: 8px; width: 16px; height: 16px; } @@ -677,8 +677,8 @@ body > [data-popper-placement] { position: absolute; z-index: 2; bottom: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; box-sizing: border-box; background: linear-gradient( 0deg, @@ -737,7 +737,7 @@ body > [data-popper-placement] { .character-counter__wrapper { align-self: center; - margin-right: 4px; + margin-inline-end: 4px; } } @@ -826,7 +826,7 @@ body > [data-popper-placement] { } .reply-indicator__cancel { - float: right; + float: inline-end; line-height: 24px; } @@ -836,13 +836,13 @@ body > [data-popper-placement] { max-width: 100%; line-height: 24px; overflow: hidden; - padding-right: 25px; + padding-inline-end: 25px; text-decoration: none; } .reply-indicator__display-avatar { - float: left; - margin-right: 5px; + float: inline-start; + margin-inline-end: 5px; } .status__content--with-action { @@ -1159,7 +1159,7 @@ body > [data-popper-placement] { .notification__relative_time { color: $dark-text-color; - float: right; + float: inline-end; font-size: 14px; padding-bottom: 1px; } @@ -1344,7 +1344,7 @@ body > [data-popper-placement] { font-weight: 500; font-size: 12px; line-height: 17px; - margin-left: 6px; + margin-inline-start: 6px; } .reply-indicator__content { @@ -1389,7 +1389,7 @@ body > [data-popper-placement] { border-bottom: 0; .account__avatar-wrapper { - margin-left: 0; + margin-inline-start: 0; } } @@ -1452,7 +1452,7 @@ body > [data-popper-placement] { &-inline { display: inline-block; vertical-align: middle; - margin-right: 5px; + margin-inline-end: 5px; } &-composite { @@ -1461,7 +1461,7 @@ body > [data-popper-placement] { position: relative; & > div { - float: left; + float: inline-start; position: relative; box-sizing: border-box; } @@ -1475,7 +1475,7 @@ body > [data-popper-placement] { display: block; position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; transform: translate(-50%, -50%); color: $primary-text-color; text-shadow: 1px 1px 2px $base-shadow-color; @@ -1495,7 +1495,7 @@ a .account__avatar { &-overlay { position: absolute; bottom: 0; - right: 0; + inset-inline-end: 0; z-index: 1; } } @@ -1552,15 +1552,15 @@ a .account__avatar { .dropdown--active { .dropdown__content.dropdown__right { - left: 6px; - right: initial; + inset-inline-start: 6px; + inset-inline-end: initial; } &::after { bottom: initial; - margin-left: 11px; + margin-inline-start: 11px; margin-top: -7px; - right: initial; + inset-inline-end: initial; } } } @@ -1576,7 +1576,7 @@ a .account__avatar { text-decoration: none; overflow: hidden; flex: 0 1 100%; - border-right: 1px solid lighten($ui-base-color, 8%); + border-inset-inline-end: 1px solid lighten($ui-base-color, 8%); padding: 10px 0; border-bottom: 4px solid transparent; @@ -1616,8 +1616,8 @@ a .account__avatar { } .account-authorize__avatar { - float: left; - margin-right: 10px; + float: inline-start; + margin-inline-end: 10px; } .status__display-name, @@ -2089,7 +2089,7 @@ a.account__display-name { } &.right { - left: -9px; + inset-inline-start: -9px; &::before { transform: rotate(-90deg); @@ -2101,7 +2101,7 @@ a.account__display-name { } &.left { - right: -9px; + inset-inline-end: -9px; &::before { transform: rotate(90deg); @@ -2171,7 +2171,7 @@ a.account__display-name { vertical-align: top; .account__avatar { - margin-right: 5px; + margin-inline-end: 5px; border-radius: 50%; } @@ -2184,8 +2184,8 @@ a.account__display-name { display: block; line-height: 18px; max-width: 311px; - right: 0; - text-align: left; + inset-inline-end: 0; + text-align: start; z-index: 9999; & > ul { @@ -2199,12 +2199,12 @@ a.account__display-name { } &.dropdown__right { - right: 0; + inset-inline-end: 0; } &.dropdown__left { & > ul { - left: -98px; + inset-inline-start: -98px; } } @@ -2423,23 +2423,23 @@ $ui-header-height: 55px; .drawer { flex: 0 0 auto; padding: 10px; - padding-left: 5px; - padding-right: 5px; + padding-inline-start: 5px; + padding-inline-end: 5px; &:first-child { - padding-left: 10px; + padding-inline-start: 10px; } &:last-child { - padding-right: 10px; + padding-inline-end: 10px; } } .columns-area > div { .column, .drawer { - padding-left: 5px; - padding-right: 5px; + padding-inline-start: 5px; + padding-inline-end: 5px; } } } @@ -2486,7 +2486,7 @@ $ui-header-height: 55px; } span { - margin-left: 5px; + margin-inline-start: 5px; display: none; } } @@ -2528,7 +2528,7 @@ $ui-header-height: 55px; line-height: 18px; font-size: 16px; padding: 15px; - padding-right: 30px; + padding-inline-end: 30px; } .search__icon .fa { @@ -2596,7 +2596,7 @@ $ui-header-height: 55px; .navigation-panel { margin: 0; background: $ui-base-color; - border-left: 1px solid lighten($ui-base-color, 8%); + border-inset-inline-start: 1px solid lighten($ui-base-color, 8%); height: 100vh; } @@ -2668,7 +2668,7 @@ $ui-header-height: 55px; &__badge { position: absolute; - left: 9px; + inset-inline-start: 9px; top: -13px; background: $ui-highlight-color; border: 2px solid lighten($ui-base-color, 8%); @@ -2682,7 +2682,7 @@ $ui-header-height: 55px; &__issue-badge { position: absolute; - left: 11px; + inset-inline-start: 11px; bottom: 1px; display: block; background: $error-red; @@ -2738,7 +2738,7 @@ $ui-header-height: 55px; &__background { position: absolute; - left: 0; + inset-inline-start: 0; bottom: 0; height: 220px; width: auto; @@ -2864,7 +2864,7 @@ $ui-header-height: 55px; .drawer__inner { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; background: lighten($ui-base-color, 13%); box-sizing: border-box; padding: 0; @@ -2907,7 +2907,7 @@ $ui-header-height: 55px; .pseudo-drawer { background: lighten($ui-base-color, 13%); font-size: 13px; - text-align: left; + text-align: start; } .drawer__header { @@ -3010,7 +3010,7 @@ $ui-header-height: 55px; .column-back-button__icon { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } .column-back-button--slim { @@ -3023,7 +3023,7 @@ $ui-header-height: 55px; font-size: 16px; padding: 15px; position: absolute; - right: 0; + inset-inline-end: 0; top: -48px; } @@ -3088,7 +3088,7 @@ $ui-header-height: 55px; margin-top: auto; margin-bottom: auto; line-height: 0; - left: 8px; + inset-inline-start: 8px; opacity: 0; transition: opacity 0.25s ease; } @@ -3107,7 +3107,7 @@ $ui-header-height: 55px; margin-top: auto; margin-bottom: auto; line-height: 0; - right: 10px; + inset-inline-end: 10px; opacity: 1; transition: opacity 0.25s ease; } @@ -3119,7 +3119,7 @@ $ui-header-height: 55px; .react-toggle-thumb { position: absolute; top: 1px; - left: 1px; + inset-inline-start: 1px; width: 22px; height: 22px; border: 1px solid $ui-base-color; @@ -3131,7 +3131,7 @@ $ui-header-height: 55px; } .react-toggle--checked .react-toggle-thumb { - left: 27px; + inset-inline-start: 27px; border-color: $ui-highlight-color; } @@ -3185,7 +3185,7 @@ $ui-header-height: 55px; .column-link__icon { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } .column-link__badge { @@ -3279,7 +3279,7 @@ $ui-header-height: 55px; thead { position: absolute; - left: -9999px; + inset-inline-start: -9999px; } td { @@ -3383,9 +3383,9 @@ button.icon-button.active i.fa-retweet { &__actions { bottom: 0; - left: 0; + inset-inline-start: 0; position: absolute; - right: 0; + inset-inline-end: 0; top: 0; display: flex; justify-content: center; @@ -3491,7 +3491,7 @@ a.status-card { position: absolute; transform-origin: 50% 50%; top: 50%; - left: 50%; + inset-inline-start: 50%; transform: translate(-50%, -50%); } } @@ -3558,7 +3558,7 @@ a.status-card.compact:hover { object-fit: fill; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: 0; background: $base-overlay-background; @@ -3673,8 +3673,8 @@ a.status-card.compact:hover { content: ''; position: absolute; bottom: -13px; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; margin: 0 auto; width: 60%; pointer-events: none; @@ -3709,11 +3709,12 @@ a.status-card.compact:hover { & > button { margin: 0; border: 0; - padding: 15px 0 15px 15px; + padding: 15px; + padding-inline-end: 0; color: inherit; background: transparent; font: inherit; - text-align: left; + text-align: start; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; @@ -3747,7 +3748,7 @@ a.status-card.compact:hover { } .column-header__links .text-btn { - margin-right: 10px; + margin-inline-end: 10px; } .column-header__button { @@ -3830,18 +3831,18 @@ a.status-card.compact:hover { } .column-header__setting-arrows { - float: right; + float: inline-end; .column-header__setting-btn { padding: 5px; &:first-child { - padding-right: 7px; + padding-inline-end: 7px; } &:last-child { - padding-left: 7px; - margin-left: 5px; + padding-inline-start: 7px; + margin-inline-start: 5px; } } } @@ -3868,7 +3869,7 @@ a.status-card.compact:hover { .column-header__icon { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } .loading-indicator { @@ -3879,7 +3880,7 @@ a.status-card.compact:hover { overflow: visible; position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; @@ -4015,7 +4016,7 @@ a.status-card.compact:hover { .spoiler-button { top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; position: absolute; @@ -4023,7 +4024,7 @@ a.status-card.compact:hover { &--minified { display: block; - left: 4px; + inset-inline-start: 4px; top: 4px; width: auto; height: auto; @@ -4140,12 +4141,12 @@ a.status-card.compact:hover { &__placeholder { color: $dark-text-color; - padding-left: 2px; + padding-inline-start: 2px; font-size: 12px; } &__value-container { - padding-left: 6px; + padding-inline-start: 6px; } &__multi-value { @@ -4242,7 +4243,7 @@ a.status-card.compact:hover { color: $darker-text-color; display: inline-block; margin-bottom: 14px; - margin-left: 8px; + margin-inline-start: 8px; vertical-align: middle; } @@ -4427,7 +4428,7 @@ a.status-card.compact:hover { .emoji-picker-dropdown__modifiers { position: absolute; top: 60px; - right: 11px; + inset-inline-end: 11px; cursor: pointer; } @@ -4435,7 +4436,7 @@ a.status-card.compact:hover { position: absolute; z-index: 4; top: -4px; - left: -8px; + inset-inline-start: -8px; background: $simple-background-color; border-radius: 4px; box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); @@ -4472,7 +4473,7 @@ a.status-card.compact:hover { display: flex; height: 100vh; justify-content: center; - left: 0; + inset-inline-start: 0; opacity: 0; position: fixed; top: 0; @@ -4497,9 +4498,9 @@ a.status-card.compact:hover { .upload-area__background { position: absolute; top: 0; - right: 0; + inset-inline-end: 0; bottom: 0; - left: 0; + inset-inline-start: 0; z-index: -1; border-radius: 4px; background: $ui-base-color; @@ -4527,7 +4528,7 @@ a.status-card.compact:hover { .fa { font-size: 34px; - margin-right: 10px; + margin-inline-end: 10px; } span { @@ -4553,7 +4554,7 @@ a.status-card.compact:hover { .upload-progress__tracker { position: absolute; - left: 0; + inset-inline-start: 0; top: 0; height: 6px; background: $ui-highlight-color; @@ -4562,7 +4563,10 @@ a.status-card.compact:hover { .emoji-button { display: block; - padding: 5px 5px 2px 2px; + padding-top: 5px; + padding-bottom: 2px; + padding-inline-start: 2px; + padding-inline-end: 5px; outline: 0; cursor: pointer; @@ -4650,7 +4654,7 @@ a.status-card.compact:hover { display: flex; align-items: center; justify-content: center; - margin-right: 10px; + margin-inline-end: 10px; } .privacy-dropdown__option__content { @@ -4716,11 +4720,11 @@ a.status-card.compact:hover { } .emoji-mart-search { - padding-right: 10px; + padding-inline-end: 10px; } .emoji-mart-search-icon { - right: 10px + 5px; + inset-inline-end: 10px + 5px; } .emoji-mart-scroll { @@ -4773,7 +4777,7 @@ a.status-card.compact:hover { display: block; padding: 15px; - padding-right: 30px; + padding-inline-end: 30px; line-height: 18px; font-size: 16px; @@ -4809,7 +4813,7 @@ a.status-card.compact:hover { .fa { position: absolute; top: 16px; - right: 10px; + inset-inline-end: 10px; z-index: 2; display: inline-block; opacity: 0; @@ -4863,7 +4867,7 @@ a.status-card.compact:hover { .fa { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } } @@ -4882,7 +4886,7 @@ a.status-card.compact:hover { .fa { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } } @@ -4920,8 +4924,8 @@ a.status-card.compact:hover { .modal-root__overlay { position: fixed; top: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; bottom: 0; background: rgba($base-overlay-background, 0.7); transition: background 0.5s; @@ -4930,7 +4934,7 @@ a.status-card.compact:hover { .modal-root__container { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; box-sizing: border-box; @@ -4983,16 +4987,16 @@ a.status-card.compact:hover { .media-modal__closer { position: absolute; top: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; bottom: 0; } .media-modal__navigation { position: absolute; top: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; bottom: 0; pointer-events: none; transition: opacity 0.3s linear; @@ -5035,18 +5039,18 @@ a.status-card.compact:hover { } .media-modal__nav--left { - left: 0; + inset-inline-start: 0; } .media-modal__nav--right { - right: 0; + inset-inline-end: 0; } .media-modal__overlay { max-width: 600px; position: absolute; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; bottom: 0; margin: 0 auto; @@ -5133,14 +5137,14 @@ a.status-card.compact:hover { .media-modal__close { position: absolute; - right: 8px; + inset-inline-end: 8px; top: 8px; z-index: 100; } .media-modal__zoom-button { position: absolute; - right: 64px; + inset-inline-end: 64px; top: 8px; z-index: 100; pointer-events: auto; @@ -5174,7 +5178,7 @@ a.status-card.compact:hover { & > div { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; box-sizing: border-box; @@ -5270,7 +5274,7 @@ a.status-card.compact:hover { display: inline-block; max-width: 30px; max-height: auto; - margin-left: 10px; + margin-inline-start: 10px; } .boost-modal, @@ -5325,9 +5329,9 @@ a.status-card.compact:hover { & > div { flex: 1 1 auto; - text-align: right; + text-align: end; color: $lighter-text-color; - padding-right: 10px; + padding-inline-end: 10px; } .button { @@ -5530,7 +5534,7 @@ a.status-card.compact:hover { & > span { font-size: 17px; font-weight: 500; - margin-left: 10px; + margin-inline-start: 10px; } } @@ -5554,11 +5558,11 @@ a.status-card.compact:hover { } .emoji-mart-search { - padding-right: 10px; + padding-inline-end: 10px; } .emoji-mart-search-icon { - right: 10px + 5px; + inset-inline-end: 10px + 5px; } } @@ -5621,7 +5625,7 @@ a.status-card.compact:hover { .report-modal__comment { padding: 20px; - border-right: 1px solid $ui-secondary-color; + border-inset-inline-end: 1px solid $ui-secondary-color; max-width: 320px; p { @@ -5719,7 +5723,7 @@ a.status-card.compact:hover { } button:first-child { - margin-right: 10px; + margin-inline-end: 10px; } } } @@ -5783,7 +5787,7 @@ a.status-card.compact:hover { border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; - padding-right: 30px; + padding-inline-end: 30px; } } @@ -5807,7 +5811,7 @@ a.status-card.compact:hover { &__label { color: $inverted-text-color; margin: 0; - margin-left: 8px; + margin-inline-start: 8px; } } } @@ -5818,7 +5822,7 @@ a.status-card.compact:hover { .report-modal__close { position: absolute; top: 10px; - right: 10px; + inset-inline-end: 10px; } } @@ -5869,7 +5873,7 @@ a.status-card.compact:hover { height: 3px; position: fixed; top: 0; - left: 0; + inset-inline-start: 0; z-index: 9999; } @@ -5879,7 +5883,7 @@ a.status-card.compact:hover { color: $primary-text-color; background: rgba($base-overlay-background, 0.5); bottom: 6px; - left: 6px; + inset-inline-start: 6px; padding: 2px 6px; border-radius: 2px; font-size: 11px; @@ -5912,7 +5916,7 @@ a.status-card.compact:hover { color: $dark-text-color; padding: 8px 18px; cursor: default; - border-right: 1px solid lighten($ui-base-color, 8%); + border-inset-inline-end: 1px solid lighten($ui-base-color, 8%); display: flex; flex-direction: column; align-items: center; @@ -5927,7 +5931,7 @@ a.status-card.compact:hover { &__list { list-style: none; padding: 4px 0; - padding-left: 8px; + padding-inline-start: 8px; display: flex; flex-direction: column; justify-content: center; @@ -5977,7 +5981,7 @@ a.status-card.compact:hover { border: 0; box-sizing: border-box; display: block; - float: left; + float: inline-start; position: relative; border-radius: 4px; overflow: hidden; @@ -6015,7 +6019,7 @@ a.status-card.compact:hover { object-fit: cover; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: 0; background: $base-overlay-background; @@ -6183,8 +6187,8 @@ a.status-card.compact:hover { position: absolute; z-index: 2; bottom: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; box-sizing: border-box; background: linear-gradient( 0deg, @@ -6212,7 +6216,7 @@ a.status-card.compact:hover { display: none; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; z-index: 4; @@ -6328,7 +6332,7 @@ a.status-card.compact:hover { &.active { overflow: visible; width: 50px; - margin-right: 16px; + margin-inline-end: 16px; } &::before { @@ -6339,7 +6343,7 @@ a.status-card.compact:hover { display: block; position: absolute; height: 4px; - left: 0; + inset-inline-start: 0; top: 50%; transform: translate(0, -50%); } @@ -6349,7 +6353,7 @@ a.status-card.compact:hover { position: absolute; height: 4px; border-radius: 4px; - left: 0; + inset-inline-start: 0; top: 50%; transform: translate(0, -50%); background: lighten($ui-highlight-color, 8%); @@ -6362,8 +6366,8 @@ a.status-card.compact:hover { width: 12px; height: 12px; top: 50%; - left: 0; - margin-left: -6px; + inset-inline-start: 0; + margin-inline-start: -6px; transform: translate(0, -50%); background: lighten($ui-highlight-color, 8%); box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); @@ -6434,7 +6438,7 @@ a.status-card.compact:hover { width: 12px; height: 12px; top: 10px; - margin-left: -6px; + margin-inline-start: -6px; background: lighten($ui-highlight-color, 8%); box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); @@ -6510,7 +6514,7 @@ a.status-card.compact:hover { &__icons { position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; transform: translate(-50%, -50%); font-size: 24px; } @@ -6553,7 +6557,7 @@ a.status-card.compact:hover { content: ''; position: absolute; bottom: 0; - left: 50%; + inset-inline-start: 50%; width: 0; height: 0; transform: translateX(-50%); @@ -6629,7 +6633,7 @@ a.status-card.compact:hover { width: 18px; height: 18px; flex: 0 0 auto; - margin-right: 10px; + margin-inline-end: 10px; top: -1px; border-radius: 50%; vertical-align: middle; @@ -6706,10 +6710,10 @@ noscript { .navigation-bar { & > a:first-child { - will-change: margin-top, margin-left, margin-right, width; + will-change: margin-top, margin-inline-start, margin-inline-end, width; transition: margin-top $duration $delay, - margin-left $duration ($duration + $delay), - margin-right $duration ($duration + $delay); + margin-inline-start $duration ($duration + $delay), + margin-inline-end $duration ($duration + $delay); } & > .navigation-bar__profile-edit { @@ -6891,7 +6895,7 @@ noscript { cursor: pointer; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; background: rgba($base-overlay-background, 0.5); @@ -7029,13 +7033,13 @@ noscript { width: 100%; height: 100%; top: 0; - left: 0; + inset-inline-start: 0; } &__preview { position: absolute; bottom: 10px; - right: 10px; + inset-inline-end: 10px; z-index: 2; cursor: move; transition: opacity 0.1s ease; @@ -7112,7 +7116,7 @@ noscript { &__info { position: absolute; top: 10px; - left: 10px; + inset-inline-start: 10px; } &__image { @@ -7155,7 +7159,7 @@ noscript { padding-top: 10px; gap: 8px; overflow: hidden; - margin-left: -2px; // aligns the pfp with content below + margin-inline-start: -2px; // aligns the pfp with content below &__buttons { display: flex; @@ -7383,7 +7387,7 @@ noscript { .fa { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; } } @@ -7433,7 +7437,7 @@ noscript { flex: 0 0 auto; font-size: 24px; font-weight: 500; - text-align: right; + text-align: end; color: $secondary-text-color; text-decoration: none; } @@ -7538,7 +7542,7 @@ noscript { &__content { flex: 1 1 auto; padding: 10px 5px; - padding-right: 15px; + padding-inline-end: 15px; overflow: hidden; &__info { @@ -7551,7 +7555,7 @@ noscript { &__relative-time { font-size: 15px; color: $darker-text-color; - padding-left: 15px; + padding-inline-start: 15px; } &__names { @@ -7641,13 +7645,13 @@ noscript { display: block; font-weight: 500; margin-bottom: 10px; - padding-right: 18px; + padding-inline-end: 18px; } &__unread { position: absolute; top: 19px; - right: 19px; + inset-inline-end: 19px; display: block; background: $highlight-text-color; border-radius: 50%; @@ -7661,7 +7665,7 @@ noscript { color: $darker-text-color; position: absolute; bottom: 3px; - right: 0; + inset-inline-end: 0; } } @@ -7678,7 +7682,7 @@ noscript { flex-wrap: wrap; align-items: center; margin-top: 15px; - margin-left: -2px; + margin-inline-start: -2px; width: calc(100% - (90px - 33px)); &__item { @@ -7719,7 +7723,7 @@ noscript { font-size: 13px; font-weight: 500; text-align: center; - margin-left: 6px; + margin-inline-start: 6px; color: $darker-text-color; } @@ -7798,10 +7802,10 @@ noscript { content: ''; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; - border-left: 4px solid $highlight-text-color; + border-inset-inline-start: 4px solid $highlight-text-color; pointer-events: none; } } @@ -7810,7 +7814,7 @@ noscript { .picture-in-picture { position: fixed; bottom: 20px; - right: 20px; + inset-inline-end: 20px; width: 300px; &__footer { @@ -7836,7 +7840,7 @@ noscript { } .account__avatar { - margin-right: 10px; + margin-inline-end: 10px; } .display-name { @@ -7902,7 +7906,7 @@ noscript { &__close { position: absolute; top: 10px; - right: 10px; + inset-inline-end: 10px; } h2 { @@ -7937,7 +7941,7 @@ noscript { .search .fa { top: 10px; - right: 10px; + inset-inline-end: 10px; color: $dark-text-color; } @@ -8021,7 +8025,7 @@ noscript { object-fit: fill; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: 0; &--hidden { @@ -8107,7 +8111,7 @@ noscript { } .account__avatar-wrapper { - margin-left: 0; + margin-inline-start: 0; } .spacer { @@ -8327,7 +8331,7 @@ noscript { &::before { content: counter(list-counter) '.'; position: absolute; - left: 0; + inset-inline-start: 0; } } @@ -8339,13 +8343,13 @@ noscript { width: 0.375em; height: 0.375em; top: 0.5em; - left: 0.25em; + inset-inline-start: 0.25em; } ul > li, ol > li { position: relative; - padding-left: 1.75em; + padding-inline-start: 1.75em; } & > ul > li p { @@ -8478,7 +8482,7 @@ noscript { &__preview { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; object-fit: cover; @@ -8684,7 +8688,7 @@ noscript { } .account__avatar-wrapper { - margin-left: 0; + margin-inline-start: 0; } .account__relationship { diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss index b49b93984c..fb71ad034a 100644 --- a/app/javascript/styles/mastodon/containers.scss +++ b/app/javascript/styles/mastodon/containers.scss @@ -18,7 +18,7 @@ .logo { height: 42px; - margin-right: 10px; + margin-inline-end: 10px; } a { @@ -73,7 +73,7 @@ .avatar { width: 40px; height: 40px; - margin-right: 10px; + margin-inline-end: 10px; img { width: 100%; @@ -101,6 +101,6 @@ display: block; font-size: 32px; line-height: 40px; - margin-left: 10px; + margin-inline-start: 10px; } } diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss index 0d7a7df2ee..c7247c3a57 100644 --- a/app/javascript/styles/mastodon/emoji_picker.scss +++ b/app/javascript/styles/mastodon/emoji_picker.scss @@ -71,7 +71,7 @@ .emoji-mart-anchor-bar { position: absolute; bottom: -5px; - left: 0; + inset-inline-start: 0; width: 100%; height: 4px; background-color: $highlight-text-color; @@ -106,7 +106,7 @@ .emoji-mart-search { padding: 10px; - padding-right: 45px; + padding-inline-end: 45px; background: $simple-background-color; position: relative; @@ -114,7 +114,7 @@ font-size: 16px; font-weight: 400; padding: 7px 9px; - padding-right: 25px; + padding-inline-end: 25px; font-family: inherit; display: block; width: 100%; @@ -142,7 +142,7 @@ .emoji-mart-search-icon { position: absolute; top: 18px; - right: 45px + 5px; + inset-inline-end: 45px + 5px; z-index: 2; padding: 2px 5px 1px; border: 0; @@ -177,7 +177,7 @@ content: ''; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; background-color: rgba($ui-secondary-color, 0.7); diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index e4539deffe..7d4bde5e92 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -54,12 +54,12 @@ code { .radio > label { position: relative; - padding-left: 28px; + padding-inline-start: 28px; input { position: absolute; top: -2px; - left: 0; + inset-inline-start: 0; } } } @@ -79,7 +79,7 @@ code { .label_input, .hint { - padding-left: 28px; + padding-inline-start: 28px; } .label_input__wrapper { @@ -89,7 +89,7 @@ code { label.checkbox { position: absolute; top: 2px; - left: 0; + inset-inline-start: 0; } label a { @@ -159,7 +159,7 @@ code { li { list-style: disc; - margin-left: 18px; + margin-inline-start: 18px; } } @@ -225,7 +225,7 @@ code { &.select .hint { margin-top: 6px; - margin-left: 150px; + margin-inline-start: 150px; } } @@ -380,13 +380,13 @@ code { width: auto; position: relative; padding-top: 5px; - padding-left: 25px; + padding-inline-start: 25px; flex: 1 1 auto; } input[type='checkbox'] { position: absolute; - left: 0; + inset-inline-start: 0; top: 5px; margin: 0; } @@ -517,10 +517,10 @@ code { font-weight: 500; outline: 0; margin-bottom: 10px; - margin-right: 10px; + margin-inline-end: 10px; &:last-child { - margin-right: 0; + margin-inline-end: 0; } &:active, @@ -572,8 +572,8 @@ code { no-repeat right 8px center / auto 16px; border: 1px solid darken($ui-base-color, 14%); border-radius: 4px; - padding-left: 10px; - padding-right: 30px; + padding-inline-start: 10px; + padding-inline-end: 30px; height: 41px; } @@ -588,7 +588,7 @@ code { &__append { position: absolute; - right: 3px; + inset-inline-end: 3px; top: 1px; padding: 10px; padding-bottom: 9px; @@ -606,7 +606,7 @@ code { display: block; position: absolute; top: 0; - right: 0; + inset-inline-end: 0; bottom: 1px; width: 5px; background-image: linear-gradient( @@ -780,7 +780,7 @@ code { li { display: inline-block; - margin-right: 10px; + margin-inline-end: 10px; } a { @@ -939,7 +939,7 @@ code { .actions { padding: 30px 0; - padding-right: 20px; + padding-inline-end: 20px; flex: 0 0 auto; } } @@ -992,7 +992,7 @@ code { border-radius: 4px; display: flex; align-items: center; - padding-right: 4px; + padding-inline-end: 4px; position: relative; top: 1px; transition: border-color 300ms linear; diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss index 6170877b22..29b1f162b4 100644 --- a/app/javascript/styles/mastodon/modal.scss +++ b/app/javascript/styles/mastodon/modal.scss @@ -25,7 +25,7 @@ height: 100%; position: absolute; bottom: 0; - left: 0; + inset-inline-start: 0; } } } diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index b30932e04c..bdb87d7cfa 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -269,7 +269,7 @@ border: 1px solid darken($simple-background-color, 14%); border-radius: 4px; padding: 6px 10px; - padding-right: 30px; + padding-inline-end: 30px; } .icon-button.disabled { diff --git a/app/javascript/styles/mastodon/rich_text.scss b/app/javascript/styles/mastodon/rich_text.scss index 35901984b4..aa41e4ad32 100644 --- a/app/javascript/styles/mastodon/rich_text.scss +++ b/app/javascript/styles/mastodon/rich_text.scss @@ -13,8 +13,8 @@ } blockquote { - padding-left: 10px; - border-left: 3px solid $darker-text-color; + padding-inline-start: 10px; + border-inset-inline-start: 3px solid $darker-text-color; color: $darker-text-color; white-space: normal; @@ -40,7 +40,7 @@ ul, ol { - margin-left: 2em; + margin-inline-start: 2em; p { margin: 0; diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss index e60087dab0..726135c58f 100644 --- a/app/javascript/styles/mastodon/rtl.scss +++ b/app/javascript/styles/mastodon/rtl.scss @@ -1,273 +1,30 @@ body.rtl { direction: rtl; - .column-header > button { - text-align: right; - padding-left: 0; - padding-right: 15px; - } - - .radio-button__input { - margin-right: 0; - margin-left: 10px; - } - - .display-name, - .announcements__item { - text-align: right; - } - - .announcements__item__range { - padding-right: 0; - padding-left: 18px; - } - .reactions-bar { - margin-left: auto; - margin-right: -2px; direction: rtl; } - .reactions-bar__item__count { - margin-left: 0; - margin-right: 6px; - } - - .announcements__pagination { - right: auto; - left: 0; - } - - .notification__message { - margin-left: 0; - margin-right: 68px; - } - .announcements__mastodon, .drawer__inner__mastodon > img { transform: scaleX(-1); } - .notification__favourite-icon-wrapper { - left: auto; - right: -26px; - } - - .column-link__icon, - .column-header__icon { - margin-right: 0; - margin-left: 5px; - } - - .compose-form .compose-form__buttons-wrapper .character-counter__wrapper { - margin-right: 0; - margin-left: 4px; - } - - .navigation-bar__profile { - margin-left: 0; - margin-right: 8px; - } - - .search__input { + .compose-form .autosuggest-textarea__textarea { padding-right: 10px; - padding-left: 30px; - } - - .search__icon .fa { - right: auto; - left: 10px; + padding-left: 10px + 22px; } .columns-area { direction: rtl; } - .column-header__buttons { - left: 0; - right: auto; - margin-left: 0; - margin-right: -15px; - } - - .column-inline-form .icon-button { - margin-left: 0; - margin-right: 5px; - } - - .column-header__links .text-btn { - margin-left: 10px; - margin-right: 0; - } - - .account__avatar-wrapper { - float: right; - } - - .column-header__back-button { - padding-left: 5px; - padding-right: 0; - } - - .column-header__setting-arrows { - float: left; - - .column-header__setting-btn { - &:first-child { - padding-left: 7px; - padding-right: 5px; - } - - &:last-child { - padding-right: 7px; - padding-left: 5px; - margin-right: 5px; - margin-left: 0; - } - } - } - - .setting-toggle__label { - margin-left: 0; - margin-right: 8px; - } - - .account__header__tabs__buttons > .icon-button { - margin-right: 0; - margin-left: 8px; - } - - .account__avatar-overlay-overlay { - right: auto; - left: 0; - } - - .column-back-button--slim-button { - right: auto; - left: 0; - } - - .status__action-bar { - &__counter { - margin-right: 0; - margin-left: 11px; - - .status__action-bar-button { - margin-right: 0; - margin-left: 4px; - } - } - } - - .privacy-dropdown__dropdown { - margin-left: 0; - margin-right: 40px; - } - - .privacy-dropdown__option__icon { - margin-left: 10px; - margin-right: 0; - } - - .picture-in-picture__header__account .display-name, - .detailed-status__display-name .display-name { - text-align: right; - } - - .detailed-status__display-avatar { - margin-right: 0; - margin-left: 10px; - } - - .picture-in-picture__header__account .account__avatar { - margin-right: 0; - margin-left: 10px; - } - - .icon-button__counter { - margin-left: 0; - margin-right: 4px; - } - - .notifications-permission-banner__close { - right: auto; - left: 10px; - } - - .detailed-status__favorites, - .detailed-status__reblogs { - margin-left: 0; - margin-right: 6px; - } - - .fa-ul { - margin-left: 2.14285714em; - } - - .fa-li { - left: auto; - right: -2.14285714em; - } - .admin-wrapper { direction: rtl; } - .admin-wrapper .sidebar ul a i.fa, - a.table-action-link i.fa { - margin-right: 0; - margin-left: 5px; - } - - .simple_form .check_boxes .checkbox label { - padding-left: 0; - padding-right: 25px; - } - - .simple_form .input.with_label.boolean label.checkbox { - padding-left: 25px; - padding-right: 0; - } - - .simple_form .check_boxes .checkbox input[type='checkbox'], - .simple_form .input.boolean input[type='checkbox'] { - left: auto; - right: 0; - } - - .simple_form .input.radio_buttons .radio { - left: auto; - right: 0; - } - - .simple_form .input.radio_buttons .radio > label { - padding-right: 28px; - padding-left: 0; - } - - .simple_form .input-with-append .input input { - padding-left: 142px; - padding-right: 0; - } - - .simple_form .input.boolean label.checkbox { - left: auto; - right: 0; - } - - .simple_form .input.boolean .label_input, - .simple_form .input.boolean .hint { - padding-left: 0; - padding-right: 28px; - } - .simple_form .label_input__append { - right: auto; - left: 3px; - &::after { - right: auto; - left: 0; background-image: linear-gradient( to left, rgba(darken($ui-base-color, 10%), 0), @@ -282,49 +39,6 @@ body.rtl { no-repeat left 8px center / auto 16px; } - .table th, - .table td { - text-align: right; - } - - .filters .filter-subset { - margin-right: 0; - margin-left: 45px; - } - - @media screen and (min-width: 631px) { - .column, - .drawer { - padding-left: 5px; - padding-right: 5px; - - &:first-child { - padding-left: 5px; - padding-right: 10px; - } - } - - .columns-area > div { - .column, - .drawer { - padding-left: 5px; - padding-right: 5px; - } - } - } - - .columns-area--mobile .column, - .columns-area--mobile .drawer { - padding-left: 0; - padding-right: 0; - } - - .card__bar .display-name { - margin-left: 0; - margin-right: 15px; - text-align: right; - } - .fa-chevron-left::before { content: '\F054'; } @@ -332,19 +46,4 @@ body.rtl { .fa-chevron-right::before { content: '\F053'; } - - .column-back-button__icon { - margin-right: 0; - margin-left: 5px; - } - - .simple_form .input.radio_buttons .radio > label input { - left: auto; - right: 0; - } - - .picture-in-picture { - right: auto; - left: 20px; - } } diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss index a42f1f42c0..6c9ea916a2 100644 --- a/app/javascript/styles/mastodon/statuses.scss +++ b/app/javascript/styles/mastodon/statuses.scss @@ -97,7 +97,7 @@ width: 20px; height: auto; vertical-align: middle; - margin-right: 5px; + margin-inline-end: 5px; fill: $primary-text-color; } @@ -162,7 +162,7 @@ a.button.logo-button { min-height: 48px + 2px; &__avatar { - left: 15px; + inset-inline-start: 15px; top: 17px; .account__avatar { @@ -176,12 +176,12 @@ a.button.logo-button { } &__prepend { - margin-left: 48px + 15px * 2; + margin-inline-start: 48px + 15px * 2; padding-top: 15px; } &__prepend-icon-wrapper { - left: -32px; + inset-inline-start: -32px; } .media-gallery, diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index b644b38f15..fb1ff0781d 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -10,7 +10,7 @@ line-height: 18px; vertical-align: top; border-top: 1px solid $ui-base-color; - text-align: left; + text-align: start; background: darken($ui-base-color, 4%); } @@ -91,12 +91,12 @@ &:first-child { border-radius: 4px 0 0; - border-left: 1px solid darken($ui-base-color, 8%); + border-inset-inline-start: 1px solid darken($ui-base-color, 8%); } &:last-child { border-radius: 0 4px 0 0; - border-right: 1px solid darken($ui-base-color, 8%); + border-inset-inline-end: 1px solid darken($ui-base-color, 8%); } } } @@ -125,7 +125,7 @@ button.table-action-link, a.table-action-link { text-decoration: none; display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; padding: 0 10px; color: $darker-text-color; font-weight: 500; @@ -136,11 +136,11 @@ a.table-action-link { i.fa { font-weight: 400; - margin-right: 5px; + margin-inline-end: 5px; } &:first-child { - padding-left: 0; + padding-inline-start: 0; } } @@ -172,7 +172,7 @@ a.table-action-link { &__actions, &__content { padding: 8px 0; - padding-right: 16px; + padding-inline-end: 16px; flex: 1 1 auto; } } @@ -188,8 +188,8 @@ a.table-action-link { align-items: center; &__actions { - text-align: right; - padding-right: 16px - 5px; + text-align: end; + padding-inline-end: 16px - 5px; } } @@ -296,7 +296,7 @@ a.table-action-link { display: flex; justify-content: center; align-items: center; - margin-right: 10px; + margin-inline-end: 10px; .emojione { width: 32px; @@ -315,7 +315,7 @@ a.table-action-link { &__extra { flex: 0 0 auto; - text-align: right; + text-align: end; color: $darker-text-color; font-weight: 500; } diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index ef7bfc6de4..1f69f0cf01 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -39,8 +39,8 @@ width: 20px; height: 20px; margin: -3px 0 0; - margin-left: 0.075em; - margin-right: 0.075em; + margin-inline-start: 0.075em; + margin-inline-end: 0.075em; } p { @@ -171,7 +171,7 @@ margin-bottom: 15px; .fa { - margin-right: 5px; + margin-inline-end: 5px; color: $darker-text-color; } } @@ -284,7 +284,7 @@ } .trends__item__current { - padding-right: 0; + padding-inline-end: 0; } } } @@ -309,7 +309,7 @@ padding: 10px; &:first-child { - text-align: left; + text-align: start; } } @@ -340,9 +340,9 @@ tbody td.accounts-table__extra { width: 120px; - text-align: right; + text-align: end; color: $darker-text-color; - padding-right: 16px; + padding-inline-end: 16px; a { text-decoration: none; @@ -363,7 +363,7 @@ tbody td.accounts-table__interrelationships { width: 21px; - padding-right: 16px; + padding-inline-end: 16px; } .fa { From cf12621e3751117f411890382fe599514e2863e1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 27 Mar 2023 13:01:47 +0200 Subject: [PATCH 0759/1220] New Crowdin updates (#24130) Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/be.json | 2 +- app/javascript/mastodon/locales/et.json | 2 +- app/javascript/mastodon/locales/fi.json | 84 +-- app/javascript/mastodon/locales/he.json | 6 +- app/javascript/mastodon/locales/hu.json | 278 ++++---- app/javascript/mastodon/locales/ko.json | 2 +- app/javascript/mastodon/locales/mr.json | 2 +- app/javascript/mastodon/locales/my.json | 10 +- app/javascript/mastodon/locales/ru.json | 2 +- app/javascript/mastodon/locales/sk.json | 2 +- app/javascript/mastodon/locales/sr-Latn.json | 2 +- app/javascript/mastodon/locales/sr.json | 18 +- app/javascript/mastodon/locales/th.json | 4 +- app/javascript/mastodon/locales/vi.json | 2 +- config/locales/activerecord.fi.yml | 4 +- config/locales/an.yml | 1 - config/locales/ar.yml | 1 - config/locales/ast.yml | 1 - config/locales/be.yml | 10 +- config/locales/bg.yml | 9 +- config/locales/br.yml | 1 - config/locales/ca.yml | 9 +- config/locales/ckb.yml | 1 - config/locales/co.yml | 1 - config/locales/cs.yml | 1 - config/locales/cy.yml | 9 +- config/locales/da.yml | 9 +- config/locales/de.yml | 8 +- config/locales/devise.fi.yml | 38 +- config/locales/devise.hu.yml | 104 +-- config/locales/devise.zh-TW.yml | 6 +- config/locales/doorkeeper.fi.yml | 22 +- config/locales/doorkeeper.gl.yml | 6 +- config/locales/doorkeeper.ko.yml | 16 +- config/locales/doorkeeper.th.yml | 2 +- config/locales/el.yml | 661 +++++++++++++------ config/locales/en-GB.yml | 120 +++- config/locales/eo.yml | 1 - config/locales/es-AR.yml | 9 +- config/locales/es-MX.yml | 9 +- config/locales/es.yml | 8 +- config/locales/et.yml | 11 +- config/locales/eu.yml | 9 +- config/locales/fa.yml | 1 - config/locales/fi.yml | 27 +- config/locales/fo.yml | 11 +- config/locales/fr-QC.yml | 1 - config/locales/fr.yml | 7 + config/locales/fy.yml | 9 +- config/locales/gd.yml | 5 +- config/locales/gl.yml | 13 +- config/locales/he.yml | 9 +- config/locales/hi.yml | 9 + config/locales/hu.yml | 9 +- config/locales/hy.yml | 1 - config/locales/id.yml | 1 - config/locales/io.yml | 1 - config/locales/is.yml | 9 +- config/locales/it.yml | 9 +- config/locales/ja.yml | 9 +- config/locales/kk.yml | 1 - config/locales/ko.yml | 27 +- config/locales/ku.yml | 1 - config/locales/lt.yml | 1 - config/locales/lv.yml | 9 +- config/locales/my.yml | 360 +++++++++- config/locales/nl.yml | 9 +- config/locales/nn.yml | 1 - config/locales/no.yml | 1 - config/locales/oc.yml | 1 - config/locales/pl.yml | 7 + config/locales/pt-BR.yml | 20 +- config/locales/pt-PT.yml | 9 +- config/locales/ro.yml | 1 - config/locales/ru.yml | 2 +- config/locales/sc.yml | 1 - config/locales/sco.yml | 1 - config/locales/si.yml | 1 - config/locales/simple_form.fi.yml | 4 +- config/locales/simple_form.my.yml | 51 +- config/locales/simple_form.pt-BR.yml | 2 + config/locales/simple_form.th.yml | 2 +- config/locales/simple_form.zh-TW.yml | 4 +- config/locales/sk.yml | 13 +- config/locales/sl.yml | 9 +- config/locales/sq.yml | 9 +- config/locales/sr-Latn.yml | 8 +- config/locales/sr.yml | 9 +- config/locales/sv.yml | 8 +- config/locales/th.yml | 9 +- config/locales/tr.yml | 9 +- config/locales/uk.yml | 9 +- config/locales/vi.yml | 7 + config/locales/zh-CN.yml | 9 +- config/locales/zh-HK.yml | 1 - config/locales/zh-TW.yml | 15 +- 96 files changed, 1667 insertions(+), 598 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 05c328f6af..ad049dd25f 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -163,7 +163,7 @@ "confirmations.domain_block.confirm": "Заблакіраваць дамен цалкам", "confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.", "confirmations.edit.confirm": "Рэдагаваць", - "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", "confirmations.logout.confirm": "Выйсці", "confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?", "confirmations.mute.confirm": "Ігнараваць", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 9b8c83563c..845ac3a086 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -491,7 +491,7 @@ "report.category.title_status": "postitusega", "report.close": "Valmis", "report.comment.title": "Kas arvad, et on veel midagi, mida me peaks teadma?", - "report.forward": "Edasta kasutajale {target}", + "report.forward": "Edasta ka {target} domeeni", "report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?", "report.mute": "Vaigista", "report.mute_explanation": "Sa ei näe tema postitusi. Ta võib ikka sind jälgida ja su postitusi näha. Ta ei saa teada, et ta on vaigistatud.", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 8cff515bde..f8c61c1e5b 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,6 +1,6 @@ { "about.blocks": "Moderoidut palvelimet", - "about.contact": "Yhteystiedot:", + "about.contact": "Ota yhteyttä:", "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu", "about.domain_blocks.preamble": "Yleisesti Mastodonin avulla voidaan tarkastella minkä tahansa muun fediverse-palvelinten sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.", @@ -9,7 +9,7 @@ "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", "about.domain_blocks.suspended.title": "Jäädytetty", "about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.", - "about.powered_by": "Hajautettu sosiaalinen media, tarjoaa {mastodon}", + "about.powered_by": "Hajautetun sosiaalisen median tarjoaa {mastodon}", "about.rules": "Palvelimen säännöt", "account.account_note_header": "Muistiinpano", "account.add_or_remove_from_list": "Lisää tai poista listoilta", @@ -21,8 +21,8 @@ "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", "account.cancel_follow_request": "Peruuta seurantapyyntö", "account.direct": "Yksityisviesti käyttäjälle @{name}", - "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen", - "account.domain_blocked": "Verkko-osoite estetty", + "account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee", + "account.domain_blocked": "Palvelu estetty", "account.edit_profile": "Muokkaa profiilia", "account.enable_notifications": "Ilmoita kun käyttäjä @{name} julkaisee viestin", "account.endorse": "Suosittele profiilissasi", @@ -50,7 +50,7 @@ "account.mute_notifications": "Mykistä käyttäjän @{name} ilmoitukset", "account.muted": "Mykistetty", "account.open_original_page": "Avaa alkuperäinen sivu", - "account.posts": "Viestit", + "account.posts": "Julkaisut", "account.posts_with_replies": "Viestit ja vastaukset", "account.report": "Ilmoita käyttäjästä @{name}", "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla", @@ -58,7 +58,7 @@ "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä tehostukset käyttäjältä @{name}", "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}", - "account.unblock": "Salli @{name}", + "account.unblock": "Poista esto: @{name}", "account.unblock_domain": "Salli palvelu {domain}", "account.unblock_short": "Poista esto", "account.unendorse": "Poista suosittelu profiilistasi", @@ -104,7 +104,7 @@ "column.community": "Paikallinen aikajana", "column.direct": "Yksityisviestit", "column.directory": "Selaa profiileja", - "column.domain_blocks": "Estetytr verkkotunnukset", + "column.domain_blocks": "Estetyt palvelut", "column.favourites": "Suosikit", "column.follow_requests": "Seuraamispyynnöt", "column.home": "Koti", @@ -149,7 +149,7 @@ "compose_form.spoiler.unmarked": "Lisää sisältövaroitus", "compose_form.spoiler_placeholder": "Kirjoita varoituksesi tähän", "confirmation_modal.cancel": "Peruuta", - "confirmations.block.block_and_report": "Estä ja raportoi", + "confirmations.block.block_and_report": "Estä ja ilmianna", "confirmations.block.confirm": "Estä", "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?", "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", @@ -163,7 +163,7 @@ "confirmations.domain_block.confirm": "Estä koko palvelu", "confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.", "confirmations.edit.confirm": "Muokkaa", - "confirmations.edit.message": "Tässä tilanteessa muokkaus korvaa tällä hetkellä työstämäsi viestin. Haluatko varmasti jatkaa?", + "confirmations.edit.message": "Muokkaaminen nyt korvaa viestin, jota paraikaa työstät. Haluatko varmasti jatkaa?", "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", @@ -210,15 +210,15 @@ "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", - "empty_column.account_suspended": "Tilin käyttäminen jäädytetty", + "empty_column.account_suspended": "Tili jäädytetty", "empty_column.account_timeline": "Ei viestejä täällä.", "empty_column.account_unavailable": "Profiilia ei löydy", - "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.", + "empty_column.blocks": "Et ole estänyt käyttäjiä.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.", "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.", - "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!", + "empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!", "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 aihetunnisteita.", @@ -230,8 +230,8 @@ "empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", - "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ihmiset ovat vuorovaikutuksessa kanssasi, näet sen täällä.", - "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai manuaalisesti seuraa muiden palvelimien käyttäjiä niin saat sisältöä", + "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.", + "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä", "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.", "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.", "error.unexpected_crash.next_steps": "Kokeile sivun päivitystä. Jos se ei auta, voi Mastodonin käyttö silti olla mahdollista eri selaimella tai natiivilla sovelluksella.", @@ -242,7 +242,7 @@ "explore.suggested_follows": "Sinulle", "explore.title": "Selaa", "explore.trending_links": "Uutiset", - "explore.trending_statuses": "Viestit", + "explore.trending_statuses": "Julkaisut", "explore.trending_tags": "Aihetunnisteet", "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet käyttänyt tätä viestiä. Jos haluat, että viesti suodatetaan myös tässä yhteydessä, sinun on muokattava suodatinta.", "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!", @@ -265,7 +265,7 @@ "follow_recommendations.lead": "Seuraamiesi julkaisut näkyvät aikajärjestyksessä kotisyötteessä. Älä pelkää seurata vahingossa, voit lopettaa seuraamisen yhtä helposti!", "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", - "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelun {domain} ylläpito on arvioinut, että voi olla halukas tarkistamaan nämä seurauspyynnöt erikseen.", + "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, on palvelun {domain} ylläpito arvioinut, että saatat olla halukas tarkistamaan nämä seurauspyynnöt erikseen.", "followed_tags": "Seuratut aihetunnisteet", "footer.about": "Tietoja", "footer.directory": "Profiilihakemisto", @@ -316,7 +316,7 @@ "keyboard_shortcuts.description": "Kuvaus", "keyboard_shortcuts.direct": "avataksesi yksityisviestisarakkeen", "keyboard_shortcuts.down": "Siirry listassa alaspäin", - "keyboard_shortcuts.enter": "Avaa viesti", + "keyboard_shortcuts.enter": "Avaa julkaisu", "keyboard_shortcuts.favourite": "Lisää suosikkeihin", "keyboard_shortcuts.favourites": "Avaa lista suosikeista", "keyboard_shortcuts.federated": "Avaa yleinen aikajana", @@ -328,7 +328,7 @@ "keyboard_shortcuts.mention": "Mainitse julkaisija", "keyboard_shortcuts.muted": "Avaa lista mykistetyistä käyttäjistä", "keyboard_shortcuts.my_profile": "Avaa profiilisi", - "keyboard_shortcuts.notifications": "Avaa ilmoitukset-sarake", + "keyboard_shortcuts.notifications": "Avaa ilmoitukset-valikko", "keyboard_shortcuts.open_media": "Avaa media", "keyboard_shortcuts.pinned": "Avaa lista kiinnitetyistä viesteistä", "keyboard_shortcuts.profile": "Avaa kirjoittajan profiili", @@ -336,10 +336,10 @@ "keyboard_shortcuts.requests": "Avaa lista seurauspyynnöistä", "keyboard_shortcuts.search": "siirry hakukenttään", "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä", - "keyboard_shortcuts.start": "avaa \"Aloitus\"-sarake", + "keyboard_shortcuts.start": "avaa \"Aloitus\"", "keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti", "keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media", - "keyboard_shortcuts.toot": "Aloita uusi viesti", + "keyboard_shortcuts.toot": "Luo uusi julkaisu", "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä", "keyboard_shortcuts.up": "Siirry listassa ylöspäin", "lightbox.close": "Sulje", @@ -375,7 +375,7 @@ "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", - "navigation_bar.compose": "Luo uusi viesti", + "navigation_bar.compose": "Julkaise", "navigation_bar.direct": "Yksityisviestit", "navigation_bar.discover": "Löydä uutta", "navigation_bar.domain_blocks": "Estetyt palvelut", @@ -395,10 +395,10 @@ "navigation_bar.public_timeline": "Yleinen aikajana", "navigation_bar.search": "Haku", "navigation_bar.security": "Turvallisuus", - "not_signed_in_indicator.not_signed_in": "Sinun täytyy kirjautua sisään päästäksesi käsiksi tähän resurssiin.", - "notification.admin.report": "{name} ilmoitti {target}", + "not_signed_in_indicator.not_signed_in": "Sinun tulee kirjautua sisään nähdäksesi tämän.", + "notification.admin.report": "{name} teki ilmoituksen käytäjästä {target}", "notification.admin.sign_up": "{name} rekisteröityi", - "notification.favourite": "{name} tykkäsi viestistäsi", + "notification.favourite": "{name} tykkäsi julkaisustasi", "notification.follow": "{name} seurasi sinua", "notification.follow_request": "{name} haluaa seurata sinua", "notification.mention": "{name} mainitsi sinut", @@ -409,7 +409,7 @@ "notification.update": "{name} muokkasi viestiä", "notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", - "notifications.column_settings.admin.report": "Uudet raportit:", + "notifications.column_settings.admin.report": "Uudet ilmoitukset:", "notifications.column_settings.admin.sign_up": "Uudet kirjautumiset:", "notifications.column_settings.alert": "Työpöytäilmoitukset", "notifications.column_settings.favourite": "Tykkäykset:", @@ -424,7 +424,7 @@ "notifications.column_settings.reblog": "Tehostukset:", "notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.sound": "Äänimerkki", - "notifications.column_settings.status": "Uudet viestit:", + "notifications.column_settings.status": "Uudet julkaisut:", "notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset", "notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset", "notifications.column_settings.update": "Muokkaukset:", @@ -474,32 +474,32 @@ "relative_time.full.just_now": "juuri nyt", "relative_time.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} sitten", "relative_time.full.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} sitten", - "relative_time.hours": "{number} tuntia", + "relative_time.hours": "{number} t", "relative_time.just_now": "nyt", "relative_time.minutes": "{number} min", - "relative_time.seconds": "{number} sek", + "relative_time.seconds": "{number} s", "relative_time.today": "tänään", "reply_indicator.cancel": "Peruuta", "report.block": "Estä", - "report.block_explanation": "Et näe heidän viestejään, eivätkä he voi nähdä viestejäsi tai seurata sinua. He näkevät, että heidät on estetty.", - "report.categories.other": "Muu", + "report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkevät, että olet estänyt hänet.", + "report.categories.other": "muu", "report.categories.spam": "Roskaposti", "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä", - "report.category.subtitle": "Valitse paras vastaavuus", - "report.category.title": "Kerro meille miksi tämä {type} pitää raportoida", + "report.category.subtitle": "Valitse se, mikä sopii parhaiten", + "report.category.title": "Kerro meille, miksi ilmiannat tämän: {type} ", "report.category.title_account": "profiili", - "report.category.title_status": "viesti", + "report.category.title_status": "julkaisu", "report.close": "Valmis", - "report.comment.title": "Pitäisikö meidän tietää jotain muuta?", + "report.comment.title": "Olisiko jotain muuta, mitä meidän pitäisi tietää?", "report.forward": "Välitä kohteeseen {target}", "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?", "report.mute": "Mykistä", - "report.mute_explanation": "Et näe heidän viestejään. He voivat silti seurata sinua ja nähdä viestisi eivätkä tiedä, että heidät on mykistetty.", + "report.mute_explanation": "Et näe hänen viestejään. Hän voi silti seurata sinua ja nähdä viestisi. Hän ei tiedä, että on mykistetty.", "report.next": "Seuraava", "report.placeholder": "Lisäkommentit", "report.reasons.dislike": "En pidä siitä", "report.reasons.dislike_description": "Et halua nähdä sitä", - "report.reasons.other": "Se on jotain muuta", + "report.reasons.other": "Jotain muuta", "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin", "report.reasons.spam": "Se on roskapostia", "report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset", @@ -507,27 +507,27 @@ "report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntöjä", "report.rules.subtitle": "Valitse kaikki jotka sopivat", "report.rules.title": "Mitä sääntöjä rikotaan?", - "report.statuses.subtitle": "Valitse kaikki jotka sopivat", + "report.statuses.subtitle": "Valitse kaikki sopivat", "report.statuses.title": "Onko olemassa yhtään viestiä, jotka tukevat tätä raporttia?", "report.submit": "Lähetä", "report.target": "Raportoidaan {target}", "report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:", "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:", "report.thanks.title": "Etkö halua nähdä tätä?", - "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.", + "report.thanks.title_actionable": "Kiitos ilmoituksesta, tarkistamme asian.", "report.unfollow": "Lopeta käyttäjän @{name} seuraaminen", "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näe tilin viestejä, lopeta tilin seuraaminen.", "report_notification.attached_statuses": "{count, plural, one {{count} viesti} other {{count} viestiä}} liitteenä", "report_notification.categories.other": "Muu", "report_notification.categories.spam": "Roskaposti", "report_notification.categories.violation": "Sääntöjen rikkominen", - "report_notification.open": "Avaa raportti", + "report_notification.open": "Avaa ilmoitus", "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, tehostanut 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": "viesti", + "search_popout.tips.status": "julkaisu", "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", @@ -576,7 +576,7 @@ "status.mute_conversation": "Mykistä keskustelu", "status.open": "Laajenna julkaisu", "status.pin": "Kiinnitä profiiliin", - "status.pinned": "Kiinnitetty viesti", + "status.pinned": "Kiinnitetty julkaisu", "status.read_more": "Näytä enemmän", "status.reblog": "Tehosta", "status.reblog_private": "Tehosta alkuperäiselle yleisölle", @@ -597,7 +597,7 @@ "status.show_more_all": "Näytä lisää kaikista", "status.show_original": "Näytä alkuperäinen", "status.translate": "Käännä", - "status.translated_from_with": "Käännetty kielestä {lang} käyttäen palvelua {provider}", + "status.translated_from_with": "Käännetty kielestä {lang} käyttäen {provider}", "status.uncached_media_warning": "Ei saatavilla", "status.unmute_conversation": "Poista keskustelun mykistys", "status.unpin": "Irrota profiilista", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index f5e6230b87..b8aced8fb9 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -153,7 +153,7 @@ "confirmations.block.confirm": "לחסום", "confirmations.block.message": "האם את/ה בטוח/ה שברצונך למחוק את \"{name}\"?", "confirmations.cancel_follow_request.confirm": "ויתור על בקשה", - "confirmations.cancel_follow_request.message": "האם באמת לוותר על בקשת המעקב אחרי {name}?", + "confirmations.cancel_follow_request.message": "לבטל את בקשת המעקב אחרי {name}?", "confirmations.delete.confirm": "למחוק", "confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?", "confirmations.delete_list.confirm": "למחוק", @@ -163,7 +163,7 @@ "confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)", "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו", "confirmations.edit.confirm": "עריכה", - "confirmations.edit.message": "עריכת תגובה קודמת תדרוס את ההודעה שכבר התחלת לכתוב. האם את.ה בטוח.ה שברצונך להמשיך?", + "confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?", "confirmations.logout.confirm": "התנתקות", "confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?", "confirmations.mute.confirm": "להשתיק", @@ -172,7 +172,7 @@ "confirmations.redraft.confirm": "מחיקה ועריכה מחדש", "confirmations.redraft.message": "בטוחה שאת רוצה למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.", "confirmations.reply.confirm": "תגובה", - "confirmations.reply.message": "תגובה עכשיו תדרוס את ההודעה שכבר התחלתים לכתוב. האם אתם בטוחים שברצונכם להמשיך?", + "confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?", "confirmations.unfollow.confirm": "הפסקת מעקב", "confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?", "conversation.delete": "מחיקת שיחה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 4447aa2d19..eaffa89e44 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -34,7 +34,7 @@ "account.followers.empty": "Ezt a felhasználót még senki sem követi.", "account.followers_counter": "{count, plural, one {{counter} Követő} other {{counter} Követő}}", "account.following": "Követve", - "account.following_counter": "{count, plural, one {{counter} Követett} other {{counter} Követett}}", + "account.following_counter": "{count, plural, one {{counter} követett} other {{counter} követett}}", "account.follows.empty": "Ez a felhasználó még senkit sem követ.", "account.follows_you": "Követ téged", "account.go_to_profile": "Ugrás a profilhoz", @@ -53,8 +53,8 @@ "account.posts": "Bejegyzések", "account.posts_with_replies": "Bejegyzések és válaszok", "account.report": "@{name} jelentése", - "account.requested": "Jóváhagysára vár. Kattints a követési kérés visszavonásához", - "account.requested_follow": "{name} kérte, hogy követhessen téged", + "account.requested": "Jóváhagysára vár. Kattintás a követési kérés törléséhez", + "account.requested_follow": "{name} kérte, hogy követhessen", "account.share": "@{name} profiljának megosztása", "account.show_reblogs": "@{name} megtolásainak mutatása", "account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}", @@ -66,7 +66,7 @@ "account.unmute": "@{name} némításának feloldása", "account.unmute_notifications": "@{name} némított értesítéseinek feloldása", "account.unmute_short": "Némitás feloldása", - "account_note.placeholder": "Kattints jegyzet hozzáadásához", + "account_note.placeholder": "Kattintás jegyzet hozzáadásához", "admin.dashboard.daily_retention": "Napi regisztráció utáni felhasználómegtartási arány", "admin.dashboard.monthly_retention": "Havi regisztráció utáni felhasználómegtartási arány", "admin.dashboard.retention.average": "Átlag", @@ -96,7 +96,7 @@ "closed_registrations.other_server_instructions": "Mivel a Mastdon decentralizált, létrehozhatsz egy fiókot egy másik kiszolgálón és mégis kapcsolódhatsz ehhez.", "closed_registrations_modal.description": "Fiók létrehozása a {domain} kiszolgálón jelenleg nem lehetséges, de jó, ha tudod, hogy nem szükséges fiókkal rendelkezni pont a {domain} kiszolgálón, hogy használhasd a Mastodont.", "closed_registrations_modal.find_another_server": "Másik kiszolgáló keresése", - "closed_registrations_modal.preamble": "A Mastodon decentralizált, így teljesen mindegy, hol hozod létre a fiókodat, követhetsz és kapcsolódhatsz bárkivel ezen a kiszolgálón is. Saját magad is üzemeltethetsz kiszolgálót!", + "closed_registrations_modal.preamble": "A Mastodon nem központosított, így teljesen mindegy, hol történik a fiók létrehozása, követhető bárki és kapcsolatba lehet lépni bárkivel ezen a kiszolgálón is. Saját magunk is üzemeltethetünk kiszolgálót!", "closed_registrations_modal.title": "Regisztráció a Mastodonra", "column.about": "Névjegy", "column.blocks": "Letiltott felhasználók", @@ -131,7 +131,7 @@ "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?", + "compose_form.placeholder": "Mire gondolunk éppen?", "compose_form.poll.add_option": "Lehetőség hozzáadása", "compose_form.poll.duration": "Szavazás időtartama", "compose_form.poll.option_placeholder": "{number}. lehetőség", @@ -145,25 +145,25 @@ "compose_form.sensitive.hide": "{count, plural, one {Média kényesnek jelölése} other {Média kényesnek jelölése}}", "compose_form.sensitive.marked": "{count, plural, one {A médiát kényesnek jelölték} other {A médiát kényesnek jelölték}}", "compose_form.sensitive.unmarked": "{count, plural, one {A médiát nem jelölték kényesnek} other {A médiát nem jelölték kényesnek}}", - "compose_form.spoiler.marked": "Tartalmi figyelmeztetés törlése", + "compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása", "compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása", - "compose_form.spoiler_placeholder": "Írd ide a figyelmeztetést", - "confirmation_modal.cancel": "Mégse", + "compose_form.spoiler_placeholder": "A figyelmeztetés beírása ide", + "confirmation_modal.cancel": "Mégsem", "confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.confirm": "Letiltás", "confirmations.block.message": "Biztos, hogy letiltod: {name}?", "confirmations.cancel_follow_request.confirm": "Kérés visszavonása", - "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?", + "confirmations.cancel_follow_request.message": "Biztosan visszavonásra kerüljön {name} felhasználóra vonatkozó követési kérés?", "confirmations.delete.confirm": "Törlés", "confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a bejegyzést?", "confirmations.delete_list.confirm": "Törlés", "confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?", "confirmations.discard_edit_media.confirm": "Elvetés", - "confirmations.discard_edit_media.message": "Elmentetlen változtatásaid vannak a média leírásában vagy előnézetében. Eldobjuk őket?", - "confirmations.domain_block.confirm": "Teljes domain elrejtése", + "confirmations.discard_edit_media.message": "Elmentetlen változtatások vannak a média leírásában vagy előnézetében. Elvetésre kerüljenek?", + "confirmations.domain_block.confirm": "Teljes tartomány tiltása", "confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.", "confirmations.edit.confirm": "Szerkesztés", - "confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?", + "confirmations.edit.message": "A szerkesztés felülírja a most összeállítás alatt álló üzenetet. Folytatás?", "confirmations.logout.confirm": "Kijelentkezés", "confirmations.logout.message": "Biztos, hogy kijelentkezel?", "confirmations.mute.confirm": "Némítás", @@ -178,21 +178,21 @@ "conversation.delete": "Beszélgetés törlése", "conversation.mark_as_read": "Megjelölés olvasottként", "conversation.open": "Beszélgetés megtekintése", - "conversation.with": "{names}-el/al", + "conversation.with": "{names} is", "copypaste.copied": "Másolva", "copypaste.copy": "Másolás", "directory.federated": "Az ismert fediverzumból", - "directory.local": "Csak innen: {domain}", + "directory.local": "Csak {domain} tartományból", "directory.new_arrivals": "Új csatlakozók", "directory.recently_active": "Nemrég aktív", "disabled_account_banner.account_settings": "Fiókbeállítások", - "disabled_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva.", - "dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket a(z) {domain} kiszolgáló fiókjait használó emberek tették közzé.", - "dismissable_banner.dismiss": "Eltüntetés", - "dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek.", - "dismissable_banner.explore_statuses": "Jelenleg ezek a bejegyzések hódítanak teret ezen és a decentralizált hálózat egyéb kiszolgálóin.", - "dismissable_banner.explore_tags": "Jelenleg ezek a hashtagek hódítanak teret ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek körében.", - "dismissable_banner.public_timeline": "Ezek a legfrissebb bejegyzések azoktól, akik a decentralizált hálózat más kiszolgálóin vannak, és ez a kiszolgáló tud róluk.", + "disabled_account_banner.text": "{disabledAccount} fiók jelenleg letilzásra került.", + "dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket {domain} tartományban levő kiszolgáló fiókjait használó emberek tettek közzé.", + "dismissable_banner.dismiss": "Elvetés", + "dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a központosítás nélküli hálózat többi kiszolgálóján lévő emberek.", + "dismissable_banner.explore_statuses": "Jelenleg ezek a bejegyzések hódítanak teret ezen és a központosítás nélküli hálózat egyéb kiszolgálóin.", + "dismissable_banner.explore_tags": "Jelenleg ezek a #címke elemek hódítanak teret ezen és a központosítás nélküli hálózat többi kiszolgálóján lévő emberek körében.", + "dismissable_banner.public_timeline": "Ezek a legfrissebb bejegyzések azoktól, akik a központosítás nélküli hálózat más kiszolgálóin vannak és ez a kiszolgáló tud róluk.", "embed.instructions": "Ágyazd be ezt a bejegyzést a weboldaladba az alábbi kód kimásolásával.", "embed.preview": "Így fog kinézni:", "emoji_button.activity": "Tevékenység", @@ -210,67 +210,67 @@ "emoji_button.search_results": "Keresési találatok", "emoji_button.symbols": "Szimbólumok", "emoji_button.travel": "Utazás és Helyek", - "empty_column.account_suspended": "Fiók felfüggesztve", + "empty_column.account_suspended": "A fiók felfüggesztésre került", "empty_column.account_timeline": "Itt nincs bejegyzés!", "empty_column.account_unavailable": "A profil nem érhető el", - "empty_column.blocks": "Még senkit sem tiltottál le.", + "empty_column.blocks": "Még senki sem került letiltásra.", "empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött bejegyzésed sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.", "empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!", - "empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.", - "empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.", + "empty_column.direct": "Még nincs egy közvetlen üzenet sem. Küldéskor vagy fogadáskor itt fog megjelenni.", + "empty_column.domain_blocks": "Még nem lett letiltva egyetlen tartomány sem.", "empty_column.explore_statuses": "Jelenleg semmi sem felkapott. Nézz vissza később!", "empty_column.favourited_statuses": "Még nincs egyetlen kedvenc bejegyzésed sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.", "empty_column.favourites": "Még senki sem jelölte ezt a bejegyzést kedvencnek. Ha valaki mégis megteszi, itt fogjuk mutatni.", "empty_column.follow_recommendations": "Úgy tűnik, neked nem tudunk javaslatokat adni. Próbáld a keresést használni olyanok megtalálására, akiket ismerhetsz, vagy fedezd fel a felkapott hastageket.", - "empty_column.follow_requests": "Még nincs egy követési kérésed sem. Ha kapsz egyet, itt fogjuk feltüntetni.", - "empty_column.followed_tags": "Még egy hashtaget sem követtél be. Itt fognak megjelenni, ahogy bekövetsz egyet.", - "empty_column.hashtag": "Jelenleg nem található semmi ezzel a hashtaggel.", - "empty_column.home": "A saját idővonalad üres! Látogasd meg a {public} oldalt vagy használd a keresőt, hogy megismerj másokat.", + "empty_column.follow_requests": "Még nincs egy követési kérés sem. Fogadáskor itt jelenik meg.", + "empty_column.followed_tags": "Még egy #címke sincs követve. Ezek ekkor itt jelennek meg.", + "empty_column.hashtag": "Jelenleg nem található semmi ezzel a #címkével.", + "empty_column.home": "A saját idővonal üres! További emberek követése a kitöltéshez. {suggestions}", "empty_column.home.suggestions": "Nézzünk pár javaslatot", "empty_column.list": "A lista jelenleg üres. Ha a listatagok bejegyzést tesznek közzé, itt fog megjelenni.", - "empty_column.lists": "Még nem hoztál létre listát. Ha csinálsz egyet, itt látszik majd.", - "empty_column.mutes": "Még egy felhasználót sem némítottál le.", - "empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.", - "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.", + "empty_column.lists": "Még nincs egyetlen lista sem. A létrehozáskor itt jelenik meg.", + "empty_column.mutes": "Még nincs egyetlen némított felhasználót sem.", + "empty_column.notifications": "Jelenleg nincsenek értesítések. Más emberekkel kapcsolatba lépés után ez itt lesz látható.", + "empty_column.public": "Jelenleg itt nincs semmi! Írjunk valamit nyilvánosan vagy kövessünk más kiszolgálón levő felhasználókat a megjelenéshez.", "error.unexpected_crash.explanation": "Egy hiba vagy böngésző inkompatibilitás miatt ez az oldal nem jeleníthető meg rendesen.", - "error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző beépülő vagy egy automatikus fordító okozza.", - "error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.", - "error.unexpected_crash.next_steps_addons": "Próbáld letiltani őket és frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.", + "error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző kiegészítő vagy egy automatikus fordító okozza.", + "error.unexpected_crash.next_steps": "Próbáljuk meg frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használható a Mastodon.", + "error.unexpected_crash.next_steps_addons": "Próbáljuk meg letiltani őket és frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy alkalmazáson keresztül még mindig használható a Mastodon.", "errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása", "errors.unexpected_crash.report_issue": "Probléma jelentése", "explore.search_results": "Keresési találatok", - "explore.suggested_follows": "Neked", + "explore.suggested_follows": "Nekem", "explore.title": "Felfedezés", "explore.trending_links": "Hírek", "explore.trending_statuses": "Bejegyzések", - "explore.trending_tags": "Hashtagek", - "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből elérted ezt a bejegyzést. Ha ebben a környezetben is szűrni szeretnéd a bejegyzést, akkor szerkesztened kell a szűrőt.", + "explore.trending_tags": "#Címkék", + "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből ez a bejegyzés elérésre kerül. Ha ebben a környezetben is szűrni szeretnénk a bejegyzést, akkor szerkeszteni kell a szűrőt.", "filter_modal.added.context_mismatch_title": "Környezeti eltérés.", - "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítanod kell az elévülési dátumot.", - "filter_modal.added.expired_title": "Elévült szűrő.", - "filter_modal.added.review_and_configure": "A szűrőkategória felülvizsgálatához és további beállításához ugorjon a {settings_link} oldalra.", + "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítani kell a lejárati dátumot.", + "filter_modal.added.expired_title": "A szűrő lejárt!", + "filter_modal.added.review_and_configure": "A szűrőkategória felülvizsgálatához és további beállításához ugorás {settings_link} oldalra.", "filter_modal.added.review_and_configure_title": "Szűrőbeállítások", "filter_modal.added.settings_link": "beállítások oldal", "filter_modal.added.short_explanation": "A következő bejegyzés hozzá lett adva a következő szűrőkategóriához: {title}.", - "filter_modal.added.title": "Szűrő hozzáadva.", + "filter_modal.added.title": "A szűrő hozzáadásra került.", "filter_modal.select_filter.context_mismatch": "nem érvényes erre a környezetre", - "filter_modal.select_filter.expired": "elévült", + "filter_modal.select_filter.expired": "lejárt", "filter_modal.select_filter.prompt_new": "Új kategória: {name}", "filter_modal.select_filter.search": "Keresés vagy létrehozás", - "filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat", + "filter_modal.select_filter.subtitle": "Létező kategória használata vagy új létrehozása", "filter_modal.select_filter.title": "E bejegyzés szűrése", "filter_modal.title.status": "Egy bejegyzés szűrése", "follow_recommendations.done": "Kész", "follow_recommendations.heading": "Kövesd azokat, akiknek a bejegyzéseit látni szeretnéd! Itt van néhány javaslat.", "follow_recommendations.lead": "Az általad követettek bejegyzései a saját idővonaladon fognak megjelenni időrendi sorrendben. Ne félj attól, hogy hibázol! A követést bármikor, ugyanilyen könnyen visszavonhatod!", - "follow_request.authorize": "Engedélyezés", + "follow_request.authorize": "Hitelesítés", "follow_request.reject": "Elutasítás", "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.", - "followed_tags": "Követett hashtagek", + "followed_tags": "Követett #címkék", "footer.about": "Névjegy", - "footer.directory": "Profilok", - "footer.get_app": "Töltsd le az appot", - "footer.invite": "Mások meghívása", + "footer.directory": "Profiltár", + "footer.get_app": "Alkalmazás beszerzése", + "footer.invite": "Emberek meghívása", "footer.keyboard_shortcuts": "Billentyűparancsok", "footer.privacy_policy": "Adatvédelmi szabályzat", "footer.source_code": "Forráskód megtekintése", @@ -281,11 +281,11 @@ "hashtag.column_header.tag_mode.any": "vagy {additional}", "hashtag.column_header.tag_mode.none": "{additional} nélkül", "hashtag.column_settings.select.no_options_message": "Nincs javaslat", - "hashtag.column_settings.select.placeholder": "Addj meg hashtageket…", + "hashtag.column_settings.select.placeholder": "#Címkék megadása…", "hashtag.column_settings.tag_mode.all": "Mindegyik", "hashtag.column_settings.tag_mode.any": "Bármelyik", "hashtag.column_settings.tag_mode.none": "Egyik sem", - "hashtag.column_settings.tag_toggle": "Új címkék felvétele ehhez az oszlophoz", + "hashtag.column_settings.tag_toggle": "További címkék felvétele ehhez az oszlophoz", "hashtag.follow": "Hashtag követése", "hashtag.unfollow": "Hashtag követésének megszüntetése", "home.column_settings.basic": "Alapvető", @@ -293,14 +293,14 @@ "home.column_settings.show_replies": "Válaszok megjelenítése", "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", - "interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölheted ezt a bejegyzést, tudatva a szerzővel, hogy értékeled és elteszed későbbre.", - "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", - "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.", - "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatsz erre a bejegyzésre.", + "interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölhető ez a bejegyzés, tudatva a szerzővel, hogy értékeljük és eltesszük későbbre.", + "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövethető {name} fiók a bejegyzései megjelenítéséhez a saját hírfolyamban.", + "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolható ez a bejegyzés a saját követőkkel megosztáshoz.", + "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatunk erre a bejegyzésre.", "interaction_modal.on_another_server": "Másik kiszolgálón", "interaction_modal.on_this_server": "Ezen a kiszolgálón", - "interaction_modal.other_server_instructions": "Másold és illeszd be ezt a webcímet a kedvenc Mastodon alkalmazásod vagy a Mastodon-kiszolgálód webes felületének keresőmezőjébe.", - "interaction_modal.preamble": "Mivel a Mastodon decentralizált, használhatod egy másik Mastodon kiszolgálón, vagy kompatibilis szolgáltatáson lévő fiókodat, ha ezen a kiszolgálón nincs fiókod.", + "interaction_modal.other_server_instructions": "Másoljuk és illesszük be ezt a webcímet a kedvenc Mastodon alkalmazásd vagy a Mastodon kiszolgáló webes felületének keresőmezőjébe.", + "interaction_modal.preamble": "Mivel a Mastodon nem központosított, használható egy másik Mastodon kiszolgálón vagy kompatibilis szolgáltatáson lévő fiók, ha ezen a kiszolgálón nincs saját fiók.", "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", "interaction_modal.title.follow": "{name} követése", "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", @@ -308,47 +308,47 @@ "intervals.full.days": "{number, plural, one {# nap} other {# nap}}", "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}", "intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}", - "keyboard_shortcuts.back": "visszafelé navigálás", - "keyboard_shortcuts.blocked": "letiltott felhasználók listájának megnyitása", + "keyboard_shortcuts.back": "Navigálás vissza", + "keyboard_shortcuts.blocked": "Letiltott felhasználók listájának megnyitása", "keyboard_shortcuts.boost": "Bejegyzés megtolása", "keyboard_shortcuts.column": "Fókuszálás egy oszlopra", - "keyboard_shortcuts.compose": "fókuszálás a szerkesztési szövegdobozra", + "keyboard_shortcuts.compose": "Szerkesztési terület fókuszálása", "keyboard_shortcuts.description": "Leírás", "keyboard_shortcuts.direct": "közvetlen üzenetek megnyitása", - "keyboard_shortcuts.down": "lefele navigálás a listában", + "keyboard_shortcuts.down": "Mozgás lefelé a listában", "keyboard_shortcuts.enter": "Bejegyzés megnyitása", "keyboard_shortcuts.favourite": "Bejegyzés kedvencnek jelölése", - "keyboard_shortcuts.favourites": "kedvenc lista megnyitása", + "keyboard_shortcuts.favourites": "Kedvencek lista megnyitása", "keyboard_shortcuts.federated": "föderációs idővonal megnyitása", "keyboard_shortcuts.heading": "Billentyűparancsok", - "keyboard_shortcuts.home": "saját idővonal megnyitása", + "keyboard_shortcuts.home": "Saját idővonal megnyitása", "keyboard_shortcuts.hotkey": "Gyorsbillentyű", "keyboard_shortcuts.legend": "jelmagyarázat megjelenítése", "keyboard_shortcuts.local": "helyi idővonal megnyitása", - "keyboard_shortcuts.mention": "szerző megemlítése", + "keyboard_shortcuts.mention": "Szerző megemlítése", "keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása", - "keyboard_shortcuts.my_profile": "profilod megnyitása", - "keyboard_shortcuts.notifications": "értesítések megnyitása", - "keyboard_shortcuts.open_media": "média megnyitása", + "keyboard_shortcuts.my_profile": "Saját profil megnyitása", + "keyboard_shortcuts.notifications": "Értesítések oszlop megnyitása", + "keyboard_shortcuts.open_media": "Média megnyitása", "keyboard_shortcuts.pinned": "Kitűzött bejegyzések listájának megnyitása", - "keyboard_shortcuts.profile": "szerző profiljának megnyitása", + "keyboard_shortcuts.profile": "Szerző profil megnyitása", "keyboard_shortcuts.reply": "Válasz bejegyzésre", - "keyboard_shortcuts.requests": "követési kérések listájának megnyitása", - "keyboard_shortcuts.search": "fókuszálás a keresőre", + "keyboard_shortcuts.requests": "Követési kérések lista megnyitása", + "keyboard_shortcuts.search": "Keresősáv fókuszálása", "keyboard_shortcuts.spoilers": "Tartalmi figyelmeztetés mező megjelenítése/elrejtése", - "keyboard_shortcuts.start": "\"Első lépések\" megnyitása", - "keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel ellátott szöveg megjelenítése/elrejtése", + "keyboard_shortcuts.start": "\"Első lépések\" oszlop megnyitása", + "keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel mögötti szöveg megjelenítése/elrejtése", "keyboard_shortcuts.toggle_sensitivity": "Média megjelenítése/elrejtése", "keyboard_shortcuts.toot": "Új bejegyzés írása", "keyboard_shortcuts.unfocus": "Szerkesztés/keresés fókuszból való kivétele", - "keyboard_shortcuts.up": "felfelé mozdítás a listában", + "keyboard_shortcuts.up": "Mozgás felfelé a listában", "lightbox.close": "Bezárás", - "lightbox.compress": "Képnézet összecsukása", - "lightbox.expand": "Képnézet kinagyítása", + "lightbox.compress": "Képnéző doboz összezárása", + "lightbox.expand": "Képnéző doboz kinyitása", "lightbox.next": "Következő", "lightbox.previous": "Előző", - "limited_account_hint.action": "Mindenképpen mutassa a profilt", - "limited_account_hint.title": "Ezt a profilt a(z) {domain} moderátorai elrejtették.", + "limited_account_hint.action": "Profil megjelenítése mindenképpen", + "limited_account_hint.title": "Ezt a profilt {domain} moderátorai elrejtették.", "lists.account.add": "Hozzáadás a listához", "lists.account.remove": "Eltávolítás a listából", "lists.delete": "Lista törlése", @@ -359,17 +359,17 @@ "lists.replies_policy.followed": "Bármely követett felhasználó", "lists.replies_policy.list": "A lista tagjai", "lists.replies_policy.none": "Senki", - "lists.replies_policy.title": "Nekik mutassuk a válaszokat:", + "lists.replies_policy.title": "Válaszok megjelenítése:", "lists.search": "Keresés a követett személyek között", - "lists.subheading": "Listáid", + "lists.subheading": "Saját listák", "load_pending": "{count, plural, one {# új elem} other {# új elem}}", "loading_indicator.label": "Betöltés...", "media_gallery.toggle_visible": "{number, plural, one {Kép elrejtése} other {Képek elrejtése}}", "missing_indicator.label": "Nincs találat", "missing_indicator.sublabel": "Ez az erőforrás nem található", - "moved_to_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva, mert átköltöztél ide: {movedToAccount}.", + "moved_to_account_banner.text": "{disabledAccount} fiók jelenleg le van tiltva, mert más {movedToAccount} fiókba került át.", "mute_modal.duration": "Időtartam", - "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?", + "mute_modal.hide_notifications": "Értesítések elrejtése ettől a felhasználótól?", "mute_modal.indefinite": "Határozatlan", "navigation_bar.about": "Névjegy", "navigation_bar.blocks": "Letiltott felhasználók", @@ -378,13 +378,13 @@ "navigation_bar.compose": "Új bejegyzés írása", "navigation_bar.direct": "Közvetlen üzenetek", "navigation_bar.discover": "Felfedezés", - "navigation_bar.domain_blocks": "Rejtett domainek", + "navigation_bar.domain_blocks": "Letiltott tartományok", "navigation_bar.edit_profile": "Profil szerkesztése", "navigation_bar.explore": "Felfedezés", "navigation_bar.favourites": "Kedvencek", "navigation_bar.filters": "Némított szavak", "navigation_bar.follow_requests": "Követési kérelmek", - "navigation_bar.followed_tags": "Követett hashtagek", + "navigation_bar.followed_tags": "Követett #címkék", "navigation_bar.follows_and_followers": "Követettek és követők", "navigation_bar.lists": "Listák", "navigation_bar.logout": "Kijelentkezés", @@ -395,15 +395,15 @@ "navigation_bar.public_timeline": "Föderációs idővonal", "navigation_bar.search": "Keresés", "navigation_bar.security": "Biztonság", - "not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezned.", + "not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezni.", "notification.admin.report": "{name} jelentette: {target}", "notification.admin.sign_up": "{name} regisztrált", "notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet", - "notification.follow": "{name} követ téged", - "notification.follow_request": "{name} követni szeretne téged", - "notification.mention": "{name} megemlített", - "notification.own_poll": "A szavazásod véget ért", - "notification.poll": "Egy szavazás, melyben részt vettél, véget ért", + "notification.follow": "{name} követ engem", + "notification.follow_request": "{name} követni szeretne engem", + "notification.mention": "{name} megemlített engem", + "notification.own_poll": "A szavazás véget ért", + "notification.poll": "Egy általam részt vett szavazás véget ért", "notification.reblog": "{name} megtolta a bejegyzésedet", "notification.status": "{name} bejegyzést tett közzé", "notification.update": "{name} szerkesztett egy bejegyzést", @@ -413,47 +413,47 @@ "notifications.column_settings.admin.sign_up": "Új regisztrálók:", "notifications.column_settings.alert": "Asztali értesítések", "notifications.column_settings.favourite": "Kedvencek:", - "notifications.column_settings.filter_bar.advanced": "Minden kategória megjelenítése", - "notifications.column_settings.filter_bar.category": "Gyorskereső mező", - "notifications.column_settings.filter_bar.show_bar": "Szűrősáv mutatása", + "notifications.column_settings.filter_bar.advanced": "Összes kategória megjelenítése", + "notifications.column_settings.filter_bar.category": "Gyorsszűrő sáv", + "notifications.column_settings.filter_bar.show_bar": "Szűrősáv megjelenítése", "notifications.column_settings.follow": "Új követők:", "notifications.column_settings.follow_request": "Új követési kérelmek:", "notifications.column_settings.mention": "Megemlítések:", - "notifications.column_settings.poll": "Szavazás eredménye:", + "notifications.column_settings.poll": "Szavazási eredmények:", "notifications.column_settings.push": "Push értesítések", "notifications.column_settings.reblog": "Megtolások:", - "notifications.column_settings.show": "Oszlopban mutatás", + "notifications.column_settings.show": "Megjelenítés oszlopban", "notifications.column_settings.sound": "Hang lejátszása", "notifications.column_settings.status": "Új bejegyzések:", "notifications.column_settings.unread_notifications.category": "Olvasatlan értesítések", "notifications.column_settings.unread_notifications.highlight": "Olvasatlan értesítések kiemelése", "notifications.column_settings.update": "Szerkesztések:", - "notifications.filter.all": "Mind", + "notifications.filter.all": "Összes", "notifications.filter.boosts": "Megtolások", - "notifications.filter.favourites": "Kedvencnek jelölések", + "notifications.filter.favourites": "Kedvencek", "notifications.filter.follows": "Követések", "notifications.filter.mentions": "Megemlítések", "notifications.filter.polls": "Szavazások eredményei", "notifications.filter.statuses": "Frissítések azoktól, akiket követsz", "notifications.grant_permission": "Engedély megadása.", "notifications.group": "{count} értesítés", - "notifications.mark_as_read": "Minden értesítés olvasottnak jelölése", - "notifications.permission_denied": "Nem tudjuk engedélyezni az asztali értesítéseket, mert az engedélyt megtagadták.", - "notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetőek, mert az engedélyt megtagadták a böngészőben", - "notifications.permission_required": "Az asztali értesítések nem elérhetőek, mert a szükséges engedélyt nem adtad meg.", + "notifications.mark_as_read": "Összes értesítés megjelölése olvasottként", + "notifications.permission_denied": "Az asztali értesítések nem érhetők el a korábban elutasított böngésző engedély kérelem miatt", + "notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetők a korábban elutasított böngésző engedély miatt", + "notifications.permission_required": "Az asztali értesítések nem érhetők, mivel a szükséges engedély nem lett megadva.", "notifications_permission_banner.enable": "Asztali értesítések engedélyezése", - "notifications_permission_banner.how_to_control": "Ahhoz, hogy értesítéseket kapj akkor, amikor a Mastodon nincs megnyitva, engedélyezd az asztali értesítéseket. Pontosan be tudod állítani, hogy milyen interakciókról értesülj a fenti {icon} gombon keresztül, ha egyszer már engedélyezted őket.", - "notifications_permission_banner.title": "Soha ne mulassz el semmit", - "picture_in_picture.restore": "Visszarakás", + "notifications_permission_banner.how_to_control": "Bezárt Mastononnál értesések fogadásához engedélyezni kell az asztali értesítéseket. Pontosan lehet vezérelni, hogy milyen interakciókról érkezzen értesítés fenti {icon} gombon keresztül, ha már lorábban megtörtént az engedélyezés.", + "notifications_permission_banner.title": "Soha ne mulasszunk el semmit", + "picture_in_picture.restore": "Visszahelyezés", "poll.closed": "Lezárva", "poll.refresh": "Frissítés", "poll.total_people": "{count, plural, one {# személy} other {# személy}}", "poll.total_votes": "{count, plural, one {# szavazat} other {# szavazat}}", "poll.vote": "Szavazás", - "poll.voted": "Erre a válaszra szavaztál", + "poll.voted": "Megtörtént a szavazás erre a kérdésre", "poll.votes": "{votes, plural, one {# szavazat} other {# szavazat}}", "poll_button.add_poll": "Új szavazás", - "poll_button.remove_poll": "Szavazás törlése", + "poll_button.remove_poll": "Szavazás eltávolítása", "privacy.change": "Bejegyzés láthatóságának módosítása", "privacy.direct.long": "Csak a megemlített felhasználóknak látható", "privacy.direct.short": "Csak megemlítetteknek", @@ -466,7 +466,7 @@ "privacy_policy.last_updated": "Utoljára frissítve: {date}", "privacy_policy.title": "Adatvédelmi szabályzat", "refresh": "Frissítés", - "regeneration_indicator.label": "Töltődik…", + "regeneration_indicator.label": "A betöltés folyamatban van…", "regeneration_indicator.sublabel": "A saját idővonalad épp készül!", "relative_time.days": "{number}n", "relative_time.full.days": "{number, plural, one {# napja} other {# napja}}", @@ -481,7 +481,7 @@ "relative_time.today": "ma", "reply_indicator.cancel": "Mégsem", "report.block": "Letiltás", - "report.block_explanation": "Nem fogod látni a bejegyzéseit. Nem fogja tudni megnézni a bejegyzéseidet és nem fog tudni követni sem. Azt is meg fogja tudni mondani, hogy letiltottad.", + "report.block_explanation": "A bejegyzéseik nem áthatók. Nem nézheti meg a saját bejegyzéseimet és nem tudni követni sem. Azt is meg fogja tudni mondani, hogy letiltották.", "report.categories.other": "Egyéb", "report.categories.spam": "Kéretlen üzenet", "report.categories.violation": "A tartalom a kiszolgáló egy vagy több szabályát sérti", @@ -492,11 +492,11 @@ "report.close": "Kész", "report.comment.title": "Van valami, amiről tudnunk kellene?", "report.forward": "Továbbítás: {target}", - "report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldöd a jelentés egy anonimizált másolatát?", + "report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldésre kerüljön a jelentés egy anonimizált másolata?", "report.mute": "Némítás", "report.mute_explanation": "Nem fogod látni a bejegyzéseit. Továbbra is fog tudni követni, és látni fogja a bejegyzéseidet, és nem fogja tudni, hogy némítottad.", "report.next": "Következő", - "report.placeholder": "További megjegyzések", + "report.placeholder": "További hozzászólások", "report.reasons.dislike": "Nem tetszik", "report.reasons.dislike_description": "Ezt nem szeretném látni", "report.reasons.other": "Valami más", @@ -512,7 +512,7 @@ "report.submit": "Küldés", "report.target": "{target} jelentése", "report.thanks.take_action": "Itt vannak a beállítások, melyek szabályozzák, hogy mit látsz a Mastodonon:", - "report.thanks.take_action_actionable": "Míg átnézzük, a következőket teheted @{name} ellen:", + "report.thanks.take_action_actionable": "Míg átnézzük, a következőket lehet tenni @{name} ellen:", "report.thanks.title": "Nem akarod ezt látni?", "report.thanks.title_actionable": "Köszönjük, hogy jelentetted, megnézzük.", "report.unfollow": "@{name} követésének leállítása", @@ -523,32 +523,32 @@ "report_notification.categories.violation": "Szabálysértés", "report_notification.open": "Bejelentés megnyitása", "search.placeholder": "Keresés", - "search.search_or_paste": "Keresés vagy URL beillesztése", - "search_popout.search_format": "Speciális keresés", + "search.search_or_paste": "Keresés vagy webcím beillesztése", + "search_popout.search_format": "Bővített keresési forma", "search_popout.tips.full_text": "Egyszerű szöveg, mely általad írt, kedvencnek jelölt vagy megtolt bejegyzéseket, rólad szóló megemlítéseket, felhasználói neveket, megjelenített neveket, hashtageket ad majd vissza.", - "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.hashtag": "#címke", "search_popout.tips.status": "bejegyzés", - "search_popout.tips.text": "Egyszerű szöveg. Illeszkedő megjelenített nevet, felhasználói nevet, hashtageket ad majd vissza", + "search_popout.tips.text": "Az egyszerű szöveg illeszkedő megjelenített nevet, felhasználónevet, #címkéket ad vissza", "search_popout.tips.user": "felhasználó", "search_results.accounts": "Emberek", "search_results.all": "Összes", - "search_results.hashtags": "Hashtagek", + "search_results.hashtags": "#Címkék", "search_results.nothing_found": "Nincs találat ezekre a keresési kifejezésekre", "search_results.statuses": "Bejegyzések", "search_results.statuses_fts_disabled": "Ezen a Mastodon szerveren nem engedélyezett a bejegyzések tartalom szerinti keresése.", "search_results.title": "Keresés erre: {q}", "search_results.total": "{count, number} {count, plural, one {találat} other {találat}}", - "server_banner.about_active_users": "Az elmúlt 30 napban ezt a kiszolgálót használók száma (Havi aktív felhasználók)", + "server_banner.about_active_users": "Az elmúlt 30 napban ezt a kiszolgálót használó emberek (Havi aktív felhasználók)", "server_banner.active_users": "aktív felhasználó", "server_banner.administered_by": "Adminisztrátor:", - "server_banner.introduction": "{domain} része egy decentralizált közösségi hálónak, melyet a {mastodon} hajt meg.", - "server_banner.learn_more": "Tudj meg többet", - "server_banner.server_stats": "Kiszolgálóstatisztika:", + "server_banner.introduction": "{domain} része egy központ nélküliközösségi hálónak, melyet a {mastodon} hajt meg.", + "server_banner.learn_more": "További információ", + "server_banner.server_stats": "Szerver statisztika:", "sign_in_banner.create_account": "Fiók létrehozása", "sign_in_banner.sign_in": "Bejelentkezés", - "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókodból más kiszolgálókon is kommunikálhatsz.", + "sign_in_banner.text": "Jelentkezzünk be profilok vagy hashtagek követéséhez, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókból más kiszolgálókon is kommunikálhatunk.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", - "status.admin_domain": "A következő moderációs felületének megnyitása: @{domain}", + "status.admin_domain": "Moderációs felület megnyitása {domain} esetében", "status.admin_status": "Bejegyzés megnyitása a moderációs felületen", "status.block": "@{name} letiltása", "status.bookmark": "Könyvjelzőzés", @@ -595,19 +595,19 @@ "status.show_less_all": "Kevesebbet mindenhol", "status.show_more": "Többet", "status.show_more_all": "Többet mindenhol", - "status.show_original": "Eredeti mutatása", + "status.show_original": "Eredeti megjelenítése", "status.translate": "Fordítás", "status.translated_from_with": "{lang} nyelvről fordítva {provider} szolgáltatással", "status.uncached_media_warning": "Nem érhető el", "status.unmute_conversation": "Beszélgetés némításának feloldása", "status.unpin": "Kitűzés eltávolítása a profilodról", - "subscribed_languages.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőlapon és az idővonalakon. Ha egy sincs kiválasztva, akkor minden nyelven megjelennek a bejegyzések.", + "subscribed_languages.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőoldalon és az idővonalakon. Ha egy sincs kiválasztva, akkor az összes nyelvű bejegyzések megjelennek.", "subscribed_languages.save": "Változások mentése", - "subscribed_languages.target": "Feliratkozott nyelvek módosítása a következőnél: {target}", + "subscribed_languages.target": "Feliratkozott nyelvek módosítása {target} esetében", "suggestions.dismiss": "Javaslat elvetése", - "suggestions.header": "Esetleg érdekelhet…", - "tabs_bar.federated_timeline": "Föderációs", - "tabs_bar.home": "Kezdőlap", + "suggestions.header": "Esetleg érdeklődésre tarthat számot…", + "tabs_bar.federated_timeline": "Összekapcsolt", + "tabs_bar.home": "Kezdőoldal", "tabs_bar.local_timeline": "Helyi", "tabs_bar.notifications": "Értesítések", "time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra", @@ -621,29 +621,29 @@ "timeline_hint.resources.statuses": "Régi bejegyzések", "trends.counter_by_accounts": "{count, plural, one {{counter} ember} other {{counter} ember}} az elmúlt {days, plural,one {napban} other {{days} napban}}", "trends.trending_now": "Most felkapott", - "ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodont.", + "ui.beforeunload": "A vázlat elveszik a Mastodon elhagyásakor.", "units.short.billion": "{count}Mrd", "units.short.million": "{count}M", "units.short.thousand": "{count}K", - "upload_area.title": "Húzd ide a feltöltéshez", - "upload_button.label": "Média hozzáadása", - "upload_error.limit": "Túllépted a fájlfeltöltési korlátot.", + "upload_area.title": "Húzás a feltöltéshez", + "upload_button.label": "Képek, videó vagy audió fájl hozzáadása", + "upload_error.limit": "A fájlfeltöltési korlát elérésre került.", "upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.", - "upload_form.audio_description": "Írja le a hallássérültek számára", - "upload_form.description": "Leírás látáskorlátozottak számára", + "upload_form.audio_description": "Leírás be a siket vagy hallássérült embereknek", + "upload_form.description": "Leírás be vak vagy gyengénlátó embereknek", "upload_form.description_missing": "Nincs leírás megadva", "upload_form.edit": "Szerkesztés", - "upload_form.thumbnail": "Előnézet megváltoztatása", + "upload_form.thumbnail": "Bélyegkép megváltoztatása", "upload_form.undo": "Törlés", - "upload_form.video_description": "Írja le a hallás- vagy látássérültek számára", + "upload_form.video_description": "Leírás be a siket, hallássérült, vak vagy gyengénlátó embereknek", "upload_modal.analyzing_picture": "Kép elemzése…", - "upload_modal.apply": "Alkalmaz", + "upload_modal.apply": "Alkalmazás", "upload_modal.applying": "Alkalmazás…", "upload_modal.choose_image": "Kép kiválasztása", "upload_modal.description_placeholder": "A gyors, barna róka átugrik a lusta kutya fölött", "upload_modal.detect_text": "Szöveg felismerése a képről", "upload_modal.edit_media": "Média szerkesztése", - "upload_modal.hint": "Kattints vagy húzd a kört az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen látható kell, legyen.", + "upload_modal.hint": "Kattintás vagy kör húzása az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen láthatónak kell lenni.", "upload_modal.preparing_ocr": "OCR előkészítése…", "upload_modal.preview_label": "Előnézet ({ratio})", "upload_progress.label": "Feltöltés...", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index babd3b1ddb..f26f0b16ac 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -71,7 +71,7 @@ "admin.dashboard.monthly_retention": "가입 후 월별 사용자 유지율", "admin.dashboard.retention.average": "평균", "admin.dashboard.retention.cohort": "가입한 달", - "admin.dashboard.retention.cohort_size": "새로운 사용자", + "admin.dashboard.retention.cohort_size": "새 사용자", "alert.rate_limited.message": "{retry_time, time, medium}에 다시 시도해 주세요.", "alert.rate_limited.title": "빈도 제한됨", "alert.unexpected.message": "예상하지 못한 에러가 발생했습니다.", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 680aea770b..12a29f503f 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Toots and replies", "account.report": "@{name} ची तक्रार करा", "account.requested": "Awaiting approval", - "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, one {{counter} Toot} other {{counter} Toots}}", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index cf5b3406c3..3679fcce0f 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -194,7 +194,7 @@ "dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်", "dismissable_banner.public_timeline": "ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ဤဆာဗာနှင့် အခြားဆာဗာတို့တွင် တင်ထားသည့် လတ်တလော အများမြင်ပို့စ်များဖြစ်သည်။", "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", + "embed.preview": "ဒါမျိုးမြင်ရမှာပါ။", "emoji_button.activity": "လုပ်ဆောင်ချက်", "emoji_button.clear": "ရှင်းလင်းမည်", "emoji_button.custom": "စိတ်ကြိုက်", @@ -265,7 +265,7 @@ "follow_recommendations.lead": "သင်စောင့်ကြည့်ထားသူများ၏ ပို့စ်များမှာ သင့်ပင်မစာမျက်နှာတွင် အချိန်နှင့်တပြေးညီ ပေါ်လာပါမည်။ မကြောက်ပါနှင့်။ အချိန်မရွေး စောင့်ကြည့်ခြင်းအား ရပ်တန့်နိုင်ပါသည်။", "follow_request.authorize": "လုပ်ပိုင်ခွင့်", "follow_request.reject": "ဖယ်ရှားပါ", - "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.", + "follow_requests.unlocked_explanation": "သင့်အကောင့်ကို လော့ခ်ချမထားသော်လည်း၊ {domain} ဝန်ထမ်းများသည် ဤအကောင့်များမှ လိုက်နာရန်တောင်းဆိုမှုများကို ကိုယ်တိုင်ပြန်လည်စစ်ဆေးလိုမည်ဟု ထင်မြင်ယူဆပါသည်။", "followed_tags": "Hashtag ကို စောင့်ကြည့်ပါမည်", "footer.about": "အကြောင်း", "footer.directory": "ပရိုဖိုင်များလမ်းညွှန်", @@ -414,7 +414,7 @@ "notifications.column_settings.alert": "Desktop သတိပေးချက်များ", "notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ", "notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ", - "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.category": "အမြန်စစ်ထုတ်မှုဘား", "notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ", "notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -", "notifications.column_settings.follow_request": "စောင့်ကြည့်ရန် တောင်းဆိုမှုအသစ်များ -", @@ -442,7 +442,7 @@ "notifications.permission_denied_alert": "ဘရောက်ဆာခွင့်ပြုချက်ကို ငြင်းပယ်ခဲ့သောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်၍မရပါ", "notifications.permission_required": "လိုအပ်သောခွင့်ပြုချက်ကို မပေးထားသောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို မရရှိနိုင်ပါ။", "notifications_permission_banner.enable": "ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်ပါ", - "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.how_to_control": "Mastodon မဖွင့်သည့်အခါ အကြောင်းကြားချက်များကို လက်ခံရယူရန်၊ ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်ပါ။ ၎င်းတို့ကို ဖွင့်ပြီးသည်နှင့် ၎င်းတို့ကို ဖွင့်ပြီးသည်နှင့် အထက် {icon} ခလုတ်မှ ဒက်စ်တော့ အသိပေးချက်များကို ထုတ်ပေးသည့် အပြန်အလှန်တုံ့ပြန်မှု အမျိုးအစားများကို သင် အတိအကျ ထိန်းချုပ်နိုင်သည်။", "notifications_permission_banner.title": "လက်လွတ်မခံပါနှင့်", "picture_in_picture.restore": "ပြန်ထားပါ", "poll.closed": "ပိတ်သွားပြီ", @@ -528,7 +528,7 @@ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်", "search_popout.tips.status": "ပို့စ်", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.text": "ရိုးရှင်းသော စာသားသည် ကိုက်ညီသည့် ဖော်ပြအမည်များ၊ အသုံးပြုသူအမည်များနှင့် hashtag များကို ပြန်ဖော်ပြပေးသည်။\n", "search_popout.tips.user": "အသုံးပြုသူ", "search_results.accounts": "လူပုဂ္ဂိုလ်", "search_results.all": "အားလုံး", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 93a39c3802..f84be48f77 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -163,7 +163,7 @@ "confirmations.domain_block.confirm": "Да, заблокировать узел", "confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.", "confirmations.edit.confirm": "Редактировать", - "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.message": "В данный момент, редактирование перезапишет составляемое вами сообщение. Вы уверены, что хотите продолжить?", "confirmations.logout.confirm": "Выйти", "confirmations.logout.message": "Вы уверены, что хотите выйти?", "confirmations.mute.confirm": "Игнорировать", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index a2c35fae9d..b3da4e07bd 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -597,7 +597,7 @@ "status.show_more_all": "Všetkým ukáž viac", "status.show_original": "Ukáž pôvodný", "status.translate": "Preložiť", - "status.translated_from_with": "Translated from {lang} using {provider}", + "status.translated_from_with": "Preložené z {lang} pomocou {provider}", "status.uncached_media_warning": "Nedostupný/é", "status.unmute_conversation": "Prestaň si nevšímať konverzáciu", "status.unpin": "Odopni z profilu", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 66dd80b901..16f7a0fd9a 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -540,7 +540,7 @@ "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}", "server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)", "server_banner.active_users": "aktivnih korisnika", - "server_banner.administered_by": "Administrirano od strane:", + "server_banner.administered_by": "Administrira:", "server_banner.introduction": "{domain} je deo decentralizovane društvene mreže koju pokreće {mastodon}.", "server_banner.learn_more": "Saznajte više", "server_banner.server_stats": "Statistike servera:", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 28d6126bba..6d983496f3 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -155,7 +155,7 @@ "confirmations.cancel_follow_request.confirm": "Повуци захтев", "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?", "confirmations.delete.confirm": "Избриши", - "confirmations.delete.message": "Да ли сте сигурни да желите изришете ову објаву?", + "confirmations.delete.message": "Да ли сте сигурни да желите да избришете ову објаву?", "confirmations.delete_list.confirm": "Избриши", "confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?", "confirmations.discard_edit_media.confirm": "Одбаци", @@ -167,12 +167,12 @@ "confirmations.logout.confirm": "Одјава", "confirmations.logout.message": "Да ли сте сигурни да желите да се одјавите?", "confirmations.mute.confirm": "Игнориши", - "confirmations.mute.explanation": "Ово ће сакрити објаве од корисника и објаве које га помињу, али ће му и даље бити дозвољено да види ваше објаве и да вас прати.", + "confirmations.mute.explanation": "Ово ће сакрити објаве корисника и објаве које га помињу, али ће му и даље бити дозвољено да види Ваше објаве и да Вас прати.", "confirmations.mute.message": "Да ли стварно желите да игноришете корисника {name}?", "confirmations.redraft.confirm": "Избриши и преправи", "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете ову објаву и да је преправите? Подржавања и ознаке као омиљених ће бити изгубљени, а одговори ће остати без оригиналне објаве.", "confirmations.reply.confirm": "Одговори", - "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Да ли сигурни да желите да наставите?", + "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Да ли сте сигурни да желите да наставите?", "confirmations.unfollow.confirm": "Отпрати", "confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?", "conversation.delete": "Избриши разговор", @@ -181,7 +181,7 @@ "conversation.with": "Са {names}", "copypaste.copied": "Копирано", "copypaste.copy": "Копирај", - "directory.federated": "Са знаног фидеверзума", + "directory.federated": "Са знаног федиверзума", "directory.local": "Само са {domain}", "directory.new_arrivals": "Новопридошли", "directory.recently_active": "Недавно активни", @@ -337,7 +337,7 @@ "keyboard_shortcuts.search": "Фокусирај траку претраге", "keyboard_shortcuts.spoilers": "Прикажи/сакриј поље текста упозорења о садржају (CW)", "keyboard_shortcuts.start": "Отвори колону „први кораци”", - "keyboard_shortcuts.toggle_hidden": "Прикажи/сакриј текст иза CW-а", + "keyboard_shortcuts.toggle_hidden": "Прикажи/сакриј текст иза упозорења", "keyboard_shortcuts.toggle_sensitivity": "Прикажи/сакриј мултимедију", "keyboard_shortcuts.toot": "Започни нову објаву", "keyboard_shortcuts.unfocus": "Уклони фокус са поља за унос текста/претраге", @@ -366,7 +366,7 @@ "loading_indicator.label": "Учитавање...", "media_gallery.toggle_visible": "{number, plural, one {Сакриј слику} few {Сакриј слике} other {Сакриј слике}}", "missing_indicator.label": "Није пронађено", - "missing_indicator.sublabel": "Овај ресурс није могуће пронаћи", + "missing_indicator.sublabel": "Овај ресурс није било могуће пронаћи", "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.", "mute_modal.duration": "Трајање", "mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?", @@ -525,10 +525,10 @@ "search.placeholder": "Претрага", "search.search_or_paste": "Претражите или унесите адресу", "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": "Једноставан текст враћа подударање имена за приказ, корисничка имена и хеш ознаке", + "search_popout.tips.text": "Једноставан текст враћа подударна имена за приказ, корисничка имена и хеш ознаке", "search_popout.tips.user": "корисник", "search_results.accounts": "Људи", "search_results.all": "Све", @@ -540,7 +540,7 @@ "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}", "server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)", "server_banner.active_users": "активних корисника", - "server_banner.administered_by": "Администрирано од стране:", + "server_banner.administered_by": "Администрира:", "server_banner.introduction": "{domain} је део децентрализоване друштвене мреже коју покреће {mastodon}.", "server_banner.learn_more": "Сазнајте више", "server_banner.server_stats": "Статистике сервера:", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index bd4b2fc41e..c7484b1182 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -67,8 +67,8 @@ "account.unmute_notifications": "เลิกซ่อนการแจ้งเตือนจาก @{name}", "account.unmute_short": "เลิกซ่อน", "account_note.placeholder": "คลิกเพื่อเพิ่มหมายเหตุ", - "admin.dashboard.daily_retention": "อัตราการเก็บรักษาผู้ใช้ตามวันหลังจากลงทะเบียน", - "admin.dashboard.monthly_retention": "อัตราการเก็บรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน", + "admin.dashboard.daily_retention": "อัตราการเก็บรักษาผู้ใช้ตามวันหลังจากการลงทะเบียน", + "admin.dashboard.monthly_retention": "อัตราการเก็บรักษาผู้ใช้ตามเดือนหลังจากการลงทะเบียน", "admin.dashboard.retention.average": "ค่าเฉลี่ย", "admin.dashboard.retention.cohort": "เดือนที่ลงทะเบียน", "admin.dashboard.retention.cohort_size": "ผู้ใช้ใหม่", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index a108a6619a..fec79a2af8 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -272,7 +272,7 @@ "footer.get_app": "Ứng dụng", "footer.invite": "Mời bạn bè", "footer.keyboard_shortcuts": "Phím tắt", - "footer.privacy_policy": "Chính sách bảo mật", + "footer.privacy_policy": "Bảo mật", "footer.source_code": "Mã nguồn", "footer.status": "Trạng thái", "generic.saved": "Đã lưu", diff --git a/config/locales/activerecord.fi.yml b/config/locales/activerecord.fi.yml index c1dbaff0fe..2cf1c823d3 100644 --- a/config/locales/activerecord.fi.yml +++ b/config/locales/activerecord.fi.yml @@ -24,11 +24,11 @@ fi: admin/webhook: attributes: url: - invalid: ei ole kelvollinen URL + invalid: ei ole kelvollinen verkko-osoite doorkeeper/application: attributes: website: - invalid: ei ole kelvollinen URL + invalid: ei ole kelvollinen verkko-osoite import: attributes: data: diff --git a/config/locales/an.yml b/config/locales/an.yml index 0bbed84629..43c83efdc3 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1643,7 +1643,6 @@ an: seamless_external_login: Has iniciau sesión dende un servicio externo, asinas que los achustes de clau y correu no son disponibles. signed_in_as: 'Sesión iniciada como:' verification: - explanation_html: 'Puetz verificar-te a tu mesmo como lo duenyo d''os links en os metadatos d''o tuyo perfil . Pa ixo, lo puesto vinculau ha de contener un vinclo a lo tuyo perfil de Mastodon. Lo vinclo en o tuyo puesto debe tener un atributo rel="me". Lo texto d''o vinclo no importa. Aquí un eixemplo:' verification: Verificación webauthn_credentials: add: Adhibir nueva clau de seguranza diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 481f086426..04631f7fe5 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1730,7 +1730,6 @@ ar: seamless_external_login: لقد قمت بتسجيل الدخول عبر خدمة خارجية، إنّ إعدادات الكلمة السرية و البريد الإلكتروني غير متوفرة. signed_in_as: 'تم تسجيل دخولك بصفة:' verification: - explanation_html: 'يمكنك التحقق من نفسك كمالك لروابط البيانات التعريفية على صفحتك الشخصية. لذلك، يجب أن يحتوي الموقع المقترِن على رابط إلى صفحتك التعريفية الشخصية على ماستدون. الرابط الخلفي يجب أن يحتوي على رمز rel="me". محتوى النص في الرابط غير مهم. على سبيل المثال:' verification: التحقق webauthn_credentials: add: إضافة مفتاح أمان جديد diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 8e6935c093..62da6ff901 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -905,7 +905,6 @@ ast: seamless_external_login: Aniciesti la sesión pente un serviciu esternu, polo que la configuración de la contraseña ya de la direición de corréu electrónicu nun tán disponibles. signed_in_as: 'Aniciesti la sesión como:' verification: - explanation_html: 'Pues verificate como la persona propietaria de los enllaces nos metadatos del to perfil. Pa ello, el sitiu web enllaciáu ha contener un enllaz al to perfil de Mastodon. Esti enllaz ha tener l''atributu rel="me". El testu del enllaz nun importa. Equí tienes un exemplu:' verification: Verificación webauthn_credentials: create: diff --git a/config/locales/be.yml b/config/locales/be.yml index 8001703c43..0509fc8307 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -840,6 +840,12 @@ be: message_html: Вы не вызначылі ніякіх правілаў сервера. sidekiq_process_check: message_html: Не працуе працэс Sidekiq для %{value} чаргі. Калі ласка праверце вашу канфігурацыю Sidekiq + upload_check_privacy_error: + action: Для падрабязнасцей націсніце тут + message_html: "Ваш сервер не наладжаны. Прыватнасць карыстальнікаў пад пагрозай." + upload_check_privacy_error_object_storage: + action: Для падрабязнасцей націсніце тут + message_html: "Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай." tags: review: Стан праверкі updated_msg: Налады хэштэгаў паспяхова змененыя @@ -1457,6 +1463,7 @@ be: confirm_remove_selected_followers: Вы ўпэўнены, што жадаеце выдаліць выбраных падпісчыкаў? confirm_remove_selected_follows: Вы ўпэўнены, што жадаеце выдаліць выбраныя падпіскі? dormant: Занядбаны + follow_failure: Вы не можаце падпісацца на некаторыя акаўнты. follow_selected_followers: Падпісацца на выбраных падпісчыкаў followers: Падпісчыкі following: Падпісаны @@ -1747,12 +1754,13 @@ be: title: Рады вітаць вас, %{name}! users: follow_limit_reached: Вы не можаце падпісацца на большую колькасць людзей чым %{limit} + go_to_sso_account_settings: Перайдзіце ў налады ідэнтыфікацыі вашага ўліковага запісу invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце скарыстацца %{email} seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя. signed_in_as: 'Увайшлі як:' verification: - explanation_html: 'Вы можаце пацвердзіць сябе як уладальніка спасылак у метададзеных вашага профілю. Для гэтага спасылка на вэб-сайт павінна ўтрымліваць спасылку на ваш профіль Mastodon. Зваротная спасылка павінна мець атрыбут rel="me". Тэкставы змест спасылкі не мае значэння. Вось прыклад:' + explanation_html: 'Вы можаце пацвердзіць сябе як уладальніка спасылак у метададзеных вашага профілю. Для гэтага спасылка на вэб-сайт павінна ўтрымліваць спасылку на ваш профіль Mastodon. Пасля дадавання спасылка, вам спатрэбіцца вярнуцца і перазахаваць свой профіль, каб усё адбыдося. Зваротная спасылка павінна мець атрыбут rel="me". Тэкставы змест спасылкі не мае значэння. Вось прыклад:' verification: Верыфікацыя webauthn_credentials: add: Дадаць новы ключ бяспекі diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 6cce2b2942..4304966fa4 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -812,6 +812,12 @@ bg: message_html: Не сте определили никакви правила на сървъра. sidekiq_process_check: message_html: Не работи процес Sidekiq за %{value} опашка/и. Прегледайте настройките си за Sidekiq + upload_check_privacy_error: + action: Щракнете тук за повече информация + message_html: "Вашият уеб сървър е погрешно конфигуриран. Поверителността на потребителите ви е изложена на риск." + upload_check_privacy_error_object_storage: + action: Щракнете тук за повече информация + message_html: "Вашето съхранение на предмети е погрешно конфигурирано. Поверителността на потребителите ви е изложена на риск." tags: review: Преглед на състояние updated_msg: Успешно осъвременени настройки на хаштага @@ -1684,12 +1690,13 @@ bg: title: Добре дошли на борда, %{name}! users: follow_limit_reached: Не може да последвате повече от %{limit} души + go_to_sso_account_settings: Отидете при настройките на акаунта на своя доставчик на идентичност invalid_otp_token: Невалиден код otp_lost_help_html: Ако загубите достъп до двете, то може да се свържете с %{email} seamless_external_login: Влезли сте чрез външна услуга, така че настройките за парола и имейл не са налични. signed_in_as: 'Влезли като:' verification: - explanation_html: 'Можете да удостоверите самоличността си като собственик на линковете в метаданните на своя профил. За целта сайтът, към който води линк от метаданните, трябва да съдържа линк обратно към вашия профил в Mastodon. Линкът от сайта трябва да съдържа атрибут rel="me". Текстовото съдържание на линка няма значение. Ето пример:' + explanation_html: 'Може да потвърдите себе си като собственик на връзките в метаданните на профила си. За целта свързаният уебсайт трябва да съдържа обратна връзка към профилa ви в Mastodon. След добавянето на връзката, може да се наложи да се върнете тук и да запазите пак профила си, за да влезе в сила потвърждаването. Връзката обратно трябва да има атрибут rel="me". Текстовото съдържание на връзката няма значение. Ето пример:' verification: Проверка webauthn_credentials: add: Добавяне на нов ключ за сигурност diff --git a/config/locales/br.yml b/config/locales/br.yml index 91a09c0029..ee465368af 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -535,7 +535,6 @@ br: users: signed_in_as: 'Aet-tre evel:' verification: - explanation_html: 'Gallout a rit gwiriañ c''hwi a zo perc''henn. ez liammoù metadata ho profil. Ret eo d''al lec''hienn web staget enderc''hel ul liamm evit mont d''ho profil Mastodon. Ret eo d''al liamm-se enderc''hel un doarenn rel="me". Ne ra forzh an destenn a zo e-barzh al liamm. Setu ur skouer:' verification: Amprouadur webauthn_credentials: add: Ouzphennañ un alc'hwez surentez nevez diff --git a/config/locales/ca.yml b/config/locales/ca.yml index f722a25159..0d84c2c90b 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -812,6 +812,12 @@ ca: message_html: No has definit cap norma del servidor. sidekiq_process_check: message_html: No hi ha cap procés de Sidekiq executant-se per a la cua (o cues) de %{value}. Si us plau revisa la teva configuració de Sidekiq + upload_check_privacy_error: + action: Consulta aquí per a més informació + message_html: "El teu servidor no està ben configurat. La privacitat dels teus usuaris està en risc." + upload_check_privacy_error_object_storage: + action: Consulta aquí per a més informació + message_html: "El teu emagatzamatge d'objectes no està ben configurat. La privacitat dels teus usuaris està en risc." tags: review: Revisar l'estat updated_msg: Ajustaments d'etiquetes actualitzats amb èxit @@ -1684,12 +1690,13 @@ ca: title: Benvingut a bord, %{name}! users: follow_limit_reached: No pots seguir més de %{limit} persones + go_to_sso_account_settings: Ves a la configuració del compte del teu proveïdor d'identitat invalid_otp_token: El codi de dos factors no és correcte otp_lost_help_html: Si has perdut l'accés a tots dos pots contactar per %{email} seamless_external_login: Has iniciat sessió via un servei extern per tant els ajustos de contrasenya i correu electrònic no estan disponibles. signed_in_as: 'Sessió iniciada com a:' verification: - explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodon. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' + explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodon. Després d''afegir l''enllaç, podries necessitar tornar aquí a desar el teu perfil per a fer efectiva la verificació. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' verification: Verificació webauthn_credentials: add: Afegir nova clau de seguretat diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index b156f5b496..1970761e17 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -1070,7 +1070,6 @@ ckb: seamless_external_login: تۆ لە ڕێگەی خزمەتگوزاری دەرەکیەوە داخڵ بووی، بۆیە ڕێکبەندەکانی نهێنوشە و ئیمەیل بەردەست نین. signed_in_as: 'چوونە ژوورەوە وەک:' verification: - explanation_html: 'دەتوانیت خۆت بسەلمێنیت وەک خاوەنی لینکەکان لە مێتاداتای پرۆفایلەکەت. بۆ ئەمە، ماڵپەڕە لینککراوەکە پێویستە لینکێکی تێدا بێت بۆ پرۆفایلی ماستۆدۆنەکەت. بەستەری دەبێت هەبێت ="me". ناوەڕۆکی دەقی لینکەکە گرنگ نییە. ئەمە نموونەیەکە:' verification: ساغ کردنەوە webauthn_credentials: add: زیادکردنی کلیلی ئاسایشی نوێ diff --git a/config/locales/co.yml b/config/locales/co.yml index 4d214f5c4f..9f48bdb4bc 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -1089,7 +1089,6 @@ co: seamless_external_login: Site cunnettatu·a dapoi un serviziu esternu, allora i parametri di chjave d’accessu è d’indirizzu e-mail ùn so micca dispunibili. signed_in_as: 'Cunnettatu·a cum’è:' verification: - explanation_html: 'Pudete verificavi cum''è u pruprietariu di i ligami in i metadati di u vostru prufile. Per quessa, u vostru situ deve avè un ligame versu a vostra pagina Mastodon. U ligame deve avè un''attributu rel="me". U cuntenutu di u testu di u ligame ùn hè micca impurtante. Eccu un''esempiu:' verification: Verificazione webauthn_credentials: add: Aghjunghje una chjave di sicurità diff --git a/config/locales/cs.yml b/config/locales/cs.yml index b5f3b0f15d..f54624a809 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1730,7 +1730,6 @@ cs: seamless_external_login: Jste přihlášeni přes externí službu, nastavení hesla a e-mailu proto nejsou dostupná. signed_in_as: 'Přihlášeni jako:' verification: - explanation_html: 'Můžete se ověřit jako vlastník odkazů v metadatech profilu. Pro tento účel musí stránka v odkazu obsahovat odkaz zpět na váš profil na Mastodonu. Odkaz zpět musí mít atribut rel="me". Na textu odkazu nezáleží. Zde je příklad:' verification: Ověření webauthn_credentials: add: Přidat nový bezpečnostní klíč diff --git a/config/locales/cy.yml b/config/locales/cy.yml index a50f8f32f8..3f451ef725 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -868,6 +868,12 @@ cy: message_html: Nid ydych wedi diffinio unrhyw reolau gweinydd. sidekiq_process_check: message_html: Does dim proses Sidekiq yn rhedeg ar gyfer y ciw(iau) %{value}. Adolygwch eich ffurfweddiad Sidekiq + upload_check_privacy_error: + action: Ewch yma am fwy o wybodaeth + message_html: "Mae eich gweinydd gwe wedi'i gam ffurfweddu.. Mae preifatrwydd eich defnyddwyr mewn perygl." + upload_check_privacy_error_object_storage: + action: Ewch yma am fwy o wybodaeth + message_html: "Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl." tags: review: Adolygu statws updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus @@ -1812,12 +1818,13 @@ cy: title: Croeso, %{name}! users: follow_limit_reached: Nid oes modd i chi ddilyn mwy na %{limit} o bobl + go_to_sso_account_settings: Ewch i osodiadau cyfrif eich darparwr hunaniaeth invalid_otp_token: Côd dau-ffactor annilys otp_lost_help_html: Os colloch chi fynediad i'r ddau, mae modd i chi gysylltu a %{email} seamless_external_login: Yr ydych wedi'ch mewngofnodi drwy wasanaeth allanol, felly nid yw gosodiadau cyfrinair ac e-bost ar gael. signed_in_as: 'Wedi mewngofnodi fel:' verification: - explanation_html: 'Mae modd i chi ddilysu eich hun fel perchenog y dolenni yn metadata eich proffil. Rhaid i''r wefan â dolen iddi gynnwys dolen yn ôl i''ch proffil Mastodon. Rhaid i''r ddolen yn ôl cynnwys y nodwedd rel="me". Does dim ots beth yw cynnwys testun y ddolen. Dyma enghraifft:' + explanation_html: 'Gallwch wirio eich hun fel perchennog y dolenni ym metadata eich proffil . Ar gyfer gwneud hynny, rhaid i''r wefan gysylltiedig gynnwys dolen yn ôl i''ch proffil Mastodon. Ar ôl ychwanegu''r ddolen efallai y bydd angen i chi ddod yn ôl yma ac ail-gadw''ch proffil er mwyn i''r dilysiad ddod i rym. Rhaid i''r ddolen yn ôl gael priodoledd rêl="me". Nid yw cynnwys testun y ddolen o bwys. Dyma enghraifft:' verification: Dilysu webauthn_credentials: add: Ychwanegu allwedd ddiogelwch newydd diff --git a/config/locales/da.yml b/config/locales/da.yml index 6110e6eab7..c558aafd67 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -812,6 +812,12 @@ da: message_html: Ingen serverregler defineret. sidekiq_process_check: message_html: Ingen Sidekiq-proces kører for %{value}-kø(er). Gennemgå Sidekiq-opsætningen + upload_check_privacy_error: + action: Tjek her for flere oplysninger + message_html: "Webserveren er fejlopsat. Brugernes fortrolighed er i fare." + upload_check_privacy_error_object_storage: + action: Tjek her for flere oplysninger + message_html: "Objektlageret er fejlopsat. Brugernes fortrolighed er i fare." tags: review: Revisionsstatus updated_msg: Hashtag-indstillinger opdateret @@ -1684,12 +1690,13 @@ da: title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan maks. følge %{limit} personer + go_to_sso_account_settings: Gå til identitetsudbyderens kontoindstillinger invalid_otp_token: Ugyldig tofaktorkode otp_lost_help_html: Har du mistet adgang til begge, kan du kontakte %{email} seamless_external_login: Du er logget ind via en ekstern tjeneste, så adgangskode- og e-mailindstillinger er utilgængelige. signed_in_as: 'Logget ind som:' verification: - explanation_html: 'Du kan bekræfte dig selv som ejer af linkene i din profilmetadata. For at gøre det, skal det linkede websted indeholde et link pegende tilbage til din Mastodon-profil. Returlinket skal have en rel="me"-attribut. Linkets tekstindhold betyder ikke noget. Her er et eksempel:' + explanation_html: 'Man kan bekræfte sig selv som ejer af linkene i profilmetadataene. For at gøre dette, skal det linkede websted indeholde et link tilbage til Mastodon-profilen. Efter tilføjelse af linket, skal man muligvis returnere hertil og gemme sin profil igen, før bekræftelsen effektueres. Returlinket skal have en rel="me"-attribut. Linkets tekstindhold er ligegyldigt. Her er et eksempel:' verification: Bekræftelse webauthn_credentials: add: Tilføj ny sikkerhedsnøgle diff --git a/config/locales/de.yml b/config/locales/de.yml index 82bfc221e8..e8f6c86db3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -812,6 +812,12 @@ de: message_html: Du hast keine Serverregeln definiert. sidekiq_process_check: message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfe deine Sidekiq-Konfiguration + upload_check_privacy_error: + action: Für weitere Informationen hier klicken + message_html: "Die Konfiguration deines Servers ist fehlerhaft. Die Privatsphäre deiner Benutzer*innen ist gefährdet." + upload_check_privacy_error_object_storage: + action: Für weitere Informationen hier klicken + message_html: "Die Konfiguration deines Objektspeichers ist fehlerhaft. Die Privatsphäre deiner Benutzer*innen ist gefährdet." tags: review: Prüfstatus updated_msg: Hashtageinstellungen wurden erfolgreich aktualisiert @@ -1684,12 +1690,12 @@ de: title: Willkommen an Bord, %{name}! users: follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen + go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA) otp_lost_help_html: Wenn du beides nicht mehr weißt, melde dich bitte bei uns unter der E-Mail-Adresse %{email} seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. signed_in_as: 'Angemeldet als:' verification: - explanation_html: 'Du kannst bestätigen, dass die Links in deinen Profil-Metadaten dir gehören. Dafür muss die verlinkte Website einen Link zurück auf dein Mastodon-Profil enthalten. Dieser Link muss ein rel="me"-Attribut enthalten. Der Linktext ist dabei egal. Hier ist ein Beispiel:' verification: Verifizierung webauthn_credentials: add: Sicherheitsschlüssel hinzufügen diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index 08bc18ec1f..86360c2ab7 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -2,17 +2,17 @@ fi: devise: confirmations: - confirmed: Sähköpostiosoitteesi on vahvistettu onnistuneesti. + confirmed: Sähköpostiosoitteesi on vahvistettu. send_instructions: Saat pian sähköpostitse ohjeet sähköpostiosoitteesi vahvistamiseen. Jos et saanut viestiä, tarkista roskapostikansiosi. - send_paranoid_instructions: Jos sähköpostiosoitteesi on tietokannassamme, saat pian ohjeet osoitteesi vahvistamiseen. Jos et saanut viestiä, tarkista roskapostikansiosi. + send_paranoid_instructions: Jos sähköpostiosoitteesi on tiedossammme, saat pian sähköpostiisi ohjeet sen vahvistamiseen. Jos et saanut viestiä, tarkista roskapostikansiosi. failure: already_authenticated: Olet jo kirjautunut sisään. inactive: Tiliäsi ei ole vielä aktivoitu. invalid: Virheellinen %{authentication_keys} tai salasana. - last_attempt: Sinulla on vielä yksi yritys ennen kuin tunnuksesi lukitaan. + last_attempt: Sinulla on vielä yksi yritys ennen kuin tilisi lukitaan. locked: Tilisi on lukittu. not_found_in_database: Virheellinen %{authentication_keys} tai salasana. - pending: Tämä tili on vielä tarkistamatta. + pending: Tilisi on vielä tarkistamatta. timeout: Istuntosi on umpeutunut. Jatka kirjautumalla uudelleen sisään. unauthenticated: Sinun pitää kirjautua sisään tai rekisteröityä ennen kuin voit jatkaa. unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat. @@ -33,41 +33,41 @@ fi: password_change: explanation: Tilisi salasana on vaihdettu. extra: Jos et vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään. - subject: 'Mastodon: Salasana vaihdettu' + subject: 'Mastodon: salasana vaihdettu' title: Salasana vaihdettu reconfirmation_instructions: explanation: Vahvista uusi sähköpostiosoite, niin muutos astuu voimaan. extra: Jos et tehnyt muutosta itse, voit jättää tämän viestin huomiotta. Mastodon-tilin sähköpostiosoitetta ei vaihdeta, ennen kuin klikkaat yllä olevaa linkkiä. - subject: 'Mastodon: Vahvista sähköpostiosoite instanssille %{instance}' + subject: 'Mastodon: vahvista sähköpostiosoite: %{instance}' title: Vahvista sähköpostiosoite reset_password_instructions: action: Vaihda salasana explanation: Pyysit tilillesi uuden salasanan. extra: Jos et tehnyt pyyntöä itse, voit jättää tämän viestin huomiotta. Salasanaasi ei vaihdeta, ennen kuin klikkaat yllä olevaa linkkiä ja luot uuden salasanan. - subject: 'Mastodon: Ohjeet salasanan vaihtoon' + subject: 'Mastodon: ohjeet salasanan vaihtoon' title: Salasanan vaihto two_factor_disabled: - explanation: Kaksivaiheinen tunnistus tilillesi on otettu pois käytöstä. Kirjautuminen onnistuu nyt pelkällä sähköpostiosoitteella ja salasanalla. - subject: 'Mastodon: Kaksivaiheinen tunnistut otettu pois käytöstä' - title: 2FA poistettu käytöstä + explanation: Kaksivaiheinen todennus tilillesi poistettiin käytöstä. Kirjautuminen onnistuu nyt käyttäen pelkkää sähköpostiosoitetta ja salasanaa. + subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä' + title: 2-vaiheinen todennus pois käytöstä two_factor_enabled: - explanation: Kaksivaiheinen tunnistus on otettu käyttöön tilillesi. Koodi kaksivaiheisen tunnistuksen sovelluksesta tarvitaan kirjautumiseen. - subject: 'Mastodon: Kaksivaiheinen tunnistus otettu käyttöön' - title: 2FA käytössä + explanation: Kaksivaiheinen tunnistus on otettu käyttöön tilillesi. Kaksivaiheisen tunnistuksen sovelluksesta saatu koodi tarvitaan kirjautumiseen. + subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön' + title: 2-vaiheinen todennus käytössä two_factor_recovery_codes_changed: - explanation: Aiemmat palautuskoodi on poistettu käytöstä ja uudet on luotu. - subject: 'Mastodon: Kaksivaiheisen tunnistuksen palautuskoodit uudelleenluotu' - title: 2FA palautuskoodit vaihdettu + explanation: Uudet palautuskoodit on nyt luotu ja vanhat on mitätöity. + subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen' + title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin unlock_instructions: - subject: 'Mastodon: Ohjeet lukituksen poistoon' + subject: 'Mastodon: lukituksen poistamisen ohjeet' webauthn_credential: added: explanation: Seuraava suojausavain on lisätty tilillesi - subject: 'Mastodon: Uusi suojausavain' + subject: 'Mastodon: uusi suojausavain' title: Uusi suojausavain on lisätty deleted: explanation: Seuraava suojausavain on poistettu tililtäsi - subject: 'Mastodon: Suojausavain poistettu' + subject: 'Mastodon: suojausavain poistettu' title: Yksi suojausavaimistasi on poistettu webauthn_disabled: explanation: Suojausavaimilla todennus on poistettu käytöstä tililtäsi. Kirjautuminen on nyt mahdollista käyttämällä vain paritetun TOTP-sovelluksen luomaa tokenia. diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml index ddadd17894..dd137f14cd 100644 --- a/config/locales/devise.hu.yml +++ b/config/locales/devise.hu.yml @@ -7,43 +7,43 @@ hu: send_paranoid_instructions: Ha az e-mail címed már szerepel az adatbázisunkban, néhány percen belül kapsz egy levelet az e-mail cím megerősítésére vonatkozó utasításokkal. Kérjük, ellenőrizd a spam mappád, ha nem látod az e-mailt. failure: already_authenticated: Már bejelentkeztél. - inactive: A fiókod még nincs aktiválva. + inactive: A fiók még nincs aktiválva. invalid: Helytelen %{authentication_keys} vagy jelszó. last_attempt: Már csak egy próbálkozásod maradt, mielőtt a fiókodat zároljuk. locked: A fiókodat zároltuk. not_found_in_database: Helytelen %{authentication_keys} vagy jelszó. - pending: A fiókod még engedélyezésre vár. + pending: A fiók még áttekintés alatt áll. timeout: A munkameneted lejárt. Kérjük, a folytatáshoz jelentkezz be újra. unauthenticated: A folytatás előtt be kell jelentkezned vagy regisztrálnod kell. - unconfirmed: A folytatás előtt meg kell erősítened az e-mail címed. + unconfirmed: A folytatás előtt meg kell erősíteni az email címet. mailer: confirmation_instructions: - action: Erősítsd meg az e-mail címedet - action_with_app: Megerősítés majd vissza ide %{app} - explanation: Ezzel az e-mail címmel kezdeményeztek regisztrációt a(z) %{host} oldalon. Csak egy kattintás, és a felhasználói fiókodat aktiváljuk. Ha a regisztrációt nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. - explanation_when_pending: Ezzel az e-mail címmel meghívást kértél a(z) %{host} oldalon. Ahogy megerősíted az e-mail címed, átnézzük a jelentkezésedet. Ennek ideje alatt nem tudsz belépni. Ha a jelentkezésed elutasítjuk, az adataidat töröljük, más teendőd nincs. Ha a kérelmet nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. - extra_html: Tekintsd át a a kiszolgáló szabályait és a felhasználási feltételeket. - subject: 'Mastodon: Megerősítési lépések ehhez az instancehez: %{instance}' - title: E-mail cím megerősítése + action: Email cím ellenőrzése + action_with_app: 'Megerősítés majd visszatérés: %{app}' + explanation: Ezzel az email címmel kezdeményeztek regisztrációt %{host} kiszolgálón. Csak egy kattintás, és a felhasználói fiók bekapcsolásra kerül. Ha a regisztráció kezdeményezése téves volt, tekintsük ezt az emailt tárgytalannak. + explanation_when_pending: Ezzel az email címmel meghívás kérés történt %{host} kiszolgálón. Az email cím megerősítése után a jelentkezés áttekintésre kerül. Ennek ideje alatt nem lehet belépni. Ha a jelentkezés elutasításra kerül, az adatok törlésre kerülnek, más teendő nincs. Ha a kérelem kezdeményezése téves volt, tekintsük ezt az emailt tárgytalannak. + extra_html: Tekintsük át a a kiszolgáló szabályait és a felhasználási feltételeket. + subject: 'Mastodon: Megerősítési utasítások: %{instance}' + title: Email cím megerősítése email_changed: explanation: 'A fiókodhoz tartozó e-mail cím a következőre változik:' extra: Ha nem változtattad meg az e-mail címed, akkor valószínű, hogy valaki hozzáférhetett a fiókodhoz. Kérjük, azonnal változtasd meg a jelszavadat, vagy lépj kapcsolatba a szerver adminisztrátorával, ha ki vagy zárva a fiókodból. - subject: 'Mastodon: a fiókodhoz tartozó e-mail címet megváltoztattuk' - title: Új e-mail cím + subject: 'Mastodon: a fiókhoz tartozó email cím megváltoztatásra került' + title: Új email cím password_change: - explanation: A fiókodhoz tartozó jelszót megváltoztattuk. - extra: Ha nem te kérted a fiókod jelszavának módosítását, akkor valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a kiszolgálód adminisztrátorával. - subject: 'Mastodon: Jelszavad megváltoztattuk' - title: Sikeres jelszómódosítás + explanation: A fiókhoz tartozó jelszó megváltoztatásra került. + extra: Ha a fiók jelszavának módosítási kérelme téves volt, akkor valaki hozzáférhetett a fiókhoz. Legjobb, a jelszó azonnali megváltoztatása vagy ha kizárásra kerültünk a fiókból, vegyük fel a kapcsolatot a kiszolgáló adminisztrátorával. + subject: 'Mastodon: A jelszó megváltoztatásra került' + title: A jelszó megváltoztatásra került reconfirmation_instructions: - explanation: Az e-mail cím megváltoztatásához meg kell erősítened az új címet. - extra: Amennyiben nem te kezdeményezted a módosítást, kérjük tekintsd ezt az e-mailt tárgytalannak. A Mastodon fiókodhoz tartozó e-mail címed változatlan marad mindaddig, amíg rá nem kattintasz a fenti linkre. - subject: 'Mastodon: erősítsd meg a(z) %{instance} szerverhez tartozó e-mail címed' - title: E-mail cím megerősítése + explanation: Az email cím megváltoztatásához meg kell erősíteni az új email címet. + extra: Amennyiben a kezdeményezés téves volt, tekintsük ezt az emailt tárgytalannak. A Mastodon fiókhoz tartozó email cím változatlan marad a fenti hivatkozásra kattintásig. + subject: 'Mastodon: Email cím megerősítése: %{instance}' + title: Email cím megerősítése reset_password_instructions: action: Jelszó módosítása - explanation: A fiókodhoz tartozó jelszó módosítását kezdeményezted. - extra: Amennyiben nem te kezdeményezted a módosítást, kérjük tekintsd ezt az e-mailt tárgytalannak. A Mastodon fiókodhoz tartozó jelszavad változatlan marad mindaddig, amíg újat nem hozol létre a fenti linkre kattintva. + explanation: A fiókhoz tartozó jelszó módosítása kezdeményezésre került. + extra: Amennyiben a kezdeményezés téves volt, tekintsük ezt az emailt tárgytalannak. A Mastodon fiókhoz tartozó jelszó változatlan marad a fenti hivatkozásra kattintásig. subject: 'Mastodon: Jelszó visszaállítási lépések' title: Jelszó visszaállítása two_factor_disabled: @@ -55,54 +55,54 @@ hu: subject: Kétlépcsős azonosítás engedélyezve title: Kétlépcsős hitelesítés engedélyezve two_factor_recovery_codes_changed: - explanation: A korábbi helyreállítási kódokat letiltottuk, és újakat generáltunk. + explanation: A korábbi helyreállítási kódok letiltásra és újragenerálásra kerültek. subject: Kétlépcsős helyreállítási kódok újra létrejöttek - title: A kétlépcsős kódok megváltozott + title: A kétlépcsős kódok megváltoztak unlock_instructions: subject: 'Mastodon: Feloldási lépések' webauthn_credential: added: - explanation: A következő biztonsági kulcsot hozzáadtuk a fiókodhoz + explanation: A következő biztonsági kulcs a fiókhoz hozzáadásra került subject: 'Mastodon: Új biztonsági kulcs' - title: Új biztonsági kulcsot vettünk fel + title: Új biztonsági kulcs lett hozzáadva deleted: - explanation: A következő biztonsági kulcsot töröltük a fiókodból - subject: 'Mastodon: Biztonsági kulcs törölve' - title: Az egyik biztonsági kulcsodat törölték + explanation: A következő biztonsági kulcs törlésre került a fiókból + subject: 'Mastodon: A biztonsági kulcs törlésre került' + title: Az egyik biztonsági kulcs törlésre került webauthn_disabled: - explanation: A biztonsági kulccsal történő hitelesítést letiltottuk a fiókodon. Bejelentkezni csak a párosított TOTP app által generált tokennel lehet. - subject: 'Mastodon: Biztonsági kulccsal történő hitelesítés letiltva' - title: Biztonsági kulcsok letiltva + explanation: A biztonsági kulccsal történő hitelesítés letiltásra kerüt a fióknál. Bejelentkezni csak a párosított TOTP app által generált vezérjellel lehet. + subject: 'Mastodon: A biztonsági kulccsal történő hitelesítés letiltásra került' + title: A bztonsági kulcsok letiltásra kerültek webauthn_enabled: - explanation: A biztonsági kulccsal történő hitelesítést engedélyeztük a fiókodon. A biztonsági kulcsodat mostantól használhatod bejelentkezésre. - subject: 'Mastodon: Biztonsági kulcsos hitelesítés engedélyezve' - title: Biztonsági kulcsok engedélyezve + explanation: A biztonsági kulccsal történő hitelesítést engedélyezve lett a fióknál. A biztonsági kulcs mostantól használható a bejelentkezésre. + subject: 'Mastodon: A biztonsági kulcsos hitelesítés engedélyezésre került' + title: A bztonsági kulcsok engedélyezésre kerültek omniauth_callbacks: failure: Sikertelen hitelesítés %{kind} fiókról, mert "%{reason}". success: Sikeres hitelesítés %{kind} fiókról. passwords: - no_token: Nem férhetsz hozzá ehhez az oldalhoz jelszó visszaállító e-mail nélkül. Ha egy jelszó visszaállító e-mail hozott ide, ellenőrizd, hogy a megadott teljes URL-t használd. - send_instructions: Pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat. Kérlek ellenőrizd a levélszemét mappádat, ha nem kaptál ilyen e-mailt. - send_paranoid_instructions: Ha létezik az e-mail cím, pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat. Kérlek ellenőrizd a levélszemét mappádat, ha nem kaptál ilyen e-mailt. - updated: Jelszavad sikeresen frissült. Bejelentkeztél. - updated_not_active: Jelszavad sikeresen megváltoztattuk. + no_token: Nem lehet hozzáférni ehhez az oldalhoz jelszó visszaállító email nélkül. Ha egy jelszó visszaállító email miatt érkeztünk ide, ellenőrizzük a megadott teljes webcím használatát. + send_instructions: Ha az email cím létezik az adatbázisban, néhány perc alatt megérkezik jelszó helyreállítási hivatkozás az email címre. Ellenőrizzük a spam mappát, ha nem érkezett meg ez az email. + send_paranoid_instructions: Ha az email cím létezik az adatbázisban, néhány perc alatt megérkezik jelszó helyreállítási hivatkozás az email címre. Ellenőrizzük a spam mappát, ha nem érkezett meg ez az email. + updated: A jelszó sikeresen megváltozott. Megtörtént a bejelentkezés. + updated_not_active: A jelszó sikeresen megváltoztatásra került. registrations: - destroyed: Viszlát! A fiókodat sikeresen töröltük. Reméljük hamarosan viszontláthatunk. - signed_up: Üdvözlünk! Sikeresen regisztráltál. - signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókodat még nem aktiválták. - signed_up_but_locked: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod le van zárva. + destroyed: Viszontásátásra! A fiók sikeresen törlésre került. Reméljük hamarosan visszatér. + signed_up: Üdvözlet! A regisztráció sikeres volt. + signed_up_but_inactive: A regisztráció sikeres volt. Ennek ellenére nem lehet belépni, mert a fiók még nem lett aktiválva. + signed_up_but_locked: A regisztráció sikeres volt. Ennek ellenére nem lehet belépni, mert a fiók lezárásra került. signed_up_but_pending: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Ha kattintasz a hivatkozásra, átnézzük a kérelmedet. Értesítünk, ha jóváhagytuk. signed_up_but_unconfirmed: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Kérjük használd a hivatkozást a fiókod aktiválásához. Ellenőrizd a spam mappádat, ha nem kaptad meg ezt a levelet. - update_needs_confirmation: Sikeresen frissítetted a fiókodat, de szükségünk van az e-mail címed megerősítésére. Kérlek ellenőrizd az e-mailedet és kövesd a levélben szereplő megerősítési linket az e-mail címed megerősítéséhez. Ellenőrizd a levélszemét mappád, ha nem kaptál volna ilyen levelet. - updated: Fiókod frissítése sikeres. + update_needs_confirmation: A fiókodat sikeresen frissítésre került, de szükség van az email cím megerősítésére. Ellenőrizzük az emailt és kövessük a benne levő megerősítési hivatkozást az email cím megerősítéséhez. Ellenőrizzük a levélszemét mappát, ha nemérkezett volna meg ez az email. + updated: A fiók sikeresen frissítésre került. sessions: - already_signed_out: Sikeres kijelentkezés. - signed_in: Sikeres bejelentkezés. - signed_out: Sikeres kijelentkezés. + already_signed_out: A kijelentkezés sikeres volt. + signed_in: A bejelentkezés sikeres volt. + signed_out: A kijelentkezés sikeres volt. unlocks: - send_instructions: Pár percen belül egy e-mailt fogsz kapni a feloldáshoz szükséges lépésekkel. Ellenőrizd a levélszemét mappád, ha nem kaptál volna ilyen levelet. - send_paranoid_instructions: Ha a fiókod létezik, pár percen belül egy e-mailt fogsz kapni a feloldáshoz szükséges lépésekkel. Ellenőrizd a levélszemét mappád, ha nem kaptál volna ilyen levelet. - unlocked: A fiókodat sikeresen feloldottuk. Jelentkezz be a folytatáshoz. + send_instructions: Néhány perc múlva egy email érkezik a fiók feloldásáról. Ellenőrizzük a spam mappát, ha nem érkezett volna meg at email. + send_paranoid_instructions: Ha a fiók létezik, pár percen belül egy email érkezik a feloldáshoz szükséges lépésekkel. Ellenőrizzük a levélszemét mappát, ha nem érkezett volna ilyen email. + unlocked: A fiók sikeresen feloldásra került. Jelentkezzünk be a folytatáshoz. errors: messages: already_confirmed: már meg lett erősítve, kérjük jelentkezz be diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index 3c1968e50b..f69434dc4c 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -82,8 +82,8 @@ zh-TW: success: 成功透過 %{kind} 帳號登入。 passwords: no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。 - send_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 - send_paranoid_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 + send_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將於信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 + send_paranoid_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將於信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 updated: 您的密碼已成功變更,現在已經登入。 updated_not_active: 您的密碼已成功變更。 registrations: @@ -101,7 +101,7 @@ zh-TW: signed_out: 已成功登出。 unlocks: send_instructions: 幾分鐘後您將收到解鎖帳號的指引信件。若未收到請檢查垃圾郵件資料夾。 - send_paranoid_instructions: 若此帳號存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。 + send_paranoid_instructions: 若此帳號存在,您將於幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。 unlocked: 已解鎖您的帳號,請登入繼續。 errors: messages: diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index e2a81b4e9f..00a23f3a09 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -14,14 +14,14 @@ fi: redirect_uri: fragment_present: ei voi sisältää osia. invalid_uri: on oltava kelvollinen URI. - relative_uri: on oltava täydellinen URI. + relative_uri: on oltava täysi URI. secured_uri: on oltava HTTPS/SSL-URI. doorkeeper: applications: buttons: authorize: Valtuuta cancel: Peruuta - destroy: Tuhoa + destroy: Poista edit: Muokkaa submit: Lähetä confirmations: @@ -29,11 +29,11 @@ fi: edit: title: Muokkaa sovellusta form: - error: Hups! Tarkista, että lomakkeessa ei ole virheitä + error: Hupsis! Tarkista, ettei lomakkeessasi ole virheitä help: native_redirect_uri: Käytä %{native_redirect_uri} paikallisiin testeihin redirect_uri: Lisää jokainen URI omalle rivilleen - scopes: Erota oikeudet välilyönnein. Jos kenttä jätetään tyhjäksi, käytetään oletusoikeuksia. + scopes: Erota oikeudet välilyönneillä. Jätä kenttä tyhjäksi, jos haluat käyttää oletusoikeuksia. index: application: Sovellus callback_url: Takaisinkutsu-URL @@ -48,19 +48,19 @@ fi: title: Uusi sovellus show: actions: Toiminnot - application_id: Asiakasohjelman tunnus + application_id: Ohjelman tunnus callback_urls: Takaisinkutsu-URL:t scopes: Oikeudet - secret: Asiakasohjelman salainen avain + secret: Ohjelman salaisuus title: 'Sovellus: %{name}' authorizations: buttons: authorize: Valtuuta - deny: Evää + deny: Estä error: title: Tapahtui virhe new: - prompt_html: "%{client_name} pyytää lupaa käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, sinun ei pitäisi sallia sitä." + prompt_html: "%{client_name} pyytää lupaa käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, älä valtuuta sitä." review_permissions: Tarkista käyttöoikeudet title: Valtuutus vaaditaan show: @@ -81,7 +81,7 @@ fi: errors: messages: access_denied: Resurssin omistaja tai valtuutuspalvelin hylkäsi pyynnön. - credential_flow_not_configured: Resurssin omistajan salasana epäonnistui, koska asetusta Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu. + credential_flow_not_configured: Resurssin omistajan salasanatietojen luku epäonnistui, koska asetusta Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu. invalid_client: Asiakasohjelman valtuutus epäonnistui, koska asiakas on tuntematon, asiakkaan valtuutus ei ollut mukana tai valtuutustapaa ei tueta. invalid_grant: Valtuutuslupa on virheellinen, umpeutunut, peruttu, valtuutuspyynnössä käytettyä uudelleenohjaus-URI:tä vastaamaton tai myönnetty toiselle asiakkaalle. invalid_redirect_uri: Uudelleenohjaus-URI on virheellinen. @@ -111,12 +111,12 @@ fi: notice: Sovellus päivitetty. authorized_applications: destroy: - notice: Sovellus peruttu. + notice: Sovellus poistettu. grouped_scopes: access: read: Vain luku read/write: Luku- ja kirjoitusoikeudet - write: Vain kirjoitus + write: Vain kirjoitusoikeus title: accounts: Tilit admin/accounts: Tilien hallinta diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 622fcfe768..c7f21d1ba8 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -120,7 +120,7 @@ gl: title: accounts: Contas admin/accounts: Administración das contas - admin/all: Tódalas funcións administrativas + admin/all: Todas as funcións administrativas admin/reports: Administración das denuncias all: Acceso completo á túa conta de Mastodon blocks: Bloqueos @@ -129,7 +129,7 @@ gl: crypto: Cifrado extremo-a-extremo favourites: Favoritas filters: Filtros - follow: Seguidas, Silenciadas e Bloqueadas + follow: Seguidas, Acaladas e Bloqueadas follows: Seguimentos lists: Listas media: Anexos multimedia @@ -150,7 +150,7 @@ gl: admin:read: ler todos os datos no servidor admin:read:accounts: ler información sensible de todas as contas admin:read:canonical_email_blocks: ler a información sensíbel de tódolos bloqueos de correos electrónicos canónicos - admin:read:domain_allows: ler a información sensible de tódolos dominios permitidos + admin:read:domain_allows: ler a información sensible de todos os dominios permitidos admin:read:domain_blocks: ler a información sensible de tódolos bloqueos de dominio admin:read:email_domain_blocks: ler a información sensible de tódolos dominios de correo electrónico admin:read:ip_blocks: ler a información sensible de tódolos bloqueos de IP diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 584ff7219a..ef020bd853 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -40,7 +40,7 @@ ko: delete: 삭제 empty: 앱이 없습니다. name: 이름 - new: 새로운 앱 + new: 새 애플리케이션 scopes: 범위 show: 표시 title: 내 응용프로그램 @@ -67,12 +67,12 @@ ko: title: 이 승인 코드를 복사해 앱에 붙여 넣어야 합니다. authorized_applications: buttons: - revoke: 삭제 + revoke: 취소 confirmations: revoke: 확실합니까? index: authorized_at: "%{date}에 승인됨" - description_html: 이 계정에 API를 통해 접근 가능한 앱의 목록입니다. 알 수 없는 앱이나 잘못된 행위를 하는 앱이 있다면 권한을 취소할 수 있습니다. + description_html: 이 계정에 API를 통해 접근 가능한 애플리케이션의 목록입니다. 알 수 없는 애플리케이션이나 잘못된 행위를 하는 애플리케이션이 있다면 권한을 취소할 수 있습니다. last_used_at: "%{date}에 마지막으로 사용됨" never_used: 사용되지 않음 scopes: 권한 @@ -93,7 +93,7 @@ ko: invalid_scope: 요청한 범위가 올바르지 않거나, 알 수 없거나, 잘못 된 형식입니다. invalid_token: expired: 액세스 토큰이 만료되었습니다. - revoked: 액세스 토큰이 삭제되었습니다. + revoked: 액세스 토큰이 취소되었습니다. unknown: 액세스 토큰이 잘못되었습니다. resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator가 설정되지 않아 리소스 소유자 찾기가 실패하였습니다. server_error: 권한 부여 서버에 예기치 않은 상태가 발생하여, 요청을 수행할 수 없습니다. @@ -104,14 +104,14 @@ ko: flash: applications: create: - notice: 앱이 생성 되었습니다. + notice: 애플리케이션을 만들었습니다. destroy: - notice: 앱을 삭제했습니다. + notice: 애플리케이션을 삭제하였습니다. update: - notice: 앱을 갱신했습니다. + notice: 애플리케이션을 갱신했습니다. authorized_applications: destroy: - notice: 운영자에 의해 앱이 해지되었습니다. + notice: 애플리케이션을 취소하였습니다. grouped_scopes: access: read: 읽기 전용 권한 diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index b36ec21b9e..030acd6392 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -99,7 +99,7 @@ th: server_error: เซิร์ฟเวอร์การรับรองความถูกต้องพบเงื่อนไขที่ไม่คาดคิดซึ่งป้องกันไม่ให้เซิร์ฟเวอร์ดำเนินการตามคำขอ temporarily_unavailable: เซิร์ฟเวอร์การรับรองความถูกต้องไม่สามารถจัดการคำขอได้ในปัจจุบันเนื่องจากการทำงานเกินพิกัดชั่วคราวหรือการบำรุงรักษาเซิร์ฟเวอร์ unauthorized_client: ไคลเอ็นต์ไม่ได้รับอนุญาตให้ทำคำขอนี้โดยใช้วิธีการนี้ - unsupported_grant_type: ชนิดการให้การรับรองความถูกต้องไม่รองรับโดยเซิร์ฟเวอร์การรับรองความถูกต้อง + unsupported_grant_type: ไม่รองรับชนิดการให้การรับรองความถูกต้องโดยเซิร์ฟเวอร์การรับรองความถูกต้อง unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้ flash: applications: diff --git a/config/locales/el.yml b/config/locales/el.yml index c185459b7a..e5dce13b0e 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -11,17 +11,17 @@ el: followers: one: Ακόλουθος other: Ακόλουθοι - following: Ακολουθεί - instance_actor_flash: Αυτός ο λογαριασμός είναι εικονικός και χρησιμοποιείται για να αντιπροσωπεύει τον ίδιο τον εξυπηρετητή και όχι κάποιον μεμονωμένο χρήστη. Χρησιμοποιείται για ομοσπονδιακούς σκοπούς και δεν πρέπει να ανασταλεί. + following: Ακολουθείτε + instance_actor_flash: Αυτός ο λογαριασμός είναι εικονικός και χρησιμοποιείται για να αντιπροσωπεύει τον ίδιο τον διακομιστή και όχι κάποιον μεμονωμένο χρήστη. Χρησιμοποιείται για ομοσπονδιακούς σκοπούς και δεν πρέπει να ανασταλεί. last_active: τελευταία ενεργός/ή - link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date} + link_verified_on: Η ιδιοκτησία αυτού του συνδέσμου ελέγχθηκε στις %{date} nothing_here: Δεν υπάρχει τίποτα εδώ! pin_errors: following: Πρέπει ήδη να ακολουθείς το άτομο που θέλεις να επιδοκιμάσεις posts: - one: Τουτ - other: Τουτ - posts_tab_heading: Τουτ + one: Ανάρτηση + other: Αναρτήσεις + posts_tab_heading: Αναρτήσεις admin: account_actions: action: Εκτέλεση ενέργειας @@ -31,11 +31,11 @@ el: created_msg: Επιτυχής δημιουργία σημειώματος συντονισμού! destroyed_msg: Η σημείωση συντονισμού καταστράφηκε επιτυχώς! accounts: - add_email_domain_block: Εγγραφή τομέα email σε μαύρη λίστα + add_email_domain_block: Αποκλεισμός τομέα email approve: Έγκριση approved_msg: Επιτυχής έγκριση αίτησης εγγραφής του/της %{username} are_you_sure: Σίγουρα; - avatar: Αβατάρ + avatar: Άβαταρ by_domain: Τομέας change_email: changed_msg: Το email άλλαξε επιτυχώς! @@ -57,27 +57,27 @@ el: deleted: Διαγραμμένοι demote: Υποβίβαση destroyed_msg: Τα δεδομένα του/της %{username} εκκρεμούν για άμεση διαγραφή - disable: Απενεργοποίηση + disable: Πάγωμα disable_sign_in_token_auth: Απενεργοποίηση επαλήθευσης μέσω email disable_two_factor_authentication: Απενεργοποίηση 2FA - disabled: Απενεργοποιημένο - display_name: Όνομα εμφάνισης + disabled: Παγωμένος + display_name: Εμφανιζόμενο όνομα domain: Τομέας edit: Επεξεργασία email: Email email_status: Κατάσταση email - enable: Ενεργοποίηση + enable: Ξεπάγωμα enable_sign_in_token_auth: Ενεργοποίηση ελέγχου ταυτότητας μέσω e-mail enabled: Ενεργοποιημένο enabled_msg: Επιτυχές ξεπάγωμα λογαριασμού του/της %{username} followers: Ακόλουθοι follows: Ακολουθεί - header: Επικεφαλίδα + header: Κεφαλίδα inbox_url: URL εισερχομένων - invite_request_text: Λόγοι για εγγραφή + invite_request_text: Λόγοι για συμμετοχή invited_by: Προσκλήθηκε από ip: IP - joined: Γράφτηκε + joined: Έγινε μέλος location: all: Όλες local: Τοπική @@ -85,15 +85,15 @@ el: title: Τοποθεσία login_status: Κατάσταση σύνδεσης media_attachments: Συνημμένα πολυμέσα - memorialize: Μετατροπή σε νεκρολογία - memorialized: Μετατροπή σε αναμνηστικό - memorialized_msg: Επιτυχής μετατροπή λογαριασμού του/της %{username} σε αναμνηστικό + memorialize: Μετατροπή σε εις μνήμην + memorialized: Μετατράπηκε σε εις μνήμην + memorialized_msg: Επιτυχής μετατροπή λογαριασμού του/της %{username} σε εις μνήμην moderation: - active: Ενεργός/ή - all: Όλα + active: Ενεργός + all: Όλοι disabled: Απενεργοποιημένο pending: Εκκρεμούν - silenced: Περιορισμένοι + silenced: Περιορισμένη suspended: Σε αναστολή title: Συντονισμός moderation_notes: Σημειώσεις συντονισμού @@ -102,8 +102,8 @@ el: no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος no_limits_imposed: Χωρίς όρια no_role_assigned: Δεν έχει ανατεθεί ρόλος - not_subscribed: Άνευ συνδρομής - pending: Εκκρεμεί έγκριση + not_subscribed: Δεν έγινε εγγραφή + pending: Εκκρεμεί αξιολόγηση perform_full_suspension: Αναστολή previous_strikes: Προηγούμενα παραπτώματα previous_strikes_description_html: @@ -113,15 +113,15 @@ el: protocol: Πρωτόκολλο public: Δημόσιο push_subscription_expires: Η εγγραφή PuSH λήγει - redownload: Ανανέωση αβατάρ - redownloaded_msg: Επιτυχής ανανέωη προφίλ του/της %{username} από την πηγή + redownload: Ανανέωση άβαταρ + redownloaded_msg: Επιτυχής ανανέωση προφίλ του/της %{username} από την πηγή reject: Απόρριψη rejected_msg: Επιτυχής απόρριψη αίτησης εγγραφής του/της %{username} remote_suspension_irreversible: Τα δεδομένα αυτού του λογαριασμού έχουν διαγραφεί αμετάκλητα. - remote_suspension_reversible_hint_html: Ο λογαριασμός έχει ανασταλλεί στον server του και τα δεδομένα του θα διαγραφούν πλήρως στις %{date}. Μέχρι τότε, ο απομακρυσμένος server μπορεί να επαναφέρει τον λογαριασμό χωρίς επιπτώσεις. Αν θέλεις να διαγράψεις αμέσως όλα τα δεδομένα του λογαριασμού, μπορείς να το κάνεις παρακάτω. - remove_avatar: Απομακρυσμένο αβατάρ - remove_header: Αφαίρεση επικεφαλίδας - removed_avatar_msg: Επιτυχής αφαίρεση εικόνας προφίλ του/της%{username} + remote_suspension_reversible_hint_html: Ο λογαριασμός έχει ανασταλλεί στον διακομιστή του και τα δεδομένα του θα διαγραφούν πλήρως στις %{date}. Μέχρι τότε, ο απομακρυσμένος διακομιστής μπορεί να επαναφέρει τον λογαριασμό χωρίς επιπτώσεις. Αν θέλεις να διαγράψεις αμέσως όλα τα δεδομένα του λογαριασμού, μπορείς να το κάνεις παρακάτω. + remove_avatar: Αφαίρεση άβαταρ + remove_header: Αφαίρεση κεφαλίδας + removed_avatar_msg: Επιτυχής αφαίρεση εικόνας προφίλ του/της %{username} removed_header_msg: Επιτυχής αφαίρεση εικόνας κεφαλίδας του/της %{username} resend_confirmation: already_confirmed: Ήδη επιβεβαιωμένος χρήστης @@ -139,14 +139,14 @@ el: only_password: Μόνο κωδικός πρόσβασης password_and_2fa: Κωδικός πρόσβασης και 2FA sensitive: Ευαίσθητο - sensitized: σήμανση ως ευαίσθητο + sensitized: Επισημάνθηκε ως ευαίσθητος shared_inbox_url: URL κοινόχρηστων εισερχομένων show: - created_reports: Αναφορές από αυτόν το λογαριασμό - targeted_reports: Αναφορές για αυτόν το λογαριασμό - silence: Αποσιώπησε - silenced: Αποσιωπημένοι - statuses: Καταστάσεις + created_reports: Αναφορές από τον ίδιο + targeted_reports: Αναφορές από άλλους + silence: Περιορισμός + silenced: Περιορισμένος + statuses: Αναρτήσεις strikes: Προηγούμενα παραπτώματα subscribe: Εγγραφή suspend: Αναστολή @@ -154,20 +154,20 @@ el: suspension_irreversible: Τα δεδομένα αυτού του λογαριασμού έχουν διαγραφεί οριστικά. Μπορείς να άρεις την αναστολή του λογαριασμού για να μπορέσει να χρησιμοποιηθεί αλλά αυτό δεν θα επαναφέρει όσα δεδομένα είχε προηγουμένως. suspension_reversible_hint_html: Ο λογαριασμός έχει ανασταλλεί και τα δεδομένα του θα διαγραφούν πλήρως στις %{date}. Μέχρι τότε ο λογαριασμός μπορεί να επανέλθει κανονικά. Αν θέλεις να διαγράψεις όλα τα δεδομένα του λογαριασμού, μπορείς να το κάνεις παρακάτω. title: Λογαριασμοί - unblock_email: Ξεμπλοκάρισμα διεύθυνσης email - unblocked_email_msg: Επιτυχής κατάργηση αποκλεισμού διεύθυνσης ηλεκτρονικού ταχυδρομείου %{username} + unblock_email: Άρση αποκλεισμού διεύθυνσης email + unblocked_email_msg: Επιτυχής άρση αποκλεισμού διεύθυνσης email %{username} unconfirmed_email: Ανεπιβεβαίωτο email - undo_sensitized: Αναίρεση ευαίσθητου - undo_silenced: Αναίρεση αποσιώπησης + undo_sensitized: Άρση ευαίσθητου + undo_silenced: Άρση περιορισμού undo_suspension: Αναίρεση παύσης unsilenced_msg: Επιτυχής άρση περιορισμών λογαριασμού του/της %{username} unsubscribe: Κατάργηση εγγραφής unsuspended_msg: Επιτυχής άρση αναστολής λογαριασμού του/της %{username} username: Όνομα χρήστη - view_domain: Προβολή περίληψης για τομέα + view_domain: Προβολή περίληψης τομέα warn: Προειδοποίηση web: Διαδίκτυο - whitelisted: Εγκεκριμένοι + whitelisted: Εγκεκριμένοι για συναλλαγές action_logs: action_types: approve_appeal: Έγκριση Έφεσης @@ -180,9 +180,9 @@ el: create_announcement: Δημιουργία Ανακοίνωσης create_canonical_email_block: Δημιουργία αποκλεισμού e-mail create_custom_emoji: Δημιουργία Προσαρμοσμένου Emoji - create_domain_allow: Δημιουργία Επιτρεπτού Τομέα - create_domain_block: Δημιουργία Αποκλεισμένου Τομέα - create_email_domain_block: Δημουργία Αποκλεισμένου Τομέα email + create_domain_allow: Δημιουργία ΑποδεκτούΤομέα + create_domain_block: Δημιουργία Αποκλεισμού Τομέα + create_email_domain_block: Δημουργία Αποκλεισμού Τομέα email create_ip_block: Δημιουργία κανόνα IP create_unavailable_domain: Δημιουργία Μη Διαθέσιμου Τομέα create_user_role: Δημιουργία ρόλου @@ -190,7 +190,7 @@ el: destroy_announcement: Διαγραφή Ανακοίνωσης destroy_canonical_email_block: Διαγραφή Αποκλεισμού email destroy_custom_emoji: Διαγραφή Προσαρμοσμένου Emoji - destroy_domain_allow: Διαγραφή Επιτρεπτού Τομέα + destroy_domain_allow: Διαγραφή Αποδεκτού Τομέα destroy_domain_block: Διαγραφή Αποκλεισμού Τομέα destroy_email_domain_block: Διαγραφή Αποκλεισμένου Τομέα email destroy_instance: Εκκαθάριση Τομέα @@ -205,33 +205,33 @@ el: enable_custom_emoji: Ενεργοποίηση Προσαρμοσμένων Emoji enable_sign_in_token_auth_user: Ενεργοποίηση Ελέγχου Ταυτότητας Μέσω E-mail για το Χρήστη enable_user: Ενεργοποίηση Χρήστη - memorialize_account: Μετατροπή Λογαριασμού σε Αναμνηστικό + memorialize_account: Μετατροπή Λογαριασμού σε Εις Μνήμην promote_user: Προαγωγή Χρήστη reject_appeal: Απόρριψη Έφεσης reject_user: Απόρριψη Χρήστη - remove_avatar_user: Αφαίρεση Avatar - reopen_report: Ξανάνοιγμα Καταγγελίας + remove_avatar_user: Αφαίρεση Άβαταρ + reopen_report: Ξανάνοιγμα Ανααφοράς resend_user: Επαναποστολή του email επιβεβαίωσης reset_password_user: Επαναφορά Συνθηματικού - resolve_report: Επίλυση Καταγγελίας - sensitive_account: Σήμανση των πολυμέσων στον λογαριασμό σας ως ευαίσθητων - silence_account: Σίγαση Λογαριασμού + resolve_report: Επίλυση Αναφοράς + sensitive_account: Ευαίσθητος Λογιαριασμός + silence_account: Περιορισμός Λογαριασμού suspend_account: Αναστολή Λογαριασμού - unassigned_report: Αποδέσμευση Καταγγελίας - unblock_email_account: Ξεμπλοκάρισμα διεύθυνσης email - unsensitive_account: Αφαίρεση σήμανσης των πολυμέσων στον λογαριασμό σας ως ευαίσθητων - unsilence_account: Άρση Σίγασης Λογαριασμού + unassigned_report: Αποδέσμευση Αναφοράς + unblock_email_account: Άρση αποκλεισμού διεύθυνσης email + unsensitive_account: Άρση επισήμανσης Λογαριασμού ως Ευαίσθητο + unsilence_account: Άρση Περιορισμού Λογαριασμού unsuspend_account: Άρση Αναστολής Λογαριασμού update_announcement: Ενημέρωση Ανακοίνωσης update_custom_emoji: Ενημέρωση Προσαρμοσμένου Emoji update_domain_block: Ενημέρωση Αποκλεισμού Τομέα update_ip_block: Ενημέρωση κανόνα IP - update_status: Ενημέρωση Κατάστασης + update_status: Ενημέρωση Ανάρτησης update_user_role: Ενημέρωση ρόλου actions: approve_appeal_html: Ο/Η %{name} ενέκρινε την ένσταση της απόφασης των συντονιστών από %{target} - approve_user_html: "%{name} εγκρίθηκε εγγραφή από %{target}" - assigned_to_self_report_html: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της + approve_user_html: ο/η %{name} ενέκρινε την εγγραφή του %{target} + assigned_to_self_report_html: Ο/Η %{name} ανάθεσε την αναφορά %{target} στον εαυτό του/της change_email_user_html: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target} change_role_user_html: Ο/Η %{name} άλλαξε ρόλο του/της %{target} confirm_user_html: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target} @@ -239,7 +239,7 @@ el: create_announcement_html: Ο/Η %{name} δημιούργησε νέα ανακοίνωση %{target} create_canonical_email_block_html: Ο/Η %{name} απέκλεισε e-mail με το hash %{target} create_custom_emoji_html: Ο/Η %{name} ανέβασε νέο emoji %{target} - create_domain_allow_html: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα + create_domain_allow_html: Ο/Η %{name} επέτρεψε την συναλλαγή με τον τομέα %{target} create_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα %{target} create_email_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα email %{target} create_ip_block_html: Ο/Η %{name} δημιούργησε κανόνα για την IP %{target} @@ -257,18 +257,18 @@ el: destroy_status_html: Ο/Η %{name} αφαίρεσε την ανάρτηση του/της %{target} destroy_unavailable_domain_html: Ο/Η %{name} ξανάρχισε να τροφοδοτεί το domain %{target} destroy_user_role_html: Ο/Η %{name} διέγραψε τον ρόλο του %{target} - disable_2fa_user_html: Ο/Η %{name} απενεργοποίησε το two factor requirement για τον χρήστη %{target} + disable_2fa_user_html: Ο/Η %{name} απενεργοποίησε την απαίτηση για ταυτοποίηση δύο παραγόντων για τον χρήστη %{target} disable_custom_emoji_html: Ο/Η %{name} απενεργοποίησε το emoji %{target} - disable_sign_in_token_auth_user_html: Ο/Η %{name} απενεργοποίησε την πιστοποίηση e-mail token του %{target} + disable_sign_in_token_auth_user_html: Ο/Η %{name} απενεργοποίησε την ταυτοποίηση χαρακτηριστικού μέσω e-mail του %{target} disable_user_html: Ο/Η %{name} απενεργοποίησε τη σύνδεση για τον χρήστη %{target} enable_custom_emoji_html: Ο/Η %{name} ενεργοποίησε το emoji %{target} - enable_sign_in_token_auth_user_html: Ο/Η %{name} ενεργοποίησε την πιστοποίηση e-mail token του %{target} + enable_sign_in_token_auth_user_html: Ο/Η %{name} ενεργοποίησε την ταυτοποίηση χαρακτηριστικού μέσω e-mail του %{target} enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target} - memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης + memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα εις μνήμην promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target} reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των συντονιστών από %{target} - reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}" - remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target} + reject_user_html: ο/η %{name} απέρριψε την εγγραφή από %{target} + remove_avatar_user_html: ο/η %{name} αφαίρεσε το άβαταρ του/της %{target} reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target} resend_user_html: Ο/Η %{name} έστειλε ξανά e-mail επιβεβαίωσης για τον/την %{target} reset_password_user_html: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target} @@ -277,11 +277,11 @@ el: silence_account_html: Ο/Η %{name} περιόρισε τον λογαριασμό του/της %{target} suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target} unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target} - unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}" - unsensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα - unsilence_account_html: Ο/Η %{name} αφαίρεσε το όριο του λογαριασμού του/της %{target} + unblock_email_account_html: "%{name} έκανε άρση αποκλεισμού στη διεύθυνση email του %{target}" + unsensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως μη ευαίσθητα + unsilence_account_html: Ο/Η %{name} αφαίρεσε το περιορισμό του λογαριασμού του/της %{target} unsuspend_account_html: Ο/Η %{name} επανέφερε τον λογαριασμό του/της %{target} - update_announcement_html: Ο/Η %{name} ενημέρωση την ανακοίνωση %{target} + update_announcement_html: Ο/Η %{name} ενημέρωσε την ανακοίνωση %{target} update_custom_emoji_html: Ο/Η %{name} ενημέρωσε το emoji %{target} update_domain_block_html: Ο/Η %{name} ενημέρωσε τον αποκλεισμό τομέα για %{target} update_ip_block_html: Ο/Η %{name} άλλαξε τον κανόνα για την IP %{target} @@ -310,12 +310,12 @@ el: unpublished_msg: Επιτυχής ακύρωση δημοσίευσης ανακοίνωσης! updated_msg: Επιτυχής ενημέρωση ανακοίνωσης! custom_emojis: - assign_category: Κατηγορία + assign_category: Ανάθεση κατηγορίας by_domain: Τομέας copied_msg: Επιτυχής δημιουργία τοπικού αντίγραφου του emoji copy: Αντιγραφή copy_failed_msg: Αδυναμία δημιουργίας τοπικού αντίγραφου αυτού του emoji - create_new_category: Νέα κατηγορία + create_new_category: Δημιούργησε νέα κατηγορία created_msg: Επιτυχής δημιουργία του emoji! delete: Διαγραφή destroyed_msg: Επιτυχής καταστροφή του emojo! @@ -327,7 +327,7 @@ el: enabled: Ενεργοποιημένα enabled_msg: Επιτυχής ενεργοποίηση αυτού του emoji image_hint: PNG ή GIF έως %{size} - list: Εμφάνιση + list: Παράθεση listed: Αναφερθέντα new: title: Προσθήκη νέου προσαρμοσμένου emoji @@ -338,17 +338,20 @@ el: shortcode_hint: Τουλάχιστον 2 χαρακτήρες, μόνο αλφαριθμητικοί και κάτω παύλες title: Προσαρμοσμένα emoji uncategorized: Χωρίς κατηγορία - unlist: Απόκρυψη + unlist: Αφαίρεση από λίστα unlisted: Μη καταχωρημένα update_failed_msg: Αδυναμία ενημέρωσης του emoji updated_msg: Επιτυχής ενημέρωση του emoji! - upload: Ανέβασμα + upload: Μεταμόρφωση dashboard: active_users: ενεργοί χρήστες interactions: αλληλεπιδράσεις - media_storage: Αποθηκευτικός Χώρος + media_storage: Χώρος πολυμέσων new_users: νέοι χρήστες - opened_reports: αναφορές που ανοίχτηκαν + opened_reports: ανοιγμένες αναφορές + pending_appeals_html: + one: "%{count} έφεση σε εκκρεμότητα" + other: "%{count} εφέσεις σε εκκρεμότητα" pending_reports_html: one: "%{count} εκκρεμής αναφορά" other: "%{count} εκκρεμείς αναφορές" @@ -372,17 +375,17 @@ el: title: Εφέσεις domain_allows: add_new: Έγκριση τομέα - created_msg: Ο τομέας εγκρίθηκε με επιτυχία - destroyed_msg: Ο τομέας δεν είναι πια εγκεκριμένος + created_msg: Ο τομέας εγκρίθηκε με επιτυχία για συναλλαγές + destroyed_msg: Ο τομέας δεν είναι πια εγκεκριμένος για συναλλαγές export: Εξαγωγή import: Εισαγωγή - undo: Αφαίρεση έγκρισης + undo: Αφαίρεση συναλλαγής με τον τομέα domain_blocks: - add_new: Προσθήκη νέου + add_new: Προσθήκη νέου αποκλεισμού τομέα created_msg: Ο αποκλεισμός τομέα είναι υπό επεξεργασία - destroyed_msg: Ο αποκλεισμός τομέα άρθηκε + destroyed_msg: Ο αποκλεισμός τομέα αναιρέθηκε domain: Τομέας - edit: Επεξεργασία αποκλεισμένου τομέα + edit: Επεξεργασία αποκλεισμού τομέα existing_domain_block: Έχετε ήδη επιβάλει αυστηρότερα όρια στο %{name}. existing_domain_block_html: Έχεις ήδη επιβάλλει αυστηρότερους περιορισμούς στο %{name}, πρώτα θα πρέπει να τους αναιρέσεις. export: Εξαγωγή @@ -391,7 +394,7 @@ el: create: Δημιουργία αποκλεισμού hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές συντονισμού σε αυτούς τους λογαριασμούς. severity: - desc_html: Ο περιορισμός θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων. + desc_html: Ο περιορισμός θα κάνει αόρατες τις ανάρτησεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων. noop: Κανένα silence: Περιορισμός suspend: Αναστολή @@ -403,33 +406,33 @@ el: private_comment: Ιδιωτικό σχόλιο private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους συντονιστές. public_comment: Δημόσιο σχόλιο - public_comment_hint: Σχόλιο σχετικά με τον περιορισμό αυτού του τομέα προς το κοινό, αν η λειτουργία δημοσιοποίησης των περιορισμένων τομέων είναι ενεργοποιημένη. - reject_media: Απόρριψη πολυμέσων + public_comment_hint: Σχόλιο σχετικά με τον περιορισμό αυτού του τομέα προς το κοινό, αν η λειτουργία διαφήμισης των περιορισμένων τομέων είναι ενεργοποιημένη. + reject_media: Απόρριψη αρχείων πολυμέσων reject_media_hint: Αφαιρεί τα τοπικά αποθηκευμένα αρχεία πολυμέσων και αποτρέπει τη λήψη άλλων στο μέλλον. Δεν έχει σημασία για τις αναστολές - reject_reports: Απόρριψη καταγγελιών - reject_reports_hint: Αγνόηση όσων καταγγελιών προέρχονται από αυτό τον τομέα. Δεν σχετίζεται με τις παύσεις - undo: Αναίρεση + reject_reports: Απόρριψη αναφορών + reject_reports_hint: Αγνόησε όσων αναφορών που προέρχονται από αυτό τον τομέα. Δεν σχετίζεται με τις παύσεις + undo: Αναίρεση αποκλεισμού τομέα view: Εμφάνιση αποκλεισμού τομέα email_domain_blocks: add_new: Πρόσθεση νέου attempts_over_week: one: "%{count} προσπάθεια την τελευταία εβδομάδα" other: "%{count} προσπάθειες εγγραφής την τελευταία εβδομάδα" - created_msg: Επιτυχής πρόσθεση email τομέα σε μαύρη λίστα + created_msg: Επιτυχής αποκλεισμού email τομέα delete: Διαγραφή dns: types: mx: Εγγραφή MX domain: Τομέας new: - create: Πρόσθεση τομέα + create: Προσθήκη τομέα resolve: Επίλυση τομέα - title: Νέα εγγραφή email στη μαύρη λίστα + title: Αποκλεισμός νέου τομέα email no_email_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας not_permitted: Δεν επιτρέπεται resolved_dns_records_hint_html: Το όνομα τομέα επιλύεται στους ακόλουθους τομείς MX, οι οποίοι είναι τελικά υπεύθυνοι για την αποδοχή των e-mail. Αποκλείοντας έναν τομέα MX θα μπλοκάρει τις εγγραφές από οποιαδήποτε διεύθυνση email που χρησιμοποιεί τον ίδιο τομέα MX, ακόμη και αν το ορατό όνομα τομέα είναι διαφορετικό. Προσέξτε να μην αποκλείσετε τους μεγάλους παρόχους ηλεκτρονικού ταχυδρομείου. resolved_through_html: Επιλύθηκε μέσω %{domain} - title: Μαύρη λίστα email + title: Αποκλεισμένοι τομείς email export_domain_allows: new: title: Εισαγωγή επιτρεπόμενων τομέων @@ -451,14 +454,14 @@ el: status: Κατάσταση suppress: Καταστολή της πρότασης ακολούθησης suppressed: Κατασταλμένο - title: Ακολουθήστε τις προτάσεις + title: Ακολούθησε τις προτάσεις unsuppress: Επαναφορά των συστάσεων ακολούθησης instances: availability: description_html: - one: Εάν η παράδοση στον τομέα αποτύχει για %{count} ημέρα, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί. - other: Εάν η παράδοση στον τομέα αποτύχει για %{count} διαφορετικές ημέρες, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί. - failure_threshold_reached: Το όριο αποτυχίας έφτασε στο %{date}. + one: Εάν η παράδοση στον τομέα αποτύχει για %{count} ημέρα, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα ληφθεί. + other: Εάν η παράδοση στον τομέα αποτύχει για %{count} διαφορετικές ημέρες, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα ληφθεί. + failure_threshold_reached: Το όριο αποτυχίας επετεύχθη στις %{date}. failures_recorded: one: Αποτυχία προσπάθειας την %{count} ημέρα. other: Αποτυχημένες προσπάθειες σε %{count} διαφορετικές ημέρες. @@ -467,13 +470,13 @@ el: warning: Η τελευταία προσπάθεια σύνδεσης σε αυτόν τον διακομιστή απέτυχε back_to_all: Όλα back_to_limited: Περιορισμένα - back_to_warning: Προσοχή + back_to_warning: Προειδοποίηση by_domain: Τομέας - confirm_purge: Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τα δεδομένα από αυτόν τον τομέα; + confirm_purge: Είσαι βέβαιος ότι θες να διαγράψεις μόνιμα τα δεδομένα από αυτόν τον τομέα; content_policies: comment: Εσωτερική σημείωση - description_html: Μπορείτε να ορίσετε τις πολιτικές περιεχομένου που θα εφαρμόζονται σε όλους τους λογαριασμούς από αυτόν τον τομέα και οποιονδήποτε από τους υποτομείς του. - limited_federation_mode_description_html: Μπορείτε να επιλέξετε αν θα επιτρέψετε την ομοσπονδία με αυτόν τον τομέα. + description_html: Μπορείς να ορίσεις τις πολιτικές περιεχομένου που θα εφαρμόζονται σε όλους τους λογαριασμούς από αυτόν τον τομέα και οποιονδήποτε από τους υποτομείς του. + limited_federation_mode_description_html: Μπορείτε να επιλέξετε αν θα επιτρέψετε τις συναλλαγές με αυτόν τον τομέα. policies: reject_media: Απόρριψη πολυμέσων reject_reports: Απόρριψη αναφορών @@ -490,11 +493,11 @@ el: instance_languages_dimension: Κορυφαίες γλώσσες instance_media_attachments_measure: αποθηκευμένα συνημμένα πολυμέσων instance_reports_measure: αναφορές γι' αυτές - instance_statuses_measure: αποθηκευμένες δημοσιεύσεις + instance_statuses_measure: αποθηκευμένες αναρτήσεις delivery: all: Όλες clear: Εκκαθάριση σφαλμάτων παράδοσης - failing: Αποτυγχάνει + failing: Αποτυχημένες restart: Επανεκκίνηση παράδοσης stop: Διακοπή παράδοσης unavailable: Μη διαθέσιμο @@ -513,12 +516,12 @@ el: private_comment: Ιδιωτικό σχόλιο public_comment: Δημόσιο σχόλιο purge: Εκκαθάριση - purge_description_html: Εάν πιστεύετε ότι αυτός ο τομέας είναι εκτός σύνδεσης για πάντα, μπορείτε να διαγράψετε όλες τις καταχωρήσεις λογαριασμών και τα σχετικά δεδομένα από αυτόν τον τομέα από τον αποθηκευτικό σας χώρο. Αυτό μπορεί να διαρκέσει λίγη ώρα. - title: Γνωστοί κόμβοι - total_blocked_by_us: Μπλοκάρονται από εμάς + purge_description_html: Εάν πιστεύεις ότι αυτός ο τομέας είναι πλήρως εκτός σύνδεσης, μπορείς να διαγράψεις όλες τις καταχωρήσεις λογαριασμών και τα σχετικά δεδομένα από αυτόν τον τομέα από τον αποθηκευτικό σου χώρο. Αυτό μπορεί να διαρκέσει λίγη ώρα. + title: Συναλλαγές + total_blocked_by_us: Αποκλεισμένοι από εμάς total_followed_by_them: Ακολουθούνται από εκείνους total_followed_by_us: Ακολουθούνται από εμάς - total_reported: Καταγγελίες προς εκείνους + total_reported: Αναφορές προς εκείνους total_storage: Συνημμένα πολυμέσα totals_time_period_hint_html: Τα σύνολα που εμφανίζονται παρακάτω περιλαμβάνουν στοιχεία από την αρχή. invites: @@ -545,26 +548,26 @@ el: no_ip_block_selected: Δεν άλλαξαν οι κανόνες IP καθώς κανένας δεν επιλέχθηκε title: Κανόνες IP relationships: - title: Σχέσεις %{acct} + title: Σχέσεις του %{acct} relays: - add_new: Πρόσθεσε νέο ανταποκριτή (relay) + add_new: Προσθήκη νέου ανταποκριτή delete: Διαγραφή - description_html: Ο ομοσπονδιακός ανταποκριτής είναι ένας ενδιάμεσος εξυπηρετητής (server) που ανταλλάσσει μεγάλους όγκους δημόσιων τουτ μεταξύ εξυπηρετητών που εγγράφονται και δημοσιεύουν σε αυτόν. Βοηθάει μικρούς και μεσαίους εξυπηρετητές να ανακαλύψουν περιεχόμενο στο fediverse, που υπό άλλες συνθήκες θα χρειαζόταν κάποιους τοπικούς χρήστες που να ακολουθούν χρήστες σε απομακρυσμένους εξυπηρετητές. + description_html: Ο ανταποκριτής συναλλαγών είναι ένας ενδιάμεσος διακομιστής που ανταλλάσσει μεγάλους όγκους δημόσιων αναρτήσεων μεταξύ διακομιστών που εγγράφονται και δημοσιεύουν σε αυτόν. Βοηθάει μικρούς και μεσαίους να ανακαλύψουν περιεχόμενο στο fediverse, που υπό άλλες συνθήκες θα χρειαζόταν κάποιους τοπικούς χρήστες που να ακολουθούν χρήστες σε απομακρυσμένους διακομιστές. disable: Απενεργοποίηση disabled: Απενεργοποιημένο enable: Ενεργοποίηση - enable_hint: Μόλις ενεργοποιηθεί, ο εξυπηρετητής (server) σου θα εγγραφεί σε όλα τα δημόσια τουτ αυτού του ανταποκριτή (relay) και θα αρχίσει να προωθεί τα δικά του δημόσια τουτ σε αυτόν. + enable_hint: Μόλις ενεργοποιηθεί, ο διακομιστής σου θα εγγραφεί σε όλα τις δημόσιες αναρτήσεις αυτού του ανταποκριτή και θα αρχίσει να προωθεί τις δικές του δημόσιες αναρτήσεις σε αυτόν. enabled: Ενεργοποιημένο inbox_url: URL ανταποκριτή pending: Περιμένοντας την έγκριση του ανταποκριτή save_and_enable: Αποθήκευση και ενεργοποίηση setup: Όρισε μια σύνδεση ανταπόκρισης - signatures_not_enabled: Οι ανταποκριτές δεν θα λειτουργούν σωστά όσο είναι ενεργοποιημένες οι επιλογές ασφαλούς λειτουργίας ή επιτρεπόμενων συνδέσεων + signatures_not_enabled: Οι ανταποκριτές δεν θα λειτουργούν σωστά όσο είναι ενεργοποιημένες οι επιλογές ασφαλούς λειτουργίας ή περιορισμένων συναλλαγών status: Κατάσταση title: Ανταποκριτές report_notes: - created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας! - destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας! + created_msg: Επιτυχής δημιουργία σημείωσης αναφοράς! + destroyed_msg: Επιτυχής διαγραφή σημείωσης αναφοράς! reports: account: notes: @@ -576,16 +579,16 @@ el: delete_description_html: Οι δημοσιεύσεις με αναφορά θα διαγραφούν και θα καταγραφεί μια ποινή που θα σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβάσεις από τον ίδιο λογαριασμό. mark_as_sensitive_description_html: Τα πολυμέσα με αναφορά θα επισημανθούν ως ευαίσθητα και θα καταγραφεί μια ποινή που θα σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβάσεις από τον ίδιο λογαριασμό. other_description_html: Δείτε περισσότερες επιλογές για τον έλεγχο της συμπεριφοράς του λογαριασμού και προσαρμόσετε την επικοινωνία στον αναφερόμενο λογαριασμό. - resolve_description_html: Δεν θα ληφθούν μέτρα κατά του αναφερόμενου λογαριασμού, δεν θα καταγραφεί καμία ποινή, και η αναφορά θα κλείσει. + resolve_description_html: Δεν θα ληφθούν μέτρα κατά του αναφερόμενου λογαριασμού, δεν θα καταγραφεί κανένα παράπτωμα, και η αναφορά θα κλείσει. silence_description_html: Ο λογαριασμός θα είναι ορατός μόνο σε εκείνους που ήδη τον ακολουθούν ή τον αναζητούν χειροκίνητα, περιορίζοντας κατά πολύ την εμβέλειά του. Η ενέργεια αυτή είναι αναστρέψιμη. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού. suspend_description_html: Ο λογαριασμός και όλο το περιεχόμενό του θα είναι απρόσιτα και τελικά θα διαγραφούν και η αλληλεπίδραση με αυτόν θα είναι αδύνατη. Αναστρέψιμη εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού. - actions_description_html: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Εάν προβείτε σε τιμωρητική ενέργεια κατά του αναφερόμενου λογαριασμού, θα αποσταλεί ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε αυτούς, εκτός όταν η κατηγορία Σπαμ είναι επιλεγμένη. - actions_description_remote_html: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Αυτό θα επηρεάσει μόνο το πώς ο δικός σας διακομιστής επικοινωνεί με αυτόν τον απομακρυσμένο λογαριασμό και χειρίζεται το περιεχόμενό του. - add_to_report: Προσθέστε περισσότερα στην αναφορά + actions_description_html: Αποφάσισε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Εάν προβείς σε τιμωρητική ενέργεια κατά του αναφερόμενου λογαριασμού, θα αποσταλεί ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε αυτόν, εκτός όταν η κατηγορία Σπαμ είναι επιλεγμένη. + actions_description_remote_html: Αποφάσισε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Αυτό θα επηρεάσει μόνο το πώς ο δικός σας διακομιστής επικοινωνεί με αυτόν τον απομακρυσμένο λογαριασμό και χειρίζεται το περιεχόμενό του. + add_to_report: Πρόσθεσε περισσότερα στην αναφορά are_you_sure: Σίγουρα; assign_to_self: Ανάθεση σε μένα assigned: Αρμόδιος συντονιστής - by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία + by_target_domain: Τομέας του αναφερόμενου λογαριασμού cancel: Άκυρο category: Κατηγορία category_description_html: Ο λόγος για τον οποίο αναφέρθηκε αυτός ο λογαριασμός και/ή το περιεχόμενο θα εσωκλείεται σε επικοινωνία με τον αναφερόμενο λογαριασμό @@ -593,57 +596,57 @@ el: none: Κανένα comment_description_html: 'Για να δώσει περισσότερες πληροφορίες, ο/η %{name} έγραψε:' confirm: Επιβεβαίωση - confirm_action: Επιβεβαίωση ενέργειαςδιαχείρισης ενάντια στον λογαριασμό @%{acct} - created_at: Καταγγέλθηκε - delete_and_resolve: Διαγραφή δημοσιεύσεων + confirm_action: Επιβεβαίωση ενέργειας συντονισμού ενάντια στον λογαριασμό @%{acct} + created_at: Αναφέρθηκε + delete_and_resolve: Διαγραφή αναρτήσεων forwarded: Προωθημένα forwarded_to: Προώθημένα προς %{domain} - mark_as_resolved: Σημειωμένο ως επιλυμένο + mark_as_resolved: Σημείωση ως επιλυμένο mark_as_sensitive: Σήμανση ως ευαίσθητο - mark_as_unresolved: Σημειωμένο ως ανεπίλυτο + mark_as_unresolved: Σήμανση ως ανεπίλυτο no_one_assigned: Κανένας notes: create: Πρόσθεσε σημείωση - create_and_resolve: Επίλυσε με σημείωση - create_and_unresolve: Ξανάνοιξε με σημείωση + create_and_resolve: Επίλυσε μέ σημείωση + create_and_unresolve: Ξανάνοιξε μέ σημείωση delete: Διαγραφή - placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση... + placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη σχετική ενημέρωση... title: Σημειώσεις - notes_description_html: Δείτε και αφήστε σημειώσεις σε άλλους διαχειριστές και τον μελλοντικό εαυτό σας + notes_description_html: Δες και άφησε σημειώσεις σε άλλους συντονιστές και τον μελλοντικό εαυτό σου processed_msg: 'Η αναφορά #%{id} διεκπεραιώθηκε με επιτυχία' - quick_actions_description_html: 'Κάντε μια γρήγορη ενέργεια ή μετακινηθείτε προς τα κάτω για να δείτε το αναφερόμενο περιεχόμενο:' + quick_actions_description_html: 'Κάνε μια γρήγορη ενέργεια ή μετακινήσου προς τα κάτω για να δεις το αναφερόμενο περιεχόμενο:' remote_user_placeholder: ο απομακρυσμένος χρήστης από %{instance} - reopen: Ξανάνοιξε την καταγγελία - report: 'Καταγγελία #%{id}' + reopen: Ξανάνοιξε την αναφορά + report: 'Αναφορά #%{id}' reported_account: Αναφερόμενος λογαριασμός reported_by: Αναφέρθηκε από resolved: Επιλύθηκε - resolved_msg: Η καταγγελία επιλύθηκε επιτυχώς! + resolved_msg: Η αναφορά επιλύθηκε επιτυχώς! skip_to_actions: Μετάβαση στις ενέργειες status: Κατάσταση statuses: Αναφερόμενο περιεχόμενο - statuses_description_html: Το προσβλητικό θα εσωκλείεται στην επικοινωνία με τον αναφερόμενο λογαριασμό + statuses_description_html: Το προσβλητικό περιεχόμενο θα εσωκλείεται στην επικοινωνία με τον αναφερόμενο λογαριασμό summary: action_preambles: - delete_html: 'Πρόκειται να αφαιρέσετε μερικές από τις δημοσιεύσεις του @%{acct}. Αυτό θα:' - mark_as_sensitive_html: 'Πρόκειται να επισημάνετε μερικές από τις δημοσιεύσεις του @%{acct} ως ευαίσθητες. Αυτό θα:' - silence_html: 'Πρόκειται να περιορίσετε τον λογαριασμό @%{acct}. Αυτό θα:' - suspend_html: 'Πρόκειται να αναστείλετε τον λογαριασμό @%{acct}. Αυτό θα:' + delete_html: 'Πρόκειται να αφαιρέσεις μερικές από τις αναρτήσεις του @%{acct}. Αυτό θα:' + mark_as_sensitive_html: 'Πρόκειται να επισημάνεις μερικές από τις αναρτήσεις του @%{acct} ως ευαίσθητες. Αυτό θα:' + silence_html: 'Πρόκειται να περιορίσεις τον λογαριασμό του @%{acct}. Αυτό θα:' + suspend_html: 'Πρόκειται να αναστείλεις τον λογαριασμό του @%{acct}. Αυτό θα:' actions: - delete_html: Αφαιρέστε τις προσβλητικές δημοσιεύσεις + delete_html: Αφαίρεσε τις προσβλητικές αναρτήσεις mark_as_sensitive_html: Σημειώστε τα πολυμέσα των προσβλητικών αναρτήσεων ως ευαίσθητα - silence_html: Περιορίστε σοβαρά την εμβέλεια του @%{acct} κάνοντας το προφίλ και το περιεχόμενό του ορατά μόνο σε άτομα που ήδη τον ακολουθούν ή που αναζητούν χειροκίνητα το προφίλ του + silence_html: Περιορίσε σοβαρά την εμβέλεια του @%{acct} κάνοντας το προφίλ και το περιεχόμενό του ορατά μόνο σε άτομα που ήδη τον ακολουθούν ή που αναζητούν χειροκίνητα το προφίλ του suspend_html: Αναστολή του @%{acct}, καθιστώντας το προφίλ και το περιεχόμενό του μη προσβάσιμα και αδύνατο να αλληλεπιδράσει κανείς με αυτά close_report: 'Επισήμανση αναφοράς #%{id} ως επιλυμένη' - close_reports_html: Επισημάνετε όλες τις αναφορές ενάντια στον λογαριασμό @%{acct} ως επιλυμένες - delete_data_html: Διαγράψτε το προφίλ και το περιεχόμενο του @%{acct} σε 30 ημέρες από τώρα εκτός και αν ανακληθεί η αναστολή εν τω μεταξύ + close_reports_html: Επισήμανε όλες τις αναφορές ενάντια στον λογαριασμό @%{acct} ως επιλυμένες + delete_data_html: Διάγραψε το προφίλ και το περιεχόμενο του @%{acct} σε 30 ημέρες από τώρα εκτός αν, εν τω μεταξύ, ανακληθεί η αναστολή preview_preamble_html: 'Ο @%{acct} θα λάβει μια προειδοποίηση με τα ακόλουθο περιεχόμενο:' - record_strike_html: Καταγράψτε μια ποινή εναντίον του @%{acct} για να σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβιάσεις από αυτόν τον λογαριασμό - send_email_html: Στείλτε στον @%{acct} ένα προειδοποιητικό e-mail - warning_placeholder: Προαιρετικές επιπλέον εξηγήσεις για αυτή την ενέργεια από τη διαχείριση. + record_strike_html: Κατάγραψε ένα παράπτωμα εναντίον του @%{acct} για να σε βοηθήσει να αποφασίσει; σε μελλοντικές παραβιάσεις από αυτόν τον λογαριασμό + send_email_html: Στείλε στον @%{acct} ένα προειδοποιητικό e-mail + warning_placeholder: Προαιρετικές επιπλέον εξηγήσεις για αυτή την ενέργεια από την ομάδα συντονισμού. target_origin: Προέλευση του αναφερόμενου λογαριασμού title: Αναφορές - unassign: Αποσύνδεση + unassign: Αναίρεση ανάθεσης unknown_action_msg: 'Άγνωστη ενέργεια: %{action}' unresolved: Άλυτη updated_at: Ενημερωμένη @@ -655,12 +658,12 @@ el: other: "%{count} χρήστες" categories: administration: Διαχείριση - devops: Devops + devops: DevOps invites: Προσκλήσεις moderation: Συντονισμός special: Ειδικός delete: Διαγραφή - description_html: Με τους ρόλους χρηστών, μπορείτε να προσαρμόσετε σε ποιες λειτουργίες και περιοχές του Mastodon, οι χρήστες σας μπορούν να έχουν πρόσβαση. + description_html: Με τους ρόλους χρηστών, μπορείς να προσαρμόσεις σε ποιες λειτουργίες και περιοχές του Mastodon, οι χρήστες σας μπορούν να έχουν πρόσβαση. edit: Επεξεργασία ρόλου '%{name}' everyone: Προεπιλεγμένα δικαιώματα everyone_full_description_html: Αυτός είναι ο βασικός ρόλος που επηρεάζει όλους τους χρήστες, ακόμη και εκείνους που δεν έχουν κάποιον ρόλο. Όλοι οι άλλοι ρόλοι κληρονομούν δικαιώματα από αυτόν. @@ -672,18 +675,18 @@ el: administrator_description: Οι χρήστες με αυτό το δικαίωμα θα παρακάμπτουν κάθε δικαίωμα delete_user_data: Διαγραφή Δεδομένων Χρήστη delete_user_data_description: Επιτρέπει στους χρήστες να διαγράφουν τα δεδομένα άλλων χρηστών χωρίς καθυστέρηση - invite_users: Πρόσκληση χρηστών + invite_users: Πρόσκληση Χρηστών invite_users_description: Επιτρέπει στους χρήστες να προσκαλούν νέα άτομα στον διακομιστή - manage_announcements: Διαχείριση ανακοινώσεων + manage_announcements: Διαχείριση Ανακοινώσεων manage_announcements_description: Επιτρέπει στους χρήστες να διαχειρίζονται ανακοινώσεις στον διακομιστή manage_appeals: Διαχείριση Εφέσεων - manage_appeals_description: Επιτρέπει στους χρήστες να εξετάζουν τις εφέσεις κατά των ενεργειών της συντονισμού + manage_appeals_description: Επιτρέπει στους χρήστες να εξετάζουν τις εφέσεις κατά των ενεργειών της ομάδας συντονισμού manage_blocks: Διαχείριση Αποκλεισμών manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους e-mail και διευθύνσεις IP manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή - manage_federation: Διαχείριση Ομοσπονδίας - manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν την ομοσπονδία με άλλους τομείς και να ελέγχουν την παράδοση + manage_federation: Διαχείριση Συναλλαγών + manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν τις συναλλαγές με άλλους τομείς και να ελέγχουν την παράδοση manage_invites: Διαχείριση Προσκλήσεων manage_invites_description: Επιτρέπει στους χρήστες να περιηγούνται και να απενεργοποιούν τους συνδέσμους πρόσκλησης manage_reports: Διαχείριση Αναφορών @@ -704,7 +707,7 @@ el: manage_webhooks_description: Επιτρέπει στους χρήστες να ορίζουν webhooks για συμβάντα διαχείρισης view_audit_log: Προβολή Καταλόγου Καταγραφών view_audit_log_description: Επιτρέπει στους χρήστες να βλέπουν ένα ιστορικό ενεργειών διαχείρισης στον διακομιστή - view_dashboard: Προβολή Ταμπλό πληροφοριών + view_dashboard: Προβολή Ταμπλό view_dashboard_description: Επιτρέπει στους χρήστες να έχουν πρόσβαση στον ταμπλό πληροφοριών και σε διάφορες μετρήσεις view_devops: DevOps view_devops_description: Επιτρέπει στους χρήστες να έχουν πρόσβαση στα ταμπλό πληροφοριών Sidekiq και pgHero @@ -712,7 +715,7 @@ el: rules: add_new: Προσθήκη κανόνα delete: Διαγραφή - description_html: Ενώ οι περισσότεροι ισχυρίζονται ότι έχουν διαβάσει και συμφωνούν με τους όρους της υπηρεσίας, συνήθως οι άνθρωποι δεν διαβάζουν μέχρι μετά την εμφάνιση ενός προβλήματος. Κάντε ευκολότερο να δουν τους κανόνες του διακομιστή σας με μια ματιά παρέχοντας τους σε μια λίστα σημείων. Προσπαθήστε να κρατήσετε μεμονωμένους κανόνες σύντομους και απλούς, αλλά προσπαθήστε να μην τους χωρίσετε σε πολλά ξεχωριστά αντικείμενα. + description_html: Ενώ οι περισσότεροι ισχυρίζονται ότι έχουν διαβάσει και συμφωνούν με τους όρους της υπηρεσίας, συνήθως οι άνθρωποι δεν διαβάζουν μέχρι μετά την εμφάνιση ενός προβλήματος. Κάνε ευκολότερο να δουν τους κανόνες του διακομιστή σας με μια ματιά παρέχοντας τους σε μια λίστα. Προσπάθησε να κρατήσεις τους μεμονωμένους κανόνες σύντομους και απλούς, αλλά προσπάθησε να μην τους χωρίσεις σε πολλά ξεχωριστά αντικείμενα. edit: Επεξεργασία κανόνα empty: Δεν έχουν οριστεί ακόμα κανόνες διακομιστή. title: Κανόνες διακομιστή @@ -723,20 +726,20 @@ el: rules_hint: Υπάρχει μια ειδική περιοχή για τους κανόνες που αναμένεται να τηρούν οι χρήστες σας. title: Σχετικά με appearance: - preamble: Προσαρμόστε τη διεπαφή ιστού του Mastodon. + preamble: Προσάρμοσε την ιστοσελίδα του Mastodon. title: Εμφάνιση branding: - preamble: Η ταυτότητα του διακομιστή σας, τον διαφοροποιεί από άλλους διακομιστές του δικτύου. Αυτές οι πληροφορίες μπορεί να εμφανίζονται σε διάφορα περιβάλλοντα, όπως η διαδικτυακή διεπαφή του Mastodon, εγγενείς εφαρμογές, σε προεπισκοπήσεις συνδέσμου σε άλλους ιστότοπους και εντός εφαρμογών μηνυμάτων και ούτω καθεξής. Γι' αυτό, είναι καλύτερο να διατηρούνται αυτές οι πληροφορίες σαφείς, σύντομες και συνοπτικές. + preamble: Η ταυτότητα του διακομιστή σου, τον διαφοροποιεί από άλλους διακομιστές του δικτύου. Αυτές οι πληροφορίες μπορεί να εμφανίζονται σε διάφορα περιβάλλοντα, όπως η ιστοσελίδα του Mastodon, εγγενείς εφαρμογές, σε προεπισκοπήσεις συνδέσμου σε άλλους ιστότοπους και εντός εφαρμογών μηνυμάτων και ούτω καθεξής. Γι' αυτό, είναι καλύτερο να διατηρούνται αυτές οι πληροφορίες σαφείς, σύντομες και συνοπτικές. title: Ταυτότητα content_retention: - preamble: Ελέγξτε πώς αποθηκεύεται το περιεχόμενο που δημιουργείται από τους χρήστες στο Mastodon. + preamble: Έλεγξε πώς αποθηκεύεται το περιεχόμενο που δημιουργείται από τους χρήστες στο Mastodon. title: Διατήρηση περιεχομένου default_noindex: - desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση οι ίδιοι + desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει οι ίδιοι αυτή τη ρύθμιση title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης discovery: - follow_recommendations: Ακολουθήστε τις προτάσεις - preamble: Δημοσιεύοντας ενδιαφέρον περιεχόμενο είναι καθοριστικό για την ενσωμάτωση νέων χρηστών που μπορεί να μη γνωρίζουν κανέναν στο Mastodon. Ελέγξτε πώς λειτουργούν διάφορες δυνατότητες ανακάλυψης στον διακομιστή σας. + follow_recommendations: Ακολούθησε τις προτάσεις + preamble: Δημοσιεύοντας ενδιαφέρον περιεχόμενο είναι καθοριστικό για την ενσωμάτωση νέων χρηστών που μπορεί να μη γνωρίζουν κανέναν στο Mastodon. Έλεγξε πώς λειτουργούν διάφορες δυνατότητες ανακάλυψης στον διακομιστή σας. profile_directory: Κατάλογος προφίλ public_timelines: Δημόσιες ροές publish_discovered_servers: Δημοσίευση διακομιστών που έχουν ανακαλυφθεί @@ -748,7 +751,7 @@ el: disabled: Για κανέναν users: Προς συνδεδεμένους τοπικούς χρήστες registrations: - preamble: Ελέγξτε ποιος μπορεί να δημιουργήσει ένα λογαριασμό στον διακομιστή σας. + preamble: Έλεγξε ποιος μπορεί να δημιουργήσει ένα λογαριασμό στον διακομιστή σας. title: Εγγραφές registrations_mode: modes: @@ -776,17 +779,17 @@ el: title: Πολυμέσα metadata: Μεταδεδομένα no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη - open: Άνοιγμα δημοσίευσης - original_status: Αρχική δημοσίευση + open: Άνοιγμα ανάρτησης + original_status: Αρχική ανάρτηση reblogs: Αναδημοσιεύσεις status_changed: Η ανάρτηση άλλαξε title: Καταστάσεις λογαριασμού - trending: Δημοφιλή + trending: Τάσεις visibility: Ορατότητα with_media: Με πολυμέσα strikes: actions: - delete_statuses: Ο/Η %{name} διέγραψε τις δημοσιεύσεις του/της %{target} + delete_statuses: Ο/Η %{name} διέγραψε τις αναρτήσεις του/της %{target} disable: Ο/Η %{name} πάγωσε τον λογαριασμό του/της %{target} mark_statuses_as_sensitive: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα none: Ο/Η %{name} έστειλε προειδοποίηση προς τον/την %{target} @@ -795,65 +798,162 @@ el: suspend: ο/η %{name} ανέστειλε τον λογαριασμό %{target} appeal_approved: Έγινε έφεση appeal_pending: Έφεση σε εκκρεμότητα - appeal_rejected: Η αίτηση απορρίφθηκε + appeal_rejected: Η έφεση απορρίφθηκε system_checks: database_schema_check: - message_html: Υπάρχουν μετακινήσεις βάσης δεδομένων που εκκρεμούν. Παρακαλώ εκτελέστε τις για να βεβαιωθείτε ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται + message_html: Υπάρχουν μετακινήσεις βάσεων δεδομένων που εκκρεμούν. Παρακαλώ εκτέλεσέ τες για να βεβαιωθείς ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται elasticsearch_running_check: - message_html: Δεν ήταν δυνατή η σύνδεση στο Elasticsearch. Παρακαλώ ελέγξτε ότι εκτελείται ή απενεργοποιήστε την αναζήτηση πλήρους κειμένου + message_html: Δεν ήταν δυνατή η σύνδεση στο Elasticsearch. Παρακαλώ έλεγξε ότι εκτελείται ή απενεργοποίησε την αναζήτηση πλήρους κειμένου elasticsearch_version_check: message_html: 'Μη συμβατή έκδοση Elasticsearch: %{value}' - version_comparison: Η έκδοση Elasticsearch %{running_version} εκτελείται ενώ η %{required_version} απαιτείται + version_comparison: Εκτελείται η έκδοση Elasticsearch %{running_version} ενώ απαιτείται %{required_version} rules_check: action: Διαχείριση κανόνων διακομιστή - message_html: Δεν έχετε ορίσει κανέναν κανόνα διακομιστή. + message_html: Δεν έχεις ορίσει κανέναν κανόνα διακομιστή. + sidekiq_process_check: + message_html: Καμία διεργασία Sidekiq δεν εκτελείται για την ουρά %{value}. Παρακαλώ έλεγξε τη διαμόρφωση του Sidekiq + upload_check_privacy_error: + action: Δες εδώ για περισσότερες πληροφορίες + message_html: "Ο διακομιστής σας δεν έχει ρυθμιστεί σωστά. Το απόρρητο των χρηστών σας κινδυνεύει." + upload_check_privacy_error_object_storage: + action: Δες εδώ για περισσότερες πληροφορίες + message_html: "Ο χώρος αποθήκευσης αντικειμένων σας δεν έχει ρυθμιστεί σωστά. Το απόρρητο των χρηστών σας κινδυνεύει." tags: - review: Κατάσταση έγκρισης + review: Κατάσταση αξιολόγησης updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς title: Διαχείριση trends: - not_allowed_to_trend: Δεν επιτρέπεται η τάση + allow: Επιτρέπεται + approved: Εγκρίθηκε + disallow: Να μην επιτρέπεται + links: + allow: Να επιτρέπεται σύνδεσμος + allow_provider: Να επιτρέπεται ο εκδότης + description_html: Αυτοί οι σύνδεσμοι μοιράζονται αρκετά από λογαριασμούς των οποίων τις δημοσιεύσεις, βλέπει ο διακομιστής σας. Μπορεί να βοηθήσει τους χρήστες σας να μάθουν τί συμβαίνει στον κόσμο. Οι σύνδεσμοι δεν εμφανίζονται δημόσια μέχρι να εγκρίνετε τον εκδότη. Μπορείτε επίσης να επιτρέψετε ή να απορρίψετε μεμονωμένους συνδέσμους. + disallow: Να μην επιτρέπεται ο σύνδεσμος + disallow_provider: Να μην επιτρέπεται ο εκδότης + no_link_selected: Κανένας σύνδεσμος δεν άλλαξε αφού κανείς δεν επιλέχθηκε + publishers: + no_publisher_selected: Κανένας εκδότης δεν άλλαξε καθώς κανένας δεν επιλέχθηκε + shared_by_over_week: + one: Κοινοποιήθηκε από ένα άτομο την τελευταία εβδομάδα + other: Κοινοποιήθηκε από %{count} άτομα την τελευταία εβδομάδα + title: Δημοφιλείς σύνδεσμοι + usage_comparison: Κοινοποιήθηκε %{today} φορές σήμερα, σε σύγκριση με %{yesterday} χθες + not_allowed_to_trend: Δεν επιτρέπεται να γίνει δημοφιλές 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: Ο συντάκτης δεν έχει επιλέξει να είναι ανακαλύψιμος + shared_by: + one: Μοιράστηκε ή προστέθηκε στα αγαπημένα μία φορά + other: Μοιράστηκε και προστέθηκε στα αγαπημένα %{friendly_count} φορές + title: Δημοφιλείς αναρτήσεις tags: + current_score: Τρέχουσα βαθμολογία %{score} dashboard: + tag_accounts_measure: μοναδικές χρήσεις tag_languages_dimension: Κορυφαίες γλώσσες tag_servers_dimension: Κορυφαίοι διακομιστές tag_servers_measure: διαφορετικοί διακομιστές - trending: Δημοφιλή + 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: Δεν έχετε ακόμη ορίσει κάποια προεπιλογή προειδοποίησης. + empty: Δεν έχετε ακόμη ορίσει κάποια προκαθορισμένη προειδοποίηση. title: Διαχείριση προκαθορισμένων προειδοποιήσεων webhooks: + add_new: Προσθήκη σημείου τερματισμού delete: Διαγραφή + description_html: Ένα webhook επιτρέπει στο Mastodon να στείλει ειδοποιήσεις πραγματικού χρόνου σχετικά με επιλεγμένα γεγονότα στη δική σας εφαρμογή, ώστε η εφαρμογή να σας μπορεί να προκαλέσει αντιδράσεις αυτόματα. disable: Απενεργοποίηση disabled: Απενεργοποιημένα + edit: Επεξεργασία σημείου τερματισμού + empty: Δεν έχετε ακόμα ρυθμισμένα σημεία τερματισμού webhook. enable: Ενεργοποίηση + enabled: Ενεργό + enabled_events: + one: 1 ενεργό συμβάν + other: "%{count} ενεργά συμβάντα" + events: Συμβάντα + new: Νέο webhook + rotate_secret: Περιστροφή μυστικού + secret: Υπογραφή μυστικού status: Κατάσταση + title: Webhooks + webhook: Webhook admin_mailer: 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}) + 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: Αν θέλεις να μετακομίσεις από έναν άλλο λογαριασμό σε αυτόν εδώ, μπορείς εδώ να δημιουργήσεις ένα ψευδώνυμο, πράγμα που απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη.Η μετακόμιση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό. + hint_html: Αν θέλεις να μετακομίσεις από έναν άλλο λογαριασμό σε αυτόν εδώ, εδώ μπορείς να δημιουργήσεις ένα ψευδώνυμο, πράγμα που απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη.Η μετακόμιση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό. remove: Αφαίρεση ψευδώνυμου appearance: - advanced_web_interface: Προηγμένη λειτουργία χρήσης - advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές κολώνες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ομοσπονδιακή ροή και όσες λίστες και ετικέτες θέλεις.' - animations_and_accessibility: Κίνηση και προσβασιμότητα + advanced_web_interface: Προηγμένη διεπαφή ιστού + advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές στύλες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ροή συναλλαγών και όσες λίστες και ετικέτες θέλεις.' + animations_and_accessibility: Εφέ κινήσεων και προσβασιμότητα confirmation_dialogs: Ερωτήσεις επιβεβαίωσης discovery: Εξερεύνηση localization: @@ -861,30 +961,32 @@ el: guide_link: https://crowdin.com/project/mastodon guide_link_text: Μπορεί να συνεισφέρει ο οποιοσδήποτε. sensitive_content: Ευαίσθητο περιεχόμενο - toot_layout: Διαρρύθμιση τουτ + toot_layout: Διαρρύθμιση αναρτήσεων application_mailer: notification_preferences: Αλλαγή προτιμήσεων email salutation: "%{name}," settings: 'Άλλαξε τις προτιμήσεις email: %{link}' view: 'Προβολή:' view_profile: Προβολή προφίλ - view_status: Προβολή κατάστασης + view_status: Προβολή ανάρτησης applications: created: Η εφαρμογή δημιουργήθηκε επιτυχώς destroyed: Η εφαρμογή διαγράφηκε επιτυχώς logout: Αποσύνδεση regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token) - token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς - warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! - your_token: Το διακριτικό πρόσβασής σου (access token) + token_regenerated: Το διακριτικό πρόσβασης αναδημιουργήθηκε επιτυχώς + warning: Να είσαι πολύ προσεκτικός με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! + your_token: Το διακριτικό πρόσβασής σου auth: apply_for_account: Ζητήστε έναν λογαριασμό change_password: Συνθηματικό + confirmations: + wrong_email_hint: Εάν αυτή η διεύθυνση email δεν είναι σωστή, μπορείς να την αλλάξεις στις ρυθμίσεις λογαριασμού. delete_account: Διαγραφή λογαριασμού delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. description: prefix_invited_by_user: Ο/Η @%{name} σε προσκαλεί να συνδεθείς με αυτό τον διακομιστή του Mastodon! - prefix_sign_up: Άνοιξε λογαριασμό στο Mastodon σήμερα! + prefix_sign_up: Κάνε εγγραφή στο Mastodon σήμερα! suffix: Ανοίγοντας λογαριασμό θα μπορείς να ακολουθείς άλλους, να ανεβάζεις ενημερώσεις και να ανταλλάζεις μηνύματα με χρήστες σε οποιοδήποτε διακομιστή Mastodon, καθώς και άλλα! didnt_get_confirmation: Δεν έλαβες τις οδηγίες επιβεβαίωσης; dont_have_your_security_key: Δεν έχετε κλειδί ασφαλείας; @@ -898,6 +1000,7 @@ el: migrate_account: Μετακόμιση σε διαφορετικό λογαριασμό migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το διαμορφώσεις εδώ. or_log_in_with: Ή συνδέσου με + privacy_policy_agreement_html: Έχω διαβάσει και συμφωνώ με την πολιτική απορρήτου providers: cas: Υπηρεσία Κεντρικής Πιστοποίησης (CAS) saml: Πρωτόκολλο SAML @@ -908,6 +1011,7 @@ el: rules: accept: Αποδοχή back: Πίσω + preamble: Αυτά ορίζονται και επιβάλλονται από τους συντονιστές του%{domain}. title: Ορισμένοι βασικοί κανόνες. security: Ασφάλεια set_new_password: Ορισμός νέου συνθηματικού @@ -916,14 +1020,18 @@ el: email_settings_hint_html: Το email επιβεβαίωσης στάλθηκε στο %{email}. Αν η διεύθυνση αυτή δεν είναι σωστή, μπορείτε να την ενημερώσετε στις ρυθμίσεις λογαριασμού. title: Ρυθμίσεις sign_in: + preamble_html: Συνδεθείτε με τα διαπιστευτήριά σας στον %{domain}. Αν ο λογαριασμός σας φιλοξενείται σε διαφορετικό διακομιστή, δε θα μπορείτε να συνδεθείτε εδώ. title: Συνδεθείτε στο %{domain} sign_up: + preamble: Με έναν λογαριασμό σ' αυτόν τον διακομιστή Mastodon, θα μπορείτε να ακολουθήσετε οποιοδήποτε άλλο άτομο στο δίκτυο, ανεξάρτητα από το πού φιλοξενείται ο λογαριασμός του. title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}. status: account_status: Κατάσταση λογαριασμού confirming: Αναμονή για ολοκλήρωση επιβεβαίωσης του email. + functional: Ο λογαριασμός σας είναι πλήρως λειτουργικός. pending: Η εφαρμογή σας εκκρεμεί έγκρισης, πιθανόν θα διαρκέσει κάποιο χρόνο. Θα λάβετε email αν εγκριθεί. redirecting_to: Ο λογαριασμός σου είναι ανενεργός γιατί επί του παρόντος ανακατευθύνει στον %{acct}. + view_strikes: Προβολή προηγούμενων ποινών εναντίον του λογαριασμού σας too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά. use_security_key: Χρήση κλειδιού ασφαλείας authorize_follow: @@ -947,6 +1055,10 @@ el: errors: invalid_key: δεν είναι έγκυρο κλειδί Ed25519 ή Curve25519 invalid_signature: δεν είναι έγκυρη υπογραφή Ed25519 + date: + formats: + default: "%b %d, %Y" + with_month_name: "%B %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}ω" @@ -980,8 +1092,34 @@ el: 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: δεν είναι έγκυρο όνομα τομέα errors: @@ -1019,6 +1157,8 @@ el: storage: Αποθήκευση πολυμέσων featured_tags: add_new: Προσθήκη νέας + errors: + limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ετικετών hint_html: "Τι είναι οι προβεβλημένες ετικέτες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ένας ωραίος τρόπος να παρακολουθείς την πορεία μιας δημιουργία ή ενός μακροπρόθεσμου έργου." filters: contexts: @@ -1030,8 +1170,11 @@ el: edit: add_keyword: Προσθήκη λέξης-κλειδιού keywords: Λέξεις-κλειδιά + statuses: Μεμονωμένες δημοσιεύσεις + statuses_hint_html: Αυτό το φίλτρο εφαρμόζεται για την επιλογή μεμονωμένων δημοσιεύσεων, ανεξάρτητα από το αν ταιριάζουν με τις λέξεις - κλειδιά παρακάτω. Επισκόπηση ή αφαίρεση δημοσιεύσεων από το φίλτρο. title: Ενημέρωση φίλτρου errors: + deprecated_api_multiple_keywords: Αυτές οι παράμετροι δεν μπορούν να αλλάξουν από αυτήν την εφαρμογή επειδή ισχύουν για περισσότερες από μία λέξεις - κλειδιά φίλτρου. Χρησιμοποιήστε μια πιο πρόσφατη εφαρμογή ή την ιστοσελίδα. invalid_context: Έδωσες λάθος ή ανύπαρκτο πλαίσιο index: contexts: Φίλτρα σε %{contexts} @@ -1039,17 +1182,44 @@ el: empty: Δεν έχεις φίλτρα. expires_in: Λήγει σε %{distance} expires_on: Λήγει στις %{date} + keywords: + one: "%{count} λέξη - κλειδί" + other: "%{count} λέξεις - κλειδιά" + statuses: + one: "%{count} δημοσίευση" + other: "%{count} δημοσιεύσεις" + statuses_long: + one: "%{count} κρυμμένη μεμονωμένη δημοσίευση" + other: "%{count} κρυμμένες μεμονωμένες δημοσιεύσεις" title: Φίλτρα new: save: Αποθήκευση νέου φίλτρου title: Πρόσθεσε νέο φίλτρο + statuses: + back_to_filter: Πίσω στο φίλτρο + batch: + remove: Αφαίρεση από φίλτρο + index: + hint: Αυτό το φίλτρο ισχύει για την επιλογή μεμονωμένων δημοσιεύσεων ανεξάρτητα από άλλα κριτήρια. Μπορείτε να προσθέσετε περισσότερες δημοσιεύσεις σε αυτό το φίλτρο από την ιστοσελίδα. + title: Φιλτραρισμένες δημοσιεύσεις generic: all: Όλα + all_items_on_page_selected_html: + one: "%{count} στοιχείο σε αυτή τη σελίδα είναι επιλεγμένο." + other: Όλα τα %{count} 5 στοιχεία σε αυτή τη σελίδα είναι επιλεγμένα. + all_matching_items_selected_html: + one: "%{count} στοιχείο που ταιριάζει με την αναζήτησή σας είναι επιλεγμένο." + other: Όλα τα %{count} στοιχεία που ταιριάζουν στην αναζήτησή σας είναι επιλεγμένα. changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν! copy: Αντιγραφή delete: Διαγραφή + deselect: Αποεπιλογή όλων + none: Κανένα order_by: Ταξινόμηση κατά save_changes: Αποθήκευση αλλαγών + select_all_matching_items: + one: Επιλέξτε %{count} στοιχείο που ταιριάζει με την αναζήτησή σας. + other: Επιλέξτε και τα %{count} αντικείμενα που ταιριάζουν στην αναζήτησή σας. today: σήμερα validation_errors: one: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε το παρακάτω σφάλμα @@ -1094,6 +1264,20 @@ el: expires_at: Λήγει uses: Χρήσεις title: Προσκάλεσε κόσμο + lists: + errors: + limit: Έχεις φτάσει το μέγιστο αριθμό λιστών + login_activities: + authentication_methods: + otp: εφαρμογή ταυτοποίησης δύο παραγόντων + password: συνθηματικό + sign_in_token: κωδικός ασφαλείας e-mail + 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: Δεν γίνεται να προσθέσεις βίντεο σε ενημέρωση που ήδη περιέχει εικόνες @@ -1162,6 +1346,8 @@ el: body: 'Αναφέρθηκες από τον/την %{name} στο:' subject: Αναφέρθηκες από τον/την %{name} title: Νέα αναφορά + poll: + subject: Μια δημοσκόπηση του %{name} έληξε reblog: body: 'Η κατάστασή σου προωθήθηκε από τον/την %{name}:' subject: Ο/Η %{name} προώθησε την κατάστασή σου @@ -1186,8 +1372,12 @@ el: trillion: τρις. otp_authentication: code_hint: Για να συνεχίσεις, γράψε τον κωδικό που δημιούργησε η εφαρμογή πιστοποίησης + description_html: Αν ενεργοποιήσεις την ταυτοποίηση δύο παραγόντων χρησιμοποιώντας εφαρμογή ταυτοποίησης, για να συνδεθείς θα πρέπει να έχεις το τηλέφωνό σου, που θα σού δημιουργήσει κλειδιά εισόδου. enable: Ενεργοποίηση + instructions_html: "Σάρωσε αυτόν τον κωδικό QR με την εφαρμογή Google Authenticator ή κάποια άλλη αντίστοιχη στο τηλέφωνό σου. Από εδώ και στο εξής, η εφαρμογή θα δημιουργεί κλειδιά που θα πρέπει να εισάγεις όταν συνδέεσαι." + manual_instructions: 'Αν δεν μπορείς να σαρώσεις τον κωδικό QR και χρειάζεσαι να τον εισάγεις χειροκίνητα, ορίστε η μυστική φράση σε μορφή κειμένου:' setup: Ρύθμιση + wrong_code: Ο κωδικός που έβαλες ήταν άκυρος! Η ώρα στον διακομιστή και τη συσκευή είναι σωστή; pagination: newer: Νεότερο next: Επόμενο @@ -1217,8 +1407,12 @@ el: unrecognized_emoji: δεν αναγνωρίζεται ως emoji relationships: activity: Δραστηριότητα λογαριασμού + confirm_follow_selected_followers: Είσαι βέβαιος ότι θες να ακολουθήσεις τους επιλεγμένους ακόλουθους; + confirm_remove_selected_followers: Είσαι βέβαιος ότι θες να αφαιρέσεις τους επιλεγμένους ακόλουθους; + confirm_remove_selected_follows: Είσαι βέβαιος ότι θες να αφαιρέσεις τα επιλεγμένα άτομα που ακολουθείς; dormant: Αδρανείς follow_failure: Δεν ήταν δυνατή η παρακολούθηση ορισμένων από τους επιλεγμένους λογαριασμούς. + follow_selected_followers: Ακολουθήστε τους επιλεγμένους ακόλουθους followers: Σε ακολουθούν following: Ακολουθείς invited: Προσκεκλημένοι @@ -1239,6 +1433,9 @@ el: invalid_rules: δεν παραπέμπει σε έγκυρους κανόνες rss: content_warning: 'Προειδοποίηση περιεχομένου:' + descriptions: + account: Δημόσιες δημοσιεύσεις από @%{acct} + tag: 'Δημόσιες δημοσιεύσεις με ετικέτα #%{hashtag}' scheduled_statuses: over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων τουτ για εκείνη τη μέρα over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων τουτ @@ -1247,13 +1444,17 @@ el: activity: Τελευταία δραστηριότητα browser: Φυλλομετρητής (Browser) browsers: + alipay: Alipay blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Άγνωστος φυλλομετρητής huawei_browser: Huawei Browser ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser opera: Opera otter: Otter phantom_js: PhantomJS @@ -1261,10 +1462,13 @@ el: safari: Safari uc_browser: UC Browser unknown_browser: Άγνωστος φυλλομετρητής + weibo: Weibo current_session: Τρέχουσα σύνδεση description: "%{browser} σε %{platform}" explanation: Αυτοί είναι οι φυλλομετρητές (browsers) που είναι συνδεδεμένοι στον λογαριασμό σου στο Mastodon αυτή τη στιγμή. + ip: IP platforms: + adobe_air: Adobe Air android: Android blackberry: BlackBerry chrome_os: ChromeOS @@ -1274,9 +1478,13 @@ el: linux: Linux mac: Mac unknown_platform: Άγνωστη Πλατφόρμα + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: Ανακάλεσε revoke_success: Η σύνδεση ανακλήθηκε επιτυχώς title: Σύνδεση + view_authentication_history: Δείτε το ιστορικό ταυτοποιήσεων του λογαριασμού σας settings: account: Λογαριασμός account_settings: Ρυθμίσεις λογαριασμού @@ -1296,7 +1504,10 @@ el: preferences: Προτιμήσεις profile: Προφίλ relationships: Ακολουθείς και σε ακολουθούν + statuses_cleanup: Αυτοματοποιημένη διαγραφή δημοσιεύσεων + strikes: Ποινές από ομάδα συντονισμού two_factor_authentication: Πιστοποίηση 2 παραγόντων (2FA) + webauthn_authentication: Κλειδιά ασφαλείας statuses: attached: audio: @@ -1338,7 +1549,9 @@ el: show_older: Εμφάνιση παλαιότερων show_thread: Εμφάνιση νήματος sign_in_to_participate: Συνδέσου για να συμμετάσχεις στη συζήτηση + title: '%{name}: "%{quote}"' visibilities: + direct: Άμεση private: Μόνο ακόλουθοι private_long: Εμφάνιση μόνο σε ακόλουθους public: Δημόσιο @@ -1346,6 +1559,26 @@ el: unlisted: Μη καταχωρημένο unlisted_long: Βλέπει οποιοσδήποτε, αλλά δεν καταχωρείται στις δημόσιες ροές statuses_cleanup: + enabled: Αυτόματη διαγραφή παλιών δημοσιεύσεων + enabled_hint: Διαγράφει αυτόματα τις δημοσιεύσεις σας μόλις φτάσουν σε ένα καθορισμένο όριο ηλικίας, εκτός αν ταιριάζουν με μία από τις παρακάτω εξαιρέσεις + exceptions: Εξαιρέσεις + explanation: Επειδή η διαγραφή δημοσιέυσεων είναι μια κοστοβόρα διαδικασία, γίνεται σε αραιά τακτά διαστήματα, όταν ο διακομιστής δεν είναι ιδιαίτερα απασχολημένος. Γι' αυτό, οι δημοσιεύσεις σας μπορεί να διαγραφούν λίγο μετά το πέρας του ορίου ηλικίας. + ignore_favs: Αγνόηση αγαπημένων + ignore_reblogs: Αγνόηση ενισχύσεων + interaction_exceptions: Εξαιρέσεις βασισμένες σε αλληλεπιδράσεις + 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_hint: Δεν διαγράφει τις δημοσιεύσεις σας αν τις έχετε στα αγαπημένα min_age: '1209600': 2 εβδομάδες '15778476': 6 μήνες @@ -1355,10 +1588,18 @@ el: '604800': 1 εβδομάδα '63113904': 2 χρόνια '7889238': 3 μήνες + min_age_label: Όριο ηλικίας + 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: @@ -1367,64 +1608,110 @@ el: mastodon-light: Mastodon (Ανοιχτόχρωμο) time: formats: + default: "%b %d, %Y, %H:%M" + month: "%b %Y" time: "%H:%M" two_factor_authentication: add: Προσθήκη disable: Απενεργοποίησε + disabled_success: Η ταυτοποίηση δύο παραγόντων απενεργοποιήθηκε επιτυχώς edit: Επεξεργασία enabled: Η πιστοποίηση 2 παραγόντων (2FA) είναι ενεργοποιημένη enabled_success: Η πιστοποίηση 2 παραγόντων (2FA) ενεργοποιήθηκε επιτυχώς generate_recovery_codes: Δημιούργησε κωδικούς ανάκτησης lost_recovery_codes: Οι κωδικοί ανάκτησης σου επιτρέπουν να ανακτήσεις ξανά πρόσβαση στον λογαριασμό σου αν χάσεις το τηλέφωνό σου. Αν έχεις χάσει τους κωδικούς ανάκτησης, μπορείς να τους δημιουργήσεις ξανά εδώ. Οι παλιοί κωδικοί σου θα ακυρωθούν. + methods: Μέθοδοι δύο παραγόντων otp: Εφαρμογή επαλήθευσης recovery_codes: Εφεδρικοί κωδικοί ανάκτησης recovery_codes_regenerated: Οι εφεδρικοί κωδικοί ανάκτησης δημιουργήθηκαν επιτυχώς recovery_instructions_html: Αν ποτέ δεν έχεις πρόσβαση στο κινητό σου, μπορείς να χρησιμοποιήσεις έναν από τους παρακάτω κωδικούς ανάκτησης για να αποκτήσεις πρόσβαση στο λογαριασμό σου. Διαφύλαξε τους κωδικούς ανάκτησης. Για παράδειγμα, μπορείς να τους εκτυπώσεις και να τους φυλάξεις μαζί με άλλα σημαντικά σου έγγραφα. + webauthn: Κλειδιά ασφαλείας 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: explanation: Είχες ζητήσει εφεδρικό αντίγραφο του λογαριασμού σου στο Mastodon. Είναι έτοιμο για κατέβασμα! subject: Το εφεδρικό αντίγραφό σου είναι έτοιμο για κατέβασμα title: Λήψη εφεδρικού αρχείου suspicious_sign_in: change_password: αλλάξτε τον κωδικό πρόσβασής σας + details: 'Εδώ είναι οι λεπτομέρειες της σύνδεσης:' + explanation: Εντοπίσαμε μια σύνδεση στο λογαριασμό σας από μια νέα διεύθυνση IP. + further_actions_html: Αν δεν ήσασταν εσείς, σας συνιστούμε να %{action} αμέσως και να ενεργοποιήσετε τον έλεγχο ταυτοποίησης δύο παραγόντων για να διατηρήσετε τον λογαριασμό σας ασφαλή. + subject: Ο λογαριασμός σας έχει συνδεθεί από μια νέα διεύθυνση IP + title: Μια νέα σύνδεση warning: + appeal: Υποβολή έφεσης + appeal_description: Αν πιστεύετε ότι έγινε λάθος, μπορείτε να υποβάλετε μια αίτηση στο προσωπικό του %{instance}. categories: spam: Ανεπιθύμητο + violation: Το περιεχόμενο παραβιάζει τις ακόλουθες οδηγίες κοινότητας + explanation: + delete_statuses: Μερικές από τις δημοσιεύσεις σου έχουν βρεθεί να παραβιάζουν μία ή περισσότερες οδηγίες κοινότητας και έχουν συνεπώς αφαιρεθεί από τους συντονιστές του %{instance}. + disable: Δεν μπορείς πλέον να χρησιμοποιήσεις τον λογαριασμό σου, αλλά το προφίλ σου και άλλα δεδομένα παραμένουν άθικτα. Μπορείς να ζητήσετε ένα αντίγραφο ασφαλείας των δεδομένων σου, να αλλάξεις τις ρυθμίσεις του λογαριασμού σου ή να διαγράψεις τον λογαριασμό σου. + mark_statuses_as_sensitive: Μερικές από τις δημοσιεύσεις σου έχουν επισημανθεί ως ευαίσθητες από τους συντονιστές του %{instance}. Αυτό σημαίνει ότι οι άνθρωποι θα πρέπει να πατήσουν τα πολυμέσα στις δημοσιεύσεις πριν εμφανιστεί μια προεπισκόπηση. Μπορείς να επισημάνεις τα πολυμέσα ως ευαίσθητα όταν δημοσιεύεις στο μέλλον. + sensitive: Από δω και στο εξής, όλα τα μεταφορτωμένα αρχεία πολυμέσων σου θα επισημανθούν ως ευαίσθητα και κρυμμένα πίσω από μια προειδοποίηση πατήστε - για - εμφάνιση. + silence: Μπορείς ακόμα να χρησιμοποιείς το λογαριασμό σου, αλλά μόνο άτομα που σε ακολουθούν ήδη θα δουν τις δημοσιεύσεις σου σε αυτόν τον διακομιστή και μπορεί να αποκλειστείς από διάφορες δυνατότητες ανακάλυψης. Ωστόσο, οι άλλοι μπορούν ακόμα να σε ακολουθήσουν με μη αυτόματο τρόπο. + suspend: Δε μπορείς πλέον να χρησιμοποιήσεις τον λογαριασμό σου και το προφίλ σου και άλλα δεδομένα δεν είναι πλέον προσβάσιμα. Μπορείς ακόμα να συνδεθείς για να αιτηθείς αντίγραφο των δεδομένων σου μέχρι να αφαιρεθούν πλήρως σε περίπου 30 μέρες αλλά, θα διατηρήσουμε κάποια βασικά δεδομένα για να σε αποτρέψουμε να παρακάμψεις την αναστολή. reason: 'Αιτιολογία:' + statuses: 'Αναφερόμενες δημοσιεύσεις:' 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: Καλώς ήρθες στο Mastodon title: Καλώς όρισες, %{name}! users: follow_limit_reached: Δεν μπορείς να ακολουθήσεις περισσότερα από %{limit} άτομα + go_to_sso_account_settings: Μεταβείτε στις ρυθμίσεις λογαριασμού του παρόχου ταυτότητας σας invalid_otp_token: Άκυρος κωδικός πιστοποίησης 2 παραγόντων (2FA) otp_lost_help_html: Αν χάσεις και τα δύο, μπορείς να επικοινωνήσεις με τον/την %{email} seamless_external_login: Επειδή έχεις συνδεθεί μέσω τρίτης υπηρεσίας, οι ρυθμίσεις συνθηματικού και email δεν είναι διαθέσιμες. signed_in_as: 'Έχεις συνδεθεί ως:' verification: - explanation_html: 'Μπορείς να πιστοποιήσεις τον εαυτό σου ως ιδιοκτήτη των συνδέσμων που εμφανίζεις στα μεταδεδομένα του προφίλ σου. Για να συμβεί αυτό, ο συνδεδεμένος ιστότοπος πρέπει να περιέχει ένα σύνδεσμο που να επιστρέφει προς το προφίλ σου στο Mastodon. Ο σύνδεσμος επιστροφής πρέπει περιέχει την ιδιότητα (attribute) rel="me". Το περιεχόμενο του κειμένου δεν έχει σημασία. Για παράδειγμα:' + explanation_html: 'Μπορείς να επαληθεύσεις τον εαυτό σου ως ιδιοκτήτη των συνδέσμων που εμφανίζεις στα μεταδεδομένα του προφίλ σου. Για να συμβεί αυτό, ο συνδεδεμένος ιστότοπος πρέπει να περιέχει ένα σύνδεσμο που να επιστρέφει προς το προφίλ σου στο Mastodon. Ο σύνδεσμος επιστροφής πρέπει να περιέχει την ιδιότητα rel="me". Το περιεχόμενο του κειμένου δεν έχει σημασία. Για παράδειγμα:' verification: Πιστοποίηση webauthn_credentials: add: Προσθήκη νέου κλειδιού ασφαλείας create: + error: Παρουσιάστηκε πρόβλημα κατά την προσθήκη του κλειδιού ασφαλείας. Παρακαλώ δοκίμασε ξανά. success: Το κλειδί ασφαλείας σας προστέθηκε με επιτυχία. delete: Διαγραφή delete_confirmation: Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το κλειδί ασφαλείας; + description_html: Αν ενεργοποιήσεις την ταυτοποίηση κλειδιού ασφαλείας, κατά τη σύνδεσή σου θα χρειαστεί να χρησιμοποιήσεις ένα από τα κλειδιά ασφαλείας σου. destroy: + error: Παρουσιάστηκε πρόβλημα κατά την διαγραφή του κλειδιού ασφαλείας. Παρακαλώ δοκίμασε ξανά. success: Το κλειδί ασφαλείας σας διαγράφηκε με επιτυχία. invalid_credential: Άκυρο κλειδί ασφαλείας + nickname_hint: Εισάγετε το ψευδώνυμο του νέου κλειδιού ασφαλείας σου + not_enabled: Δεν έχεις ενεργοποιήσει το WebAuthn ακόμα + not_supported: Αυτό το πρόγραμμα περιήγησης δεν υποστηρίζει κλειδιά ασφαλείας + otp_required: Για να χρησιμοποιήσεις κλειδιά ασφαλείας, ενεργοποιήσε πρώτα την ταυτοποίηση δύο παραγόντων. registered_on: Εγγραφή στις %{date} diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 8e2e453506..a457509eea 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -475,6 +475,67 @@ en-GB: confirm_purge: Are you sure you want to permanently delete data from this domain? content_policies: comment: Internal note + description_html: You can define content policies that will be applied to all accounts from this domain and any of its subdomains. + limited_federation_mode_description_html: You can chose whether to allow federation with this domain. + policies: + reject_media: Reject media + reject_reports: Reject reports + silence: Limit + suspend: Suspend + policy: Policy + reason: Public reason + title: Content policies + dashboard: + instance_accounts_dimension: Most followed accounts + instance_accounts_measure: stored accounts + instance_followers_measure: our followers there + instance_follows_measure: their followers here + instance_languages_dimension: Top languages + instance_media_attachments_measure: stored media attachments + instance_reports_measure: reports about them + instance_statuses_measure: stored posts + delivery: + all: All + clear: Clear delivery errors + failing: Failing + restart: Restart delivery + stop: Stop delivery + unavailable: Unavailable + delivery_available: Delivery is available + delivery_error_days: Delivery error days + delivery_error_hint: If delivery is not possible for %{count} days, it will be automatically marked as undeliverable. + destroyed_msg: Data from %{domain} is now queued for imminent deletion. + empty: No domains found. + known_accounts: + one: "%{count} known account" + other: "%{count} known accounts" + moderation: + all: All + limited: Limited + title: Moderation + private_comment: Private comment + public_comment: Public comment + purge: Purge + purge_description_html: If you believe this domain is offline for good, you can delete all account records and associated data from this domain from your storage. This may take a while. + title: Federation + total_blocked_by_us: Blocked by us + total_followed_by_them: Followed by them + total_followed_by_us: Followed by us + total_reported: Reports about them + total_storage: Media attachments + totals_time_period_hint_html: The totals displayed below include data for all time. + invites: + deactivate_all: Deactivate all + filter: + all: All + available: Available + expired: Expired + title: Filter + title: Invites + ip_blocks: + add_new: Create rule + created_msg: Successfully added new IP rule + delete: Delete roles: categories: devops: DevOps @@ -523,8 +584,12 @@ en-GB: invites: delete: Deactivate expired: Expired + navigation: + toggle_menu: Toggle menu notification_mailer: admin: + report: + subject: "%{name} submitted a report" sign_up: subject: "%{name} signed up" favourite: @@ -539,8 +604,60 @@ en-GB: action: Manage follow requests body: "%{name} has requested to follow you" subject: 'Pending follower: %{name}' + title: New follow request + mention: + action: Reply + body: 'You were mentioned by %{name} in:' + subject: You were mentioned by %{name} + title: New mention + poll: + subject: A poll by %{name} has ended + reblog: + body: 'Your post was boosted by %{name}:' + subject: "%{name} boosted your post" + title: New boost + status: + subject: "%{name} just posted" + update: + subject: "%{name} edited a post" + notifications: + email_events: Events for e-mail notifications + email_events_hint: 'Select events that you want to receive notifications for:' + other_settings: Other notifications settings + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T + otp_authentication: + code_hint: Enter the code generated by your authenticator app to confirm + description_html: If you enable two-factor authentication using an authenticator app, logging in will require you to be in possession of your phone, which will generate tokens for you to enter. + enable: Enable + instructions_html: "Scan this QR code into Google Authenticator or a similar TOTP app on your phone. From now on, that app will generate tokens that you will have to enter when logging in." + manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:' + setup: Set up + wrong_code: The entered code was invalid! Are server time and device time correct? + pagination: + newer: Newer + next: Next + older: Older + prev: Prev + truncate: "…" polls: errors: + already_voted: You have already voted on this poll + duplicate_options: contain duplicate items + duration_too_long: is too far into the future + duration_too_short: is too soon + expired: The poll has already ended + invalid_choice: The chosen vote option does not exist + over_character_limit: cannot be longer than %{max} characters each + too_few_options: must have more than one item too_many_options: can't contain more than %{max} items preferences: other: Other @@ -837,12 +954,13 @@ en-GB: title: Welcome aboard, %{name}! users: follow_limit_reached: You cannot follow more than %{limit} people + go_to_sso_account_settings: Go to your identity provider's account settings invalid_otp_token: Invalid two-factor code otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' verification: - explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' + explanation_html: 'You can verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. After adding the link you may need to come back here and re-save your profile for the verification to take effect. The link back must have a rel="me" attribute. The text content of the link does not matter. Here is an example:' verification: Verification webauthn_credentials: add: Add new security key diff --git a/config/locales/eo.yml b/config/locales/eo.yml index b381805a10..b456926642 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1691,7 +1691,6 @@ eo: seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj. signed_in_as: 'Salutinta kiel:' verification: - explanation_html: 'Vi povas pruvi, ke vi estas la posedanto de la ligiloj en viaj profilaj metadatumoj. Por fari tion, la alligita retejo devas enhavi ligilon reen al via Mastodon-profilo. La religilo devas havi la atributon rel="me". Ne gravas la teksta enhavo de la religilo. Jen ekzemplo:' verification: Kontrolo webauthn_credentials: add: Aldoni novan sekurecan ŝlosilon diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 2a395c80fe..fce42cf96c 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -812,6 +812,12 @@ es-AR: message_html: No definiste ninguna regla del servidor. sidekiq_process_check: message_html: No hay ningún proceso Sidekiq en ejecución para la/s cola/s %{value}. Por favor, revisá tu configuración de Sidekiq + upload_check_privacy_error: + action: Revisá acá para más información + message_html: "Tu servidor web está mal configurado. La privacidad de tus usuarios está en riesgo." + upload_check_privacy_error_object_storage: + action: Revisá acá para más información + message_html: "El almacenamiento de tu objeto está mal configurado. La privacidad de tus usuarios está en riesgo." tags: review: Estado de revisión updated_msg: La configuración de la etiqueta se actualizó exitosamente @@ -1684,12 +1690,13 @@ es-AR: title: "¡Bienvenido a bordo, %{name}!" users: follow_limit_reached: No podés seguir a más de %{limit} cuentas + go_to_sso_account_settings: Andá a la configuración de cuenta de tu proveedor de identidad invalid_otp_token: Código de dos factores no válido otp_lost_help_html: Si perdiste al acceso a ambos, podés ponerte en contacto con %{email} seamless_external_login: Iniciaste sesión desde un servicio externo, así que la configuración de contraseña y correo electrónico no están disponibles. signed_in_as: 'Iniciaste sesión como:' verification: - explanation_html: 'Podés verificarte a vos mismo como el propietario de los enlaces en los metadatos de tu perfil. Para eso, el sitio web del enlace debe contener un enlace de vuelta a tu perfil de Mastodon. El enlace en tu sitio debe tener un atributo rel="me". El contenido del texto del enlace no importa. Acá tenés un ejemplo:' + explanation_html: 'Podés verificarte a vos mismo como el propietario de los enlaces en los metadatos de tu perfil. Para eso, el sitio web del enlace debe contener un enlace de vuelta a tu perfil de Mastodon. Después de agregar el enlace, puede que tengás que volver acá y volver a guardar los cambios en tu perfil para que la verificación surta efecto. El enlace en tu sitio debe tener un atributo rel="me". El contenido del texto del enlace no importa. Acá tenés un ejemplo:' verification: Verificación webauthn_credentials: add: Agregar nueva llave de seguridad diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 3919b4064c..077a0192d3 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -812,6 +812,12 @@ es-MX: message_html: No ha definido ninguna regla del servidor. sidekiq_process_check: message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq + upload_check_privacy_error: + action: Para más información aquí + message_html: "Su servidor web no está configurado. Está en riesgo la privacidad de sus usuarios." + upload_check_privacy_error_object_storage: + action: Para más información aquí + message_html: "Su almacenamiento no está configurado. Está en riesgo la privacidad de sus usuarios." tags: review: Estado de revisión updated_msg: Hashtags actualizados exitosamente @@ -1684,12 +1690,13 @@ es-MX: title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas + go_to_sso_account_settings: Diríjete a la configuración de la cuenta de su proveedor de identidad invalid_otp_token: Código de dos factores incorrecto otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email} seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles. signed_in_as: 'Sesión iniciada como:' verification: - explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodon. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' + explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil. Para eso, el sitio enlazado debe contener un enlace a tu perfil de Mastodon. Después de añadir el enlace, necesitarás regresar aquí y volver a guardar tu perfil para que la verificación tenga efecto. El enlace en tu sitio debe tener un atributo rel="me". El texto del contenido del enlace no importa. Aquí un ejemplo:' verification: Verificación webauthn_credentials: add: Agregar nueva clave de seguridad diff --git a/config/locales/es.yml b/config/locales/es.yml index 04f9b23465..3fce5035d6 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -812,6 +812,12 @@ es: message_html: No ha definido ninguna regla del servidor. sidekiq_process_check: message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq + upload_check_privacy_error: + action: Haga clic aquí para obtener más información + message_html: "Su servidor web está mal configurado. La privacidad de sus usuarios está en riesgo." + upload_check_privacy_error_object_storage: + action: Haga clic aquí para obtener más información + message_html: "El almacenamiento de su objeto está mal configurado. La privacidad de sus usuarios está en riesgo." tags: review: Estado de revisión updated_msg: Hashtags actualizados exitosamente @@ -1684,12 +1690,12 @@ es: title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas + go_to_sso_account_settings: Diríjase a la configuración de la cuenta de su proveedor de identidad invalid_otp_token: Código de dos factores incorrecto otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email} seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles. signed_in_as: 'Sesión iniciada como:' verification: - explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodon. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' verification: Verificación webauthn_credentials: add: Agregar nueva clave de seguridad diff --git a/config/locales/et.yml b/config/locales/et.yml index 3da5784028..ad3af525b4 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -600,7 +600,7 @@ et: created_at: Teavitatud delete_and_resolve: Kustuta postitused forwarded: Edastatud - forwarded_to: Edastatud domeenile %{domain} + forwarded_to: Edastatud %{domain} domeeni mark_as_resolved: Märgi lahendatuks mark_as_sensitive: Märgi kui tundlik sisu mark_as_unresolved: Märgi lahendamata @@ -812,6 +812,12 @@ et: message_html: Serverireegleid pole defineeritud. sidekiq_process_check: message_html: Ühtegi Sidekiq protsessi pole %{value} järjekorra jaoks. Sidekiq seadistus vajab üle vaatamist + upload_check_privacy_error: + action: Klõpsa lisainfo saamiseks siia + message_html: "Veebiserver on valesti seadistatud. Kasutajate privaatsus on ohustatud." + upload_check_privacy_error_object_storage: + action: Klõpsa lisainfo saamiseks siia + message_html: "Objektihoidla on valesti seadistatud. Kasutajate privaatsus on ohustatud." tags: review: Vaata olek üle updated_msg: Sildi sätted edukalt uuendatud @@ -1689,12 +1695,13 @@ et: title: Tere tulemast, %{name}! users: follow_limit_reached: Ei saa jälgida rohkem kui %{limit} inimest + go_to_sso_account_settings: Mine oma idenditeedipakkuja kontosätetesse 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: - explanation_html: 'Saad kinnitada ennast oma profiili veebiviidete omanikuna. Selleks peab viidatud veebilehel olema link tagasi su Mastodoni profiilile. Tagasi saatval lingil peab olema rel="me" atribuut. Lingi tekstiline sisu ei ole oluline. Siin on üks näide:' + explanation_html: 'Saad kinnitada ennast oma profiili metaandmete veebiviidete omanikuna. Selleks peab lingitud veebilehel olema viide tagasi sinu Mastodoni profiilile. Pärast lingi lisamist pead võib-olla siia tagasi tulema ja oma profiili uuesti salvestama, et kinnitus jõustuks. Tagasiviide peab sisaldama rel="me" atribuuti. Lingi tekstiline sisu ei ole oluline. Siin on näide:' verification: Kinnitamine webauthn_credentials: add: Uue turvavõtme lisamine diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 39e0b26070..b2e87cc8ad 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -814,6 +814,12 @@ eu: message_html: Ez duzu zerbitzariaren araurik definitu. sidekiq_process_check: message_html: Ez da ari Sidekiq prozesurik exekutatzen %{value} ilad(et)an. Egiaztatu Sidekiq konfigurazioa + upload_check_privacy_error: + action: Ikus hemen informazio gehiagorako + message_html: "Zure zerbitzaria ez dago ongi konfiguratua. Zure erabiltzaileen pribatutasuna arriskuan dago." + upload_check_privacy_error_object_storage: + action: Ikus hemen informazio gehiagorako + message_html: "Zure objektuen biltegiratzea ez dago ongi konfiguratua. Zure erabiltzaileen pribatutasuna arriskuan dago." tags: review: Berrikusketaren egoera updated_msg: Traola-ezarpenak ongi eguneratu dira @@ -1686,12 +1692,13 @@ eu: title: Ongi etorri, %{name}! users: follow_limit_reached: Ezin dituzu %{limit} pertsona baino gehiago jarraitu + go_to_sso_account_settings: Jo zure identitate-hornitzaileko kontuaren ezarpenetara invalid_otp_token: Bi faktoreetako kode baliogabea otp_lost_help_html: 'Bietara sarbidea galdu baduzu, jarri kontaktuan hemen: %{email}' seamless_external_login: Kanpo zerbitzu baten bidez hasi duzu saioa, beraz pasahitza eta e-mail ezarpenak ez daude eskuragarri. signed_in_as: 'Saioa honela hasita:' verification: - explanation_html: 'Ezin duzu zure burua zure profileko metadatuen esteken jabe gisa egiaztatu. Horretarako, estekatutako webgunean zure Mastodon profilera daraman esteka bat egon behar du. Mastodonera daraman esteka horrekderrigorrez rel="me" artibutua izan behar du . Estekaren testuak ez du axola. Hona adibide bat:' + explanation_html: 'Zure profileko metadatuetako esteken jabe zarela egiazta dezakezu. Horretarako, webguneak zure Mastodoneko profilaren esteka eduki behar du. Esteka webgunean erantsi ondoren, aldaketak berriro gorde beharko dituzu egiaztapena burutu ahal izateko. Estekak rel="me" atributua eduki behar du. Estekaren testu-edukia ez da aintzat hartzen. Hemen duzu adibide bat:' verification: Egiaztaketa webauthn_credentials: add: Gehitu segurtasun gako berria diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 0127d0e616..4fc9ef5ab2 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1319,7 +1319,6 @@ fa: seamless_external_login: شما با یک سرویس خارج از مجموعه وارد شده‌اید، به همین دلیل تنظیمات ایمیل و رمز برای شما در دسترس نیست. signed_in_as: 'واردشده به نام:' verification: - explanation_html: 'شما می‌توانید خود را به عنوان مالک صفحه‌ای که در نمایه‌تان به آن پیوند داده‌اید تأیید کنید. برای این کار، صفحه‌ای که به آن پیوند داده‌اید، خودش باید پیوندی به نمایهٔ ماستودون شما داشته باشد. پیوند در آن صفحه باید عبارت rel="me"‎ را به عنوان مشخّصهٔ (attribute) در خود داشته باشد. محتوای متن پیوند اهمتی ندارد. یک نمونه از چنین پیوندی:' verification: تأیید webauthn_credentials: add: افزودن کلید امنیتی diff --git a/config/locales/fi.yml b/config/locales/fi.yml index a9554d0961..4a1a175d6c 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -134,7 +134,7 @@ fi: search: Hae search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus search_same_ip: Muut käyttäjät, joilla on sama IP-osoite - security: Suojaus + security: Turvallisuus security_measures: only_password: Vain salasana password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen @@ -316,9 +316,9 @@ fi: copy: Kopioi copy_failed_msg: Emojista ei voitu tehdä paikallista kopiota create_new_category: Luo uusi kategoria - created_msg: Emojin luonti onnistui! + created_msg: Emojin luotu! delete: Poista - destroyed_msg: Emojon poisto onnistui! + destroyed_msg: Emojo poistettu! disable: Poista käytöstä disabled: Ei käytössä disabled_msg: Emojin poisto käytöstä onnistui @@ -333,7 +333,7 @@ fi: title: Lisää uusi mukautettu emoji no_emoji_selected: Emojeita ei muutettu, koska yhtään ei valittu not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa - overwrite: Kirjoita yli + overwrite: Korvaa shortcode: Lyhennekoodi shortcode_hint: Vähintään kaksi merkkiä, vain kirjaimia, numeroita ja alaviivoja title: Mukautetut emojit @@ -812,6 +812,12 @@ fi: message_html: Et ole määrittänyt mitään palvelimen sääntöä. sidekiq_process_check: message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset + upload_check_privacy_error: + action: Katso täältä lisätietoja + message_html: "Verkkopalvelimesi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa." + upload_check_privacy_error_object_storage: + action: Katso täältä lisätietoja + message_html: "Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa." tags: review: Tarkista tila updated_msg: Aihetunnisteen asetukset päivitetty onnistuneesti @@ -966,7 +972,7 @@ fi: applications: created: Sovelluksen luonti onnistui destroyed: Sovelluksen poisto onnistui - logout: Uloskirjautuminen + logout: Kirjaudu ulos regenerate_token: Luo pääsytunnus uudelleen token_regenerated: Pääsytunnuksen uudelleenluonti onnistui warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! @@ -1152,7 +1158,7 @@ fi: featured_tags: add_new: Lisää uusi errors: - limit: Olet jo lisännyt enimmäismäärän aihetunnisteita + limit: Olet jo nostanut esille 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: @@ -1260,7 +1266,7 @@ fi: title: Kutsu ihmisiä lists: errors: - limit: Olet saavuttanut listojen enimmäismäärän + limit: Sinulla on enimmäismäärä listoja login_activities: authentication_methods: otp: kaksivaiheinen todennussovellus @@ -1584,7 +1590,7 @@ fi: '7889238': 3 kuukautta min_age_label: Ikäraja min_favs: Pidä viestit suosikeissa vähintään - min_favs_hint: Ei poista julkaisujasi, joita on tykätty vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi julkaisut tykkäyskertojen määrästä riippumatta + min_favs_hint: Toiminto ei poista julkaisujasi, joista on tykätty vähintään tässä kohtaa määritellyn monesti. Jätä kenttä tyhjäksi, jos haluat poistaa julkaisut tykkäyksistä huolimatta min_reblogs: Pidä viestit tehostettuna vähintään min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä stream_entries: @@ -1604,7 +1610,7 @@ fi: formats: default: "%d.%m.%Y klo %H.%M" month: "%b %Y" - time: "%H:%M" + time: "%H.%M" two_factor_authentication: add: Lisää disable: Poista käytöstä @@ -1684,12 +1690,13 @@ fi: title: Tervetuloa mukaan, %{name}! users: follow_limit_reached: Et voi seurata yli %{limit} henkilöä + go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyttä osoitteeseen %{email} seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut tilillä:' verification: - explanation_html: 'Voit vahvistaa olevasi profiilisi metatiedoissa olevien linkkien omistaja.. Tätä varten linkitetyn verkkosivuston täytyy sisältää linkki takaisin Mastodon-profiiliisi. Palauttavalla linkillä täytyy olla rel="me"-arvo. Linkin tekstisisällöllä ei ole merkitystä. Tässä on esimerkki:' + explanation_html: 'Voit vahvistaa olevasi profiilisi metatietojen sisältämien linkkien omistaja. Tätä varten linkitetyn verkkosivuston täytyy sisältää paluulinkki Mastodon-profiiliisi. Paluulinkillä täytyy olla rel="me"-attribuutti, mutta sen tekstisisältö voi olla mitä tahansa. Tässä esimerkki:' verification: Vahvistus webauthn_credentials: add: Lisää uusi suojausavain diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 3199690c9a..f969ac69ef 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -812,6 +812,12 @@ fo: message_html: Tú hevur ikki ásett nakrar ambætarareglur. sidekiq_process_check: message_html: Eingin Sidekiq gongd koyrir fyri %{value} bíðirøðina(r). Vinarliga eftirkanna Sidekiq uppsetingina + upload_check_privacy_error: + action: Kekka her fyri at fáa fleiri upplýsingar + message_html: "Vevambætarin hjá tær er skeivt uppsettur. Privatlívið hjá brúkarunum hjá tær er í vanda." + upload_check_privacy_error_object_storage: + action: Kekka her fyri at fáa fleiri upplýsingar + message_html: "Objekt-goymslan hjá tær er skeivt uppsett. Privatlívið hjá brúkarunum hjá tær er í vanda." tags: review: Eftirkanna støðu updated_msg: Frámerkjastillingar dagførdar @@ -1495,7 +1501,7 @@ fo: import_and_export: Innflyt og útflyt migrate: Flyting av kontu notifications: Fráboðanir - preferences: Sertokki + preferences: Stillingar profile: Vangi relationships: Fylging og fylgjarar statuses_cleanup: Sjálvvirkandi striking av postum @@ -1684,12 +1690,13 @@ fo: title: Vælkomin umborð, %{name}! users: follow_limit_reached: Tú kanst ikki fylgja fleiri enn %{limit} fólk + go_to_sso_account_settings: Far til kontustillingarnar hjá samleikaveitaranum hjá tær invalid_otp_token: Ógyldug tvey-stigs koda otp_lost_help_html: Hevur tú mist atgongd til bæði, so kanst tú koma í samband við %{email} seamless_external_login: Tú er ritað/ur inn umvegis eina uttanhýsis tænastu, so loyniorð og teldupoststillingar eru ikki tøkar. signed_in_as: 'Ritað/ur inn sum:' verification: - explanation_html: 'Tú kanst vátta teg sjálva/n sum eigara av leinkjunum í metadátunum á vanganum hjá tær. Til tess má leinkjaða vevstaðið innihalda eitt leinki aftur til Mastodon vangan hjá tær. Leinkið hava eina rel="me" viðseting. Tekstinnihaldið í leikinum er óviðkomandi. Her er eitt dømi:' + explanation_html: 'Tú kanst vátta teg sjálva/n sum eigara av leinkjunum í metadátunum á vanganum hjá tær. Til tess má leinkjaða vevstaðið innihalda eitt leinki aftur til Mastodon vangan hjá tær. Eftir at tú hevur lagt leinkið afturat, so er møguliga neyðugt at koma aftur her og goyma vangan hjá tær av nýggjum fyri at fáa góðkenningina at rigga. Leinkið hava eina rel="me" viðseting. Tekstinnihaldið í leikinum er óviðkomandi. Her er eitt dømi:' verification: Váttan webauthn_credentials: add: Legg nýggjan trygdarlykil afturat diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 400ed4b11e..41c011c189 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -1689,7 +1689,6 @@ fr-QC: seamless_external_login: Vous êtes connecté via un service externe, donc les paramètres concernant le mot de passe et le courriel ne sont pas disponibles. signed_in_as: 'Connecté·e en tant que :' verification: - explanation_html: 'Vous pouvez vous vérifier en tant que propriétaire des liens dans les métadonnées de votre profil. Pour cela, le site web lié doit contenir un lien vers votre profil Mastodon. Le lien de retour doit avoir un attribut rel="me" . Le texte du lien n’a pas d’importance. Voici un exemple :' verification: Vérification webauthn_credentials: add: Ajouter une nouvelle clé de sécurité diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 048cbd5270..667cd9b97b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -812,6 +812,12 @@ fr: message_html: Vous n'avez pas défini de règles pour le serveur. sidekiq_process_check: message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq + upload_check_privacy_error: + action: Pour plus d'informations, cliquez ici + message_html: "Votre serveur web est mal configuré. La confidentialité de vos utilisateurs est en péril." + upload_check_privacy_error_object_storage: + action: Pour plus d'informations, cliquez ici + message_html: "Votre serveur web est mal configuré. La confidentialité de vos utilisateurs est en péril." tags: review: État du traitement updated_msg: Paramètres du hashtag mis à jour avec succès @@ -1684,6 +1690,7 @@ fr: title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes + go_to_sso_account_settings: Accédez aux paramètres du compte de votre fournisseur d'identité invalid_otp_token: Le code d’authentification à deux facteurs est invalide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} seamless_external_login: Vous êtes connecté via un service externe, donc les paramètres concernant le mot de passe et le courriel ne sont pas disponibles. diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 15f4bd88b7..669da37aa2 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -812,6 +812,12 @@ fy: 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 + upload_check_privacy_error: + action: Klik hjir foar mear ynformaasje + message_html: "Jo webserver is ferkeard konfigurearre. De privacy fan jo brûkers is yn gefaar." + upload_check_privacy_error_object_storage: + action: Klik hjir foar mear ynformaasje + message_html: "Jo objektûnthâld is ferkeard konfigurearre. De privacy fan jo brûkers is yn gefaar." tags: review: Steat beoardiele updated_msg: Hashtagynstellingen mei sukses bywurke @@ -1684,12 +1690,13 @@ fy: title: Wolkom oan board %{name}! users: follow_limit_reached: Jo kinne net mear as %{limit} accounts folgje + go_to_sso_account_settings: Gean nei de accountynstellingen fan jo identiteitsprovider 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:' + 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. Nei it tafoegjen fan de keppeling moatte jo miskien hjir werom komme en jo profyl opnij bewarje om de ferifikaasje te befêstigjen. 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 diff --git a/config/locales/gd.yml b/config/locales/gd.yml index fb3b8f8eea..a481bbb25e 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -653,7 +653,7 @@ gd: actions: delete_html: Thoir air falbh na postaichean oilbheumach mark_as_sensitive_html: Cuir comharra gu bheil meadhanan nam postaichean oilbheumach frionasach - silence_html: Thèid cò ruigeas @%{acct} a chuingeachadh gu mòr air sgàth ’s nach fhaic ach an fheadhainn a bheil ’ga leantainn mu thràth no a tha a’ lorg na pròifil aca a làimh a’ phròifil is an t-susbaint aca. + silence_html: Thèid cò ruigeas @%{acct} a chuingeachadh gu mòr air sgàth ’s nach fhaic ach an fheadhainn a bheil ’ga leantainn mu thràth no a tha a’ lorg na pròifil aca a làimh a’ phròifil is an t-susbaint aca suspend_html: Thèid @%{acct} a chur à rèim agus cha ghabh a’ phròifil is an t-susbaint aca a ruigsinn no eadar-ghabhail close_report: 'Cuir comharra gun deach gearan #%{id} fhuasgladh' close_reports_html: Cuir comharra gun deach gach gearan an aghaidh @%{acct} fhuasgladh @@ -661,7 +661,7 @@ gd: preview_preamble_html: 'Gheibh @%{acct} rabhadh leis an t-susbaint seo:' record_strike_html: Clàraich rabhadh an aghaidh @%{acct} airson do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on chunntas seo san àm ri teachd send_email_html: Cuir post-d rabhaidh gu @%{acct} - warning_placeholder: Adhbharan roghainneil eile air gnìomh na maorsainneachd + warning_placeholder: Adhbharan roghainneil eile air gnìomh na maorsainneachd. target_origin: Tùs cunntas a’ ghearain title: Gearanan unassign: Dì-iomruin @@ -1731,7 +1731,6 @@ gd: seamless_external_login: Rinn thu clàradh a-steach le seirbheis on taobh a-muigh, mar sin chan eil roghainnean an fhacail-fhaire ’s a’ phuist-d ri làimh dhut. signed_in_as: 'Chlàraich thu a-steach mar:' verification: - explanation_html: '’S urrainn dhut dearbhadh gur e seilbheadair nan ceanglaichean ann am meata-dàta na pròifil agad a th’ annad. Airson sin a dhèanamh, feumaidh ceangal air ais dhan phròifil Mastodon a bhith aig an làrach-lìn cheangailte. Feumaidh buadh rel="me" a bhith aig a’ cheangal air ais. Chan eil e gu diofar dè an t-susbaint a tha ann an teacsa a’ cheangail. Seo ball-eisimpleir dhut:' verification: Dearbhadh webauthn_credentials: add: Cuir iuchair tèarainteachd ùr ris diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 0eccaa9511..aa451a6993 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -444,7 +444,7 @@ gl: private_comment_description_html: 'Para axudarche a lembrar de onde veñen os bloqueos importados, imos crealos engadindo o seguinte comentario privado: %{comment}' private_comment_template: Importada desde %{source} o %{date} title: Importar bloqueos de dominio - invalid_domain_block: 'Un ou varios dominios non se bloquearon debido ao seguintes erros: %{error}' + invalid_domain_block: 'Un ou varios dominios non se bloquearon debido ao seguinte erro(s): %{error}' new: title: Importar bloqueos de dominio no_file: Ningún ficheiro seleccionado @@ -476,7 +476,7 @@ gl: content_policies: comment: Nota interna description_html: Podes definir políticas acerca do contido que serán aplicadas a tódalas contas deste dominio e tódolos seus subdominios. - limited_federation_mode_description_html: Podes elexir se permites a federación con este dominio. + limited_federation_mode_description_html: Podes elexir se permites ou non a federación con este dominio. policies: reject_media: Rexeitar multimedia reject_reports: Rexeitar denuncias @@ -812,6 +812,12 @@ gl: message_html: Non tes definidas regras para o servidor. sidekiq_process_check: message_html: Non hai procesos Sidekiq a funcionar para a cola(s) %{value}. Revisa a túa configuración para Sidekiq + upload_check_privacy_error: + action: Mira aquí para máis información + message_html: "O teu servidor non está ben configurado. A privacidade das usuarias está en risco." + upload_check_privacy_error_object_storage: + action: Mira aquí para máis información + message_html: "A almacenaxe de obxectos está mal configurada. A privacidade das usuarias está en risco." tags: review: Estado de revisión updated_msg: Actualizaronse os axustes dos cancelos @@ -1684,12 +1690,13 @@ gl: title: Benvida, %{name}! users: follow_limit_reached: Non pode seguir a máis de %{limit} persoas + go_to_sso_account_settings: Ir aos axustes da conta no teu provedor de identidade invalid_otp_token: O código do segundo factor non é válido otp_lost_help_html: Se perdes o acceso a ambos, podes contactar con %{email} seamless_external_login: Accedeches a través dun servizo externo, polo que os axustes de contrasinal e email non están dispoñibles. signed_in_as: 'Rexistrada como:' verification: - explanation_html: 'Podes validarte a ti mesma como a dona das ligazóns nos metadatos do teu perfil. Para esto, o sitio web ligado debe conter unha ligazón de retorno ao perfil de Mastodon. Esta ligazón de retorno ten que ter un atributo rel="me". O texto da ligazón non importa. Aquí tes un exemplo:' + explanation_html: 'Podes validarte a ti mesma como a dona das ligazóns nos metadatos do perfil. Para isto, o sitio web ligado debe conter unha ligazón de retorno ao perfil de Mastodon. Despois de engadir a ligazón tes que volver aquí e volver a gardar o teu perfil para que a verificación tome efecto. A ligazón de retorno ten que ter un atributo rel="me". O texto da ligazón non ten importancia. Aquí tes un exemplo:' verification: Validación webauthn_credentials: add: Engadir nova chave de seguridade diff --git a/config/locales/he.yml b/config/locales/he.yml index aff0e7c6ac..ab53dc581f 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -840,6 +840,12 @@ he: message_html: לא הוגדרו שום כללי שרת. sidekiq_process_check: message_html: שום הליכי Sidekiq לא רצים עבור %{value} תור(ות). בחנו בבקשה את הגדרות Sidekiq + upload_check_privacy_error: + action: למידע נוסף + message_html: "שרת הווב שלך אינו מכוון כראוי. פרטיות המשתמשות והמשתמשים שלך בסכנה." + upload_check_privacy_error_object_storage: + action: למידע נוסף + message_html: "שרות אחסון הענן שלך אינו מוגדר כראוי. פרטיות המשתמשות והמשתמשים שלך בסכנה." tags: review: סקירת מצב updated_msg: הגדרות תגיות עודכנו בהצלחה @@ -1748,12 +1754,13 @@ he: title: ברוך/ה הבא/ה, %{name} ! users: follow_limit_reached: לא תוכל לעקוב אחר יותר מ %{limit} אנשים + go_to_sso_account_settings: מעבר לאפיוני החשבון שלך בשרת הזהות invalid_otp_token: קוד דו-שלבי שגוי otp_lost_help_html: אם איבדת גישה לשניהם, ניתן ליצור קשר ב-%{email} seamless_external_login: את.ה מחובר דרך שירות חיצוני, לכן אפשרויות הסיסמא והדוא"ל לא מאופשרות. signed_in_as: 'מחובר בתור:' verification: - explanation_html: 'ניתן לאמת את עצמך כבעלים של הקישורית במטא-נתונים של פרופילך. כדי לעשות זאת, האתר המקושר חייב להכיל קישורית חוזרת לפרופיל המסטודון שלך. הקישורית החוזרת חייבת להכיל תכונת rel="me". התוכן הטקסטואלי של הקישורית לא משנה. הנה דוגמא:' + explanation_html: 'תוכל/י לאמת את עצמך כבעל/ת הקישורים שבפרופיל שלך. לשם כך, על האתר המקושר להכיל קישור חוזר לפרופיל המסטודון שלך. אחרי הוספת הקישור ניתן לשוב לפה ולשמור מחדש את הפרופיל כדי להפעיל את אימות הקישור. הקישור החוזר חייב להכיל בקוד ה-HTML שלו את התכונה rel="me". התוכן הטקסטואלי של הקישור לא משנה. הנה דוגמא:' verification: אימות webauthn_credentials: add: הוספת מפתח אבטחה חדש diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 228bd16593..809e425d83 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -1,5 +1,12 @@ --- hi: + admin: + system_checks: + upload_check_privacy_error: + message_html: " आपके वेब सर्वर का कन्फिगरेशन सही नहीं है। उपयोगकर्ताओं की निजता खतरे में है। " + upload_check_privacy_error_object_storage: + action: अधिक जानकारी हेतु यहां क्लिक करें। + message_html: " आपके वेब सर्वर का कन्फिगरेशन सही नहीं है। उपयोगकर्ताओं की निजता खतरे में है। " errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -17,3 +24,5 @@ hi: platforms: kai_os: काइ ओएस unknown_platform: अनजान प्लेटफॉर्म + verification: + explanation_html: 'आप अपने प्रोफाइल में इस्तेमाल किए गए लिंक वेरिफाई कर सकते हैं। इसके लिए आपके वेबसाइट पर आपके मॅस्टोडॉन प्रोफाइल का लिंक होना चाहिए। वेरिफिकेशन पूरा करने के लिए लिंक जोड़ने के बाद यहाँ वापस आकर अपना प्रोफाइल पुनः सेव करें। लिंक बैक में rel="me" अट्रीब्यूट ज़रूर होना चाहिए। लिंक पर लिखे टेक्स्ट से कोई मतलब नहीं। ये रहा उदाहरण:' diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 6c9d869e17..0ab763ce47 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -812,6 +812,12 @@ hu: message_html: Még nem definiáltál egy szerver szabályt sem. sidekiq_process_check: message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait + upload_check_privacy_error: + action: Itt találsz több információt + message_html: "A webkiszolgálód félre van konfigurálva. Kockázat merül fel a felhasználóid adatainak biztonságával kapcsolatban." + upload_check_privacy_error_object_storage: + action: Itt találsz több információt + message_html: "Az objektumtárolód félre van konfigurálva. Kockázat merül fel a felhasználóid adatainak biztonságával kapcsolatban." tags: review: Engedélyezés állapota updated_msg: A hashtag beállításokat sikeresen frissítettük @@ -1684,12 +1690,13 @@ hu: title: Üdv a fedélzeten, %{name}! users: follow_limit_reached: Nem követhetsz több, mint %{limit} embert + go_to_sso_account_settings: Ugrás az azonosítási szolgáltatód fiókbeállításaihoz invalid_otp_token: Érvénytelen ellenőrző kód otp_lost_help_html: Ha mindkettőt elvesztetted, kérhetsz segítséget itt %{email} seamless_external_login: Külső szolgáltatáson keresztül jelentkeztél be, így a jelszó és e-mail beállítások nem elérhetőek. signed_in_as: Bejelentkezve mint verification: - explanation_html: 'A profilodon hitelesítheted magad, mint az itt található linkek tulajdonosa. Ehhez a linkelt weboldalnak tartalmaznia kell egy linket vissza a Mastodon profilodra. Ennek tartalmaznia kell a rel="me" attribútumot. A link szövege bármi lehet. Itt egy példa:' + explanation_html: 'A profilodon hitelesítheted magad, mint az itt található hivatkozások tulajdonosa. Ehhez a hivatkozott weboldalnak tartalmaznia kell egy visszahivatkozást a Mastodon-profilodra. A hivatkozás hozzáadása után lehet, hogy vissza kell ide térned, és újra mentened kell a profilodat, hogy az ellenőrzés életbe lépjen. A visszahivatkozásnak tartalmaznia kell a rel="me" attribútumot. A hivatkozás szövege bármi lehet. Itt egy példa:' verification: Hitelesítés webauthn_credentials: add: Biztonsági kulcs hozzáadása diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 7a1b33c709..a3658eae97 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -881,7 +881,6 @@ hy: invalid_otp_token: Անվաւեր 2F կոդ signed_in_as: Մոտք գործել որպէս․ verification: - explanation_html: Պիտակների յղումների հեղինակութիւնը կարելի է վաւերացնել։ Անհրաժեշտ է որ յղուած կայքը պարունակի յետադարձ յղում ձեր մաստադոնի էջին, որը պէտք է ունենայ rel="me" նիշքը։ Յղման բովանդակութիւնը կարևոր չէ։ Օրինակ՝ verification: Ստուգում webauthn_credentials: delete: Ջնջել diff --git a/config/locales/id.yml b/config/locales/id.yml index d6672e96da..7902966545 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1603,7 +1603,6 @@ id: seamless_external_login: Anda masuk via layanan eksternal, sehingga pengaturan kata sandi dan email tidak tersedia. signed_in_as: 'Masuk sebagai:' verification: - explanation_html: 'Anda dapat memverifikasi diri Anda sebagai pemiliki tautan pada metadata profil. Situsweb yang ditautkan haruslah berisi tautan ke profil Mastodon Anda. Tautan tersebut harus memiliki atribut rel="me". Isi teks tautan tidaklah penting. Ini contohnya:' verification: Verifikasi webauthn_credentials: add: Tambahkan kunci keamanan baru diff --git a/config/locales/io.yml b/config/locales/io.yml index ab37c13c2a..849b80cb9e 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1592,7 +1592,6 @@ io: seamless_external_login: Vu enirar tra externa serveso, do pasvorto e retpostoopcioni ne esas disponebla. signed_in_as: 'Eniris quale:' verification: - explanation_html: 'Vu povas verifikar su kom proprietero di ligili en vua profilmetainformi. En ta kazo, ligita retsito mustas havar rel="me" atributo. Textokontenajo di ligilo ne esas importanta. Co esas exemplo:' verification: Verifikeso webauthn_credentials: add: Insertez nova sekuresklefo diff --git a/config/locales/is.yml b/config/locales/is.yml index 75fff84417..4020e7ba33 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -812,6 +812,12 @@ is: message_html: Þú hefur ekki skilgreint neinar reglur fyrir netþjón. sidekiq_process_check: message_html: Ekkert Sidekiq-ferli er í gangi fyrir %{value} biðröð/biðraðir. Endilega athugaðu Sidekiq-uppsetninguna þína + upload_check_privacy_error: + action: Skoðaðu hér til að fá frekari upplýsingar + message_html: "Vefþjónninn þinn er ekki rétt stilltur. Friðhelgi notendanna þinna gæti verið í hættu." + upload_check_privacy_error_object_storage: + action: Skoðaðu hér til að fá frekari upplýsingar + message_html: "Gagnageymslan þín er ekki rétt stillt. Friðhelgi notendanna þinna gæti verið í hættu." tags: review: Yfirfara stöðufærslu updated_msg: Það tókst að uppfæra stillingar myllumerkja @@ -1684,12 +1690,13 @@ is: title: Velkomin/n um borð, %{name}! users: follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum + go_to_sso_account_settings: Fara í stillingar aðgangsins hjá auðkennisveitunni þinni invalid_otp_token: Ógildur tveggja-þátta kóði otp_lost_help_html: Ef þú hefur misst aðganginn að hvoru tveggja, geturðu sett þig í samband við %{email} seamless_external_login: Innskráning þín er í gegnum utanaðkomandi þjónustu, þannig að stillingar fyrir lykilorð og tölvupóst eru ekki aðgengilegar. signed_in_as: 'Skráð inn sem:' verification: - explanation_html: 'Þú getur vottað að þú sért eigandi og ábyrgur fyrir tenglunum í lýsigögnum notandasniðsins þíns. Til að það virki, þurfa vefsvæðin sem vísað er í að innihalda tengil til baka í Mastodon-notandasniðið. Tengillinn sem vísar til baka verður að vera með rel="me" eigindi. Textinn í tenglinum skiptir ekki máli. Hérna er dæmi:' + explanation_html: 'Þú getur sannvottað sjálfa/n þig sem eiganda tenglanna í notandasniðinu þinu. Til að það virki, þarf tilvísaða vefsvæðið að innihalda tengil til baka á notandasnið þitt á Mastodon. Eftir að tenglinum hefur verið bætt inn, gætirðu þurft að koma aftur hingað og vista aftur notandasniðið þitt áður en sannvottunin fer að virka. Tengillinn til baka verður að innihalda rel="me" eigindi. Efni textans í tenglinum skiptir ekki máli. Hér er dæmi:' verification: Sannprófun webauthn_credentials: add: Bæta við nýjum öryggislykli diff --git a/config/locales/it.yml b/config/locales/it.yml index 694f4e8061..98c1689c96 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -812,6 +812,12 @@ it: message_html: Non hai definito alcuna regola del server. sidekiq_process_check: message_html: Nessun processo di Sidekiq in esecuzione per le code di %{value}. Sei pregato di revisionare la tua configurazione di Sidekiq + upload_check_privacy_error: + action: Controlla qui per maggiori informazioni + message_html: "Il tuo server web è mal configurato. La privacy dei tuoi utenti è a rischio." + upload_check_privacy_error_object_storage: + action: Controlla qui per maggiori informazioni + message_html: "La tua archiviazione oggetti è mal configurata. La privacy dei tuoi utenti è a rischio." tags: review: Esamina status updated_msg: Impostazioni hashtag aggiornate con successo @@ -1686,12 +1692,13 @@ it: title: Benvenuto a bordo, %{name}! users: follow_limit_reached: Non puoi seguire più di %{limit} persone + go_to_sso_account_settings: Vai alle impostazioni dell'account del tuo provider di identità invalid_otp_token: Codice d'accesso non valido otp_lost_help_html: Se perdessi l'accesso ad entrambi, puoi entrare in contatto con %{email} seamless_external_login: Hai effettuato l'accesso tramite un servizio esterno, quindi le impostazioni di password e e-mail non sono disponibili. signed_in_as: 'Hai effettuato l''accesso come:' verification: - explanation_html: 'Puoi certificare te stesso come proprietario dei link nei metadati del tuo profilo. Per farlo, il sito a cui punta il link deve contenere un link che punta al tuo profilo Mastodon. Il link di ritorno deve avere l''attributo rel="me". Il testo del link non ha importanza. Ecco un esempio:' + explanation_html: 'Puoi verificarti come proprietario dei link nei metadati del tuo profilo. Per questo, il sito web collegato deve contenere un collegamento al tuo profilo Mastodon. Dopo aver aggiunto il collegamento, potrebbe essere necessario tornare qui e salvare nuovamente il profilo affinché la verifica abbia effetto. Il link di ritorno deve avere un attributo rel="me". Il contenuto del testo del collegamento non ha importanza. Ecco un esempio:' verification: Verifica webauthn_credentials: add: Aggiungi una nuova chiave di sicurezza diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 5d0b274111..c2faed6a2b 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -798,6 +798,12 @@ ja: message_html: サーバーのルールを定義していません。 sidekiq_process_check: message_html: "%{value}キューに対応するSidekiqプロセスがありません。Sidekiqの設定を確認してください。" + upload_check_privacy_error: + action: ここを開いて詳細を確認してください + message_html: "Web サーバーが正しく設定されていません。ユーザーのプライバシーが危険な状態になっています。" + upload_check_privacy_error_object_storage: + action: ここを開いて詳細を確認してください + message_html: "オブジェクトストレージが正しく設定されていません。ユーザーのプライバシーが危険な状態になっています。" tags: review: 審査状況 updated_msg: ハッシュタグ設定が更新されました @@ -1654,12 +1660,13 @@ ja: title: ようこそ、%{name}さん! users: follow_limit_reached: あなたは現在 %{limit}人以上フォローできません + go_to_sso_account_settings: 外部サービスアカウントの設定はこちらで行ってください invalid_otp_token: 二要素認証コードが間違っています otp_lost_help_html: どちらも使用できない場合、%{email}に連絡を取ると解決できるかもしれません seamless_external_login: あなたは外部サービスを介してログインしているため、パスワードとメールアドレスの設定は利用できません。 signed_in_as: '下記でログイン中:' verification: - explanation_html: プロフィール内のリンクの所有者であることを認証することができます。そのためにはリンクされたウェブサイトにMastodonプロフィールへのリンクが含まれている必要があります。リンクにはrel="me"属性を必ず与えなければなりません。リンクのテキストについては重要ではありません。以下は例です: + explanation_html: プロフィール補足情報のリンクの所有者であることを認証できます。認証するには、リンク先のウェブサイトにMastodonプロフィールへのリンクを追加してください。リンクを追加後、このページで変更の保存を再実行すると認証が反映されます。プロフィールへのリンクにはrel="me"属性がかならず付与してください。リンク内のテキストは自由に記述できます。以下は一例です: verification: 認証 webauthn_credentials: add: セキュリティキーを追加 diff --git a/config/locales/kk.yml b/config/locales/kk.yml index d250a30a89..1812f89835 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -758,5 +758,4 @@ kk: seamless_external_login: Сыртқы сервис арқылы кіріпсіз, сондықтан құпиясөз және электрондық пошта параметрлері қол жетімді емес. signed_in_as: 'Былай кірдіңіз:' verification: - explanation_html: 'Өзіңіздің профиль метадеректеріңіздегі сілтемелердің иесі ретінде өзіңізді тексере аласыз. Ол үшін байланыстырылған веб-сайтта Mastodon профиліне сілтеме болуы керек. Сілтемеде rel = «me» атрибуты болуы керек. Сілтеме мәтінінің мазмұны маңызды емес. Міне мысал:' verification: Растау diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 96d73af86c..bbfc6f311e 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -344,7 +344,7 @@ ko: active_users: 활성 사용자 interactions: 상호 작용 media_storage: 미디어 저장소 - new_users: 새로운 사용자 + new_users: 새 사용자 opened_reports: 신고 열림 pending_appeals_html: other: "%{count}개의 대기 중인 이의 제기" @@ -800,6 +800,12 @@ ko: message_html: 아직 서버규칙을 정하지 않았습니다. sidekiq_process_check: message_html: "%{value} 큐에 대한 사이드킥 프로세스가 발견되지 않았습니다. 사이드킥 설정을 검토해주세요" + upload_check_privacy_error: + action: 더 많은 정보를 보려면 여기를 확인하세요. + message_html: "웹 서버가 잘못 구성되었습니다. 사용자의 프라이버시에 위협이 됩니다." + upload_check_privacy_error_object_storage: + action: 더 많은 정보를 보려면 여기를 확인하세요 + message_html: "오브젝트 스토리지가 잘못 구성되었습니다. 사용자의 프라이버시에 위협이 됩니다." tags: review: 심사 상태 updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다 @@ -992,7 +998,7 @@ ko: preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다. title: 몇 개의 규칙이 있습니다. security: 보안 - set_new_password: 새 암호 + set_new_password: 새 암호 설정 setup: email_below_hint_html: 아래의 이메일 계정이 올바르지 않을 경우, 여기서 변경하고 새 확인 메일을 받을 수 있습니다. email_settings_hint_html: 확인 메일이 %{email}로 보내졌습니다. 이메일 주소가 올바르지 않은 경우, 계정 설정에서 변경하세요. @@ -1028,7 +1034,7 @@ ko: confirm: 계속 hint_html: "팁: 한 시간 동안 다시 암호를 묻지 않을 것입니다." invalid_password: 잘못된 암호 - prompt: 계속하려면 암호 확인 + prompt: 계속하려면 암호를 확인하세요. crypto: errors: invalid_key: 유효하지 않은 Ed25519 또는 Curve25519 키 @@ -1105,7 +1111,7 @@ ko: '403': 이 페이지를 표시할 권한이 없습니다. '404': 찾으려는 페이지가 존재하지 않습니다. '406': 이 페이지는 요청한 자료형으로 제공되지 않습니다. - '410': 보려는 페이지는 더 이상 여기에 존재하지 않습니다. + '410': 찾는 페이지가 더 이상 존재하지 않습니다. '422': content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까? title: 보안 인증 실패 @@ -1385,7 +1391,7 @@ ko: follow_selected_followers: 선택한 팔로워들을 팔로우 followers: 팔로워 following: 팔로잉 - invited: 초대됨 + invited: 초대함 last_active: 마지막 활동 most_recent: 가장 최근 moved: 이동함 @@ -1451,8 +1457,8 @@ ko: windows: 윈도우 windows_mobile: 윈도우 모바일 windows_phone: 윈도우 폰 - revoke: 삭제 - revoke_success: 세션이 성공적으로 삭제되었습니다 + revoke: 취소 + revoke_success: 세션을 성공적으로 취소하였습니다. title: 세션 view_authentication_history: 내 계정에 대한 인증 이력 보기 settings: @@ -1460,7 +1466,7 @@ ko: account_settings: 계정 설정 aliases: 계정 별명 appearance: 외관 - authorized_apps: 인증된 애플리케이션 + authorized_apps: 승인된 애플리케이션 back: 마스토돈으로 돌아가기 delete: 계정 삭제 development: 개발 @@ -1560,7 +1566,7 @@ ko: stream_entries: pinned: 고정된 게시물 reblogged: 님이 부스트 했습니다 - sensitive_content: 민감한 콘텐츠 + sensitive_content: 민감한 내용 strikes: errors: too_late: 이의를 제기하기에 너무 늦었습니다 @@ -1654,12 +1660,13 @@ ko: title: 환영합니다 %{name} 님! users: follow_limit_reached: 당신은 %{limit}명의 사람을 넘어서 팔로우 할 수 없습니다 + go_to_sso_account_settings: ID 공급자의 계정 설정으로 이동 invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다 otp_lost_help_html: 만약 양쪽 모두를 잃어버렸다면 %{email}을 통해 복구할 수 있습니다 seamless_external_login: 외부 서비스를 이용해 로그인했으므로 이메일과 암호는 설정할 수 없습니다. signed_in_as: '다음과 같이 로그인 중:' verification: - explanation_html: '당신은 프로필 메타데이터의 링크 소유자임을 검증할 수 있습니다. 이것을 하기 위해서는, 링크 된 웹사이트에서 당신의 마스토돈 프로필을 역으로 링크해야 합니다. 역링크는 반드시 rel="me" 속성을 가지고 있어야 합니다. 링크의 텍스트는 상관이 없습니다. 여기 예시가 있습니다:' + explanation_html: '내 프로필 메타데이터에 담긴 링크의 소유 여부를 검증할 수 있습니다. 이를 위해서 반드시 링크한 웹사이트에 Mastodon 프로필에 대한 역링크가 포함되어야 합니다. 링크를 추가한 후 이곳으로 돌아와서 프로필을 다시 저장해야 인증을 적용할 수 있습니다. 돌아오는 링크에는 반드시 rel="me" 속성이 있어야 합니다. 링크의 텍스트 콘텐트는 중요하지 않습니다. 다음 예제를 참고하세요:' verification: 검증 webauthn_credentials: add: 보안 키 추가 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 534eacdd66..a1fce2c365 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1637,7 +1637,6 @@ ku: seamless_external_login: Te bi rajekarke biyanî re têketina xwe kir, ji ber vê yekê borînpeyv û e-name nayê bikaranîn. signed_in_as: 'Têketin wekî:' verification: - explanation_html: 'Tu dikarî xwe wekî xwediyê girêdanên li daneyê meta profîla xwe piştrast bikî. Ji bo vê, hewceye girêda malperê di nav profîla te ya mastodonê de girêdanekî paş hebe. Girêdana paşhewceye taybetîyek rel="me"hebe. Naveroka nivîsa girêdanê ne girîng e. Ev jî mînakek e:' verification: Piştrastkirin webauthn_credentials: add: Kilîteke ewlehiyê nû tevlî bike diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 5139c7c480..06eeff6ab4 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -517,5 +517,4 @@ lt: seamless_external_login: Jūs esate prisijungę per išorini įrenginį, todėl slaptąžodis ir el pašto nustatymai neprieinami. signed_in_as: 'Prisijungta kaip:' verification: - explanation_html: 'Jūs galite patvirtinti savę kaip savininką nuorodų savo profilio meta duomenyse. Kad tai padarytumėte, susieta svetainė privalo turėti nuorodą atgal į Jūsų Mastodon profilį. Nuoroda atgal privalo turėti rel="me" savybę. Teksto turinys nuorodoje nesvarbus. Štai pavyzdys:' verification: Patvirtinimas diff --git a/config/locales/lv.yml b/config/locales/lv.yml index fbe0ccc727..e7b8372caa 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -826,6 +826,12 @@ lv: message_html: Tu neesi definējis nevienu servera nosacījumu. sidekiq_process_check: message_html: Rindā(s) %{value} nedarbojas neviens Sidekiq process. Lūdzu, pārskati savu Sidekiq konfigurāciju + upload_check_privacy_error: + action: Pārbaudi šeit, lai iegūtu plašāku informāciju + message_html: "Tavs tīmekļa serveris ir nepareizi konfigurēts. Tavu lietotāju privātums ir apdraudēts." + upload_check_privacy_error_object_storage: + action: Pārbaudi šeit, lai iegūtu plašāku informāciju + message_html: "Tava objektu krātuve ir nepareizi konfigurēta. Tavu lietotāju privātums ir apdraudēts." tags: review: Pārskatīt statusu updated_msg: Tēmtura iestatījumi ir veiksmīgi atjaunināti @@ -1716,12 +1722,13 @@ lv: title: Laipni lūgts uz borta, %{name}! users: follow_limit_reached: Tu nevari sekot vairāk par %{limit} cilvēkiem + go_to_sso_account_settings: Dodies uz sava identitātes nodrošinātāja konta iestatījumiem invalid_otp_token: Nederīgs divfaktora kods otp_lost_help_html: Ja esi zaudējis piekļuvi abiem, tu vari sazināties ar %{email} seamless_external_login: Tu esi pieteicies, izmantojot ārēju pakalpojumu, tāpēc paroles un e-pasta iestatījumi nav pieejami. signed_in_as: 'Pierakstījies kā:' verification: - explanation_html: 'Tu vari apstiprināt sevi kā sava profila metadatos esošo saišu īpašnieku. Lai to izdarītu, saistītajā vietnē ir jābūt saitei uz tavu Mastodon profilu. Atpakaļsaitē jābūt atribūtam rel="me". Saites teksta saturam nav nozīmes. Šeit ir piemērs:' + explanation_html: 'Tu vari apstiprināt sevi kā sava profila metadatos esošo saišu īpašnieku. Lai to izdarītu, saistītajā vietnē ir jābūt saitei uz tavu Mastodon profilu. Pēc saites pievienošanas tev, iespējams, vajadzēs atgriezties šeit un atkārtoti saglabāt savu profilu, lai pārbaude stātos spēkā. Atpakaļsaitē jābūt atribūtam rel="me". Saites teksta saturam nav nozīmes. Šeit ir piemērs:' verification: Pārbaude webauthn_credentials: add: Pievienot jaunu drošības atslēgu diff --git a/config/locales/my.yml b/config/locales/my.yml index ae3b941e02..5096aa0d7f 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -2,6 +2,7 @@ my: about: about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။ + contact_missing: မသတ်မှတ်ထား contact_unavailable: မရှိ hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon" title: အကြောင်း @@ -11,6 +12,7 @@ my: other: စောင့်ကြည့်သူ following: စောင့်ကြည့်နေသည် last_active: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် + link_verified_on: ဤလင့်ခ်၏ ပိုင်ဆိုင်မှုကို %{date} တွင် စစ်ဆေးခဲ့သည် nothing_here: ဤနေရာတွင် မည်သည့်အရာမျှမရှိပါ။ pin_errors: following: သင်ထောက်ခံလိုသောလူနောက်သို့ စောင့်ကြည့်ပြီးသားဖြစ်နေပါမည် @@ -19,6 +21,7 @@ my: posts_tab_heading: ပို့စ်များ admin: account_actions: + action: ဆောင်ရွက်ရန် title: "%{acct} စိစစ်မှုလုပ်ဆောင်ရန်" account_moderation_notes: create: မှတ်စုမှထွက်ရန် @@ -49,16 +52,21 @@ my: custom: စိတ်ကြိုက် delete: အချက်အလက်များဖျက်ပါ deleted: ဖျက်ပြီးပါပြီ + demote: အဆင့်လျော့မည် + destroyed_msg: "%{username} ၏ အချက်အလက်ကို မကြာမီ ဖျက်ပါမည်" disable: ရပ်တန့် disable_sign_in_token_auth: အီးမေးတိုကင် အထောက်အထားပြခြင်းကို ပိတ်ပါ disable_two_factor_authentication: 2FA ကို ပိတ်ပါ + disabled: အကောင့်ပိတ်သိမ်းထားသည် display_name: ဖော်ပြမည့်အမည် domain: ဒိုမိန်း edit: ပြင်ဆင်ရန် email: အီးမေးလ် email_status: အီးမေးလ်အခြေအနေ + enable: မပိတ်သိမ်းထားသော enable_sign_in_token_auth: အီးမေးတိုကင် စစ်မှန်ကြောင်းအတည်ပြုချက်ကို ဖွင့်ပါ enabled: ဖွင့်ထားသည် + enabled_msg: "%{username} ၏ အကောင့်ကို ပိတ်သိမ်းထားသည်" followers: စောင့်ကြည့်သူများ follows: စောင့်ကြည့်မယ် header: မျက်နှာဖုံးပုံ @@ -75,6 +83,7 @@ my: login_status: အကောင့်ဝင်ရောက်မှုအခြေအနေ media_attachments: မီဒီယာ ပူးတွဲချက်များ memorialize: အမှတ်တရအဖြစ် ပြောင်းပါ + memorialized: အမှတ်တရ memorialized_msg: "%{username} ကို အမှတ်တရအကောင့်အဖြစ် ပြောင်းလဲခဲ့သည်" moderation: active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း @@ -88,17 +97,24 @@ my: most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန် most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + no_limits_imposed: ကန့်သတ်ချက် မရှိပါ။ no_role_assigned: တာဝန်ပေးအပ်ထားခြင်း မရှိပါ not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ + pending: ဆိုင်းငံ့ထားသော သုံးသပ်ချက် perform_full_suspension: ရပ်ဆိုင်းရန် + previous_strikes: ယခင်လုပ်ဆောင်ချက်များ + previous_strikes_description_html: + other: ဤအကောင့်တွင် လုပ်ဆောင်ချက်%{count} ရှိသည်။ promote: အထောက်အကူ protocol: လုပ်ထုံးလုပ်နည်း public: အများမြင် + push_subscription_expires: PuSH စာရင်းသွင်းမှုမှာ သက်တမ်းကုန်ဆုံးသွားပါပြီ redownload: ပရိုဖိုင်ကို ပြန်လည်စတင်ရန် redownloaded_msg: မူလမှစ၍ %{username} ၏ ပရိုဖိုင်ကို ပြန်လည်စတင်ပြီးပါပြီ reject: ဖယ်ရှားပါ rejected_msg: "%{username} ၏ အကောင့်ဖွင့်အက်ပလီကေးရှင်းကို ဖယ်ရှားလိုက်ပါပြီ" remote_suspension_irreversible: ဤအကောင့်၏အချက်အလက်ကို လုံးဝ ဖျက်လိုက်ပါပြီ။ + remote_suspension_reversible_hint_html: အကောင့်ကို ၎င်းတို့၏ဆာဗာတွင် ဆိုင်းငံ့ထားပြီး အချက်အလက်ကို %{date} နေ့တွင် လုံးဝဖယ်ရှားလိုက်ပါမည်။ ထိုအချိန်အထိ အဝေးမှထိန်းချုပ်နိုင်သောဆာဗာက ဤအကောင့်ကို ပြန်လည်ရယူနိုင်သည်။ အကောင့်အချက်အလက်အားလုံးကို ချက်ချင်းဖယ်ရှားလိုပါက အောက်ပါအတိုင်း ပြုလုပ်နိုင်ပါသည်။ remove_avatar: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ remove_header: မျက်နှာဖုံးပုံ ဖယ်ရှားရန် removed_avatar_msg: "%{username} ၏ ကိုယ်စားပြုရုပ်ပုံအား ဖယ်ရှားပြီးပါပြီ" @@ -108,6 +124,9 @@ my: send: အတည်ပြုထားသောအီးမေးလ် ပြန်ပို့ပေးရန် success: အတည်ပြုထားသောအီးမေးလ် ပို့ပြီးပါပြီ။ reset: ပြန်သတ်မှတ်မည် + reset_password: 'လျှို့ဝှတ်နံပါတ်အားပြန်သတ်မှတ်မည် + + ' resubscribe: ပြန်လည်စာရင်းသွင်းပါ role: အခန်းကဏ္ဍ search: ရှာရန် @@ -125,13 +144,18 @@ my: silence: ကန့်သတ် silenced: ကန့်သတ်ထားသည် statuses: ပို့စ်များ + strikes: ယခင်လုပ်ဆောင်ချက်များ subscribe: စာရင်းသွင်းပါ suspend: ရပ်ဆိုင်းပါ suspended: ရပ်ဆိုင်းထားသည် + suspension_irreversible: ဤအကောင့်၏ဒေတာကို နောက်ပြန်မဆုတ်ဘဲ ဖျက်လိုက်ပါပြီ။ ၎င်းကိုအသုံးပြုနိုင်စေရန် အကောင့်အား ဆိုင်းငံ့ထားနိုင်သော်လည်း ၎င်းတွင် ယခင်ကရှိထားသည့် မည်သည့်ဒေတာကိုမှ ပြန်လည်ရယူမည်မဟုတ်ပါ။ + suspension_reversible_hint_html: အကောင့်ကို ဆိုင်းငံ့ထားပြီး၊ ဒေတာကို %{date} တွင် အပြည့်အဝ ဖယ်ရှားပါမည်။ ထိုအချိန်အထိ မည်သည့်ဆိုးကျိုးများမရှိဘဲ အကောင့်ကို ပြန်လည်ရယူနိုင်သည်။ အကောင့်၏ဒေတာအားလုံးကို ချက်ချင်းဖယ်ရှားလိုပါက အောက်ပါအတိုင်း ပြုလုပ်နိုင်ပါသည်။ title: အကောင့်များ unblock_email: အီးမေးလ်ကိုပြန်ဖွင့်မည် unblocked_email_msg: " %{username} အီးမေးလ်ကိုပြန်ဖွင့်လိုက်ပါပြီ" unconfirmed_email: အတည်မပြုရသေးသော အီးမေးလ် + undo_silenced: ကန့်သတ်ချက်မလုပ်တော့ပါ + unsilenced_msg: "%{username} ၏ အကောင့်၏ ကန့်သတ်ချက်ကို အောင်မြင်စွာ ပယ်ဖျက်ခဲ့သည်။" unsubscribe: စာရင်းမှထွက်ရန် unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ" username: အသုံးပြုသူအမည် @@ -143,6 +167,7 @@ my: action_types: approve_appeal: အယူခံကို အတည်ပြုပါ approve_user: အသုံးပြုသူကို အတည်ပြုရန် + assigned_to_self_report: မှတ်တမ်းကိုတစ်ယောက်ယောက်အားလုပ်ခိုင်းမည် change_email_user: အသုံးပြုသူအတွက် အီးမေးလ်ပြောင်းရန် change_role_user: အသုံးပြုသူ၏ အခန်းကဏ္ဍကို ပြောင်းလဲရန် confirm_user: အသုံးပြုသူကို လက်ခံရန် @@ -156,6 +181,7 @@ my: create_ip_block: IP စည်းမျဉ်း ဖန်တီးရန် create_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖန်တီးပါ create_user_role: အခန်းကဏ္ဍဖန်တီးပါ + demote_user: အသုံးပြုသူကိုအဆင့်လျော့ချမည် destroy_announcement: ကြေညာချက်ကို ဖျက်ပါ destroy_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖျက်ရန် destroy_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖျက်ရန် @@ -183,10 +209,13 @@ my: resend_user: အတည်ပြုရန် မေးလ်ကို ပြန်ပို့ပေးရန် reset_password_user: စကားဝှက်ကို ပြန်လည်ရယူမည် resolve_report: အစီရင်ခံစာကို ဖြေရှင်းရန် + sensitive_account: Force-Sensitive အကောင့် silence_account: အကောင့် ကန့်သတ်ပါ suspend_account: အကောင့် ရပ်ဆိုင်းပါ unassigned_report: အစီရင်ခံစာ ဖြုတ်ရန် unblock_email_account: အီးမေးလ်လိပ်စာ ပြန်ဖွင့်ရန် + unsilence_account: ကန့်သတ်အကောင့်ကို မလုပ်တော့ပါ + unsuspend_account: အကောင့်ကို ရပ်ဆိုင်းပါ။ update_announcement: ကြေညာချက်ပြင်ဆင်ရန် update_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပြင်ဆင်ရန် update_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ပြင်ဆင်ရန် @@ -244,6 +273,7 @@ my: unassigned_report_html: "%{name} က အစီရင်ခံစာ %{target} ကို ဖြုတ်ထားသည်" unblock_email_account_html: "%{name} က %{target} ၏ အီးမေးလ်လိပ်စာကို ပြန်ဖွင့်ခဲ့သည်" unsensitive_account_html: "%{name} က %{target} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားခြင်းမရှိပါ" + unsilence_account_html: "%{target} ၏ အကောင့်၏ %{name} ကန့်သတ်ချက် မရှိပါ။" unsuspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်" update_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ပြင်ဆင်ခဲ့သည်" update_custom_emoji_html: "%{name} က အီမိုဂျီ %{target} ကို ပြင်ဆင်ခဲ့သည်" @@ -261,12 +291,14 @@ my: edit: title: ကြေညာချက် ပြင်ဆင်ရန် empty: ကြေညာချက်များမတွေ့ပါ + live: လက်ရှိ new: create: ကြေညာချက်ဖန်တီးပါ title: ကြေညာချက်အသစ် publish: ပို့စ်တင်မည် published_msg: ကြေညာချက်တင်ပြီးပါပြီ။ scheduled_for: "%{time} အတွက် စီစဉ်ထားသည်" + scheduled_msg: ကြေညာချက်ထုတ်ပြန်ရန် စီစဉ်ထားသည်။ title: ကြေညာချက်များ unpublish: ပြန်ဖြုတ်ပါ unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ @@ -274,7 +306,9 @@ my: custom_emojis: assign_category: အမျိုးအစားသတ်မှတ်ရန် by_domain: ဒိုမိန်း + copied_msg: အီမိုဂျီ၏စက်အတွင်းကူးထားသည်များကို အောင်မြင်စွာ ဖန်တီးခဲ့သည်။ copy: ကူးယူပါ + copy_failed_msg: အီမိုဂျီ၏စက်အတွင်းမကူးနိုင်ပါ create_new_category: အမျိုးအစားအသစ်ဖန်တီးရန် created_msg: အီမိုဂျီ ဖန်တီးပြီးပါပြီ။ delete: ဖျက်ပါ @@ -293,6 +327,11 @@ my: title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ no_emoji_selected: မည်သည့်အီမိုဂျီကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။ + overwrite: ထပ်ရေးရန် + shortcode: 'တိုတိုကုတ် + + ' + shortcode_hint: အက္ခရာဂဏန်းများနှင့် underscore များဖြင့် အနည်းဆုံး စာလုံး ၂ လုံးရှိရပါမည် title: စိတ်ကြိုက်အီမိုဂျီများ uncategorized: အမျိုးအစားခွဲခြားထားခြင်းမရှိပါ unlist: စာရင်းမသွင်းထားပါ @@ -305,6 +344,7 @@ my: interactions: အပြန်အလှန်ဆက်သွယ်မှုများ media_storage: မီဒီယာသိုလှောင်မှု new_users: အသုံးပြုသူအသစ်များ + opened_reports: မှတ်တမ်းများကိုဖွင့်လှစ်ခဲ့သည် pending_appeals_html: other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း" pending_reports_html: @@ -313,6 +353,7 @@ my: other: "%{count} hashtag ဆောင်ရွက်ဆဲ" pending_users_html: other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ" + resolved_reports: မှတ်တမ်းများဖြေရှင်းခဲ့သည် software: ဆော့ဖ်ဝဲလ် sources: အကောင့်ဖွင့်ခြင်းဆိုင်ရာ သတင်းရင်းမြစ်များ space: နေရာလွတ်အသုံးပြုမှု @@ -334,18 +375,26 @@ my: domain_blocks: add_new: ဒိုမိန်းပိတ်ပင်ခြင်းအသစ် ထည့်ပါ created_msg: ဒိုမိန်းပိတ်ပင်ခြင်းကို ယခုလုပ်ဆောင်နေပါသည် + destroyed_msg: ဒိုမိန်းပိတ်ဆို့ခြင်းကို ပြန်ပြင်လိုက်ပါပြီ။ domain: ဒိုမိန်း edit: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ရန် + existing_domain_block: "%{name} အပေါ် ပိုမိုတင်းကျပ်သောကန့်သတ်ချက်များကို ချမှတ်ထားပြီးဖြစ်သည်။" + existing_domain_block_html: '%{name} အပေါ် ပိုမိုတင်းကျပ်သော ကန့်သတ်ချက်များကို ချမှတ်ထားပြီး ၎င်းကို ပြန်ဖွင့်ရန် လိုအပ်ပါသည်။' export: ထုတ်ယူခြင်း import: ထည့်သွင်းခြင်း new: create: ပိတ်ပင်ခြင်း ဖန်တီးရန် + hint: ဒိုမိန်းပိတ်ဆို့ခြင်းသည် ဒေတာဘေ့စ်အတွင်း အကောင့်ထည့်သွင်းမှုများကို မတားဆီးသော်လည်း ထိုအကောင့်များအတွက် တိကျစွာစိစစ်ခြင်းနည်းလမ်းများကို အလိုအလျောက်ပြန်လည်အသုံးချမည်ဖြစ်သည်။ severity: + desc_html: "ကန့်သတ်ချက် သည် ဤဒိုမိန်းရှိ အကောင့်များမှ ပို့စ်များကို ၎င်းတို့ကို မလိုက်ကြည့်သူတိုင်းကို မမြင်နိုင်စေမည်ဖြစ်သည်။ ဆိုင်းငံ့ထားရန် သည် ဤဒိုမိန်းအကောင့်များအတွက် အကြောင်းအရာ၊ မီဒီယာနှင့် ပရိုဖိုင်ဒေတာအားလုံးကို သင့်ဆာဗာမှ ဖယ်ရှားပါမည်။ မီဒီယာဖိုင်များကို ငြင်းပယ်လိုပါက None ကို အသုံးပြုပါ။" + noop: တစ်ခုမျှမရှိ silence: ကန့်သတ် suspend: ရပ်ဆိုင်းပါ title: ဒိုမိန်းပိတ်ပင်ထားခြင်းအသစ် no_domain_block_selected: မည်သည့်ဒိုမိန်းပိတ်ပင်ထားခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။ + obfuscate: မှတ်ရခက်သောဒိုမိန်းအမည် + obfuscate_hint: ဒိုမိန်းကန့်သတ်ချက်များစာရင်းကို ဖွင့်ထားပါက စာရင်းရှိ ဒိုမိန်းအမည်များမှာ ရှုပ်ထွေးစေနိုင်ပါသည်။ private_comment: သီးသန့်မှတ်ချက် private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။ public_comment: အများမြင်မှတ်ချက် @@ -372,12 +421,16 @@ my: title: အီးမေးလ်ဒိုမိန်းအသစ်ကို ပိတ်ရန် no_email_domain_block_selected: မည်သည့်အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ not_permitted: ခွင့်ပြုထားခြင်းမရှိပါ + 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: လက်ရှိစောင့်ကြည့်သူများနှင့် ဆက်ဆံရေး private_comment_template: "%{date} တွင် %{source} မှ ထည့်သွင်းခဲ့သည်" title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန် invalid_domain_block: အောက်ပါအမှား(များ)ကြောင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒိုမိန်းပိတ်ပင်ထားမှုများကို ကျော်သွားခဲ့သည် - %{error} @@ -393,6 +446,7 @@ my: availability: failures_recorded: other: "%{count} ရက်နေ့တွင် ကြိုးစားမှု မအောင်မြင်ပါ။" + no_failures_recorded: မှတ်တမ်းမရှိပါ။ title: ရရှိနိုင်မှု back_to_all: အားလုံး back_to_limited: ကန့်သတ်ထားသည် @@ -400,6 +454,8 @@ my: by_domain: ဒိုမိန်း confirm_purge: ဤဒိုမိန်းမှ အချက်အလက်များကို အပြီးတိုင်ဖျက်လိုသည်မှာ သေချာပါသလား။ content_policies: + comment: အတွင်းပိုင်းမှတ်ချက် + description_html: ဤဒိုမိန်းနှင့် ဒိုမိန်းခွဲများမှ အကောင့်အားလုံးအတွက် အသုံးချမည့် အကြောင်းအရာမူဝါဒများကို သတ်မှတ်နိုင်သည်။ limited_federation_mode_description_html: ဤဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုမလား။ policies: reject_media: မီဒီယာဖယ်ရှားရန် @@ -419,22 +475,33 @@ my: instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ delivery: all: အားလုံး + clear: ပေးပို့မှု အမှားအယွင်းများကို ရှင်းလင်းပါ + failing: မအောင်မြင်ခြင်း restart: ပေးပို့မှုကို ပြန်လည်စတင်ရန် stop: ပေးပို့မှုကို ရပ်ရန် unavailable: မရရှိနိုင်ပါ + delivery_available: ပေးပို့နိုင်ပါပြီ + delivery_error_days: ပေးပို့မှု မှားယွင်းသည့်ရက်များ + delivery_error_hint: "%{count} ရက်အတွင်း မပေးပို့နိုင်ပါက ၎င်းကို ပေးပို့မရနိုင်ဟု အလိုအလျောက် အမှတ်အသားပြုပါမည်။" + destroyed_msg: "%{domain} မှ အချက်အလက်များကို မကြာမီ ဖျက်ပါမည်။" empty: ဒိုမိန်းများ မတွေ့ပါ။ + known_accounts: + other: လူသိများသော အကောင့် %{count} ခု moderation: all: အားလုံး limited: ကန့်သတ်ထားသော title: စိစစ်ခြင်း private_comment: သီးသန့်မှတ်ချက် public_comment: အများမြင်မှတ်ချက် + purge: ဖျက် + purge_description_html: ဤဒိုမိန်းသည် အော့ဖ်လိုင်းဖြစ်နေပါက သင့်သိုလှောင်မှုမှ အကောင့်မှတ်တမ်းများနှင့် ဆက်စပ်အချက်အလက်အားလုံးကို ဖျက်နိုင်သည်။ အချိန်အနည်းငယ် ကြာနိုင်ပါသည်။ title: ဖက်ဒီ total_blocked_by_us: ကျွန်ုပ်တို့မှ ပိတ်ပင်ထားခြင်း total_followed_by_them: "၎င်းတို့မှ စောင့်ကြည့်ခဲ့သည်" total_followed_by_us: ကျွန်ုပ်တို့မှ စောင့်ကြည့်ခဲ့သည် total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ" total_storage: မီဒီယာ ပူးတွဲချက်များ + totals_time_period_hint_html: အောက်တွင်ဖော်ပြထားသော စုစုပေါင်းမှာ အချိန်တိုင်းအတွက် အချက်အလက်များဖြစ်သည်။ invites: deactivate_all: အားလုံးပယ်ဖျက်ရန် filter: @@ -483,15 +550,19 @@ my: other: "%{count} မှတ်စု" action_log: မှတ်တမ်းများစစ်ဆေးခြင်း action_taken_by: ဆောင်ရွက်ခဲ့ပါသည် + add_to_report: အစီရင်ခံစာထပ်ထည့်ရန် are_you_sure: သေချာပါသလား။ assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန် assigned: စိစစ်သူကို တာဝန်ပေးရန် by_target_domain: တိုင်ကြားထားသော အကောင့်၏ ဒိုမိန်း cancel: ပယ်ဖျက်မည် category: အမျိုးအစား + comment: + none: တစ်ခုမျှမရှိ comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -" confirm: အတည်ပြုမည် confirm_action: "@%{acct} ကို စိစစ်အကဲဖြတ်ခြင်းအား အတည်ပြုပါ" + created_at: အကြောင်းကြားပြီးပါပြီ delete_and_resolve: ပို့စ်များကို ဖျက်ပါ forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်" @@ -505,13 +576,17 @@ my: create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန် delete: ဖျက်ပါ title: မှတ်စုများ + processed_msg: 'အကြောင်းကြားမှု #%{id} ကို ဆောင်ရွက်ပြီးပါပြီ' remote_user_placeholder: "%{instance} မှ အဝေးကနေအသုံးပြုသူ" reopen: အစီရင်ခံစာပြန်ဖွင့်ရန် report: "#%{id} အစီရင်ခံရန်" + reported_account: တိုင်ကြားထားသောအကောင့် + reported_by: မှ တိုင်ကြားထားသည် resolved: ဖြေရှင်းပြီးပါပြီ resolved_msg: မှတ်တမ်းကို ဖြေရှင်းပြီးပါပြီ။ skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန် status: အခြေအနေ + statuses: တိုင်ကြားထားသောအကြောင်းအရာ summary: action_preambles: delete_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို ဖယ်ရှား တော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ - @@ -519,10 +594,15 @@ my: silence_html: သင်သည် @%{acct} ၏ အကောင့်ကို ကန့်သတ် တော့မည်ဖြစ်သည်။ ၎င်းမှာ - suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ - actions: + delete_html: စိတ်အနှောင့်အယှက်ဖြစ်စေသောပို့စ်များကို ဖယ်ရှားပါ + mark_as_sensitive_html: စိတ်အနှောင့်အယှက်ဖြစ်စေသောပို့စ်များ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုပါ suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း" close_report: 'တိုင်ကြားစာ #%{id} ကို ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ' + close_reports_html: "@%{acct} နှင့်ပတ်သက်သည့် အစီရင်ခံစာအားလုံး ကို ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ" delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်" preview_preamble_html: "@%{acct} သည် အောက်ပါအကြောင်းအရာများကြောင့် သတိပေးချက်ကို လက်ခံရရှိပါမည် -" + send_email_html: သတိပေးချက် အီးမေးလ်တစ်စောင် @%{acct} ပေးပို့ပါ + target_origin: တိုင်ကြားထားသောအကောင့်၏ မူလအစ title: မှတ်တမ်းများ unassign: တာဝန်မှဖြုတ်ရန် unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action} @@ -540,6 +620,7 @@ my: moderation: စိစစ်ခြင်း special: အထူး delete: ဖျက်ပါ + description_html: "အသုံးပြုသူအခန်းကဏ္ဍများဖြင့် Mastodon အသုံးပြုသူများ၏ မည်သည့်လုပ်ဆောင်ချက်များနှင့် နေရာများကိုမဆို သင် စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။" edit: "'%{name} ၏ အခန်းကဏ္ဍကို ပြင်ဆင်ရန်" everyone: မူလသတ်မှတ်ထားသည့် ခွင့်ပြုချက်များ permissions_count: @@ -564,18 +645,22 @@ my: manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန် manage_invites_description: အသုံးပြုသူများအား ဖိတ်ခေါ်ထားသည့်လင့်များကို ရှာဖွေကြည့်ရှုပြီး ပိတ်ရန် ခွင့်ပြုသည် manage_reports: အစီရင်ခံစာများကို စီမံပါ + manage_reports_description: အသုံးပြုသူများအား အစီရင်ခံစာများကို ပြန်လည်သုံးသပ်ရန်နှင့် ၎င်းတို့နှင့် ဆန့်ကျင်သည့် စိစစ်အရေးယူမှုများကို လုပ်ဆောင်ရန် ခွင့်ပြုသည် manage_roles: အခန်းကဏ္ဍများကို စီမံပါ manage_roles_description: အသုံးပြုသူများအား ၎င်းတို့၏အောက်တွင်ရှိသော အခန်းကဏ္ဍများကို စီမံခန့်ခွဲရန်နှင့် သတ်မှတ်ရန် ခွင့်ပြုထားသည် manage_rules: စည်းမျဉ်းများကို စီမံပါ manage_rules_description: အသုံးပြုသူများအား ဆာဗာစည်းမျဉ်းများကို ပြောင်းလဲခွင့် ပြုထားသည် manage_settings: သတ်မှတ်ချက်များကို စီမံပါ manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန် + manage_taxonomies: အမျိုးအစားခွဲခြားပါ manage_taxonomies_description: ခေတ်စားနေသော အကြောင်းအရာများကို ပြန်လည်သုံးသပ်ရန်နှင့် hashtag သတ်မှတ်ချက်များကို ပြင်ဆင်ရန်အတွက် အသုံးပြုသူများကို ခွင့်ပြုသည် manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ manage_user_access_description: အသုံးပြုသူများကို အခြားအသုံးပြုသူများ၏ နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ရန်၊ ၎င်းတို့၏ အီးမေးလ်လိပ်စာကို ပြောင်းလဲရန်နှင့် စကားဝှက်ကို ပြန်လည်သတ်မှတ်ရန် ခွင့်ပြုသည် manage_users: အသုံးပြုသူများကို စီမံပါ + manage_users_description: အသုံးပြုသူများအား အခြားအသုံးပြုသူများ၏ အသေးစိတ်အချက်အလက်များကို ကြည့်ရှုနိုင်ပြီး ၎င်းတို့နှင့် ဆန့်ကျင်သည့် စိစစ်အရေးယူမှုများကို လုပ်ဆောင်ခွင့်ပြုသည် manage_webhooks: Webhooks ကို စီမံပါ manage_webhooks_description: စီမံခန့်ခွဲရေးဆိုင်ရာ ဖြစ်ရပ်များအတွက် အသုံးပြုသူများအား webhook စနစ်ထည့်သွင်းရန် ခွင့်ပြုထားသည် + view_audit_log: စာရင်းမှတ်တမ်းကို ကြည့်ရန် view_audit_log_description: အသုံးပြုသူများကို ဆာဗာပေါ်တွင် စီမံခန့်ခွဲရေးဆိုင်ရာ လုပ်ဆောင်ချက်မှတ်တမ်းကို ကြည့်ရှုခွင့်ပြုသည်။ view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန် view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည် @@ -586,6 +671,7 @@ my: add_new: စည်းမျဉ်းထည့်ပါ delete: ဖျက်ပါ edit: စည်းမျဉ်းကို ပြင်ဆင်မည် + empty: ဆာဗာစည်းမျဉ်းများကို မသတ်မှတ်ရသေးပါ။ title: ဆာဗာစည်းမျဉ်းများ settings: about: @@ -594,12 +680,15 @@ my: appearance: preamble: Mastodon ၏ ဝဘ်ပုံစံကို စိတ်ကြိုက်ပြင်ဆင်ပါ။ title: ပုံပန်းသဏ္ဌာန် + content_retention: + preamble: Mastodon တွင် အသုံးပြုသူဖန်တီးထားသော အကြောင်းအရာများ မည်သို့သိမ်းဆည်းမည်ကို ထိန်းချုပ်ပါ။ default_noindex: desc_html: ဤသတ်မှတ်ချက်ကို ကိုယ်တိုင်မပြောင်းရသေးသော အသုံးပြုသူအားလုံးအပေါ် သက်ရောက်မှုရှိသည် discovery: follow_recommendations: အကြံပြုချက်များကို စောင့်ကြည့်ပါ profile_directory: ပရိုဖိုင်လမ်းညွှန် public_timelines: အများမြင်စာမျက်နှာ + publish_discovered_servers: ရှာဖွေတွေ့ရှိထားသော ဆာဗာများကို ထုတ်ပြန်ပါ title: ရှာဖွေတွေ့ရှိမှု trends: လက်ရှိခေတ်စားမှုများ domain_blocks: @@ -621,6 +710,7 @@ my: account: ရေးသားသူ application: အက်ပလီကေးရှင်း back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန် + back_to_report: အစီရင်ခံစာ စာမျက်နှာသို့ ပြန်သွားရန် batch: remove_from_report: တိုင်ကြားစာမှ ဖယ်ရှားပါ report: တိုင်ကြားစာ @@ -639,19 +729,31 @@ my: status_changed: ပို့စ်ပြောင်းပြီးပါပြီ title: အကောင့်ပို့စ်များ trending: လက်ရှိခေတ်စားနေခြင်း + visibility: မြင်နိုင်မှု with_media: မီဒီယာနှင့်အတူ strikes: 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: အတည်ပြုမှုဆိုင်းငံ့ထားခြင်း + appeal_rejected: တင်ပြခြင်းကို ပယ်ချခဲ့သည် system_checks: rules_check: action: ဆာဗာစည်းမျဉ်းများကို စီမံရန် message_html: သင်သည် မည်သည့်ဆာဗာစည်းမျဉ်းများကိုမျှ မသတ်မှတ်ထားပါ။ + upload_check_privacy_error: + action: နောက်ထပ်အချက်အလက်များအတွက် ဤနေရာတွင် ကြည့်ပါ + upload_check_privacy_error_object_storage: + action: နောက်ထပ်အချက်အလက်များအတွက် ဤနေရာတွင် ကြည့်ပါ + tags: + review: အခြေအနေသုံးသပ်ရန် + updated_msg: ဟက်ရှ်တဂျ်သတ်မှတ်ချက်များကို အပ်ဒိတ်လုပ်ပြီးပါပြီ title: စီမံခန့်ခွဲခြင်း trends: allow: ခွင့်ပြု @@ -659,13 +761,30 @@ my: disallow: ခွင့်မပြု links: allow: လင့်ခ်ကို ခွင့်ပြုရန် + allow_provider: ပို့စ်တင်သူကိုခွင့်ပြုရန် disallow: လင့်ခ်ကို ခွင့်မပြုရန် + disallow_provider: ပို့စ်တင်သူကို ခွင့်မပြုရန် + no_link_selected: မည်သည့်လင့်ခ်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + publishers: + no_publisher_selected: မည်သည့်ပို့စ်တင်သူကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + shared_by_over_week: + other: ပြီးခဲ့သည့်အပတ်တွင် လူ %{count} ဦး မှ မျှဝေခဲ့သည် title: လက်ရှိခေတ်စားနေသော လင့်များ + usage_comparison: မနေ့က %{yesterday} နှင့် နှိုင်းယှဉ်၍ ယနေ့ %{today} ကြိမ် မျှဝေခဲ့သည် only_allowed: သာခွင့်ပြုသည် + pending_review: ဆိုင်းငံ့ထားသော သုံးသပ်ချက် + preview_card_providers: + allowed: ဤပို့စ်တင်သူထံမှ လင့်ခ်များ ခေတ်စားနိုင်သည် + title: ပို့စ်တင်သူများ rejected: ဖယ်ရှားပြီးပါပြီ statuses: allow: ပို့စ်တင်ခွင့်ပြုရန် + allow_account: ပို့စ်တင်သူကို ခွင့်ပြုပါ disallow: ပို့စ်ကို တင်ခွင့်မပြုရန် + disallow_account: ပို့စ်တင်သူကို ခွင့်မပြုပါနဲ့ + no_status_selected: မည်သည့်ခေတ်စားနေသောပို့စ်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ + shared_by: + other: မျှဝေမှုနှင့် နှစ်သက်မှု %{friendly_count} ကြိမ် title: လက်ရှိခေတ်စားနေသော ပို့စ်များ tags: current_score: "%{score} လက်ရှိရမှတ်" @@ -675,10 +794,12 @@ my: tag_servers_measure: မတူညီသောဆာဗာများ tag_uses_measure: စုစုပေါင်းအသုံးပြုမှု listable: အကြံပြုနိုင်ပါသည် + no_tag_selected: မည်သည့်တဂျ်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ not_listable: အကြံပြုမည်မဟုတ်ပါ not_trendable: လက်ရှိခေတ်စားနေသာပို့စ်များအောက်တွင် ပေါ်လာမည်မဟုတ်ပါ not_usable: အသုံးမပြုနိုင်ပါ title: လက်ရှိခေတ်စားနေသော hashtag များ + trendable: လက်ရှိခေတ်စားနေသာပို့စ်များအောက်တွင် ပေါ်လာမည် trending_rank: "#%{rank} ခေတ်စားနေခြင်း" usable: အသုံးပြုနိုင်သည် usage_comparison: မနေ့က %{yesterday} နှင့် နှိုင်းယှဉ်လျှင် ယနေ့ %{today} ကြိမ် အသုံးပြုခဲ့သည် @@ -698,10 +819,14 @@ my: disable: ပိတ်ပါ disabled: ပိတ်ထားသည် edit: ဆုံးမှတ် ပြင်ဆင်ပါ + empty: မည်သည့် webhook endpoints မှ မစီစဉ်ရသေးပါ။ enable: ဖွင့်ပါ enabled: လက်ရှိ + enabled_events: + other: ဖွင့်ထားသောအစီအစဉ်များ %{count} ခု events: ပွဲအစီအစဉ်များ new: webhook အသစ် + secret: လျှို့ဝှက်လက်မှတ်ထိုးခြင်း status: အခြေအနေ title: Webhook များ webhook: Webhook @@ -715,12 +840,15 @@ my: sensitive: "၎င်းတို့၏ အကောင့်များကို သတိထားရသော အကောင့်များအဖြစ် အမှတ်အသားပြုရန်" silence: "၎င်းတို့၏ ပို့စ်များကို ကန့်သတ်ရန်" suspend: "၎င်းတို့၏ အကောင့်ကို ရပ်ဆိုင်းရန်" + next_steps: စိစစ်ဆုံးဖြတ်ချက်ပြန်ဖျက်ရန်အတွက် တင်ပြနိုင်သည် သို့မဟုတ် ၎င်းကို လျစ်လျူရှုနိုင်သည်။ + subject: "%{username} က %{instance} တွင် စိစစ်ဆုံးဖြတ်ချက်ကို တင်ပြနေသည်" new_pending_account: body: အကောင့်သစ်၏အသေးစိတ်ကို အောက်တွင်ဖော်ပြထားသည်။ ၎င်းကို အတည်ပြုနိုင်သည် သို့မဟုတ် ငြင်းပယ်နိုင်သည်။ subject: " (%{username}) %{instance} ပေါ်ရှိ ပြန်လည်သုံးသပ်ရမည့် အကောင့်သစ်" new_report: body: "%{reporter} က %{target} ကို တိုင်ကြားခဲ့သည်" body_remote: "%{domain} မှ တစ်စုံတစ်ယောက်က %{target} ကို တိုင်ကြားခဲ့သည်" + subject: "%{instance} (#%{id}) အတွက် တိုင်ကြားစာအသစ်" new_trends: body: အောက်ပါအရာများကို အများကိုမပြမီ ပြန်လည်သုံးသပ်ရန် လိုအပ်သည် - new_trending_links: @@ -736,8 +864,10 @@ my: created_msg: နာမည်တူတစ်ခုကို ဖန်တီးပြီးပါပြီ။ အကောင့်ဟောင်းမှ စတင်ရွှေ့နိုင်ပါပြီ။ deleted_msg: နာမည်တူကို ဖယ်ရှားထားပြီးပါပြီ။ ထိုအကောင့်မှ ဤအကောင့်သို့ပြောင်းရန် မဖြစ်နိုင်တော့ပါ။ empty: သင့်တွင် နာမည်တူများ မရှိပါ။ + remove: နာမည်တူများကို လင့်ခ်ဖြုတ်ပါ appearance: advanced_web_interface: အဆင့်မြင့်ဝဘ်ပုံစံ + confirmation_dialogs: အတည်ပြုချက် ဒိုင်ယာလော့ခ်များ discovery: ရှာဖွေတွေ့ရှိမှု localization: body: Mastodon ကို စေတနာ့ဝန်ထမ်းများမှ ဘာသာပြန်ထားပါသည်။ @@ -756,42 +886,66 @@ my: created: အက်ပလီကေးရှင်းကို ဖန်တီးပြီးပါပြီ destroyed: အက်ပလီကေးရှင်းကို ဖျက်ပြီးပါပြီ logout: ထွက်မယ် + regenerate_token: ဝင်ရောက်ခွင့် တိုကင်ကို ပြန်ထုတ်ပါ + token_regenerated: အသုံးပြုခွင့်တိုကင်ကို ပြန်လည်ထုတ်ပေးသည် warning: ဤအချက်အလက်ကို သတိထားပါ။ မည်သူ့ကိုမျှ မမျှဝေပါနှင့်။ + your_token: သင့် အသုံးပြုခွင့်တိုကင် auth: apply_for_account: အကောင့်တစ်ခုတောင်းဆိုပါ change_password: စကားဝှက် confirmations: wrong_email_hint: ထိုအီးမေးလ်လိပ်စာ မမှန်ပါက အကောင့်သတ်မှတ်ချက်များတွင် ပြောင်းလဲနိုင်သည်။ 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: သင့်စကားဝှက် မေ့နေပါသလား။ + link_to_otp: သင့်ဖုန်းမှ နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ် ထည့်ပါ + link_to_webauth: လုံခြုံရေးကီး အသုံးပြုပါ log_in_with: ဖြင့် ဝင်ရောက်ပါ login: အကောင့်ဝင်ရန် logout: ထွက်မယ် migrate_account: အခြားအကောင့်တစ်ခုသို့ ရွှေ့ရန် + migrate_account_html: ဤအကောင့်ကို အခြားအကောင့်သို့ ပြန်ညွှန်းလိုပါက ဤနေရာတွင် စီစဉ်သတ်မှတ်နိုင်သည်။ + or_log_in_with: သို့မဟုတ် အကောင့်ဖြင့် ဝင်ရောက်ပါ + privacy_policy_agreement_html: ကိုယ်ရေးအချက်အလက်မူဝါဒ ကို ဖတ်ပြီး သဘောတူလိုက်ပါပြီ providers: cas: CAS saml: SAML register: အကောင့်ဖွင့်ရန် registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ" + resend_confirmation: အတည်ပြုချက်ညွှန်ကြားမှုများကို ပြန်ပို့ရန် rules: accept: လက်ခံပါ back: နောက်သို့ + 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: + title: "%{domain} တွင် ထည့်သွင်းရန်။" status: account_status: အကောင့်အခြေအနေ + confirming: အီးမေးလ်အတည်ပြုချက် အပြီးသတ်ရန် စောင့်ဆိုင်းခြင်း + functional: သင့်အကောင့်မှာ အပြည့်အဝလုပ်ဆောင်နေပါပြီ။ + view_strikes: သင့်အကောင့်ကို ဆန့်ကျင်သည့် ယခင်ကလုပ်ဆောင်ချက်များကို ကြည့်ပါ use_security_key: လုံခြုံရေးကီးကို သုံးပါ authorize_follow: already_following: သင်သည် ဤအကောင့်ကို စောင့်ကြည့်နေပြီဖြစ်ပါသည် already_requested: သင်သည် ထိုအကောင့်စောင့်ကြည့်ရန် တောင်းဆိုမှုတစ်ခု ပေးပို့ခဲ့ပြီးပါပြီ follow: စောင့်ကြည့်မယ် follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်- + following: သင် ယခု အောက်ပါအတိုင်း လုပ်ဆောင်နေပါသည် - post_follow: close: သို့မဟုတ် သင်သည် ဤဝင်းဒိုးကို ပိတ်နိုင်သည် return: အသုံးပြုသူ၏ ပရိုဖိုင်ကိုပြရန် @@ -799,8 +953,13 @@ my: title: "%{acct} ကို စောင့်ကြည့်မယ်" challenge: confirm: ဆက်လုပ်မည် + hint_html: "အကြံပြုချက် - နောက်နာရီများတွင် သင့်စကားဝှက်ကို ထပ်မံတောင်းဆိုမည်မဟုတ်ပါ။" invalid_password: စကားဝှက် မမှန်ပါ prompt: ဆက်လက်လုပ်ဆောင်ရန်အတွက် စကားဝှက်အတည်ပြုပါ + crypto: + errors: + invalid_key: မှန်ကန်သော Ed25519 သို့မဟုတ် Curve25519 ကီး မဟုတ်ပါ။ + invalid_signature: မှန်ကန်သော Ed25519 လက်မှတ်မဟုတ်ပါ date: formats: default: "%b %d, %Y" @@ -820,38 +979,73 @@ my: x_months: "%{count}mo" x_seconds: "%{count}s" deletes: + challenge_not_passed: သင်ထည့်လိုက်သော အချက်အလက်မှာ မမှန်ပါ confirm_password: အထောက်အထားကိုအတည်ပြုရန်အတွက် သင့်လက်ရှိစကားဝှက်ကို ထည့်ပါ confirm_username: လုပ်ငန်းစဉ်ကို အတည်ပြုရန်အတွက် သင့်အသုံးပြုသူအမည်ကို ထည့်သွင်းပါ proceed: အကောင့်ဖျက်ပါ success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ warning: + before: ရှေ့မဆက်မီ ဤမှတ်စုများကို သေချာဖတ်ပါ - + caches: အခြားဆာဗာများမှ ကက်ရှ်လုပ်ထားသော အကြောင်းအရာမှာ ဆက်ရှိနေနိုင်သည် data_removal: သင့်ပို့စ်များနှင့် အခြားအချက်အလက်များကို အပြီးတိုင် ဖယ်ရှားပါမည် + email_change_html: သင့်အကောင့်မဖျက်ဘဲ သင့်အီးမေးလ်လိပ်စာကို ပြောင်းလဲနိုင်သည် + email_contact_html: မရောက်သေးပါက အကူအညီအတွက် %{email} သို့ အီးမေးလ်ပို့နိုင်ပါသည် + email_reconfirmation_html: အတည်ပြုချက်အီးမေးလ် လက်ခံမရရှိပါက ထပ်မံတောင်းဆိုနိုင်သည် + irreversible: အကောင့်ကို ပြန်လည်ရယူရန် သို့မဟုတ် ပြန်လည်အသုံးပြုရန် မဖြစ်နိုင်တော့ပါ + more_details_html: အသေးစိတ်အချက်အလက်များအတွက်၊ ကိုယ်ရေးကိုယ်တာမူဝါဒ ကို ကြည့်ပါ။ + username_available: သင့်အသုံးပြုသူအမည်ကို ပြန်လည်ရရှိနိုင်ပါမည် disputes: strikes: + action_taken: ဆောင်ရွက်ခဲ့သည် + appeal: အယူခံဝင်ခြင်း + 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: "%{date} မှ %{action}" 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: တရားဝင်ဒိုမိန်းအမည်မဟုတ်ပါ 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. + '400': သင်တင်ပြသော တောင်းဆိုချက်မှာ မမှန်ကန်ပါ သို့မဟုတ် ပုံစံမမှန်ပါ။ + '403': ဤစာမျက်နှာကြည့်ရှုရန် သင့်တွင် ခွင့်ပြုချက်မရှိပါ။ + '404': သင်ရှာဖွေနေသော စာမျက်နှာသည် ဤနေရာတွင် မရှိပါ။ + '406': ဤစာမျက်နှာကို တောင်းဆိုထားသော ပုံစံဖြင့် မရရှိနိုင်ပါ။ + '410': သင်ရှာဖွေနေသည့် စာမျက်နှာသည် ဤနေရာတွင် မရှိတော့ပါ။ '422': content: လုံခြုံရေး အတည်ပြုခြင်း မအောင်မြင်ပါ။ သင်သည် ကွတ်ကီးများကို ပိတ်ပင်ထားပါသလား။ + title: လုံခြုံရေး အတည်ပြုခြင်း မအောင်မြင်ပါ '429': တောင်းဆိုမှု များနေပါသည် '500': + content: စိတ်မကောင်းပါ။ အဆုံးတွင် တစ်ခုမှားယွင်းသွားပါသည်။ title: ဤစာမျက်နှာမှာ မမှန်ကန်ပါ - '503': The page could not be served due to a temporary server failure. + '503': ယာယီဆာဗာချို့ယွင်းမှုကြောင့် စာမျက်နှာကို ကြည့်ရှု၍မရပါ။ + existing_username_validator: + not_found_multiple: "%{usernames} ကို ရှာမတွေ့ပါ" exports: archive_takeout: date: ရက်စွဲ download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ + in_progress: သင့်မှတ်တမ်းကို ပြုစုနေသည်... request: မှတ်တမ်း တောင်းဆိုရန် size: အရွယ်အစား blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း @@ -859,6 +1053,7 @@ my: csv: CSV domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ lists: စာရင်းများ + mutes: အသံပိတ် storage: မီဒီယာသိုလှောင်မှု featured_tags: add_new: အသစ် ထည့်ပါ @@ -884,6 +1079,8 @@ my: other: "%{count} အဓိကစကားလုံး" statuses: other: "%{count} ပို့စ်" + statuses_long: + other: တစ်ဦးချင်းပို့စ် %{count} များ ကို ဖျောက်ထားသည် title: စစ်ထုတ်ခြင်းများ new: save: စစ်ထုတ်မှုအသစ် သိမ်းပါ @@ -896,21 +1093,39 @@ my: title: စစ်ထုတ်ထားသော ပို့စ်များ generic: all: အားလုံး + changes_saved_msg: အပြောင်းအလဲများကို သိမ်းဆည်းပြီးပါပြီ။ copy: ကူးယူပါ delete: ဖျက်ပါ + deselect: အားလုံး ရွေးထားခြင်းကို ဖျက်မည် + none: တစ်ခုမျှ + order_by: စီထားသည် save_changes: ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ + select_all_matching_items: + other: သင့်ရှာဖွေမှုနှင့် ကိုက်ညီသည့် %{count} ခု အားလုံးကို ရွေးပါ။ today: ယနေ့ + validation_errors: + other: မမှန်သေးပါ။ ကျေးဇူးပြု၍ အောက်ပါ %{count} အမှားများကို ပြန်လည်သုံးသပ်ပါ imports: + errors: + invalid_csv_file: မမှန်ကန်သော CSV ဖိုင်။ အမှား - %{error} + over_rows_processing_limit: "%{count} တန်းထက် ပိုနေပါသည်" modes: merge: ပေါင်း + merge_long: ရှိပြီးသားမှတ်တမ်းများ သိမ်းဆည်းပြီး အသစ်များ ထပ်ထည့်ပါ + overwrite: ထပ်ရေးရန် + overwrite_long: လက်ရှိမှတ်တမ်းများကို အသစ်များဖြင့် အစားထိုးပါ preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။ + success: သင့်အချက်အလက်ကို အပ်လုဒ်လုပ်ပြီး သတ်မှတ်ချိန်အတွင်း ဆောင်ရွက်ပါမည် types: blocking: ပိတ်ပင်ထားသည့်စာရင်း bookmarks: Bookmarks domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း following: စောင့်ကြည့်စာရင်း + muting: ပိတ်ထားသောစာရင်း upload: တင္ရန် invites: + delete: အကောင့်ပိတ်ရန် + expired: သက်တမ်းကုန်သွားပါပြီ expires_in: '1800': ၃၀ မိနစ် '21600': ၆ နာရီ @@ -918,33 +1133,78 @@ my: '43200': ၁၂ နာရီ '604800': ၁ ပတ် '86400': ၁ ရက် + expires_in_prompt: ဘယ်တော့မှ + generate: ဖိတ်ကြားချက်လင့်ခ် ဖန်တီးပါ + invited_by: သင့်ကို ဖိတ်ခေါ်ထားသည် - + max_uses: + other: "%{count} အသုံးပြုမှုများ" max_uses_prompt: အကန့်အသတ်မဲ့ + prompt: ဤဆာဗာသို့ ဝင်ရောက်ရန်အတွက် လင့်ခ်များဖန်တီးပြီး အခြားသူများကို မျှဝေပါ + table: + expires_at: သက်တမ်းကုန်သည် + uses: အသုံးပြုမှုများ title: ဖိတ်ခေါ်ရန် + lists: + errors: + limit: သင်သည် အများဆုံးစာရင်း အရေအတွက်သို့ ရောက်ရှိသွားပါပြီ login_activities: authentication_methods: otp: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အက်ပ် password: စကားဝှက် sign_in_token: အီးမေးလ်လုံခြုံရေးကုဒ် webauthn: လုံခြုံရေးကီးများ + description_html: သင်မပြုလုပ်သည့် လုပ်ဆောင်ချက်တွေ့ရှိပါက သင့်စကားဝှက်ကို ပြောင်းလဲပြီး နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို အသုံးပြုသင့်ပါသည်။ + empty: စစ်မှန်ကြောင်းအထောက်အထားမရရှိနိုင်ပါ + failed_sign_in_html: "%{ip} (%{browser}) မှ %{method} ဖြင့် အကောင့်ဝင်ရောက်ခြင်း မအောင်မြင်ပါ" + successful_sign_in_html: "%{ip} (%{browser}) မှ %{method} ဖြင့် အကောင့်ဝင်၍ရပါပြီ" + title: အထောက်အထားမှတ်တမ်း media_attachments: validations: images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ + not_ready: မပြီးသေးသောဖိုင်များကို ပူးတွဲ၍မရပါ။ ခဏအကြာတွင် ထပ်စမ်းကြည့်ပါ။ + too_many: ဖိုင် ၄ ဖိုင်ထက် ပို၍တွဲမရပါ migrations: acct: သို့ ပြောင်းရွှေ့ရန် cancel: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ရန် + cancelled_msg: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ပြီးပါပြီ။ errors: + already_moved: သင်ပြောင်းရွှေ့ပြီးသော အကောင့်နှင့် တူညီပါသည် missing_also_known_as: ဤအကောင့်၏ အမည်တူမဟုတ်ပါ move_to_self: လက်ရှိအကောင့်မဖြစ်နိုင်ပါ not_found: ရှာမတွေ့ပါ + 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: ရွှေ့ပြီးပါက နောက်တစ်ကြိမ် ထပ်ရွှေ့ရန် အချိန်စောင့်ရပါမည် + followers: ဤလုပ်ဆောင်ချက်မှာ စောင့်ကြည့်သူအားလုံးကို လက်ရှိအကောင့်မှ အကောင့်အသစ်သို့ ရွှေ့ပြောင်းခြင်းဖြစ်သည် only_redirect_html: တနည်းအားဖြင့် သင်သည် သင့်ပရိုဖိုင်ပေါ်တွင် ပြန်ညွှန်းခြင်းကိုသာ ပြုလုပ်နိုင်သည်။ + other_data: အခြားအချက်အလက်များကို အလိုအလျောက်ရွှေ့မည်မဟုတ်ပါ redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည် moderation: title: စိစစ်ခြင်း + move_handler: + 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: @@ -957,17 +1217,28 @@ my: title: စောင့်ကြည့်သူအသစ် follow_request: action: စောင့်ကြည့်ရန်တောင်းဆိုမှုများကို ပြင်ဆင်ရန် + body: "%{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်" + subject: ဆိုင်းငံ့ထားသော စောင့်ကြည့်သူ - %{name} title: စောင့်ကြည့်ခွင့်ပြုရန် တောင်းဆိုမှုအသစ် mention: action: စာပြန်ရန် body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်- subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည် + title: ဖော်ပြမှုအသစ် + poll: + subject: "%{name} ၏ စစ်တမ်းတစ်ခု ပြီးသွားပါပြီ" reblog: + body: "%{name} က သင့်ပို့စ်ကို Boost လုပ်ခဲ့သည် -" + subject: "%{name} က သင့်ပို့စ်ကို Boost လုပ်ခဲ့သည်" title: Boost အသစ် status: subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ" update: subject: "%{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်" + notifications: + email_events: အီးမေးလ်သတိပေးချက်များအတွက်အကြောင်းအရာများ + email_events_hint: အသိပေးချက်များရယူမည့် အစီအစဉ်များကို ရွေးပါ - + other_settings: အခြားအသိပေးချက်များ၏ သတ်မှတ်ချက်များ number: human: decimal_units: @@ -979,7 +1250,11 @@ my: thousand: K trillion: T otp_authentication: + code_hint: အတည်ပြုရန်အတွက် အထောက်အထားစိစစ်အက်ပ်မှ ထုတ်ပေးသည့်ကုဒ်ကို ထည့်သွင်းပါ enable: ဖွင့်ပါ + manual_instructions: QR ကုဒ်စကင်န်ဖတ်၍မရပါက ကိုယ်တိုင်ရိုက်ထည့်ရန်လိုအပ်ပြီး ဤနေရာသည် စာရွက်အလွတ်နေရာဖြစ်သည်။ + setup: သတ်မှတ်ရန် + wrong_code: ထည့်သွင်းထားသောကုဒ်သည် မမှန်ကန်ပါ။ ဆာဗာအချိန်နှင့် စက်အချိန်မှာ မှန်ကန်ပါသလား။ pagination: newer: ပိုသစ်သော next: ရှေ့သို့ @@ -999,14 +1274,20 @@ my: too_many_options: သတ်မှတ်ထားသောအရေအတွက် %{max} ကိုကျော်လွန်နေသည် preferences: other: အခြား + posting_defaults: ပို့စ်တင်ရာတွင် သတ်မှတ်ချက်များ public_timelines: အများမြင်စာမျက်နှာ privacy_policy: title: ကိုယ်ရေးအချက်အလက်မူဝါဒ + reactions: + errors: + limit_reached: မတူညီသော တုံ့ပြန်မှုများ၏ ကန့်သတ်ချက်သို့ ရောက်ရှိခဲ့သည်။ + unrecognized_emoji: အသိအမှတ်ပြုထားသော အီမိုဂျီမဟုတ်ပါ relationships: activity: အကောင့်လုပ်ဆောင်ချက် confirm_follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်လိုသည်မှာ သေချာပါသလား။ confirm_remove_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။ confirm_remove_selected_follows: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။ + dormant: Dormant follow_failure: ရွေးချယ်ထားသော အကောင့်အချို့ကို စောင့်ကြည့်၍ရမည်မဟုတ်ပါ။ follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်ပါ followers: စောင့်ကြည့်သူများ @@ -1024,11 +1305,18 @@ my: status: အကောင့်အခြေအနေ remote_follow: missing_resource: သင့်အကောင့်အတွက် လိုအပ်သော ပြန်ညွှန်းမည့် URL ကို ရှာမတွေ့ပါ + reports: + errors: + invalid_rules: မှန်ကန်သောစည်းမျဉ်းများကို ကိုးကားထားခြင်း မရှိပါ rss: content_warning: 'အကြောင်းအရာသတိပေးချက် - ' descriptions: account: "@%{acct} မှ အများမြင်ပို့စ်များ" tag: "#%{hashtag} ကို တဂ်ထားသော အများမြင်ပို့စ်များ" + scheduled_statuses: + over_daily_limit: ယနေ့အတွက် စီစဉ်ထားသည့် ပို့စ်များ၏ ကန့်သတ်ချက် %{limit} ကို ကျော်လွန်သွားပါပြီ + over_total_limit: စီစဉ်ထားသည့် ပို့စ်များ၏ ကန့်သတ်ချက် %{limit} ကို ကျော်လွန်သွားပါပြီ + too_soon: စီစဉ်ထားသောရက်စွဲမှာ အနာဂတ်အတွက်ဖြစ်သည် sessions: activity: နောက်ဆုံးလုပ်ဆောင်ချက် browser: ဘရောက်ဇာ @@ -1054,6 +1342,7 @@ my: weibo: Weibo current_session: လက်ရှိဆက်ရှင် description: "%{platform} ပေါ်ရှိ %{browser}" + explanation: ဤသည်မှာ သင်၏ Mastodon အကောင့်သို့ လက်ရှိဝင်ရောက်ထားသည့် ဝဘ်ဘရောက်ဆာများဖြစ်သည်။ ip: IP platforms: adobe_air: Adobe Air @@ -1081,14 +1370,19 @@ my: authorized_apps: ခွင့်ပြုထားသောအက်ပ်များ back: Mastodon သို့ ပြန်သွားရန် delete: အကောင့်ဖျက်သိမ်းခြင်း + development: Development edit_profile: ပရိုဖိုင်ပြင်ဆင်ရန် export: အချက်အလက်ထုတ်ယူခြင်း + featured_tags: အသားပေးဖော်ပြထားသည့် ဟက်ရှ်တဂျ်များ import: ထည့်သွင်းခြင်း + import_and_export: ထည့်သွင်းခြင်းနှင့် ထုတ်ယူခြင်း + migrate: အကောင့်ပြောင်းရွှေ့ခြင်း notifications: အသိပေးချက်များ preferences: သတ်မှတ်ချက်များ profile: ပရိုဖိုင် relationships: စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း statuses_cleanup: အလိုအလျောက်ပို့စ်ဖျက်ခြင်း + strikes: စိစစ်လုပ်ဆောင်ချက်များ two_factor_authentication: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် webauthn_authentication: လုံခြုံရေးကီးများ statuses: @@ -1106,8 +1400,14 @@ my: disallowed_hashtags: other: ခွင့်မပြုထားသော hashtags များပါရှိသည် - %{tags} edited_at_html: "%{date} ကို ပြင်ဆင်ပြီးပါပြီ" + errors: + in_reply_not_found: သင် စာပြန်နေသည့်ပို့စ်မှာ မရှိတော့ပါ။ open_in_web: ဝဘ်တွင် ဖွင့်ပါ + over_character_limit: စာလုံးကန့်သတ်ချက် %{max} ကို ကျော်လွန်သွားပါပြီ pin_errors: + direct: အမည်ဖော်ပြထားသည့် ပို့စ်များကို ပင်တွဲ၍မရပါ + limit: သင်သည် ပို့စ်အရေအတွက်အများဆုံးကို ပင်တွဲထားပြီးဖြစ်သည် + ownership: အခြားသူ၏ပို့စ်ကို ပင်တွဲ၍မရပါ reblog: Boost လုပ်ထားသောပို့စ်ကို ပင်ထား၍မရပါ poll: total_people: @@ -1131,16 +1431,25 @@ my: unlisted_long: လူတိုင်းမြင်နိုင်သော်လည်း အများမြင်မည့်စာမျက်နှာများတွင် စာရင်းမသွင်းထားပါ။ statuses_cleanup: enabled: ပို့စ်အဟောင်းများကို အလိုအလျောက် ဖျက်ပါ + enabled_hint: အောက်ပါခြွင်းချက်များထဲမှ တစ်ခုနှင့် မကိုက်ညီပါက သတ်မှတ်ထားသည့်ကာလအပိုင်းအခြားသို့ ရောက်သည်နှင့် သင့်ပို့စ်များကို အလိုအလျောက် ဖျက်ပါမည် + exceptions: ခြွင်းချက်များ + explanation: ပို့စ်များကို ဖျက်ခြင်းသည် စျေးကြီးသော လုပ်ဆောင်မှုတစ်ခုဖြစ်သောကြောင့်၊ ဆာဗာမှမဟုတ်ရင် အလုပ်ရှုပ်နေချိန်တွင် အချိန်ကြာလာသည်နှင့်အမျှ ၎င်းကို ဖြည်းဖြည်းချင်း လုပ်ဆောင်ပါသည်။ ထို့ကြောင့်၊ သင့်ပို့စ်များသည် အချိန်သတ်မှတ်ချက်သို့ရောက်ရှိပြီးနောက် ခဏအကြာတွင် ဖျက်လိုက်နိုင်ပါသည်။ ignore_favs: နှစ်သက်မှုများကို လျစ်လျူရှုပါ ignore_reblogs: Boost များကို လျစ်လျူရှုပါ + interaction_exceptions: အပြန်အလှန်တုံ့ပြန်မှုများအပေါ်အခြေခံသည့် ခြွင်းချက်များ + 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_hint: နှစ်သက်ထားပြီးသော ပို့စ်များကို မဖျက်ပါနှင့် min_age: '1209600': ၂ ပတ် '15778476': ၆ လ @@ -1150,10 +1459,20 @@ my: '604800': ၁ ပတ် '63113904': ၂ နှစ် '7889238': ၃ လ + min_age_label: ကာလအပိုင်းအခြား + min_favs: အနည်းဆုံးအားဖြင့် နှစ်သက်သည့်ပို့စ်များကို သိမ်းဆည်းပါ + min_favs_hint: အနည်းဆုံး ဤအကြိုက်ဆုံးအရေအတွက်ကို လက်ခံရရှိထားသည့် သင့်ပို့စ်များကို မဖျက်ပါ။ ပို့စ်များကို ၎င်းတို့၏ စိတ်ကြိုက်အရေအတွက်မခွဲခြားဘဲ ဖျက်ရန် ချန်ထားပါ။ + min_reblogs: အနည်းဆုံးအားဖြင့် Boost လုပ်ထားသည့်ပို့စ်များကို သိမ်းဆည်းပါ + min_reblogs_hint: အနည်းဆုံး ဤအကြိမ်အရေအတွက်ကို မြှင့်တင်ထားသည့် သင့်ပို့စ်များကို မဖျက်ပါ။ ၎င်းတို့၏ မြှင့်တင်မှုအရေအတွက်ကို မခွဲခြားဘဲ ပို့စ်များကို ဖျက်ရန် ချန်ထားပါ stream_entries: pinned: ပင်တွဲထားသောပို့စ် reblogged: Boost လုပ်ခဲ့သည် sensitive_content: သတိထားရသော အကြောင်းအရာ + strikes: + errors: + too_late: ဤလုပ်ဆောင်ချက်တင်ပြရန် နောက်ကျသွားပါပြီ + tags: + does_not_match_previous_name: ယခင်အမည်နှင့် မကိုက်ညီပါ themes: default: Mastodon (အနက်) mastodon-light: Mastodon (အလင်းနောက်ခံ) @@ -1169,33 +1488,55 @@ my: edit: ပြင်ဆင်ရန် enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည် enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ + generate_recovery_codes: ပြန်လည်ရယူရေးကုဒ်များ ဖန်တီးပါ + lost_recovery_codes: သင့်ဖုန်းပျောက်ဆုံးသွားပါက ပြန်လည်ရယူခြင်းကုဒ်များသည် သင့်အကောင့်သို့ ပြန်လည်ဝင်ရောက်ခွင့်ရရှိစေမည်ဖြစ်သည်။ သင်၏ ပြန်လည်ရယူရေးကုဒ်များ ပျောက်ဆုံးသွားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြန်လည်ထုတ်ပေးနိုင်ပါသည်။ သင်၏ ပြန်လည်ရယူရေး ကုဒ်ဟောင်းများ ပျက်သွားပါမည်။ methods: နှစ်ဆင့်ခံလုံခြုံရေးနည်းလမ်းများ otp: Authenticator အက်ပ် recovery_codes: အရန်ပြန်လည်ရယူရေးကုဒ်များ + recovery_codes_regenerated: ပြန်လည်ရယူရေးကုဒ်များကို ပြန်ထုတ်ပေးပြီးပါပြီ + recovery_instructions_html: သင့်ဖုန်းသို့ ဝင်ရောက်သုံးစွဲခွင့် ဆုံးရှုံးခဲ့ဖူးပါက၊ သင့်အကောင့်သို့ ပြန်လည်ဝင်ရောက်ခွင့်ရရန် အောက်ပါ ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုနိုင်ပါသည်။ ပြန်လည်ရယူရေးကုဒ်များကို လုံခြုံအောင်ထားပါ။ ဥပမာအားဖြင့်၊ သင်သည် ၎င်းတို့ကို ပရင့်ထုတ်ပြီး အခြားအရေးကြီးစာရွက်စာတမ်းများဖြင့် သိမ်းဆည်းနိုင်သည်။ webauthn: လုံခြုံရေးကီးများ 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: သင့်မှတ်တမ်း ဒေါင်းလုဒ်ဆွဲရန် အသင့်ဖြစ်ပါပြီ suspicious_sign_in: change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ details: ဤသည်မှာ အကောင့်ဝင်ရောက်ခြင်းအတွက် အသေးစိတ်အချက်များဖြစ်သည် - explanation: IP လိပ်စာအသစ်တစ်ခုမှနေ၍ သင့်အကောင့်ဝင်ရောက်သည်ကို တွေ့ရှိခဲ့ပါသည်။ + further_actions_html: သင် မဟုတ်ပါက သင့်အကောင့်လုံခြုံစေရန်အတွက် %{action} ကို ချက်ချင်းဆောင်ရွက်ပြီး နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားရန် အကြံပြုပါသည်။ + subject: သင့်အကောင့်ကို IP လိပ်စာအသစ်တစ်ခုမှ ဝင်ရောက်အသုံးပြုလျက်ရှိသည် title: အကောင့်ဝင်ရောက်မှုအသစ် warning: appeal: အယူခံတင်သွင်းပါ + appeal_description: အမှားအယွင်းတစ်ခုဟု သင်ယုံကြည်ပါက %{instance} ဝန်ထမ်းများထံ တင်ပြနိုင်သည်။ categories: spam: Spam + violation: အကြောင်းအရာသည် အောက်ပါကွန်မြူနတီလမ်းညွှန်ချက်များကို ချိုးဖောက်သည်။ explanation: + delete_statuses: သင့်ပို့စ်အချို့သည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ကွန်မြူနတီလမ်းညွှန်ချက်များကို ချိုးဖောက်ကြောင်း တွေ့ရှိပြီး %{instance} ၏ ကြီးကြပ်သူများမှ ဖယ်ရှားလိုက်ပါသည်။ disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။ + silence: သင့်အကောင့်ကို ဆက်လက်အသုံးပြုနိုင်သော်လည်း သင့်စောင့်ကြည့်သူများသာ ဤဆာဗာတွင် သင့်ပို့စ်များကို မြင်နိုင်မည်ဖြစ်ပြီး အကြောင်းအရာခေါင်းစဉ်အမျိုးမျိုးမှ သင့်ကို ဖယ်ထုတ်ထားနိုင်သည်။ သို့သော် အခြားသူများက သင့်ကို စောင့်ကြည့်နေနိုင်ပါသေးသည်။ suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။ reason: အကြောင်းပြချက် - + statuses: ကိုးကားထားသောပို့စ်များ - subject: delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ" + disable: သင့်အကောင့် %{acct} ကို ပိတ်သိမ်းထားသည် mark_statuses_as_sensitive: "%{acct} ရှိ သင့်ပို့စ်များကို သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုထားသည်" none: "%{acct} အတွက် သတိပေးချက်" + sensitive: "%{acct} ရှိ သင့်ပို့စ်များကို ယခုမှစပြီး သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုပါမည်" silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည် + suspend: သင့်အကောင့် %{acct} ကို ဆိုင်းငံ့ထားသည် title: delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည် disable: အကောင့်ပိတ်သွားပါပြီ။ @@ -1209,10 +1550,17 @@ my: edit_profile_step: ပရိုဖိုင်ဓာတ်ပုံတစ်ပုံ တင်ခြင်း၊ ဖော်ပြမည့်အမည် ပြောင်းလဲခြင်းနှင့် အခြားအရာများပြုလုပ်ခြင်းတို့ဖြင့် သင့်ပရိုဖိုင်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။ စောင့်ကြည့်သူအသစ်များ သင့်ကိုစောင့်ကြည့်ခွင့်မပြုမီ ပြန်လည်သုံးသပ်ရန်အတွက် ဆုံးဖြတ်နိုင်ပါသည်။ explanation: ဤသည်မှာ သင် စတင်အသုံးပြုနိုင်ရန်အတွက် အကြံပြုချက်အချို့ဖြစ်ပါသည် final_action: ပို့စ် တင်ရန် + final_step: 'ပို့စ်စပြီး တင်နိုင်ပါပြီ။ စောင့်ကြည့်သူများမရှိသေးသော်လည်း သင့်အများမြင်ပို့စ်များကို ဒေသတွင်းစာမျက်နှာ သို့မဟုတ် ဟက်ရှ်တက်စာမျက်နှာတို့တွင် အခြားသူများက မြင်နိုင်ပါသည်။ #introductions ဟက်ရှ်တက်ဖြင့် သင့်ကိုယ်သင် မိတ်ဆက်နိုင်ပါသည်။' + full_handle: ကိုယ်တိုင်ထိန်းချုပ်နိုင်သည် + full_handle_hint: ဤသည်မှာ သင့်သူငယ်ချင်းများကို အခြားဆာဗာတစ်ခုမှ မက်ဆေ့ချ်ပို့နိုင်ကြောင်း သို့မဟုတ် စောင့်ကြည့်နိုင်ကြောင်း အသိပေးပါမည်။ subject: Mastodon မှ လှိုက်လှဲစွာကြိုဆိုပါသည်။ + title: "%{name} က ကြိုဆိုပါတယ်။" users: follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ + go_to_sso_account_settings: အထောက်အထားပေးသူ၏အကောင့်သတ်မှတ်ချက်များသို့ သွားပါ invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ် + otp_lost_help_html: နှစ်ခုစလုံးကို ဝင်ရောက်ခွင့် ဆုံးရှုံးသွားပါက %{email} နှင့် ဆက်သွယ်နိုင်ပါသည် + seamless_external_login: ပြင်ပဝန်ဆောင်မှုမှတစ်ဆင့် အကောင့်ဝင်ထားသောကြောင့် စကားဝှက်နှင့် အီးမေးလ်သတ်မှတ်ချက်များကို မရနိုင်ပါ။ signed_in_as: အဖြစ် အကောင့်ဝင်ခဲ့သည် - verification: verification: စိစစ်ခြင်း diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 93e7c55024..93d99fa4ce 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -812,6 +812,12 @@ nl: message_html: Je hebt voor deze server geen regels opgesteld. sidekiq_process_check: message_html: Er draait geen Sidekiqproces voor de wachtrij(en) %{value}. Controleer je Sidekiqconfiguratie + upload_check_privacy_error: + action: Klik hier voor meer informatie + message_html: "Uw webserver is verkeerd geconfigureerd. De privacy van uw gebruikers is in gevaar." + upload_check_privacy_error_object_storage: + action: Klik hier voor meer informatie + message_html: "Je objectopslag is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar." tags: review: Status beoordelen updated_msg: Instellingen hashtag succesvol bijgewerkt @@ -1684,12 +1690,13 @@ nl: title: Welkom aan boord %{name}! users: follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen + go_to_sso_account_settings: Ga naar de accountinstellingen van uw identiteitsprovider invalid_otp_token: Ongeldige tweestaps-toegangscode otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email} seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar. signed_in_as: 'Ingelogd als:' verification: - explanation_html: 'Je kunt jezelf verifiëren als de eigenaar van de links in de metadata van jouw profiel. Hiervoor moet op de gelinkte website een link terug naar jouw Mastodonprofiel staan. Deze link moet het rel="me"-attribuut bevatten. De omschrijving van de link maakt niet uit. Hier is een voorbeeld:' + explanation_html: 'Je kunt jezelf verifiëren als de eigenaar van de koppelingen in de metadata van jouw profiel. Hiervoor moet op de gekoppelde website een koppeling terug naar jouw Mastodonprofiel staan. Na het toevoegen van de koppeling moet je wellicht hier terug komen en je profiel opnieuw bewaren om de verificatie te bevestigen. Deze koppeling moet het rel="me"-attribuut bevatten. De omschrijving van de koppeling maakt niet uit. Hier is een voorbeeld:' verification: Verificatie webauthn_credentials: add: Nieuwe beveiligingssleutel toevoegen diff --git a/config/locales/nn.yml b/config/locales/nn.yml index ee496f2727..ea4d2e09df 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1659,7 +1659,6 @@ nn: seamless_external_login: Du er logga inn gjennom eit eksternt reiskap, so passord og e-postinstillingar er ikkje tilgjengelege. signed_in_as: 'Logga inn som:' verification: - explanation_html: 'Du kan bekrefte at du selv er eieren av lenkene i din profilmetadata. For å gjøre det, må det tillenkede nettstedet inneholde en lenke som fører tilbake til Mastodon-profilen din. Lenken tilbake ha en rel="me"-attributt. Tekstinnholdet til lenken er irrelevant. Her er et eksempel:' verification: Stadfesting webauthn_credentials: add: Legg til ny sikkerhetsnøkkel diff --git a/config/locales/no.yml b/config/locales/no.yml index 9f22a1bdbd..9f09db57e6 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1612,7 +1612,6 @@ seamless_external_login: Du er logget inn via en ekstern tjeneste, så passord og e-post innstillinger er ikke tilgjengelige. signed_in_as: 'Innlogget som:' verification: - explanation_html: 'Du kan bekrefte at du selv er eieren av lenkene i din profilmetadata. For å gjøre det, må det tillenkede nettstedet inneholde en lenke som fører tilbake til Mastodon-profilen din. Lenken tilbake ha en rel="me"-attributt. Tekstinnholdet til lenken er irrelevant. Her er et eksempel:' verification: Bekreftelse webauthn_credentials: add: Legg til ny sikkerhetsnøkkel diff --git a/config/locales/oc.yml b/config/locales/oc.yml index fa23f0522b..67005422b9 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -1004,7 +1004,6 @@ oc: seamless_external_login: Sètz connectat via un servici extèrn, los paramètres de senhal e de corrièl son doncas pas disponibles. signed_in_as: 'Session a :' verification: - explanation_html: 'Podètz verificar vosautres meteisses coma proprietari dels ligams per las metadonadas de vòstre perfil. Per aquò far, lo site Web ligat deu conténer un ligam cap a vòstre perfil Mastodon. Lo ligam deu aver un atribut rel="me". Lo contengut tèxte del ligam impòrta pas. Vaquí un exemple :' verification: Verificacion webauthn_credentials: add: Apondre una clau de seguretat novèla diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 66f01ccaac..771a1623e3 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -840,6 +840,12 @@ pl: message_html: Nie zdefiniowano żadnych reguł serwera. sidekiq_process_check: message_html: Brak uruchomionego procesu Sidekiq dla kolejki(-ek) %{value}. Sprawdź konfigurację Sidekiq + upload_check_privacy_error: + action: Kliknij tutaj, aby dowiedzieć się więcej + message_html: "Twój serwer internetowy jest nieprawidłowo skonfigurowany. Prywatność twoich użytkowników jest zagrożona." + upload_check_privacy_error_object_storage: + action: Kliknij tutaj, aby dowiedzieć się więcej + message_html: "Pamięć obiektu jest nieprawidłowa. Prywatność twoich użytkowników jest zagrożona." tags: review: Stan przeglądu updated_msg: Pomyślnie uaktualniono ustawienia hashtagów @@ -1748,6 +1754,7 @@ pl: title: Witaj na pokładzie, %{name}! users: follow_limit_reached: Nie możesz obserwować więcej niż %{limit} osób + go_to_sso_account_settings: Przejdź do ustawień konta dostawcy tożsamości invalid_otp_token: Kod uwierzytelniający jest niepoprawny otp_lost_help_html: Jeżeli utracisz dostęp do obu, możesz skontaktować się z %{email} seamless_external_login: Zalogowano z użyciem zewnętrznej usługi, więc ustawienia hasła i adresu e-mail nie są dostępne. diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 931c0009e0..3669b52fc1 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -441,8 +441,10 @@ pt-BR: import: description_html: Você está prestes a importar uma lista de boqueio de domínio. Por favor, revise esta lista com muito cuidado, especialmente se você mesmo não criou esta lista. existing_relationships_warning: Existem relações de seguimento + private_comment_description_html: 'Para ajudá-lo a rastrear de onde vêm os blocos importados, serão criados blocos importados com o seguinte comentário privado: %{comment}' private_comment_template: Importado de %{source} em %{date} title: Importar bloqueio de domínios + invalid_domain_block: 'Um ou mais blocos de domínio foram ignorados devido ao(s) seguinte(s) erro(s): %{error}' new: title: Importar bloqueio de domínios no_file: Nenhum arquivo selecionado @@ -474,6 +476,7 @@ pt-BR: content_policies: comment: Nota interna description_html: Você 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. + limited_federation_mode_description_html: Você pode escolher se deseja permitir a associação com este domínio. policies: reject_media: Rejeitar mídia reject_reports: Rejeitar denúncias @@ -578,7 +581,9 @@ pt-BR: other_description_html: Veja mais opções para controlar o comportamento da conta e personalizar a comunicação com a conta denunciada. resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma violação será guardada e a denúncia será encerrada. silence_description_html: A conta ficará visível apenas para aqueles que já a seguem ou que a procuram manualmente, limitando severamente seu alcance. Pode ser revertido a qualquer momento. Fecha todas as denúncias desta conta. + suspend_description_html: A conta e todo o seu conteúdo ficará inacessível e, eventualmente, excluído e interagir com ela será impossível. Reversível dentro de 30 dias. Encerra todas as denúncias contra esta conta. actions_description_html: Decida que medidas tomar para resolver esta denúncia. Se você decidir punir a conta denunciada, ela receberá uma notificação por e-mail, exceto quando for selecionada a categoria spam for selecionada. + actions_description_remote_html: Decida quais medidas tomará para resolver esta denúncia. Isso só afetará como seu servidor se comunica com esta conta remota e manipula seu conteúdo. add_to_report: Adicionar mais à denúncia are_you_sure: Você tem certeza? assign_to_self: Atribuir para si @@ -629,12 +634,16 @@ pt-BR: suspend_html: 'Você está prestes a suspender a conta de @%{acct}. Isso irá:' actions: delete_html: Remover as publicações ofensivas + mark_as_sensitive_html: Marcar a mídia de posts ofensivos como sensível + silence_html: Limitar firmemente o alcance de @%{acct}, tornando seus perfis e conteúdos apenas visíveis para pessoas que já os estão seguindo ou olhando manualmente o perfil suspend_html: Suspender @%{acct}, tornando seu perfil e conteúdo inacessíveis, impossibilitando a interação close_report: 'Marcar denúncia #%{id} como resolvida' close_reports_html: Marcar todas as denúncias contra @%{acct} como resolvidas delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo preview_preamble_html: "@%{acct} receberá um aviso com o seguinte conteúdo:" + record_strike_html: Registre uma ação contra @%{acct} para te ajudar em futuras violações desta conta send_email_html: Enviar @%{acct} um e-mail de aviso + warning_placeholder: Argumentos adicionais para a ação de moderação. target_origin: Origem da conta denunciada title: Denúncias unassign: Desatribuir @@ -803,6 +812,12 @@ pt-BR: message_html: Você não definiu nenhuma regra de servidor. sidekiq_process_check: message_html: Nenhum processo Sidekiq rodando para a(s) fila(s) %{value}. Por favor, revise a sua configuração para Sidekiq + upload_check_privacy_error: + action: Confira aqui para mais informações + message_html: "Seu servidor está mal configurado. A privacidade de seus usuários está em risco." + upload_check_privacy_error_object_storage: + action: Confira aqui para mais informações + message_html: "Seu armazenamento de objetos está mal configurado. A privacidade de seus usuários está em risco." tags: review: Status da revisão updated_msg: Configurações de hashtag atualizadas @@ -825,6 +840,7 @@ pt-BR: other: Compartilhado por %{count} pessoas na última semana title: Em alta no momento usage_comparison: Compartilhado %{today} vezes hoje, em comparação com %{yesterday} de ontem + not_allowed_to_trend: Não tem permissão para criar tendências only_allowed: Somente permitido pending_review: Revisão pendente preview_card_providers: @@ -1574,6 +1590,7 @@ pt-BR: '7889238': 3 meses min_age_label: Validade min_favs: Manter publicações favoritadas por ao menos + min_favs_hint: Não exclui suas publicações que receberam pelo menos esta quantidade de favoritos. Deixe em branco para excluir publicações independentemente da quantidade de favoritos 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: @@ -1673,12 +1690,13 @@ pt-BR: title: Boas vindas, %{name}! users: follow_limit_reached: Você não pode seguir mais de %{limit} pessoas + go_to_sso_account_settings: Vá para as configurações de conta do seu provedor de identidade invalid_otp_token: Código de dois fatores inválido otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email} seamless_external_login: Você entrou usando um serviço externo, então configurações de e-mail e senha não estão disponíveis. signed_in_as: 'Entrou como:' verification: - explanation_html: 'Você pode verificar os links nos metadados do seu perfil. Para isso, o site citado deve conter um link de volta para o seu perfil do Mastodon. O link de volta deve conter um atributo rel="me". O conteúdo ou texto do link não importa. Aqui está um exemplo:' + explanation_html: 'Você pode se verificar como proprietário dos links nos metadados do seu perfil. Para isso, o site vinculado deve conter um link de volta para o seu perfil de Mastodon. Depois de adicionar o link, talvez você precise voltar aqui e salvar novamente o seu perfil para que a verificação tenha efeito. O link de volta deve ter um atributo rel="me". O conteúdo do texto do link não importa. Aqui está um exemplo:' verification: Verificação webauthn_credentials: add: Adicionar nova chave de segurança diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 082de57e33..67c9102e22 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -812,6 +812,12 @@ pt-PT: message_html: Não definiu nenhuma regra para a instância. sidekiq_process_check: message_html: Nenhum processo Sidekiq em execução para a(s) fila(s) %{value}. Reveja a configuração do seu Sidekiq + upload_check_privacy_error: + action: Verifique aqui para mais informações + message_html: "O seu servidor web está mal configurado. A privacidade dos seus utilizadores está em risco." + upload_check_privacy_error_object_storage: + action: Verifique aqui para mais informações + message_html: "O seu armazenamento de objetos está mal configurado. A privacidade dos seus utilizadores está em risco." tags: review: Estado da revisão updated_msg: 'Definições de #etiquetas correctamente actualizadas' @@ -1684,12 +1690,13 @@ pt-PT: title: Bem-vindo a bordo, %{name}! users: follow_limit_reached: Não pode seguir mais do que %{limit} pessoas + go_to_sso_account_settings: Ir para as definições de conta do seu fornecedor de identidade invalid_otp_token: Código de autenticação inválido otp_lost_help_html: Se perdeu o acesso a ambos, pode entrar em contacto com %{email} seamless_external_login: Tu estás ligado via um serviço externo. Por isso, as configurações da palavra-passe e do e-mail não estão disponíveis. signed_in_as: 'Registado como:' verification: - explanation_html: 'Pode comprovar que é o dono das hiperligações nos metadados do seu perfil. Para isso, a página para a qual a ligação aponta tem de conter uma outra para o seu perfil do Mastodon. Essa ligação tem de ter um atributo rel="me". O conteúdo do texto não é importante. Eis um exemplo:' + explanation_html: 'Pode comprovar que é o dono das hiperligações nos metadados do seu perfil. Para isso, a página para a qual a hiperligação aponta tem de conter uma outra para o seu perfil do Mastodon. Após adicionar a hiperligação, poderá ter de voltar aqui e voltar a guardar o seu perfil para que a verificação produza efeito. Essa hiperligação tem de ter um atributo rel="me". O conteúdo do texto não é importante. Eis um exemplo:' verification: Verificação webauthn_credentials: add: Adicionar nova chave de segurança diff --git a/config/locales/ro.yml b/config/locales/ro.yml index f842988a23..32b0bdd2fd 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -749,5 +749,4 @@ ro: seamless_external_login: Sunteți autentificat prin intermediul unui serviciu extern, astfel încât parola și setările de e-mail nu sunt disponibile. signed_in_as: 'Conectat ca:' verification: - explanation_html: 'Poți să te verifici ca proprietar al link-urilor din metadatele profilului tău. Pentru aceasta, site-ul web asociat trebuie să conțină un link înapoi la profilul tău. Link-ul înapoi trebuie să aibă un atribut rel="me". Conținut textului link-ului nu contează. Iată un exemplu:' verification: Verificare diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 050ea2c25e..f80aec27c2 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -650,6 +650,7 @@ ru: statuses_description_html: Нарушающее правила содержимое будет процитировано при коммуникации с фигурирующим в жалобе аккаунтом summary: action_preambles: + delete_html: 'Вы собираетесь удалить некоторые посты @%{acct}. В результате этого:' suspend_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:' actions: delete_html: Удалить оскорбительные сообщения @@ -1732,7 +1733,6 @@ ru: seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны. signed_in_as: 'Выполнен вход под именем:' verification: - explanation_html: 'Вы можете подтвердить владение любой из ссылок в таблице. Для этого страница по ссылке должна содержать обратную ссылку на ваш профиль Mastodon, а у самой ссылки должен атрибут rel="me". Текст ссылки значения не имеет. Вот пример:' verification: Верификация ссылок webauthn_credentials: add: Добавить новый ключ безопасности diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 7a46fe38a8..307a447588 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -1020,7 +1020,6 @@ sc: seamless_external_login: As abertu sa sessione pro mèdiu de unu servìtziu esternu, e pro custa resone is cunfiguratziones de sa crae de intrada e de posta eletrònica non sunt a disponimentu. signed_in_as: 'Sessione aberta comente:' verification: - explanation_html: 'Ti podes verificare a sa sola comente mere de is ligòngios in is metadatos de su profilu tuo. Pro ddu fàghere su situ ligadu depet cuntènnere unu ligòngiu chi torret a su profilu de Mastodon tuo. Su ligòngiu in su situ depet tènnere un''atributu rel="me". Su testu cuntenutu in su ligòngiu no est de importu. Custu est un''esèmpiu:' verification: Verìfica webauthn_credentials: add: Agiunghe una crae de seguresa noa diff --git a/config/locales/sco.yml b/config/locales/sco.yml index 04c3f192c3..55d8e09a45 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1627,7 +1627,6 @@ sco: seamless_external_login: Ye'r logged in via a external service, sae passwird an email settins urnae available. signed_in_as: 'Signt in as:' verification: - explanation_html: 'Ye kin verify yersel as the ainer o the links in yer profile metadata. Fir that, the linkt wabsteid haes tae contain a link back tae yer Mastodon profile. The link back haes tae hae a rel="me" attribute. The text content o the link disnae maitter. Here a example:' verification: Verification webauthn_credentials: add: Add new security key diff --git a/config/locales/si.yml b/config/locales/si.yml index 4a53215243..c34df29861 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -1413,7 +1413,6 @@ si: seamless_external_login: ඔබ බාහිර සේවාවක් හරහා ලොග් වී ඇත, එබැවින් මුරපදය සහ ඊමේල් සැකසුම් නොමැත. signed_in_as: 'මෙසේ පුරනය වී ඇත:' verification: - explanation_html: 'ඔබගේ පැතිකඩ පාරදත්තහි ඇති සබැඳි වල හිමිකරු ලෙස ඔබට සත්‍යාපනය කළ හැක. ඒ සඳහා, සම්බන්ධිත වෙබ් අඩවියේ ඔබේ Mastodon පැතිකඩ වෙත ආපසු සබැඳියක් තිබිය යුතුය. සබැඳිය ආපසු යුතුය. සබැඳියේ පෙළ අන්තර්ගතය වැදගත් නොවේ. මෙන්න උදාහරණයක්:' verification: සත්යාපනය webauthn_credentials: add: නව ආරක්ෂක යතුර එක් කරන්න diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index ac5e0a8ce4..b96cf0cd75 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -91,13 +91,13 @@ fi: site_short_description: Lyhyt kuvaus auttaa yksilöimään palvelimesi. Kuka sitä johtaa, kenelle se on tarkoitettu? site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla. site_title: Kuinka ihmiset voivat viitata palvelimeen sen verkkotunnuksen lisäksi. - status_page_url: URL-osoite, jonka kautta palvelimen tila voidaan tarkastaa sen ollessa tavoittamattomissa + status_page_url: URL-osoite sivulle, jonka kautta tämän palvelimen tila voidaan ongelmatilanteissa tarkastaa theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. 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ä julkaisut, aihetunnisteet ja uutiset ovat saamassa vetoa palvelimellasi. - trends_as_landing_page: Näytä suosittu sisältö uloskirjautuneille käyttäjille ja kävijöille palvelimen kuvauksen sijaan. Edellyttää suositun sisällön käyttöönottoa. + trends_as_landing_page: Näytä vierailijoille ja uloskirjautuneille käyttäjille suosittu sisältö palvelininstanssin kuvaustekstin sijaan. Edellytyksenä on, että suosittu sisältö -ominaisuus on käytössä. form_challenge: current_password: Olet menossa suojatulle alueelle imports: diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml index 44a40e4868..93319b13ec 100644 --- a/config/locales/simple_form.my.yml +++ b/config/locales/simple_form.my.yml @@ -2,16 +2,29 @@ my: simple_form: hints: - account_alias: - acct: သင်ပြောင်းရွှေ့လိုသောအကောင့်၏ username@domain ကိုသတ်မှတ်ပါ account_warning_preset: text: URLs၊ hashtags နှင့် mentions များကဲ့သို့ ပို့စ်ကို သုံးနိုင်သည် + title: လက်ခံသူမှ မြင်နိုင်၊ မမြင်နိုင် ရွေးချယ်ခွင့် admin_account_action: include_statuses: အသုံးပြုသူသည် မည်သည့်ပို့စ်များမှာ စိစစ်ထားခြင်း သို့မဟုတ် သတိပေးထားခြင်းဖြစ်စေသည်ကို တွေ့မြင်နိုင်ပါသည် send_email_notification: အသုံးပြုသူသည် ၎င်းတို့၏အကောင့်နှင့် ဖြစ်ပျက်ခဲ့သော ရှင်းလင်းချက်ကို လက်ခံရရှိမည်ဖြစ်သည် + text_html: Post Syntax ကို သုံးနိုင်သည်။ အချိန်ကုန်သက်သာစေရန်အတွက် ကြိုတင်သတိပေးချက်များ ထည့်နိုင်သည် type_html: "%{acct} နှင့် ဘာလုပ်ရမည်ကို ရွေးပါ။" + types: + disable: အသုံးပြုသူကို ၄င်း၏အကောင့်အား သုံးစွဲခြင်းမှ ဟန့်တားပါ။ သို့သော် ၄င်းဖန်တီးထားသည့် အချက်အလက်များကို မဖျက်ပါ။ မဖျောက်ပါ။ + none: အခြားလုပ်ဆောင်ချက်တစ်ခုမှ မလုပ်ဘဲ အသုံးပြုသူထံ သတိပေးချက်ပေးပို့ရန် ၎င်းကို အသုံးပြုပါ။ + sensitive: ဤအသုံးပြုသူ၏ မီဒီယာပူးတွဲပါဖိုင်များအားလုံးကို သတိထားရသောမီဒီယာအဖြစ် သတ်မှတ်ရန် တိုက်တွန်းပါ။ + silence: စောင့်ကြည့်မထားသူများ၏ ပို့စ်များနှင့် အသိပေးချက်များကို ဖျောက်ထားနိုင်ပြီး အသုံးပြုသူအား အများမြင်မည့်ပို့စ် တင်ခြင်းကို တားမြစ်နိုင်သည်။ ဤအကောင့်နှင့်ပတ်သက်သည့် အစီရင်ခံစာအားလုံးကို ပိတ်ထားနိုင်သည်။ + suspend: ဤအကောင့်မှ သို့မဟုတ် ဤအကောင့်နှင့် အပြန်အလှန်တုံ့ပြန်မှုကို တားဆီးပြီး အကြောင်းအရာများကို ဖျက်ပါ။ ရက်ပေါင်း ၃၀ အတွင်း ပြန်ပြောင်းနိုင်သည်။ ဤအကောင့်နှင့်ပတ်သက်သည့် အစီရင်ခံစာအားလုံးကို ပိတ်ရန်။ + warning_preset_id: ကြိုတင်သတ်မှတ်မှုအဆုံးတွင် စိတ်ကြိုက်စာသားကို ထည့်နိုင်သည် announcement: + all_day: အချိန်အပိုင်းအခြား ရက်စွဲများကိုသာ ပြသပါမည် + ends_at: ကြေညာချက်ထုတ်ပြန်ခြင်းကို ဤအချိန်တွင် အလိုအလျောက် ရပ်တန့်လိုက်ပါမည် scheduled_at: ကြေညာချက်ချက်ချင်းထုတ်ပြန်ရန်အတွက် နေရာလွတ်ချန်ထားပါ + starts_at: သင့်ကြေညာချက်သည် အချိန်အပိုင်းအခြားတစ်ခုနှင့် ဆက်စပ်နိုင်ပါသည် + text: Post Syntax ကို သုံးနိုင်သည်။ အသုံးပြုသူ၏ဖန်သားပြင်တွင် ပေါ်လာမည့် ကြေညာချက်နေရာကို သတိထားပါ + appeal: + text: လုပ်ဆောင်ချက်တစ်ကြိမ်သာ အသုံးပြုနိုင်သည် defaults: autofollow: ဖိတ်ကြားချက်မှတစ်ဆင့် အကောင့်ဖွင့်သူများမှာ သင့်ကို အလိုအလျောက်စောင့်ကြည့်မည်ဖြစ်ပါသည် avatar: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည်။ @@ -25,9 +38,11 @@ my: fields: သင့်ပရိုဖိုင်တွင် ၄ ခုအထိ ပြသထားနိုင်သည် header: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည် inbox_url: သင်အသုံးပြုလိုသော relay ၏ ရှေ့စာမျက်နှာမှ URL ကို ကူးယူပါ + irreversible: စစ်ထုတ်ခြင်းကိုဖယ်ရှားလိုက်ပါက စစ်ထုတ်ထားသော ပို့စ်များမှာ ပျောက်ကွယ်သွားပါမည် locale: အသုံးပြုသူမှ လက်ရှိသုံးနေသည့်ဘာသာစကား၊ အီးမေးလ်များနှင့် ရရှိစေရန်ပေးပို့သည့် အသိပေးချက်များ locked: စောင့်ကြည့်ရန်အတွက် တောင်းဆိုမှုများကို အတည်ပြုခြင်းဖြင့် စောင့်ကြည့်သူများကို ထိန်းချုပ်နိုင်သည် password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။ + scopes: API အက်ပလီကေးရှင်းများကို ဝင်ရောက်ကြည့်ရှုခွင့်ပြုပါမည်။ ထိပ်တန်းအဆင့်နယ်ပယ်ကို ရွေးချယ်ထားပါက တစ်ခုချင်းစီရွေးချယ်ရန် မလိုအပ်တော့ပါ။ setting_aggregate_reblogs: မကြာသေးခင်က Boost လုပ်ထားသောပို့စ်များအတွက် Boost အသစ်များကို မပြပါနှင့် (အသစ်ရရှိထားသော Boost များကိုသာ ပြသပါရန်) setting_always_send_emails: Mastodon ကို လက်ရှိအသုံးပြုနေချိန်တွင် ပုံမှန်အားဖြင့် အီးမေးလ်အသိပေးချက်များကို ပေးပို့မည်မဟုတ်ပါ setting_default_sensitive: သတိထားရသောမီဒီယာကို မူလအားဖြင့် ဖျောက်ထားနိုင်ပြီး ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် ပြန်လည်ဖော်ပြနိုင်သည် @@ -38,26 +53,40 @@ my: setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည် setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည် username: "%{domain} ရှိ သင့်အသုံးပြုသူအမည်မှာ တူညီ၍မရပါ" + whole_word: အဓိကစကားလုံး သို့မဟုတ် စကားစုသည် အက္ခရာဂဏန်းများသာဖြစ်ပါကစကားလုံးတစ်ခုလုံးနှင့် ကိုက်ညီမှသာ အသုံးပြုနိုင်မည်ဖြစ်သည် + domain_allow: + domain: ဤဒိုမိန်းသည် ဤဆာဗာမှ အချက်အလက်များကို ရယူနိုင်မည်ဖြစ်ပြီး ဝင်လာသောအချက်အလက်များကို စီမံဆောင်ရွက်ပေးပြီး သိမ်းဆည်းသွားမည်ဖြစ်သည် email_domain_block: domain: "၎င်းမှာ အီးမေးလ်လိပ်စာ သို့မဟုတ် အသုံးပြုသည့် MX မှတ်တမ်းတွင် ပေါ်လာသည့် ဒိုမိန်းအမည် ဖြစ်နိုင်သည်။ အကောင့်ဖွင့်ပြီးပါက စစ်ဆေးနိုင်မည်ဖြစ်သည်။" + with_dns_records: ပေးထားသော ဒိုမိန်း၏ DNS မှတ်တမ်းများကို ဖြေရှင်းရန် ကြိုးပမ်းမှု ပြုလုပ်မည်ဖြစ်ပြီး ရလဒ်များကိုလည်း ပိတ်ဆို့သွားမည်ဖြစ်သည်။ featured_tag: name: ဤသည်မှာ သင်မကြာသေးမီက အသုံးပြုခဲ့သော hashtag အချို့ဖြစ်သည် - filters: action: ပို့စ်တစ်ခုသည် စစ်ထုတ်မှုနှင့် ကိုက်ညီချိန်တွင် မည်သည့်လုပ်ဆောင်ချက် ဆောင်ရွက်မည်ကို ရွေးချယ်ပါ actions: + hide: စစ်ထုတ်ထားသော အကြောင်းအရာကို လုံးဝဖျောက်ထားပြီး မရှိသကဲ့သို့ ပြပါ warn: စစ်ထုတ်မှုခေါင်းစဉ်ကိုဖော်ပြသည့်သတိပေးချက်နောက်တွင် စစ်ထုတ်ထားသောအကြောင်းအရာကို ဖျောက်ထားပါ form_admin_settings: activity_api_enabled: အပတ်စဉ် စာရင်းများတွင် ဒေသတွင်းတင်ထားသောပို့စ်များ၊ လက်ရှိအသုံးပြုသူများနှင့် စာရင်းသွင်းမှုအသစ်များ backups_retention_period: သတ်မှတ်ထားသော ရက်အရေအတွက်အလိုက် အသုံးပြုသူမှတ်တမ်းများကို သိမ်းဆည်းပါ။ bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များ၏ စောင့်ကြည့်မှု အကြံပြုချက်များ၏ထိပ်ဆုံးတွင် ပင်ချိတ်ထားပါမည်။ closed_registrations_message: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ထားသည့်အခါတွင် ပြသထားသည် + content_cache_retention_period: သတ်မှတ်ထားသောရက်များပြီးနောက် အခြားဆာဗာများမှ ပို့စ်များကို ဖျက်လိုက်ပါမည်။ ပြန်လည်ပြင်ဆင်၍မရပါ။ custom_css: Mastodon ဝဘ်ဗားရှင်းတွင် စိတ်ကြိုက်စတိုင်များကို အသုံးပြုနိုင်ပါသည်။ + mascot: အဆင့်မြင့် ဝဘ်ပုံစံတွင်တွင် ရုပ်ပုံဖြင့်ဖော်ပြထားသည်။ + media_cache_retention_period: သတ်မှတ်ထားသောရက်များပြီးနောက် ဒေါင်းလုဒ်လုပ်ထားသော မီဒီယာဖိုင်များကို ဖျက်လိုက်ပါမည်။ တောင်းဆိုပါက ပြန်လည်ဒေါင်းလုဒ် လုပ်ခွင့်ရှိသည်။ + profile_directory: ပရိုဖိုင်လမ်းညွှန်တွင် ရှာဖွေ‌နိုင်သည့်အသုံးပြုသူအားလုံးကို စာရင်းပြုစုထားသည်။ + site_contact_email: ဥပဒေရေးရာ သို့မဟုတ် အကူအညီ စုံစမ်းမေးမြန်းရန် လူများက သင့်ထံ မည်သို့ဆက်သွယ်နိုင်မည်နည်း။ site_contact_username: Mastodon တွင် အခြားသူများက သင့်ကို မည်သို့သိရှိနိုင်မည်နည်း။ site_extended_description: ဝင်ရောက်ကြည့်ရှုသူများနှင့် အသုံးပြုသူများအတွက် အသုံးဝင်မည့် နောက်ထပ်အချက်အလက်များကို Markdown စာကြောင်းများဖြင့် ရေးသားနိုင်သည်။ + site_short_description: သင်၏ဆာဗာအား သိသားထင်ရှားစွာ အမှတ်အသားပြုနိုင်မည့် အကျဉ်းရုံးဖော်ပြချက်။ မည်သူမှ ဆာဗာအား ထိန်းကြောင်းလည်ပတ်နေသည်၊ မည်သူ့အတွက် ဖြစ်သည်? site_terms: သင့်ကိုယ်ပိုင် ကိုယ်ရေးအချက်အလက်မူဝါဒကို အသုံးပြုပါ သို့မဟုတ် မူလသတ်မှတ်ချက်ကို အသုံးပြုရန်အတွက် ကွက်လပ်ထားပါ။ Markdown စာများဖြင့် ရေးသားနိုင်သည်။ + site_title: ဒိုမိန်းအမည်မှတပါး သင့်ဆာဗာကို လူများက မည်သို့သိရှိနိုင်မည်နည်း။ status_page_url: ပြတ်တောက်နေစဉ်အတွင်း လူများက ဤဆာဗာအခြေအနေကို မြင်နိုင်မည့် စာမျက်နှာ URL theme: အကောင့်မှထွက်ပြီး အသုံးပြုသူအသစ်များနှင့် ဝင်ကြည့်မည့်သူများအတွက် မြင်ရမည့်ပုံစံ။ + thumbnail: သင့်ဆာဗာအချက်အလက်နှင့်အတူ အကြမ်းဖျင်းအားဖြင့် ၂:၁ ဖြင့် ပြသထားသောပုံတစ်ပုံ။ timeline_preview: အကောင့်မှထွက်ထားသူများသည် ဆာဗာပေါ်ရှိ လတ်တလော အများမြင်ပို့စ်များကို ရှာဖွေကြည့်ရှုနိုင်မည်ဖြစ်သည်။ + trendable_by_default: ခေတ်စားနေသော အကြောင်းအရာများ၏ ကိုယ်တိုင်သုံးသပ်ချက်ကို ကျော်ပါ။ နောက်ပိုင်းတွင် အချက်အလက်တစ်ခုချင်းစီကို ခေတ်စားနေသောအကြောင်းအရာများကဏ္ဍမှ ဖယ်ရှားနိုင်ပါသေးသည်။ trends: လက်ရှိခေတ်စားနေသာပို့စ်များ၊ hashtag များနှင့် သတင်းဇာတ်လမ်းများကို သင့်ဆာဗာပေါ်တွင် တွေ့မြင်နိုင်ပါမည်။ trends_as_landing_page: ဤဆာဗာဖော်ပြချက်အစား အကောင့်မှ ထွက်ထားသူများနှင့် ဝင်ရောက်ကြည့်ရှုသူများအတွက် ခေတ်စားနေသော အကြောင်းအရာများကို ပြသပါ။ ခေတ်စားနေသောပို့စ်များကို ဖွင့်ထားရန် လိုအပ်သည်။ form_challenge: @@ -67,7 +96,9 @@ my: invite_request: text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်" ip_block: - comment: ရွေးချယ်ခွင့်ရှိသည်။ ဤစည်းမျဉ်းကို ဘာကြောင့်ထည့်ခဲ့တာလဲဆိုတာ သတိရပါ။ + comment: ဤစည်းမျဉ်း ဘာကြောင့်ထည့်ခဲ့သည်အား သတိရရန်။ + expires_in: အိုင်ပီလိပ်စာများမှာ အကန့်အသတ်ရှိသည့် အရင်းအမြစ်ဖြစ်သည်။ တခါတရံ လိပ်စာများအား မျှဝေသုံးစွဲကြသည်။ အခါအားလျှော်စွာ လက်လွှဲသုံးစွဲမှုများလည်း ရှီတတ်သည်။ ထို့အတွက်ကြောင့် အကန့်အသတ်မဲ့ အိုင်ပီကန့်သတ်ထိန်းချုပ်မှု လုပ်ဆောင်ခြင်းကို အားမပေးပါ။ + ip: IPv4 သို့မဟုတ် IPv6 လိပ်စာကို ထည့်ပါ။ CIDR syntax ကို အသုံးပြု၍ အတိုင်းအတာတစ်ခုလုံးကို ပိတ်ဆို့နိုင်သည်။ ကိုယ်တိုင် လော့ခ်မချမိစေရန် သတိထားပါ။ severities: no_access: အရင်းအမြစ်များအားလုံးသို့ ဝင်ရောက်ခွင့်ကို ပိတ်ပါ sign_up_block: အကောင့်အသစ်များ မဖွင့်နိုင်တော့ပါ @@ -88,6 +119,7 @@ my: highlighted: ယင်းက အခန်းကဏ္ဍကို အများမြင်အောင် ဖွင့်ပေးထားသည်။ name: အကယ်၍ အခန်းကဏ္ဍကို သင်္ကေတတစ်ခုအဖြစ်ပြသရန် သတ်မှတ်ထားပါက အခန်းကဏ္ဍကို အများမြင်မည့်အမည် permissions_as_keys: ဤအခန်းကဏ္ဍဖြင့် အသုံးပြုသူများသာ အသုံးပြုခွင့်ရှိပါမည်... + position: အခန်းကဏ္ဍအဆင့်မြင့်သူအနေဖြင့် အချို့သောအခြေအနေများတွင် ပဋိပက္ခများကို ဖြေရှင်းနိုင်သည်။ အချို့လုပ်ဆောင်ချက်များမှာ အဆင့်နိမ့်အခန်းကဏ္ဍများတွင်သာ လုပ်ဆောင်နိုင်သည်။ webhook: events: ပို့မည့်အကြောင်းအရာများကို ရွေးချယ်ပါ url: အကြောင်းအရာများကို ဘယ်ကို ပို့မလဲ။ @@ -109,6 +141,7 @@ my: text: စိတ်ကြိုက်သတိပေးချက် type: လုပ်ဆောင်ချက် types: + disable: ရပ်တန့် none: သတိပေးချက်ပေးပို့ပါ sensitive: သတိထားရသော silence: ကန့်သတ် @@ -117,8 +150,11 @@ my: announcement: all_day: တစ်နေ့တာလုပ်ငန်းစဉ် ends_at: အကြောင်းအရာ၏အဆုံး + scheduled_at: ထုတ်ပြန်မည့်အချိန် starts_at: အကြောင်းအရာ၏အစ text: ကြေညာချက် + appeal: + text: ဆုံးဖြတ်ချက် ပြောင်းပြန်ချသင့်သောအကြောင်းရင်းအား ရှင်းပြပါ။ defaults: autofollow: သင့်အကောင့်စောင့်ကြည့်ရန် ဖိတ်ခေါ်ပါ avatar: ကိုယ်စားပြုရုပ်ပုံ @@ -133,8 +169,10 @@ my: display_name: ဖော်ပြမည့်အမည် email: အီးမေးလ်လိပ်စာ expires_in: သက်တမ်းကုန်ဆုံးမည့်ရက် + fields: ပရိုဖိုင်မီတာဒေတာ header: မျက်နှာဖုံးပုံ honeypot: "%{label} (မဖြည့်ပါနှင့်)" + inbox_url: ထပ်ဆင့်ဝင်စာ၏ URL locale: ဘာသာစကား locked: စောင့်ကြည့်တောင်းဆိုမှုများ လိုအပ်သည် max_uses: အများဆုံးအသုံးပြုမှုအရေအတွက် @@ -148,10 +186,12 @@ my: setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ setting_boost_modal: Boost မလုပ်မီ အတည်ပြုချက်ပြပါ + setting_crop_images: အကျယ်မချဲ့ထားသော စာစုများတွင် ပုံများကို ၁၆း၉ အရွယ် ဖြတ်တောက်ပါ။ setting_default_language: ပို့စ်တင်မည့်ဘာသာစကား setting_default_privacy: ပို့စ်ကို ဘယ်သူမြင်နိုင်မလဲ setting_default_sensitive: သတိထားရသောမီဒီယာအဖြစ် အမြဲအမှတ်အသားပြုပါ setting_delete_modal: ပို့စ်တစ်ခုမဖျက်မီ အတည်ပြုချက်ပြပါ။ + setting_disable_swiping: ပွတ်ဆွဲခြင်းများကို ပိတ်ပါ setting_display_media: မီဒီယာဖော်ပြမှု setting_display_media_default: မူလသတ်မှတ်ချက် setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ @@ -159,12 +199,15 @@ my: setting_expand_spoilers: အကြောင်းအရာသတိပေးချက်များဖြင့် အမှတ်အသားပြုထားသော ပို့စ်များကို အမြဲချဲ့ပါ setting_hide_network: သင့် Social Graph ကို ဖျောက်ထားပါ setting_noindex: ရှာဖွေရေးအညွှန်းမှ ဖယ်ထုတ်ပါ + setting_reduce_motion: ကာတွန်းများတွင် လှုပ်ရှားမှုကို လျှော့ချပါ setting_show_application: ပို့စ်များ ပေးပို့ရာတွင် အသုံးပြုသည့် အက်ပလီကေးရှင်း setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ setting_theme: ဆိုက်အပြင်အဆင် setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ + setting_use_blurhash: ဖုံးကွယ်ထားသော ရုပ်ပုံ၊ဗီဒီယိုများအား အရောင်စုံ ရောင်ပြေးအနေနှင့် ပြသပါ။ setting_use_pending_items: အနှေးပြကွက် + severity: ပြင်းထန်မှု sign_in_token_attempt: လုံခြုံရေးကုဒ် title: ခေါင်းစဥ် type: ထည့်သွင်းမှုအမျိုးအစား @@ -180,6 +223,7 @@ my: hide: လုံးဝဖျောက်ထားပါ warn: သတိပေးချက်ဖြင့် ဖျောက်ပါ form_admin_settings: + activity_api_enabled: API ရှိ အသုံးပြုသူလုပ်ဆောင်ချက်စာရင်းများကို ထုတ်ပြန်ပါ backups_retention_period: အသုံးပြုသူ၏ မှတ်တမ်းကာလ bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များအတွက် အကြံပြုပေးပါ closed_registrations_message: အကောင့်ဖွင့်ခြင်းများ မရတော့သောအခါ စိတ်ကြိုက်မက်ဆေ့ချ်ပို့ခြင်း @@ -205,6 +249,7 @@ my: timeline_preview: အများမြင်စာမျက်နှာများသို့ အထောက်အထားမရှိဘဲ ဝင်ရောက်ခွင့်ပြုပါ trendable_by_default: ကြိုမသုံးသပ်ဘဲ ခေတ်စားနေသောအကြောင်းအရာများကို ခွင့်ပြုပါ trends: လက်ရှိခေတ်စားနေမှုများကိုပြပါ + trends_as_landing_page: ခေတ်စားနေသောပို့စ်များကို landing စာမျက်နှာအဖြစ် အသုံးပြုပါ interactions: must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index ddc1a0d21b..bf46305eea 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -91,11 +91,13 @@ pt-BR: site_short_description: Uma curta descrição para ajudar unicamente a identificar a sua instância. Quem está o administrando, e para quem é direcionado? site_terms: Use a sua própria política de privacidade ou deixe em branco para usar o padrão. Pode ser estruturado com o formato Markdown. site_title: Como as pessoas podem se referir ao seu servidor além do nome do domínio. + status_page_url: URL de uma página onde as pessoas podem ver o status deste servidor durante uma interrupção theme: Tema que visitantes e novos usuários veem. thumbnail: Uma imagem de aproximadamente 2:1 exibida ao lado da informação de sua instância. timeline_preview: Visitantes conseguirão navegar pelas postagens públicas mais recentes disponíveis na instância. trendable_by_default: Pular a revisão manual do conteúdo em tendência. Itens individuais ainda poderão ser removidos das tendências após a sua exibição. trends: Tendências mostram quais publicações, hashtags e notícias estão ganhando destaque na sua instância. + trends_as_landing_page: Mostrar conteúdo de tendências para usuários deslogados e visitantes em vez de uma descrição deste servidor. Requer que as tendências sejam ativadas. form_challenge: current_password: Você está entrando em uma área segura imports: diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 1e99fefa35..e854dd64a5 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -95,7 +95,7 @@ th: theme: ชุดรูปแบบที่ผู้เยี่ยมชมที่ออกจากระบบและผู้ใช้ใหม่เห็น thumbnail: แสดงภาพ 2:1 โดยประมาณควบคู่ไปกับข้อมูลเซิร์ฟเวอร์ของคุณ timeline_preview: ผู้เยี่ยมชมที่ออกจากระบบจะสามารถเรียกดูโพสต์สาธารณะล่าสุดที่มีในเซิร์ฟเวอร์ - trendable_by_default: ข้ามการตรวจทานเนื้อหาที่กำลังนิยมด้วยตนเอง ยังคงสามารถเอารายการแต่ละรายการออกจากแนวโน้มได้หลังเกิดเหตุ + trendable_by_default: ข้ามการตรวจทานเนื้อหาที่กำลังนิยมด้วยตนเอง ยังคงสามารถเอารายการแต่ละรายการออกจากแนวโน้มได้หลังจากเกิดเหตุ trends: แนวโน้มแสดงว่าโพสต์, แฮชแท็ก และเรื่องข่าวใดกำลังได้รับความสนใจในเซิร์ฟเวอร์ของคุณ trends_as_landing_page: แสดงเนื้อหาที่กำลังนิยมแก่ผู้ใช้และผู้เยี่ยมชมที่ออกจากระบบแทนที่จะเป็นคำอธิบายของเซิร์ฟเวอร์นี้ ต้องมีการเปิดใช้งานแนวโน้ม form_challenge: diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 1976df4d91..28aacb92e1 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -59,12 +59,12 @@ zh-TW: setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示 setting_use_blurhash: 彩色漸層圖樣是基於隱藏媒體內容顏色產生,所有細節會變得模糊 setting_use_pending_items: 關閉自動捲動更新,時間軸只會在點擊後更新 - username: 您的使用者名稱將在 %{domain} 是獨一無二的 + username: 您的使用者名稱將於 %{domain} 是獨一無二的 whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用 domain_allow: domain: 此網域將能夠攫取本站資料,而自該網域發出的資料也會於本站處理和留存。 email_domain_block: - domain: 這可以是顯示在電子郵件中的網域名稱,或是其使用的 MX 紀錄。其將在註冊時檢查。 + domain: 這可以是顯示在電子郵件中的網域名稱,或是其使用的 MX 紀錄。其將於註冊時檢查。 with_dns_records: Mastodon 會嘗試解析所給網域的 DNS 記錄,解析結果一致者將一併封鎖 featured_tag: name: 這些是您最近使用的一些主題標籤: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 53ef48fe59..494b15307b 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -231,6 +231,14 @@ sk: destroy_status_html: "%{name} zmazal/a príspevok od %{target}" memorialize_account_html: "%{name} zmenil/a účet %{target} na pamätnú stránku" reject_appeal_html: "%{name} zamietol/la námietku moderovacieho rozhodnutia od %{target}" + reopen_report_html: "%{name} znovu otvoril/a nahlásenie %{target}" + resend_user_html: "%{name} znovu odoslal/a potvrdzovací email pre %{target}" + reset_password_user_html: "%{name} resetoval/a heslo používateľa %{target}" + resolve_report_html: "%{name} vyriešil/a nahlásenie %{target}" + sensitive_account_html: "%{name} označil médium od %{target} za chúlostivé" + silence_account_html: "%{name} obmedzil/a účet %{target}" + suspend_account_html: "%{name} zablokoval/a účet používateľa %{target}" + unassigned_report_html: "%{name} odobral/a report od %{target}" deleted_account: zmazaný účet empty: Žiadne záznamy nenájdené. filter_by_action: Filtruj podľa úkonu @@ -587,6 +595,10 @@ sk: rules_check: action: Spravuj serverové pravidlá message_html: Neurčil/a si žiadne serverové pravidlá. + upload_check_privacy_error: + action: Pozri tu pre viac informácií + upload_check_privacy_error_object_storage: + action: Pozri tu pre viac informácií tags: review: Prehodnoť stav updated_msg: Nastavenia haštagov boli úspešne aktualizované @@ -1153,5 +1165,4 @@ sk: seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné. signed_in_as: 'Prihlásená/ý ako:' verification: - explanation_html: 'Môžeš sa overiť ako majiteľ odkazov v metadátach tvojho profilu. Na to ale musí odkazovaná stránka obsahovať odkaz späť na tvoj Mastodon profil. Tento spätný odkaz musí mať prívlastok rel="me". Na texte odkazu nezáleží. Tu je príklad:' verification: Overenie diff --git a/config/locales/sl.yml b/config/locales/sl.yml index eb3085cd6f..00bdd10a96 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -840,6 +840,12 @@ sl: message_html: Nobenih pravil strežnika niste določili. sidekiq_process_check: message_html: Noben proces Sidekiq ne poteka za %{value} vrst. Preglejte svojo prilagoditev Sidekiq + upload_check_privacy_error: + action: Preverite tukaj za več informacij + message_html: "Vaš spletni strežnik je napačno nastavljen. Zasebnost vaših uporabnikov je izpostavljena tveganjem." + upload_check_privacy_error_object_storage: + action: Preverite tukaj za več informacij + message_html: "Vaša predmetna shramba je napačno nastavljena. Zasebnost vaših uporabnikov je izpostavljena tveganjem." tags: review: Stanje pregleda updated_msg: Nastavitve ključnikov uspešno posodobljene @@ -1748,12 +1754,13 @@ sl: title: Dobrodošli, %{name}! users: follow_limit_reached: Ne morete spremljati več kot %{limit} ljudi + go_to_sso_account_settings: Pojdite na nastavitve svojega računa ponudnika identitete invalid_otp_token: Neveljavna dvofaktorska koda otp_lost_help_html: Če ste izgubili dostop do obeh, stopite v stik z %{email} seamless_external_login: Prijavljeni ste prek zunanje storitve, tako da nastavitve gesla in e-pošte niso na voljo. signed_in_as: 'Vpisani kot:' verification: - explanation_html: 'V metapodatkih svojega profila se lahko potrdite kot lastnik povezav. Za to mora povezano spletno mesto vsebovati povezavo do vašega Mastodon profila. Povezava mora imeti atribut el="me". Vsebina besedila povezave ni pomembna. Tukaj je primer:' + explanation_html: 'V metapodatkih svojega profila se lahko potrdite kot lastnik povezav. Za to mora povezano spletno mesto vsebovati povezavo do vašega profila Mastodon. Po dodajanju povezave se boste morda morali vrniti sem in ponovno shraniti svoj profil, da bo overjanje učinkovalo. Povezava mora imeti atribut el="me". Vsebina besedila povezave ni pomembna. Tukaj je primer:' verification: Potrditev webauthn_credentials: add: Dodaj nov varnostni ključ diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 38afb2996c..281ef7cb1b 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -809,6 +809,12 @@ sq: message_html: S’keni përcaktuar ndonjë rregull shërbyesi. sidekiq_process_check: message_html: S’ka proces Sidekiq në punë për %{value} radhë. Ju lutemi, shqyrtoni formësimin tuaj për Sidekiq-un + upload_check_privacy_error: + action: Për më tepër hollësi, shihni këtu + message_html: "Shërbyesi juaj është formësuar keq. Privatësia e përdoruesve tuaj është në rrezik." + upload_check_privacy_error_object_storage: + action: Për më tepër hollësi, shihni këtu + message_html: "Depozita juaj e objekteve është e formësuar keq. Privatësia e përdoruesve tuaj është në rrezik." tags: review: Gjendje rishikimi updated_msg: Rregullimet për hashtag-ët u përditësuan me sukses @@ -1678,12 +1684,13 @@ sq: title: Mirë se vini, %{name}! users: follow_limit_reached: S’mund të ndiqni më tepër se %{limit} persona + go_to_sso_account_settings: Kaloni te rregullime llogarie te shërbimi juaj i identitetit invalid_otp_token: Kod dyfaktorësh i pavlefshëm otp_lost_help_html: Nëse humbët hyrjen te të dy, mund të lidheni me %{email} seamless_external_login: Jeni futur përmes një shërbimi të jashtëm, ndaj s’ka rregullime fjalëkalimi dhe email. signed_in_as: 'I futur si:' verification: - explanation_html: 'Mundeni të verifikoni veten si i zoti i lidhjeve te tejtëdhënat e profilit tuaj. Për këtë, sajti i lidhur duhet të përmbajë një lidhje për te profili juaj Mastodon. Lidhje për te ajo duhet të ketë një atribut rel="me". Lënda tekst e lidhjes nuk ngre peshë. Ja një shembull:' + explanation_html: 'Mundeni të verifikoni veten si i zoti i lidhjeve që nga tejtëdhëna të profilit tuaj. Për këtë, sajti i lidhur duhet të përmbajë një lidhje që shpie te profili juaj Mastodon. Pas shtimit të lidhjes mund t’ju duhet të ktheheni këtu dhe të riruani profilin tuaj, që verifikimi të ketë efekt. Lidhja e kthimit duhet të përmbajë një atribut rel="me". Teksi i lidhjes s’ka rëndësi. Ja një shembull:' verification: Verifikim webauthn_credentials: add: Shtoni kyç të ri sigurie diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index b6e17677d3..a2e860ef62 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -826,6 +826,12 @@ sr-Latn: message_html: Niste definisali nijedno pravilo servera. sidekiq_process_check: message_html: Nijedan Sidekiq proces nije pokrenut za red(ove) %{value}. Molimo Vas pregledajte svoju Sidekiq konfiguraciju + upload_check_privacy_error: + action: Proverite ovde za više informacija + message_html: "Vaš veb server je pogrešno konfigurisan. Privatnost vaših korisnika je izložena riziku." + upload_check_privacy_error_object_storage: + action: Proverite ovde za više informacija + message_html: "Vaše skladište objekta je pogrešno konfigurisano. Privatnost vaših korisnika je izložena riziku." tags: review: Pregledaj status updated_msg: Podešavanja heš oznaka uspešno ažurirana @@ -1716,12 +1722,12 @@ sr-Latn: title: Dobrodošli, %{name}! users: follow_limit_reached: Ne možete pratiti više od %{limit} ljudi + go_to_sso_account_settings: Idite na podešavanja naloga svog dobavljača identiteta invalid_otp_token: Neispravni dvofaktorski kod otp_lost_help_html: Ako izgubite pristup za oba, možete stupiti u kontakt sa %{email} seamless_external_login: Prijavljeni ste putem spoljašnje usluge, tako da lozinka i podešavanja E-pošte nisu dostupni. signed_in_as: 'Prijavljen/a kao:' verification: - explanation_html: 'Možete izvršiti proveru da ste Vi vlasnik veza na Vašem nalogu. Da bi to radilo, povezani veb sajt mora da sadrži vezu nazad ka Vašem Mastodon nalogu. Veza nazad mora da ima rel="me" atribut. Tekstuelni sadržaj veze nije bitan. Evo primera:' verification: Provera webauthn_credentials: add: Dodajte novi sigurnosni ključ diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 9fc831f202..fb90cef5d5 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -826,6 +826,12 @@ sr: message_html: Нисте дефинисали ниједно правило сервера. sidekiq_process_check: message_html: Ниједан Sidekiq процес није покренут за ред(ове) %{value}. Молимо Вас прегледајте своју Sidekiq конфигурацију + upload_check_privacy_error: + action: Проверите овде за више информација + message_html: "Ваш веб сервер је погрешно конфигурисан. Приватност ваших корисника је изложена ризику." + upload_check_privacy_error_object_storage: + action: Проверите овде за више информација + message_html: "Ваше складиште објекта је погрешно конфигурисано. Приватност ваших корисника је изложена ризику." tags: review: Прегледај статус updated_msg: Подешавања хеш ознака успешно ажурирана @@ -1716,12 +1722,13 @@ sr: title: Добродошли, %{name}! users: follow_limit_reached: Не можете пратити више од %{limit} људи + go_to_sso_account_settings: Идите на подешавања налога свог добављача идентитета invalid_otp_token: Неисправни двофакторски код otp_lost_help_html: Ако изгубите приступ за оба, можете ступити у контакт са %{email} seamless_external_login: Пријављени сте путем спољашње услуге, тако да лозинка и подешавања Е-поште нису доступни. signed_in_as: 'Пријављен/а као:' verification: - explanation_html: 'Можете извршити проверу да сте Ви власник веза на Вашем налогу. Да би то радило, повезани веб сајт мора да садржи везу назад ка Вашем Мастодон налогу. Веза назад мора да има rel="me" атрибут. Текстуелни садржај везе није битан. Ево примера:' + explanation_html: 'Можете да се верификујете као власник веза у метаподацима профила. За то је потребно да повезани веб сајт мора садржати везу до вашег Mastodon профила. Након што додате везу, можда ћете морати да се вратите овде и поново сачувате свој профил да би верификација ступила на снагу. Повратна веза мора имати атрибут rel="me". Текстуални садржај везе није битан. Ево примера:' verification: Провера webauthn_credentials: add: Додајте нови сигурносни кључ diff --git a/config/locales/sv.yml b/config/locales/sv.yml index b543b18cbe..58537ea7fd 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -812,6 +812,12 @@ sv: message_html: Du har inte definierat några serverregler. sidekiq_process_check: message_html: Ingen Sidekiq-process körs för kön/köerna %{value}. Vänligen kontrollera din Sidekiq-konfiguration + upload_check_privacy_error: + action: Kolla här för mer information + message_html: "Din webbserver är felkonfigurerad. Sekretessen för dina användare är i fara." + upload_check_privacy_error_object_storage: + action: Kolla här för mer information + message_html: "Din objektlagring är felkonfigurerad. Sekretessen för dina användare är i riskzonen." tags: review: Granskningsstatus updated_msg: Hashtagg-inställningarna har uppdaterats @@ -1684,12 +1690,12 @@ sv: title: Välkommen ombord, %{name}! users: follow_limit_reached: Du kan inte följa fler än %{limit} personer + go_to_sso_account_settings: Gå till din identitetsleverantörs kontoinställningar invalid_otp_token: Ogiltig tvåfaktorskod otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email} seamless_external_login: Du är inloggad via en extern tjänst, inställningar för lösenord och e-post är därför inte tillgängliga. signed_in_as: 'Inloggad som:' verification: - explanation_html: 'Du kan verifiera dig själv som ägare av länkar i din profilmetadata, genom att på den länkade webbplatsen även länka tillbaka till din Mastodon-profil. Länken tillbaka måste ha attributet rel="me". Textinnehållet i länken spelar ingen roll. Här är ett exempel:' verification: Bekräftelse webauthn_credentials: add: Lägg till ny säkerhetsnyckel diff --git a/config/locales/th.yml b/config/locales/th.yml index 13a312f269..5c56b1723d 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -798,6 +798,12 @@ th: message_html: คุณไม่ได้กำหนดกฎของเซิร์ฟเวอร์ใด ๆ sidekiq_process_check: message_html: ไม่มีกระบวนการ Sidekiq ที่กำลังทำงานสำหรับคิว %{value} โปรดตรวจทานการกำหนดค่า Sidekiq ของคุณ + upload_check_privacy_error: + action: ตรวจสอบที่นี่สำหรับข้อมูลเพิ่มเติม + message_html: "เว็บเซิร์ฟเวอร์ของคุณกำหนดค่าไม่ถูกต้อง ความเป็นส่วนตัวของผู้ใช้ของคุณตกอยู่ในความเสี่ยง" + upload_check_privacy_error_object_storage: + action: ตรวจสอบที่นี่สำหรับข้อมูลเพิ่มเติม + message_html: "ที่เก็บข้อมูลวัตถุของคุณกำหนดค่าไม่ถูกต้อง ความเป็นส่วนตัวของผู้ใช้ของคุณตกอยู่ในความเสี่ยง" tags: review: สถานะการตรวจทาน updated_msg: อัปเดตการตั้งค่าแฮชแท็กสำเร็จ @@ -1652,12 +1658,13 @@ th: title: ยินดีต้อนรับ %{name}! users: follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน + go_to_sso_account_settings: ไปยังการตั้งค่าบัญชีของผู้ให้บริการข้อมูลประจำตัวของคุณ invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง otp_lost_help_html: หากคุณสูญเสียการเข้าถึงทั้งสองอย่าง คุณสามารถติดต่อ %{email} seamless_external_login: คุณได้เข้าสู่ระบบผ่านบริการภายนอก ดังนั้นจึงไม่มีการตั้งค่ารหัสผ่านและอีเมล signed_in_as: 'ลงชื่อเข้าเป็น:' verification: - explanation_html: 'คุณสามารถ ยืนยันตัวคุณเองว่าเป็นเจ้าของของลิงก์ในข้อมูลอภิพันธุ์โปรไฟล์ของคุณ สำหรับสิ่งนั้น เว็บไซต์ที่เชื่อมโยงต้องมีลิงก์ย้อนกลับไปยังโปรไฟล์ Mastodon ของคุณ ลิงก์ย้อนกลับ ต้อง มีแอตทริบิวต์ rel="me" เนื้อหาข้อความของลิงก์ไม่สำคัญ นี่คือตัวอย่าง:' + explanation_html: 'คุณสามารถ ยืนยันตัวคุณเองว่าเป็นเจ้าของของลิงก์ในข้อมูลอภิพันธุ์โปรไฟล์ของคุณ สำหรับสิ่งนั้น เว็บไซต์ที่เชื่อมโยงต้องมีลิงก์ย้อนกลับไปยังโปรไฟล์ Mastodon ของคุณ หลังจากการเพิ่มลิงก์คุณอาจจำเป็นต้องกลับมาที่นี่และบันทึกโปรไฟล์ของคุณใหม่เพื่อให้การตรวจสอบมีผล ลิงก์ย้อนกลับ ต้อง มีแอตทริบิวต์ rel="me" เนื้อหาข้อความของลิงก์ไม่สำคัญ นี่คือตัวอย่าง:' verification: การตรวจสอบ webauthn_credentials: add: เพิ่มกุญแจความปลอดภัยใหม่ diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 384e060858..99aa325cb3 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -812,6 +812,12 @@ tr: message_html: Herhangi bir sunucu kuralı belirlemediniz. sidekiq_process_check: message_html: "%{value} kuyruk(lar)ı için herhangi bir Sidekiq süreci çalışmıyor. Lütfen Sidekiq yapılandırmanızı gözden geçirin" + upload_check_privacy_error: + action: Daha fazla bilgi için buraya tıklayın + message_html: "Web sunucunuz hatalı yapılandırılmış. Kullanıcılarınızın gizliliği tehlikede." + upload_check_privacy_error_object_storage: + action: Daha fazla bilgi için buraya göz atın + message_html: "Nesne depolamanız hatalı yapılandırılmış. Kullanıcılarınızın gizliliği tehlikede." tags: review: Durumu gözden geçir updated_msg: Etiket ayarları başarıyla güncellendi @@ -1684,12 +1690,13 @@ tr: title: Gemiye hoşgeldin, %{name}! users: follow_limit_reached: "%{limit} kişiden daha fazlasını takip edemezsiniz" + go_to_sso_account_settings: Kimlik sağlayıcı hesap ayarlarına gidin invalid_otp_token: Geçersiz iki adımlı doğrulama kodu otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir. signed_in_as: 'Oturum açtı:' verification: - explanation_html: 'Profil meta verisindeki bağlantıların sahibi olarak kendinizi doğrulayabilirsiniz. Bunun için, link verilen web sitesi Mastodon profilinize geri bir link içermelidir. Geri link bir rel="me" özelliğine sahip olmalıdır. Bağlantının metin içeriği önemli değildir. İşte bir örnek:' + explanation_html: 'Profil meta verisindeki bağlantıların sahibi olarak kendinizi doğrulayabilirsiniz. Bunun için, bağlantısı verilen web sitesi Mastodon profilinize bir bağlantı içermelidir. Doğrulamanın gerçekleşmesi için bağlantıyı ekledikten sonra buraya gelip profilinizi tekrar kaydetmelisiniz. Geri bağlantı bir rel="me" özelliğine sahip olmalıdır. Bağlantının metin içeriği önemli değildir. İşte bir örnek:' verification: Doğrulama webauthn_credentials: add: Yeni güvenlik anahtarı ekle diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 8bd005961e..62736d23d7 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -840,6 +840,12 @@ uk: message_html: Ви не визначили будь-які правила сервера. sidekiq_process_check: message_html: Не працює процес Sidekiq для %{value} черги. Перегляньте конфігурації вашого Sidekiq + upload_check_privacy_error: + action: Перегляньте подробиці тут + message_html: "Ваш вебсервер неправильно налаштований. Приватність ваших користувачів піддається ризику" + upload_check_privacy_error_object_storage: + action: Перегляньте подробиці тут + message_html: "Ваше сховище об'єктів неправильно налаштоване. Приватність ваших користувачів піддається ризику" tags: review: Переглянути допис updated_msg: Параметри хештеґів успішно оновлені @@ -1748,12 +1754,13 @@ uk: title: Ласкаво просимо, %{name}! users: follow_limit_reached: Не можна слідкувати більш ніж за %{limit} людей + go_to_sso_account_settings: Перейдіть до налаштувань облікового запису постачальника ідентифікації invalid_otp_token: Введено неправильний код otp_lost_help_html: Якщо ви втратили доступ до обох, ви можете отримати доступ з %{email} seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні. signed_in_as: 'Ви увійшли як:' verification: - explanation_html: 'Ви можете підтвердити володіння посиланнями в метаданих вашого профілю. Для цього на зазначеному сайті повинне міститися посилання на ваш профіль Mastodon. Посилання повинне мати атрибут rel="me". Текстовий вміст посилання не має значення. Ось приклад:' + explanation_html: 'Ви можете підтвердити володіння посиланнями в метаданих вашого профілю. Для цього на зазначеному сайті повинен міститися посилання на ваш профіль Mastodon. Посилання повинне мати атрибут rel="me". Текстовий вміст посилання не має значення. Ось приклад:' verification: Підтвердження webauthn_credentials: add: Додати новий ключ безпеки diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 81b30e6a2b..a1a2257014 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -798,6 +798,12 @@ vi: 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 + upload_check_privacy_error: + action: Nhấn vào đây để biết thêm thông tin + message_html: "Máy chủ web của bạn bị cấu hình sai. Có nguy cơ ảnh hưởng bảo mật của người dùng." + upload_check_privacy_error_object_storage: + action: Nhấn vào đây để biết thêm thông tin + message_html: "Lưu trữ đối tượng của bạn bị cấu hình sai. Có nguy cơ ảnh hưởng bảo mật của người dùng." tags: review: Phê duyệt updated_msg: Hashtag đã được cập nhật thành công @@ -1652,6 +1658,7 @@ vi: title: Xin chào %{name}! users: follow_limit_reached: Bạn chỉ có thể theo dõi tối đa %{limit} người + go_to_sso_account_settings: Thiết lập tài khoản nhà cung cấp danh tính invalid_otp_token: Mã xác minh 2 bước không hợp lệ otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể đăng nhập bằng %{email} seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy mật khẩu và email không khả dụng. diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 4267b652fd..5934a86070 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -798,6 +798,12 @@ zh-CN: message_html: 你没有定义任何服务器规则。 sidekiq_process_check: message_html: "%{value} 队列未运行任何 Sidekiq 进程。请检查你的 Sidekiq 配置" + upload_check_privacy_error: + action: 点击这里查看更多信息 + message_html: "您的网站服务器配置错误,您用户的隐私处于危险中。" + upload_check_privacy_error_object_storage: + action: 点击这里查看更多信息 + message_html: "您的对象存储空间配置错误,您用户的隐私处于危险中。" tags: review: 审核状态 updated_msg: 话题标签设置更新成功 @@ -1652,12 +1658,13 @@ zh-CN: title: "%{name},欢迎你的加入!" users: follow_limit_reached: 你不能关注超过 %{limit} 个人 + go_to_sso_account_settings: 转到您的身份提供商进行账户设置 invalid_otp_token: 输入的双重认证代码无效 otp_lost_help_html: 如果你不慎丢失了所有的代码,请联系 %{email} 寻求帮助 seamless_external_login: 因为你是通过外部服务登录的,所以密码和电子邮件地址设置都不可用。 signed_in_as: 当前登录的账户: verification: - explanation_html: 你可以 验证自己是个人资料元数据中的某个链接的所有者。 为此,被链接网站必须包含一个到你的 Mastodon 主页的链接。链接中 必须 包括 rel="me" 属性。链接的文本内容可以随意填写。例如: + explanation_html: 您可以 验证自己是个人资料元数据中的链接的所有者 。为此,链接的网站必须包含返回到您的 Mastodon 个人资料的链接。添加链接后,您可能需要回到这里并重新保存个人资料以使验证生效。 必须 在返回链接上使用 rel="me" 属性。 链接的文本内容无关紧要。以下是一个示例: verification: 验证 webauthn_credentials: add: 添加新的安全密钥 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 835ecd33c1..b334e66d9e 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1652,7 +1652,6 @@ zh-HK: seamless_external_login: 因為你正在使用第三方服務登入,所以不能設定密碼和電郵。 signed_in_as: 目前登入的帳戶: verification: - explanation_html: 你可以認證個人資料頁面的元數據 (Metadata) 連結是屬於你的。要認證,那些連結的目的地網站必須有一條回到你 Mastodon 個人頁面的連結,而且連結必須具有rel="me"屬性。連結的文字內容都不會影響認證。這裏有一個例子: verification: 驗證 webauthn_credentials: add: 新增安全密鑰裝置 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 1e31e22491..11a67ec47f 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -800,6 +800,12 @@ zh-TW: message_html: 您尚未定義任何伺服器規則。 sidekiq_process_check: message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態 + upload_check_privacy_error: + action: 檢查這裡以取得更多資訊 + message_html: "您的網頁伺服器設定錯誤。您的使用者隱私正暴露於風險之中。" + upload_check_privacy_error_object_storage: + action: 檢查這裡以取得更多資訊 + message_html: "您的物件資料儲存空間 (object storage) 設定錯誤。您的使用者隱私正暴露於風險之中。" tags: review: 審核嘟文 updated_msg: 成功更新主題標籤設定 @@ -1007,7 +1013,7 @@ zh-TW: account_status: 帳號狀態 confirming: 等待電子郵件確認完成。 functional: 您的帳號可以正常使用了。 - pending: 管管們正在處理您的申請,這可能需要一點時間處理。我們將在申請通過後以電子郵件方式通知您。 + pending: 管管們正在處理您的申請,這可能需要一點時間處理。我們將於申請通過後以電子郵件方式通知您。 redirecting_to: 您的帳號因目前重定向至 %{acct} 而被停用。 view_strikes: 檢視針對您帳號過去的警示 too_fast: 送出表單的速度太快跟不上,請稍後再試。 @@ -1269,7 +1275,7 @@ zh-TW: incoming_migrations_html: 要從其他帳號移動到此帳號的話,首先您必須建立帳號別名。 moved_msg: 您的帳號正被重新導向到 %{acct},您的跟隨者也會同步轉移至該帳號。 not_redirecting: 您的帳號目前尚未重新導向到任何其他帳號。 - on_cooldown: 您最近已轉移過您的帳號。此功能將在 %{count} 天後可再度使用。 + on_cooldown: 您最近已轉移過您的帳號。此功能將於 %{count} 天後可再度使用。 past_migrations: 以往的轉移紀錄 proceed_with_move: 移動跟隨者 redirected_msg: 您的帳號現在指向 %{acct} @@ -1654,12 +1660,13 @@ zh-TW: title: "%{name} 誠摯歡迎您的加入!" users: follow_limit_reached: 您無法跟隨多於 %{limit} 個人 + go_to_sso_account_settings: 前往您的身分提供商 (identity provider) 之帳號設定 invalid_otp_token: 兩階段認證碼不正確 otp_lost_help_html: 如果您無法訪問這兩者,可以透過 %{email} 與我們聯繫 seamless_external_login: 由於您是由外部系統登入,所以不能設定密碼與電子郵件。 signed_in_as: 目前登入的帳號: verification: - explanation_html: 您在 Mastodon 個人檔案頁上所列出的連結,可以用此方式驗證您確實掌控該連結網頁的內容。您可以在連結的網頁上加上一個連回 Mastodon 個人檔案頁面的連結,該連結的原始碼 必須包含rel="me"屬性。連結的顯示文字可自由發揮,以下為範例: + explanation_html: 您可以透過以個人檔案頁上列出連結的方式,驗證您確實掌控該連結網頁的內容。為此,您可以在連結的網頁中加入一個連回 Mastodon 個人檔案頁面的連結。新增此連結之後,您可能要回到這裡並重新儲存您的個人檔案以使該驗證生效。該連結的原始碼 必須包含rel="me"屬性。連結的顯示文字則可自由發揮,以下為範例: verification: 驗證連結 webauthn_credentials: add: 新增安全金鑰 @@ -1668,7 +1675,7 @@ zh-TW: success: 您已成功加入安全金鑰。 delete: 刪除 delete_confirmation: 您確定要移除這把安全金鑰嗎? - description_html: 如果您啟用安全金鑰驗證的話,您將在登入時需要使用其中一把安全金鑰。 + description_html: 如果您啟用安全金鑰驗證的話,您將於登入時需要使用其中一把安全金鑰。 destroy: error: 移除安全金鑰時出現了問題。請再試一次。 success: 您已成功將安全金鑰移除。 From c0e87ad8edae84d9363ff5bf67b0fd34ebff3eeb Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 27 Mar 2023 16:09:10 +0200 Subject: [PATCH 0760/1220] Update strong-migrations-enabled migrations from 5.0 and 5.1 to 5.2 (#24275) --- .../20170927215609_add_description_to_media_attachments.rb | 2 +- db/migrate/20170928082043_create_email_domain_blocks.rb | 2 +- .../20171005102658_create_account_moderation_notes.rb | 2 +- db/migrate/20171005171936_add_disabled_to_custom_emojis.rb | 2 +- db/migrate/20171006142024_add_uri_to_custom_emojis.rb | 2 +- ...010023049_add_foreign_key_to_account_moderation_notes.rb | 2 +- ...ange_accounts_nonnullable_in_account_moderation_notes.rb | 2 +- .../20171020084748_add_visible_in_picker_to_custom_emoji.rb | 2 +- db/migrate/20171028221157_add_reblogs_to_follows.rb | 2 +- db/migrate/20171107143332_add_memorial_to_accounts.rb | 2 +- db/migrate/20171107143624_add_disabled_to_users.rb | 2 +- db/migrate/20171109012327_add_moderator_to_accounts.rb | 2 +- ...0171114080328_add_index_domain_to_email_domain_blocks.rb | 2 +- db/migrate/20171114231651_create_lists.rb | 2 +- db/migrate/20171116161857_create_list_accounts.rb | 2 +- .../20171118012443_add_moved_to_account_id_to_accounts.rb | 2 +- db/migrate/20171119172437_create_admin_action_logs.rb | 2 +- ...120436_add_index_account_and_reblog_of_id_to_statuses.rb | 2 +- db/migrate/20171125024930_create_invites.rb | 2 +- db/migrate/20171125031751_add_invite_id_to_users.rb | 2 +- ...185353_add_index_reblog_of_id_and_account_to_statuses.rb | 2 +- .../20171125190735_remove_old_reblog_index_on_statuses.rb | 2 +- db/migrate/20171129172043_add_index_on_stream_entries.rb | 2 +- db/migrate/20171130000000_add_embed_url_to_preview_cards.rb | 2 +- ...20171201000000_change_account_id_nonnullable_in_lists.rb | 2 +- .../20171212195226_remove_duplicate_indexes_in_lists.rb | 2 +- .../20171226094803_more_faster_index_on_notifications.rb | 2 +- ...x_on_statuses_for_api_v1_accounts_account_id_statuses.rb | 2 +- db/migrate/20180109143959_add_remember_token_to_users.rb | 2 +- db/migrate/20180204034416_create_identities.rb | 6 +++--- db/migrate/20180206000000_change_user_id_nonnullable.rb | 2 +- db/migrate/20180211015820_create_backups.rb | 2 +- ...0180304013859_add_featured_collection_url_to_accounts.rb | 2 +- ...310000000_change_columns_in_notifications_nonnullable.rb | 2 +- .../20180402031200_add_assigned_account_id_to_reports.rb | 2 +- db/migrate/20180402040909_create_report_notes.rb | 2 +- db/migrate/20180410204633_add_fields_to_accounts.rb | 2 +- ...x_on_statuses_for_api_v1_accounts_account_id_statuses.rb | 4 ++-- ...e_on_statuses_for_api_v1_accounts_account_id_statuses.rb | 2 +- db/migrate/20180831171112_create_bookmarks.rb | 2 +- .../20191031163205_change_list_account_follow_nullable.rb | 2 +- .../20200622213645_media_attachment_ids_to_timestamp_ids.rb | 2 +- db/migrate/20200917192924_add_notify_to_follows.rb | 2 +- db/migrate/20210306164523_account_ids_to_timestamp_ids.rb | 2 +- ...08133107_remove_subscription_expires_at_from_accounts.rb | 4 ++-- 45 files changed, 49 insertions(+), 49 deletions(-) diff --git a/db/migrate/20170927215609_add_description_to_media_attachments.rb b/db/migrate/20170927215609_add_description_to_media_attachments.rb index db8d765664..9c3312373b 100644 --- a/db/migrate/20170927215609_add_description_to_media_attachments.rb +++ b/db/migrate/20170927215609_add_description_to_media_attachments.rb @@ -1,4 +1,4 @@ -class AddDescriptionToMediaAttachments < ActiveRecord::Migration[5.1] +class AddDescriptionToMediaAttachments < ActiveRecord::Migration[5.2] def change add_column :media_attachments, :description, :text end diff --git a/db/migrate/20170928082043_create_email_domain_blocks.rb b/db/migrate/20170928082043_create_email_domain_blocks.rb index 1f0fb75875..2baed54ef6 100644 --- a/db/migrate/20170928082043_create_email_domain_blocks.rb +++ b/db/migrate/20170928082043_create_email_domain_blocks.rb @@ -1,4 +1,4 @@ -class CreateEmailDomainBlocks < ActiveRecord::Migration[5.1] +class CreateEmailDomainBlocks < ActiveRecord::Migration[5.2] def change create_table :email_domain_blocks do |t| t.string :domain, null: false diff --git a/db/migrate/20171005102658_create_account_moderation_notes.rb b/db/migrate/20171005102658_create_account_moderation_notes.rb index 010b94586e..afa2f5f253 100644 --- a/db/migrate/20171005102658_create_account_moderation_notes.rb +++ b/db/migrate/20171005102658_create_account_moderation_notes.rb @@ -1,4 +1,4 @@ -class CreateAccountModerationNotes < ActiveRecord::Migration[5.1] +class CreateAccountModerationNotes < ActiveRecord::Migration[5.2] def change create_table :account_moderation_notes do |t| t.text :content, null: false diff --git a/db/migrate/20171005171936_add_disabled_to_custom_emojis.rb b/db/migrate/20171005171936_add_disabled_to_custom_emojis.rb index 067a7bee0c..7cf007ae9e 100644 --- a/db/migrate/20171005171936_add_disabled_to_custom_emojis.rb +++ b/db/migrate/20171005171936_add_disabled_to_custom_emojis.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddDisabledToCustomEmojis < ActiveRecord::Migration[5.1] +class AddDisabledToCustomEmojis < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171006142024_add_uri_to_custom_emojis.rb b/db/migrate/20171006142024_add_uri_to_custom_emojis.rb index 04dfcf397c..ff62aed20d 100644 --- a/db/migrate/20171006142024_add_uri_to_custom_emojis.rb +++ b/db/migrate/20171006142024_add_uri_to_custom_emojis.rb @@ -1,4 +1,4 @@ -class AddUriToCustomEmojis < ActiveRecord::Migration[5.1] +class AddUriToCustomEmojis < ActiveRecord::Migration[5.2] def change add_column :custom_emojis, :uri, :string add_column :custom_emojis, :image_remote_url, :string diff --git a/db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb b/db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb index cdcd159349..a2c0fbcc41 100644 --- a/db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb +++ b/db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb @@ -1,4 +1,4 @@ -class AddForeignKeyToAccountModerationNotes < ActiveRecord::Migration[5.1] +class AddForeignKeyToAccountModerationNotes < ActiveRecord::Migration[5.2] def change safety_assured { add_foreign_key :account_moderation_notes, :accounts } end diff --git a/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb b/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb index 1d7a0086c2..62725c88df 100644 --- a/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb +++ b/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb @@ -1,4 +1,4 @@ -class ChangeAccountsNonnullableInAccountModerationNotes < ActiveRecord::Migration[5.1] +class ChangeAccountsNonnullableInAccountModerationNotes < ActiveRecord::Migration[5.2] def change safety_assured do change_column_null :account_moderation_notes, :account_id, false diff --git a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb index 946e26ff2c..5f7c60a3eb 100644 --- a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb +++ b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb @@ -1,4 +1,4 @@ -class AddVisibleInPickerToCustomEmoji < ActiveRecord::Migration[5.1] +class AddVisibleInPickerToCustomEmoji < ActiveRecord::Migration[5.2] def change safety_assured do add_column :custom_emojis, :visible_in_picker, :boolean, default: true, null: false diff --git a/db/migrate/20171028221157_add_reblogs_to_follows.rb b/db/migrate/20171028221157_add_reblogs_to_follows.rb index 3b2e46ed8a..773904249d 100644 --- a/db/migrate/20171028221157_add_reblogs_to_follows.rb +++ b/db/migrate/20171028221157_add_reblogs_to_follows.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddReblogsToFollows < ActiveRecord::Migration[5.1] +class AddReblogsToFollows < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171107143332_add_memorial_to_accounts.rb b/db/migrate/20171107143332_add_memorial_to_accounts.rb index f3e012ce8b..4fb1216a14 100644 --- a/db/migrate/20171107143332_add_memorial_to_accounts.rb +++ b/db/migrate/20171107143332_add_memorial_to_accounts.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddMemorialToAccounts < ActiveRecord::Migration[5.1] +class AddMemorialToAccounts < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171107143624_add_disabled_to_users.rb b/db/migrate/20171107143624_add_disabled_to_users.rb index a71cac1c61..fb736786d5 100644 --- a/db/migrate/20171107143624_add_disabled_to_users.rb +++ b/db/migrate/20171107143624_add_disabled_to_users.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddDisabledToUsers < ActiveRecord::Migration[5.1] +class AddDisabledToUsers < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171109012327_add_moderator_to_accounts.rb b/db/migrate/20171109012327_add_moderator_to_accounts.rb index ddd87583a7..70b0b598c2 100644 --- a/db/migrate/20171109012327_add_moderator_to_accounts.rb +++ b/db/migrate/20171109012327_add_moderator_to_accounts.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddModeratorToAccounts < ActiveRecord::Migration[5.1] +class AddModeratorToAccounts < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb b/db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb index 84a341510a..34dc6ff004 100644 --- a/db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb +++ b/db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb @@ -1,4 +1,4 @@ -class AddIndexDomainToEmailDomainBlocks < ActiveRecord::Migration[5.1] +class AddIndexDomainToEmailDomainBlocks < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20171114231651_create_lists.rb b/db/migrate/20171114231651_create_lists.rb index 21285e9016..b7761abe49 100644 --- a/db/migrate/20171114231651_create_lists.rb +++ b/db/migrate/20171114231651_create_lists.rb @@ -1,4 +1,4 @@ -class CreateLists < ActiveRecord::Migration[5.1] +class CreateLists < ActiveRecord::Migration[5.2] def change create_table :lists do |t| t.references :account, foreign_key: { on_delete: :cascade } diff --git a/db/migrate/20171116161857_create_list_accounts.rb b/db/migrate/20171116161857_create_list_accounts.rb index b76c906511..7dbb78d8d5 100644 --- a/db/migrate/20171116161857_create_list_accounts.rb +++ b/db/migrate/20171116161857_create_list_accounts.rb @@ -1,4 +1,4 @@ -class CreateListAccounts < ActiveRecord::Migration[5.1] +class CreateListAccounts < ActiveRecord::Migration[5.2] def change create_table :list_accounts do |t| t.belongs_to :list, foreign_key: { on_delete: :cascade }, null: false diff --git a/db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb b/db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb index 586ef6f02d..893972848a 100644 --- a/db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb +++ b/db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb @@ -1,4 +1,4 @@ -class AddMovedToAccountIdToAccounts < ActiveRecord::Migration[5.1] +class AddMovedToAccountIdToAccounts < ActiveRecord::Migration[5.2] def change add_column :accounts, :moved_to_account_id, :bigint, null: true, default: nil safety_assured { add_foreign_key :accounts, :accounts, column: :moved_to_account_id, on_delete: :nullify } diff --git a/db/migrate/20171119172437_create_admin_action_logs.rb b/db/migrate/20171119172437_create_admin_action_logs.rb index b690735d26..80d5a3dba7 100644 --- a/db/migrate/20171119172437_create_admin_action_logs.rb +++ b/db/migrate/20171119172437_create_admin_action_logs.rb @@ -1,4 +1,4 @@ -class CreateAdminActionLogs < ActiveRecord::Migration[5.1] +class CreateAdminActionLogs < ActiveRecord::Migration[5.2] def change create_table :admin_action_logs do |t| t.belongs_to :account, foreign_key: { on_delete: :cascade } diff --git a/db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb b/db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb index 131e54b72e..a02ffe09d6 100644 --- a/db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb +++ b/db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb @@ -1,4 +1,4 @@ -class AddIndexAccountAndReblogOfIdToStatuses < ActiveRecord::Migration[5.1] +class AddIndexAccountAndReblogOfIdToStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def up diff --git a/db/migrate/20171125024930_create_invites.rb b/db/migrate/20171125024930_create_invites.rb index bcf03bd723..2e814babfc 100644 --- a/db/migrate/20171125024930_create_invites.rb +++ b/db/migrate/20171125024930_create_invites.rb @@ -1,4 +1,4 @@ -class CreateInvites < ActiveRecord::Migration[5.1] +class CreateInvites < ActiveRecord::Migration[5.2] def change create_table :invites do |t| t.belongs_to :user, foreign_key: { on_delete: :cascade } diff --git a/db/migrate/20171125031751_add_invite_id_to_users.rb b/db/migrate/20171125031751_add_invite_id_to_users.rb index 9cfb0c542c..2ff6c34308 100644 --- a/db/migrate/20171125031751_add_invite_id_to_users.rb +++ b/db/migrate/20171125031751_add_invite_id_to_users.rb @@ -1,4 +1,4 @@ -class AddInviteIdToUsers < ActiveRecord::Migration[5.1] +class AddInviteIdToUsers < ActiveRecord::Migration[5.2] def change safety_assured { add_reference :users, :invite, null: true, default: nil, foreign_key: { on_delete: :nullify }, index: false } end diff --git a/db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb b/db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb index 37662eaa5d..8952387b59 100644 --- a/db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb +++ b/db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb @@ -1,4 +1,4 @@ -class AddIndexReblogOfIdAndAccountToStatuses < ActiveRecord::Migration[5.1] +class AddIndexReblogOfIdAndAccountToStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb b/db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb index 68146c5ce0..dc7e09a25c 100644 --- a/db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb +++ b/db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb @@ -1,4 +1,4 @@ -class RemoveOldReblogIndexOnStatuses < ActiveRecord::Migration[5.1] +class RemoveOldReblogIndexOnStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def up diff --git a/db/migrate/20171129172043_add_index_on_stream_entries.rb b/db/migrate/20171129172043_add_index_on_stream_entries.rb index 181c4f2882..4580fb42f6 100644 --- a/db/migrate/20171129172043_add_index_on_stream_entries.rb +++ b/db/migrate/20171129172043_add_index_on_stream_entries.rb @@ -1,4 +1,4 @@ -class AddIndexOnStreamEntries < ActiveRecord::Migration[5.1] +class AddIndexOnStreamEntries < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20171130000000_add_embed_url_to_preview_cards.rb b/db/migrate/20171130000000_add_embed_url_to_preview_cards.rb index 8fcabef9fd..811f6ceae6 100644 --- a/db/migrate/20171130000000_add_embed_url_to_preview_cards.rb +++ b/db/migrate/20171130000000_add_embed_url_to_preview_cards.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddEmbedURLToPreviewCards < ActiveRecord::Migration[5.1] +class AddEmbedURLToPreviewCards < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb b/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb index ac86c9e777..e8e8786112 100644 --- a/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb +++ b/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb @@ -1,4 +1,4 @@ -class ChangeAccountIdNonnullableInLists < ActiveRecord::Migration[5.1] +class ChangeAccountIdNonnullableInLists < ActiveRecord::Migration[5.2] def change safety_assured do change_column_null :lists, :account_id, false diff --git a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb index ba67eee86e..f3007c77c7 100644 --- a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb +++ b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb @@ -1,4 +1,4 @@ -class RemoveDuplicateIndexesInLists < ActiveRecord::Migration[5.1] +class RemoveDuplicateIndexesInLists < ActiveRecord::Migration[5.2] def change remove_index :list_accounts, name: 'index_list_accounts_on_account_id' remove_index :list_accounts, name: 'index_list_accounts_on_list_id' diff --git a/db/migrate/20171226094803_more_faster_index_on_notifications.rb b/db/migrate/20171226094803_more_faster_index_on_notifications.rb index 0273a4e7c1..e0e73b27ab 100644 --- a/db/migrate/20171226094803_more_faster_index_on_notifications.rb +++ b/db/migrate/20171226094803_more_faster_index_on_notifications.rb @@ -1,4 +1,4 @@ -class MoreFasterIndexOnNotifications < ActiveRecord::Migration[5.1] +class MoreFasterIndexOnNotifications < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb index 401fc5e62e..eb277d3bc7 100644 --- a/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -1,4 +1,4 @@ -class AddIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.1] +class AddIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20180109143959_add_remember_token_to_users.rb b/db/migrate/20180109143959_add_remember_token_to_users.rb index 662905bcbb..f244fc6f62 100644 --- a/db/migrate/20180109143959_add_remember_token_to_users.rb +++ b/db/migrate/20180109143959_add_remember_token_to_users.rb @@ -1,4 +1,4 @@ -class AddRememberTokenToUsers < ActiveRecord::Migration[5.1] +class AddRememberTokenToUsers < ActiveRecord::Migration[5.2] def change add_column :users, :remember_token, :string, null: true end diff --git a/db/migrate/20180204034416_create_identities.rb b/db/migrate/20180204034416_create_identities.rb index f6f5da910b..68288aadfa 100644 --- a/db/migrate/20180204034416_create_identities.rb +++ b/db/migrate/20180204034416_create_identities.rb @@ -1,7 +1,7 @@ -class CreateIdentities < ActiveRecord::Migration[5.0] +class CreateIdentities < ActiveRecord::Migration[5.2] def change - create_table :identities do |t| - t.references :user, foreign_key: { on_delete: :cascade } + create_table :identities, id: :integer do |t| + t.references :user, type: :integer, foreign_key: { on_delete: :cascade } t.string :provider, null: false, default: '' t.string :uid, null: false, default: '' diff --git a/db/migrate/20180206000000_change_user_id_nonnullable.rb b/db/migrate/20180206000000_change_user_id_nonnullable.rb index 2d2cf20d38..1196383871 100644 --- a/db/migrate/20180206000000_change_user_id_nonnullable.rb +++ b/db/migrate/20180206000000_change_user_id_nonnullable.rb @@ -1,4 +1,4 @@ -class ChangeUserIdNonnullable < ActiveRecord::Migration[5.1] +class ChangeUserIdNonnullable < ActiveRecord::Migration[5.2] def change safety_assured do change_column_null :invites, :user_id, false diff --git a/db/migrate/20180211015820_create_backups.rb b/db/migrate/20180211015820_create_backups.rb index 9725a3e9f3..4aaeed83ba 100644 --- a/db/migrate/20180211015820_create_backups.rb +++ b/db/migrate/20180211015820_create_backups.rb @@ -1,4 +1,4 @@ -class CreateBackups < ActiveRecord::Migration[5.1] +class CreateBackups < ActiveRecord::Migration[5.2] def change create_table :backups do |t| t.references :user, foreign_key: { on_delete: :nullify } diff --git a/db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb b/db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb index 1964b51216..46842a9e36 100644 --- a/db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb +++ b/db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb @@ -1,4 +1,4 @@ -class AddFeaturedCollectionURLToAccounts < ActiveRecord::Migration[5.1] +class AddFeaturedCollectionURLToAccounts < ActiveRecord::Migration[5.2] def change add_column :accounts, :featured_collection_url, :string end diff --git a/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb b/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb index dba789207d..8577d02356 100644 --- a/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb +++ b/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb @@ -1,4 +1,4 @@ -class ChangeColumnsInNotificationsNonnullable < ActiveRecord::Migration[5.1] +class ChangeColumnsInNotificationsNonnullable < ActiveRecord::Migration[5.2] def change safety_assured do change_column_null :notifications, :activity_id, false diff --git a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb index e2d1371d2d..27cbd6c2a1 100644 --- a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb +++ b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb @@ -1,4 +1,4 @@ -class AddAssignedAccountIdToReports < ActiveRecord::Migration[5.1] +class AddAssignedAccountIdToReports < ActiveRecord::Migration[5.2] def change safety_assured { add_reference :reports, :assigned_account, null: true, default: nil, foreign_key: { on_delete: :nullify, to_table: :accounts }, index: false } end diff --git a/db/migrate/20180402040909_create_report_notes.rb b/db/migrate/20180402040909_create_report_notes.rb index 429cb45349..5d5a336275 100644 --- a/db/migrate/20180402040909_create_report_notes.rb +++ b/db/migrate/20180402040909_create_report_notes.rb @@ -1,4 +1,4 @@ -class CreateReportNotes < ActiveRecord::Migration[5.1] +class CreateReportNotes < ActiveRecord::Migration[5.2] def change create_table :report_notes do |t| t.text :content, null: false diff --git a/db/migrate/20180410204633_add_fields_to_accounts.rb b/db/migrate/20180410204633_add_fields_to_accounts.rb index 5b8c17480f..a1b9504b6a 100644 --- a/db/migrate/20180410204633_add_fields_to_accounts.rb +++ b/db/migrate/20180410204633_add_fields_to_accounts.rb @@ -1,4 +1,4 @@ -class AddFieldsToAccounts < ActiveRecord::Migration[5.1] +class AddFieldsToAccounts < ActiveRecord::Migration[5.2] def change add_column :accounts, :fields, :jsonb end diff --git a/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb index a3f883fcb6..48d156bef4 100644 --- a/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true -class ImproveIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.1] +class ImproveIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change - # These changes ware reverted by migration 20180514140000. + # These changes were reverted by migration 20180514140000. # add_index :statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently # add_index :statuses, [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently # remove_index :statuses, column: [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb index c00302804a..242ae74107 100644 --- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb +++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.1] +class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.2] disable_ddl_transaction! def change diff --git a/db/migrate/20180831171112_create_bookmarks.rb b/db/migrate/20180831171112_create_bookmarks.rb index 27c7339c9a..a08e60739e 100644 --- a/db/migrate/20180831171112_create_bookmarks.rb +++ b/db/migrate/20180831171112_create_bookmarks.rb @@ -1,4 +1,4 @@ -class CreateBookmarks < ActiveRecord::Migration[5.1] +class CreateBookmarks < ActiveRecord::Migration[5.2] def change create_table :bookmarks do |t| t.references :account, null: false diff --git a/db/migrate/20191031163205_change_list_account_follow_nullable.rb b/db/migrate/20191031163205_change_list_account_follow_nullable.rb index 65ff933658..43ebfe8922 100644 --- a/db/migrate/20191031163205_change_list_account_follow_nullable.rb +++ b/db/migrate/20191031163205_change_list_account_follow_nullable.rb @@ -1,4 +1,4 @@ -class ChangeListAccountFollowNullable < ActiveRecord::Migration[5.1] +class ChangeListAccountFollowNullable < ActiveRecord::Migration[5.2] def change safety_assured do change_column_null :list_accounts, :follow_id, true diff --git a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb index ccd65bf53f..7c141e7afd 100644 --- a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb +++ b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb @@ -1,4 +1,4 @@ -class MediaAttachmentIdsToTimestampIds < ActiveRecord::Migration[5.1] +class MediaAttachmentIdsToTimestampIds < ActiveRecord::Migration[5.2] def up # Set up the media_attachments.id column to use our timestamp-based IDs. safety_assured do diff --git a/db/migrate/20200917192924_add_notify_to_follows.rb b/db/migrate/20200917192924_add_notify_to_follows.rb index d27471c447..342eaa38d0 100644 --- a/db/migrate/20200917192924_add_notify_to_follows.rb +++ b/db/migrate/20200917192924_add_notify_to_follows.rb @@ -1,6 +1,6 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers') -class AddNotifyToFollows < ActiveRecord::Migration[5.1] +class AddNotifyToFollows < ActiveRecord::Migration[5.2] include Mastodon::MigrationHelpers disable_ddl_transaction! diff --git a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb index 40c582842b..b287c60dd5 100644 --- a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb +++ b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb @@ -1,4 +1,4 @@ -class AccountIdsToTimestampIds < ActiveRecord::Migration[5.1] +class AccountIdsToTimestampIds < ActiveRecord::Migration[5.2] def up # Set up the accounts.id column to use our timestamp-based IDs. safety_assured do diff --git a/db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb b/db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb index 53e24ef261..511104cef3 100644 --- a/db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb +++ b/db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb @@ -1,7 +1,7 @@ -class RemoveSubscriptionExpiresAtFromAccounts < ActiveRecord::Migration[5.0] +class RemoveSubscriptionExpiresAtFromAccounts < ActiveRecord::Migration[5.2] def change safety_assured do - remove_column :accounts, :subscription_expires_at, :datetime, null: true, default: nil + remove_column :accounts, :subscription_expires_at, :datetime, null: true, default: nil, precision: nil end end end From ddb769f0b84d4bcff22472f236a4ec74c631d0a6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 27 Mar 2023 10:11:45 -0400 Subject: [PATCH 0761/1220] Move marky to devDependency (#24258) --- app/javascript/mastodon/performance.js | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/performance.js b/app/javascript/mastodon/performance.js index 450a90626e..2b7e1bda84 100644 --- a/app/javascript/mastodon/performance.js +++ b/app/javascript/mastodon/performance.js @@ -12,6 +12,7 @@ if (process.env.NODE_ENV === 'development') { // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135 performance.setResourceTimingBufferSize(Infinity); } + // eslint-disable-next-line import/no-extraneous-dependencies marky = require('marky'); // allows us to easily do e.g. ReactPerf.printWasted() while debugging //window.ReactPerf = require('react-addons-perf'); diff --git a/package.json b/package.json index 0851c838d4..cd0ea8335b 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,6 @@ "jsdom": "^21.1.1", "lodash": "^4.17.21", "mark-loader": "^0.1.6", - "marky": "^1.2.5", "mini-css-extract-plugin": "^1.6.2", "mkdirp": "^2.1.5", "npmlog": "^7.0.1", @@ -153,6 +152,7 @@ "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "lint-staged": "^13.1.2", + "marky": "^1.2.5", "postcss-scss": "^4.0.6", "prettier": "^2.8.5", "raf": "^3.4.1", From e084b5b82da703dac3ade7480286e847c5c1c2cd Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 27 Mar 2023 17:07:37 +0200 Subject: [PATCH 0762/1220] Fix user archive takeout when using OpenStack Swift or S3 providers with no ACL support (#24200) --- app/controllers/backups_controller.rb | 6 +++++- app/models/backup.rb | 2 +- config/initializers/paperclip.rb | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/backups_controller.rb b/app/controllers/backups_controller.rb index 2f4b400b8d..0687b62c50 100644 --- a/app/controllers/backups_controller.rb +++ b/app/controllers/backups_controller.rb @@ -13,7 +13,11 @@ class BackupsController < ApplicationController when :s3 redirect_to @backup.dump.expiring_url(10) when :fog - redirect_to @backup.dump.expiring_url(Time.now.utc + 10) + if Paperclip::Attachment.default_options.dig(:storage, :fog_credentials, :openstack_temp_url_key).present? + redirect_to @backup.dump.expiring_url(Time.now.utc + 10) + else + redirect_to full_asset_url(@backup.dump.url) + end when :filesystem redirect_to full_asset_url(@backup.dump.url) end diff --git a/app/models/backup.rb b/app/models/backup.rb index dca06eb588..5feb31d7df 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -18,6 +18,6 @@ class Backup < ApplicationRecord belongs_to :user, inverse_of: :backups - has_attached_file :dump, s3_permissions: 'private' + has_attached_file :dump, s3_permissions: ->(*) { ENV['S3_PERMISSION'] == '' ? nil : 'private' } validates_attachment_content_type :dump, content_type: /\Aapplication/ end diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 9282c941da..bd37f67093 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -130,6 +130,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true' openstack_domain_name: ENV.fetch('SWIFT_DOMAIN_NAME') { 'default' }, openstack_region: ENV['SWIFT_REGION'], openstack_cache_ttl: ENV.fetch('SWIFT_CACHE_TTL') { 60 }, + openstack_temp_url_key: ENV['SWIFT_TEMP_URL_KEY'], }, fog_file: { 'Cache-Control' => 'public, max-age=315576000, immutable' }, From 0d70deee53fb38b6587e44221b482bbcbfd97ecc Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 27 Mar 2023 17:54:42 +0200 Subject: [PATCH 0763/1220] Add migration tests for user mail notification settings (#24277) --- .github/workflows/test-migrations-one-step.yml | 2 +- .github/workflows/test-migrations-two-step.yml | 2 +- lib/tasks/tests.rake | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml index a3594e5535..fca71a15ff 100644 --- a/.github/workflows/test-migrations-one-step.yml +++ b/.github/workflows/test-migrations-one-step.yml @@ -16,7 +16,7 @@ jobs: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: - paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml"]' + paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml", "lib/tasks/tests.rake"]' test: runs-on: ubuntu-latest diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml index f357bc9f68..9348e7adf2 100644 --- a/.github/workflows/test-migrations-two-step.yml +++ b/.github/workflows/test-migrations-two-step.yml @@ -16,7 +16,7 @@ jobs: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: - paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml"]' + paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml", "lib/tasks/tests.rake"]' test: runs-on: ubuntu-latest diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake index 1dd25abb9b..51a6ee0d75 100644 --- a/lib/tasks/tests.rake +++ b/lib/tasks/tests.rake @@ -53,6 +53,11 @@ namespace :tests do puts 'Admin::ActionLog email domain block records not updated as expected' exit(1) end + + unless User.find(1).settings.notification_emails['favourite'] == true && User.find(1).settings.notification_emails['mention'] == false + puts 'User settings not kept as expected' + exit(1) + end end desc 'Populate the database with test data for 2.4.3' @@ -98,6 +103,11 @@ namespace :tests do (1, 'destroy', 'EmailDomainBlock', 1, now(), now()), (1, 'destroy', 'Status', 1, now(), now()), (1, 'destroy', 'CustomEmoji', 3, now(), now()); + + INSERT INTO "settings" + (id, thing_type, thing_id, var, value, created_at, updated_at) + VALUES + (3, 'User', 1, 'notification_emails', E'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\nfollow: false\nreblog: true\nfavourite: true\nmention: false\nfollow_request: true\ndigest: true\nreport: true\npending_account: false\ntrending_tag: true\nappeal: true\n', now(), now()); SQL end From 2115413fa1ec52bea885c1ae18ae2ac3654b292c Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 27 Mar 2023 20:07:06 -0400 Subject: [PATCH 0764/1220] Remove remaining CodeClimate references (#24289) --- .codeclimate.yml | 39 --------------------------------------- README.md | 2 -- 2 files changed, 41 deletions(-) delete mode 100644 .codeclimate.yml diff --git a/.codeclimate.yml b/.codeclimate.yml deleted file mode 100644 index 00469df005..0000000000 --- a/.codeclimate.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: '2' -checks: - argument-count: - enabled: false - complex-logic: - enabled: false - file-lines: - enabled: false - method-complexity: - enabled: false - method-count: - enabled: false - method-lines: - enabled: false - nested-control-flow: - enabled: false - return-statements: - enabled: false - similar-code: - enabled: false - identical-code: - enabled: false -plugins: - brakeman: - enabled: true - bundler-audit: - enabled: false - eslint: - enabled: false - rubocop: - enabled: false - sass-lint: - enabled: false -exclude_patterns: - - spec/ - - vendor/asset/ - - - app/javascript/mastodon/locales/**/*.json - - config/locales/**/*.yml diff --git a/README.md b/README.md index d88699d7ba..6d03cbb2a8 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,9 @@ [![GitHub release](https://img.shields.io/github/release/mastodon/mastodon.svg)][releases] [![Ruby Testing](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml/badge.svg)](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml) -[![Code Climate](https://img.shields.io/codeclimate/maintainability/mastodon/mastodon.svg)][code_climate] [![Crowdin](https://d322cqt584bo4o.cloudfront.net/mastodon/localized.svg)][crowdin] [releases]: https://github.com/mastodon/mastodon/releases -[code_climate]: https://codeclimate.com/github/mastodon/mastodon [crowdin]: https://crowdin.com/project/mastodon Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!) From a766804e02dfe3d2c47267d14f1797eca93c837b Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 28 Mar 2023 00:28:57 -0400 Subject: [PATCH 0765/1220] Use Yarn instead of NPX for pre-commit hook (#24287) --- .husky/pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 36af219892..d2ae35e84b 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npx lint-staged +yarn lint-staged From 782669a0429694a69d8cbce8b04f328260f7f606 Mon Sep 17 00:00:00 2001 From: Robert R George Date: Wed, 29 Mar 2023 00:58:27 -0700 Subject: [PATCH 0766/1220] Wrap db:setup with Chewy.strategy(:mastodon) (#24302) --- db/seeds.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index 1ca300de73..c01e83f1d3 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true -Dir[Rails.root.join('db', 'seeds', '*.rb')].sort.each do |seed| - load seed +Chewy.strategy(:mastodon) do + Dir[Rails.root.join('db', 'seeds', '*.rb')].sort.each do |seed| + load seed + end end From b60f7b31cf9d0fca5fcfce49c798958c9852d8d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:32:51 +0200 Subject: [PATCH 0767/1220] Bump tzinfo-data from 1.2022.7 to 1.2023.2 (#24300) 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 2d94f37c39..ee720021d1 100644 --- a/Gemfile +++ b/Gemfile @@ -90,7 +90,7 @@ gem 'stoplight', '~> 3.0.1' gem 'strong_migrations', '~> 0.8' gem 'tty-prompt', '~> 0.23', require: false gem 'twitter-text', '~> 3.1.0' -gem 'tzinfo-data', '~> 1.2022' +gem 'tzinfo-data', '~> 1.2023' gem 'webpacker', '~> 5.4' gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9' gem 'webauthn', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index bba8db9961..c2f540497c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -717,7 +717,7 @@ GEM unf (~> 0.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2022.7) + tzinfo-data (1.2023.2) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext @@ -886,7 +886,7 @@ DEPENDENCIES thor (~> 1.2) tty-prompt (~> 0.23) twitter-text (~> 3.1.0) - tzinfo-data (~> 1.2022) + tzinfo-data (~> 1.2023) webauthn (~> 3.0) webmock (~> 3.18) webpacker (~> 5.4) From dc17b93cdb5b1fae7592ffc265a49d167e21ac4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:33:08 +0200 Subject: [PATCH 0768/1220] Bump aws-sdk-s3 from 1.119.1 to 1.119.2 (#24299) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2f540497c..7ac9c85948 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,16 +109,16 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.711.0) - aws-sdk-core (3.170.0) + aws-partitions (1.735.0) + aws-sdk-core (3.171.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.62.0) + aws-sdk-kms (1.63.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.119.1) + aws-sdk-s3 (1.119.2) aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) From 4f16e4dbdeed6b7a213dc28864ebcb3d74632602 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:34:27 +0200 Subject: [PATCH 0769/1220] Bump glob from 9.3.0 to 9.3.2 (#24298) 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 cd0ea8335b..3b23be03b5 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "file-loader": "^6.2.0", "font-awesome": "^4.7.0", "fuzzysort": "^2.0.4", - "glob": "^9.3.0", + "glob": "^9.3.2", "history": "^4.10.1", "http-link-header": "^1.1.0", "immutable": "^4.3.0", diff --git a/yarn.lock b/yarn.lock index 2d146e5aa0..972b9e62f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5448,10 +5448,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@^9.2.0, glob@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0" - integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w== +glob@^9.2.0, glob@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda" + integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA== dependencies: fs.realpath "^1.0.0" minimatch "^7.4.1" From 657236546f6842de936d8bd5f9a2db5a9533d5a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:34:49 +0200 Subject: [PATCH 0770/1220] Bump mkdirp from 2.1.5 to 2.1.6 (#24297) 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 3b23be03b5..066f7713a8 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "lodash": "^4.17.21", "mark-loader": "^0.1.6", "mini-css-extract-plugin": "^1.6.2", - "mkdirp": "^2.1.5", + "mkdirp": "^2.1.6", "npmlog": "^7.0.1", "object-assign": "^4.1.1", "object.values": "^1.1.6", diff --git a/yarn.lock b/yarn.lock index 972b9e62f8..61644b068a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7726,10 +7726,10 @@ mkdirp@^1.0, mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.5.tgz#78d7eaf15e069ba7b6b47d76dd94cfadf7a4062f" - integrity sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w== +mkdirp@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== mousetrap@^1.5.2: version "1.6.5" From 674f9b59662b19d2016c3772138bf0ec36e7f2a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:35:27 +0200 Subject: [PATCH 0771/1220] Bump prettier from 2.8.5 to 2.8.7 (#24295) 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 066f7713a8..dac7147996 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "lint-staged": "^13.1.2", "marky": "^1.2.5", "postcss-scss": "^4.0.6", - "prettier": "^2.8.5", + "prettier": "^2.8.7", "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 61644b068a..c73ea08985 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8834,10 +8834,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.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.5.tgz#3dd8ae1ebddc4f6aa419c9b64d8c8319a7e0d982" - integrity sha512-3gzuxrHbKUePRBB4ZeU08VNkUcqEHaUaouNt0m7LGP4Hti/NuB07C7PPTM/LkWqXoJYJn2McEo5+kxPNrtQkLQ== +prettier@^2.8.7: + version "2.8.7" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" + integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" From c384795731934963f309d608a4be92977889fb82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:37:33 +0200 Subject: [PATCH 0772/1220] Bump react-select from 5.7.1 to 5.7.2 (#24294) 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 dac7147996..85c72cbaf5 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "react-redux-loading-bar": "^5.0.4", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", - "react-select": "^5.7.1", + "react-select": "^5.7.2", "react-sparklines": "^1.7.0", "react-swipeable-views": "^0.14.0", "react-textarea-autosize": "^8.4.0", diff --git a/yarn.lock b/yarn.lock index c73ea08985..e9c6bac117 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9244,10 +9244,10 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-select@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.1.tgz#c85afa8a771d75c935ec698726a8fbfece662ed0" - integrity sha512-u/brzm3B6vgI+PtxNyE4/18kXgaf6bn5sOAjKhaQ54EItBfW41SRLH1AJC5fefPnGM4JmMcM51t/HAVCi5GrpQ== +react-select@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.2.tgz#ccd40071b9429277983bf15526e7a5773a060e09" + integrity sha512-cTlJkQ8YjV6T/js8wW0owTzht0hHGABh29vjLscY4HfZGkv7hc3FFTmRp9NzY/Ib1uQ36GieAKEjxpHdpCFpcA== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" From eb38e9df3129c2bc5ec3ecd1656336bf813747ce Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Wed, 29 Mar 2023 10:52:40 +0200 Subject: [PATCH 0773/1220] Requeue expiration notification (#24311) --- app/services/update_status_service.rb | 4 +- app/workers/poll_expiration_notify_worker.rb | 2 +- spec/services/update_status_service_spec.rb | 9 ++- .../poll_expiration_notify_worker_spec.rb | 61 ++++++++++++++++++- 4 files changed, 71 insertions(+), 5 deletions(-) diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb index f75fdf55d9..d1c2b990f6 100644 --- a/app/services/update_status_service.rb +++ b/app/services/update_status_service.rb @@ -141,9 +141,9 @@ class UpdateStatusService < BaseService poll = @status.preloadable_poll # If the poll had no expiration date set but now has, or now has a sooner - # expiration date, and people have voted, schedule a notification + # expiration date, schedule a notification - return unless poll.present? && poll.expires_at.present? && poll.votes.exists? + return unless poll.present? && poll.expires_at.present? PollExpirationNotifyWorker.remove_from_scheduled(poll.id) if @previous_expires_at.present? && @previous_expires_at > poll.expires_at PollExpirationNotifyWorker.perform_at(poll.expires_at + 5.minutes, poll.id) diff --git a/app/workers/poll_expiration_notify_worker.rb b/app/workers/poll_expiration_notify_worker.rb index 0e29a5f60b..b7a60fab84 100644 --- a/app/workers/poll_expiration_notify_worker.rb +++ b/app/workers/poll_expiration_notify_worker.rb @@ -3,7 +3,7 @@ class PollExpirationNotifyWorker include Sidekiq::Worker - sidekiq_options lock: :until_executed + sidekiq_options lock: :until_executing def perform(poll_id) @poll = Poll.find(poll_id) diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb index e52a0e52be..d6923722ab 100644 --- a/spec/services/update_status_service_spec.rb +++ b/spec/services/update_status_service_spec.rb @@ -120,7 +120,9 @@ RSpec.describe UpdateStatusService, type: :service do before do status.update(poll: poll) VoteService.new.call(voter, poll, [0]) - subject.call(status, status.account_id, text: 'Foo', poll: { options: %w(Bar Baz Foo), expires_in: 5.days.to_i }) + Sidekiq::Testing.fake! do + subject.call(status, status.account_id, text: 'Foo', poll: { options: %w(Bar Baz Foo), expires_in: 5.days.to_i }) + end end it 'updates poll' do @@ -138,6 +140,11 @@ RSpec.describe UpdateStatusService, type: :service do it 'saves edit history' do expect(status.edits.pluck(:poll_options)).to eq [%w(Foo Bar), %w(Bar Baz Foo)] end + + it 'requeues expiration notification' do + poll = status.poll.reload + expect(PollExpirationNotifyWorker).to have_enqueued_sidekiq_job(poll.id).at(poll.expires_at + 5.minutes) + end end context 'when mentions in text change' do diff --git a/spec/workers/poll_expiration_notify_worker_spec.rb b/spec/workers/poll_expiration_notify_worker_spec.rb index 8229db815d..78cbc1ee40 100644 --- a/spec/workers/poll_expiration_notify_worker_spec.rb +++ b/spec/workers/poll_expiration_notify_worker_spec.rb @@ -4,10 +4,69 @@ require 'rails_helper' describe PollExpirationNotifyWorker do let(:worker) { described_class.new } + let(:account) { Fabricate(:account, domain: remote? ? 'example.com' : nil) } + let(:status) { Fabricate(:status, account: account) } + let(:poll) { Fabricate(:poll, status: status, account: account) } + let(:remote?) { false } + let(:poll_vote) { Fabricate(:poll_vote, poll: poll) } + + describe '#perform' do + around do |example| + Sidekiq::Testing.fake! do + example.run + end + end - describe 'perform' do it 'runs without error for missing record' do expect { worker.perform(nil) }.to_not raise_error end + + context 'when poll is not expired' do + it 'requeues job' do + worker.perform(poll.id) + expect(described_class.sidekiq_options_hash['lock']).to be :until_executing + expect(described_class).to have_enqueued_sidekiq_job(poll.id).at(poll.expires_at + 5.minutes) + end + end + + context 'when poll is expired' do + before do + poll_vote + + travel_to poll.expires_at + 5.minutes + + worker.perform(poll.id) + end + + context 'when poll is local' do + it 'notifies voters' do + expect(ActivityPub::DistributePollUpdateWorker).to have_enqueued_sidekiq_job(poll.status.id) + end + + it 'notifies owner' do + expect(LocalNotificationWorker).to have_enqueued_sidekiq_job(poll.account.id, poll.id, 'Poll', 'poll') + end + + it 'notifies local voters' do + expect(LocalNotificationWorker).to have_enqueued_sidekiq_job(poll_vote.account.id, poll.id, 'Poll', 'poll') + end + end + + context 'when poll is remote' do + let(:remote?) { true } + + it 'does not notify remote voters' do + expect(ActivityPub::DistributePollUpdateWorker).to_not have_enqueued_sidekiq_job(poll.status.id) + end + + it 'does not notify owner' do + expect(LocalNotificationWorker).to_not have_enqueued_sidekiq_job(poll.account.id, poll.id, 'Poll', 'poll') + end + + it 'notifies local voters' do + expect(LocalNotificationWorker).to have_enqueued_sidekiq_job(poll_vote.account.id, poll.id, 'Poll', 'poll') + end + end + end end end From ef52da6dc7be14c785d3c53a9ff0732da6ecaf35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 11:03:38 +0200 Subject: [PATCH 0774/1220] Bump react-textarea-autosize from 8.4.0 to 8.4.1 (#24293) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 85c72cbaf5..064f0c8b9f 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "react-select": "^5.7.2", "react-sparklines": "^1.7.0", "react-swipeable-views": "^0.14.0", - "react-textarea-autosize": "^8.4.0", + "react-textarea-autosize": "^8.4.1", "react-toggle": "^4.1.3", "redis": "^4.6.5", "redux": "^4.2.1", diff --git a/yarn.lock b/yarn.lock index e9c6bac117..20b2d726c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1075,7 +1075,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.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@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": +"@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.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@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.21.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== @@ -9312,12 +9312,12 @@ react-test-renderer@^16.14.0: react-is "^16.8.6" scheduler "^0.19.1" -react-textarea-autosize@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz#4d0244d6a50caa897806b8c44abc0540a69bfc8c" - integrity sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ== +react-textarea-autosize@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz#bcfc5462727014b808b14ee916c01e275e8a8335" + integrity sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q== dependencies: - "@babel/runtime" "^7.10.2" + "@babel/runtime" "^7.20.13" use-composed-ref "^1.3.0" use-latest "^1.2.1" From 550d40a361a7d4930863c01fb5c8269270932958 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 11:11:50 +0200 Subject: [PATCH 0775/1220] Bump rimraf from 4.4.0 to 4.4.1 (#24291) 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 064f0c8b9f..ff8549a11d 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "regenerator-runtime": "^0.13.11", "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", - "rimraf": "^4.4.0", + "rimraf": "^4.4.1", "sass": "^1.59.3", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index 20b2d726c4..bd0db887ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9683,10 +9683,10 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.0.tgz#c7a9f45bb2ec058d2e60ef9aca5167974313d605" - integrity sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ== +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== dependencies: glob "^9.2.0" From c855e1ecbcc5dd918492cc688a88e74eb52e9b91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 11:27:14 +0200 Subject: [PATCH 0776/1220] Bump sass from 1.59.3 to 1.60.0 (#24292) 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 ff8549a11d..43c90646a6 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^4.4.1", - "sass": "^1.59.3", + "sass": "^1.60.0", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index bd0db887ef..7d2b31c9eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9783,10 +9783,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.59.3: - version "1.59.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" - integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== +sass@^1.60.0: + version "1.60.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" + integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From cb9cc09a6dc1acb3c8b1b353d395b0aa73491c83 Mon Sep 17 00:00:00 2001 From: Robert R George Date: Wed, 29 Mar 2023 04:27:19 -0700 Subject: [PATCH 0777/1220] Fixes launching of the devcontainer and adds support for Docker Desktop (#24303) --- .devcontainer/devcontainer.json | 1 + .devcontainer/docker-compose.yml | 12 ++++++++++-- .devcontainer/post-create.sh | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d628fd1bd1..17208a84e9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -15,6 +15,7 @@ "forwardPorts": [3000, 4000], // Use 'postCreateCommand' to run commands after the container is created. + "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "postCreateCommand": ".devcontainer/post-create.sh", "waitFor": "postCreateCommand", diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 1b1756eca6..73fe22f3aa 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -10,7 +10,7 @@ services: environment: RAILS_ENV: development NODE_ENV: development - + BIND: 0.0.0.0 REDIS_HOST: redis REDIS_PORT: '6379' DB_HOST: db @@ -23,6 +23,10 @@ services: LIBRE_TRANSLATE_ENDPOINT: http://libretranslate:5000 # Overrides default command so things don't shut down after the process ends. command: sleep infinity + ports: + - '127.0.0.1:3000:3000' + - '127.0.0.1:4000:4000' + - '127.0.0.1:80:3000' networks: - external_network - internal_network @@ -66,15 +70,19 @@ services: hard: -1 libretranslate: - image: libretranslate/libretranslate:v1.2.9 + image: libretranslate/libretranslate:v1.3.10 restart: unless-stopped + volumes: + - lt-data:/home/libretranslate/.local networks: + - external_network - internal_network volumes: postgres-data: redis-data: es-data: + lt-data: networks: external_network: diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh index 02f488f120..7c3852e7e1 100755 --- a/.devcontainer/post-create.sh +++ b/.devcontainer/post-create.sh @@ -14,6 +14,9 @@ git checkout -- Gemfile.lock # [re]create, migrate, and seed the test database RAILS_ENV=test ./bin/rails db:setup +# [re]create, migrate, and seed the development database +RAILS_ENV=development ./bin/rails db:setup + # Precompile assets for development RAILS_ENV=development ./bin/rails assets:precompile From 9c8456300888cd022bc17ba1b447d5366e87056d Mon Sep 17 00:00:00 2001 From: mogamin <5103195+mgmn@users.noreply.github.com> Date: Wed, 29 Mar 2023 20:54:33 +0900 Subject: [PATCH 0778/1220] Fix missing translation in pagination gap tags (#24262) Co-authored-by: Eugen Rochko --- app/views/kaminari/_gap.html.haml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 app/views/kaminari/_gap.html.haml diff --git a/app/views/kaminari/_gap.html.haml b/app/views/kaminari/_gap.html.haml new file mode 100644 index 0000000000..0f9cff8fe6 --- /dev/null +++ b/app/views/kaminari/_gap.html.haml @@ -0,0 +1,9 @@ +-# + Non-link tag that stands for skipped pages... + available local variables + current_page: a page object for the currently displayed page + total_pages: total number of pages + per_page: number of items to fetch per page + remote: data-remote +%span.page.gap + != t('pagination.truncate') From 74f56c64fc0aa0dce0dc2c267aa8a212569e9673 Mon Sep 17 00:00:00 2001 From: Tdxdxoz Date: Thu, 30 Mar 2023 16:14:49 +0800 Subject: [PATCH 0779/1220] Fix: set multiColumn value for /explore Statuses (#24314) --- app/javascript/mastodon/features/explore/index.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/explore/index.jsx b/app/javascript/mastodon/features/explore/index.jsx index 569b8612c3..939550d833 100644 --- a/app/javascript/mastodon/features/explore/index.jsx +++ b/app/javascript/mastodon/features/explore/index.jsx @@ -88,7 +88,9 @@ class Explore extends React.PureComponent { - + + + From 67450cf00283dc2c2e9170377e015e05049dbd63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Mar 2023 10:38:00 +0200 Subject: [PATCH 0780/1220] Bump cssnano from 5.1.15 to 6.0.0 (#24296) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 451 ++++++++++++++++++++++++--------------------------- 2 files changed, 215 insertions(+), 238 deletions(-) diff --git a/package.json b/package.json index 43c90646a6..915a5331f8 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "compression-webpack-plugin": "^6.1.1", "cross-env": "^7.0.3", "css-loader": "^5.2.7", - "cssnano": "^5.1.15", + "cssnano": "^6.0.0", "detect-passive-events": "^2.0.3", "dotenv": "^16.0.3", "emoji-mart": "npm:emoji-mart-lazyload@latest", diff --git a/yarn.lock b/yarn.lock index 7d2b31c9eb..fec4329f19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3827,26 +3827,18 @@ css-loader@^5.2.7: schema-utils "^3.0.0" semver "^7.3.5" -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" nth-check "^2.0.1" -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-tree@^2.3.1: +css-tree@^2.2.1, css-tree@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== @@ -3854,7 +3846,15 @@ css-tree@^2.3.1: mdn-data "2.0.30" source-map-js "^1.0.1" -css-what@^6.0.1: +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== @@ -3869,61 +3869,60 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.2.14: - version "5.2.14" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" - integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== +cssnano-preset-default@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.0.tgz#058726536bdc18711c01b1d328766cbc5691cf71" + integrity sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ== dependencies: css-declaration-sorter "^6.3.1" - cssnano-utils "^3.1.0" + cssnano-utils "^4.0.0" postcss-calc "^8.2.3" - postcss-colormin "^5.3.1" - postcss-convert-values "^5.1.3" - postcss-discard-comments "^5.1.2" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.1" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.7" - postcss-merge-rules "^5.1.4" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.1" - postcss-minify-params "^5.1.4" - postcss-minify-selectors "^5.2.1" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.1" - postcss-normalize-repeat-style "^5.1.1" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.1" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.3" - postcss-reduce-initial "^5.1.2" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.1" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.0" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" -cssnano-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" - integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== -cssnano@^5.1.15: - version "5.1.15" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" - integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== +cssnano@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.0.tgz#53f4cb81101cccba0809fad779f006b5d44925ee" + integrity sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA== dependencies: - cssnano-preset-default "^5.2.14" - lilconfig "^2.0.3" - yaml "^1.10.2" + cssnano-preset-default "^6.0.0" + lilconfig "^2.1.0" -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: - css-tree "^1.1.2" + css-tree "~2.2.0" cssom@^0.5.0: version "0.5.0" @@ -4293,26 +4292,21 @@ dom-helpers@^5.2.0: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domelementtype@^2.2.0: +domelementtype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== @@ -4324,21 +4318,21 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== +domhandler@^5.0.1, domhandler@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: - domelementtype "^2.2.0" + domelementtype "^2.3.0" -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" dotenv@^16.0.3: version "16.0.3" @@ -4450,12 +4444,7 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - -entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== @@ -7168,7 +7157,7 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@2.1.0, lilconfig@^2.0.3: +lilconfig@2.1.0, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -7449,10 +7438,10 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== mdn-data@2.0.30: version "2.0.30" @@ -7921,11 +7910,6 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -8532,43 +8516,43 @@ postcss-calc@^8.2.3: postcss-selector-parser "^6.0.9" postcss-value-parser "^4.2.0" -postcss-colormin@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" - integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" - integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== dependencies: browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-discard-comments@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" - integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== -postcss-discard-duplicates@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" - integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== -postcss-discard-empty@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" - integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== -postcss-discard-overridden@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" - integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== postcss-loader@^4.3.0: version "4.3.0" @@ -8586,53 +8570,53 @@ postcss-media-query-parser@^0.2.3: resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= -postcss-merge-longhand@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" - integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^5.1.1" + stylehacks "^6.0.0" -postcss-merge-rules@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" - integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== +postcss-merge-rules@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.0.tgz#0d95bc73541156b8b4e763bd0de2c3f9d0ecf013" + integrity sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" + cssnano-utils "^4.0.0" postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" - integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" - integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== dependencies: colord "^2.9.1" - cssnano-utils "^3.1.0" + cssnano-utils "^4.0.0" postcss-value-parser "^4.2.0" -postcss-minify-params@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" - integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== dependencies: browserslist "^4.21.4" - cssnano-utils "^3.1.0" + cssnano-utils "^4.0.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" - integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== dependencies: postcss-selector-parser "^6.0.5" @@ -8664,89 +8648,88 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-normalize-charset@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" - integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== -postcss-normalize-display-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" - integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" - integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" - integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-string@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" - integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" - integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" - integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== dependencies: browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-normalize-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" - integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" - integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" - integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== dependencies: - cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-reduce-initial@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" - integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" - integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== dependencies: postcss-value-parser "^4.2.0" @@ -8773,18 +8756,18 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" - integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== dependencies: postcss-value-parser "^4.2.0" - svgo "^2.7.0" + svgo "^3.0.2" -postcss-unique-selectors@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" - integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== dependencies: postcss-selector-parser "^6.0.5" @@ -10267,11 +10250,6 @@ ssri@^8.0.0: dependencies: minipass "^3.1.1" -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - stack-generator@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" @@ -10535,10 +10513,10 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= -stylehacks@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" - integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== dependencies: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" @@ -10687,18 +10665,17 @@ svg-tags@^1.0.0: resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" picocolors "^1.0.0" - stable "^0.1.8" symbol-tree@^3.2.4: version "3.2.4" @@ -11966,7 +11943,7 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== From e7c3e5587489a9e248973fa0719869541d34ba9f Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 30 Mar 2023 14:19:33 +0200 Subject: [PATCH 0781/1220] Fix stale apt index in github actions (#24319) --- .github/workflows/lint-haml.yml | 4 +++- .github/workflows/test-migrations-one-step.yml | 4 +++- .github/workflows/test-migrations-two-step.yml | 4 +++- .github/workflows/test-ruby.yml | 7 ++++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml index a2b22a6590..2ddbca7818 100644 --- a/.github/workflows/lint-haml.yml +++ b/.github/workflows/lint-haml.yml @@ -30,7 +30,9 @@ jobs: uses: actions/checkout@v3 - name: Install native Ruby dependencies - run: sudo apt-get install -y libicu-dev libidn11-dev + run: | + sudo apt-get update + sudo apt-get install -y libicu-dev libidn11-dev - name: Set up Ruby uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml index fca71a15ff..d7e424a8c4 100644 --- a/.github/workflows/test-migrations-one-step.yml +++ b/.github/workflows/test-migrations-one-step.yml @@ -64,7 +64,9 @@ jobs: - uses: actions/checkout@v3 - name: Install native Ruby dependencies - run: sudo apt-get install -y libicu-dev libidn11-dev + run: | + sudo apt-get update + sudo apt-get install -y libicu-dev libidn11-dev - name: Set up bundler cache uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml index 9348e7adf2..25bf5ba87f 100644 --- a/.github/workflows/test-migrations-two-step.yml +++ b/.github/workflows/test-migrations-two-step.yml @@ -63,7 +63,9 @@ jobs: - uses: actions/checkout@v3 - name: Install native Ruby dependencies - run: sudo apt-get install -y libicu-dev libidn11-dev + run: | + sudo apt-get update + sudo apt-get install -y libicu-dev libidn11-dev - name: Set up bundler cache uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 1be3e08e9b..d1aa8468ae 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -32,7 +32,9 @@ jobs: node-version-file: '.nvmrc' - name: Install native Ruby dependencies - run: sudo apt-get install -y libicu-dev libidn11-dev + run: | + sudo apt-get update + sudo apt-get install -y libicu-dev libidn11-dev - name: Set up bundler cache uses: ruby/setup-ruby@v1 @@ -119,6 +121,9 @@ jobs: path: './public' name: ${{ github.sha }} + - name: Update package index + run: sudo apt-get update + - name: Install native Ruby dependencies run: sudo apt-get install -y libicu-dev libidn11-dev From a9b5598c97fc4d3302b61b260097ef41c2ebe377 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 30 Mar 2023 14:44:00 +0200 Subject: [PATCH 0782/1220] Change user settings to be stored in a more optimal way (#23630) Co-authored-by: Claire --- .rubocop.yml | 8 + .rubocop_todo.yml | 1 + .../api/v1/accounts/credentials_controller.rb | 12 +- .../settings/preferences_controller.rb | 40 +---- app/lib/user_settings_decorator.rb | 155 ------------------ app/lib/user_settings_serializer.rb | 19 +++ app/models/concerns/has_user_settings.rb | 141 ++++++++++++++++ app/models/user.rb | 59 +------ app/models/user_settings.rb | 99 +++++++++++ app/models/user_settings/dsl.rb | 37 +++++ app/models/user_settings/glue.rb | 23 +++ app/models/user_settings/namespace.rb | 21 +++ app/models/user_settings/setting.rb | 48 ++++++ app/services/notify_service.rb | 13 +- .../preferences/appearance/show.html.haml | 65 ++++---- .../preferences/notifications/show.html.haml | 34 ++-- .../settings/preferences/other/show.html.haml | 29 ++-- config/initializers/inflections.rb | 1 + config/settings.yml | 34 ---- .../20230215074327_add_settings_to_users.rb | 7 + .../20230215074423_move_user_settings.rb | 84 ++++++++++ db/schema.rb | 3 +- lib/tasks/tests.rake | 2 +- .../accounts/credentials_controller_spec.rb | 1 + .../application_controller_spec.rb | 10 +- .../notifications_controller_spec.rb | 14 +- .../preferences/other_controller_spec.rb | 14 +- spec/lib/settings/extend_spec.rb | 16 -- spec/lib/settings/scoped_settings_spec.rb | 35 ---- spec/lib/user_settings_decorator_spec.rb | 84 ---------- spec/models/user_settings/namespace_spec.rb | 25 +++ spec/models/user_settings/setting_spec.rb | 74 +++++++++ spec/models/user_settings_spec.rb | 110 +++++++++++++ spec/models/user_spec.rb | 14 +- spec/services/notify_service_spec.rb | 7 +- spec/services/report_service_spec.rb | 3 +- 36 files changed, 817 insertions(+), 525 deletions(-) delete mode 100644 app/lib/user_settings_decorator.rb create mode 100644 app/lib/user_settings_serializer.rb create mode 100644 app/models/concerns/has_user_settings.rb create mode 100644 app/models/user_settings.rb create mode 100644 app/models/user_settings/dsl.rb create mode 100644 app/models/user_settings/glue.rb create mode 100644 app/models/user_settings/namespace.rb create mode 100644 app/models/user_settings/setting.rb create mode 100644 db/migrate/20230215074327_add_settings_to_users.rb create mode 100644 db/migrate/20230215074423_move_user_settings.rb delete mode 100644 spec/lib/settings/extend_spec.rb delete mode 100644 spec/lib/settings/scoped_settings_spec.rb delete mode 100644 spec/lib/user_settings_decorator_spec.rb create mode 100644 spec/models/user_settings/namespace_spec.rb create mode 100644 spec/models/user_settings/setting_spec.rb create mode 100644 spec/models/user_settings_spec.rb diff --git a/.rubocop.yml b/.rubocop.yml index 1033db92d9..b5598b65af 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -185,3 +185,11 @@ Style/TrailingCommaInHashLiteral: Style/SymbolArray: Enabled: false + +# Reason: Prefer less intendation in conditional assignments +# https://docs.rubocop.org/rubocop/cops_style.html#styleredundantbegin +Style/RedundantBegin: + Enabled: false + +RSpec/NamedSubject: + EnforcedStyle: named_only diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 64a6b6b33a..4ad266c8c7 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -259,6 +259,7 @@ Metrics/ModuleLength: - 'app/helpers/jsonld_helper.rb' - 'app/helpers/statuses_helper.rb' - 'app/models/concerns/account_interactions.rb' + - 'app/models/concerns/has_user_settings.rb' # Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters. Metrics/ParameterLists: diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb index 94b707771f..7c7d70fd32 100644 --- a/app/controllers/api/v1/accounts/credentials_controller.rb +++ b/app/controllers/api/v1/accounts/credentials_controller.rb @@ -13,7 +13,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController def update @account = current_account UpdateAccountService.new.call(@account, account_params, raise_error: true) - UserSettingsDecorator.new(current_user).update(user_settings_params) if user_settings_params + current_user.update(user_params) if user_params ActivityPub::UpdateDistributionWorker.perform_async(@account.id) render json: @account, serializer: REST::CredentialAccountSerializer end @@ -34,15 +34,17 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController ) end - def user_settings_params + def user_params return nil if params[:source].blank? source_params = params.require(:source) { - 'setting_default_privacy' => source_params.fetch(:privacy, @account.user.setting_default_privacy), - 'setting_default_sensitive' => source_params.fetch(:sensitive, @account.user.setting_default_sensitive), - 'setting_default_language' => source_params.fetch(:language, @account.user.setting_default_language), + settings_attributes: { + default_privacy: source_params.fetch(:privacy, @account.user.setting_default_privacy), + default_sensitive: source_params.fetch(:sensitive, @account.user.setting_default_sensitive), + default_language: source_params.fetch(:language, @account.user.setting_default_language), + }, } end end diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index f5d5c12449..281deb64d1 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -4,8 +4,6 @@ class Settings::PreferencesController < Settings::BaseController def show; end def update - user_settings.update(user_settings_params.to_h) - if current_user.update(user_params) I18n.locale = current_user.locale redirect_to after_update_redirect_path, notice: I18n.t('generic.changes_saved_msg') @@ -20,43 +18,7 @@ class Settings::PreferencesController < Settings::BaseController settings_preferences_path end - def user_settings - UserSettingsDecorator.new(current_user) - end - def user_params - params.require(:user).permit( - :locale, - chosen_languages: [] - ) - end - - def user_settings_params - params.require(:user).permit( - :setting_default_privacy, - :setting_default_sensitive, - :setting_default_language, - :setting_unfollow_modal, - :setting_boost_modal, - :setting_delete_modal, - :setting_auto_play_gif, - :setting_display_media, - :setting_expand_spoilers, - :setting_reduce_motion, - :setting_disable_swiping, - :setting_system_font_ui, - :setting_noindex, - :setting_theme, - :setting_aggregate_reblogs, - :setting_show_application, - :setting_advanced_layout, - :setting_use_blurhash, - :setting_use_pending_items, - :setting_trends, - :setting_crop_images, - :setting_always_send_emails, - notification_emails: %i(follow follow_request reblog favourite mention report pending_account trending_tag appeal), - interactions: %i(must_be_follower must_be_following must_be_following_dm) - ) + params.require(:user).permit(:locale, chosen_languages: [], settings_attributes: UserSettings.keys) end end diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb deleted file mode 100644 index 5fb7655a9b..0000000000 --- a/app/lib/user_settings_decorator.rb +++ /dev/null @@ -1,155 +0,0 @@ -# frozen_string_literal: true - -class UserSettingsDecorator - attr_reader :user, :settings - - def initialize(user) - @user = user - end - - def update(settings) - @settings = settings - process_update - end - - private - - def process_update - user.settings['notification_emails'] = merged_notification_emails if change?('notification_emails') - user.settings['interactions'] = merged_interactions if change?('interactions') - user.settings['default_privacy'] = default_privacy_preference if change?('setting_default_privacy') - user.settings['default_sensitive'] = default_sensitive_preference if change?('setting_default_sensitive') - user.settings['default_language'] = default_language_preference if change?('setting_default_language') - user.settings['unfollow_modal'] = unfollow_modal_preference if change?('setting_unfollow_modal') - user.settings['boost_modal'] = boost_modal_preference if change?('setting_boost_modal') - user.settings['delete_modal'] = delete_modal_preference if change?('setting_delete_modal') - user.settings['auto_play_gif'] = auto_play_gif_preference if change?('setting_auto_play_gif') - user.settings['display_media'] = display_media_preference if change?('setting_display_media') - user.settings['expand_spoilers'] = expand_spoilers_preference if change?('setting_expand_spoilers') - user.settings['reduce_motion'] = reduce_motion_preference if change?('setting_reduce_motion') - user.settings['disable_swiping'] = disable_swiping_preference if change?('setting_disable_swiping') - user.settings['system_font_ui'] = system_font_ui_preference if change?('setting_system_font_ui') - user.settings['noindex'] = noindex_preference if change?('setting_noindex') - user.settings['theme'] = theme_preference if change?('setting_theme') - user.settings['aggregate_reblogs'] = aggregate_reblogs_preference if change?('setting_aggregate_reblogs') - user.settings['show_application'] = show_application_preference if change?('setting_show_application') - user.settings['advanced_layout'] = advanced_layout_preference if change?('setting_advanced_layout') - user.settings['use_blurhash'] = use_blurhash_preference if change?('setting_use_blurhash') - user.settings['use_pending_items'] = use_pending_items_preference if change?('setting_use_pending_items') - user.settings['trends'] = trends_preference if change?('setting_trends') - user.settings['crop_images'] = crop_images_preference if change?('setting_crop_images') - user.settings['always_send_emails'] = always_send_emails_preference if change?('setting_always_send_emails') - end - - def merged_notification_emails - user.settings['notification_emails'].merge coerced_settings('notification_emails').to_h - end - - def merged_interactions - user.settings['interactions'].merge coerced_settings('interactions').to_h - end - - def default_privacy_preference - settings['setting_default_privacy'] - end - - def default_sensitive_preference - boolean_cast_setting 'setting_default_sensitive' - end - - def unfollow_modal_preference - boolean_cast_setting 'setting_unfollow_modal' - end - - def boost_modal_preference - boolean_cast_setting 'setting_boost_modal' - end - - def delete_modal_preference - boolean_cast_setting 'setting_delete_modal' - end - - def system_font_ui_preference - boolean_cast_setting 'setting_system_font_ui' - end - - def auto_play_gif_preference - boolean_cast_setting 'setting_auto_play_gif' - end - - def display_media_preference - settings['setting_display_media'] - end - - def expand_spoilers_preference - boolean_cast_setting 'setting_expand_spoilers' - end - - def reduce_motion_preference - boolean_cast_setting 'setting_reduce_motion' - end - - def disable_swiping_preference - boolean_cast_setting 'setting_disable_swiping' - end - - def noindex_preference - boolean_cast_setting 'setting_noindex' - end - - def show_application_preference - boolean_cast_setting 'setting_show_application' - end - - def theme_preference - settings['setting_theme'] - end - - def default_language_preference - settings['setting_default_language'] - end - - def aggregate_reblogs_preference - boolean_cast_setting 'setting_aggregate_reblogs' - end - - def advanced_layout_preference - boolean_cast_setting 'setting_advanced_layout' - end - - def use_blurhash_preference - boolean_cast_setting 'setting_use_blurhash' - end - - def use_pending_items_preference - boolean_cast_setting 'setting_use_pending_items' - end - - def trends_preference - boolean_cast_setting 'setting_trends' - end - - def crop_images_preference - boolean_cast_setting 'setting_crop_images' - end - - def always_send_emails_preference - boolean_cast_setting 'setting_always_send_emails' - end - - def boolean_cast_setting(key) - ActiveModel::Type::Boolean.new.cast(settings[key]) - end - - def coerced_settings(key) - coerce_values settings.fetch(key, {}) - end - - def coerce_values(params_hash) - params_hash.transform_values { |x| ActiveModel::Type::Boolean.new.cast(x) } - end - - def change?(key) - !settings[key].nil? - end -end diff --git a/app/lib/user_settings_serializer.rb b/app/lib/user_settings_serializer.rb new file mode 100644 index 0000000000..10d1be04d5 --- /dev/null +++ b/app/lib/user_settings_serializer.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class UserSettingsSerializer + def self.load(value) + json = begin + if value.blank? + {} + else + Oj.load(value, symbol_keys: true) + end + end + + UserSettings.new(json) + end + + def self.dump(value) + Oj.dump(value.as_json) + end +end diff --git a/app/models/concerns/has_user_settings.rb b/app/models/concerns/has_user_settings.rb new file mode 100644 index 0000000000..b3fa1f683b --- /dev/null +++ b/app/models/concerns/has_user_settings.rb @@ -0,0 +1,141 @@ +# frozen_string_literal: true + +module HasUserSettings + extend ActiveSupport::Concern + + included do + serialize :settings, UserSettingsSerializer + end + + def settings_attributes=(attributes) + settings.update(attributes) + end + + def prefers_noindex? + settings['noindex'] + end + + def preferred_posting_language + valid_locale_cascade(settings['default_language'], locale, I18n.locale) + end + + def setting_auto_play_gif + settings['web.auto_play'] + end + + def setting_default_sensitive + settings['default_sensitive'] + end + + def setting_unfollow_modal + settings['web.unfollow_modal'] + end + + def setting_boost_modal + settings['web.reblog_modal'] + end + + def setting_delete_modal + settings['web.delete_modal'] + end + + def setting_reduce_motion + settings['web.reduce_motion'] + end + + def setting_system_font_ui + settings['web.use_system_font'] + end + + def setting_noindex + settings['noindex'] + end + + def setting_theme + settings['theme'] + end + + def setting_display_media + settings['web.display_media'] + end + + def setting_expand_spoilers + settings['web.expand_content_warnings'] + end + + def setting_default_language + settings['default_language'] + end + + def setting_aggregate_reblogs + settings['aggregate_reblogs'] + end + + def setting_show_application + settings['show_application'] + end + + def setting_advanced_layout + settings['web.advanced_layout'] + end + + def setting_use_blurhash + settings['web.use_blurhash'] + end + + def setting_use_pending_items + settings['web.use_pending_items'] + end + + def setting_trends + settings['web.trends'] + end + + def setting_crop_images + settings['web.crop_images'] + end + + def setting_disable_swiping + settings['web.disable_swiping'] + end + + def setting_always_send_emails + settings['always_send_emails'] + end + + def setting_default_privacy + settings['default_privacy'] || (account.locked? ? 'private' : 'public') + end + + def allows_report_emails? + settings['notification_emails.report'] + end + + def allows_pending_account_emails? + settings['notification_emails.pending_account'] + end + + def allows_appeal_emails? + settings['notification_emails.appeal'] + end + + def allows_trends_review_emails? + settings['notification_emails.trends'] + end + + def aggregates_reblogs? + settings['aggregate_reblogs'] + end + + def shows_application? + settings['show_application'] + end + + def show_all_media? + settings['web.display_media'] == 'show_all' + end + + def hide_all_media? + settings['web.display_media'] == 'hide_all' + end +end diff --git a/app/models/user.rb b/app/models/user.rb index d56a9b9ca1..9b225d75f1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -39,10 +39,11 @@ # webauthn_id :string # sign_up_ip :inet # role_id :bigint(8) +# settings :text # class User < ApplicationRecord - self.ignored_columns = %w( + self.ignored_columns += %w( remember_created_at remember_token current_sign_in_ip @@ -51,9 +52,9 @@ class User < ApplicationRecord filtered_languages ) - include Settings::Extend include Redisable include LanguagesHelper + include HasUserSettings # The home and list feeds will be stored in Redis for this amount # of time, and status fan-out to followers will include only people @@ -132,13 +133,6 @@ class User < ApplicationRecord has_many :session_activations, dependent: :destroy - delegate :auto_play_gif, :default_sensitive, :unfollow_modal, :boost_modal, :delete_modal, - :reduce_motion, :system_font_ui, :noindex, :theme, :display_media, - :expand_spoilers, :default_language, :aggregate_reblogs, :show_application, - :advanced_layout, :use_blurhash, :use_pending_items, :trends, :crop_images, - :disable_swiping, :always_send_emails, - to: :settings, prefix: :setting, allow_nil: false - delegate :can?, to: :role attr_reader :invite_code @@ -302,42 +296,6 @@ class User < ApplicationRecord save! end - def prefers_noindex? - setting_noindex - end - - def preferred_posting_language - valid_locale_cascade(settings.default_language, locale, I18n.locale) - end - - def setting_default_privacy - settings.default_privacy || (account.locked? ? 'private' : 'public') - end - - def allows_report_emails? - settings.notification_emails['report'] - end - - def allows_pending_account_emails? - settings.notification_emails['pending_account'] - end - - def allows_appeal_emails? - settings.notification_emails['appeal'] - end - - def allows_trends_review_emails? - settings.notification_emails['trending_tag'] - end - - def aggregates_reblogs? - @aggregates_reblogs ||= settings.aggregate_reblogs - end - - def shows_application? - @shows_application ||= settings.show_application - end - def token_for_app(app) return nil if app.nil? || app.owner != self @@ -417,14 +375,6 @@ class User < ApplicationRecord send_reset_password_instructions end - def show_all_media? - setting_display_media == 'show_all' - end - - def hide_all_media? - setting_display_media == 'hide_all' - end - protected def send_devise_notification(notification, *args, **kwargs) @@ -494,7 +444,8 @@ class User < ApplicationRecord def sanitize_languages return if chosen_languages.nil? - chosen_languages.reject!(&:blank?) + chosen_languages.compact_blank! + self.chosen_languages = nil if chosen_languages.empty? end diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb new file mode 100644 index 0000000000..2c025d6c56 --- /dev/null +++ b/app/models/user_settings.rb @@ -0,0 +1,99 @@ +# frozen_string_literal: true + +class UserSettings + class Error < StandardError; end + class KeyError < Error; end + + include UserSettings::DSL + include UserSettings::Glue + + setting :always_send_emails, default: false + setting :aggregate_reblogs, default: true + setting :theme, default: -> { ::Setting.theme } + setting :noindex, default: -> { ::Setting.noindex } + setting :show_application, default: true + setting :default_language, default: nil + setting :default_sensitive, default: false + setting :default_privacy, default: nil + + namespace :web do + setting :crop_images, default: true + setting :advanced_layout, default: false + setting :trends, default: true + setting :use_blurhash, default: true + setting :use_pending_items, default: false + setting :use_system_font, default: false + setting :disable_swiping, default: false + setting :delete_modal, default: true + setting :reblog_modal, default: false + setting :unfollow_modal, default: true + setting :reduce_motion, default: false + setting :expand_content_warnings, default: false + setting :display_media, default: 'default', in: %w(default show_all hide_all) + setting :auto_play, default: false + end + + namespace :notification_emails do + setting :follow, default: true + setting :reblog, default: false + setting :favourite, default: false + setting :mention, default: true + setting :follow_request, default: true + setting :report, default: true + setting :pending_account, default: true + setting :trends, default: true + setting :appeal, default: true + end + + namespace :interactions do + setting :must_be_follower, default: false + setting :must_be_following, default: false + setting :must_be_following_dm, default: false + end + + def initialize(original_hash) + @original_hash = original_hash || {} + end + + def [](key) + key = key.to_sym + + raise KeyError, "Undefined setting: #{key}" unless self.class.definition_for?(key) + + if @original_hash.key?(key) + @original_hash[key] + else + self.class.definition_for(key).default_value + end + end + + def []=(key, value) + key = key.to_sym + + raise KeyError, "Undefined setting: #{key}" unless self.class.definition_for?(key) + + typecast_value = self.class.definition_for(key).type_cast(value) + + if typecast_value.nil? + @original_hash.delete(key) + else + @original_hash[key] = typecast_value + end + end + + def update(params) + params.each do |k, v| + self[k] = v unless v.nil? + end + end + + keys.each do |key| + define_method(key) do + self[key] + end + end + + def as_json + @original_hash + end +end diff --git a/app/models/user_settings/dsl.rb b/app/models/user_settings/dsl.rb new file mode 100644 index 0000000000..26238bbbe8 --- /dev/null +++ b/app/models/user_settings/dsl.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module UserSettings::DSL + module ClassMethods + def setting(key, options = {}) + @definitions ||= {} + + UserSettings::Setting.new(key, options).tap do |s| + @definitions[s.key] = s + end + end + + def namespace(key, &block) + @definitions ||= {} + + UserSettings::Namespace.new(key).configure(&block).tap do |n| + @definitions.merge!(n.definitions) + end + end + + def keys + @definitions.keys + end + + def definition_for(key) + @definitions[key.to_sym] + end + + def definition_for?(key) + @definitions.key?(key.to_sym) + end + end + + def self.included(base) + base.extend ClassMethods + end +end diff --git a/app/models/user_settings/glue.rb b/app/models/user_settings/glue.rb new file mode 100644 index 0000000000..02066a4110 --- /dev/null +++ b/app/models/user_settings/glue.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module UserSettings::Glue + def to_model + self + end + + def to_key + '' + end + + def persisted? + false + end + + def type_for_attribute(key) + self.class.definition_for(key)&.type + end + + def has_attribute?(key) # rubocop:disable Naming/PredicateName + self.class.definition_for?(key) + end +end diff --git a/app/models/user_settings/namespace.rb b/app/models/user_settings/namespace.rb new file mode 100644 index 0000000000..b8f7e092e8 --- /dev/null +++ b/app/models/user_settings/namespace.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class UserSettings::Namespace + attr_reader :name, :definitions + + def initialize(name) + @name = name.to_sym + @definitions = {} + end + + def configure(&block) + instance_eval(&block) + self + end + + def setting(key, options = {}) + UserSettings::Setting.new(key, options.merge(namespace: name)).tap do |s| + @definitions[s.key] = s + end + end +end diff --git a/app/models/user_settings/setting.rb b/app/models/user_settings/setting.rb new file mode 100644 index 0000000000..c359c593b1 --- /dev/null +++ b/app/models/user_settings/setting.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +class UserSettings::Setting + attr_reader :name, :namespace, :in + + def initialize(name, options = {}) + @name = name.to_sym + @default_value = options[:default] + @namespace = options[:namespace] + @in = options[:in] + end + + def default_value + if @default_value.respond_to?(:call) + @default_value.call + else + @default_value + end + end + + def type + if @default_value.is_a?(TrueClass) || @default_value.is_a?(FalseClass) + ActiveModel::Type::Boolean.new + else + ActiveModel::Type::String.new + end + end + + def type_cast(value) + if type.respond_to?(:cast) + type.cast(value) + else + value + end + end + + def to_a + [key, default_value] + end + + def key + if namespace + "#{namespace}.#{name}".to_sym + else + name + end + end +end diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index 4c7acbcac1..994ca588af 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -3,6 +3,11 @@ class NotifyService < BaseService include Redisable + NON_EMAIL_TYPES = %i( + admin.report + admin.sign_up + ).freeze + def call(recipient, type, activity) @recipient = recipient @activity = activity @@ -36,11 +41,11 @@ class NotifyService < BaseService end def optional_non_follower? - @recipient.user.settings.interactions['must_be_follower'] && !@notification.from_account.following?(@recipient) + @recipient.user.settings['interactions.must_be_follower'] && !@notification.from_account.following?(@recipient) end def optional_non_following? - @recipient.user.settings.interactions['must_be_following'] && !following_sender? + @recipient.user.settings['interactions.must_be_following'] && !following_sender? end def message? @@ -82,7 +87,7 @@ class NotifyService < BaseService def optional_non_following_and_direct? direct_message? && - @recipient.user.settings.interactions['must_be_following_dm'] && + @recipient.user.settings['interactions.must_be_following_dm'] && !following_sender? && !response_to_recipient? end @@ -171,6 +176,6 @@ class NotifyService < BaseService end def send_email_for_notification_type? - @recipient.user.settings.notification_emails[@notification.type.to_s] + NON_EMAIL_TYPES.exclude?(@notification.type) && @recipient.user.settings["notification_emails.#{@notification.type}"] end end diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index bc23df6473..5358310e5b 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -9,57 +9,58 @@ .fields-group.fields-row__column.fields-row__column-6 = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| native_locale_name(locale) }, selected: I18n.locale, hint: false .fields-group.fields-row__column.fields-row__column-6 - = f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false + = f.simple_fields_for :settings, current_user.settings do |ff| + = ff.input :theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false - unless I18n.locale == :en .flash-message.translation-prompt #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')} - %h4= t 'appearance.advanced_web_interface' + = f.simple_fields_for :settings, current_user.settings do |ff| + %h4= t 'appearance.advanced_web_interface' - %p.hint= t 'appearance.advanced_web_interface_hint' + %p.hint= t 'appearance.advanced_web_interface_hint' - .fields-group - = f.input :setting_advanced_layout, as: :boolean, wrapper: :with_label, hint: false + .fields-group + = ff.input :'web.advanced_layout', wrapper: :with_label, hint: false, label: I18n.t('simple_form.labels.defaults.setting_advanced_layout') + %h4= t 'appearance.animations_and_accessibility' - %h4= t 'appearance.animations_and_accessibility' + .fields-group + = ff.input :'web.use_pending_items', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_pending_items'), hint: I18n.t('simple_form.hints.defaults.setting_use_pending_items') - .fields-group - = f.input :setting_use_pending_items, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :'web.auto_play', wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_auto_play_gif') + = ff.input :'web.reduce_motion', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_reduce_motion') + = ff.input :'web.disable_swiping', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_disable_swiping') + = ff.input :'web.use_system_font', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_system_font_ui') - .fields-group - = f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label, recommended: true - = f.input :setting_reduce_motion, as: :boolean, wrapper: :with_label - = f.input :setting_disable_swiping, as: :boolean, wrapper: :with_label - = f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label + %h4= t 'appearance.toot_layout' - %h4= t 'appearance.toot_layout' + .fields-group + = ff.input :'web.crop_images', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_crop_images') - .fields-group - = f.input :setting_crop_images, as: :boolean, wrapper: :with_label + %h4= t 'appearance.discovery' - %h4= t 'appearance.discovery' + .fields-group + = ff.input :'web.trends', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_trends') - .fields-group - = f.input :setting_trends, as: :boolean, wrapper: :with_label + %h4= t 'appearance.confirmation_dialogs' - %h4= t 'appearance.confirmation_dialogs' + .fields-group + = ff.input :'web.unfollow_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_unfollow_modal') + = ff.input :'web.reblog_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_boost_modal') + = ff.input :'web.delete_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_delete_modal') - .fields-group - = f.input :setting_unfollow_modal, as: :boolean, wrapper: :with_label - = f.input :setting_boost_modal, as: :boolean, wrapper: :with_label - = f.input :setting_delete_modal, as: :boolean, wrapper: :with_label + %h4= t 'appearance.sensitive_content' - %h4= t 'appearance.sensitive_content' + .fields-group + = ff.input :'web.display_media', collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label, label: I18n.t('simple_form.labels.defaults.setting_display_media') - .fields-group - = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label + .fields-group + = ff.input :'web.use_blurhash', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'), hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash') - .fields-group - = f.input :setting_use_blurhash, as: :boolean, wrapper: :with_label - - .fields-group - = f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :'web.expand_content_warnings', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_expand_spoilers') .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/settings/preferences/notifications/show.html.haml b/app/views/settings/preferences/notifications/show.html.haml index f00dbadd49..cb1ad0886d 100644 --- a/app/views/settings/preferences/notifications/show.html.haml +++ b/app/views/settings/preferences/notifications/show.html.haml @@ -11,25 +11,25 @@ %p.hint= t 'notifications.email_events_hint' - .fields-group - = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| - = ff.input :follow, as: :boolean, wrapper: :with_label - = ff.input :follow_request, as: :boolean, wrapper: :with_label - = ff.input :reblog, as: :boolean, wrapper: :with_label - = ff.input :favourite, as: :boolean, wrapper: :with_label - = ff.input :mention, as: :boolean, wrapper: :with_label - = ff.input :report, as: :boolean, wrapper: :with_label if current_user.can?(:manage_reports) - = ff.input :appeal, as: :boolean, wrapper: :with_label if current_user.can?(:manage_appeals) - = ff.input :pending_account, as: :boolean, wrapper: :with_label if current_user.can?(:manage_users) - = ff.input :trending_tag, as: :boolean, wrapper: :with_label if current_user.can?(:manage_taxonomies) + = f.simple_fields_for :settings, current_user.settings do |ff| + .fields-group + = ff.input :'notification_emails.follow', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.follow') + = ff.input :'notification_emails.follow_request', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.follow_request') + = ff.input :'notification_emails.reblog', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.reblog') + = ff.input :'notification_emails.favourite', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.favourite') + = ff.input :'notification_emails.mention', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.mention') + = ff.input :'notification_emails.report', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.report') if current_user.can?(:manage_reports) + = ff.input :'notification_emails.appeal', as: :boolean, wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.appeal') if current_user.can?(:manage_appeals) + = ff.input :'notification_emails.pending_account', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.pending_account') if current_user.can?(:manage_users) + = ff.input :'notification_emails.trends', wrapper: :with_label, label: I18n.t('simple_form.labels.notification_emails.trending_tag') if current_user.can?(:manage_taxonomies) - .fields-group - = f.input :setting_always_send_emails, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :always_send_emails, wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_always_send_emails'), hint: I18n.t('simple_form.hints.defaults.setting_always_send_emails') %h4= t 'notifications.other_settings' .fields-group - = f.simple_fields_for :interactions, hash_to_object(current_user.settings.interactions) do |ff| - = ff.input :must_be_follower, as: :boolean, wrapper: :with_label - = ff.input :must_be_following, as: :boolean, wrapper: :with_label - = ff.input :must_be_following_dm, as: :boolean, wrapper: :with_label + = f.simple_fields_for :settings, current_user.settings do |ff| + = ff.input :'interactions.must_be_follower', wrapper: :with_label, label: I18n.t('simple_form.labels.interactions.must_be_follower') + = ff.input :'interactions.must_be_following', wrapper: :with_label, label: I18n.t('simple_form.labels.interactions.must_be_following') + = ff.input :'interactions.must_be_following_dm', wrapper: :with_label, label: I18n.t('simple_form.labels.interactions.must_be_following_dm') diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml index 44f4af2eba..6590ec7c21 100644 --- a/app/views/settings/preferences/other/show.html.haml +++ b/app/views/settings/preferences/other/show.html.haml @@ -7,26 +7,27 @@ = simple_form_for current_user, url: settings_preferences_other_path, html: { method: :put, id: 'edit_preferences' } do |f| = render 'shared/error_messages', object: current_user - .fields-group - = f.input :setting_noindex, as: :boolean, wrapper: :with_label + = f.simple_fields_for :settings, current_user.settings do |ff| + .fields-group + = ff.input :noindex, wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_noindex'), hint: I18n.t('simple_form.hints.defaults.setting_noindex') - .fields-group - = f.input :setting_aggregate_reblogs, as: :boolean, wrapper: :with_label, recommended: true + .fields-group + = ff.input :aggregate_reblogs, wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_aggregate_reblogs'), hint: I18n.t('simple_form.hints.defaults.setting_aggregate_reblogs') - %h4= t 'preferences.posting_defaults' + %h4= t 'preferences.posting_defaults' - .fields-row - .fields-group.fields-row__column.fields-row__column-6 - = f.input :setting_default_privacy, collection: Status.selectable_visibilities, wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') }, required: false, hint: false + .fields-row + .fields-group.fields-row__column.fields-row__column-6 + = ff.input :default_privacy, collection: Status.selectable_visibilities, wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') }, required: false, hint: false, label: I18n.t('simple_form.labels.defaults.setting_default_privacy') - .fields-group.fields-row__column.fields-row__column-6 - = f.input :setting_default_language, collection: [nil] + filterable_languages, wrapper: :with_label, label_method: lambda { |locale| locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) }, required: false, include_blank: false, hint: false + .fields-group.fields-row__column.fields-row__column-6 + = ff.input :default_language, collection: [nil] + filterable_languages, wrapper: :with_label, label_method: lambda { |locale| locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) }, required: false, include_blank: false, hint: false, label: I18n.t('simple_form.labels.defaults.setting_default_language') - .fields-group - = f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :default_sensitive, wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_default_sensitive'), hint: I18n.t('simple_form.hints.defaults.setting_default_sensitive') - .fields-group - = f.input :setting_show_application, as: :boolean, wrapper: :with_label, recommended: true + .fields-group + = ff.input :show_application, wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_show_application'), hint: I18n.t('simple_form.hints.defaults.setting_show_application') %h4= t 'preferences.public_timelines' diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index a361cb0ec3..95f0b5788b 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -26,6 +26,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'URL' inflect.acronym 'ASCII' inflect.acronym 'DeepL' + inflect.acronym 'DSL' inflect.singular 'data', 'data' end diff --git a/config/settings.yml b/config/settings.yml index f0b09dd5c8..4ac521a4b0 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -12,48 +12,14 @@ defaults: &defaults registrations_mode: 'open' profile_directory: true closed_registrations_message: '' - open_deletion: true - min_invite_role: 'admin' timeline_preview: true show_staff_badge: true - default_sensitive: false - unfollow_modal: false - boost_modal: false - delete_modal: true - auto_play_gif: false - display_media: 'default' - expand_spoilers: false preview_sensitive_media: false - reduce_motion: false - disable_swiping: false - show_application: true - system_font_ui: false noindex: false theme: 'default' - aggregate_reblogs: true - advanced_layout: false - use_blurhash: true - use_pending_items: false trends: true trends_as_landing_page: true trendable_by_default: false - crop_images: true - notification_emails: - follow: true - reblog: false - favourite: false - mention: true - follow_request: true - digest: true - report: true - pending_account: true - trending_tag: true - appeal: true - always_send_emails: false - interactions: - must_be_follower: false - must_be_following: false - must_be_following_dm: false reserved_usernames: - admin - support diff --git a/db/migrate/20230215074327_add_settings_to_users.rb b/db/migrate/20230215074327_add_settings_to_users.rb new file mode 100644 index 0000000000..ff5308f423 --- /dev/null +++ b/db/migrate/20230215074327_add_settings_to_users.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddSettingsToUsers < ActiveRecord::Migration[6.1] + def change + add_column :users, :settings, :text + end +end diff --git a/db/migrate/20230215074423_move_user_settings.rb b/db/migrate/20230215074423_move_user_settings.rb new file mode 100644 index 0000000000..351a8b61df --- /dev/null +++ b/db/migrate/20230215074423_move_user_settings.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +class MoveUserSettings < ActiveRecord::Migration[6.1] + class User < ApplicationRecord; end + + MAPPING = { + default_privacy: 'default_privacy', + default_sensitive: 'web.default_sensitive', + default_language: 'default_language', + noindex: 'noindex', + theme: 'theme', + trends: 'web.trends', + unfollow_modal: 'web.unfollow_modal', + boost_modal: 'web.reblog_modal', + delete_modal: 'web.delete_modal', + auto_play_gif: 'web.auto_play', + display_media: 'web.display_media', + expand_spoilers: 'web.expand_content_warnings', + reduce_motion: 'web.reduce_motion', + disable_swiping: 'web.disable_swiping', + show_application: 'show_application', + system_font_ui: 'web.use_system_font', + aggregate_reblogs: 'aggregate_reblogs', + advanced_layout: 'web.advanced_layout', + use_blurhash: 'web.use_blurhash', + use_pending_items: 'web.use_pending_items', + crop_images: 'web.crop_images', + notification_emails: { + follow: 'notification_emails.follow', + reblog: 'notification_emails.reblog', + favourite: 'notification_emails.favourite', + mention: 'notification_emails.mention', + follow_request: 'notification_emails.follow_request', + report: 'notification_emails.report', + pending_account: 'notification_emails.pending_account', + trending_tag: 'notification_emails.trends', + appeal: 'notification_emails.appeal', + }.freeze, + always_send_emails: 'always_send_emails', + interactions: { + must_be_follower: 'interactions.must_be_follower', + must_be_following: 'interactions.must_be_following', + must_be_following_dm: 'interactions.must_be_following_dm', + }.freeze, + }.freeze + + class LegacySetting < ApplicationRecord + self.table_name = 'settings' + + def var + self[:var]&.to_sym + end + + def value + YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess]) if self[:value].present? + end + end + + def up + User.find_each do |user| + previous_settings = LegacySetting.where(thing_type: 'User', thing_id: user.id).index_by(&:var) + + user_settings = {} + + MAPPING.each do |legacy_key, new_key| + value = previous_settings[legacy_key]&.value + + next if value.blank? + + if value.is_a?(Hash) + value.each do |nested_key, nested_value| + user_settings[MAPPING[legacy_key][nested_key.to_sym]] = nested_value + end + else + user_settings[new_key] = value + end + end + + user.update_column('settings', Oj.dump(user_settings)) # rubocop:disable Rails/SkipsModelValidations + end + end + + def down; end +end diff --git a/db/schema.rb b/db/schema.rb index 704cef1228..620bed2bc9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_12_06_114142) do +ActiveRecord::Schema.define(version: 2023_02_15_074423) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -1060,6 +1060,7 @@ ActiveRecord::Schema.define(version: 2022_12_06_114142) do t.inet "sign_up_ip" t.boolean "skip_sign_in_token" t.bigint "role_id" + t.text "settings" t.index ["account_id"], name: "index_users_on_account_id" t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true t.index ["created_by_application_id"], name: "index_users_on_created_by_application_id", where: "(created_by_application_id IS NOT NULL)" diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake index 51a6ee0d75..35073b78bb 100644 --- a/lib/tasks/tests.rake +++ b/lib/tasks/tests.rake @@ -54,7 +54,7 @@ namespace :tests do exit(1) end - unless User.find(1).settings.notification_emails['favourite'] == true && User.find(1).settings.notification_emails['mention'] == false + unless User.find(1).settings['notification_emails.favourite'] == true && User.find(1).settings['notification_emails.mention'] == false puts 'User settings not kept as expected' exit(1) end diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb index 57fe0aee68..b5d5c37a9c 100644 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -46,6 +46,7 @@ describe Api::V1::Accounts::CredentialsController do end it 'updates account info' do + user.reload user.account.reload expect(user.account.display_name).to eq("Alice Isn't Dead") diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 35c7326cb1..bc6c6c0c5e 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -88,21 +88,19 @@ describe ApplicationController, type: :controller do it 'returns instances\'s default theme when user didn\'t set theme' do current_user = Fabricate(:user) + current_user.settings.update(theme: 'contrast', noindex: false) + current_user.save sign_in current_user - allow(Setting).to receive(:[]).with('theme').and_return 'contrast' - allow(Setting).to receive(:[]).with('noindex').and_return false - expect(controller.view_context.current_theme).to eq 'contrast' end it 'returns user\'s theme when it is set' do current_user = Fabricate(:user) - current_user.settings['theme'] = 'mastodon-light' + current_user.settings.update(theme: 'mastodon-light') + current_user.save sign_in current_user - allow(Setting).to receive(:[]).with('theme').and_return 'contrast' - expect(controller.view_context.current_theme).to eq 'mastodon-light' end end diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb index 66fb8c5eb9..29b7b6aec5 100644 --- a/spec/controllers/settings/preferences/notifications_controller_spec.rb +++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb @@ -20,20 +20,22 @@ describe Settings::Preferences::NotificationsController do describe 'PUT #update' do it 'updates notifications settings' do - user.settings['notification_emails'] = user.settings['notification_emails'].merge('follow' => false) - user.settings['interactions'] = user.settings['interactions'].merge('must_be_follower' => true) + user.settings.update('notification_emails.follow': false, 'interactions.must_be_follower': true) + user.save put :update, params: { user: { - notification_emails: { follow: '1' }, - interactions: { must_be_follower: '0' }, + settings_attributes: { + 'notification_emails.follow': '1', + 'interactions.must_be_follower': '0', + }, }, } expect(response).to redirect_to(settings_preferences_notifications_path) user.reload - expect(user.settings['notification_emails']['follow']).to be true - expect(user.settings['interactions']['must_be_follower']).to be false + expect(user.settings['notification_emails.follow']).to be true + expect(user.settings['interactions.must_be_follower']).to be false end end end diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb index 63eeefaf0f..249d1b5b59 100644 --- a/spec/controllers/settings/preferences/other_controller_spec.rb +++ b/spec/controllers/settings/preferences/other_controller_spec.rb @@ -29,20 +29,22 @@ describe Settings::Preferences::OtherController do end it 'updates user settings' do - user.settings['boost_modal'] = false - user.settings['delete_modal'] = true + user.settings.update('web.reblog_modal': false, 'web.delete_modal': true) + user.save put :update, params: { user: { - setting_boost_modal: '1', - setting_delete_modal: '0', + settings_attributes: { + 'web.reblog_modal': '1', + 'web.delete_modal': '0', + }, }, } expect(response).to redirect_to(settings_preferences_other_path) user.reload - expect(user.settings['boost_modal']).to be true - expect(user.settings['delete_modal']).to be false + expect(user.settings['web.reblog_modal']).to be true + expect(user.settings['web.delete_modal']).to be false end end end diff --git a/spec/lib/settings/extend_spec.rb b/spec/lib/settings/extend_spec.rb deleted file mode 100644 index ea623137b4..0000000000 --- a/spec/lib/settings/extend_spec.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Settings::Extend do - class User - include Settings::Extend - end - - describe '#settings' do - it 'sets @settings as an instance of Settings::ScopedSettings' do - user = Fabricate(:user) - expect(user.settings).to be_a Settings::ScopedSettings - end - end -end diff --git a/spec/lib/settings/scoped_settings_spec.rb b/spec/lib/settings/scoped_settings_spec.rb deleted file mode 100644 index 7566685b4a..0000000000 --- a/spec/lib/settings/scoped_settings_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Settings::ScopedSettings do - let(:object) { Fabricate(:user) } - let(:scoped_setting) { described_class.new(object) } - let(:val) { 'whatever' } - let(:methods) { %i(auto_play_gif default_sensitive unfollow_modal boost_modal delete_modal reduce_motion system_font_ui noindex theme) } - - describe '.initialize' do - it 'sets @object' do - scoped_setting = described_class.new(object) - expect(scoped_setting.instance_variable_get(:@object)).to be object - end - end - - describe '#method_missing' do - it 'sets scoped_setting.method_name = val' do - methods.each do |key| - scoped_setting.send("#{key}=", val) - expect(scoped_setting.send(key)).to eq val - end - end - end - - describe '#[]= and #[]' do - it 'sets [key] = val' do - methods.each do |key| - scoped_setting[key] = val - expect(scoped_setting[key]).to eq val - end - end - end -end diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb deleted file mode 100644 index 3b9b7ee2b2..0000000000 --- a/spec/lib/user_settings_decorator_spec.rb +++ /dev/null @@ -1,84 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe UserSettingsDecorator do - describe 'update' do - let(:user) { Fabricate(:user) } - let(:settings) { described_class.new(user) } - - it 'updates the user settings value for email notifications' do - values = { 'notification_emails' => { 'follow' => '1' } } - - settings.update(values) - expect(user.settings['notification_emails']['follow']).to be true - end - - it 'updates the user settings value for interactions' do - values = { 'interactions' => { 'must_be_follower' => '0' } } - - settings.update(values) - expect(user.settings['interactions']['must_be_follower']).to be false - end - - it 'updates the user settings value for privacy' do - values = { 'setting_default_privacy' => 'public' } - - settings.update(values) - expect(user.settings['default_privacy']).to eq 'public' - end - - it 'updates the user settings value for sensitive' do - values = { 'setting_default_sensitive' => '1' } - - settings.update(values) - expect(user.settings['default_sensitive']).to be true - end - - it 'updates the user settings value for unfollow modal' do - values = { 'setting_unfollow_modal' => '0' } - - settings.update(values) - expect(user.settings['unfollow_modal']).to be false - end - - it 'updates the user settings value for boost modal' do - values = { 'setting_boost_modal' => '1' } - - settings.update(values) - expect(user.settings['boost_modal']).to be true - end - - it 'updates the user settings value for delete toot modal' do - values = { 'setting_delete_modal' => '0' } - - settings.update(values) - expect(user.settings['delete_modal']).to be false - end - - it 'updates the user settings value for gif auto play' do - values = { 'setting_auto_play_gif' => '0' } - - settings.update(values) - expect(user.settings['auto_play_gif']).to be false - end - - it 'updates the user settings value for system font in UI' do - values = { 'setting_system_font_ui' => '0' } - - settings.update(values) - expect(user.settings['system_font_ui']).to be false - end - - it 'decoerces setting values before applying' do - values = { - 'setting_delete_modal' => 'false', - 'setting_boost_modal' => 'true', - } - - settings.update(values) - expect(user.settings['delete_modal']).to be false - expect(user.settings['boost_modal']).to be true - end - end -end diff --git a/spec/models/user_settings/namespace_spec.rb b/spec/models/user_settings/namespace_spec.rb new file mode 100644 index 0000000000..ae2fa7b482 --- /dev/null +++ b/spec/models/user_settings/namespace_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe UserSettings::Namespace do + subject { described_class.new(name) } + + let(:name) { :foo } + + describe '#setting' do + before do + subject.setting :bar, default: 'baz' + end + + it 'adds setting to definitions' do + expect(subject.definitions[:'foo.bar']).to have_attributes(name: :bar, namespace: :foo, default_value: 'baz') + end + end + + describe '#definitions' do + it 'returns a hash' do + expect(subject.definitions).to be_a Hash + end + end +end diff --git a/spec/models/user_settings/setting_spec.rb b/spec/models/user_settings/setting_spec.rb new file mode 100644 index 0000000000..6e4ec67893 --- /dev/null +++ b/spec/models/user_settings/setting_spec.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe UserSettings::Setting do + subject { described_class.new(name, options) } + + let(:name) { :foo } + let(:options) { { default: default, namespace: namespace } } + let(:default) { false } + let(:namespace) { nil } + + describe '#default_value' do + context 'when default value is a primitive value' do + it 'returns default value' do + expect(subject.default_value).to eq default + end + end + + context 'when default value is a proc' do + let(:default) { -> { 'bar' } } + + it 'returns value from proc' do + expect(subject.default_value).to eq 'bar' + end + end + end + + describe '#type' do + it 'returns a type' do + expect(subject.type).to be_a ActiveModel::Type::Value + end + end + + describe '#type_cast' do + context 'when default value is a boolean' do + let(:default) { false } + + it 'returns boolean' do + expect(subject.type_cast('1')).to be true + end + end + + context 'when default value is a string' do + let(:default) { '' } + + it 'returns string' do + expect(subject.type_cast(1)).to eq '1' + end + end + end + + describe '#to_a' do + it 'returns an array' do + expect(subject.to_a).to eq [name, default] + end + end + + describe '#key' do + context 'when there is no namespace' do + it 'returnsn a symbol' do + expect(subject.key).to eq :foo + end + end + + context 'when there is a namespace' do + let(:namespace) { :bar } + + it 'returns a symbol' do + expect(subject.key).to eq :'bar.foo' + end + end + end +end diff --git a/spec/models/user_settings_spec.rb b/spec/models/user_settings_spec.rb new file mode 100644 index 0000000000..f0e4272fd9 --- /dev/null +++ b/spec/models/user_settings_spec.rb @@ -0,0 +1,110 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe UserSettings do + subject { described_class.new(json) } + + let(:json) { {} } + + describe '#[]' do + context 'when setting is not set' do + it 'returns default value' do + expect(subject[:always_send_emails]).to be false + end + end + + context 'when setting is set' do + let(:json) { { default_language: 'fr' } } + + it 'returns value' do + expect(subject[:default_language]).to eq 'fr' + end + end + + context 'when setting was not defined' do + it 'raises error' do + expect { subject[:foo] }.to raise_error UserSettings::KeyError + end + end + end + + describe '#[]=' do + context 'when value matches type' do + before do + subject[:always_send_emails] = true + end + + it 'updates value' do + expect(subject[:always_send_emails]).to be true + end + end + + context 'when value needs to be type-cast' do + before do + subject[:always_send_emails] = '1' + end + + it 'updates value with a type-cast' do + expect(subject[:always_send_emails]).to be true + end + end + end + + describe '#update' do + before do + subject.update(always_send_emails: true, default_language: 'fr', default_privacy: nil) + end + + it 'updates values' do + expect(subject[:always_send_emails]).to be true + expect(subject[:default_language]).to eq 'fr' + end + + it 'does not set values that are nil' do + expect(subject.as_json).to_not include(default_privacy: nil) + end + end + + describe '#as_json' do + let(:json) { { default_language: 'fr' } } + + it 'returns hash' do + expect(subject.as_json).to eq json + end + end + + describe '.keys' do + it 'returns an array' do + expect(described_class.keys).to be_a Array + end + end + + describe '.definition_for' do + context 'when key is defined' do + it 'returns a setting' do + expect(described_class.definition_for(:always_send_emails)).to be_a UserSettings::Setting + end + end + + context 'when key is not defined' do + it 'returns nil' do + expect(described_class.definition_for(:foo)).to be_nil + end + end + end + + describe '.definition_for?' do + context 'when key is defined' do + it 'returns true' do + expect(described_class.definition_for?(:always_send_emails)).to be true + end + end + + context 'when key is not defined' do + it 'returns false' do + expect(described_class.definition_for?(:foo)).to be false + end + end + end +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 3e7b59f170..ab883927a5 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -313,9 +313,9 @@ RSpec.describe User, type: :model do end describe 'settings' do - it 'is instance of Settings::ScopedSettings' do + it 'is instance of UserSettings' do user = Fabricate(:user) - expect(user.settings).to be_a Settings::ScopedSettings + expect(user.settings).to be_a UserSettings end end @@ -379,16 +379,6 @@ RSpec.describe User, type: :model do end end - it_behaves_like 'Settings-extended' do - def create! - User.create!(account: Fabricate(:account, user: nil), email: 'foo@mastodon.space', password: 'abcd1234', agreement: true) - end - - def fabricate - Fabricate(:user) - end - end - describe 'token_for_app' do let(:user) { Fabricate(:user) } let(:app) { Fabricate(:application, owner: user) } diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb index c58cebbfb8..616a7aa204 100644 --- a/spec/services/notify_service_spec.rb +++ b/spec/services/notify_service_spec.rb @@ -54,7 +54,8 @@ RSpec.describe NotifyService, type: :service do let(:type) { :mention } before do - user.settings.interactions = user.settings.interactions.merge('must_be_following_dm' => enabled) + user.settings.update('interactions.must_be_following_dm': enabled) + user.save end context 'if recipient is supposed to be following sender' do @@ -155,8 +156,8 @@ RSpec.describe NotifyService, type: :service do before do ActionMailer::Base.deliveries.clear - notification_emails = user.settings.notification_emails - user.settings.notification_emails = notification_emails.merge('follow' => enabled) + user.settings.update('notification_emails.follow': enabled) + user.save end context 'when email notification is enabled' do diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index 9d81bd9714..452400f722 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -96,7 +96,8 @@ RSpec.describe ReportService, type: :service do before do ActionMailer::Base.deliveries.clear - source_account.user.settings.notification_emails['report'] = true + source_account.user.settings['notification_emails.report'] = true + source_account.user.save end it 'does not send an e-mail' do From 68a192e7186733885b1d70160170c4772fab7242 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 30 Mar 2023 15:16:20 +0200 Subject: [PATCH 0783/1220] Change "direct message" nomenclature to "private mention" in web UI (#24248) --- app/javascript/mastodon/components/status.jsx | 7 +++ .../mastodon/components/status_action_bar.jsx | 2 +- .../features/account/components/header.jsx | 2 +- .../features/direct_timeline/index.jsx | 4 +- .../features/getting_started/index.jsx | 2 +- .../features/status/components/action_bar.jsx | 2 +- .../status/components/detailed_status.jsx | 10 ++++- .../mastodon/features/status/index.jsx | 2 +- .../ui/components/navigation_panel.jsx | 2 +- app/javascript/mastodon/locales/af.json | 1 + app/javascript/mastodon/locales/an.json | 1 + app/javascript/mastodon/locales/ar.json | 1 + app/javascript/mastodon/locales/ast.json | 1 + app/javascript/mastodon/locales/be.json | 1 + app/javascript/mastodon/locales/bg.json | 1 + app/javascript/mastodon/locales/bn.json | 1 + app/javascript/mastodon/locales/br.json | 1 + app/javascript/mastodon/locales/bs.json | 1 + app/javascript/mastodon/locales/ca.json | 1 + app/javascript/mastodon/locales/ckb.json | 1 + app/javascript/mastodon/locales/co.json | 1 + app/javascript/mastodon/locales/cs.json | 1 + app/javascript/mastodon/locales/csb.json | 1 + app/javascript/mastodon/locales/cy.json | 1 + app/javascript/mastodon/locales/da.json | 1 + app/javascript/mastodon/locales/de.json | 1 + .../mastodon/locales/defaultMessages.json | 20 +++++---- app/javascript/mastodon/locales/el.json | 1 + app/javascript/mastodon/locales/en-GB.json | 1 + app/javascript/mastodon/locales/en.json | 13 +++--- app/javascript/mastodon/locales/eo.json | 1 + app/javascript/mastodon/locales/es-AR.json | 1 + app/javascript/mastodon/locales/es-MX.json | 1 + app/javascript/mastodon/locales/es.json | 1 + app/javascript/mastodon/locales/et.json | 1 + app/javascript/mastodon/locales/eu.json | 1 + app/javascript/mastodon/locales/fa.json | 1 + app/javascript/mastodon/locales/fi.json | 1 + app/javascript/mastodon/locales/fo.json | 1 + app/javascript/mastodon/locales/fr-QC.json | 1 + app/javascript/mastodon/locales/fr.json | 1 + app/javascript/mastodon/locales/fy.json | 1 + app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/gd.json | 1 + app/javascript/mastodon/locales/gl.json | 1 + app/javascript/mastodon/locales/he.json | 1 + app/javascript/mastodon/locales/hi.json | 1 + app/javascript/mastodon/locales/hr.json | 1 + app/javascript/mastodon/locales/hu.json | 1 + app/javascript/mastodon/locales/hy.json | 1 + app/javascript/mastodon/locales/id.json | 1 + app/javascript/mastodon/locales/ig.json | 1 + app/javascript/mastodon/locales/io.json | 1 + app/javascript/mastodon/locales/is.json | 1 + app/javascript/mastodon/locales/it.json | 1 + app/javascript/mastodon/locales/ja.json | 1 + app/javascript/mastodon/locales/ka.json | 1 + app/javascript/mastodon/locales/kab.json | 1 + app/javascript/mastodon/locales/kk.json | 1 + app/javascript/mastodon/locales/kn.json | 1 + app/javascript/mastodon/locales/ko.json | 1 + app/javascript/mastodon/locales/ku.json | 1 + app/javascript/mastodon/locales/kw.json | 1 + app/javascript/mastodon/locales/la.json | 1 + app/javascript/mastodon/locales/lt.json | 1 + app/javascript/mastodon/locales/lv.json | 1 + app/javascript/mastodon/locales/mk.json | 1 + app/javascript/mastodon/locales/ml.json | 1 + app/javascript/mastodon/locales/mr.json | 1 + app/javascript/mastodon/locales/ms.json | 1 + app/javascript/mastodon/locales/my.json | 1 + app/javascript/mastodon/locales/nl.json | 1 + app/javascript/mastodon/locales/nn.json | 1 + app/javascript/mastodon/locales/no.json | 1 + app/javascript/mastodon/locales/oc.json | 1 + app/javascript/mastodon/locales/pa.json | 1 + app/javascript/mastodon/locales/pl.json | 1 + app/javascript/mastodon/locales/pt-BR.json | 1 + app/javascript/mastodon/locales/pt-PT.json | 1 + app/javascript/mastodon/locales/ro.json | 1 + app/javascript/mastodon/locales/ru.json | 1 + app/javascript/mastodon/locales/sa.json | 1 + app/javascript/mastodon/locales/sc.json | 1 + app/javascript/mastodon/locales/sco.json | 1 + app/javascript/mastodon/locales/si.json | 1 + app/javascript/mastodon/locales/sk.json | 1 + app/javascript/mastodon/locales/sl.json | 1 + app/javascript/mastodon/locales/sq.json | 1 + app/javascript/mastodon/locales/sr-Latn.json | 1 + app/javascript/mastodon/locales/sr.json | 1 + app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/szl.json | 1 + app/javascript/mastodon/locales/ta.json | 1 + app/javascript/mastodon/locales/tai.json | 1 + app/javascript/mastodon/locales/te.json | 1 + app/javascript/mastodon/locales/th.json | 1 + app/javascript/mastodon/locales/tr.json | 1 + app/javascript/mastodon/locales/tt.json | 1 + app/javascript/mastodon/locales/ug.json | 1 + app/javascript/mastodon/locales/uk.json | 1 + app/javascript/mastodon/locales/ur.json | 1 + app/javascript/mastodon/locales/uz.json | 1 + app/javascript/mastodon/locales/vi.json | 1 + app/javascript/mastodon/locales/zgh.json | 1 + app/javascript/mastodon/locales/zh-CN.json | 1 + app/javascript/mastodon/locales/zh-HK.json | 1 + app/javascript/mastodon/locales/zh-TW.json | 1 + .../styles/mastodon-light/diff.scss | 10 ++++- .../styles/mastodon/components.scss | 45 ++++++++++++++++++- 109 files changed, 191 insertions(+), 26 deletions(-) diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 2d200a55b0..281e698743 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -386,6 +386,13 @@ class Status extends ImmutablePureComponent { account = status.get('account'); status = status.get('reblog'); + } else if (status.get('visibility') === 'direct') { + prepend = ( +
    +
    + +
    + ); } else if (showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id'])) { const display_name_html = { __html: status.getIn(['account', 'display_name_html']) }; diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index 08e37e0892..7b4031b68e 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -14,7 +14,7 @@ const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' }, edit: { id: 'status.edit', defaultMessage: 'Edit' }, - direct: { id: 'status.direct', defaultMessage: 'Direct message @{name}' }, + direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' }, mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' }, mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' }, block: { id: 'account.block', defaultMessage: 'Block @{name}' }, diff --git a/app/javascript/mastodon/features/account/components/header.jsx b/app/javascript/mastodon/features/account/components/header.jsx index be6b178969..72eb7e6b65 100644 --- a/app/javascript/mastodon/features/account/components/header.jsx +++ b/app/javascript/mastodon/features/account/components/header.jsx @@ -28,7 +28,7 @@ const messages = defineMessages({ linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' }, account_locked: { id: 'account.locked_info', defaultMessage: 'This account privacy status is set to locked. The owner manually reviews who can follow them.' }, mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' }, - direct: { id: 'account.direct', defaultMessage: 'Direct message @{name}' }, + direct: { id: 'account.direct', defaultMessage: 'Privately mention @{name}' }, unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }, block: { id: 'account.block', defaultMessage: 'Block @{name}' }, mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' }, diff --git a/app/javascript/mastodon/features/direct_timeline/index.jsx b/app/javascript/mastodon/features/direct_timeline/index.jsx index e2667d8e94..5d4a7c49a5 100644 --- a/app/javascript/mastodon/features/direct_timeline/index.jsx +++ b/app/javascript/mastodon/features/direct_timeline/index.jsx @@ -11,7 +11,7 @@ import ColumnHeader from 'mastodon/components/column_header'; import ConversationsListContainer from './containers/conversations_list_container'; const messages = defineMessages({ - title: { id: 'column.direct', defaultMessage: 'Direct messages' }, + title: { id: 'column.direct', defaultMessage: 'Private mentions' }, }); class DirectTimeline extends React.PureComponent { @@ -91,7 +91,7 @@ class DirectTimeline extends React.PureComponent { timelineId='direct' onLoadMore={this.handleLoadMore} prepend={
    } - emptyMessage={} + emptyMessage={} /> diff --git a/app/javascript/mastodon/features/getting_started/index.jsx b/app/javascript/mastodon/features/getting_started/index.jsx index ee8a009eea..29659acc73 100644 --- a/app/javascript/mastodon/features/getting_started/index.jsx +++ b/app/javascript/mastodon/features/getting_started/index.jsx @@ -23,7 +23,7 @@ const messages = defineMessages({ settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' }, community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' }, explore: { id: 'navigation_bar.explore', defaultMessage: 'Explore' }, - direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' }, + direct: { id: 'navigation_bar.direct', defaultMessage: 'Private mentions' }, bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' }, diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index 5cbe4984cf..0c74c4cc4d 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -13,7 +13,7 @@ const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' }, edit: { id: 'status.edit', defaultMessage: 'Edit' }, - direct: { id: 'status.direct', defaultMessage: 'Direct message @{name}' }, + direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' }, mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' }, reply: { id: 'status.reply', defaultMessage: 'Reply' }, reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, diff --git a/app/javascript/mastodon/features/status/components/detailed_status.jsx b/app/javascript/mastodon/features/status/components/detailed_status.jsx index 8a2194450c..e4e5720268 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.jsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.jsx @@ -6,7 +6,7 @@ import DisplayName from '../../../components/display_name'; import StatusContent from '../../../components/status_content'; import MediaGallery from '../../../components/media_gallery'; import { Link } from 'react-router-dom'; -import { injectIntl, defineMessages, FormattedDate } from 'react-intl'; +import { injectIntl, defineMessages, FormattedDate, FormattedMessage } from 'react-intl'; import Card from './card'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Video from '../../video'; @@ -262,7 +262,13 @@ class DetailedStatus extends ImmutablePureComponent { return (
    -
    +
    + {status.get('visibility') === 'direct' && ( +
    +
    + +
    + )}
    diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index 358ad14c46..1d7cb685f2 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -630,7 +630,7 @@ class Status extends ImmutablePureComponent { {ancestors} -
    +
    ") no-repeat right 8px center / auto 16px; } + +.status__wrapper-direct { + background-color: rgba($ui-highlight-color, 0.1); + + &:focus { + background-color: rgba($ui-highlight-color, 0.15); + } +} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index b9303f2ef5..6d20be5419 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1244,7 +1244,7 @@ body > [data-popper-placement] { .status__prepend { padding: 16px; padding-bottom: 0; - display: flex; + display: inline-flex; gap: 10px; font-size: 15px; line-height: 22px; @@ -1262,6 +1262,18 @@ body > [data-popper-placement] { } } +.status__wrapper-direct { + background: mix($ui-base-color, $ui-highlight-color, 95%); + + &:focus { + background: mix(lighten($ui-base-color, 4%), $ui-highlight-color, 95%); + } + + .status__prepend { + color: $highlight-text-color; + } +} + .status__action-bar { display: flex; justify-content: space-between; @@ -1315,6 +1327,11 @@ body > [data-popper-placement] { .audio-player { margin-top: 16px; } + + .status__prepend { + padding: 0; + margin-bottom: 16px; + } } .detailed-status__meta { @@ -1333,6 +1350,32 @@ body > [data-popper-placement] { padding: 10px 0; } +.detailed-status__wrapper-direct { + .detailed-status, + .detailed-status__action-bar { + background: mix($ui-base-color, $ui-highlight-color, 95%); + } + + &:focus { + .detailed-status, + .detailed-status__action-bar { + background: mix(lighten($ui-base-color, 4%), $ui-highlight-color, 95%); + } + } + + .detailed-status__action-bar { + border-top-color: mix( + lighten($ui-base-color, 8%), + $ui-highlight-color, + 95% + ); + } + + .status__prepend { + color: $highlight-text-color; + } +} + .detailed-status__link { color: inherit; text-decoration: none; From b4f38edf74e376f6006def9bf9fc22db40586264 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 31 Mar 2023 07:33:17 +0200 Subject: [PATCH 0784/1220] Wrong type for user setting when default is defined by lambda (#24321) --- app/models/user_settings/setting.rb | 3 ++- spec/models/user_settings/setting_spec.rb | 32 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/app/models/user_settings/setting.rb b/app/models/user_settings/setting.rb index c359c593b1..5f5504254a 100644 --- a/app/models/user_settings/setting.rb +++ b/app/models/user_settings/setting.rb @@ -19,7 +19,8 @@ class UserSettings::Setting end def type - if @default_value.is_a?(TrueClass) || @default_value.is_a?(FalseClass) + case default_value + when TrueClass, FalseClass ActiveModel::Type::Boolean.new else ActiveModel::Type::String.new diff --git a/spec/models/user_settings/setting_spec.rb b/spec/models/user_settings/setting_spec.rb index 6e4ec67893..9884ae4f89 100644 --- a/spec/models/user_settings/setting_spec.rb +++ b/spec/models/user_settings/setting_spec.rb @@ -30,6 +30,38 @@ RSpec.describe UserSettings::Setting do it 'returns a type' do expect(subject.type).to be_a ActiveModel::Type::Value end + + context 'when default value is a boolean' do + let(:default) { false } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::Boolean + end + end + + context 'when default value is a string' do + let(:default) { '' } + + it 'returns string' do + expect(subject.type).to be_a ActiveModel::Type::String + end + end + + context 'when default value is a lambda returning a boolean' do + let(:default) { -> { false } } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::Boolean + end + end + + context 'when default value is a lambda returning a string' do + let(:default) { -> { '' } } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::String + end + end end describe '#type_cast' do From 83fc97285b97ceaebb1dd878fd76883ad13dcfd0 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 31 Mar 2023 03:33:25 -0400 Subject: [PATCH 0785/1220] Enable Rubocop Metrics/BlockLength with Excludes (#24260) --- .rubocop.yml | 26 +++++- .rubocop_todo.yml | 213 ---------------------------------------------- 2 files changed, 25 insertions(+), 214 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index b5598b65af..dadb2075e5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -50,10 +50,34 @@ Metrics/AbcSize: - 'lib/**/*cli*.rb' - db/*migrate/**/* +# Reason: Some functions cannot be broken up, but others may be refactor candidates +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocklength Metrics/BlockLength: - CountAsOne: [array, heredoc] + CountAsOne: ['array', 'hash', 'heredoc', 'method_call'] Exclude: - 'lib/mastodon/*_cli.rb' + - 'lib/tasks/*.rake' + - 'app/models/concerns/account_associations.rb' + - 'app/models/concerns/account_interactions.rb' + - 'app/models/concerns/ldap_authenticable.rb' + - 'app/models/concerns/omniauthable.rb' + - 'app/models/concerns/pam_authenticable.rb' + - 'app/models/concerns/remotable.rb' + - 'app/services/suspend_account_service.rb' + - 'app/services/unsuspend_account_service.rb' + - 'app/views/accounts/show.rss.ruby' + - 'app/views/tags/show.rss.ruby' + - 'config/environments/development.rb' + - 'config/environments/production.rb' + - 'config/initializers/devise.rb' + - 'config/initializers/doorkeeper.rb' + - 'config/initializers/omniauth.rb' + - 'config/initializers/simple_form.rb' + - 'config/navigation.rb' + - 'config/routes.rb' + - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb' + - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' + - 'lib/paperclip/gif_transcoder.rb' Metrics/BlockNesting: Exclude: diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4ad266c8c7..a3832ae70b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -117,7 +117,6 @@ Lint/ConstantDefinitionInBlock: - 'spec/lib/activitypub/adapter_spec.rb' - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' - - 'spec/lib/settings/extend_spec.rb' - 'spec/models/concerns/remotable_spec.rb' # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches. @@ -233,11 +232,6 @@ Lint/Void: Metrics/AbcSize: Max: 150 -# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. -# AllowedMethods: refine -Metrics/BlockLength: - Max: 544 - # Configuration parameters: CountBlocks, Max. Metrics/BlockNesting: Exclude: @@ -731,7 +725,6 @@ RSpec/LeakyConstantDeclaration: - 'spec/lib/activitypub/adapter_spec.rb' - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' - - 'spec/lib/settings/extend_spec.rb' - 'spec/models/concerns/remotable_spec.rb' RSpec/LetSetup: @@ -881,204 +874,6 @@ RSpec/MultipleSubjects: - 'spec/controllers/follower_accounts_controller_spec.rb' - 'spec/controllers/following_accounts_controller_spec.rb' -# Configuration parameters: EnforcedStyle, IgnoreSharedExamples. -# SupportedStyles: always, named_only -RSpec/NamedSubject: - Exclude: - - 'spec/controllers/admin/account_moderation_notes_controller_spec.rb' - - 'spec/controllers/admin/accounts_controller_spec.rb' - - 'spec/controllers/admin/confirmations_controller_spec.rb' - - 'spec/controllers/admin/custom_emojis_controller_spec.rb' - - 'spec/controllers/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/admin/instances_controller_spec.rb' - - 'spec/controllers/admin/invites_controller_spec.rb' - - 'spec/controllers/admin/report_notes_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb' - - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb' - - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb' - - 'spec/controllers/auth/passwords_controller_spec.rb' - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/controllers/home_controller_spec.rb' - - 'spec/controllers/invites_controller_spec.rb' - - 'spec/controllers/oauth/authorizations_controller_spec.rb' - - 'spec/controllers/oauth/authorized_applications_controller_spec.rb' - - 'spec/controllers/relationships_controller_spec.rb' - - 'spec/controllers/settings/featured_tags_controller_spec.rb' - - 'spec/controllers/settings/migrations_controller_spec.rb' - - 'spec/controllers/settings/sessions_controller_spec.rb' - - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb' - - 'spec/controllers/well_known/webfinger_controller_spec.rb' - - 'spec/features/log_in_spec.rb' - - 'spec/features/profile_spec.rb' - - 'spec/lib/activitypub/activity/accept_spec.rb' - - 'spec/lib/activitypub/activity/add_spec.rb' - - 'spec/lib/activitypub/activity/announce_spec.rb' - - 'spec/lib/activitypub/activity/block_spec.rb' - - 'spec/lib/activitypub/activity/create_spec.rb' - - 'spec/lib/activitypub/activity/delete_spec.rb' - - 'spec/lib/activitypub/activity/flag_spec.rb' - - 'spec/lib/activitypub/activity/follow_spec.rb' - - 'spec/lib/activitypub/activity/like_spec.rb' - - 'spec/lib/activitypub/activity/move_spec.rb' - - 'spec/lib/activitypub/activity/reject_spec.rb' - - 'spec/lib/activitypub/activity/remove_spec.rb' - - 'spec/lib/activitypub/activity/undo_spec.rb' - - 'spec/lib/activitypub/activity/update_spec.rb' - - 'spec/lib/activitypub/adapter_spec.rb' - - 'spec/lib/activitypub/dereferencer_spec.rb' - - 'spec/lib/activitypub/linked_data_signature_spec.rb' - - 'spec/lib/activitypub/tag_manager_spec.rb' - - 'spec/lib/connection_pool/shared_connection_pool_spec.rb' - - 'spec/lib/connection_pool/shared_timed_stack_spec.rb' - - 'spec/lib/delivery_failure_tracker_spec.rb' - - 'spec/lib/emoji_formatter_spec.rb' - - 'spec/lib/entity_cache_spec.rb' - - 'spec/lib/fast_ip_map_spec.rb' - - 'spec/lib/feed_manager_spec.rb' - - 'spec/lib/hashtag_normalizer_spec.rb' - - 'spec/lib/html_aware_formatter_spec.rb' - - 'spec/lib/link_details_extractor_spec.rb' - - 'spec/lib/ostatus/tag_manager_spec.rb' - - 'spec/lib/plain_text_formatter_spec.rb' - - 'spec/lib/request_pool_spec.rb' - - 'spec/lib/request_spec.rb' - - 'spec/lib/sanitize_config_spec.rb' - - 'spec/lib/status_finder_spec.rb' - - 'spec/lib/status_reach_finder_spec.rb' - - 'spec/lib/suspicious_sign_in_detector_spec.rb' - - 'spec/lib/text_formatter_spec.rb' - - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb' - - 'spec/lib/vacuum/backups_vacuum_spec.rb' - - 'spec/lib/vacuum/feeds_vacuum_spec.rb' - - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb' - - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb' - - 'spec/lib/vacuum/statuses_vacuum_spec.rb' - - 'spec/lib/vacuum/system_keys_vacuum_spec.rb' - - 'spec/models/account/field_spec.rb' - - 'spec/models/account_migration_spec.rb' - - 'spec/models/account_spec.rb' - - 'spec/models/account_statuses_cleanup_policy_spec.rb' - - 'spec/models/account_statuses_filter_spec.rb' - - 'spec/models/admin/account_action_spec.rb' - - 'spec/models/canonical_email_block_spec.rb' - - 'spec/models/concerns/account_interactions_spec.rb' - - 'spec/models/custom_emoji_filter_spec.rb' - - 'spec/models/custom_emoji_spec.rb' - - 'spec/models/follow_spec.rb' - - 'spec/models/home_feed_spec.rb' - - 'spec/models/media_attachment_spec.rb' - - 'spec/models/notification_spec.rb' - - 'spec/models/public_feed_spec.rb' - - 'spec/models/relationship_filter_spec.rb' - - 'spec/models/remote_follow_spec.rb' - - 'spec/models/report_spec.rb' - - 'spec/models/session_activation_spec.rb' - - 'spec/models/setting_spec.rb' - - 'spec/models/status_spec.rb' - - 'spec/models/tag_spec.rb' - - 'spec/models/trends/statuses_spec.rb' - - 'spec/models/trends/tags_spec.rb' - - 'spec/models/user_role_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/models/web/push_subscription_spec.rb' - - 'spec/policies/account_moderation_note_policy_spec.rb' - - 'spec/policies/account_policy_spec.rb' - - 'spec/policies/backup_policy_spec.rb' - - 'spec/policies/custom_emoji_policy_spec.rb' - - 'spec/policies/domain_block_policy_spec.rb' - - 'spec/policies/email_domain_block_policy_spec.rb' - - 'spec/policies/instance_policy_spec.rb' - - 'spec/policies/invite_policy_spec.rb' - - 'spec/policies/relay_policy_spec.rb' - - 'spec/policies/report_note_policy_spec.rb' - - 'spec/policies/report_policy_spec.rb' - - 'spec/policies/settings_policy_spec.rb' - - 'spec/policies/status_policy_spec.rb' - - 'spec/policies/tag_policy_spec.rb' - - 'spec/policies/user_policy_spec.rb' - - 'spec/presenters/familiar_followers_presenter_spec.rb' - - 'spec/serializers/activitypub/note_serializer_spec.rb' - - 'spec/serializers/activitypub/update_poll_serializer_spec.rb' - - 'spec/serializers/rest/account_serializer_spec.rb' - - 'spec/services/account_search_service_spec.rb' - - 'spec/services/account_statuses_cleanup_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_account_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb' - - 'spec/services/activitypub/fetch_remote_status_service_spec.rb' - - 'spec/services/activitypub/fetch_replies_service_spec.rb' - - 'spec/services/activitypub/process_account_service_spec.rb' - - 'spec/services/activitypub/process_collection_service_spec.rb' - - 'spec/services/activitypub/process_status_update_service_spec.rb' - - 'spec/services/after_block_domain_from_account_service_spec.rb' - - 'spec/services/after_block_service_spec.rb' - - 'spec/services/app_sign_up_service_spec.rb' - - 'spec/services/authorize_follow_service_spec.rb' - - 'spec/services/batched_remove_status_service_spec.rb' - - 'spec/services/block_domain_service_spec.rb' - - 'spec/services/block_service_spec.rb' - - 'spec/services/bootstrap_timeline_service_spec.rb' - - 'spec/services/clear_domain_media_service_spec.rb' - - 'spec/services/delete_account_service_spec.rb' - - 'spec/services/fan_out_on_write_service_spec.rb' - - 'spec/services/favourite_service_spec.rb' - - 'spec/services/fetch_link_card_service_spec.rb' - - 'spec/services/fetch_oembed_service_spec.rb' - - 'spec/services/fetch_remote_status_service_spec.rb' - - 'spec/services/fetch_resource_service_spec.rb' - - 'spec/services/follow_service_spec.rb' - - 'spec/services/import_service_spec.rb' - - 'spec/services/mute_service_spec.rb' - - 'spec/services/notify_service_spec.rb' - - 'spec/services/post_status_service_spec.rb' - - 'spec/services/precompute_feed_service_spec.rb' - - 'spec/services/process_mentions_service_spec.rb' - - 'spec/services/purge_domain_service_spec.rb' - - 'spec/services/reblog_service_spec.rb' - - 'spec/services/reject_follow_service_spec.rb' - - 'spec/services/remove_from_followers_service_spec.rb' - - 'spec/services/remove_status_service_spec.rb' - - 'spec/services/report_service_spec.rb' - - 'spec/services/resolve_account_service_spec.rb' - - 'spec/services/resolve_url_service_spec.rb' - - 'spec/services/search_service_spec.rb' - - 'spec/services/suspend_account_service_spec.rb' - - 'spec/services/unallow_domain_service_spec.rb' - - 'spec/services/unblock_domain_service_spec.rb' - - 'spec/services/unblock_service_spec.rb' - - 'spec/services/unfollow_service_spec.rb' - - 'spec/services/unsuspend_account_service_spec.rb' - - 'spec/services/update_account_service_spec.rb' - - 'spec/services/update_status_service_spec.rb' - - 'spec/services/verify_link_service_spec.rb' - - 'spec/validators/blacklisted_email_validator_spec.rb' - - 'spec/validators/email_mx_validator_spec.rb' - - 'spec/validators/note_length_validator_spec.rb' - - 'spec/validators/reaction_validator_spec.rb' - - 'spec/validators/status_length_validator_spec.rb' - - 'spec/validators/status_pin_validator_spec.rb' - - 'spec/validators/unique_username_validator_spec.rb' - - 'spec/workers/activitypub/delivery_worker_spec.rb' - - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb' - - 'spec/workers/activitypub/distribution_worker_spec.rb' - - 'spec/workers/activitypub/fetch_replies_worker_spec.rb' - - 'spec/workers/activitypub/move_distribution_worker_spec.rb' - - 'spec/workers/activitypub/processing_worker_spec.rb' - - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb' - - 'spec/workers/activitypub/update_distribution_worker_spec.rb' - - 'spec/workers/admin/domain_purge_worker_spec.rb' - - 'spec/workers/domain_block_worker_spec.rb' - - 'spec/workers/domain_clear_media_worker_spec.rb' - - 'spec/workers/feed_insert_worker_spec.rb' - - 'spec/workers/move_worker_spec.rb' - - 'spec/workers/publish_scheduled_announcement_worker_spec.rb' - - 'spec/workers/publish_scheduled_status_worker_spec.rb' - - 'spec/workers/refollow_worker_spec.rb' - - 'spec/workers/regeneration_worker_spec.rb' - - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb' - - 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb' - - 'spec/workers/unfollow_follow_worker_spec.rb' - - 'spec/workers/web/push_notification_worker_spec.rb' - # Configuration parameters: AllowedGroups. RSpec/NestedGroups: Max: 6 @@ -1477,7 +1272,6 @@ Rails/CompactBlank: - 'app/helpers/statuses_helper.rb' - 'app/models/concerns/attachmentable.rb' - 'app/models/poll.rb' - - 'app/models/user.rb' - 'app/services/import_service.rb' - 'config/initializers/paperclip.rb' @@ -1528,7 +1322,6 @@ Rails/FilePath: - 'app/validators/reaction_validator.rb' - 'config/environments/test.rb' - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb' - - 'db/migrate/20170918125918_ids_to_bigints.rb' - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb' - 'db/migrate/20171028221157_add_reblogs_to_follows.rb' - 'db/migrate/20171107143332_add_memorial_to_accounts.rb' @@ -1648,7 +1441,6 @@ Rails/IgnoredColumnsAssignment: - 'app/models/email_domain_block.rb' - 'app/models/report.rb' - 'app/models/status_edit.rb' - - 'app/models/user.rb' # Configuration parameters: IgnoreScopes, Include. # Include: app/models/**/*.rb @@ -2530,11 +2322,6 @@ Style/PreferredHashMethods: Exclude: - 'config/initializers/paperclip.rb' -# This cop supports safe autocorrection (--autocorrect). -Style/RedundantBegin: - Exclude: - - 'config/initializers/simple_form.rb' - # This cop supports safe autocorrection (--autocorrect). Style/RedundantConstantBase: Exclude: From 500d6f93be0f84b7a8d338c8860936618f27dfe8 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 31 Mar 2023 03:33:52 -0400 Subject: [PATCH 0786/1220] Autofix Rubocop Style/IdenticalConditionalBranches (#24322) --- .rubocop_todo.yml | 5 ----- config/initializers/content_security_policy.rb | 6 ++---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a3832ae70b..e15cb30f55 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -2218,11 +2218,6 @@ Style/HashTransformValues: - 'app/serializers/rest/web_push_subscription_serializer.rb' - 'app/services/import_service.rb' -# This cop supports unsafe autocorrection (--autocorrect-all). -Style/IdenticalConditionalBranches: - Exclude: - - 'config/initializers/content_security_policy.rb' - # This cop supports safe autocorrection (--autocorrect). Style/IfUnlessModifier: Exclude: diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index cb56293376..96026ce3b7 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -27,19 +27,17 @@ Rails.application.config.content_security_policy do |p| p.frame_src :self, :https p.manifest_src :self, assets_host p.form_action :self + p.child_src :self, :blob, assets_host + p.worker_src :self, :blob, assets_host if Rails.env.development? webpacker_urls = %w(ws http).map { |protocol| "#{protocol}#{Webpacker.dev_server.https? ? 's' : ''}://#{Webpacker.dev_server.host_with_port}" } p.connect_src :self, :data, :blob, assets_host, media_host, Rails.configuration.x.streaming_api_base_url, *webpacker_urls p.script_src :self, :unsafe_inline, :unsafe_eval, assets_host - p.child_src :self, :blob, assets_host - p.worker_src :self, :blob, assets_host else p.connect_src :self, :data, :blob, assets_host, media_host, Rails.configuration.x.streaming_api_base_url p.script_src :self, assets_host, "'wasm-unsafe-eval'" - p.child_src :self, :blob, assets_host - p.worker_src :self, :blob, assets_host end end From 7646ad8a2b7d0809657a4f2a228443b4c992d070 Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Fri, 31 Mar 2023 05:38:47 -0700 Subject: [PATCH 0787/1220] IndexingScheduler: fetch and import in batches (#24285) Co-authored-by: Claire --- app/workers/scheduler/indexing_scheduler.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/workers/scheduler/indexing_scheduler.rb b/app/workers/scheduler/indexing_scheduler.rb index c423966297..1bbe9cd5d0 100644 --- a/app/workers/scheduler/indexing_scheduler.rb +++ b/app/workers/scheduler/indexing_scheduler.rb @@ -6,17 +6,21 @@ class Scheduler::IndexingScheduler sidekiq_options retry: 0 + IMPORT_BATCH_SIZE = 1000 + SCAN_BATCH_SIZE = 10 * IMPORT_BATCH_SIZE + def perform return unless Chewy.enabled? indexes.each do |type| with_redis do |redis| - ids = redis.smembers("chewy:queue:#{type.name}") - - type.import!(ids) - - redis.pipelined do |pipeline| - ids.each { |id| pipeline.srem("chewy:queue:#{type.name}", id) } + redis.sscan_each("chewy:queue:#{type.name}", count: SCAN_BATCH_SIZE) do |ids| + redis.pipelined do + ids.each_slice(IMPORT_BATCH_SIZE) do |slice_ids| + type.import!(slice_ids) + redis.srem("chewy:queue:#{type.name}", slice_ids) + end + end end end end From cb2ce842b0626b3ae379017da4cbab20539b782a Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 31 Mar 2023 09:07:22 -0400 Subject: [PATCH 0788/1220] Autofix Rubocop Rails/IgnoredColumnsAssignment (#23761) --- .rubocop_todo.yml | 11 ----------- app/models/account.rb | 2 +- app/models/account_stat.rb | 2 +- app/models/admin/action_log.rb | 2 +- app/models/custom_filter.rb | 2 +- app/models/email_domain_block.rb | 2 +- app/models/report.rb | 2 +- app/models/status_edit.rb | 2 +- 8 files changed, 7 insertions(+), 18 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e15cb30f55..2e4801a552 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1431,17 +1431,6 @@ Rails/I18nLocaleTexts: - 'lib/tasks/mastodon.rake' - 'spec/helpers/flashes_helper_spec.rb' -# This cop supports unsafe autocorrection (--autocorrect-all). -Rails/IgnoredColumnsAssignment: - Exclude: - - 'app/models/account.rb' - - 'app/models/account_stat.rb' - - 'app/models/admin/action_log.rb' - - 'app/models/custom_filter.rb' - - 'app/models/email_domain_block.rb' - - 'app/models/report.rb' - - 'app/models/status_edit.rb' - # Configuration parameters: IgnoreScopes, Include. # Include: app/models/**/*.rb Rails/InverseOf: diff --git a/app/models/account.rb b/app/models/account.rb index c4df488789..f49cae901c 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -53,7 +53,7 @@ # class Account < ApplicationRecord - self.ignored_columns = %w( + self.ignored_columns += %w( subscription_expires_at secret remote_url diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb index 834f8ba4c2..0fea7732e9 100644 --- a/app/models/account_stat.rb +++ b/app/models/account_stat.rb @@ -16,7 +16,7 @@ class AccountStat < ApplicationRecord self.locking_column = nil - self.ignored_columns = %w(lock_version) + self.ignored_columns += %w(lock_version) belongs_to :account, inverse_of: :account_stat diff --git a/app/models/admin/action_log.rb b/app/models/admin/action_log.rb index 4fa8008f5c..f2c121d758 100644 --- a/app/models/admin/action_log.rb +++ b/app/models/admin/action_log.rb @@ -17,7 +17,7 @@ # class Admin::ActionLog < ApplicationRecord - self.ignored_columns = %w( + self.ignored_columns += %w( recorded_changes ) diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index d85e196e96..0f4fd78cbf 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -15,7 +15,7 @@ # class CustomFilter < ApplicationRecord - self.ignored_columns = %w(whole_word irreversible) + self.ignored_columns += %w(whole_word irreversible) alias_attribute :title, :phrase alias_attribute :filter_action, :action diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb index 276e7d31a1..3c9be51cab 100644 --- a/app/models/email_domain_block.rb +++ b/app/models/email_domain_block.rb @@ -12,7 +12,7 @@ # class EmailDomainBlock < ApplicationRecord - self.ignored_columns = %w( + self.ignored_columns += %w( ips last_refresh_at ) diff --git a/app/models/report.rb b/app/models/report.rb index a9940459de..c3a0c4c8b2 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -21,7 +21,7 @@ # class Report < ApplicationRecord - self.ignored_columns = %w(action_taken) + self.ignored_columns += %w(action_taken) include Paginable include RateLimitable diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb index 683441bb56..2b3248bb2c 100644 --- a/app/models/status_edit.rb +++ b/app/models/status_edit.rb @@ -20,7 +20,7 @@ class StatusEdit < ApplicationRecord include RateLimitable - self.ignored_columns = %w( + self.ignored_columns += %w( media_attachments_changed ) From 1f19d5e5e84731f781e13e4cedab386c294bee2f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 31 Mar 2023 10:08:53 -0400 Subject: [PATCH 0789/1220] Add documentation for Rubocop overrides (#23811) --- .rubocop.yml | 78 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index dadb2075e5..e6a0c2d14e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,7 @@ +# Can be removed once all rules are addressed or moved to this file as documented overrides inherit_from: .rubocop_todo.yml +# Used for merging with exclude lists with .rubocop_todo.yml inherit_mode: merge: - Exclude @@ -11,13 +13,13 @@ require: - rubocop-capybara AllCops: - TargetRubyVersion: 2.7 + TargetRubyVersion: 2.7 # Set to minimum supported version of CI DisplayCopNames: true DisplayStyleGuide: true ExtraDetails: true UseCache: true CacheRootDirectory: tmp - NewCops: enable + NewCops: enable # Opt-in to newly added rules Exclude: - db/schema.rb - 'bin/*' @@ -25,12 +27,16 @@ AllCops: - 'node_modules/**/*' - 'Vagrantfile' - 'vendor/**/*' - - 'lib/json_ld/*' + - 'lib/json_ld/*' # Generated files - 'lib/templates/**/*' +# Reason: Prefer Hashes without extreme indentation +# https://docs.rubocop.org/rubocop/cops_layout.html#layoutfirsthashelementindentation Layout/FirstHashElementIndentation: EnforcedStyle: consistent +# Reason: Currently disabled in .rubocop_todo.yml +# https://docs.rubocop.org/rubocop/cops_layout.html#layoutlinelength Layout/LineLength: AllowedPatterns: # Allow comments to be long lines @@ -41,10 +47,14 @@ Layout/LineLength: - db/*migrate/**/* - db/seeds/**/* +# Reason: +# https://docs.rubocop.org/rubocop/cops_lint.html#lintuselessaccessmodifier Lint/UselessAccessModifier: ContextCreatingMethods: - class_methods +# Reason: Currently disabled in .rubocop_todo.yml +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize Metrics/AbcSize: Exclude: - 'lib/**/*cli*.rb' @@ -79,6 +89,8 @@ Metrics/BlockLength: - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb' - 'lib/paperclip/gif_transcoder.rb' +# Reason: +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting Metrics/BlockNesting: Exclude: - 'lib/mastodon/*_cli.rb' @@ -127,22 +139,32 @@ Metrics/ClassLength: - 'app/services/update_status_service.rb' - 'lib/paperclip/color_extractor.rb' +# Reason: Currently disabled in .rubocop_todo.yml +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity Metrics/CyclomaticComplexity: Exclude: - lib/mastodon/*cli*.rb - db/*migrate/**/* +# Reason: Currently disabled in .rubocop_todo.yml +# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsmethodlength Metrics/MethodLength: CountAsOne: [array, heredoc] Exclude: - 'lib/mastodon/*_cli.rb' +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror Metrics/ModuleLength: CountAsOne: [array, heredoc] +# Reason: Prevailing style uses numeric status codes, matches RSpec/Rails/HttpStatus +# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railshttpstatus Rails/HttpStatus: EnforcedStyle: numeric +# Reason: Allowed only in the `tootctl` CLI application code +# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit Rails/Exit: Exclude: - 'lib/mastodon/*_cli.rb' @@ -170,9 +192,18 @@ RSpec/FilePath: - 'spec/controllers/concerns/signature_verification_spec.rb' - 'spec/controllers/concerns/user_tracking_concern_spec.rb' +# Reason: +# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnamedsubject +RSpec/NamedSubject: + EnforcedStyle: named_only + +# Reason: Prevailing style choice +# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnottonot RSpec/NotToNot: EnforcedStyle: to_not +# Reason: Prevailing style uses numeric status codes, matches Rails/HttpStatus +# https://docs.rubocop.org/rubocop-rspec/cops_rspec_rails.html#rspecrailshttpstatus RSpec/Rails/HttpStatus: EnforcedStyle: numeric @@ -186,34 +217,45 @@ Style/ClassAndModuleChildren: Style/Documentation: Enabled: false +# Reason: Enforce modern Ruby style +# https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax Style/HashSyntax: EnforcedStyle: ruby19_no_mixed_keys +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#stylenumericliterals Style/NumericLiterals: AllowedPatterns: - \d{4}_\d{2}_\d{2}_\d{6} # For DB migration date version number readability +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#stylepercentliteraldelimiters Style/PercentLiteralDelimiters: PreferredDelimiters: '%i': '()' '%w': '()' -Style/RescueStandardError: - EnforcedStyle: implicit - -Style/TrailingCommaInArrayLiteral: - EnforcedStyleForMultiline: 'comma' - -Style/TrailingCommaInHashLiteral: - EnforcedStyleForMultiline: 'comma' - -Style/SymbolArray: - Enabled: false - -# Reason: Prefer less intendation in conditional assignments +# Reason: Prefer less indentation in conditional assignments # https://docs.rubocop.org/rubocop/cops_style.html#styleredundantbegin Style/RedundantBegin: Enabled: false -RSpec/NamedSubject: - EnforcedStyle: named_only +# Reason: Overridden to reduce implicit StandardError rescues +# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror +Style/RescueStandardError: + EnforcedStyle: implicit + +# Reason: Originally disabled for CodeClimate, and no config consensus has been found +# https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray +Style/SymbolArray: + Enabled: false + +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#styletrailingcommainarrayliteral +Style/TrailingCommaInArrayLiteral: + EnforcedStyleForMultiline: 'comma' + +# Reason: +# https://docs.rubocop.org/rubocop/cops_style.html#styletrailingcommainhashliteral +Style/TrailingCommaInHashLiteral: + EnforcedStyleForMultiline: 'comma' From f318f1ef0ed8df116317c508b21b98898a2cfba8 Mon Sep 17 00:00:00 2001 From: Sai Date: Fri, 31 Mar 2023 17:28:40 +0100 Subject: [PATCH 0790/1220] Bump ruby to 3.2.2 due to ReDoS vulnerabilities (#24320) --- .ruby-version | 2 +- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ruby-version b/.ruby-version index e4604e3afd..be94e6f53d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.1 +3.2.2 diff --git a/Dockerfile b/Dockerfile index 169d3af4f1..dca547c6dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim ARG NODE_VERSION="16.19-bullseye-slim" -FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby +FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby FROM node:${NODE_VERSION} as build COPY --link --from=ruby /opt/ruby /opt/ruby From c6c03b49b255c4fe2183b94288a712ad7a66e2c2 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 31 Mar 2023 13:20:11 -0400 Subject: [PATCH 0791/1220] Add Roadmap to README (#24288) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6d03cbb2a8..fd55c00732 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Click below to **learn more** in a video: - [View sponsors](https://joinmastodon.org/sponsors) - [Blog](https://blog.joinmastodon.org) - [Documentation](https://docs.joinmastodon.org) +- [Roadmap](https://joinmastodon.org/roadmap) - [Official Docker image](https://github.com/mastodon/mastodon/pkgs/container/mastodon) - [Browse Mastodon servers](https://joinmastodon.org/communities) - [Browse Mastodon apps](https://joinmastodon.org/apps) From 20d2a1938c08bc0656f36393240cae3d5e4b1fdd Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Fri, 31 Mar 2023 21:18:12 +0200 Subject: [PATCH 0792/1220] Bump Ruby version to 3.2.2 due to ReDOS vulnerabilities --- .ruby-version | 2 +- lib/mastodon/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ruby-version b/.ruby-version index e4604e3afd..be94e6f53d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.1 +3.2.2 diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 3a89eb4b6e..22eb6315b1 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.0.1' + '+1.0.2' end def to_a From 280fa3b2c01b9d6c5cfb2ed608087038b6c1a0ae Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 31 Mar 2023 21:42:28 +0200 Subject: [PATCH 0793/1220] Fix invalid/expired invites being processed on sign-up (#24337) --- app/controllers/auth/registrations_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index c5418ba0ce..b55f7f309f 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -46,7 +46,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController super(hash) resource.locale = I18n.locale - resource.invite_code = params[:invite_code] if resource.invite_code.blank? + resource.invite_code = @invite&.code if resource.invite_code.blank? resource.registration_form_time = session[:registration_form_time] resource.sign_up_ip = request.remote_ip From 3dcba94e68889f3d6603fa5416d54edd08dcf4bd Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 31 Mar 2023 21:37:57 +0200 Subject: [PATCH 0794/1220] Migrate glitch-soc's exclusive user settings --- .../settings/flavours_controller.rb | 14 +---- app/helpers/accounts_helper.rb | 2 +- app/models/concerns/has_user_settings.rb | 36 +++++++++++- app/models/user_settings.rb | 9 ++- ...0230215074424_move_glitch_user_settings.rb | 57 +++++++++++++++++++ db/schema.rb | 2 +- 6 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 db/migrate/20230215074424_move_glitch_user_settings.rb diff --git a/app/controllers/settings/flavours_controller.rb b/app/controllers/settings/flavours_controller.rb index 62c52eee97..c1172598b4 100644 --- a/app/controllers/settings/flavours_controller.rb +++ b/app/controllers/settings/flavours_controller.rb @@ -21,18 +21,8 @@ class Settings::FlavoursController < Settings::BaseController end def update - user_settings.update(user_settings_params) + current_user.settings.update(flavour: params.require(:flavour), skin: params.dig(:user, :setting_skin)) + current_user.save redirect_to action: 'show', flavour: params[:flavour] end - - private - - def user_settings - UserSettingsDecorator.new(current_user) - end - - def user_settings_params - { setting_flavour: params.require(:flavour), - setting_skin: params.dig(:user, :setting_skin) }.with_indifferent_access - end end diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb index e15aee6df1..91c3a116b7 100644 --- a/app/helpers/accounts_helper.rb +++ b/app/helpers/accounts_helper.rb @@ -28,7 +28,7 @@ module AccountsHelper end def hide_followers_count?(account) - Setting.hide_followers_count || account.user&.setting_hide_followers_count + Setting.hide_followers_count || account.user&.settings['hide_followers_count'] end def account_description(account) diff --git a/app/models/concerns/has_user_settings.rb b/app/models/concerns/has_user_settings.rb index b3fa1f683b..0e9d4e1cd4 100644 --- a/app/models/concerns/has_user_settings.rb +++ b/app/models/concerns/has_user_settings.rb @@ -39,6 +39,10 @@ module HasUserSettings settings['web.delete_modal'] end + def setting_favourite_modal + settings['web.favourite_modal'] + end + def setting_reduce_motion settings['web.reduce_motion'] end @@ -47,12 +51,20 @@ module HasUserSettings settings['web.use_system_font'] end + def setting_system_emoji_font + settings['web.use_system_emoji_font'] + end + def setting_noindex settings['noindex'] end - def setting_theme - settings['theme'] + def setting_flavour + settings['flavour'] + end + + def setting_skin + settings['skin'] end def setting_display_media @@ -107,6 +119,14 @@ module HasUserSettings settings['default_privacy'] || (account.locked? ? 'private' : 'public') end + def setting_default_content_type + settings['default_content_type'] + end + + def setting_hide_followers_count + settings['hide_followers_count'] + end + def allows_report_emails? settings['notification_emails.report'] end @@ -123,6 +143,18 @@ module HasUserSettings settings['notification_emails.trends'] end + def allows_trending_tags_review_emails? + settings['notification_emails.trends'] + end + + def allows_trending_links_review_emails? + settings['notification_emails.link_trends'] + end + + def allows_trending_statuses_review_emails? + settings['notification_emails.status_trends'] + end + def aggregates_reblogs? settings['aggregate_reblogs'] end diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb index 2c025d6c56..0be8c5fbce 100644 --- a/app/models/user_settings.rb +++ b/app/models/user_settings.rb @@ -9,12 +9,15 @@ class UserSettings setting :always_send_emails, default: false setting :aggregate_reblogs, default: true - setting :theme, default: -> { ::Setting.theme } + setting :flavour, default: -> { ::Setting.flavour } + setting :skin, default: -> { ::Setting.skin } setting :noindex, default: -> { ::Setting.noindex } setting :show_application, default: true setting :default_language, default: nil setting :default_sensitive, default: false setting :default_privacy, default: nil + setting :default_content_type, default: 'text/plain' + setting :hide_followers_count, default: false namespace :web do setting :crop_images, default: true @@ -27,10 +30,12 @@ class UserSettings setting :delete_modal, default: true setting :reblog_modal, default: false setting :unfollow_modal, default: true + setting :favourite_modal, default: false setting :reduce_motion, default: false setting :expand_content_warnings, default: false setting :display_media, default: 'default', in: %w(default show_all hide_all) setting :auto_play, default: false + setting :use_system_emoji_font, default: false end namespace :notification_emails do @@ -42,6 +47,8 @@ class UserSettings setting :report, default: true setting :pending_account, default: true setting :trends, default: true + setting :link_trends, default: false + setting :status_trends, default: false setting :appeal, default: true end diff --git a/db/migrate/20230215074424_move_glitch_user_settings.rb b/db/migrate/20230215074424_move_glitch_user_settings.rb new file mode 100644 index 0000000000..6b5a259259 --- /dev/null +++ b/db/migrate/20230215074424_move_glitch_user_settings.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +class MoveGlitchUserSettings < ActiveRecord::Migration[6.1] + class User < ApplicationRecord; end + + MAPPING = { + favourite_modal: 'web.favourite_modal', + system_emoji_font: 'web.use_system_emoji_font', + hide_followers_count: 'hide_followers_count', + default_content_type: 'default_content_type', + flavour: 'flavour', + skin: 'skin', + notification_emails: { + trending_link: 'notification_emails.link_trends', + trending_status: 'notification_emails.status_trends', + }.freeze, + }.freeze + + class LegacySetting < ApplicationRecord + self.table_name = 'settings' + + def var + self[:var]&.to_sym + end + + def value + YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess]) if self[:value].present? + end + end + + def up + User.find_each do |user| + previous_settings = LegacySetting.where(thing_type: 'User', thing_id: user.id).index_by(&:var) + + user_settings = Oj.load(user.settings || '{}') + user_settings.delete('theme') + + MAPPING.each do |legacy_key, new_key| + value = previous_settings[legacy_key]&.value + + next if value.blank? + + if value.is_a?(Hash) + value.each do |nested_key, nested_value| + user_settings[MAPPING[legacy_key][nested_key.to_sym]] = nested_value + end + else + user_settings[new_key] = value + end + end + + user.update_column('settings', Oj.dump(user_settings)) # rubocop:disable Rails/SkipsModelValidations + end + end + + def down; end +end diff --git a/db/schema.rb b/db/schema.rb index 5b03e24f54..7d894b1aa1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2023_02_15_074423) do +ActiveRecord::Schema.define(version: 2023_02_15_074424) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" From 4aaa1772b64085833de1be66ce09bc2a0a0a7319 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 31 Mar 2023 21:50:36 +0200 Subject: [PATCH 0795/1220] Restore exif-js dependency --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index 4eaace8cea..1bfc876a7f 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "emoji-mart": "npm:emoji-mart-lazyload@latest", "es6-symbol": "^3.1.3", "escape-html": "^1.0.3", + "exif-js": "^2.3.0", "express": "^4.18.2", "favico.js": "^0.3.10", "file-loader": "^6.2.0", diff --git a/yarn.lock b/yarn.lock index 48280dbfcc..31bc489626 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4890,6 +4890,11 @@ execa@^7.0.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +exif-js@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814" + integrity sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" From a8f0592b72829b840e188b7ee8c0e56b41e6d5c6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 27 Mar 2023 10:11:45 -0400 Subject: [PATCH 0796/1220] [Glitch] Move marky to devDependency Port ddb769f0b84d4bcff22472f236a4ec74c631d0a6 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/performance.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/flavours/glitch/performance.js b/app/javascript/flavours/glitch/performance.js index 450a90626e..2b7e1bda84 100644 --- a/app/javascript/flavours/glitch/performance.js +++ b/app/javascript/flavours/glitch/performance.js @@ -12,6 +12,7 @@ if (process.env.NODE_ENV === 'development') { // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135 performance.setResourceTimingBufferSize(Infinity); } + // eslint-disable-next-line import/no-extraneous-dependencies marky = require('marky'); // allows us to easily do e.g. ReactPerf.printWasted() while debugging //window.ReactPerf = require('react-addons-perf'); From d874a7a10f7cab9b3fe2eb3a088b7c0dff95c7ee Mon Sep 17 00:00:00 2001 From: Tdxdxoz Date: Thu, 30 Mar 2023 16:14:49 +0800 Subject: [PATCH 0797/1220] [Glitch] Fix: set multiColumn value for /explore Statuses Port 74f56c64fc0aa0dce0dc2c267aa8a212569e9673 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/features/explore/index.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/explore/index.jsx b/app/javascript/flavours/glitch/features/explore/index.jsx index 4f6730438c..3587de1dba 100644 --- a/app/javascript/flavours/glitch/features/explore/index.jsx +++ b/app/javascript/flavours/glitch/features/explore/index.jsx @@ -88,7 +88,9 @@ class Explore extends React.PureComponent { - + + + From d5ad8b6422432b5a0e8f5268d662e6121186f532 Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Fri, 31 Mar 2023 23:28:35 -0700 Subject: [PATCH 0798/1220] Fix Redis client and type errors introduced in #24285 (#24342) --- app/workers/scheduler/indexing_scheduler.rb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/workers/scheduler/indexing_scheduler.rb b/app/workers/scheduler/indexing_scheduler.rb index 1bbe9cd5d0..d622f5586e 100644 --- a/app/workers/scheduler/indexing_scheduler.rb +++ b/app/workers/scheduler/indexing_scheduler.rb @@ -14,12 +14,10 @@ class Scheduler::IndexingScheduler indexes.each do |type| with_redis do |redis| - redis.sscan_each("chewy:queue:#{type.name}", count: SCAN_BATCH_SIZE) do |ids| - redis.pipelined do - ids.each_slice(IMPORT_BATCH_SIZE) do |slice_ids| - type.import!(slice_ids) - redis.srem("chewy:queue:#{type.name}", slice_ids) - end + redis.sscan_each("chewy:queue:#{type.name}", count: SCAN_BATCH_SIZE).each_slice(IMPORT_BATCH_SIZE) do |ids| + type.import!(ids) + redis.pipelined do |pipeline| + pipeline.srem("chewy:queue:#{type.name}", ids) end end end From 46483ae849bc06ee74f4745f4564b213e742c51c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 1 Apr 2023 09:27:23 +0200 Subject: [PATCH 0799/1220] Fix regressions from change in account row design in web UI (#24343) --- app/helpers/home_helper.rb | 2 +- .../mastodon/components/account.jsx | 30 +++++++++++-------- .../mastodon/components/server_banner.jsx | 2 +- .../mastodon/features/about/index.jsx | 2 +- .../styles/mastodon/components.scss | 21 +++++++------ 5 files changed, 32 insertions(+), 25 deletions(-) diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index ea21960865..c5b83326db 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -8,7 +8,7 @@ module HomeHelper end def account_link_to(account, button = '', path: nil) - content_tag(:div, class: 'account') do + content_tag(:div, class: 'account account--minimal') do content_tag(:div, class: 'account__wrapper') do section = if account.nil? content_tag(:div, class: 'account__display-name') do diff --git a/app/javascript/mastodon/components/account.jsx b/app/javascript/mastodon/components/account.jsx index 0ee0e45517..a8a47ecacb 100644 --- a/app/javascript/mastodon/components/account.jsx +++ b/app/javascript/mastodon/components/account.jsx @@ -1,4 +1,4 @@ -import React, { Fragment } from 'react'; +import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Avatar from './avatar'; @@ -13,6 +13,7 @@ import { Link } from 'react-router-dom'; import { counterRenderer } from 'mastodon/components/common_counter'; import ShortNumber from 'mastodon/components/short_number'; import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; const messages = defineMessages({ follow: { id: 'account.follow', defaultMessage: 'Follow' }, @@ -57,6 +58,7 @@ class Account extends ImmutablePureComponent { onMuteNotifications: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, hidden: PropTypes.bool, + minimal: PropTypes.bool, actionIcon: PropTypes.string, actionTitle: PropTypes.string, defaultAction: PropTypes.string, @@ -92,14 +94,14 @@ class Account extends ImmutablePureComponent { }; render () { - const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props; + const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size, minimal } = this.props; if (!account) { return ( -
    +
    -
    +
    @@ -113,10 +115,10 @@ class Account extends ImmutablePureComponent { if (hidden) { return ( - + <> {account.get('display_name')} {account.get('username')} - + ); } @@ -144,10 +146,10 @@ class Account extends ImmutablePureComponent { hidingNotificationsButton = ; } buttons = ( - + <> {hidingNotificationsButton} - + ); } else if (defaultAction === 'mute') { buttons = ; @@ -173,7 +175,7 @@ class Account extends ImmutablePureComponent { } return ( -
    +
    @@ -182,13 +184,15 @@ class Account extends ImmutablePureComponent {
    - {verification} {muteTimeRemaining} + {!minimal && <> {verification} {muteTimeRemaining}}
    -
    - {buttons} -
    + {!minimal && ( +
    + {buttons} +
    + )}
    ); diff --git a/app/javascript/mastodon/components/server_banner.jsx b/app/javascript/mastodon/components/server_banner.jsx index c21e414b4a..e5f5aa8ee2 100644 --- a/app/javascript/mastodon/components/server_banner.jsx +++ b/app/javascript/mastodon/components/server_banner.jsx @@ -59,7 +59,7 @@ class ServerBanner extends React.PureComponent {

    - +
    diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx index aa3d5b7f83..2804c4a214 100644 --- a/app/javascript/mastodon/features/about/index.jsx +++ b/app/javascript/mastodon/features/about/index.jsx @@ -123,7 +123,7 @@ class About extends React.PureComponent {

    - +

    diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 6d20be5419..32dcd59b66 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1427,15 +1427,6 @@ body > [data-popper-placement] { padding: 16px; border-bottom: 1px solid lighten($ui-base-color, 8%); - &.compact { - padding: 0; - border-bottom: 0; - - .account__avatar-wrapper { - margin-inline-start: 0; - } - } - .account__display-name { flex: 1 1 auto; display: flex; @@ -1455,6 +1446,18 @@ body > [data-popper-placement] { } } + &--minimal { + .account__display-name { + .display-name { + margin-bottom: 0; + } + + .display-name strong { + display: block; + } + } + } + &__note { white-space: nowrap; overflow: hidden; From 2b113764117c9ab98875141bcf1758ba8be58173 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 1 Apr 2023 09:59:10 +0200 Subject: [PATCH 0800/1220] Change search pop-out in web UI (#24305) --- app/javascript/mastodon/actions/search.js | 45 ++- .../features/compose/components/search.jsx | 291 ++++++++++++++---- .../compose/components/search_results.jsx | 2 +- .../compose/containers/search_container.js | 22 +- .../compose/containers/warning_container.jsx | 30 +- .../mastodon/features/explore/results.jsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- app/javascript/mastodon/reducers/search.js | 9 +- app/javascript/mastodon/utils/hashtags.js | 47 +++ .../styles/mastodon/components.scss | 88 +++++- 10 files changed, 447 insertions(+), 91 deletions(-) create mode 100644 app/javascript/mastodon/utils/hashtags.js diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js index 666c6c223b..56608f28ba 100644 --- a/app/javascript/mastodon/actions/search.js +++ b/app/javascript/mastodon/actions/search.js @@ -14,6 +14,9 @@ export const SEARCH_EXPAND_REQUEST = 'SEARCH_EXPAND_REQUEST'; export const SEARCH_EXPAND_SUCCESS = 'SEARCH_EXPAND_SUCCESS'; export const SEARCH_EXPAND_FAIL = 'SEARCH_EXPAND_FAIL'; +export const SEARCH_RESULT_CLICK = 'SEARCH_RESULT_CLICK'; +export const SEARCH_RESULT_FORGET = 'SEARCH_RESULT_FORGET'; + export function changeSearch(value) { return { type: SEARCH_CHANGE, @@ -27,7 +30,7 @@ export function clearSearch() { }; } -export function submitSearch() { +export function submitSearch(type) { return (dispatch, getState) => { const value = getState().getIn(['search', 'value']); const signedIn = !!getState().getIn(['meta', 'me']); @@ -44,6 +47,7 @@ export function submitSearch() { q: value, resolve: signedIn, limit: 5, + type, }, }).then(response => { if (response.data.accounts) { @@ -130,3 +134,42 @@ export const expandSearchFail = error => ({ export const showSearch = () => ({ type: SEARCH_SHOW, }); + +export const openURL = routerHistory => (dispatch, getState) => { + const value = getState().getIn(['search', 'value']); + const signedIn = !!getState().getIn(['meta', 'me']); + + if (!signedIn) { + return; + } + + dispatch(fetchSearchRequest()); + + api(getState).get('/api/v2/search', { params: { q: value, resolve: true } }).then(response => { + if (response.data.accounts?.length > 0) { + dispatch(importFetchedAccounts(response.data.accounts)); + routerHistory.push(`/@${response.data.accounts[0].acct}`); + } else if (response.data.statuses?.length > 0) { + dispatch(importFetchedStatuses(response.data.statuses)); + routerHistory.push(`/@${response.data.statuses[0].account.acct}/${response.data.statuses[0].id}`); + } + + dispatch(fetchSearchSuccess(response.data, value)); + }).catch(err => { + dispatch(fetchSearchFail(err)); + }); +}; + +export const clickSearchResult = (q, type) => ({ + type: SEARCH_RESULT_CLICK, + + result: { + type, + q, + }, +}); + +export const forgetSearchResult = q => ({ + type: SEARCH_RESULT_FORGET, + q, +}); diff --git a/app/javascript/mastodon/features/compose/components/search.jsx b/app/javascript/mastodon/features/compose/components/search.jsx index 5d2d8d194f..717ecea370 100644 --- a/app/javascript/mastodon/features/compose/components/search.jsx +++ b/app/javascript/mastodon/features/compose/components/search.jsx @@ -1,37 +1,17 @@ import React from 'react'; import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; -import Overlay from 'react-overlays/Overlay'; -import { searchEnabled } from '../../../initial_state'; +import { searchEnabled } from 'mastodon/initial_state'; import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; +import { HASHTAG_REGEX } from 'mastodon/utils/hashtags'; const messages = defineMessages({ placeholder: { id: 'search.placeholder', defaultMessage: 'Search' }, placeholderSignedIn: { id: 'search.search_or_paste', defaultMessage: 'Search or paste URL' }, }); -class SearchPopout extends React.PureComponent { - - render () { - const extraInformation = searchEnabled ? : ; - return ( -
    -

    - -
      -
    • #example
    • -
    • @username@domain
    • -
    • URL
    • -
    • URL
    • -
    - - {extraInformation} -
    - ); - } - -} - class Search extends React.PureComponent { static contextTypes = { @@ -41,9 +21,13 @@ class Search extends React.PureComponent { static propTypes = { value: PropTypes.string.isRequired, + recent: ImmutablePropTypes.orderedSet, submitted: PropTypes.bool, onChange: PropTypes.func.isRequired, onSubmit: PropTypes.func.isRequired, + onOpenURL: PropTypes.func.isRequired, + onClickSearchResult: PropTypes.func.isRequired, + onForgetSearchResult: PropTypes.func.isRequired, onClear: PropTypes.func.isRequired, onShow: PropTypes.func.isRequired, openInRoute: PropTypes.bool, @@ -53,44 +37,94 @@ class Search extends React.PureComponent { state = { expanded: false, + selectedOption: -1, + options: [], }; setRef = c => { this.searchForm = c; }; - handleChange = (e) => { - this.props.onChange(e.target.value); + handleChange = ({ target }) => { + const { onChange } = this.props; + + onChange(target.value); + + this._calculateOptions(target.value); }; - handleClear = (e) => { + handleClear = e => { + const { value, submitted, onClear } = this.props; + e.preventDefault(); - if (this.props.value.length > 0 || this.props.submitted) { - this.props.onClear(); + if (value.length > 0 || submitted) { + onClear(); + this.setState({ options: [], selectedOption: -1 }); } }; - handleKeyUp = (e) => { - if (e.key === 'Enter') { + handleKeyDown = (e) => { + const { selectedOption } = this.state; + const options = this._getOptions(); + + switch(e.key) { + case 'Escape': + e.preventDefault(); + this._unfocus(); + + break; + case 'ArrowDown': e.preventDefault(); - this.props.onSubmit(); - - if (this.props.openInRoute) { - this.context.router.history.push('/search'); + if (options.length > 0) { + this.setState({ selectedOption: Math.min(selectedOption + 1, options.length - 1) }); } - } else if (e.key === 'Escape') { - document.querySelector('.ui').parentElement.focus(); + + break; + case 'ArrowUp': + e.preventDefault(); + + if (options.length > 0) { + this.setState({ selectedOption: Math.max(selectedOption - 1, -1) }); + } + + break; + case 'Enter': + e.preventDefault(); + + if (selectedOption === -1) { + this._submit(); + } else if (options.length > 0) { + options[selectedOption].action(); + } + + this._unfocus(); + + break; + case 'Delete': + if (selectedOption > -1 && options.length > 0) { + const search = options[selectedOption]; + + if (typeof search.forget === 'function') { + e.preventDefault(); + search.forget(e); + } + } + + break; } }; handleFocus = () => { - this.setState({ expanded: true }); - this.props.onShow(); + const { onShow, singleColumn } = this.props; - if (this.searchForm && !this.props.singleColumn) { + this.setState({ expanded: true, selectedOption: -1 }); + onShow(); + + if (this.searchForm && !singleColumn) { const { left, right } = this.searchForm.getBoundingClientRect(); + if (left < 0 || right > (window.innerWidth || document.documentElement.clientWidth)) { this.searchForm.scrollIntoView(); } @@ -98,21 +132,148 @@ class Search extends React.PureComponent { }; handleBlur = () => { - this.setState({ expanded: false }); + this.setState({ expanded: false, selectedOption: -1 }); }; findTarget = () => { return this.searchForm; }; + handleHashtagClick = () => { + const { router } = this.context; + const { value, onClickSearchResult } = this.props; + + const query = value.trim().replace(/^#/, ''); + + router.history.push(`/tags/${query}`); + onClickSearchResult(query, 'hashtag'); + }; + + handleAccountClick = () => { + const { router } = this.context; + const { value, onClickSearchResult } = this.props; + + const query = value.trim().replace(/^@/, ''); + + router.history.push(`/@${query}`); + onClickSearchResult(query, 'account'); + }; + + handleURLClick = () => { + const { router } = this.context; + const { onOpenURL } = this.props; + + onOpenURL(router.history); + }; + + handleStatusSearch = () => { + this._submit('statuses'); + }; + + handleAccountSearch = () => { + this._submit('accounts'); + }; + + handleRecentSearchClick = search => { + const { router } = this.context; + + if (search.get('type') === 'account') { + router.history.push(`/@${search.get('q')}`); + } else if (search.get('type') === 'hashtag') { + router.history.push(`/tags/${search.get('q')}`); + } + }; + + handleForgetRecentSearchClick = search => { + const { onForgetSearchResult } = this.props; + + onForgetSearchResult(search.get('q')); + }; + + _unfocus () { + document.querySelector('.ui').parentElement.focus(); + } + + _submit (type) { + const { onSubmit, openInRoute } = this.props; + const { router } = this.context; + + onSubmit(type); + + if (openInRoute) { + router.history.push('/search'); + } + } + + _getOptions () { + const { options } = this.state; + + if (options.length > 0) { + return options; + } + + const { recent } = this.props; + + return recent.toArray().map(search => ({ + label: search.get('type') === 'account' ? `@${search.get('q')}` : `#${search.get('q')}`, + + action: () => this.handleRecentSearchClick(search), + + forget: e => { + e.stopPropagation(); + this.handleForgetRecentSearchClick(search); + }, + })); + } + + _calculateOptions (value) { + const trimmedValue = value.trim(); + const options = []; + + if (trimmedValue.length > 0) { + const couldBeURL = trimmedValue.startsWith('https://') && !trimmedValue.includes(' '); + + if (couldBeURL) { + options.push({ key: 'open-url', label: , action: this.handleURLClick }); + } + + const couldBeHashtag = (trimmedValue.startsWith('#') && trimmedValue.length > 1) || trimmedValue.match(HASHTAG_REGEX); + + if (couldBeHashtag) { + options.push({ key: 'go-to-hashtag', label: #{trimmedValue.replace(/^#/, '')} }} />, action: this.handleHashtagClick }); + } + + const couldBeUsername = trimmedValue.match(/^@?[a-z0-9_-]+(@[^\s]+)?$/i); + + if (couldBeUsername) { + options.push({ key: 'go-to-account', label: @{trimmedValue.replace(/^@/, '')} }} />, action: this.handleAccountClick }); + } + + const couldBeStatusSearch = searchEnabled; + + if (couldBeStatusSearch) { + options.push({ key: 'status-search', label: {trimmedValue} }} />, action: this.handleStatusSearch }); + } + + const couldBeUserSearch = true; + + if (couldBeUserSearch) { + options.push({ key: 'account-search', label: {trimmedValue} }} />, action: this.handleAccountSearch }); + } + } + + this.setState({ options }); + } + render () { - const { intl, value, submitted } = this.props; - const { expanded } = this.state; + const { intl, value, submitted, recent } = this.props; + const { expanded, options, selectedOption } = this.state; const { signedIn } = this.context.identity; + const hasValue = value.length > 0 || submitted; return ( -
    +
    @@ -130,15 +291,41 @@ class Search extends React.PureComponent {
    - - {({ props, placement }) => ( -
    -
    - + +
    + {options.length === 0 && ( + <> +

    + +
    + {recent.size > 0 ? this._getOptions().map(({ label, action, forget }, i) => ( + + + )) : ( +
    + +
    + )}
    -
    + )} - + + {options.length > 0 && ( + <> +

    + +
    + {options.map(({ key, label, action }, i) => ( + + ))} +
    + + )} +
    ); } diff --git a/app/javascript/mastodon/features/compose/components/search_results.jsx b/app/javascript/mastodon/features/compose/components/search_results.jsx index 78da3ca274..1dccd950cb 100644 --- a/app/javascript/mastodon/features/compose/components/search_results.jsx +++ b/app/javascript/mastodon/features/compose/components/search_results.jsx @@ -77,7 +77,7 @@ class SearchResults extends ImmutablePureComponent { count += results.get('accounts').size; accounts = (
    -
    +
    {results.get('accounts').map(accountId => )} diff --git a/app/javascript/mastodon/features/compose/containers/search_container.js b/app/javascript/mastodon/features/compose/containers/search_container.js index 392bd0f566..3ee55fae59 100644 --- a/app/javascript/mastodon/features/compose/containers/search_container.js +++ b/app/javascript/mastodon/features/compose/containers/search_container.js @@ -4,12 +4,16 @@ import { clearSearch, submitSearch, showSearch, -} from '../../../actions/search'; + openURL, + clickSearchResult, + forgetSearchResult, +} from 'mastodon/actions/search'; import Search from '../components/search'; const mapStateToProps = state => ({ value: state.getIn(['search', 'value']), submitted: state.getIn(['search', 'submitted']), + recent: state.getIn(['search', 'recent']), }); const mapDispatchToProps = dispatch => ({ @@ -22,14 +26,26 @@ const mapDispatchToProps = dispatch => ({ dispatch(clearSearch()); }, - onSubmit () { - dispatch(submitSearch()); + onSubmit (type) { + dispatch(submitSearch(type)); }, onShow () { dispatch(showSearch()); }, + onOpenURL (routerHistory) { + dispatch(openURL(routerHistory)); + }, + + onClickSearchResult (q, type) { + dispatch(clickSearchResult(q, type)); + }, + + onForgetSearchResult (q) { + dispatch(forgetSearchResult(q)); + }, + }); export default connect(mapStateToProps, mapDispatchToProps)(Search); diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.jsx b/app/javascript/mastodon/features/compose/containers/warning_container.jsx index 3c6ed483d0..e99f5dacd9 100644 --- a/app/javascript/mastodon/features/compose/containers/warning_container.jsx +++ b/app/javascript/mastodon/features/compose/containers/warning_container.jsx @@ -3,36 +3,12 @@ import { connect } from 'react-redux'; import Warning from '../components/warning'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; -import { me } from '../../../initial_state'; - -const buildHashtagRE = () => { - try { - const HASHTAG_SEPARATORS = '_\\u00b7\\u200c'; - const ALPHA = '\\p{L}\\p{M}'; - const WORD = '\\p{L}\\p{M}\\p{N}\\p{Pc}'; - return new RegExp( - '(?:^|[^\\/\\)\\w])#((' + - '[' + WORD + '_]' + - '[' + WORD + HASHTAG_SEPARATORS + ']*' + - '[' + ALPHA + HASHTAG_SEPARATORS + ']' + - '[' + WORD + HASHTAG_SEPARATORS +']*' + - '[' + WORD + '_]' + - ')|(' + - '[' + WORD + '_]*' + - '[' + ALPHA + ']' + - '[' + WORD + '_]*' + - '))', 'iu', - ); - } catch { - return /(?:^|[^/)\w])#(\w*[a-zA-Z·]\w*)/i; - } -}; - -const APPROX_HASHTAG_RE = buildHashtagRE(); +import { me } from 'mastodon/initial_state'; +import { HASHTAG_PATTERN_REGEX } from 'mastodon/utils/hashtags'; const mapStateToProps = state => ({ needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']), - hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])), + hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && HASHTAG_PATTERN_REGEX.test(state.getIn(['compose', 'text'])), directMessageWarning: state.getIn(['compose', 'privacy']) === 'direct', }); diff --git a/app/javascript/mastodon/features/explore/results.jsx b/app/javascript/mastodon/features/explore/results.jsx index 27132f1328..9725cf35cd 100644 --- a/app/javascript/mastodon/features/explore/results.jsx +++ b/app/javascript/mastodon/features/explore/results.jsx @@ -105,7 +105,7 @@ class Results extends React.PureComponent {
    - +
    diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 3bdba3b1d5..3d59fa01d7 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -530,7 +530,7 @@ "search_popout.tips.status": "post", "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", diff --git a/app/javascript/mastodon/reducers/search.js b/app/javascript/mastodon/reducers/search.js index d3e71da9d9..e545f430cc 100644 --- a/app/javascript/mastodon/reducers/search.js +++ b/app/javascript/mastodon/reducers/search.js @@ -6,13 +6,15 @@ import { SEARCH_FETCH_SUCCESS, SEARCH_SHOW, SEARCH_EXPAND_SUCCESS, + SEARCH_RESULT_CLICK, + SEARCH_RESULT_FORGET, } from '../actions/search'; import { COMPOSE_MENTION, COMPOSE_REPLY, COMPOSE_DIRECT, } from '../actions/compose'; -import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; +import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable'; const initialState = ImmutableMap({ value: '', @@ -21,6 +23,7 @@ const initialState = ImmutableMap({ results: ImmutableMap(), isLoading: false, searchTerm: '', + recent: ImmutableOrderedSet(), }); export default function search(state = initialState, action) { @@ -61,6 +64,10 @@ export default function search(state = initialState, action) { case SEARCH_EXPAND_SUCCESS: const results = action.searchType === 'hashtags' ? fromJS(action.results.hashtags) : action.results[action.searchType].map(item => item.id); return state.updateIn(['results', action.searchType], list => list.concat(results)); + case SEARCH_RESULT_CLICK: + return state.update('recent', set => set.add(fromJS(action.result))); + case SEARCH_RESULT_FORGET: + return state.update('recent', set => set.filterNot(result => result.get('q') === action.q)); default: return state; } diff --git a/app/javascript/mastodon/utils/hashtags.js b/app/javascript/mastodon/utils/hashtags.js new file mode 100644 index 0000000000..358ce37f54 --- /dev/null +++ b/app/javascript/mastodon/utils/hashtags.js @@ -0,0 +1,47 @@ +const HASHTAG_SEPARATORS = '_\\u00b7\\u200c'; +const ALPHA = '\\p{L}\\p{M}'; +const WORD = '\\p{L}\\p{M}\\p{N}\\p{Pc}'; + +const buildHashtagPatternRegex = () => { + try { + return new RegExp( + '(?:^|[^\\/\\)\\w])#((' + + '[' + WORD + '_]' + + '[' + WORD + HASHTAG_SEPARATORS + ']*' + + '[' + ALPHA + HASHTAG_SEPARATORS + ']' + + '[' + WORD + HASHTAG_SEPARATORS +']*' + + '[' + WORD + '_]' + + ')|(' + + '[' + WORD + '_]*' + + '[' + ALPHA + ']' + + '[' + WORD + '_]*' + + '))', 'iu', + ); + } catch { + return /(?:^|[^/)\w])#(\w*[a-zA-Z·]\w*)/i; + } +}; + +const buildHashtagRegex = () => { + try { + return new RegExp( + '^((' + + '[' + WORD + '_]' + + '[' + WORD + HASHTAG_SEPARATORS + ']*' + + '[' + ALPHA + HASHTAG_SEPARATORS + ']' + + '[' + WORD + HASHTAG_SEPARATORS +']*' + + '[' + WORD + '_]' + + ')|(' + + '[' + WORD + '_]*' + + '[' + ALPHA + ']' + + '[' + WORD + '_]*' + + '))$', 'iu', + ); + } catch { + return /^(\w*[a-zA-Z·]\w*)$/i; + } +}; + +export const HASHTAG_PATTERN_REGEX = buildHashtagPatternRegex(); + +export const HASHTAG_REGEX = buildHashtagRegex(); diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 32dcd59b66..6681aa75c4 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4816,6 +4816,86 @@ a.status-card.compact:hover { .search { margin-bottom: 10px; position: relative; + + &__popout { + box-sizing: border-box; + display: none; + position: absolute; + inset-inline-start: 0; + margin-top: -2px; + width: 100%; + background: $ui-base-color; + border-radius: 0 0 4px 4px; + box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); + z-index: 2; + font-size: 13px; + padding: 15px 5px; + + h4 { + text-transform: uppercase; + color: $dark-text-color; + font-weight: 500; + padding: 0 10px; + margin-bottom: 10px; + } + + &__menu { + &__message { + color: $dark-text-color; + padding: 0 10px; + } + + &__item { + display: block; + box-sizing: border-box; + width: 100%; + border: 0; + font: inherit; + background: transparent; + color: $darker-text-color; + padding: 10px; + cursor: pointer; + border-radius: 4px; + text-align: start; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + + &--flex { + display: flex; + justify-content: space-between; + } + + .icon-button { + transition: none; + } + + &:hover, + &:focus, + &:active, + &.selected { + background: $ui-highlight-color; + color: $primary-text-color; + + .icon-button { + color: $primary-text-color; + } + } + + mark { + background: transparent; + font-weight: 700; + color: $primary-text-color; + } + } + } + } + + &.active { + .search__popout { + display: block; + } + } } .search__input { @@ -6695,10 +6775,6 @@ a.status-card.compact:hover { border-radius: 0; } -.search-popout { - @include search-popout; -} - noscript { text-align: center; @@ -7985,6 +8061,10 @@ noscript { padding: 10px; } + .search__popout { + border: 1px solid lighten($ui-base-color, 8%); + } + .search .fa { top: 10px; inset-inline-end: 10px; From 2f7c3cb628ddf0438452325c52359f575aab6890 Mon Sep 17 00:00:00 2001 From: Alison Wheeler Date: Sun, 2 Apr 2023 05:49:37 +0100 Subject: [PATCH 0801/1220] Update redis_config.rb to remove warning message (#24352) --- lib/mastodon/redis_config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb index 3e97da873a..2dbe76f83c 100644 --- a/lib/mastodon/redis_config.rb +++ b/lib/mastodon/redis_config.rb @@ -35,7 +35,7 @@ REDIS_CACHE_PARAMS = { url: ENV['CACHE_REDIS_URL'], expires_in: 10.minutes, namespace: cache_namespace, - pool_size: Sidekiq.server? ? Sidekiq.options[:concurrency] : Integer(ENV['MAX_THREADS'] || 5), + pool_size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5), pool_timeout: 5, connect_timeout: 5, }.freeze From 4520e6473afe901005e7ac532317f4b4f1af9ead Mon Sep 17 00:00:00 2001 From: fusagiko / takayamaki <24884114+takayamaki@users.noreply.github.com> Date: Mon, 3 Apr 2023 10:31:39 +0900 Subject: [PATCH 0802/1220] [Proposal] Make able to write React in Typescript (#16210) Co-authored-by: berlysia Co-authored-by: fusagiko / takayamaki --- .eslintrc.js | 19 +- app/javascript/hooks/useHovering.ts | 17 + .../mastodon/actions/picture_in_picture.js | 1 + app/javascript/mastodon/actions/streaming.js | 20 +- app/javascript/mastodon/api.js | 4 +- app/javascript/mastodon/components/avatar.jsx | 62 - app/javascript/mastodon/components/avatar.tsx | 40 + .../mastodon/components/blurhash.jsx | 1 + .../mastodon/components/common_counter.jsx | 1 + .../mastodon/components/hashtag.jsx | 12 +- .../features/emoji/emoji_mart_data_light.js | 2 +- .../emoji/emoji_unicode_mapping_light.js | 6 +- app/javascript/mastodon/initial_state.js | 1 + app/javascript/mastodon/is_mobile.js | 4 +- app/javascript/mastodon/stream.js | 34 +- .../mastodon/utils/notifications.js | 2 +- app/javascript/mastodon/uuid.js | 3 - app/javascript/mastodon/uuid.ts | 3 + app/javascript/packs/public-path.js | 1 - app/javascript/types/resources.ts | 13 + babel.config.js | 1 + config/webpack/rules/babel.js | 2 +- config/webpacker.yml | 2 + package.json | 44 +- tsconfig.json | 13 + yarn.lock | 1002 +++++++++++++++-- 26 files changed, 1099 insertions(+), 211 deletions(-) create mode 100644 app/javascript/hooks/useHovering.ts delete mode 100644 app/javascript/mastodon/components/avatar.jsx create mode 100644 app/javascript/mastodon/components/avatar.tsx delete mode 100644 app/javascript/mastodon/uuid.js create mode 100644 app/javascript/mastodon/uuid.ts create mode 100644 app/javascript/types/resources.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index faed3c54a5..e38fd14f38 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -20,13 +20,14 @@ module.exports = { ATTACHMENT_HOST: false, }, - parser: '@babel/eslint-parser', + parser: '@typescript-eslint/parser', plugins: [ 'react', 'jsx-a11y', 'import', 'promise', + '@typescript-eslint', ], parserOptions: { @@ -41,14 +42,13 @@ module.exports = { presets: ['@babel/react', '@babel/env'], }, }, - + extends: [ + 'plugin:import/typescript', + ], settings: { react: { version: 'detect', }, - 'import/extensions': [ - '.js', '.jsx', - ], 'import/ignore': [ 'node_modules', '\\.(css|scss|json)$', @@ -56,7 +56,7 @@ module.exports = { 'import/resolver': { node: { paths: ['app/javascript'], - extensions: ['.js', '.jsx'], + extensions: ['.js', '.jsx', '.ts', '.tsx'], }, }, }, @@ -97,7 +97,8 @@ module.exports = { 'no-self-assign': 'off', 'no-trailing-spaces': 'warn', 'no-unused-expressions': 'error', - 'no-unused-vars': [ + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ 'error', { vars: 'all', @@ -116,7 +117,7 @@ module.exports = { semi: 'error', 'valid-typeof': 'error', - 'react/jsx-filename-extension': ['error', { 'allow': 'as-needed' }], + 'react/jsx-filename-extension': ['error', { extensions: ['.jsx', 'tsx'] }], 'react/jsx-boolean-value': 'error', 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], 'react/jsx-curly-spacing': 'error', @@ -192,6 +193,8 @@ module.exports = { { js: 'never', jsx: 'never', + ts: 'never', + tsx: 'never', }, ], 'import/newline-after-import': 'error', diff --git a/app/javascript/hooks/useHovering.ts b/app/javascript/hooks/useHovering.ts new file mode 100644 index 0000000000..2062e70d26 --- /dev/null +++ b/app/javascript/hooks/useHovering.ts @@ -0,0 +1,17 @@ +import { useCallback, useState } from 'react'; + +export const useHovering = (animate?: boolean) => { + const [hovering, setHovering] = useState(animate ?? false); + + const handleMouseEnter = useCallback(() => { + if (animate) return; + setHovering(true); + }, [animate]); + + const handleMouseLeave = useCallback(() => { + if (animate) return; + setHovering(false); + }, [animate]); + + return { hovering, handleMouseEnter, handleMouseLeave }; +}; diff --git a/app/javascript/mastodon/actions/picture_in_picture.js b/app/javascript/mastodon/actions/picture_in_picture.js index 33d8d57d47..6b9ff7709e 100644 --- a/app/javascript/mastodon/actions/picture_in_picture.js +++ b/app/javascript/mastodon/actions/picture_in_picture.js @@ -23,6 +23,7 @@ export const PICTURE_IN_PICTURE_REMOVE = 'PICTURE_IN_PICTURE_REMOVE'; * @return {object} */ export const deployPictureInPicture = (statusId, accountId, playerType, props) => { + // @ts-expect-error return (dispatch, getState) => { // Do not open a player for a toot that does not exist if (getState().hasIn(['statuses', statusId])) { diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index 84709083fa..4d4ea83e45 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -46,6 +46,7 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti connectStream(channelName, params, (dispatch, getState) => { const locale = getState().getIn(['meta', 'locale']); + // @ts-expect-error let pollingId; /** @@ -61,9 +62,10 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti onConnect() { dispatch(connectTimeline(timelineId)); + // @ts-expect-error if (pollingId) { - clearTimeout(pollingId); - pollingId = null; + // @ts-ignore + clearTimeout(pollingId); pollingId = null; } if (options.fillGaps) { @@ -75,31 +77,38 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti dispatch(disconnectTimeline(timelineId)); if (options.fallback) { + // @ts-expect-error pollingId = setTimeout(() => useFallback(options.fallback), randomUpTo(40000)); } }, - onReceive (data) { - switch(data.event) { + onReceive(data) { + switch (data.event) { case 'update': + // @ts-expect-error dispatch(updateTimeline(timelineId, JSON.parse(data.payload), options.accept)); break; case 'status.update': + // @ts-expect-error dispatch(updateStatus(JSON.parse(data.payload))); break; case 'delete': dispatch(deleteFromTimelines(data.payload)); break; case 'notification': + // @ts-expect-error dispatch(updateNotifications(JSON.parse(data.payload), messages, locale)); break; case 'conversation': + // @ts-expect-error dispatch(updateConversations(JSON.parse(data.payload))); break; case 'announcement': + // @ts-expect-error dispatch(updateAnnouncements(JSON.parse(data.payload))); break; case 'announcement.reaction': + // @ts-expect-error dispatch(updateAnnouncementsReaction(JSON.parse(data.payload))); break; case 'announcement.delete': @@ -115,7 +124,9 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti * @param {function(): void} done */ const refreshHomeTimelineAndNotification = (dispatch, done) => { + // @ts-expect-error dispatch(expandHomeTimeline({}, () => + // @ts-expect-error dispatch(expandNotifications({}, () => dispatch(fetchAnnouncements(done)))))); }; @@ -124,6 +135,7 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => { * @return {function(): void} */ export const connectUserStream = () => + // @ts-expect-error connectTimelineStream('home', 'user', {}, { fallback: refreshHomeTimelineAndNotification, fillGaps: fillHomeTimelineGaps }); /** diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js index 6bbddbef66..42b64d6cc5 100644 --- a/app/javascript/mastodon/api.js +++ b/app/javascript/mastodon/api.js @@ -36,7 +36,7 @@ const setCSRFHeader = () => { ready(setCSRFHeader); /** - * @param {() => import('immutable').Map} getState + * @param {() => import('immutable').Map} getState * @returns {import('axios').RawAxiosRequestHeaders} */ const authorizationHeaderFromState = getState => { @@ -52,7 +52,7 @@ const authorizationHeaderFromState = getState => { }; /** - * @param {() => import('immutable').Map} getState + * @param {() => import('immutable').Map} getState * @returns {import('axios').AxiosInstance} */ export default function api(getState) { diff --git a/app/javascript/mastodon/components/avatar.jsx b/app/javascript/mastodon/components/avatar.jsx deleted file mode 100644 index 013454ccf4..0000000000 --- a/app/javascript/mastodon/components/avatar.jsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { autoPlayGif } from '../initial_state'; -import classNames from 'classnames'; - -export default class Avatar extends React.PureComponent { - - static propTypes = { - account: ImmutablePropTypes.map, - size: PropTypes.number.isRequired, - style: PropTypes.object, - inline: PropTypes.bool, - animate: PropTypes.bool, - }; - - static defaultProps = { - animate: autoPlayGif, - size: 20, - inline: false, - }; - - state = { - hovering: false, - }; - - handleMouseEnter = () => { - if (this.props.animate) return; - this.setState({ hovering: true }); - }; - - handleMouseLeave = () => { - if (this.props.animate) return; - this.setState({ hovering: false }); - }; - - render () { - const { account, size, animate, inline } = this.props; - const { hovering } = this.state; - - const style = { - ...this.props.style, - width: `${size}px`, - height: `${size}px`, - }; - - let src; - - if (hovering || animate) { - src = account?.get('avatar'); - } else { - src = account?.get('avatar_static'); - } - - return ( -
    - {src && {account?.get('acct')}} -
    - ); - } - -} diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx new file mode 100644 index 0000000000..54ac611e65 --- /dev/null +++ b/app/javascript/mastodon/components/avatar.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import classNames from 'classnames'; +import { autoPlayGif } from '../initial_state'; +import { useHovering } from '../../hooks/useHovering'; +import type { Account } from '../../types/resources'; + +type Props = { + account: Account; + size: number; + style?: React.CSSProperties; + inline?: boolean; + animate?: boolean; +} + +export const Avatar: React.FC = ({ + account, + animate = autoPlayGif, + size = 20, + inline = false, + style: styleFromParent, +}) => { + + const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate); + + const style = { + ...styleFromParent, + width: `${size}px`, + height: `${size}px`, + }; + + const src = (hovering || animate) ? account?.get('avatar') : account?.get('avatar_static'); + + return ( +
    + {src && {account?.get('acct')}} +
    + ); +}; + +export default Avatar; diff --git a/app/javascript/mastodon/components/blurhash.jsx b/app/javascript/mastodon/components/blurhash.jsx index 2af5cfc568..07cd31b6ca 100644 --- a/app/javascript/mastodon/components/blurhash.jsx +++ b/app/javascript/mastodon/components/blurhash.jsx @@ -44,6 +44,7 @@ function Blurhash({ const ctx = canvas.getContext('2d'); const imageData = new ImageData(pixels, width, height); + // @ts-expect-error ctx.putImageData(imageData, 0, 0); } catch (err) { console.error('Blurhash decoding failure', { err, hash }); diff --git a/app/javascript/mastodon/components/common_counter.jsx b/app/javascript/mastodon/components/common_counter.jsx index dd9b62de9b..d97e7e7d62 100644 --- a/app/javascript/mastodon/components/common_counter.jsx +++ b/app/javascript/mastodon/components/common_counter.jsx @@ -1,5 +1,6 @@ // @ts-check import React from 'react'; +// @ts-expect-error import { FormattedMessage } from 'react-intl'; /** diff --git a/app/javascript/mastodon/components/hashtag.jsx b/app/javascript/mastodon/components/hashtag.jsx index e516fc0867..19d87508ba 100644 --- a/app/javascript/mastodon/components/hashtag.jsx +++ b/app/javascript/mastodon/components/hashtag.jsx @@ -1,11 +1,14 @@ // @ts-check import React from 'react'; import { Sparklines, SparklinesCurve } from 'react-sparklines'; +// @ts-expect-error import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { Link } from 'react-router-dom'; +// @ts-expect-error import ShortNumber from 'mastodon/components/short_number'; +// @ts-expect-error import Skeleton from 'mastodon/components/skeleton'; import classNames from 'classnames'; @@ -19,11 +22,11 @@ class SilentErrorBoundary extends React.Component { error: false, }; - componentDidCatch () { + componentDidCatch() { this.setState({ error: true }); } - render () { + render() { if (this.state.error) { return null; } @@ -50,11 +53,13 @@ export const accountsCountRenderer = (displayNumber, pluralReady) => ( /> ); +// @ts-expect-error export const ImmutableHashtag = ({ hashtag }) => ( day.get('uses')).toArray()} /> ); @@ -63,6 +68,7 @@ ImmutableHashtag.propTypes = { hashtag: ImmutablePropTypes.map.isRequired, }; +// @ts-expect-error const Hashtag = ({ name, to, people, uses, history, className, description, withGraph }) => (
    @@ -86,7 +92,9 @@ const Hashtag = ({ name, to, people, uses, history, className, description, with {withGraph && (
    + {/* @ts-expect-error */} 0)}> + {/* @ts-expect-error */} diff --git a/app/javascript/mastodon/features/emoji/emoji_mart_data_light.js b/app/javascript/mastodon/features/emoji/emoji_mart_data_light.js index 45086fc4cc..49813537d7 100644 --- a/app/javascript/mastodon/features/emoji/emoji_mart_data_light.js +++ b/app/javascript/mastodon/features/emoji/emoji_mart_data_light.js @@ -9,7 +9,7 @@ const emojis = {}; // decompress Object.keys(shortCodesToEmojiData).forEach((shortCode) => { let [ - filenameData, // eslint-disable-line no-unused-vars + filenameData, // eslint-disable-line @typescript-eslint/no-unused-vars searchData, ] = shortCodesToEmojiData[shortCode]; let [ diff --git a/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js b/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js index 918684c310..1a38fde234 100644 --- a/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js +++ b/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js @@ -4,9 +4,9 @@ const [ shortCodesToEmojiData, - skins, // eslint-disable-line no-unused-vars - categories, // eslint-disable-line no-unused-vars - short_names, // eslint-disable-line no-unused-vars + skins, // eslint-disable-line @typescript-eslint/no-unused-vars + categories, // eslint-disable-line @typescript-eslint/no-unused-vars + short_names, // eslint-disable-line @typescript-eslint/no-unused-vars emojisWithoutShortCodes, ] = require('./emoji_compressed'); const { unicodeToFilename } = require('./unicode_to_filename'); diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index 919e0fc282..150776f84a 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -132,6 +132,7 @@ export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); export const languages = initialState?.languages; +// @ts-expect-error export const statusPageUrl = getMeta('status_page_url'); export default initialState; diff --git a/app/javascript/mastodon/is_mobile.js b/app/javascript/mastodon/is_mobile.js index 3c8ec1545c..d0669b74bf 100644 --- a/app/javascript/mastodon/is_mobile.js +++ b/app/javascript/mastodon/is_mobile.js @@ -1,6 +1,7 @@ // @ts-check import { supportsPassiveEvents } from 'detect-passive-events'; +// @ts-expect-error import { forceSingleColumn } from 'mastodon/initial_state'; const LAYOUT_BREAKPOINT = 630; @@ -24,6 +25,7 @@ export const layoutFromWindow = () => { } }; +// @ts-expect-error const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; const listenerOptions = supportsPassiveEvents ? { passive: true } : false; @@ -33,7 +35,7 @@ let userTouching = false; const touchListener = () => { userTouching = true; - window.removeEventListener('touchstart', touchListener, listenerOptions); + window.removeEventListener('touchstart', touchListener); }; window.addEventListener('touchstart', touchListener, listenerOptions); diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js index c6d12cd6ff..95e0359d0a 100644 --- a/app/javascript/mastodon/stream.js +++ b/app/javascript/mastodon/stream.js @@ -59,6 +59,7 @@ const subscribe = ({ channelName, params, onConnect }) => { subscriptionCounters[key] = subscriptionCounters[key] || 0; if (subscriptionCounters[key] === 0) { + // @ts-expect-error sharedConnection.send(JSON.stringify({ type: 'subscribe', stream: channelName, ...params })); } @@ -74,7 +75,9 @@ const unsubscribe = ({ channelName, params, onDisconnect }) => { subscriptionCounters[key] = subscriptionCounters[key] || 1; + // @ts-expect-error if (subscriptionCounters[key] === 1 && sharedConnection.readyState === WebSocketClient.OPEN) { + // @ts-expect-error sharedConnection.send(JSON.stringify({ type: 'unsubscribe', stream: channelName, ...params })); } @@ -83,11 +86,12 @@ const unsubscribe = ({ channelName, params, onDisconnect }) => { }; const sharedCallbacks = { - connected () { + connected() { subscriptions.forEach(subscription => subscribe(subscription)); }, - received (data) { + // @ts-expect-error + received(data) { const { stream } = data; subscriptions.filter(({ channelName, params }) => { @@ -111,11 +115,11 @@ const sharedCallbacks = { }); }, - disconnected () { + disconnected() { subscriptions.forEach(subscription => unsubscribe(subscription)); }, - reconnected () { + reconnected() { }, }; @@ -138,6 +142,7 @@ const channelNameWithInlineParams = (channelName, params) => { * @param {function(Function, Function): { onConnect: (function(): void), onReceive: (function(StreamEvent): void), onDisconnect: (function(): void) }} callbacks * @return {function(): void} */ +// @ts-expect-error export const connectStream = (channelName, params, callbacks) => (dispatch, getState) => { const streamingAPIBaseURL = getState().getIn(['meta', 'streaming_api_base_url']); const accessToken = getState().getIn(['meta', 'access_token']); @@ -147,19 +152,19 @@ export const connectStream = (channelName, params, callbacks) => (dispatch, getS // to using individual connections for each channel if (!streamingAPIBaseURL.startsWith('ws')) { const connection = createConnection(streamingAPIBaseURL, accessToken, channelNameWithInlineParams(channelName, params), { - connected () { + connected() { onConnect(); }, - received (data) { + received(data) { onReceive(data); }, - disconnected () { + disconnected() { onDisconnect(); }, - reconnected () { + reconnected() { onConnect(); }, }); @@ -227,14 +232,19 @@ const handleEventSourceMessage = (e, received) => { const createConnection = (streamingAPIBaseURL, accessToken, channelName, { connected, received, disconnected, reconnected }) => { const params = channelName.split('&'); + // @ts-expect-error channelName = params.shift(); if (streamingAPIBaseURL.startsWith('ws')) { + // @ts-expect-error const ws = new WebSocketClient(`${streamingAPIBaseURL}/api/v1/streaming/?${params.join('&')}`, accessToken); - ws.onopen = connected; - ws.onmessage = e => received(JSON.parse(e.data)); - ws.onclose = disconnected; + // @ts-expect-error + ws.onopen = connected; + ws.onmessage = e => received(JSON.parse(e.data)); + // @ts-expect-error + ws.onclose = disconnected; + // @ts-expect-error ws.onreconnect = reconnected; return ws; @@ -256,7 +266,7 @@ const createConnection = (streamingAPIBaseURL, accessToken, channelName, { conne }; KNOWN_EVENT_TYPES.forEach(type => { - es.addEventListener(type, e => handleEventSourceMessage(/** @type {MessageEvent} */ (e), received)); + es.addEventListener(type, e => handleEventSourceMessage(/** @type {MessageEvent} */(e), received)); }); es.onerror = /** @type {function(): void} */ (disconnected); diff --git a/app/javascript/mastodon/utils/notifications.js b/app/javascript/mastodon/utils/notifications.js index 3cdf7caea0..7634cac21f 100644 --- a/app/javascript/mastodon/utils/notifications.js +++ b/app/javascript/mastodon/utils/notifications.js @@ -3,7 +3,7 @@ const checkNotificationPromise = () => { try { - // eslint-disable-next-line promise/catch-or-return, promise/valid-params + // eslint-disable-next-line promise/catch-or-return Notification.requestPermission().then(); } catch(e) { return false; diff --git a/app/javascript/mastodon/uuid.js b/app/javascript/mastodon/uuid.js deleted file mode 100644 index 0d2cfaa776..0000000000 --- a/app/javascript/mastodon/uuid.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function uuid(a) { - return a ? (a^Math.random() * 16 >> a / 4).toString(16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, uuid); -} diff --git a/app/javascript/mastodon/uuid.ts b/app/javascript/mastodon/uuid.ts new file mode 100644 index 0000000000..655bcf78c6 --- /dev/null +++ b/app/javascript/mastodon/uuid.ts @@ -0,0 +1,3 @@ +export default function uuid(a?: string): string { + return a ? ((a as any as number) ^ Math.random() * 16 >> (a as any as number) / 4).toString(16) : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} diff --git a/app/javascript/packs/public-path.js b/app/javascript/packs/public-path.js index f4d166a771..539e3b8c4f 100644 --- a/app/javascript/packs/public-path.js +++ b/app/javascript/packs/public-path.js @@ -17,5 +17,4 @@ function formatPublicPath(host = '', path = '') { const cdnHost = document.querySelector('meta[name=cdn-host]'); -// eslint-disable-next-line no-undef __webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH); diff --git a/app/javascript/types/resources.ts b/app/javascript/types/resources.ts new file mode 100644 index 0000000000..efbb1faa76 --- /dev/null +++ b/app/javascript/types/resources.ts @@ -0,0 +1,13 @@ +interface MastodonMap { + get(key: K): T[K]; + has(key: K): boolean; + set(key: K, value: T[K]): this; +} + +type AccountValues = { + id: number; + avatar: string; + avatar_static: string; + [key: string]: any; +} +export type Account = MastodonMap diff --git a/babel.config.js b/babel.config.js index 3ff98802c7..79170fda6a 100644 --- a/babel.config.js +++ b/babel.config.js @@ -13,6 +13,7 @@ module.exports = (api) => { const config = { presets: [ + '@babel/preset-typescript', ['@babel/react', reactOptions], ['@babel/env', envOptions], ], diff --git a/config/webpack/rules/babel.js b/config/webpack/rules/babel.js index 2fc245c432..ba1aff93aa 100644 --- a/config/webpack/rules/babel.js +++ b/config/webpack/rules/babel.js @@ -2,7 +2,7 @@ const { join, resolve } = require('path'); const { env, settings } = require('../configuration'); module.exports = { - test: /\.(js|jsx|mjs)$/, + test: /\.(js|jsx|mjs|ts|tsx)$/, include: [ settings.source_path, ...settings.resolved_paths, diff --git a/config/webpacker.yml b/config/webpacker.yml index 1745a17988..6fd0fa1a0c 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -36,6 +36,8 @@ default: &default - .mjs - .js - .jsx + - .ts + - .tsx - .sass - .scss - .css diff --git a/package.json b/package.json index 915a5331f8..46a18d755a 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,11 @@ "build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack", "manage:translations": "node ./config/webpack/translationRunner.js", "start": "node ./streaming/index.js", - "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", + "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:typecheck && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", - "test:lint:js": "eslint --ext=.js,.jsx . --cache --report-unused-disable-directives", + "test:lint:js": "eslint --ext=.js,.jsx,.ts,.tsx . --cache --report-unused-disable-directives", "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", + "test:typecheck": "tsc --noEmit", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write .", "format-check": "prettier --check .", @@ -139,9 +140,45 @@ "ws": "^8.12.1" }, "devDependencies": { - "@babel/eslint-parser": "^7.21.3", + "@babel/preset-typescript": "^7.21.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", + "@types/babel__core": "^7.20.0", + "@types/emoji-mart": "^3.0.9", + "@types/escape-html": "^1.0.2", + "@types/eslint": "^8.21.2", + "@types/express": "^4.17.17", + "@types/glob": "^8.1.0", + "@types/http-link-header": "^1.0.3", + "@types/intl": "^1.2.0", + "@types/jest": "^29.4.2", + "@types/js-yaml": "^4.0.5", + "@types/lodash": "^4.14.191", + "@types/npmlog": "^4.1.4", + "@types/object-assign": "^4.0.30", + "@types/pg": "^8.6.6", + "@types/prop-types": "^15.7.5", + "@types/punycode": "^2.1.0", + "@types/raf": "^3.4.0", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@types/react-intl": "2.3.18", + "@types/react-motion": "^0.0.33", + "@types/react-redux": "^7.1.25", + "@types/react-router-dom": "^5.3.3", + "@types/react-sparklines": "^1.7.2", + "@types/react-swipeable-views": "^0.13.1", + "@types/react-test-renderer": "^18.0.0", + "@types/react-toggle": "^4.0.3", + "@types/redux-immutable": "^4.0.3", + "@types/requestidlecallback": "^0.3.5", + "@types/throng": "^5.0.4", + "@types/uuid": "^9.0.1", + "@types/webpack": "^5.28.0", + "@types/webpack-bundle-analyzer": "^4.6.0", + "@types/yargs": "^17.0.22", + "@typescript-eslint/eslint-plugin": "^5.55.0", + "@typescript-eslint/parser": "^5.55.0", "babel-jest": "^29.5.0", "eslint": "^8.36.0", "eslint-plugin-import": "~2.27.5", @@ -160,6 +197,7 @@ "react-test-renderer": "^16.14.0", "stylelint": "^15.3.0", "stylelint-config-standard-scss": "^7.0.1", + "typescript": "^4.9.5", "webpack-dev-server": "^3.11.3", "yargs": "^17.7.1" }, diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000..505b19d89b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "jsx": "react", + "target": "esnext", + "moduleResolution": "node", + "allowJs": true, + "noEmit": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true + }, + "include": ["app/javascript/mastodon", "app/javascript/packs"] +} diff --git a/yarn.lock b/yarn.lock index fec4329f19..881c7fffb5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,7 +24,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -62,25 +62,17 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/eslint-parser@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" - integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== +"@babel/generator@^7.15.4": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.17.10": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.6.tgz#9ab2d46d3cbf631f0e80f72e72874a04c3fc12a9" - integrity sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw== - dependencies: - "@babel/types" "^7.18.6" - "@jridgewell/gen-mapping" "^0.3.0" + "@babel/types" "^7.21.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.21.3": +"@babel/generator@^7.21.0", "@babel/generator@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== @@ -133,7 +125,7 @@ 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.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== @@ -147,6 +139,20 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" +"@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" + integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@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": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" @@ -167,11 +173,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -184,13 +185,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.17.9": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== +"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": version "7.19.0" @@ -200,15 +201,7 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" -"@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6": +"@babel/helper-hoist-variables@^7.15.4", "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== @@ -305,7 +298,7 @@ dependencies: "@babel/types" "^7.20.0" -"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6": +"@babel/helper-split-export-declaration@^7.15.4", "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== @@ -317,12 +310,12 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== +"@babel/helper-validator-identifier@^7.14.0": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== -"@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -332,6 +325,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== +"@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + "@babel/helper-wrap-function@^7.18.9": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396" @@ -360,17 +358,27 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== +"@babel/parser@^7.1.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.1.tgz#8f4ffd45f779e6132780835ffa7a215fa0b2d181" + integrity sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA== -"@babel/parser@^7.17.10": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" - integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== +"@babel/parser@^7.12.13": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" + integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== -"@babel/parser@^7.20.7", "@babel/parser@^7.21.3": +"@babel/parser@^7.14.7", "@babel/parser@^7.20.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4" + integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg== + +"@babel/parser@^7.15.4": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== + +"@babel/parser@^7.21.0", "@babel/parser@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== @@ -646,6 +654,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-typescript@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript@^7.7.2": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" @@ -941,6 +956,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-typescript@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz#f0956a153679e3b377ae5b7f0143427151e4c848" + integrity sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" @@ -1060,6 +1084,15 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" +"@babel/preset-typescript@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff" + integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-transform-typescript" "^7.21.0" + "@babel/runtime-corejs3@^7.10.2": version "7.10.3" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" @@ -1082,7 +1115,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.20.7": +"@babel/template@^7.18.10", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1092,15 +1125,31 @@ "@babel/types" "^7.20.7" "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3": +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc" + integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.0" + "@babel/types" "^7.21.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== @@ -1117,30 +1166,38 @@ globals "^11.1.0" "@babel/traverse@^7.7.2": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.13", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.0.tgz#3fc3fc74e0cdad878182e5f66cc6bcab1915a802" + integrity sha512-O2LVLdcnWplaGxiPBz12d0HcdN8QdxdsWYhz5LSeuukV/5mn2xUUc3gBeU4QBYPJ18g/UToe8F532XJ608prmg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" -"@babel/types@^7.17.10", "@babel/types@^7.18.6": +"@babel/types@^7.15.4": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.17.10": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.6.tgz#5d781dd10a3f0c9f1f931bd19de5eb26ec31acf0" integrity sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA== @@ -1148,7 +1205,16 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3": +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819" + integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.21.2", "@babel/types@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== @@ -1562,9 +1628,9 @@ chalk "^3.0.0" "@jest/types@^27.0.2": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + version "27.2.5" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" + integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -1616,6 +1682,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" @@ -1642,12 +1716,13 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - eslint-scope "5.1.1" + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1657,12 +1732,25 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1863,6 +1951,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.6.1" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -1885,21 +1984,93 @@ dependencies: "@babel/types" "^7.3.0" +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/emoji-mart@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/emoji-mart/-/emoji-mart-3.0.9.tgz#2f7ef5d9ec194f28029c46c81a5fc1e5b0efa73c" + integrity sha512-qdBo/2Y8MXaJ/2spKjDZocuq79GpnOhkwMHnK2GnVFa8WYFgfA+ei6sil3aeWQPCreOKIx9ogPpR5+7MaOqYAA== + dependencies: + "@types/react" "*" + +"@types/escape-html@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.2.tgz#072b7b13784fb3cee9c2450c22f36405983f5e3c" + integrity sha512-gaBLT8pdcexFztLSPRtriHeXY/Kn4907uOCZ4Q3lncFBkheAWOuNt53ypsF8szgxbEJ513UeBzcf4utN0EzEwA== + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^8.21.2": + version "8.21.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" + integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@types/express-serve-static-core@^4.17.33": + version "4.17.33" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" + integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.17": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -1909,6 +2080,14 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/glob@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + "@types/graceful-fs@^4.1.3": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -1916,6 +2095,11 @@ dependencies: "@types/node" "*" +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + "@types/hoist-non-react-statics@^3.3.0": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" @@ -1924,6 +2108,18 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" +"@types/http-link-header@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/http-link-header/-/http-link-header-1.0.3.tgz#899adf1d8d2036074514f3dbd148fb901ceff920" + integrity sha512-y8HkoD/vyid+5MrJ3aas0FvU3/BVBGcyG9kgxL0Zn4JwstA8CglFPnrR0RuzOjRCXwqzL5uxWC2IO7Ub0rMU2A== + dependencies: + "@types/node" "*" + +"@types/intl@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/intl/-/intl-1.2.0.tgz#1245511f13064402087979f498764611a3c758fc" + integrity sha512-BP+KwmOvD9AR5aoxnbyyPr3fAtpjEI/bVImHsotmpuC43+z0NAmjJ9cQbX7vPCq8XcvCeAVc8E3KSQPYNaPsUQ== + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -1959,6 +2155,19 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/jest@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.2.tgz#13ca45d528a0f81a4792b7df199f58ad46c2a0e3" + integrity sha512-bbne90W7is+m88ezmZrLiTpp41tIoTdvPC5t3gLoNgu/6qbGdWTC2JWqPWQRJn2Q7rVYTr8aTWqOjhGJDXyvAQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/js-yaml@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + "@types/jsdom@^20.0.0": version "20.0.0" resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" @@ -1968,6 +2177,11 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" @@ -1978,11 +2192,26 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/lodash@^4.14.191": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -1998,11 +2227,30 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/npmlog@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.4.tgz#30eb872153c7ead3e8688c476054ddca004115f6" + integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== + +"@types/object-assign@^4.0.30": + version "4.0.30" + resolved "https://registry.yarnpkg.com/@types/object-assign/-/object-assign-4.0.30.tgz#8949371d5a99f4381ee0f1df0a9b7a187e07e652" + integrity sha512-HhE8gFfLj321pa6OE59QmOdL5NgIOhkdYn7MWnZTOcHOms8XFzNgr9+A0/GbN0XEX9wTM58yg4YXKhGr69QIUw== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/pg@^8.6.6": + version "8.6.6" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.6.tgz#21cdf873a3e345a6e78f394677e3b3b1b543cb80" + integrity sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^2.2.0" + "@types/prettier@^2.1.5": version "2.2.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" @@ -2013,6 +2261,31 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== +"@types/prop-types@^15.7.5": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/punycode@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" + integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/raf@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.0.tgz#2b72cbd55405e071f1c4d29992638e022b20acc2" + integrity sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + "@types/react-dom@<18.0.0": version "17.0.15" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156" @@ -2020,6 +2293,25 @@ dependencies: "@types/react" "^17" +"@types/react-dom@^18.0.11": + version "18.0.11" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" + integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== + dependencies: + "@types/react" "*" + +"@types/react-intl@2.3.18": + version "2.3.18" + resolved "https://registry.yarnpkg.com/@types/react-intl/-/react-intl-2.3.18.tgz#fd2d8b7f4d0a1dd05b5f1784ab0d7fe1786a690d" + integrity sha512-DVNJs49zUxKRZng8VuILE886Yihdsf3yLr5vHk9zJrmF8SyRSK3sxNSvikAKxNkv9hX55XBTJShz6CkJnbNjgg== + +"@types/react-motion@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/react-motion/-/react-motion-0.0.33.tgz#c156c400ace995584990344cc0239e41f411f425" + integrity sha512-R9grd4EwdDBcKKq7Zhszd8ukyy2BLKN6ooNI0V39nUl/sui+m7VI94cdebYemBteoPHmO7J7BZk+cIf+Xnk4TA== + dependencies: + "@types/react" "*" + "@types/react-redux@^7.1.20": version "7.1.20" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" @@ -2030,6 +2322,61 @@ hoist-non-react-statics "^3.3.0" redux "^4.0.0" +"@types/react-redux@^7.1.25": + version "7.1.25" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.25.tgz#de841631205b24f9dfb4967dd4a7901e048f9a88" + integrity sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg== + dependencies: + "@types/hoist-non-react-statics" "^3.3.0" + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + redux "^4.0.0" + +"@types/react-router-dom@^5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.20" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react-sparklines@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@types/react-sparklines/-/react-sparklines-1.7.2.tgz#c14e80623abd3669a10f18d13f6fb9fbdc322f70" + integrity sha512-N1GwO7Ri5C5fE8+CxhiDntuSw1qYdGytBuedKrCxWpaojXm4WnfygbdBdc5sXGX7feMxDXBy9MNhxoUTwrMl4A== + dependencies: + "@types/react" "*" + +"@types/react-swipeable-views@^0.13.1": + version "0.13.1" + resolved "https://registry.yarnpkg.com/@types/react-swipeable-views/-/react-swipeable-views-0.13.1.tgz#381c8513deef5426623aa851033ff4f4831ae15c" + integrity sha512-Nuvywkv9CkwcUgItOCBszkc/pc8YSdiKV5E1AzOJ/p32Db50LgwhJFi5b1ANPgyWxB0Q5yn69aMURHyGi3MLyg== + dependencies: + "@types/react" "*" + +"@types/react-test-renderer@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz#7b7f69ca98821ea5501b21ba24ea7b6139da2243" + integrity sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ== + dependencies: + "@types/react" "*" + +"@types/react-toggle@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/react-toggle/-/react-toggle-4.0.3.tgz#8db98ac8d2c5e8c03c2d3a42027555c1cd2289da" + integrity sha512-57QdMWeeQdRjM2/p+udgYerxUbSkmeUIW18kwUttcci6GHkgxoqCsDZfRtsCsAHcvvM5VBQdtDUEgLWo2e87mA== + dependencies: + "@types/react" "*" + "@types/react-transition-group@^4.4.0": version "4.4.3" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.3.tgz#b0994da0a7023d67dbb4a8910a62112bc00d5688" @@ -2055,6 +2402,28 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.0.28": + version "18.0.28" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" + integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/redux-immutable@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/redux-immutable/-/redux-immutable-4.0.3.tgz#db92a281aa9a55a7b63bc1f20a233790305a1f06" + integrity sha512-wXUApt9ib9MGUqoHUMbQmQhqCkvykMHBW3z/P7DISMigFGpGRQ0kkbv7we0XNiv5sYEtEiZzNCEDm+W6ei04DA== + dependencies: + immutable "^4.0.0-rc.1" + redux "^4.0.0" + +"@types/requestidlecallback@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@types/requestidlecallback/-/requestidlecallback-0.3.5.tgz#132529751a4717fe7dc55fef5e930336f229543c" + integrity sha512-Uh49VrVTPfU0y/qIvXXYuRmd/sKLfVgQWZU1t8FWH22AIJyQbCei1aSmXdMDAijwGUFhBDpJmksiHEDsfiE/cg== + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -2072,6 +2441,19 @@ resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-1.0.0.tgz#295d36f01e2cb8bc3207ca1d9a68e210db6b40cb" integrity sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A== +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@types/serve-static@*": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + "@types/stack-utils@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" @@ -2084,6 +2466,11 @@ dependencies: "@types/jest" "*" +"@types/throng@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/throng/-/throng-5.0.4.tgz#d89173c17c6900c29e8ab964c3e7386972c600c3" + integrity sha512-/ILtJTyOCMVQFbcteY5WtMLiESDJkWjXdUfWkXhJZQmLnwvxrdYmfEXdqTb2BkFSrvwWnU63b+jB4O3YOLrClg== + "@types/tough-cookie@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" @@ -2094,11 +2481,34 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== +"@types/uuid@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" + integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== + "@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/webpack-bundle-analyzer@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.0.tgz#8863d62d2432126c2b3a9239cafa469215981c24" + integrity sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/webpack@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" + integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" @@ -2118,6 +2528,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^17.0.22": + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" + integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + dependencies: + "@types/yargs-parser" "*" + "@types/yargs@^17.0.8": version "17.0.10" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" @@ -2125,6 +2542,98 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/eslint-plugin@^5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz#bc2400c3a23305e8c9a9c04aa40933868aaaeb47" + integrity sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/type-utils" "5.55.0" + "@typescript-eslint/utils" "5.55.0" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.55.0.tgz#8c96a0b6529708ace1dcfa60f5e6aec0f5ed2262" + integrity sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw== + dependencies: + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" + integrity sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw== + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + +"@typescript-eslint/type-utils@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz#74bf0233523f874738677bb73cb58094210e01e9" + integrity sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA== + dependencies: + "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/utils" "5.55.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" + integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== + +"@typescript-eslint/typescript-estree@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" + integrity sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ== + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" + integrity sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" + integrity sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw== + dependencies: + "@typescript-eslint/types" "5.55.0" + eslint-visitor-keys "^3.3.0" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -2134,16 +2643,31 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" @@ -2168,11 +2692,35 @@ dependencies: "@webassemblyjs/ast" "1.9.0" +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -2183,6 +2731,13 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -2190,6 +2745,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -2197,11 +2759,30 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -2216,6 +2797,17 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -2227,6 +2819,16 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -2237,6 +2839,18 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -2261,6 +2875,14 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -2313,6 +2935,11 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -2328,7 +2955,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -3080,7 +3707,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: version "4.21.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== @@ -4444,6 +5071,14 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^5.10.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" @@ -4515,6 +5150,11 @@ es-get-iterator@^1.1.2: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -4679,7 +5319,7 @@ eslint-plugin-react@~7.32.2: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-scope@5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -4703,11 +5343,6 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" @@ -4822,7 +5457,7 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.3.0: +events@^3.0.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -4910,7 +5545,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.5.0: +expect@^29.0.0, expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -5026,9 +5661,9 @@ fastest-levenshtein@^1.0.16: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== dependencies: reusify "^1.0.4" @@ -5425,6 +6060,11 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -5535,6 +6175,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graceful-fs@^4.2.4: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -5871,7 +6516,17 @@ ignore@^5.2.0, ignore@^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.3.0: +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +immutable@^4.0.0-rc.1: + version "4.0.0-rc.12" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.12.tgz#ca59a7e4c19ae8d9bf74a97bdf0f6e2f2a5d0217" + integrity sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A== + +immutable@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== @@ -6887,6 +7542,15 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" @@ -7011,7 +7675,7 @@ json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -7205,6 +7869,11 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" @@ -7552,7 +8221,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -7792,6 +8461,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -8402,12 +9076,17 @@ pg-pool@^3.2.2: resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz#a560e433443ed4ad946b84d774b3f22452694dff" integrity sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA== +pg-protocol@*: + version "1.6.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" + integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== + pg-protocol@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz#43a71a92f6fe3ac559952555aa3335c8cb4908be" integrity sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA== -pg-types@^2.1.0: +pg-types@^2.1.0, pg-types@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== @@ -8847,7 +9526,7 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.5.0: +pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== @@ -9817,6 +10496,15 @@ schema-utils@^3.0, schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + scroll-behavior@^0.9.1: version "0.9.12" resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.12.tgz#1c22d273ec4ce6cd4714a443fead50227da9424c" @@ -9854,6 +10542,13 @@ semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -9892,6 +10587,13 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -10698,6 +11400,11 @@ tapable@^1.0, tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + tar@^6.0.2: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -10755,6 +11462,17 @@ terser-webpack-plugin@^4.2.3: terser "^5.3.4" webpack-sources "^1.4.3" +terser-webpack-plugin@^5.1.3: + version "5.3.7" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" + integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.5" + terser@^4.1.2: version "4.8.1" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" @@ -10774,6 +11492,16 @@ terser@^5.0.0, terser@^5.3.4: source-map "~0.8.0-beta.0" source-map-support "~0.5.20" +terser@^5.16.5: + version "5.16.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" + integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + tesseract.js-core@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.2.0.tgz#6ef78051272a381969fac3e45a226e85022cffef" @@ -10965,6 +11693,11 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tslib@^1.9.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -10975,6 +11708,13 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -11072,6 +11812,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -11361,6 +12106,14 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" @@ -11505,6 +12258,11 @@ webpack-sources@^1.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-so source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + webpack@^4.46.0: version "4.46.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" @@ -11534,6 +12292,36 @@ webpack@^4.46.0: watchpack "^1.7.4" webpack-sources "^1.4.1" +webpack@^5: + version "5.76.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" + integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" From be230be734e5b8e33e6336771878c5840bc9216f Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Mon, 3 Apr 2023 12:31:34 +0200 Subject: [PATCH 0803/1220] Fix build issues caused by #16210 (#24374) --- babel.config.js | 2 +- package.json | 5 +++-- yarn.lock | 56 ++++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/babel.config.js b/babel.config.js index 79170fda6a..9ed0740993 100644 --- a/babel.config.js +++ b/babel.config.js @@ -20,6 +20,7 @@ module.exports = (api) => { plugins: [ ['react-intl', { messagesDir: './build/messages' }], 'preval', + '@babel/plugin-proposal-nullish-coalescing-operator', ], overrides: [ { @@ -67,4 +68,3 @@ module.exports = (api) => { return config; }; - diff --git a/package.json b/package.json index 46a18d755a..9d798636d0 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,10 @@ "private": true, "dependencies": { "@babel/core": "^7.21.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", + "@babel/preset-typescript": "^7.21.0", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/runtime": "^7.21.0", @@ -140,7 +142,6 @@ "ws": "^8.12.1" }, "devDependencies": { - "@babel/preset-typescript": "^7.21.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", "@types/babel__core": "^7.20.0", @@ -174,7 +175,7 @@ "@types/requestidlecallback": "^0.3.5", "@types/throng": "^5.0.4", "@types/uuid": "^9.0.1", - "@types/webpack": "^5.28.0", + "@types/webpack": "^4.41.33", "@types/webpack-bundle-analyzer": "^4.6.0", "@types/yargs": "^17.0.22", "@typescript-eslint/eslint-plugin": "^5.55.0", diff --git a/yarn.lock b/yarn.lock index 881c7fffb5..640fee06c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -125,7 +125,7 @@ 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.21.0": +"@babel/helper-create-class-features-plugin@^7.18.6": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== @@ -2454,11 +2454,21 @@ "@types/mime" "*" "@types/node" "*" +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + "@types/stack-utils@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + "@types/testing-library__jest-dom@^5.9.1": version "5.9.1" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.1.tgz#aba5ee062b7880f69c212ef769389f30752806e5" @@ -2481,6 +2491,13 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== +"@types/uglify-js@*": + version "3.17.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5" + integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g== + dependencies: + source-map "^0.6.1" + "@types/uuid@^9.0.1": version "9.0.1" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" @@ -2500,14 +2517,26 @@ tapable "^2.2.0" webpack "^5" -"@types/webpack@^5.28.0": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" - integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== dependencies: "@types/node" "*" - tapable "^2.2.0" - webpack "^5" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.33": + version "4.41.33" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" + integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" "@types/yargs-parser@*": version "15.0.0" @@ -3082,6 +3111,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + anymatch@^3.0.3, anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" @@ -10858,6 +10895,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + source-map@^0.8.0-beta.0, source-map@~0.8.0-beta.0: version "0.8.0-beta.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" From 373e4a8ff034f189597cfbf651450b906eb598b1 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 3 Apr 2023 06:41:10 -0400 Subject: [PATCH 0804/1220] Move ESLint configs to overrides (#24370) --- .eslintrc.js | 36 ++++++++++++++++--- app/javascript/mastodon/performance.js | 2 +- .../mastodon/utils/notifications.js | 2 +- app/javascript/packs/public-path.js | 1 + package.json | 2 +- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index e38fd14f38..bbdfa7de27 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,7 +13,6 @@ module.exports = { browser: true, node: true, es6: true, - jest: true, }, globals: { @@ -42,9 +41,7 @@ module.exports = { presets: ['@babel/react', '@babel/env'], }, }, - extends: [ - 'plugin:import/typescript', - ], + settings: { react: { version: 'detect', @@ -203,6 +200,7 @@ module.exports = { { devDependencies: [ 'config/webpack/**', + 'app/javascript/mastodon/performance.js', 'app/javascript/mastodon/test_setup.js', 'app/javascript/**/__tests__/**', ], @@ -238,5 +236,35 @@ module.exports = { sourceType: 'script', }, }, + { + files: [ + '**/*.ts', + '**/*.tsx', + ], + + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react/recommended', + 'plugin:jsx-a11y/recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'plugin:promise/recommended', + ], + + rules: { + '@typescript-eslint/no-explicit-any': 'off', + }, + }, + { + files: [ + '**/__tests__/*.js', + '**/__tests__/*.jsx', + ], + + env: { + jest: true, + }, + }, ], }; diff --git a/app/javascript/mastodon/performance.js b/app/javascript/mastodon/performance.js index 2b7e1bda84..95cf962d6b 100644 --- a/app/javascript/mastodon/performance.js +++ b/app/javascript/mastodon/performance.js @@ -12,7 +12,7 @@ if (process.env.NODE_ENV === 'development') { // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135 performance.setResourceTimingBufferSize(Infinity); } - // eslint-disable-next-line import/no-extraneous-dependencies + marky = require('marky'); // allows us to easily do e.g. ReactPerf.printWasted() while debugging //window.ReactPerf = require('react-addons-perf'); diff --git a/app/javascript/mastodon/utils/notifications.js b/app/javascript/mastodon/utils/notifications.js index 7634cac21f..42623ac7c6 100644 --- a/app/javascript/mastodon/utils/notifications.js +++ b/app/javascript/mastodon/utils/notifications.js @@ -3,7 +3,7 @@ const checkNotificationPromise = () => { try { - // eslint-disable-next-line promise/catch-or-return + // eslint-disable-next-line promise/valid-params, promise/catch-or-return Notification.requestPermission().then(); } catch(e) { return false; diff --git a/app/javascript/packs/public-path.js b/app/javascript/packs/public-path.js index 539e3b8c4f..f4d166a771 100644 --- a/app/javascript/packs/public-path.js +++ b/app/javascript/packs/public-path.js @@ -17,4 +17,5 @@ function formatPublicPath(host = '', path = '') { const cdnHost = document.querySelector('meta[name=cdn-host]'); +// eslint-disable-next-line no-undef __webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH); diff --git a/package.json b/package.json index 9d798636d0..0b06353a1d 100644 --- a/package.json +++ b/package.json @@ -211,7 +211,7 @@ }, "lint-staged": { "*": "prettier --ignore-unknown --write", - "*.{js,jsx}": "eslint --fix", + "*.{js,jsx,ts,tsx}": "eslint --fix", "*.{css,scss}": "stylelint --fix" } } From 4909c2e7183f38caedd4445928033dc208762609 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 3 Apr 2023 14:44:43 +0200 Subject: [PATCH 0805/1220] New Crowdin updates (#24276) Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/components/avatar.tsx | 17 +- app/javascript/mastodon/locales/af.json | 28 +- app/javascript/mastodon/locales/an.json | 28 +- app/javascript/mastodon/locales/ar.json | 28 +- app/javascript/mastodon/locales/ast.json | 28 +- app/javascript/mastodon/locales/be.json | 30 +- app/javascript/mastodon/locales/bg.json | 28 +- app/javascript/mastodon/locales/bn.json | 26 +- app/javascript/mastodon/locales/br.json | 28 +- app/javascript/mastodon/locales/bs.json | 26 +- app/javascript/mastodon/locales/ca.json | 30 +- app/javascript/mastodon/locales/ckb.json | 28 +- app/javascript/mastodon/locales/co.json | 26 +- app/javascript/mastodon/locales/cs.json | 28 +- app/javascript/mastodon/locales/csb.json | 26 +- app/javascript/mastodon/locales/cy.json | 30 +- app/javascript/mastodon/locales/da.json | 30 +- app/javascript/mastodon/locales/de.json | 24 +- .../mastodon/locales/defaultMessages.json | 42 +- app/javascript/mastodon/locales/el.json | 92 +-- app/javascript/mastodon/locales/en-GB.json | 28 +- app/javascript/mastodon/locales/en.json | 14 +- app/javascript/mastodon/locales/eo.json | 30 +- app/javascript/mastodon/locales/es-AR.json | 30 +- app/javascript/mastodon/locales/es-MX.json | 30 +- app/javascript/mastodon/locales/es.json | 30 +- app/javascript/mastodon/locales/et.json | 30 +- app/javascript/mastodon/locales/eu.json | 30 +- app/javascript/mastodon/locales/fa.json | 36 +- app/javascript/mastodon/locales/fi.json | 32 +- app/javascript/mastodon/locales/fo.json | 30 +- app/javascript/mastodon/locales/fr-QC.json | 32 +- app/javascript/mastodon/locales/fr.json | 28 +- app/javascript/mastodon/locales/fy.json | 30 +- app/javascript/mastodon/locales/ga.json | 26 +- app/javascript/mastodon/locales/gd.json | 32 +- app/javascript/mastodon/locales/gl.json | 30 +- app/javascript/mastodon/locales/he.json | 42 +- app/javascript/mastodon/locales/hi.json | 28 +- app/javascript/mastodon/locales/hr.json | 26 +- app/javascript/mastodon/locales/hu.json | 44 +- app/javascript/mastodon/locales/hy.json | 26 +- app/javascript/mastodon/locales/id.json | 28 +- app/javascript/mastodon/locales/ig.json | 26 +- app/javascript/mastodon/locales/io.json | 28 +- app/javascript/mastodon/locales/is.json | 30 +- app/javascript/mastodon/locales/it.json | 30 +- app/javascript/mastodon/locales/ja.json | 30 +- app/javascript/mastodon/locales/ka.json | 26 +- app/javascript/mastodon/locales/kab.json | 26 +- app/javascript/mastodon/locales/kk.json | 26 +- app/javascript/mastodon/locales/kn.json | 26 +- app/javascript/mastodon/locales/ko.json | 30 +- app/javascript/mastodon/locales/ku.json | 28 +- app/javascript/mastodon/locales/kw.json | 26 +- app/javascript/mastodon/locales/la.json | 26 +- app/javascript/mastodon/locales/lt.json | 26 +- app/javascript/mastodon/locales/lv.json | 30 +- app/javascript/mastodon/locales/mk.json | 26 +- app/javascript/mastodon/locales/ml.json | 26 +- app/javascript/mastodon/locales/mr.json | 28 +- app/javascript/mastodon/locales/ms.json | 28 +- app/javascript/mastodon/locales/my.json | 28 +- app/javascript/mastodon/locales/nl.json | 32 +- app/javascript/mastodon/locales/nn.json | 28 +- app/javascript/mastodon/locales/no.json | 28 +- app/javascript/mastodon/locales/oc.json | 28 +- app/javascript/mastodon/locales/pa.json | 26 +- app/javascript/mastodon/locales/pl.json | 30 +- app/javascript/mastodon/locales/pt-BR.json | 30 +- app/javascript/mastodon/locales/pt-PT.json | 30 +- app/javascript/mastodon/locales/ro.json | 28 +- app/javascript/mastodon/locales/ru.json | 28 +- app/javascript/mastodon/locales/sa.json | 28 +- app/javascript/mastodon/locales/sc.json | 26 +- app/javascript/mastodon/locales/sco.json | 28 +- app/javascript/mastodon/locales/si.json | 28 +- app/javascript/mastodon/locales/sk.json | 28 +- app/javascript/mastodon/locales/sl.json | 30 +- app/javascript/mastodon/locales/sq.json | 30 +- app/javascript/mastodon/locales/sr-Latn.json | 28 +- app/javascript/mastodon/locales/sr.json | 30 +- app/javascript/mastodon/locales/sv.json | 54 +- app/javascript/mastodon/locales/szl.json | 26 +- app/javascript/mastodon/locales/ta.json | 26 +- app/javascript/mastodon/locales/tai.json | 26 +- app/javascript/mastodon/locales/te.json | 26 +- app/javascript/mastodon/locales/th.json | 34 +- app/javascript/mastodon/locales/tr.json | 30 +- app/javascript/mastodon/locales/tt.json | 28 +- app/javascript/mastodon/locales/ug.json | 26 +- app/javascript/mastodon/locales/uk.json | 30 +- app/javascript/mastodon/locales/ur.json | 26 +- app/javascript/mastodon/locales/uz.json | 26 +- app/javascript/mastodon/locales/vi.json | 18 +- app/javascript/mastodon/locales/zgh.json | 26 +- app/javascript/mastodon/locales/zh-CN.json | 30 +- app/javascript/mastodon/locales/zh-HK.json | 34 +- app/javascript/mastodon/locales/zh-TW.json | 26 +- app/javascript/mastodon/uuid.ts | 7 +- app/javascript/types/resources.ts | 4 +- config/locales/activerecord.hu.yml | 2 +- config/locales/de.yml | 1 + config/locales/devise.hu.yml | 8 +- config/locales/doorkeeper.es.yml | 2 +- config/locales/doorkeeper.hu.yml | 70 +-- config/locales/doorkeeper.th.yml | 2 +- config/locales/en-GB.yml | 529 ++++++++++++++++++ config/locales/es.yml | 1 + config/locales/fi.yml | 2 +- config/locales/fr-QC.yml | 8 + config/locales/gd.yml | 32 +- config/locales/my.yml | 36 ++ config/locales/nl.yml | 14 +- config/locales/ru.yml | 23 + config/locales/simple_form.el.yml | 4 + config/locales/simple_form.nl.yml | 2 +- config/locales/simple_form.th.yml | 2 +- config/locales/sv.yml | 1 + config/locales/th.yml | 2 +- config/locales/zh-HK.yml | 13 + 121 files changed, 2266 insertions(+), 1400 deletions(-) diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx index 54ac611e65..e64a8af742 100644 --- a/app/javascript/mastodon/components/avatar.tsx +++ b/app/javascript/mastodon/components/avatar.tsx @@ -10,7 +10,7 @@ type Props = { style?: React.CSSProperties; inline?: boolean; animate?: boolean; -} +}; export const Avatar: React.FC = ({ account, @@ -19,7 +19,6 @@ export const Avatar: React.FC = ({ inline = false, style: styleFromParent, }) => { - const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate); const style = { @@ -28,10 +27,20 @@ export const Avatar: React.FC = ({ height: `${size}px`, }; - const src = (hovering || animate) ? account?.get('avatar') : account?.get('avatar_static'); + const src = + hovering || animate + ? account?.get('avatar') + : account?.get('avatar_static'); return ( -
    +
    {src && {account?.get('acct')}}
    ); diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 59dbdfa636..9c87eb44e2 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -20,7 +20,7 @@ "account.blocked": "Geblokkeer", "account.browse_more_on_origin_server": "Verken die oorspronklike profiel", "account.cancel_follow_request": "Herroep volgversoek", - "account.direct": "Stuur direkte boodskap aan @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Hou op om my van @{name} se plasings te laat weet", "account.domain_blocked": "Domein geblokkeer", "account.edit_profile": "Redigeer profiel", @@ -102,7 +102,7 @@ "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Boekmerke", "column.community": "Plaaslike tydlyn", - "column.direct": "Direkte boodskappe", + "column.direct": "Private mentions", "column.directory": "Blaai deur profiele", "column.domain_blocks": "Geblokkeerde domeine", "column.favourites": "Gunstelinge", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "Jy het nog geen boekmerke gelaat nie. Boekmerke wat jy by plasings laat, sal jy hier sien.", "empty_column.community": "Die plaaslike tydlyn is leeg. Kry die bal aan die rol deur iets te skryf wat mense kan lees!", - "empty_column.direct": "Jy het nog nie direkte boodskappe nie. Wanneer jy een stuur of ontvang, sal dit hier verskyn.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Jy het nog geen gunstelingplasings nie. As jy een as gunsteling merk, sal jy dit hier sien.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokuskolom", "keyboard_shortcuts.compose": "Teksveld vir skryf", "keyboard_shortcuts.description": "Beskrywing", - "keyboard_shortcuts.direct": "om kolom vir direkte boodskappe oop te maak", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Gaan afwaarts in die lys", "keyboard_shortcuts.enter": "Sien plasing", "keyboard_shortcuts.favourite": "Gunsteling", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Boekmerke", "navigation_bar.community_timeline": "Plaaslike tydlyn", "navigation_bar.compose": "Skep nuwe plasing", - "navigation_bar.direct": "Direkte boodskappe", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Geblokkeerde domeine", "navigation_bar.edit_profile": "Redigeer profiel", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Soek", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Soek of plak URL", - "search_popout.search_format": "Formaat vir gevorderd soek", - "search_popout.tips.full_text": "Gewone teks laat sien plasings wat jy geskryf het, van gehou het, aangestuur het of in genoem is, asook ooreenstemmende gebruikersname, vertoonde name en hutsetikette.", - "search_popout.tips.hashtag": "hutsetiket", - "search_popout.tips.status": "plasing", - "search_popout.tips.text": "Gewone teks laat sien ooreenstemmende name, gebruikersname en hutsetikette", - "search_popout.tips.user": "gebruiker", - "search_results.accounts": "Mense", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Alles", "search_results.hashtags": "Hutsetiket", "search_results.nothing_found": "Hierdie soekwoorde lewer niks op nie", @@ -557,7 +559,7 @@ "status.copy": "Kopieer skakel na hierdie plasing", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index e1414a8f5c..9fea523c6f 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -20,7 +20,7 @@ "account.blocked": "Blocau", "account.browse_more_on_origin_server": "Veyer mas en o perfil orichinal", "account.cancel_follow_request": "Retirar solicitut de seguimiento", - "account.direct": "Mensache directo a @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Deixar de notificar-me quan @{name} publique bella cosa", "account.domain_blocked": "Dominio blocau", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuarios blocaus", "column.bookmarks": "Marcadors", "column.community": "Linia de tiempo local", - "column.direct": "Mensaches directos", + "column.direct": "Private mentions", "column.directory": "Buscar perfils", "column.domain_blocks": "Dominios amagaus", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Encara no has blocau a garra usuario.", "empty_column.bookmarked_statuses": "Encara no tiens garra publicación alzada como marcador. Quan alces una, s'amostrará aquí.", "empty_column.community": "La linia de tiempo local ye vueda. Escribe bella cosa pa empecipiar la fiesta!", - "empty_column.direct": "Encara no tiens garra mensache directo. Quan ninvies u recibas un, s'amostrará aquí.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Encara no i hai dominios amagaus.", "empty_column.explore_statuses": "Cosa ye en tendencia en este momento. Revisa mas tarde!", "empty_column.favourited_statuses": "Encara no tiens publicacions favoritas. Quan marques una como favorita, amaneixerá aquí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Enfocar en una d'as columnas", "keyboard_shortcuts.compose": "Enfocar l'aria de redacción de texto", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "pa ubrir la columna de mensaches directos", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Mover enta baixo en a lista", "keyboard_shortcuts.enter": "Ubrir estau", "keyboard_shortcuts.favourite": "Anyadir en favoritos", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Linia de tiempo local", "navigation_bar.compose": "Escribir nueva publicación", - "navigation_bar.direct": "Mensaches directos", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios amagaus", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Infracción de regla", "report_notification.open": "Ubrir informe", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Buscar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Buscar u apegar URL", - "search_popout.search_format": "Formato de busqueda abanzada", - "search_popout.tips.full_text": "Las busquedas de texto recuperan publicacions que has escrito, marcau como favoritas, retutau u en os quals has estau mencionau, asinas como usuarios, nombres y hashtags.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Lo texto simple torna correspondencias de nombre, usuario y hashtag", - "search_popout.tips.user": "usuario", - "search_results.accounts": "Chent", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Totz", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "No se podió trobar cosa pa estes termins de busqueda", @@ -557,7 +559,7 @@ "status.copy": "Copiar vinclo a lo estau", "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", - "status.direct": "Mensache directo a @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Editar", "status.edited": "Editau {date}", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 4aec5838d3..399efe1439 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -20,7 +20,7 @@ "account.blocked": "محظور", "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي", "account.cancel_follow_request": "إلغاء طلب المتابعة", - "account.direct": "مراسلة @{name} بشكل مباشر", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocked": "اسم النِّطاق محظور", "account.edit_profile": "تعديل الملف الشخصي", @@ -102,7 +102,7 @@ "column.blocks": "المُستَخدِمون المَحظورون", "column.bookmarks": "الفواصل المرجعية", "column.community": "الخيط الزمني المحلي", - "column.direct": "الرسائل المباشِرة", + "column.direct": "Private mentions", "column.directory": "تَصَفُّحُ المَلفات الشخصية", "column.domain_blocks": "النطاقات المحظورة", "column.favourites": "المُفَضَّلَة", @@ -216,7 +216,7 @@ "empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.", "empty_column.bookmarked_statuses": "ليس لديك أية منشورات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.", "empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!", - "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.", "empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!", "empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "للتركيز على منشور على أحد الأعمدة", "keyboard_shortcuts.compose": "للتركيز على نافذة تحرير النصوص", "keyboard_shortcuts.description": "الوصف", - "keyboard_shortcuts.direct": "لفتح عمود الرسائل المباشرة", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "للانتقال إلى أسفل القائمة", "keyboard_shortcuts.enter": "لفتح المنشور", "keyboard_shortcuts.favourite": "للإضافة إلى المفضلة", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.community_timeline": "الخيط المحلي", "navigation_bar.compose": "تحرير منشور جديد", - "navigation_bar.direct": "الرسائل المباشِرة", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "اكتشف", "navigation_bar.domain_blocks": "النطاقات المحظورة", "navigation_bar.edit_profile": "عدّل الملف التعريفي", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "مزعج", "report_notification.categories.violation": "القاعدة المنتهَكة", "report_notification.open": "فتح التقرير", + "search.no_recent_searches": "No recent searches", "search.placeholder": "ابحث", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL", - "search_popout.search_format": "نمط البحث المتقدم", - "search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.", - "search_popout.tips.hashtag": "وسم", - "search_popout.tips.status": "حالة", - "search_popout.tips.text": "جملة قصيرة تُمكّنُك من عرض أسماء و حسابات و كلمات رمزية", - "search_popout.tips.user": "مستخدِم", - "search_results.accounts": "أشخاص", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "الكل", "search_results.hashtags": "الوُسوم", "search_results.nothing_found": "تعذر العثور على نتائج تتضمن هذه المصطلحات", @@ -557,7 +559,7 @@ "status.copy": "انسخ رابط الرسالة", "status.delete": "احذف", "status.detailed_status": "تفاصيل المحادثة", - "status.direct": "رسالة خاصة إلى @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "تعديل", "status.edited": "عُدّل في {date}", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 9e356881ae..fd49591855 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Restolar más nel perfil orixinal", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Unviar un mensaxe direutu a @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Dexar d'avisame cuando @{name} espublice artículos", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Editar el perfil", @@ -102,7 +102,7 @@ "column.blocks": "Perfiles bloquiaos", "column.bookmarks": "Marcadores", "column.community": "Llinia de tiempu llocal", - "column.direct": "Mensaxes direutos", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Dominios bloquiaos", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Entá nun bloquiesti a nengún perfil.", "empty_column.bookmarked_statuses": "Entá nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.", "empty_column.community": "La llinia de tiempu llocal ta balera. ¡Espubliza daqué públicamente pa comenzar l'alderique!", - "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.", "empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!", "empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques dalgún, apaez equí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Enfocar una columna", "keyboard_shortcuts.compose": "Enfocar l'área de composición", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "Abrir la columna de mensaxes direutos", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Baxar na llista", "keyboard_shortcuts.enter": "Abrir un artículu", "keyboard_shortcuts.favourite": "Marcar un artículu como favoritu", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Llinia de tiempu llocal", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Mensaxes direutos", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Dominios bloquiaos", "navigation_bar.edit_profile": "Editar el perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Abrir l'informe", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Buscar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Busca o apiega una URL", - "search_popout.search_format": "Formatu de busca avanzada", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "artículu", - "search_popout.tips.text": "El testu simple devuelve nomes visibles, cuentes ya etiquetes que concasen", - "search_popout.tips.user": "perfil", - "search_results.accounts": "Perfiles", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Etiquetes", "search_results.nothing_found": "Nun se pudo atopar nada con esos términos de busca", @@ -557,7 +559,7 @@ "status.copy": "Copiar l'enllaz al artículu", "status.delete": "Desaniciar", "status.detailed_status": "Detailed conversation view", - "status.direct": "Unviar un mensaxe direutu a @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Editóse'l {date}", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index ce51ee5076..6af78717ad 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -20,7 +20,7 @@ "account.blocked": "Заблакіраваны", "account.browse_more_on_origin_server": "Глядзіце больш у арыгінальным профілі", "account.cancel_follow_request": "Скасаваць запыт на падпіску", - "account.direct": "Асабістае паведамленне @{name}", + "account.direct": "Асабістая згадка @{name}", "account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}", "account.domain_blocked": "Дамен заблакаваны", "account.edit_profile": "Рэдагаваць профіль", @@ -102,7 +102,7 @@ "column.blocks": "Заблакіраваныя карыстальнікі", "column.bookmarks": "Закладкі", "column.community": "Лакальная стужка", - "column.direct": "Асабістыя паведамленні", + "column.direct": "Асабістыя згадкі", "column.directory": "Праглядзець профілі", "column.domain_blocks": "Заблакіраваныя дамены", "column.favourites": "Упадабаныя", @@ -216,7 +216,7 @@ "empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.", "empty_column.bookmarked_statuses": "У вас яшчэ няма паведамленняў з закладкамі. Калі вы дадасце закладку, яна з'явіцца тут.", "empty_column.community": "Мясцовая стужка пустая. Напішыце што-небудзь публічна, каб зрушыць з месца!", - "empty_column.direct": "Пакуль у вас няма асабістых паведамленняў. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.", + "empty_column.direct": "Пакуль у вас няма асабістых згадак. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.", "empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.", "empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней", "empty_column.favourited_statuses": "Вы яшчэ не ўпадабалі ніводны допіс. Калі гэта адбудзецца, вы ўбачыце яго тут.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Сфакусіравацца на калонцы", "keyboard_shortcuts.compose": "Сфакусіравацца на тэкставай вобласці", "keyboard_shortcuts.description": "Апісанне", - "keyboard_shortcuts.direct": "для адкрыцця калонкі прыватных паведамленняў", + "keyboard_shortcuts.direct": "адкрыць стоўп асабістых згадак", "keyboard_shortcuts.down": "Перамясціцца ўніз па спісе", "keyboard_shortcuts.enter": "Адкрыць допіс", "keyboard_shortcuts.favourite": "Упадабаць допіс", @@ -376,7 +376,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": "Рэдагаваць профіль", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Парушэнне правілаў", "report_notification.open": "Адкрыць скаргу", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Пошук", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Увядзіце спасылку або пошукавы запыт", - "search_popout.search_format": "Рэжым прасунутага пошуку", - "search_popout.tips.full_text": "Тэкставы пошук пакажа допісы, якія вы напісалі, упадабалі, пашырылі, альбо тыя, у якіх вас згадалі, а таксама адпаведныя імёны карыстальнікаў і тэгі.", - "search_popout.tips.hashtag": "хэштэг", - "search_popout.tips.status": "допіс", - "search_popout.tips.text": "Тэкставы пошук знаходзіць адпаведныя імёны карыстальнікаў, юзернеймы і хэштэгі", - "search_popout.tips.user": "карыстальнік", - "search_results.accounts": "Людзі", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Усё", "search_results.hashtags": "Хэштэгі", "search_results.nothing_found": "Па дадзенаму запыту нічога не знойдзена", @@ -557,8 +559,8 @@ "status.copy": "Скапіраваць спасылку на допіс", "status.delete": "Выдаліць", "status.detailed_status": "Дэтальны агляд размовы", - "status.direct": "Асабістае паведамленне @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Асабістая згадка @{name}", + "status.direct_indicator": "Асабістая згадка", "status.edit": "Рэдагаваць", "status.edited": "Адрэдагавана {date}", "status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 6b6bd1011a..284e6b22bf 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -20,7 +20,7 @@ "account.blocked": "Блокирани", "account.browse_more_on_origin_server": "Разглеждане на още в оригиналния профил", "account.cancel_follow_request": "Оттегляне на заявката за последване", - "account.direct": "Директно съобщение до @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Сприране на известия при публикуване от @{name}", "account.domain_blocked": "Блокиран домейн", "account.edit_profile": "Редактиране на профила", @@ -102,7 +102,7 @@ "column.blocks": "Блокирани потребители", "column.bookmarks": "Отметки", "column.community": "Локална часова ос", - "column.direct": "Директни съобщения", + "column.direct": "Private mentions", "column.directory": "Разглеждане на профили", "column.domain_blocks": "Блокирани домейни", "column.favourites": "Любими", @@ -216,7 +216,7 @@ "empty_column.blocks": "Още не сте блокирали никакви потребители.", "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.", "empty_column.community": "Местната часова ос е празна. Напишете нещо обществено, за да завъртите нещата!", - "empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите някое, то ще се покаже тук.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Още няма блокирани домейни.", "empty_column.explore_statuses": "Няма нищо налагащо се в момента. Проверете пак по-късно!", "empty_column.favourited_statuses": "Още нямате любими публикации. Поставяйки някоя в любими, то тя ще се покаже тук.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Съсредоточение на колона", "keyboard_shortcuts.compose": "Фокус на текстовата зона за съставяне", "keyboard_shortcuts.description": "Опис", - "keyboard_shortcuts.direct": "за отваряне на колоната с лични съобщения", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Преместване надолу в списъка", "keyboard_shortcuts.enter": "Отваряне на публикация", "keyboard_shortcuts.favourite": "Към любими публикации", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Отметки", "navigation_bar.community_timeline": "Локален инфопоток", "navigation_bar.compose": "Съставяне на нова публикация", - "navigation_bar.direct": "Директни съобщения", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Откриване", "navigation_bar.domain_blocks": "Блокирани домейни", "navigation_bar.edit_profile": "Редактиране на профила", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Нарушение на правилото", "report_notification.open": "Отваряне на доклада", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Търсене", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Търсене или поставяне на URL адрес", - "search_popout.search_format": "Формат за разширено търсене", - "search_popout.tips.full_text": "Търсене с обикновен текст връща публикации, които сте написали, поставили в любими, споделили, или в които сте били споменати, както и съвпадащи потребителски имена, показвани имена и хаштагове.", - "search_popout.tips.hashtag": "хаштаг", - "search_popout.tips.status": "публикация", - "search_popout.tips.text": "Обикновеният текст връща съответстващи показвани имена, потребителски имена и хаштагове", - "search_popout.tips.user": "потребител", - "search_results.accounts": "Хора", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Всичко", "search_results.hashtags": "Хаштагове", "search_results.nothing_found": "Не може да се намери каквото и да било за тези термини при търсене", @@ -557,7 +559,7 @@ "status.copy": "Копиране на връзката към публикация", "status.delete": "Изтриване", "status.detailed_status": "Подробен изглед на разговора", - "status.direct": "Директно съобщение до @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Редактиране", "status.edited": "Редактирано на {date}", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 8dbac2d58f..ccd856abc7 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -20,7 +20,7 @@ "account.blocked": "অবরুদ্ধ", "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "@{name} কে সরাসরি বার্তা", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ডোমেন গোপন করুন", "account.edit_profile": "প্রোফাইল পরিবর্তন করুন", @@ -102,7 +102,7 @@ "column.blocks": "যাদের ব্লক করা হয়েছে", "column.bookmarks": "বুকমার্ক", "column.community": "স্থানীয় সময়সারি", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "প্রোফাইল ব্রাউজ করুন", "column.domain_blocks": "লুকোনো ডোমেনগুলি", "column.favourites": "পছন্দের গুলো", @@ -216,7 +216,7 @@ "empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের ব্লক করেন নি।", "empty_column.bookmarked_statuses": "আপনার কাছে এখনও কোনও বুকমার্কড টুট নেই। আপনি যখন একটি বুকমার্ক করেন, এটি এখানে প্রদর্শিত হবে।", "empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "এখনও কোনও লুকানো ডোমেন নেই।", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "আপনার পছন্দের কোনো টুট এখনো নেই। আপনি কোনো লেখা পছন্দের হিসেবে চিহ্নিত করলে এখানে পাওয়া যাবে।", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "বুকমার্ক", "navigation_bar.community_timeline": "স্থানীয় সময়রেখা", "navigation_bar.compose": "নতুন টুট লিখুন", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "ঘুরে দেখুন", "navigation_bar.domain_blocks": "লুকানো ডোমেনগুলি", "navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করতে", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "অনুসন্ধান", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি", - "search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।", - "search_popout.tips.hashtag": "হ্যাশট্যাগ", - "search_popout.tips.status": "লেখা", - "search_popout.tips.text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো", - "search_popout.tips.user": "ব্যবহারকারী", - "search_results.accounts": "মানুষ", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "হ্যাশট্যাগগুলি", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "লেখাটির লিংক কপি করতে", "status.delete": "মুছে ফেলতে", "status.detailed_status": "বিস্তারিত কথোপকথনের হিসেবে দেখতে", - "status.direct": "@{name} কে সরাসরি লেখা পাঠাতে", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 0884047acc..c8ec088e13 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -20,7 +20,7 @@ "account.blocked": "Stanket", "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin", "account.cancel_follow_request": "Nullañ ar reked heuliañ", - "account.direct": "Kas ur c'hannad eeun da @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}", "account.domain_blocked": "Domani stanket", "account.edit_profile": "Kemmañ ar profil", @@ -102,7 +102,7 @@ "column.blocks": "Implijer·ezed·ien berzet", "column.bookmarks": "Sinedoù", "column.community": "Red-amzer lec'hel", - "column.direct": "Kannadoù eeun", + "column.direct": "Private mentions", "column.directory": "Mont a-dreuz ar profiloù", "column.domain_blocks": "Domani berzet", "column.favourites": "Muiañ-karet", @@ -216,7 +216,7 @@ "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.", "empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !", - "empty_column.direct": "N'ho peus kannad eeun ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", "empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !", "empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokus ar bann", "keyboard_shortcuts.compose": "Fokus an takad testenn", "keyboard_shortcuts.description": "Deskrivadur", - "keyboard_shortcuts.direct": "evit digeriñ bann ar c'hannadoù eeun", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Diskennañ er roll", "keyboard_shortcuts.enter": "Digeriñ an toud", "keyboard_shortcuts.favourite": "Ouzhpennañ an toud d'ar re vuiañ-karet", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Sinedoù", "navigation_bar.community_timeline": "Red-amzer lec'hel", "navigation_bar.compose": "Skrivañ un toud nevez", - "navigation_bar.direct": "Kannadoù eeun", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Dizoleiñ", "navigation_bar.domain_blocks": "Domanioù kuzhet", "navigation_bar.edit_profile": "Kemmañ ar profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Torradur da reolennoù ar servijer", "report_notification.open": "Digeriñ an disklêriadur", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Klask", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Klask pe pegañ un URL", - "search_popout.search_format": "Framm klask araokaet", - "search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.", - "search_popout.tips.hashtag": "ger-klik", - "search_popout.tips.status": "toud", - "search_popout.tips.text": "Testenn simpl a adkas anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot", - "search_popout.tips.user": "implijer·ez", - "search_results.accounts": "Tud", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Pep tra", "search_results.hashtags": "Gerioù-klik", "search_results.nothing_found": "Disoc'h ebet gant ar gerioù-se", @@ -557,7 +559,7 @@ "status.copy": "Eilañ liamm ar c'hannad", "status.delete": "Dilemel", "status.detailed_status": "Gwel kaozeadenn munudek", - "status.direct": "Kas ur c'hannad eeun da @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Kemmañ", "status.edited": "Aozet {date}", diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json index e4dda7c773..c2d34b7151 100644 --- a/app/javascript/mastodon/locales/bs.json +++ b/app/javascript/mastodon/locales/bs.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index a65a411111..f8a7767d56 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -20,7 +20,7 @@ "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Explora'n més al perfil original", "account.cancel_follow_request": "Retira la sol·licitud de seguiment", - "account.direct": "Missatge directe a @{name}", + "account.direct": "Mencionant privadament @{name}", "account.disable_notifications": "Deixa de notificar-me els tuts de @{name}", "account.domain_blocked": "Domini blocat", "account.edit_profile": "Edita el perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuaris blocats", "column.bookmarks": "Marcadors", "column.community": "Línia de temps local", - "column.direct": "Missatges directes", + "column.direct": "Mencions privades", "column.directory": "Navega pels perfils", "column.domain_blocks": "Dominis blocats", "column.favourites": "Favorits", @@ -216,7 +216,7 @@ "empty_column.blocks": "Encara no has blocat cap usuari.", "empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, 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.direct": "Encara no tens mencions privades. Quan n'enviïs o en rebis una, et 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í.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Centra la columna", "keyboard_shortcuts.compose": "Centra l'àrea de composició de text", "keyboard_shortcuts.description": "Descripció", - "keyboard_shortcuts.direct": "Obre la columna de missatges directes", + "keyboard_shortcuts.direct": "per a obrir la columna de mencions privades", "keyboard_shortcuts.down": "Abaixa a la llista", "keyboard_shortcuts.enter": "Obre el tut", "keyboard_shortcuts.favourite": "Afavoreix el tut", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Línia de temps local", "navigation_bar.compose": "Redacta un tut", - "navigation_bar.direct": "Missatges directes", + "navigation_bar.direct": "Mencions privades", "navigation_bar.discover": "Descobreix", "navigation_bar.domain_blocks": "Dominis blocats", "navigation_bar.edit_profile": "Edita el perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Brossa", "report_notification.categories.violation": "Violació de norma", "report_notification.open": "Obre un informe", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Cerca", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Cerca o escriu l'URL", - "search_popout.search_format": "Format de cerca avançada", - "search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "tut", - "search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes", - "search_popout.tips.user": "usuari", - "search_results.accounts": "Gent", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfils", "search_results.all": "Tots", "search_results.hashtags": "Etiquetes", "search_results.nothing_found": "No s'ha pogut trobar res per a aquests termes de cerca", @@ -557,8 +559,8 @@ "status.copy": "Copia l'enllaç al tut", "status.delete": "Elimina", "status.detailed_status": "Vista detallada de la conversa", - "status.direct": "Missatge directe a @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mencionant privadament @{name}", + "status.direct_indicator": "Menció privada", "status.edit": "Edita", "status.edited": "Editat {date}", "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 095e73688d..45e8df0b06 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -20,7 +20,7 @@ "account.blocked": "بلۆککرا", "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی", "account.cancel_follow_request": "داواکاری فۆڵۆو بکشێنەوە", - "account.direct": "پەیامی تایبەت بە @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت", "account.domain_blocked": "دۆمەین قەپاتکرا", "account.edit_profile": "دەستکاری پرۆفایل", @@ -102,7 +102,7 @@ "column.blocks": "بەکارهێنەرە بلۆککراوەکان", "column.bookmarks": "نیشانەکان", "column.community": "هێڵی کاتی ناوخۆیی", - "column.direct": "نامە ڕاستەوخۆ", + "column.direct": "Private mentions", "column.directory": "گەڕان لە پرۆفایلەکان", "column.domain_blocks": "دۆمەینە داخراوەکان", "column.favourites": "دڵخوازترینەکان", @@ -216,7 +216,7 @@ "empty_column.blocks": "تۆ هێشتا هیچ بەکارهێنەرێکت بلۆک نەکردووە.", "empty_column.bookmarked_statuses": "تۆ هێشتا هیچ توتێکی دیاریکراوت نیە کاتێک نیشانەیەک نیشان دەکەیت، لێرە دەرئەکەویت.", "empty_column.community": "هێڵی کاتی ناوخۆیی بەتاڵە. شتێک بە ئاشکرا بنووسە بۆ ئەوەی تۆپەکە بسووڕێت!", - "empty_column.direct": "تا ئێستا هیچ نامەیەکی ڕاستەوخۆت نییە. کاتێک یەکێکیان دەنێری یان وەریدەگریت، لێرە دەردەکەوێت.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "هێشتا هیچ دۆمەینێکی بلۆک کراو نییە.", "empty_column.explore_statuses": "لە ئێستادا هیچ شتێک ترێند نییە. دواتر سەیری بکە!", "empty_column.favourited_statuses": "تۆ هێشتا هیچ توتێکی دڵخوازت نییە، کاتێک حەزت لە دانەیەکی باشە، لێرە دەرئەکەویت.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "بۆ ئەوەی تیشک بخاتە سەر توتێک لە یەکێک لە ستوونەکان", "keyboard_shortcuts.compose": "بۆ سەرنجدان بە نووسینی ناوچەی دەق", "keyboard_shortcuts.description": "وه‌سف", - "keyboard_shortcuts.direct": "بۆ کردنەوەی ستوونی نامە ڕاستەوخۆکان", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "بۆ چوونە خوارەوە لە لیستەکەدا", "keyboard_shortcuts.enter": "بۆ کردنەوەی توت", "keyboard_shortcuts.favourite": "بۆ دڵخواز", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "نیشانکراوەکان", "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی", "navigation_bar.compose": "نووسینی توتی نوێ", - "navigation_bar.direct": "نامە ڕاستەوخۆ", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "دۆزینەوە", "navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان", "navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "گەڕان", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو", - "search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.", - "search_popout.tips.hashtag": "هەشتاگ", - "search_popout.tips.status": "توت", - "search_popout.tips.text": "دەقی سادە هەڵدەسێ بە گەڕاندنەوەی هاوتایی ناوی پیشاندان، ناوی بەکارهێنەر و هاشتاگەکان", - "search_popout.tips.user": "بەکارهێنەر", - "search_results.accounts": "خەڵک", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "هەموو", "search_results.hashtags": "هەشتاگ", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "ڕوونووسی بەستەر بۆ توت", "status.delete": "سڕینەوە", "status.detailed_status": "ڕوانگەی گفتوگۆ بە وردەکاری", - "status.direct": "پەیامی ڕاستەوخۆ @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "دەستکاری", "status.edited": "بەشداری {date}", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index dfa8bcd33d..df675f1516 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -20,7 +20,7 @@ "account.blocked": "Bluccatu", "account.browse_more_on_origin_server": "Vede di più nant'à u prufile uriginale", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Missaghju direttu @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Ùn mi nutificate più quandu @{name} pubblica qualcosa", "account.domain_blocked": "Duminiu piattatu", "account.edit_profile": "Mudificà u prufile", @@ -102,7 +102,7 @@ "column.blocks": "Utilizatori bluccati", "column.bookmarks": "Segnalibri", "column.community": "Linea pubblica lucale", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Percorre i prufili", "column.domain_blocks": "Duminii piattati", "column.favourites": "Favuriti", @@ -216,7 +216,7 @@ "empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.", "empty_column.bookmarked_statuses": "Ùn avete manc'un segnalibru. Quandu aghjunghjerate unu, sarà mustratu quì.", "empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Ùn c'hè manc'un duminiu bluccatu avà.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Ùn avete manc'unu statutu favuritu. Quandu aghjunghjerate unu à i vostri favuriti, sarà mustratu quì.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Linea pubblica lucale", "navigation_bar.compose": "Scrive un novu statutu", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Scopre", "navigation_bar.domain_blocks": "Duminii piattati", "navigation_bar.edit_profile": "Mudificà u prufile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Circà", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Ricerca avanzata", - "search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "statutu", - "search_popout.tips.text": "Un testu simplice rimanda i nomi pubblichi, cugnomi è hashtag", - "search_popout.tips.user": "utilizatore", - "search_results.accounts": "Ghjente", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtag", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Cupià ligame indè u statutu", "status.delete": "Toglie", "status.detailed_status": "Vista in ditagliu di a cunversazione", - "status.direct": "Mandà un missaghju @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 3923126502..29b5e3a466 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -20,7 +20,7 @@ "account.blocked": "Blokovaný", "account.browse_more_on_origin_server": "Více na původním profilu", "account.cancel_follow_request": "Zrušit žádost o sledování", - "account.direct": "Poslat @{name} přímou zprávu", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Přestat mě upozorňovat, když @{name} zveřejní příspěvek", "account.domain_blocked": "Doména blokována", "account.edit_profile": "Upravit profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokovaní uživatelé", "column.bookmarks": "Záložky", "column.community": "Místní časová osa", - "column.direct": "Přímé zprávy", + "column.direct": "Private mentions", "column.directory": "Prozkoumat profily", "column.domain_blocks": "Blokované domény", "column.favourites": "Oblíbené", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.", "empty_column.bookmarked_statuses": "Zatím v záložkách nemáte žádné příspěvky. Až si do nich nějaký přidáte, zobrazí se zde.", "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!", - "empty_column.direct": "Zatím nemáte žádné přímé zprávy. Až nějakou pošlete nebo dostanete, zobrazí se zde.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Ještě nemáte žádné zablokované domény.", "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!", "empty_column.favourited_statuses": "Zatím nemáte žádné oblíbené příspěvky. Až si nějaký oblíbíte, zobrazí se zde.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Focus na sloupec", "keyboard_shortcuts.compose": "Zaměřit se na textové pole nového příspěvku", "keyboard_shortcuts.description": "Popis", - "keyboard_shortcuts.direct": "k otevření sloupce přímých zpráv", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Posunout v seznamu dolů", "keyboard_shortcuts.enter": "Otevřít příspěvek", "keyboard_shortcuts.favourite": "Oblíbit si příspěvek", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Místní časová osa", "navigation_bar.compose": "Vytvořit nový příspěvek", - "navigation_bar.direct": "Přímé zprávy", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Objevit", "navigation_bar.domain_blocks": "Blokované domény", "navigation_bar.edit_profile": "Upravit profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušení pravidla", "report_notification.open": "Otevřít hlášení", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Hledat", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Hledat nebo vložit URL", - "search_popout.search_format": "Pokročilé hledání", - "search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "příspěvek", - "search_popout.tips.text": "Jednoduchý text vrací odpovídající zobrazovaná jména, přezdívky a hashtagy", - "search_popout.tips.user": "uživatel", - "search_results.accounts": "Lidé", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Vše", "search_results.hashtags": "Hashtagy", "search_results.nothing_found": "Pro tyto hledané výrazy nebylo nic nenalezeno", @@ -557,7 +559,7 @@ "status.copy": "Zkopírovat odkaz na příspěvek", "status.delete": "Smazat", "status.detailed_status": "Podrobné zobrazení konverzace", - "status.direct": "Poslat @{name} přímou zprávu", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Upravit", "status.edited": "Upraveno {date}", diff --git a/app/javascript/mastodon/locales/csb.json b/app/javascript/mastodon/locales/csb.json index b5078462fc..2150c1d7a3 100644 --- a/app/javascript/mastodon/locales/csb.json +++ b/app/javascript/mastodon/locales/csb.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index ace8185d9a..5a076ca9dd 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -20,7 +20,7 @@ "account.blocked": "Blociwyd", "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol", "account.cancel_follow_request": "Tynnu cais i ddilyn", - "account.direct": "Neges breifat @{name}", + "account.direct": "Crybwyll yn breifat @{name}", "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio", "account.domain_blocked": "Parth wedi ei flocio", "account.edit_profile": "Golygu proffil", @@ -102,7 +102,7 @@ "column.blocks": "Defnyddwyr a flociwyd", "column.bookmarks": "Llyfrnodau", "column.community": "Ffrwd lleol", - "column.direct": "Negeseuon preifat", + "column.direct": "Crybwylliadau preifat", "column.directory": "Pori proffiliau", "column.domain_blocks": "Parthau wedi'u blocio", "column.favourites": "Ffefrynnau", @@ -216,7 +216,7 @@ "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.", "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel llyfrnodau eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.", "empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth cyhoeddus?", - "empty_column.direct": "Does gennych unrhyw negeseuon preifat eto. Pan byddwch yn anfon neu derbyn un, bydd yn ymddangos yma.", + "empty_column.direct": "Nid oes gennych unrhyw grybwylliadau preifat eto. Pan fyddwch chi'n anfon neu'n derbyn un, bydd yn ymddangos yma.", "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.", "empty_column.explore_statuses": "Does dim yn trendio ar hyn o bryd. Dewch nôl nes ymlaen!", "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff bostiadau eto. Pan byddwch yn hoffi un, bydd yn ymddangos yma.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Ffocysu colofn", "keyboard_shortcuts.compose": "Ffocysu ar ardal cyfansoddi testun", "keyboard_shortcuts.description": "Disgrifiad", - "keyboard_shortcuts.direct": "i agor colofn negeseuon preifat", + "keyboard_shortcuts.direct": "i agor colofn crybwylliadau preifat", "keyboard_shortcuts.down": "Symud lawr yn y rhestr", "keyboard_shortcuts.enter": "Agor post", "keyboard_shortcuts.favourite": "Hoffi postiad", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Llyfrnodau", "navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.compose": "Cyfansoddi post newydd", - "navigation_bar.direct": "Negeseuon preifat", + "navigation_bar.direct": "Crybwylliadau preifat", "navigation_bar.discover": "Darganfod", "navigation_bar.domain_blocks": "Parthau wedi'u blocio", "navigation_bar.edit_profile": "Golygu proffil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Sbam", "report_notification.categories.violation": "Torri rheol", "report_notification.open": "Agor adroddiad", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Chwilio", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Chwilio neu gludo URL", - "search_popout.search_format": "Fformat chwilio uwch", - "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.", - "search_popout.tips.hashtag": "hashnod", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau dangos, enwau defnyddwyr a hashnodau sy'n cyfateb", - "search_popout.tips.user": "defnyddiwr", - "search_results.accounts": "Pobl", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Popeth", "search_results.hashtags": "Hashnodau", "search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn", @@ -557,8 +559,8 @@ "status.copy": "Copïo dolen i'r post", "status.delete": "Dileu", "status.detailed_status": "Golwg manwl o'r sgwrs", - "status.direct": "Neges breifat @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Crybwyll yn breifat @{name}", + "status.direct_indicator": "Crybwyll preifat", "status.edit": "Golygu", "status.edited": "Golygwyd {date}", "status.edited_x_times": "Golygwyd {count, plural, one {waith} two {waith} other {{count} gwaith}}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 97fb90a8fb..0116221e03 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -20,7 +20,7 @@ "account.blocked": "Blokeret", "account.browse_more_on_origin_server": "Se mere på den oprindelige profil", "account.cancel_follow_request": "Annullér anmodning om at følge", - "account.direct": "Direkte besked til @{name}", + "account.direct": "Privat omtale @{name}", "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster", "account.domain_blocked": "Domæne blokeret", "account.edit_profile": "Redigér profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokerede brugere", "column.bookmarks": "Bogmærker", "column.community": "Lokal tidslinje", - "column.direct": "Direkte beskeder", + "column.direct": "Private omtaler", "column.directory": "Tjek profiler", "column.domain_blocks": "Blokerede domæner", "column.favourites": "Favoritter", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ingen brugere blokeret endnu.", "empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.", "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!", - "empty_column.direct": "Der er endnu ingen direkte beskeder. Når en sendes eller modtages, dukker den op hér.", + "empty_column.direct": "Der er endnu ingen private omtaler. Når en sendes eller modtages, dukker den op hér.", "empty_column.domain_blocks": "Ingen blokerede domæner endnu.", "empty_column.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!", "empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokusér kolonne", "keyboard_shortcuts.compose": "Fokusér skriveområdet", "keyboard_shortcuts.description": "Beskrivelse", - "keyboard_shortcuts.direct": "for at åbne direkte beskeder-kolonnen", + "keyboard_shortcuts.direct": "for at åbne kolonnen private omtaler", "keyboard_shortcuts.down": "Flyt nedad på listen", "keyboard_shortcuts.enter": "Åbn indlæg", "keyboard_shortcuts.favourite": "Favoritmarkér indlæg", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bogmærker", "navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.compose": "Skriv nyt indlæg", - "navigation_bar.direct": "Direkte beskeder", + "navigation_bar.direct": "Private omtaler", "navigation_bar.discover": "Opdag", "navigation_bar.domain_blocks": "Blokerede domæner", "navigation_bar.edit_profile": "Redigér profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Regelovertrædelse", "report_notification.open": "Åbn anmeldelse", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Søg", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Søg efter eller angiv URL", - "search_popout.search_format": "Avanceret søgeformat", - "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, gjort til favorit, boostet eller er nævnt i, såvel som matchende bruger- og profilnavne samt hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "indlæg", - "search_popout.tips.text": "Simpel tekst returnerer matchende visnings- og brugernavne samt hashtags", - "search_popout.tips.user": "bruger", - "search_results.accounts": "Personer", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiler", "search_results.all": "Alle", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Ingen resultater for disse søgeord", @@ -557,8 +559,8 @@ "status.copy": "Kopiér link til indlæg", "status.delete": "Slet", "status.detailed_status": "Detaljeret samtalevisning", - "status.direct": "Direkte besked til @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Privat omtale @{name}", + "status.direct_indicator": "Privat omtale", "status.edit": "Redigér", "status.edited": "Redigeret {date}", "status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 24cec0228b..f06954790c 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -20,7 +20,7 @@ "account.blocked": "Blockiert", "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen", "account.cancel_follow_request": "Folgeanfrage zurückziehen", - "account.direct": "Direktnachricht an @{name}", + "account.direct": "Direktnachricht an @{name} senden", "account.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet", "account.domain_blocked": "Domain versteckt", "account.edit_profile": "Profil bearbeiten", @@ -131,7 +131,7 @@ "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?", + "compose_form.placeholder": "Was gibt es Neues?", "compose_form.poll.add_option": "Auswahlfeld hinzufügen", "compose_form.poll.duration": "Umfragedauer", "compose_form.poll.option_placeholder": "{number}. Auswahl", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Auf die aktuelle Spalte fokussieren", "keyboard_shortcuts.compose": "Eingabefeld fokussieren", "keyboard_shortcuts.description": "Beschreibung", - "keyboard_shortcuts.direct": "Direktnachrichten öffnen", + "keyboard_shortcuts.direct": "um die Direktnachrichtenspalte zu öffnen", "keyboard_shortcuts.down": "sich in der Liste nach unten bewegen", "keyboard_shortcuts.enter": "Beitrag öffnen", "keyboard_shortcuts.favourite": "favorisieren", @@ -332,7 +332,7 @@ "keyboard_shortcuts.open_media": "Medien-Datei öffnen", "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen", "keyboard_shortcuts.profile": "Profil öffnen", - "keyboard_shortcuts.reply": "auf Beitrag antworten", + "keyboard_shortcuts.reply": "Auf Beitrag antworten", "keyboard_shortcuts.requests": "Liste der Folgeanfragen öffnen", "keyboard_shortcuts.search": "Suchleiste fokussieren", "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/ausblenden", @@ -522,14 +522,16 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Regelverstoß", "report_notification.open": "Meldung öffnen", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Suche", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Suchen oder URL einfügen", - "search_popout.search_format": "Erweiterte Suche", - "search_popout.tips.full_text": "Die Freitextsuche findet Beiträge, die du geschrieben, favorisiert und geteilt hast – oder in denen du erwähnt worden bist. Außerdem gibt sie übereinstimmende Anzeigenamen, Profilnamen und Hashtags aus.", - "search_popout.tips.hashtag": "Hashtag", - "search_popout.tips.status": "Beitrag", - "search_popout.tips.text": "Die Freitextsuche findet Anzeigenamen, Profilnamen und Hashtags", - "search_popout.tips.user": "Profil", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", "search_results.accounts": "Profile", "search_results.all": "Alles", "search_results.hashtags": "Hashtags", @@ -558,7 +560,7 @@ "status.delete": "Beitrag löschen", "status.detailed_status": "Detaillierte Ansicht der Unterhaltung", "status.direct": "Direktnachricht an @{name}", - "status.direct_indicator": "Private mention", + "status.direct_indicator": "Direktnachricht", "status.edit": "Beitrag bearbeiten", "status.edited": "Bearbeitet {date}", "status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index d8f40aa510..b490a7b6bd 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1631,7 +1631,7 @@ "id": "privacy.private.long" }, { - "defaultMessage": "Private mention", + "defaultMessage": "Mentioned people only", "id": "privacy.direct.short" }, { @@ -1665,7 +1665,7 @@ "id": "suggestions.header" }, { - "defaultMessage": "People", + "defaultMessage": "Profiles", "id": "search_results.accounts" }, { @@ -1698,28 +1698,36 @@ "id": "search.search_or_paste" }, { - "defaultMessage": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "id": "search_popout.tips.full_text" + "defaultMessage": "Open URL in Mastodon", + "id": "search.quick_action.open_url" }, { - "defaultMessage": "Simple text returns matching display names, usernames and hashtags", - "id": "search_popout.tips.text" + "defaultMessage": "Go to hashtag {x}", + "id": "search.quick_action.go_to_hashtag" }, { - "defaultMessage": "Advanced search format", - "id": "search_popout.search_format" + "defaultMessage": "Go to profile {x}", + "id": "search.quick_action.go_to_account" }, { - "defaultMessage": "hashtag", - "id": "search_popout.tips.hashtag" + "defaultMessage": "Posts matching {x}", + "id": "search.quick_action.status_search" }, { - "defaultMessage": "user", - "id": "search_popout.tips.user" + "defaultMessage": "Profiles matching {x}", + "id": "search.quick_action.account_search" }, { - "defaultMessage": "status", - "id": "search_popout.tips.status" + "defaultMessage": "Recent searches", + "id": "search_popout.recent" + }, + { + "defaultMessage": "No recent searches", + "id": "search.no_recent_searches" + }, + { + "defaultMessage": "Quick actions", + "id": "search_popout.quick_actions" } ], "path": "app/javascript/mastodon/features/compose/components/search.json" @@ -2107,7 +2115,7 @@ "id": "search_results.all" }, { - "defaultMessage": "People", + "defaultMessage": "Profiles", "id": "search_results.accounts" }, { @@ -3694,6 +3702,10 @@ { "defaultMessage": "Direct", "id": "privacy.direct.short" + }, + { + "defaultMessage": "Private mention", + "id": "status.direct_indicator" } ], "path": "app/javascript/mastodon/features/status/components/detailed_status.json" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index e972494ad6..f59cd38d72 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1,14 +1,14 @@ { - "about.blocks": "Κανένας πρόσφατος διακομιστής", + "about.blocks": "Συντονισμένοι διακομιστές", "about.contact": "Επικοινωνία:", "about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη", - "about.domain_blocks.preamble": "Σε γενικές γραμμές το Mastodon σού επιτρέπει να βλέπεις περιεχόμενο και να αλληλεπιδράς με χρήστες από οποιονδήποτε άλλο server σε ένα διασυνδεδεμένο σύμπαν διακομιστών (fediverse). Ακολουθούν οι εξαιρέσεις που ισχύουν για τον συγκεκριμένο server.", - "about.domain_blocks.silenced.explanation": "Γενικά δεν μπορείς να δεις τα προφίλ και το περιεχόμενο αυτού του server, εκτός αν κάνεις μια στοχευμένη αναζήτηση ή επιλέξεις να τον ακολουθήσεις.", - "about.domain_blocks.silenced.title": "Η μετάφραση είναι ανοιχτή μόνο σε περιορισμένη ομάδα μεταφραστών, αν θέλετε να συνεισφέρετε, επικοινωνήστε με τους συντηρητές των έργων.", - "about.domain_blocks.suspended.explanation": "Κανένα δεδομένο αυτού του server δεν θα τυγχάνει επεξεργασίας, ούτε θα αποθηκεύεται, ούτε θα ανταλλάσεται, οπότε η οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες αυτού του server είναι αδύνατη.", + "about.domain_blocks.preamble": "Σε γενικές γραμμές το Mastodon σού επιτρέπει να βλέπεις περιεχόμενο και να αλληλεπιδράς με χρήστες από οποιονδήποτε άλλο διακομιστή σε ένα διασυνδεδεμένο σύμπαν διακομιστών (fediverse). Ακολουθούν οι εξαιρέσεις που ισχύουν για τον συγκεκριμένο διακομιστή.", + "about.domain_blocks.silenced.explanation": "Συνήθως σε θα βλέπεις προφίλ και περιεχόμενο απ'αυτόν τον διακομιστή, εκτός αν κάνεις συγκεκριμένη αναζήτηση ή επιλέξεις να τον ακολουθήσεις.", + "about.domain_blocks.silenced.title": "Περιορισμένος", + "about.domain_blocks.suspended.explanation": "Τα δεδομένα αυτού του διακομιστή, δε θα επεξεργάζονται, δε θα αποθηκεύονται και δε θα ανταλλάσσονται, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτόν το διακομιστή αδύνατη.", "about.domain_blocks.suspended.title": "Σε αναστολή", - "about.not_available": "Αυτές οι πληροφορίες δεν έχουν καταστεί διαθέσιμες σε αυτόν τον server.", + "about.not_available": "Αυτές οι πληροφορίες δεν έχουν είναι διαθέσιμες σε αυτόν τον διακομιστή.", "about.powered_by": "Αποκεντρωμένα μέσα κοινωνικής δικτύωσης που βασίζονται στο {mastodon}", "about.rules": "Κανόνες διακομιστή", "account.account_note_header": "Σημείωση", @@ -16,37 +16,37 @@ "account.badges.bot": "Μποτ", "account.badges.group": "Ομάδα", "account.block": "Αποκλεισμός @{name}", - "account.block_domain": "Αποκλεισμός {domain}", + "account.block_domain": "Αποκλεισμός τομέα {domain}", "account.blocked": "Αποκλεισμένος/η", "account.browse_more_on_origin_server": "Δες περισσότερα στο αρχικό προφίλ", "account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης", - "account.direct": "Άμεσο μήνυμα προς @{name}", + "account.direct": "Ιδιωτική αναφορά @{name}", "account.disable_notifications": "Διακοπή ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", "account.domain_blocked": "Ο τομέας αποκλείστηκε", "account.edit_profile": "Επεξεργασία προφίλ", - "account.enable_notifications": "Έναρξη ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", + "account.enable_notifications": "Ειδοποιήστε με όταν δημοσιεύει ο @{name}", "account.endorse": "Προβολή στο προφίλ", - "account.featured_tags.last_status_at": "Τελευταία δημοσίευση στις {date}", - "account.featured_tags.last_status_never": "Καμία Ανάρτηση", - "account.featured_tags.title": "προβεβλημένα hashtags του/της {name}", + "account.featured_tags.last_status_at": "Τελευταία ανάρτηση στις {date}", + "account.featured_tags.last_status_never": "Καμία ανάρτηση", + "account.featured_tags.title": "προβεβλημένες ετικέτες του/της {name}", "account.follow": "Ακολούθησε", "account.followers": "Ακόλουθοι", "account.followers.empty": "Κανείς δεν ακολουθεί αυτό τον χρήστη ακόμα.", "account.followers_counter": "{count, plural, one {{counter} Ακόλουθος} other {{counter} Ακόλουθοι}}", - "account.following": "Αυτό το πρόγραμμα χρέωσης καλύπτει τα ακόλουθα έργα:", - "account.following_counter": "{count, plural, other {{counter} Ακολουθεί}}", + "account.following": "Ακολουθείτε", + "account.following_counter": "{count, plural, one {{counter} Ακολουθεί} other {{counter} Ακολουθούν}}", "account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.", "account.follows_you": "Σε ακολουθεί", "account.go_to_profile": "Μετάβαση στο προφίλ", - "account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}", - "account.joined_short": "Εγγραφή στο ", - "account.languages": "Είστε συνδρομητής", - "account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου ελέχθηκε την {date}", - "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.", + "account.hide_reblogs": "Απόκρυψη ενισχύσεων από @{name}", + "account.joined_short": "Έγινε μέλος", + "account.languages": "Αλλαγή εγγεγραμμένων γλωσσών", + "account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου ελέχθηκε στις {date}", + "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού έχει ρυθμιστεί σε κλειδωμένη. Ο ιδιοκτήτης αξιολογεί χειροκίνητα ποιος μπορεί να τον ακολουθήσει.", "account.media": "Πολυμέσα", "account.mention": "Ανάφερε @{name}", "account.moved_to": "Ο/Η {name} έχει υποδείξει ότι ο νέος λογαριασμός του/της είναι τώρα:", - "account.mute": "Σώπασε @{name}", + "account.mute": "Σώπασε τον @{name}", "account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}", "account.muted": "Αποσιωπημένος/η", "account.open_original_page": "Ανοικτό", @@ -56,23 +56,23 @@ "account.requested": "Εκκρεμεί έγκριση. Κάνε κλικ για να ακυρώσεις το αίτημα παρακολούθησης", "account.requested_follow": "Ο/Η {name} αιτήθηκε να σε ακολουθήσει", "account.share": "Μοίρασμα του προφίλ @{name}", - "account.show_reblogs": "Εμφάνιση προωθήσεων από @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Τουτ} other {{counter} Τουτ}}", - "account.unblock": "Ξεμπλόκαρε @{name}", - "account.unblock_domain": "Αποκάλυψε το {domain}", - "account.unblock_short": "Ξεμπλοκάρισμα", - "account.unendorse": "Άνευ προβολής στο προφίλ", - "account.unfollow": "Διακοπή παρακολούθησης", - "account.unmute": "Διακοπή αποσιώπησης @{name}", - "account.unmute_notifications": "Διακοπή αποσιώπησης ειδοποιήσεων του/της @{name}", + "account.show_reblogs": "Εμφάνιση ενισχύσεων από @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Ανάρτηση} other {{counter} Αναρτήσεις}}", + "account.unblock": "Άρση αποκλεισμού @{name}", + "account.unblock_domain": "Άρση αποκλεισμού του τομέα {domain}", + "account.unblock_short": "Άρση αποκλεισμού", + "account.unendorse": "Να μην παρέχεται στο προφίλ", + "account.unfollow": "Άρση ακολούθησης", + "account.unmute": "Διακοπή σίγασης @{name}", + "account.unmute_notifications": "Άρση σίγασης ειδοποιήσεων του/της @{name}", "account.unmute_short": "Κατάργηση σίγασης", - "account_note.placeholder": "Κλικ για να βάλεις σημείωση", + "account_note.placeholder": "Κάνε κλικ για να προσθέσεις σημείωση", "admin.dashboard.daily_retention": "Ποσοστό χρηστών που παραμένουν μετά την εγγραφή, ανά ημέρα", "admin.dashboard.monthly_retention": "Ποσοστό χρηστών που παραμένουν μετά την εγγραφή, ανά μήνα", - "admin.dashboard.retention.average": "%(display_name)s άφησε %(ratings_total)s βαθμολογία,
    η μέση βαθμολογία είναι %(rating_average)s", + "admin.dashboard.retention.average": "Μέσος όρος", "admin.dashboard.retention.cohort": "Μήνας εγγραφής", "admin.dashboard.retention.cohort_size": "Νέοι χρήστες", - "alert.rate_limited.message": "Παρακαλούμε δοκίμασε ξανά αφού περάσει η {retry_time, time, medium}.", + "alert.rate_limited.message": "Παρακαλούμε δοκίμασε ξανά μετά τις {retry_time, time, medium}", "alert.rate_limited.title": "Περιορισμός συχνότητας", "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.", "alert.unexpected.title": "Εεπ!", @@ -102,7 +102,7 @@ "column.blocks": "Αποκλεισμένοι χρήστες", "column.bookmarks": "Σελιδοδείκτες", "column.community": "Τοπική ροή", - "column.direct": "Προσωπικά μηνύματα", + "column.direct": "Ιδιωτικές αναφορές", "column.directory": "Δες προφίλ", "column.domain_blocks": "Κρυμμένοι τομείς", "column.favourites": "Αγαπημένα", @@ -216,7 +216,7 @@ "empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.", "empty_column.bookmarked_statuses": "Δεν έχεις κανένα αποθηκευμένο τουτ ακόμα. Μόλις αποθηκεύσεις κάποιο, θα εμφανιστεί εδώ.", "empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!", - "empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.", + "empty_column.direct": "Δεν έχεις καμία προσωπική αναφορά ακόμα. Όταν στείλεις ή λάβεις μία, θα εμφανιστεί εδώ.", "empty_column.domain_blocks": "Δεν υπάρχουν αποκλεισμένοι τομείς ακόμα.", "empty_column.explore_statuses": "Τίποτα δεν τρεντάρει αυτή τη στιγμή. Ελέγξτε αργότερα!", "empty_column.favourited_statuses": "Δεν έχεις κανένα αγαπημένο τουτ ακόμα. Μόλις αγαπήσεις κάποιο, θα εμφανιστεί εδώ.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "εμφάνιση της κατάστασης σε μια από τις στήλες", "keyboard_shortcuts.compose": "εστίαση στην περιοχή συγγραφής", "keyboard_shortcuts.description": "Περιγραφή", - "keyboard_shortcuts.direct": "άνοιγμα στήλης προσωπικών μηνυμάτων", + "keyboard_shortcuts.direct": "για το άνοιγμα της στήλης ιδιωτικών αναφορών", "keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα", "keyboard_shortcuts.enter": "εμφάνιση κατάστασης", "keyboard_shortcuts.favourite": "σημείωση ως αγαπημένο", @@ -376,7 +376,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": "Επεξεργασία προφίλ", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Ανεπιθύμητα", "report_notification.categories.violation": "Παραβίαση κανόνα", "report_notification.open": "Ανοικτό", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Αναζήτηση", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Αναζήτηση ή εισαγωγή URL", - "search_popout.search_format": "Προχωρημένη αναζήτηση", - "search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, έχεις σημειώσει ως αγαπημένες, έχεις προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ετικέτες ταιριάζουν.", - "search_popout.tips.hashtag": "ετικέτα", - "search_popout.tips.status": "κατάσταση", - "search_popout.tips.text": "Απλό κείμενο που επιστρέφει ονόματα και ετικέτες που ταιριάζουν", - "search_popout.tips.user": "χρήστης", - "search_results.accounts": "Άνθρωποι", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Προφίλ", "search_results.all": "Όλα", "search_results.hashtags": "Ετικέτες", "search_results.nothing_found": "Δεν βρέθηκε τίποτα με αυτούς τους όρους αναζήτησης", @@ -557,8 +559,8 @@ "status.copy": "Αντιγραφή συνδέσμου της δημοσίευσης", "status.delete": "Διαγραφή", "status.detailed_status": "Προβολή λεπτομερειών συζήτησης", - "status.direct": "Προσωπικό μήνυμα προς @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Ιδιωτική αναφορά @{name}", + "status.direct_indicator": "Ιδιωτική αναφορά", "status.edit": "Επεξεργασία", "status.edited": "Επεξεργάστηκε στις {date}", "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 359cc03881..5d381bc7d5 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "to open private mentions column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 3d59fa01d7..236f168616 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -522,14 +522,16 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns posts you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 29ecea294e..27b33c31f2 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -20,7 +20,7 @@ "account.blocked": "Blokita", "account.browse_more_on_origin_server": "Foliumi pli ĉe la originala profilo", "account.cancel_follow_request": "Nuligi peton por sekvado", - "account.direct": "Rekte mesaĝi @{name}", + "account.direct": "Private mencii @{name}", "account.disable_notifications": "Ne plu sciigi min, kiam @{name} mesaĝas", "account.domain_blocked": "Domajno blokita", "account.edit_profile": "Redakti la profilon", @@ -102,7 +102,7 @@ "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", "column.community": "Loka templinio", - "column.direct": "Rektaj mesaĝoj", + "column.direct": "Privataj mencioj", "column.directory": "Foliumi la profilojn", "column.domain_blocks": "Blokitaj domajnoj", "column.favourites": "Stelumoj", @@ -216,7 +216,7 @@ "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.", "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis afiŝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", "empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!", - "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, tiu aperos ĉi tie.", + "empty_column.direct": "Vi ankoraŭ ne havas privatan mencion. Kiam vi sendos aŭ ricevos iun, tiu 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 afiŝon. Kiam vi stelumos iun, ĝi aperos ĉi tie.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj", "keyboard_shortcuts.compose": "enfokusigi la tekstujon", "keyboard_shortcuts.description": "Priskribo", - "keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj", + "keyboard_shortcuts.direct": "por malfermi la kolumnon pri privataj mencioj", "keyboard_shortcuts.down": "iri suben en la listo", "keyboard_shortcuts.enter": "malfermi mesaĝon", "keyboard_shortcuts.favourite": "Stelumi", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Legosignoj", "navigation_bar.community_timeline": "Loka templinio", "navigation_bar.compose": "Skribi novan mesaĝon", - "navigation_bar.direct": "Rektaj mesaĝoj", + "navigation_bar.direct": "Privataj mencioj", "navigation_bar.discover": "Esplori", "navigation_bar.domain_blocks": "Blokitaj domajnoj", "navigation_bar.edit_profile": "Redakti profilon", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Trudmesaĝo", "report_notification.categories.violation": "Malobservo de la regulo", "report_notification.open": "Malfermi la raporton", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Serĉi", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Serĉu aŭ algluu URL-on", - "search_popout.search_format": "Detala serĉo", - "search_popout.tips.full_text": "Simpla teksto retrovas la afiŝ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": "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_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Ĉiuj", "search_results.hashtags": "Kradvortoj", "search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj", @@ -557,8 +559,8 @@ "status.copy": "Kopii la ligilon al la mesaĝo", "status.delete": "Forigi", "status.detailed_status": "Detala konversacia vido", - "status.direct": "Rekte mesaĝi @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Private mencii @{name}", + "status.direct_indicator": "Privata mencio", "status.edit": "Redakti", "status.edited": "Redaktita {date}", "status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index f9d6b21d9b..1636229ede 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Explorar más en el perfil original", "account.cancel_follow_request": "Retirar la solicitud de seguimiento", - "account.direct": "Mensaje directo a @{name}", + "account.direct": "Mención privada a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} envíe mensajes", "account.domain_blocked": "Dominio bloqueado", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea temporal local", - "column.direct": "Mensajes directos", + "column.direct": "Menciones privadas", "column.directory": "Explorar perfiles", "column.domain_blocks": "Dominios bloqueados", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Todavía no bloqueaste a ningún usuario.", "empty_column.bookmarked_statuses": "Todavía no tenés mensajes guardados en \"Marcadores\". Cuando guardés uno en \"Marcadores\", se mostrará acá.", "empty_column.community": "La línea temporal local está vacía. ¡Escribí algo en modo público para que se empiece a correr la bola!", - "empty_column.direct": "Todavía no tenés ningún mensaje directo. Cuando enviés o recibás uno, se mostrará acá.", + "empty_column.direct": "Todavía no tenés ninguna mención privada. Cuando enviés o recibás una, se mostrará acá.", "empty_column.domain_blocks": "Todavía no hay dominios bloqueados.", "empty_column.explore_statuses": "No hay nada en tendencia ahora mismo. ¡Volvé a revisar más tarde!", "empty_column.favourited_statuses": "Todavía no tenés mensajes favoritos. Cuando marqués uno como favorito, se mostrará acá.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Enfocar columna", "keyboard_shortcuts.compose": "Enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "para abrir columna de mensajes directos", + "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "Bajar en la lista", "keyboard_shortcuts.enter": "Abrir mensaje", "keyboard_shortcuts.favourite": "Marcar mensaje como favorito", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea temporal local", "navigation_bar.compose": "Redactar un nuevo mensaje", - "navigation_bar.direct": "Mensajes directos", + "navigation_bar.direct": "Menciones privadas", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios bloqueados", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Violación de regla", "report_notification.open": "Abrir denuncia", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Buscar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Buscar o pegar dirección web", - "search_popout.search_format": "Formato de búsqueda avanzada", - "search_popout.tips.full_text": "Las búsquedas de texto simple devuelven los mensajes que escribiste, los marcados como favoritos, los adheridos o en los que te mencionaron, así como nombres de usuarios, nombres mostrados y etiquetas.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "mensaje", - "search_popout.tips.text": "Las búsquedas de texto simple devuelven nombres de usuarios, nombres mostrados y etiquetas que coincidan", - "search_popout.tips.user": "usuario", - "search_results.accounts": "Gente", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfiles", "search_results.all": "Todos", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda", @@ -557,8 +559,8 @@ "status.copy": "Copiar enlace al mensaje", "status.delete": "Eliminar", "status.detailed_status": "Vista de conversación detallada", - "status.direct": "Mensaje directo para @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mención privada a @{name}", + "status.direct_indicator": "Mención privada", "status.edit": "Editar", "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d10dfa9b39..4fc226b96c 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", "account.cancel_follow_request": "Retirar solicitud de seguimiento", - "account.direct": "Mensaje a @{name}", + "account.direct": "Mención privada @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio oculto", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", - "column.direct": "Mensajes", + "column.direct": "Menciones privadas", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Aún no has bloqueado a ningún usuario.", "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.", "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!", - "empty_column.direct": "Aún no tienes ningún mensaje. Cuando envíes o recibas uno, se mostrará aquí.", + "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!", "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "enfocar un estado en una de las columnas", "keyboard_shortcuts.compose": "enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "abrir la columna de mensajes", + "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "abrir estado", "keyboard_shortcuts.favourite": "añadir a favoritos", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Historia local", "navigation_bar.compose": "Escribir un nuevo toot", - "navigation_bar.direct": "Mensajes", + "navigation_bar.direct": "Menciones privadas", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Infracción de regla", "report_notification.open": "Abrir denuncia", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Buscar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Buscar o pegar URL", - "search_popout.search_format": "Formato de búsqueda avanzada", - "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "publicación", - "search_popout.tips.text": "El texto simple devuelve nombres, usuarios y etiquetas coincidentes", - "search_popout.tips.user": "usuario", - "search_results.accounts": "Gente", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfiles", "search_results.all": "Todos", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda", @@ -557,8 +559,8 @@ "status.copy": "Copiar enlace al estado", "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", - "status.direct": "Enviar mensaje a @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mención privada @{name}", + "status.direct_indicator": "Mención privada", "status.edit": "Editar", "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index ffdecda887..5eb68c4f85 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", "account.cancel_follow_request": "Retirar solicitud de seguimiento", - "account.direct": "Mensaje directo a @{name}", + "account.direct": "Mención privada @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio bloqueado", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Cronología local", - "column.direct": "Mensajes directos", + "column.direct": "Menciones privadas", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios bloqueados", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Aún no has bloqueado a ningún usuario.", "empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.", "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!", - "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.", + "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada está en tendencia en este momento. ¡Revisa más tarde!", "empty_column.favourited_statuses": "Aún no tienes publicaciones favoritas. Cuando marques una como favorita, aparecerá aquí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "enfocar un estado en una de las columnas", "keyboard_shortcuts.compose": "enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", - "keyboard_shortcuts.direct": "para abrir la columna de mensajes directos", + "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "abrir estado", "keyboard_shortcuts.favourite": "añadir a favoritos", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronología local", "navigation_bar.compose": "Escribir nueva publicación", - "navigation_bar.direct": "Mensajes directos", + "navigation_bar.direct": "Menciones privadas", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Infracción de regla", "report_notification.open": "Abrir informe", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Buscar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Buscar o pegar URL", - "search_popout.search_format": "Formato de búsqueda avanzada", - "search_popout.tips.full_text": "Las búsquedas de texto recuperan publicaciones que has escrito, marcado como favoritas, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "status", - "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag", - "search_popout.tips.user": "usuario", - "search_results.accounts": "Gente", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfiles", "search_results.all": "Todos", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda", @@ -557,8 +559,8 @@ "status.copy": "Copiar enlace al estado", "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", - "status.direct": "Mensaje directo a @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mención privada @{name}", + "status.direct_indicator": "Mención privada", "status.edit": "Editar", "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index e8874a5568..7e39386aa7 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -20,7 +20,7 @@ "account.blocked": "Blokeeritud", "account.browse_more_on_origin_server": "Vaata rohkem algsel profiilil", "account.cancel_follow_request": "Võta jälgimistaotlus tagasi", - "account.direct": "Otsesõnum kasutajale @{name}", + "account.direct": "Maini privaatselt @{name}", "account.disable_notifications": "Peata teavitused @{name} postitustest", "account.domain_blocked": "Domeen peidetud", "account.edit_profile": "Muuda profiili", @@ -102,7 +102,7 @@ "column.blocks": "Blokeeritud kasutajad", "column.bookmarks": "Järjehoidjad", "column.community": "Kohalik ajajoon", - "column.direct": "Otsesõnumid", + "column.direct": "Privaatsed mainimised", "column.directory": "Sirvi profiile", "column.domain_blocks": "Peidetud domeenid", "column.favourites": "Lemmikud", @@ -216,7 +216,7 @@ "empty_column.blocks": "Blokeeritud kasutajaid pole.", "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.direct": "Sul pole veel ühtegi privaatset mainimist. Kui saadad või saad mõne, ilmuvad need siin.", "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": "Pole veel lemmikpostitusi. Kui märgid mõne, näed neid siin.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fookus veerule", "keyboard_shortcuts.compose": "Fookus teksti koostamise alale", "keyboard_shortcuts.description": "Kirjeldus", - "keyboard_shortcuts.direct": "ava otsesõnumite veerg", + "keyboard_shortcuts.direct": "privaatsete mainimiste veeru avamiseks", "keyboard_shortcuts.down": "Liigu loetelus alla", "keyboard_shortcuts.enter": "Ava postitus", "keyboard_shortcuts.favourite": "Märgi lemmikuks", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", "navigation_bar.compose": "Koosta uus postitus", - "navigation_bar.direct": "Otsesõnumid", + "navigation_bar.direct": "Privaatsed mainimised", "navigation_bar.discover": "Avasta", "navigation_bar.domain_blocks": "Peidetud domeenid", "navigation_bar.edit_profile": "Muuda profiili", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Rämpspost", "report_notification.categories.violation": "Reeglite rikkumine", "report_notification.open": "Ava teavitus", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Otsi", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Otsi või kleebi URL", - "search_popout.search_format": "Täiustatud otsiformaat", - "search_popout.tips.full_text": "Lihttekst annab vastuseks postitused, mille oled kirjutanud, lisanud lemmikuks, jaganud või kus on sind mainitud, ning lisaks kokkusobivad kasutajanimed, profiili kuvanimed ja sildid.", - "search_popout.tips.hashtag": "silt", - "search_popout.tips.status": "postitus", - "search_popout.tips.text": "Lihtne tekst toob esile kattuvad kuvanimed, kasutajanimed ning sildid", - "search_popout.tips.user": "kasutaja", - "search_results.accounts": "Inimesed", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiilid", "search_results.all": "Kõik", "search_results.hashtags": "Sildid", "search_results.nothing_found": "Otsisõnadele vastavat sisu ei leitud", @@ -557,8 +559,8 @@ "status.copy": "Kopeeri postituse link", "status.delete": "Kustuta", "status.detailed_status": "Detailne vestluskuva", - "status.direct": "Saada otsesõnum @{name}'ile", - "status.direct_indicator": "Private mention", + "status.direct": "Maini privaatselt @{name}", + "status.direct_indicator": "Privaatne mainimine", "status.edit": "Muuda", "status.edited": "{date} muudetud", "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index bf3f3e0e31..11ed5be8cb 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -20,7 +20,7 @@ "account.blocked": "Blokeatuta", "account.browse_more_on_origin_server": "Arakatu gehiago jatorrizko profilean", "account.cancel_follow_request": "Baztertu jarraitzeko eskaera", - "account.direct": "Mezu zuzena @{name}(r)i", + "account.direct": "Pribatuki aipatu @{name}", "account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzailearen bidalketetan", "account.domain_blocked": "Ezkutatutako domeinua", "account.edit_profile": "Aldatu profila", @@ -102,7 +102,7 @@ "column.blocks": "Blokeatutako erabiltzaileak", "column.bookmarks": "Laster-markak", "column.community": "Denbora-lerro lokala", - "column.direct": "Mezu zuzenak", + "column.direct": "Aipamen pribatuak", "column.directory": "Arakatu profilak", "column.domain_blocks": "Ezkutatutako domeinuak", "column.favourites": "Gogokoak", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.", "empty_column.bookmarked_statuses": "Oraindik ez dituzu bidalketa laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.", "empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!", - "empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.", + "empty_column.direct": "Ez duzu aipamen pribaturik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.", "empty_column.domain_blocks": "Ez dago ezkutatutako domeinurik oraindik.", "empty_column.explore_statuses": "Ez dago joerarik une honetan. Begiratu beranduago!", "empty_column.favourited_statuses": "Ez duzu gogokorik oraindik. Gogokoren bat duzunean hemen agertuko da.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "mezu bat zutabe batean fokatzea", "keyboard_shortcuts.compose": "testua konposatzeko arean fokatzea", "keyboard_shortcuts.description": "Deskripzioa", - "keyboard_shortcuts.direct": "mezu zuzenen zutabea irekitzeko", + "keyboard_shortcuts.direct": "aipamen pribatuen zutabea irekitzeko", "keyboard_shortcuts.down": "zerrendan behera mugitzea", "keyboard_shortcuts.enter": "Ireki bidalketa", "keyboard_shortcuts.favourite": "Egin gogoko bidalketa", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Laster-markak", "navigation_bar.community_timeline": "Denbora-lerro lokala", "navigation_bar.compose": "Idatzi bidalketa berria", - "navigation_bar.direct": "Mezu zuzenak", + "navigation_bar.direct": "Aipamen pribatuak", "navigation_bar.discover": "Aurkitu", "navigation_bar.domain_blocks": "Ezkutatutako domeinuak", "navigation_bar.edit_profile": "Aldatu profila", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Arau haustea", "report_notification.open": "Ireki salaketa", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Bilatu", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Bilatu edo itsatsi URLa", - "search_popout.search_format": "Bilaketa aurreratuaren formatua", - "search_popout.tips.full_text": "Testu hutsarekin zuk idatzitako bidalketak, gogokoak, bultzadak edo aipamenak aurkitu ditzakezu, bat datozen erabiltzaile-izenak, pantaila-izenak, eta traolak.", - "search_popout.tips.hashtag": "traola", - "search_popout.tips.status": "bidalketa", - "search_popout.tips.text": "Testu hutsak pantaila-izenak, erabiltzaile-izenak eta traolak bilatzen ditu", - "search_popout.tips.user": "erabiltzailea", - "search_results.accounts": "Jendea", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profilak", "search_results.all": "Guztiak", "search_results.hashtags": "Traolak", "search_results.nothing_found": "Ez da emaitzarik aurkitu bilaketa-termino horientzat", @@ -557,8 +559,8 @@ "status.copy": "Kopiatu bidalketaren esteka", "status.delete": "Ezabatu", "status.detailed_status": "Elkarrizketaren ikuspegi xehetsua", - "status.direct": "Mezu zuzena @{name}(r)i", - "status.direct_indicator": "Private mention", + "status.direct": "Pribatuki aipatu @{name}", + "status.direct_indicator": "Aipamen pribatua", "status.edit": "Editatu", "status.edited": "Editatua {date}", "status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index a3eca31034..2fdee7bca3 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -20,7 +20,7 @@ "account.blocked": "مسدود", "account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی", "account.cancel_follow_request": "رد کردن درخواست پی‌گیری", - "account.direct": "پیام مستقیم به ‎@{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "آگاه کردن من هنگام فرسته‌های ‎@{name} را متوقّف کن", "account.domain_blocked": "دامنه مسدود شد", "account.edit_profile": "ویرایش نمایه", @@ -102,7 +102,7 @@ "column.blocks": "کاربران مسدود شده", "column.bookmarks": "نشانک‌ها", "column.community": "خط زمانی محلّی", - "column.direct": "پیام‌های مستقیم", + "column.direct": "Private mentions", "column.directory": "مرور نمایه‌ها", "column.domain_blocks": "دامنه‌های مسدود شده", "column.favourites": "پسندیده‌ها", @@ -162,7 +162,7 @@ "confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟", "confirmations.domain_block.confirm": "مسدود کردن تمام دامنه", "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهی‌هایتان نخواهید دید. پی‌گیرانتان از این دامنه هم برداشته خواهند شد.", - "confirmations.edit.confirm": "Edit", + "confirmations.edit.confirm": "ویرایش", "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.logout.confirm": "خروج از حساب", "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟", @@ -216,7 +216,7 @@ "empty_column.blocks": "هنوز کسی را مسدود نکرده‌اید.", "empty_column.bookmarked_statuses": "هنوز هیچ فرستهٔ نشانه‌گذاری شده‌ای ندارید. هنگامی که فرسته‌ای را نشانه‌گذاری کنید، این‌جا نشان داده خواهد شد.", "empty_column.community": "خط زمانی محلّی خالی است. چیزی بنویسید تا چرخش بچرخد!", - "empty_column.direct": "هنوز هیچ پیام مستقیمی ندارید. هنگامی که چنین پیامی بگیرید یا بفرستید این‌جا نشان داده خواهد شد.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "هنوز هیچ دامنه‌ای مسدود نشده است.", "empty_column.explore_statuses": "الآن چیزی پرطرفدار نیست. بعداً دوباره بررسی کنید!", "empty_column.favourited_statuses": "شما هنوز هیچ فرسته‌ای را نپسندیده‌اید. هنگامی که فرسته‌ای را بپسندید، این‌جا نشان داده خواهد شد.", @@ -266,7 +266,7 @@ "follow_request.authorize": "اجازه دهید", "follow_request.reject": "رد کنید", "follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.", - "followed_tags": "Followed hashtags", + "followed_tags": "برچسب‌های پی‌گرفته", "footer.about": "درباره", "footer.directory": "فهرست نمایه‌ها", "footer.get_app": "گرفتن کاره", @@ -274,7 +274,7 @@ "footer.keyboard_shortcuts": "میان‌برهای صفحه‌کلید", "footer.privacy_policy": "سیاست محرمانگی", "footer.source_code": "نمایش کد مبدأ", - "footer.status": "Status", + "footer.status": "وضعیت", "generic.saved": "ذخیره شده", "getting_started.heading": "آغاز کنید", "hashtag.column_header.tag_mode.all": "و {additional}", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "برای تمرکز روی یک فرسته در یکی از ستون‌ها", "keyboard_shortcuts.compose": "تمرکز روی محیط نوشتن", "keyboard_shortcuts.description": "توضیح", - "keyboard_shortcuts.direct": "برای گشودن ستون پیغام‌های مستقیم", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "پایین بردن در سیاهه", "keyboard_shortcuts.enter": "گشودن فرسته", "keyboard_shortcuts.favourite": "پسندیدن فرسته", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "نشانک‌ها", "navigation_bar.community_timeline": "خط زمانی محلّی", "navigation_bar.compose": "نوشتن فرستهٔ تازه", - "navigation_bar.direct": "پیام‌های مستقیم", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "گشت و گذار", "navigation_bar.domain_blocks": "دامنه‌های مسدود شده", "navigation_bar.edit_profile": "ویرایش نمایه", @@ -384,7 +384,7 @@ "navigation_bar.favourites": "پسندیده‌ها", "navigation_bar.filters": "واژه‌های خموش", "navigation_bar.follow_requests": "درخواست‌های پی‌گیری", - "navigation_bar.followed_tags": "Followed hashtags", + "navigation_bar.followed_tags": "برچسب‌های پی‌گرفته", "navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان", "navigation_bar.lists": "سیاهه‌ها", "navigation_bar.logout": "خروج", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "هرزنامه", "report_notification.categories.violation": "تخطّی از قانون", "report_notification.open": "گشودن گزارش", + "search.no_recent_searches": "No recent searches", "search.placeholder": "جست‌وجو", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "جست‌وجو یا جایگذاری نشانی", - "search_popout.search_format": "راهنمای جست‌وجوی پیشرفته", - "search_popout.tips.full_text": "جست‌وجوی متنی ساده فرسته‌هایی که نوشته، پسندیده، تقویت‌کرده یا در آن‌ها نام‌برده شده‌اید را به علاوهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌ها برمی‌گرداند.", - "search_popout.tips.hashtag": "برچسب", - "search_popout.tips.status": "فرسته", - "search_popout.tips.text": "جست‌وجوی متنی ساده برای نام‌ها، نام‌های کاربری، و برچسب‌ها", - "search_popout.tips.user": "کاربر", - "search_results.accounts": "افراد", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "همه", "search_results.hashtags": "برچسب‌ها", "search_results.nothing_found": "چیزی برای این عبارت جست‌وجو یافت نشد", @@ -557,7 +559,7 @@ "status.copy": "رونوشت از پیوند فرسته", "status.delete": "حذف", "status.detailed_status": "نمایش کامل گفتگو", - "status.direct": "پیام مستقیم به ‎@{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "ویرایش", "status.edited": "ویرایش شده در {date}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 3d95065138..eaed4906f1 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -20,7 +20,7 @@ "account.blocked": "Estetty", "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", "account.cancel_follow_request": "Peruuta seurantapyyntö", - "account.direct": "Yksityisviesti käyttäjälle @{name}", + "account.direct": "Mainitse @{name} yksityisesti", "account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee", "account.domain_blocked": "Palvelu estetty", "account.edit_profile": "Muokkaa profiilia", @@ -102,7 +102,7 @@ "column.blocks": "Estetyt käyttäjät", "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", - "column.direct": "Yksityisviestit", + "column.direct": "Yksityiset maininnat", "column.directory": "Selaa profiileja", "column.domain_blocks": "Estetyt palvelut", "column.favourites": "Suosikit", @@ -216,7 +216,7 @@ "empty_column.blocks": "Et ole estänyt käyttäjiä.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", - "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.", + "empty_column.direct": "Yksityisiä mainintoja ei vielä ole. Kun lähetät tai vastaanotat sellaisen, näet sen täältä.", "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!", "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", @@ -224,7 +224,7 @@ "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.followed_tags": "Et ole vielä ottanut yhtään aihetunnistetta seurattavaksesi. Jos tai kun sitten teet niin, ne listautuvat tänne.", - "empty_column.hashtag": "Tällä hashtagilla ei ole vielä mitään.", + "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.", "empty_column.home": "Kotisi aikajana on tyhjä! Seuraa lisää ihmisiä täyttääksesi sen. {suggestions}", "empty_column.home.suggestions": "Katso joitakin ehdotuksia", "empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Kohdista sarakkeeseen", "keyboard_shortcuts.compose": "siirry tekstinsyöttöön", "keyboard_shortcuts.description": "Kuvaus", - "keyboard_shortcuts.direct": "avataksesi yksityisviestisarakkeen", + "keyboard_shortcuts.direct": "avataksesi yksityisten mainintojen sarakkeen", "keyboard_shortcuts.down": "Siirry listassa alaspäin", "keyboard_shortcuts.enter": "Avaa julkaisu", "keyboard_shortcuts.favourite": "Lisää suosikkeihin", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.compose": "Julkaise", - "navigation_bar.direct": "Yksityisviestit", + "navigation_bar.direct": "Yksityiset maininnat", "navigation_bar.discover": "Löydä uutta", "navigation_bar.domain_blocks": "Estetyt palvelut", "navigation_bar.edit_profile": "Muokkaa profiilia", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Roskaposti", "report_notification.categories.violation": "Sääntöjen rikkominen", "report_notification.open": "Avaa ilmoitus", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Hae", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "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, tehostanut 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 aihetunnisteet", - "search_popout.tips.user": "käyttäjä", - "search_results.accounts": "Ihmiset", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiilit", "search_results.all": "Kaikki", "search_results.hashtags": "Aihetunnisteet", "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", @@ -557,8 +559,8 @@ "status.copy": "Kopioi linkki viestiin", "status.delete": "Poista", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä", - "status.direct": "Yksityisviesti käyttäjälle @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mainitse @{name} yksityisesti", + "status.direct_indicator": "Yksityinen maininta", "status.edit": "Muokkaa", "status.edited": "Muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 778b0e028a..714d405f83 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -20,7 +20,7 @@ "account.blocked": "Bannað/ur", "account.browse_more_on_origin_server": "Kaga meira á upprunaligu vangamyndina", "account.cancel_follow_request": "Strika fylgjaraumbøn", - "account.direct": "Beinleiðis boð @{name}", + "account.direct": "Umrøð @{name} privat", "account.disable_notifications": "Ikki boða mær frá, tá @{name} skrivar", "account.domain_blocked": "Økisnavn bannað", "account.edit_profile": "Broyt vanga", @@ -102,7 +102,7 @@ "column.blocks": "Bannaðir brúkarar", "column.bookmarks": "Bókamerki", "column.community": "Lokal tíðarlinja", - "column.direct": "Beinleiðis boð", + "column.direct": "Privatar umrøður", "column.directory": "Blaða gjøgnum vangar", "column.domain_blocks": "Bannað økisnøvn", "column.favourites": "Dámd", @@ -216,7 +216,7 @@ "empty_column.blocks": "Tú hevur enn ikki bannað nakran brúkara.", "empty_column.bookmarked_statuses": "Tú hevur enn einki goymt uppslag. Tú tú goymir eitt uppslag, kemur tað her.", "empty_column.community": "Lokala tíðarlinjan er tóm. Skriva okkurt alment fyri at fáa boltin á rull!", - "empty_column.direct": "Tú hevur eingi beinleiðis boð enn. Tá tú sendir ella móttekur eini beinleiðis boð, so síggjast tey her.", + "empty_column.direct": "Tú hevur ongar privatar umrøður enn. Tá tú sendir ella móttekur eina privata umrøðu, so verður hon sjónlig her.", "empty_column.domain_blocks": "Enn eru eingi blokeraði domenir.", "empty_column.explore_statuses": "Einki rák er beint nú. Royn aftur seinni!", "empty_column.favourited_statuses": "Tú hevur ongar yndispostar enn. Tá tú gevur einum posti yndismerki, so sært tú hann her.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fá teig í miðdepilin", "keyboard_shortcuts.compose": "Fá skriviøkið í miðdeplin", "keyboard_shortcuts.description": "Frágreiðing", - "keyboard_shortcuts.direct": "fyri at lata teig við beinleiðis boðum upp", + "keyboard_shortcuts.direct": "at lata teigin við privatum umrøðum upp", "keyboard_shortcuts.down": "Flyt niðureftir listanum", "keyboard_shortcuts.enter": "Opna uppslag", "keyboard_shortcuts.favourite": "Dáma uppslag", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Goymd", "navigation_bar.community_timeline": "Lokal tíðarlinja", "navigation_bar.compose": "Skriva nýggjan post", - "navigation_bar.direct": "Beinleiðis boð", + "navigation_bar.direct": "Privatar umrøður", "navigation_bar.discover": "Uppdaga", "navigation_bar.domain_blocks": "Bannað økisnøvn", "navigation_bar.edit_profile": "Broyt vanga", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Ruskpostur", "report_notification.categories.violation": "Brotin regla", "report_notification.open": "Opna melding", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Leita", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Leita ella set URL inn", - "search_popout.search_format": "Framkomið leiti-forsnið", - "search_popout.tips.full_text": "Einfaldur tekstur gevur aftur postar, sum tú hevur skrivað, yndismerkt, stimbrað ella er nevnd/ur í, umframt samsvarandi brúkaranøvn, víst nøvn og frámerki.", - "search_popout.tips.hashtag": "frámerki", - "search_popout.tips.status": "postur", - "search_popout.tips.text": "Einfaldur tekstur gevur aftur víst nøvn, brúkaranøvn og frámerki", - "search_popout.tips.user": "brúkari", - "search_results.accounts": "Fólk", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Vangar", "search_results.all": "Alt", "search_results.hashtags": "Frámerki", "search_results.nothing_found": "Hesi leitiorð góvu ongi úrslit", @@ -557,8 +559,8 @@ "status.copy": "Kopiera leinki til postin", "status.delete": "Strika", "status.detailed_status": "Útgreinað samrøðusýni", - "status.direct": "Beinleiðis boð @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Umrøð @{name} privat", + "status.direct_indicator": "Privat umrøða", "status.edit": "Rætta", "status.edited": "Rættað {date}", "status.edited_x_times": "Rættað {count, plural, one {{count} ferð} other {{count} ferð}}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index e14b816bbc..ff85f43b7c 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqué·e", "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original", "account.cancel_follow_request": "Retirer cette demande d'abonnement", - "account.direct": "Message direct @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Ne plus me notifier quand @{name} publie", "account.domain_blocked": "Domaine bloqué", "account.edit_profile": "Modifier le profil", @@ -102,7 +102,7 @@ "column.blocks": "Comptes bloqués", "column.bookmarks": "Signets", "column.community": "Fil local", - "column.direct": "Messages directs", + "column.direct": "Private mentions", "column.directory": "Parcourir les profils", "column.domain_blocks": "Domaines bloqués", "column.favourites": "Favoris", @@ -162,8 +162,8 @@ "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?", "confirmations.domain_block.confirm": "Bloquer ce domaine entier", "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", - "confirmations.edit.confirm": "Edit", - "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.confirm": "Éditer", + "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?", "confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?", "confirmations.mute.confirm": "Masquer", @@ -216,7 +216,7 @@ "empty_column.blocks": "Vous n’avez bloqué aucun compte pour le moment.", "empty_column.bookmarked_statuses": "Vous n'avez pas de publications parmi vos signets. Lorsque vous en ajouterez une, elle apparaîtra ici.", "empty_column.community": "Le fil local est vide. Écrivez donc quelque chose pour le remplir!", - "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Il n’y a aucun domaine bloqué pour le moment.", "empty_column.explore_statuses": "Rien n'est en tendance présentement. Revenez plus tard!", "empty_column.favourited_statuses": "Vous n’avez pas encore de publications favorites. Lorsque vous en ajouterez une, elle apparaîtra ici.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Se concentrer sur une colonne", "keyboard_shortcuts.compose": "Se concentrer sur la zone de rédaction", "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "pour ouvrir la colonne de messages directs", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Descendre dans la liste", "keyboard_shortcuts.enter": "Ouvrir cette publication", "keyboard_shortcuts.favourite": "Ajouter publication aux favoris", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Signets", "navigation_bar.community_timeline": "Fil local", "navigation_bar.compose": "Rédiger un nouveau message", - "navigation_bar.direct": "Messages directs", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Découvrir", "navigation_bar.domain_blocks": "Domaines bloqués", "navigation_bar.edit_profile": "Modifier le profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Rechercher", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Rechercher ou saisir un URL", - "search_popout.search_format": "Recherche avancée", - "search_popout.tips.full_text": "Un texte normal retourne les publications que vous avez écrites, ajoutées à vos favoris, partagées, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et publications correspondantes.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "publication", - "search_popout.tips.text": "Une simple entrée de texte renvoie les noms affichés, les identifiants et les hashtags correspondants", - "search_popout.tips.user": "compte", - "search_results.accounts": "Personnes", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Tout", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Aucun résultat avec ces mots-clés", @@ -557,7 +559,7 @@ "status.copy": "Copier un lien vers cette publication", "status.delete": "Supprimer", "status.detailed_status": "Vue détaillée de la conversation", - "status.direct": "Envoyer un message direct à @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Modifier", "status.edited": "Modifiée le {date}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 8f2a886fb8..d3f5bc5a7f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqué·e", "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original", "account.cancel_follow_request": "Retirer la demande d’abonnement", - "account.direct": "Envoyer un message direct à @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose", "account.domain_blocked": "Domaine bloqué", "account.edit_profile": "Modifier le profil", @@ -102,7 +102,7 @@ "column.blocks": "Comptes bloqués", "column.bookmarks": "Signets", "column.community": "Fil public local", - "column.direct": "Messages directs", + "column.direct": "Private mentions", "column.directory": "Parcourir les profils", "column.domain_blocks": "Domaines bloqués", "column.favourites": "Favoris", @@ -216,7 +216,7 @@ "empty_column.blocks": "Vous n’avez bloqué aucun compte pour le moment.", "empty_column.bookmarked_statuses": "Vous n'avez pas de message en marque-page. Lorsque vous en ajouterez un, il apparaîtra ici.", "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !", - "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Il n’y a aucun domaine bloqué pour le moment.", "empty_column.explore_statuses": "Rien n'est en tendance pour le moment. Revenez plus tard !", "empty_column.favourited_statuses": "Vous n’avez pas encore de message en favori. Lorsque vous en ajouterez un, il apparaîtra ici.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Se placer dans une colonne", "keyboard_shortcuts.compose": "Se placer dans la zone de rédaction", "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "pour ouvrir la colonne des messages directs", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Descendre dans la liste", "keyboard_shortcuts.enter": "Ouvrir le message", "keyboard_shortcuts.favourite": "Ajouter le message aux favoris", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marque-pages", "navigation_bar.community_timeline": "Fil public local", "navigation_bar.compose": "Rédiger un nouveau message", - "navigation_bar.direct": "Messages directs", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Découvrir", "navigation_bar.domain_blocks": "Domaines bloqués", "navigation_bar.edit_profile": "Modifier le profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Rechercher", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Rechercher ou saisir une URL", - "search_popout.search_format": "Recherche avancée", - "search_popout.tips.full_text": "Faire une recherche textuelle retrouve les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "message", - "search_popout.tips.text": "Faire une recherche textuelle retrouve les noms affichés, les identifiants et les hashtags correspondants", - "search_popout.tips.user": "utilisateur", - "search_results.accounts": "Comptes", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Tous les résultats", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Aucun résultat avec ces mots-clefs", @@ -557,7 +559,7 @@ "status.copy": "Copier le lien vers le message", "status.delete": "Supprimer", "status.detailed_status": "Vue détaillée de la conversation", - "status.direct": "Envoyer un message direct à @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Éditer", "status.edited": "Édité le {date}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index f806494b70..f0e5cf9820 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -20,7 +20,7 @@ "account.blocked": "Blokkearre", "account.browse_more_on_origin_server": "Mear op it orizjinele profyl besjen", "account.cancel_follow_request": "Folchfersyk annulearje", - "account.direct": "@{name} in direkt berjocht stjoere", + "account.direct": "Privee fermelde @{name}", "account.disable_notifications": "Jou gjin melding mear wannear @{name} in berjocht pleatst", "account.domain_blocked": "Domein blokkearre", "account.edit_profile": "Profyl bewurkje", @@ -102,7 +102,7 @@ "column.blocks": "Blokkearre brûkers", "column.bookmarks": "Blêdwizers", "column.community": "Lokale tiidline", - "column.direct": "Direkte berjochten", + "column.direct": "Priveefermeldingen", "column.directory": "Profilen trochsykje", "column.domain_blocks": "Blokkearre domeinen", "column.favourites": "Favoriten", @@ -216,7 +216,7 @@ "empty_column.blocks": "Do hast noch gjin brûkers blokkearre.", "empty_column.bookmarked_statuses": "Jo hawwe noch gjin berjochten oan jo blêdwizers tafoege. Wannear’t jo der ien oan jo blêdwizers tafoegje, falt dizze hjir te sjen.", "empty_column.community": "De lokale tiidline is noch leech. Pleats in iepenbier berjocht om de spits ôf te biten!", - "empty_column.direct": "Jo hawwe noch gjin direkte berjochten. Wannear’t jo der ien ferstjoere of ûntfang, komt dizze hjir te stean.", + "empty_column.direct": "Jo hawwe noch gjin priveefermeldingen. Wannear’t jo der ien ferstjoere of ûntfange, komt dizze hjir te stean.", "empty_column.domain_blocks": "Der binne noch gjin blokkearre domeinen.", "empty_column.explore_statuses": "Op dit stuit binne der gjin trends. Kom letter werom!", "empty_column.favourited_statuses": "Jo hawwe noch gjin favorite berjochten. Wannear’t jo ien as favoryt markearje, falt dizze hjir te sjen.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Omskriuwing", - "keyboard_shortcuts.direct": "Direkte berjochten toane", + "keyboard_shortcuts.direct": "om de kolom priveefermeldingen te iepenjen", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "Berjocht iepenje", "keyboard_shortcuts.favourite": "As favoryt markearje", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Blêdwizers", "navigation_bar.community_timeline": "Lokale tiidline", "navigation_bar.compose": "Nij berjocht skriuwe", - "navigation_bar.direct": "Direkte berjochten", + "navigation_bar.direct": "Priveefermeldingen", "navigation_bar.discover": "Untdekke", "navigation_bar.domain_blocks": "Blokkearre domeinen", "navigation_bar.edit_profile": "Profyl bewurkje", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Skeinde regels", "report_notification.open": "Rapport iepenje", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Sykje", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Sykje of fier URL yn", - "search_popout.search_format": "Avansearre sykje", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Brûk gewoane tekst om te sykjen op werjeftenammen, brûkersnammen en hashtags", - "search_popout.tips.user": "brûker", - "search_results.accounts": "Minsken", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profilen", "search_results.all": "Alles", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Dizze syktermen leverje gjin resultaat op", @@ -557,8 +559,8 @@ "status.copy": "Copy link to status", "status.delete": "Fuortsmite", "status.detailed_status": "Detaillearre petearoersjoch", - "status.direct": "@{name} in direkt berjocht stjoere", - "status.direct_indicator": "Private mention", + "status.direct": "Privee fermelde @{name}", + "status.direct_indicator": "Priveefermelding", "status.edit": "Bewurkje", "status.edited": "Bewurke op {date}", "status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 8fc21a5a2a..6645483a50 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -20,7 +20,7 @@ "account.blocked": "Bactha", "account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh", "account.cancel_follow_request": "Éirigh as iarratas leanta", - "account.direct": "Seol teachtaireacht dhíreach chuig @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}", "account.domain_blocked": "Ainm fearainn bactha", "account.edit_profile": "Cuir an phróifíl in eagar", @@ -102,7 +102,7 @@ "column.blocks": "Cuntais choiscthe", "column.bookmarks": "Leabharmharcanna", "column.community": "Amlíne áitiúil", - "column.direct": "Teachtaireachtaí dhíreacha", + "column.direct": "Private mentions", "column.directory": "Brabhsáil próifílí", "column.domain_blocks": "Fearainn bhactha", "column.favourites": "Toghanna", @@ -216,7 +216,7 @@ "empty_column.blocks": "Níl aon úsáideoir bactha agat fós.", "empty_column.bookmarked_statuses": "Níl aon phostáil leabharmharcaithe agat fós. Nuair a dhéanann tú leabharmharc, beidh sé le feiceáil anseo.", "empty_column.community": "Tá an amlíne áitiúil folamh. Foilsigh rud éigin go poiblí le tús a chur le cúrsaí!", - "empty_column.direct": "Níl aon teachtaireacht dírithe agat fós. Nuair a sheolann tú nó nuair a fhaigheann tú ceann, feicfear anseo í.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Níl aon fearainn bhactha ann go fóill.", "empty_column.explore_statuses": "Níl rud ar bith ag treochtáil faoi láthair. Tar ar ais ar ball!", "empty_column.favourited_statuses": "Níor roghnaigh tú postáil ar bith fós. Nuair a roghnaigh tú ceann, beidh sí le feiceáil anseo.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Leabharmharcanna", "navigation_bar.community_timeline": "Amlíne áitiúil", "navigation_bar.compose": "Cum postáil nua", - "navigation_bar.direct": "Teachtaireachtaí dhíreacha", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Faigh amach", "navigation_bar.domain_blocks": "Fearainn bhactha", "navigation_bar.edit_profile": "Cuir an phróifíl in eagar", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Turscar", "report_notification.categories.violation": "Sárú rialach", "report_notification.open": "Oscail tuairisc", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Cuardaigh", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Cuardaigh nó cuir URL isteach", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "haischlib", - "search_popout.tips.status": "postáil", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "úsáideoir", - "search_results.accounts": "Daoine", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Uile", "search_results.hashtags": "Haischlibeanna", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Scrios", "status.detailed_status": "Detailed conversation view", - "status.direct": "Seol teachtaireacht dhíreach chuig @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Cuir in eagar", "status.edited": "Curtha in eagar in {date}", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index e4ae579523..ca3b8b4ab2 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -20,7 +20,7 @@ "account.blocked": "’Ga bhacadh", "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail", "account.cancel_follow_request": "Cuir d’ iarrtas leantainn dhan dàrna taobh", - "account.direct": "Cuir teachdaireachd dhìreach gu @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.domain_blocked": "Chaidh an àrainn a bhacadh", "account.edit_profile": "Deasaich a’ phròifil", @@ -102,7 +102,7 @@ "column.blocks": "Cleachdaichean bacte", "column.bookmarks": "Comharran-lìn", "column.community": "Loidhne-ama ionadail", - "column.direct": "Teachdaireachdan dìreach", + "column.direct": "Private mentions", "column.directory": "Rùraich sna pròifilean", "column.domain_blocks": "Àrainnean bacte", "column.favourites": "Na h-annsachdan", @@ -162,8 +162,8 @@ "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", "confirmations.domain_block.confirm": "Bac an àrainn uile gu lèir", "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.", - "confirmations.edit.confirm": "Edit", - "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.confirm": "Deasaich", + "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.logout.confirm": "Clàraich a-mach", "confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?", "confirmations.mute.confirm": "Mùch", @@ -216,7 +216,7 @@ "empty_column.blocks": "Cha do bhac thu cleachdaiche sam bith fhathast.", "empty_column.bookmarked_statuses": "Chan eil comharra-lìn ri post agad fhathast. Nuair a nì thu comharra-lìn de dh’fhear, nochdaidh e an-seo.", "empty_column.community": "Tha an loidhne-ama ionadail falamh. Sgrìobh rudeigin gu poblach airson toiseach-tòiseachaidh a dhèanamh!", - "empty_column.direct": "Chan eil teachdaireachd dhìreach agad fhathast. Nuair a chuireas no a gheibh thu tè, nochdaidh i an-seo.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.", "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!", "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Cuir am fòcas air colbh", "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh", "keyboard_shortcuts.description": "Tuairisgeul", - "keyboard_shortcuts.direct": "Fosgail colbh nan teachdaireachdan dìreach", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Gluais sìos air an liosta", "keyboard_shortcuts.enter": "Fosgail post", "keyboard_shortcuts.favourite": "Cuir post ris na h-annsachdan", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.community_timeline": "Loidhne-ama ionadail", "navigation_bar.compose": "Sgrìobh post ùr", - "navigation_bar.direct": "Teachdaireachdan dìreach", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Rùraich", "navigation_bar.domain_blocks": "Àrainnean bacte", "navigation_bar.edit_profile": "Deasaich a’ phròifil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spama", "report_notification.categories.violation": "Briseadh riaghailte", "report_notification.open": "Fosgail an gearan", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Lorg", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Dèan lorg no cuir a-steach URL", - "search_popout.search_format": "Fòrmat adhartach an luirg", - "search_popout.tips.full_text": "Bheir teacsa sìmplidh dhut na postaichean a sgrìobh thu, a tha nan annsachdan dhut, a bhrosnaich thu no san deach iomradh a thoirt ort cho math ri ainmean-cleachdaiche, ainmean taisbeanaidh agus tagaichean hais a mhaidsicheas.", - "search_popout.tips.hashtag": "taga hais", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Bheir teacsa sìmplidh dhut na h-ainmean-cleachdaiche, ainmean taisbeanaidh agus tagaichean hais a mhaidsicheas", - "search_popout.tips.user": "cleachdaiche", - "search_results.accounts": "Daoine", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Na h-uile", "search_results.hashtags": "Tagaichean hais", "search_results.nothing_found": "Cha do lorg sinn dad dha na h-abairtean-luirg seo", @@ -557,7 +559,7 @@ "status.copy": "Dèan lethbhreac dhen cheangal dhan phost", "status.delete": "Sguab às", "status.detailed_status": "Mion-shealladh a’ chòmhraidh", - "status.direct": "Cuir teachdaireachd dhìreach gu @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Deasaich", "status.edited": "Air a dheasachadh {date}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index b1ce477a6f..a2e6716c9d 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueada", "account.browse_more_on_origin_server": "Busca máis no perfil orixinal", "account.cancel_follow_request": "Retirar solicitude de seguimento", - "account.direct": "Mensaxe directa a @{name}", + "account.direct": "Mencionar de xeito privado a @{name}", "account.disable_notifications": "Deixar de notificarme cando @{name} publica", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuarias bloqueadas", "column.bookmarks": "Marcadores", "column.community": "Cronoloxía local", - "column.direct": "Mensaxes directas", + "column.direct": "Mencións privadas", "column.directory": "Procurar perfís", "column.domain_blocks": "Dominios agochados", "column.favourites": "Favoritas", @@ -216,7 +216,7 @@ "empty_column.blocks": "Aínda non bloqueaches a ningún usuaria.", "empty_column.bookmarked_statuses": "Aínda non marcaches ningunha publicación. Cando o fagas, aparecerán aquí.", "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!", - "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.", + "empty_column.direct": "Aínda non tes mencións privadas. Cando envíes ou recibas unha, aparecerá aquí.", "empty_column.domain_blocks": "Aínda non hai dominios agochados.", "empty_column.explore_statuses": "Non hai temas en voga. Volve máis tarde!", "empty_column.favourited_statuses": "Aínda non tes publicacións favoritas. Cando che guste algunha, aparecerá aquí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Destacar unha columna", "keyboard_shortcuts.compose": "Por o cursor na área de escritura", "keyboard_shortcuts.description": "Descrición", - "keyboard_shortcuts.direct": "para abrir a columna de mensaxes directas", + "keyboard_shortcuts.direct": "para abrir a columna de mencións privadas", "keyboard_shortcuts.down": "Para mover cara abaixo na listaxe", "keyboard_shortcuts.enter": "Para abrir publicación", "keyboard_shortcuts.favourite": "Marcar como favorita", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronoloxía local", "navigation_bar.compose": "Escribir unha nova publicación", - "navigation_bar.direct": "Mensaxes directas", + "navigation_bar.direct": "Mencións privadas", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios agochados", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Faltou ás regras", "report_notification.open": "Abrir a denuncia", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Procurar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Busca ou insire URL", - "search_popout.search_format": "Formato de procura avanzada", - "search_popout.tips.full_text": "Texto simple devolve publicacións que ti escribiches, promoveches, marcaches como favoritas, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.", - "search_popout.tips.hashtag": "cancelo", - "search_popout.tips.status": "publicación", - "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e cancelos", - "search_popout.tips.user": "usuaria", - "search_results.accounts": "Persoas", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfís", "search_results.all": "Todo", "search_results.hashtags": "Cancelos", "search_results.nothing_found": "Non atopamos nada con estes termos de busca", @@ -557,8 +559,8 @@ "status.copy": "Copiar ligazón á publicación", "status.delete": "Eliminar", "status.detailed_status": "Vista detallada da conversa", - "status.direct": "Mensaxe directa a @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mencionar de xeito privado a @{name}", + "status.direct_indicator": "Mención privada", "status.edit": "Editar", "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index a827e4378e..25fdb28ddb 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -20,7 +20,7 @@ "account.blocked": "לחסום", "account.browse_more_on_origin_server": "ראה יותר בפרופיל המקורי", "account.cancel_follow_request": "משיכת בקשת מעקב", - "account.direct": "הודעה ישירה ל@{name}", + "account.direct": "הודעה פרטית אל @{name}", "account.disable_notifications": "הפסק לשלוח לי התראות כש@{name} מפרסמים", "account.domain_blocked": "הדומיין חסום", "account.edit_profile": "עריכת פרופיל", @@ -40,7 +40,7 @@ "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": "מדיה", @@ -81,7 +81,7 @@ "audio.hide": "השתק", "autosuggest_hashtag.per_week": "{count} לשבוע", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", - "bundle_column_error.copy_stacktrace": "העתקת הודעת התקלה", + "bundle_column_error.copy_stacktrace": "העתקת הודעת שגיאה", "bundle_column_error.error.body": "הדף המבוקש אינו זמין. זה עשוי להיות באג בקוד או בעייה בתאימות הדפדפן.", "bundle_column_error.error.title": "הו, לא!", "bundle_column_error.network.body": "קרתה תקלה בעת טעינת העמוד. זו עשויה להיות תקלה זמנית בשרת או בחיבור האינטרנט שלך.", @@ -89,11 +89,11 @@ "bundle_column_error.retry": "לנסות שוב", "bundle_column_error.return": "חזרה לדף הבית", "bundle_column_error.routing.body": "העמוד המבוקש לא נמצא. האם ה־URL נכון?", - "bundle_column_error.routing.title": "404", + "bundle_column_error.routing.title": "שגיאה 404: הדף לא נמצא", "bundle_modal_error.close": "לסגור", "bundle_modal_error.message": "משהו השתבש בעת טעינת הרכיב הזה.", "bundle_modal_error.retry": "לנסות שוב", - "closed_registrations.other_server_instructions": "מכיוון שמסטודון הוא רשת מבוזרת, ניתן ליצור חשבון על שרת נוסף ועדיין לקיים קשר עם משתמשים בשרת זה.", + "closed_registrations.other_server_instructions": "מכיוון שמסטודון היא רשת מבוזרת, ניתן ליצור חשבון על שרת נוסף ועדיין לקיים קשר עם משתמשים בשרת זה.", "closed_registrations_modal.description": "יצירת חשבון על שרת {domain} איננה אפשרית כרגע, אבל זכרו שאינכן זקוקות לחשבון על {domain} כדי להשתמש במסטודון.", "closed_registrations_modal.find_another_server": "חיפוש שרת אחר", "closed_registrations_modal.preamble": "מסטודון הוא רשת מבוזרת, כך שלא משנה היכן החשבון שלך, קיימת האפשרות לעקוב ולתקשר עם משתמשים בשרת הזה. אפשר אפילו להריץ שרת בעצמך!", @@ -102,7 +102,7 @@ "column.blocks": "משתמשים חסומים", "column.bookmarks": "סימניות", "column.community": "פיד שרת מקומי", - "column.direct": "הודעות ישירות", + "column.direct": "הודעות פרטיות", "column.directory": "עיין בפרופילים", "column.domain_blocks": "קהילות (שמות מתחם) מוסתרות", "column.favourites": "חיבובים", @@ -189,9 +189,9 @@ "disabled_account_banner.text": "חשבונך {disabledAccount} אינו פעיל כרגע.", "dismissable_banner.community_timeline": "אלו הם החצרוצים הציבוריים האחרונים מהמשתמשים על שרת {domain}.", "dismissable_banner.dismiss": "בטל", - "dismissable_banner.explore_links": "אלו סיפורי החדשות האחרונים שמדוברים על ידי משתמשים בשרת זה ואחרים ברשת המבוזרת כרגע.", - "dismissable_banner.explore_statuses": "החצרוצים האלו, משרת זה ואחרים ברשת המבוזרת, כרגע צוברים חשיפה.", - "dismissable_banner.explore_tags": "התגיות האלו, משרת זה ואחרים ברשת המבוזרת, כרגע צוברות חשיפה.", + "dismissable_banner.explore_links": "אלו הקישורים האחרונים ששותפו על ידי משתמשים ששרת זה רואה ברשת המבוזרת כרגע.", + "dismissable_banner.explore_statuses": "החצרוצים האלו, משרת זה ואחרים ברשת המבוזרת, צוברים חשיפה כעת.", + "dismissable_banner.explore_tags": "התגיות האלו, משרת זה ואחרים ברשת המבוזרת, צוברות חשיפה כעת.", "dismissable_banner.public_timeline": "אלו הם החצרוצים הציבוריים האחרונים מהמשתמשים משרת זה ואחרים ברשת המבוזרת ששרת זה יודע עליהן.", "embed.instructions": "ניתן להטמיע את ההודעה הזו באתרך ע\"י העתקת הקוד שלהלן.", "embed.preview": "דוגמא כיצד זה יראה:", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "להתמקד בחצרוץ באחד מהטורים", "keyboard_shortcuts.compose": "להתמקד בתיבת חיבור החצרוצים", "keyboard_shortcuts.description": "תיאור", - "keyboard_shortcuts.direct": "לפתיחת טור הודעות ישירות", + "keyboard_shortcuts.direct": "לפתוח עמודת שיחות פרטיות", "keyboard_shortcuts.down": "לנוע במורד הרשימה", "keyboard_shortcuts.enter": "פתח הודעה", "keyboard_shortcuts.favourite": "לחבב", @@ -376,7 +376,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": "עריכת פרופיל", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "ספאם (דואר זבל)", "report_notification.categories.violation": "הפרת כלל", "report_notification.open": "פתח דו\"ח", + "search.no_recent_searches": "No recent searches", "search.placeholder": "חיפוש", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "חפש או הזן קישור", - "search_popout.search_format": "מבנה חיפוש מתקדם", - "search_popout.tips.full_text": "טקסט פשוט מחזיר פוסטים שכתבת, חיבבת, הידהדת או שאוזכרת בהם, כמו גם שמות משתמשים, שמות להצגה ותגיות מתאימים.", - "search_popout.tips.hashtag": "תגית", - "search_popout.tips.status": "הודעה", - "search_popout.tips.text": "טקסט פשוט מחזיר כינויים, שמות משתמש והאשתגים", - "search_popout.tips.user": "משתמש(ת)", - "search_results.accounts": "אנשים", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "פרופילים", "search_results.all": "כל התוצאות", "search_results.hashtags": "תגיות", "search_results.nothing_found": "לא נמצא דבר עבור תנאי חיפוש אלה", @@ -557,8 +559,8 @@ "status.copy": "העתק/י קישור להודעה זו", "status.delete": "מחיקה", "status.detailed_status": "תצוגת שיחה מפורטת", - "status.direct": "הודעה ישירה ל@{name}", - "status.direct_indicator": "Private mention", + "status.direct": "הודעה פרטית אל @{name}", + "status.direct_indicator": "הודעה פרטית", "status.edit": "עריכה", "status.edited": "נערך ב{date}", "status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 8e311c9453..2803c8417b 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -20,7 +20,7 @@ "account.blocked": "ब्लॉक", "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें", "account.cancel_follow_request": "फॉलो रिक्वेस्ट वापस लें", - "account.direct": "प्रत्यक्ष संदेश @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} पोस्ट के लिए मुझे सूचित मत करो", "account.domain_blocked": "छिपा हुआ डोमेन", "account.edit_profile": "प्रोफ़ाइल संपादित करें", @@ -102,7 +102,7 @@ "column.blocks": "ब्लॉक्ड यूज़र्स", "column.bookmarks": "पुस्तकचिह्न:", "column.community": "लोकल टाइम्लाइन", - "column.direct": "सीधा संदेश", + "column.direct": "निजी संदेश", "column.directory": "प्रोफाइल्स खोजें", "column.domain_blocks": "छुपे डोमेन्स", "column.favourites": "पसंदीदा", @@ -216,7 +216,7 @@ "empty_column.blocks": "आप अभी तक किसी भी यूजर के द्वारा ब्लॉक्ड नहीं हो।", "empty_column.bookmarked_statuses": "आपके पास अभी तक कोई बुकमार्क नहीं है। जब आप एक बुकमार्क करते हैं, तो यह यहां दिखाई देगा।", "empty_column.community": "लोकल टाइम्लाइन खाली है, कुछ देखने के लिये सार्वजनिक रूप से कुछ लिखें!", - "empty_column.direct": "आपके पास अभी तक कोई सीधा संदेश नहीं है, जब आप भेजेंगे या प्राप्त करेंगे तो ये यहाँ दिखेगा |", + "empty_column.direct": "अभी तक आपको कोई निजी संदेश नहीं मिला है। जब भी आप निजी संदेश भेजेंगे या पाएंगे, तो वो यहां पर दिखेगा।", "empty_column.domain_blocks": "अभी तक कोई छुपा हुआ डोमेन नहीं है।", "empty_column.explore_statuses": "कुछ भी अभी ट्रैंडिंग नहीं है, कुछ देर बाद जांचे!", "empty_column.favourited_statuses": "आपके पास अभी कोई भी चहिता टूट नहीं है. जब आप किसी टूट को पसंद (स्टार) करेंगे, तब वो यहाँ दिखेगा।", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "कंपोज़ टेक्स्ट-एरिया पर ध्यान केंद्रित करने के लिए", "keyboard_shortcuts.description": "विवरण", - "keyboard_shortcuts.direct": "डायरेक्ट मैसेज कॉलम खोलने के लिए", + "keyboard_shortcuts.direct": "निजी संदेश खोलने के लिए", "keyboard_shortcuts.down": "सूची में शामिल करने के लिए", "keyboard_shortcuts.enter": "स्टेटस खोलने के लिए", "keyboard_shortcuts.favourite": "पसंदीदा के लिए", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "पुस्तकचिह्न:", "navigation_bar.community_timeline": "लोकल टाइम्लाइन", "navigation_bar.compose": "नया टूट् लिखें", - "navigation_bar.direct": "प्रत्यक्ष संदेश", + "navigation_bar.direct": "निजी संदेश", "navigation_bar.discover": "खोजें", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "प्रोफ़ाइल संपादित करें", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "खोजें", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "हैशटैग", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "प्रोफ़ाइल", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "निजी संदेश @{name} से", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 196d43e60c..47d2bfb923 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -20,7 +20,7 @@ "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Pošalji poruku @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Nemoj me obavjestiti kada @{name} napravi objavu", "account.domain_blocked": "Domena je blokirana", "account.edit_profile": "Uredi profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokirani korisnici", "column.bookmarks": "Knjižne oznake", "column.community": "Lokalna vremenska crta", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Pregledavanje profila", "column.domain_blocks": "Blokirane domene", "column.favourites": "Favoriti", @@ -216,7 +216,7 @@ "empty_column.blocks": "Još niste blokirali nikoga.", "empty_column.bookmarked_statuses": "Još nemaš niti jedan označeni toot. Kada označiš jedan, prikazad će se ovdje.", "empty_column.community": "Lokalna vremenska crta je prazna. Napišite nešto javno da biste pokrenuli stvari!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Još nema blokiranih domena.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna vremenska crta", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Istraživanje", "navigation_bar.domain_blocks": "Blokirane domene", "navigation_bar.edit_profile": "Uredi profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Traži", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Format naprednog pretraživanja", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "korisnik", - "search_results.accounts": "Ljudi", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Obriši", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Uredi", "status.edited": "Uređeno {date}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index c69b58e43c..6b16f47b38 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -11,7 +11,7 @@ "about.not_available": "Ez az információ nem lett közzétéve ezen a kiszolgálón.", "about.powered_by": "Decentralizált közösségi média a {mastodon} segítségével", "about.rules": "Kiszolgáló szabályai", - "account.account_note_header": "Jegyzet", + "account.account_note_header": "Feljegyzés", "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról", "account.badges.bot": "Bot", "account.badges.group": "Csoport", @@ -20,7 +20,7 @@ "account.blocked": "Letiltva", "account.browse_more_on_origin_server": "Böngéssz tovább az eredeti profilon", "account.cancel_follow_request": "Követési kérés visszavonása", - "account.direct": "Közvetlen üzenet @{name} számára", + "account.direct": "@{name} személyes említése", "account.disable_notifications": "Ne figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.domain_blocked": "Letiltott domain", "account.edit_profile": "Profil szerkesztése", @@ -71,7 +71,7 @@ "admin.dashboard.monthly_retention": "Havi regisztráció utáni felhasználómegtartási arány", "admin.dashboard.retention.average": "Átlag", "admin.dashboard.retention.cohort": "Regisztráció hónapja", - "admin.dashboard.retention.cohort_size": "Új felhasználók", + "admin.dashboard.retention.cohort_size": "Új felhasználó", "alert.rate_limited.message": "Próbáld újra {retry_time, time, medium} után.", "alert.rate_limited.title": "Adatforgalom korlátozva", "alert.unexpected.message": "Váratlan hiba történt.", @@ -102,7 +102,7 @@ "column.blocks": "Letiltott felhasználók", "column.bookmarks": "Könyvjelzők", "column.community": "Helyi idővonal", - "column.direct": "Közvetlen üzenetek", + "column.direct": "Személyes említések", "column.directory": "Profilok böngészése", "column.domain_blocks": "Letiltott tartománynevek", "column.favourites": "Kedvencek", @@ -178,7 +178,7 @@ "conversation.delete": "Beszélgetés törlése", "conversation.mark_as_read": "Megjelölés olvasottként", "conversation.open": "Beszélgetés megtekintése", - "conversation.with": "{names} is", + "conversation.with": "Velük: {names}", "copypaste.copied": "Másolva", "copypaste.copy": "Másolás", "directory.federated": "Az ismert fediverzumból", @@ -216,7 +216,7 @@ "empty_column.blocks": "Még senki sem került letiltásra.", "empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött bejegyzésed sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.", "empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!", - "empty_column.direct": "Még nincs egy közvetlen üzenet sem. Küldéskor vagy fogadáskor itt fog megjelenni.", + "empty_column.direct": "Még nincs egy személyes említésed sem. Küldéskor vagy fogadáskor itt fognak megjelenni.", "empty_column.domain_blocks": "Még nem lett letiltva egyetlen tartomány sem.", "empty_column.explore_statuses": "Jelenleg semmi sem felkapott. Nézz vissza később!", "empty_column.favourited_statuses": "Még nincs egyetlen kedvenc bejegyzésed sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.", @@ -294,7 +294,7 @@ "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", "interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölhető ez a bejegyzés, tudatva a szerzővel, hogy értékeljük és eltesszük későbbre.", - "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövethető {name} fiók a bejegyzései megjelenítéséhez a saját hírfolyamban.", + "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolható ez a bejegyzés a saját követőkkel megosztáshoz.", "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatunk erre a bejegyzésre.", "interaction_modal.on_another_server": "Másik kiszolgálón", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fókuszálás egy oszlopra", "keyboard_shortcuts.compose": "Szerkesztési terület fókuszálása", "keyboard_shortcuts.description": "Leírás", - "keyboard_shortcuts.direct": "közvetlen üzenetek megnyitása", + "keyboard_shortcuts.direct": "személyes említések oszlop megnyitása", "keyboard_shortcuts.down": "Mozgás lefelé a listában", "keyboard_shortcuts.enter": "Bejegyzés megnyitása", "keyboard_shortcuts.favourite": "Bejegyzés kedvencnek jelölése", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Könyvjelzők", "navigation_bar.community_timeline": "Helyi idővonal", "navigation_bar.compose": "Új bejegyzés írása", - "navigation_bar.direct": "Közvetlen üzenetek", + "navigation_bar.direct": "Személyes említések", "navigation_bar.discover": "Felfedezés", "navigation_bar.domain_blocks": "Letiltott tartományok", "navigation_bar.edit_profile": "Profil szerkesztése", @@ -399,9 +399,9 @@ "notification.admin.report": "{name} jelentette: {target}", "notification.admin.sign_up": "{name} regisztrált", "notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet", - "notification.follow": "{name} követ engem", - "notification.follow_request": "{name} követni szeretne engem", - "notification.mention": "{name} megemlített engem", + "notification.follow": "{name} követ téged", + "notification.follow_request": "{name} követni szeretne téged", + "notification.mention": "{name} megemlített", "notification.own_poll": "A szavazás véget ért", "notification.poll": "Egy általam részt vett szavazás véget ért", "notification.reblog": "{name} megtolta a bejegyzésedet", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Kéretlen üzenet", "report_notification.categories.violation": "Szabálysértés", "report_notification.open": "Bejelentés megnyitása", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Keresés", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Keresés vagy webcím beillesztése", - "search_popout.search_format": "Bővített keresési forma", - "search_popout.tips.full_text": "Egyszerű szöveg, mely általad írt, kedvencnek jelölt vagy megtolt bejegyzéseket, rólad szóló megemlítéseket, felhasználói neveket, megjelenített neveket, hashtageket ad majd vissza.", - "search_popout.tips.hashtag": "#címke", - "search_popout.tips.status": "bejegyzés", - "search_popout.tips.text": "Az egyszerű szöveg illeszkedő megjelenített nevet, felhasználónevet, #címkéket ad vissza", - "search_popout.tips.user": "felhasználó", - "search_results.accounts": "Emberek", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profilok", "search_results.all": "Összes", "search_results.hashtags": "#Címkék", "search_results.nothing_found": "Nincs találat ezekre a keresési kifejezésekre", @@ -557,8 +559,8 @@ "status.copy": "Link másolása bejegyzésbe", "status.delete": "Törlés", "status.detailed_status": "Részletes beszélgetési nézet", - "status.direct": "Közvetlen üzenet @{name} számára", - "status.direct_indicator": "Private mention", + "status.direct": "@{name} személyes említése", + "status.direct_indicator": "Személyes említés", "status.edit": "Szerkesztés", "status.edited": "Szerkesztve: {date}", "status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 35c94f8292..e77641312e 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -20,7 +20,7 @@ "account.blocked": "Արգելափակուած է", "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Նամակ գրել @{name} -ին", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Ծանուցումները անջատել @{name} գրառումների համար", "account.domain_blocked": "Տիրոյթը արգելափակուած է", "account.edit_profile": "Խմբագրել անձնական էջը", @@ -102,7 +102,7 @@ "column.blocks": "Արգելափակուած օգտատէրեր", "column.bookmarks": "Էջանիշեր", "column.community": "Տեղական հոսք", - "column.direct": "Հասցէագրուած", + "column.direct": "Private mentions", "column.directory": "Զննել անձնական էջերը", "column.domain_blocks": "Թաքցուած տիրոյթները", "column.favourites": "Հաւանածներ", @@ -216,7 +216,7 @@ "empty_column.blocks": "Դու դեռ ոչ մէկի չես արգելափակել։", "empty_column.bookmarked_statuses": "Դու դեռ չունես որեւէ էջանշուած գրառում։ Երբ էջանշես, դրանք կը երեւան այստեղ։", "empty_column.community": "Տեղական հոսքը դատարկ է։ Հրապարակային մի բան գրի՛ր շարժիչը գործարկելու համար։", - "empty_column.direct": "Դու դեռ չունես ոչ մի հասցէագրուած հաղորդագրութիւն։ Երբ ուղարկես կամ ստանաս որեւէ անձնական նամակ, այն կերեւայ այստեղ։", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Թաքցուած տիրոյթներ դեռ չկան։", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Դու դեռ չունես որեւէ հաւանած գրառում։ Երբ հաւանես, դրանք կերեւան այստեղ։", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Էջանիշեր", "navigation_bar.community_timeline": "Տեղական հոսք", "navigation_bar.compose": "Ստեղծել նոր գրառում", - "navigation_bar.direct": "Հասցէագրուած նամակներ", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Բացայայտել", "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ", "navigation_bar.edit_profile": "Խմբագրել անձնական էջը", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Սպամ", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Փնտրել", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Որոնել կամ դնել URL", - "search_popout.search_format": "Փնտրելու առաջադէմ ձեւ", - "search_popout.tips.full_text": "Պարզ տեքստը վերադարձնում է գրառումներդ, հաւանածներդ, տարածածներդ, որտեղ ես նշուած եղել, ինչպէս նաեւ նման օգտանուններ, անուններ եւ պիտակներ։", - "search_popout.tips.hashtag": "պիտակ", - "search_popout.tips.status": "գրառում", - "search_popout.tips.text": "Հասարակ տեքստը կը վերադարձնի համընկնող անուններ, օգտանուններ ու պիտակներ", - "search_popout.tips.user": "օգտատէր", - "search_results.accounts": "Մարդիկ", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Բոլորը", "search_results.hashtags": "Պիտակներ", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Պատճէնել գրառման յղումը", "status.delete": "Ջնջել", "status.detailed_status": "Շղթայի ընդլայնուած դիտում", - "status.direct": "Նամակ գրել {name} -ին", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Խմբագրել", "status.edited": "Խմբագրուել է՝ {date}", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 038013448d..6e8a33d37d 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -20,7 +20,7 @@ "account.blocked": "Terblokir", "account.browse_more_on_origin_server": "Lihat lebih lanjut di profil asli", "account.cancel_follow_request": "Batalkan permintaan ikut", - "account.direct": "Pesan Langsung @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting", "account.domain_blocked": "Domain diblokir", "account.edit_profile": "Ubah profil", @@ -102,7 +102,7 @@ "column.blocks": "Pengguna yang diblokir", "column.bookmarks": "Markah", "column.community": "Linimasa Lokal", - "column.direct": "Pesan langsung", + "column.direct": "Private mentions", "column.directory": "Jelajahi profil", "column.domain_blocks": "Domain tersembunyi", "column.favourites": "Favorit", @@ -216,7 +216,7 @@ "empty_column.blocks": "Anda belum memblokir siapa pun.", "empty_column.bookmarked_statuses": "Anda belum memiliki kiriman termarkah. Saat Anda menandainya sebagai markah, mereka akan muncul di sini.", "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!", - "empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Tidak ada topik tersembunyi.", "empty_column.explore_statuses": "Tidak ada yang sedang tren pada saat ini. Periksa lagi nanti!", "empty_column.favourited_statuses": "Anda belum memiliki kiriman favorit. Ketika Anda mengirim atau menerimanya, mereka akan muncul di sini.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokus kolom", "keyboard_shortcuts.compose": "untuk fokus ke area penulisan", "keyboard_shortcuts.description": "Deskripsi", - "keyboard_shortcuts.direct": "untuk membuka kolom pesan langsung", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar", "keyboard_shortcuts.enter": "Buka kiriman", "keyboard_shortcuts.favourite": "untuk memfavoritkan", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Markah", "navigation_bar.community_timeline": "Linimasa lokal", "navigation_bar.compose": "Tulis toot baru", - "navigation_bar.direct": "Pesan langsung", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Temukan", "navigation_bar.domain_blocks": "Domain tersembunyi", "navigation_bar.edit_profile": "Ubah profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Pelanggaran peraturan", "report_notification.open": "Buka laporan", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Pencarian", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Cari atau ketik URL", - "search_popout.search_format": "Format pencarian mahir", - "search_popout.tips.full_text": "Teks simpel memberikan kiriman yang Anda telah tulis, favorit, boost, atau status yang menyebut Anda, serta nama pengguna, nama yang ditampilkan, dan tagar yang cocok.", - "search_popout.tips.hashtag": "tagar", - "search_popout.tips.status": "kiriman", - "search_popout.tips.text": "Teks sederhana menampilkan nama yang ditampilkan, nama pengguna, dan tagar yang cocok", - "search_popout.tips.user": "pengguna", - "search_results.accounts": "Orang", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Semua", "search_results.hashtags": "Tagar", "search_results.nothing_found": "Tidak dapat menemukan apa pun untuk istilah-istilah pencarian ini", @@ -557,7 +559,7 @@ "status.copy": "Salin tautan ke kiriman", "status.delete": "Hapus", "status.detailed_status": "Tampilan detail percakapan", - "status.direct": "Pesan langsung @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Diedit {date}", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index 830f0a19d6..41280827ea 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Ojiarụ egbochiri", "column.bookmarks": "Ebenrụtụakā", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Ebenrụtụakā", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "ojiarụ", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Hichapụ", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 00ae025f86..7a83ec3013 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -20,7 +20,7 @@ "account.blocked": "Restriktita", "account.browse_more_on_origin_server": "Videz pluse che originala profilo", "account.cancel_follow_request": "Desendez sequodemando", - "account.direct": "Direct Message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Cesez avizar me kande @{name} postas", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Modifikar profilo", @@ -102,7 +102,7 @@ "column.blocks": "Blokusita uzeri", "column.bookmarks": "Libromarki", "column.community": "Lokala tempolineo", - "column.direct": "Direta mesaji", + "column.direct": "Private mentions", "column.directory": "Videz profili", "column.domain_blocks": "Hidden domains", "column.favourites": "Favorati", @@ -216,7 +216,7 @@ "empty_column.blocks": "Vu ne restriktis irga uzanti til nun.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!", - "empty_column.direct": "Vu ne havas irga direta mesaji til nun. Kande vu sendas o ganas, ol montresos hike.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.explore_statuses": "Nulo esas tendenca nun. Videz itere pose!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Deskripto", - "keyboard_shortcuts.direct": "apertar kolumno di direta mesaji", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Libromarki", "navigation_bar.community_timeline": "Lokala tempolineo", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direta mesaji", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Deskovrez", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Modifikar profilo", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spamo", "report_notification.categories.violation": "Regulnesequo", "report_notification.open": "Apertez raporto", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Serchez", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Avancata trovformato", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtago", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simpla textoretrovenuri quo parigas trovnomi, uzantonomi e hashtagi", - "search_popout.tips.user": "uzanto", - "search_results.accounts": "Personi", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Omna", "search_results.hashtags": "Hashtagi", "search_results.nothing_found": "Ne povas ganar irgo per ca trovvorti", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Efacar", "status.detailed_status": "Detala konversvido", - "status.direct": "Direta mesajigez @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Modifikez", "status.edited": "Modifikesis ye {date}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 50e20aded5..5127978b01 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -20,7 +20,7 @@ "account.blocked": "Útilokaður", "account.browse_more_on_origin_server": "Skoða nánari upplýsingar á notandasniðinu", "account.cancel_follow_request": "Taka fylgjendabeiðni til baka", - "account.direct": "Bein skilaboð til @{name}", + "account.direct": "Minnast einslega á @{name}", "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn", "account.domain_blocked": "Lén útilokað", "account.edit_profile": "Breyta notandasniði", @@ -102,7 +102,7 @@ "column.blocks": "Útilokaðir notendur", "column.bookmarks": "Bókamerki", "column.community": "Staðvær tímalína", - "column.direct": "Bein skilaboð", + "column.direct": "Minnst einslega á", "column.directory": "Skoða notendasnið", "column.domain_blocks": "Útilokuð lén", "column.favourites": "Eftirlæti", @@ -216,7 +216,7 @@ "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.", "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með neinar bókamerktar færslur. Þegar þú bókamerkir færslu, mun það birtast hér.", "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!", - "empty_column.direct": "Þú átt ennþá engin bein skilaboð. Þegar þú sendir eða tekur á móti slíkum skilaboðum, munu þau birtast hér.", + "empty_column.direct": "Þú ert ekki ennþá með neitt þar sem minnst er einslega á einhvern. Þegar þú sendir eða tekur við slíku, mun það birtast hér.", "empty_column.domain_blocks": "Það eru ennþá engin útilokuð lén.", "empty_column.explore_statuses": "Ekkert er á uppleið í augnablikinu. Athugaðu aftur síðar!", "empty_column.favourited_statuses": "Þú ert ekki ennþá með neinar eftirlætisfærslur. Þegar þú setur færslu í eftirlæti, munu þau birtast hér.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Setja virkni í dálk", "keyboard_shortcuts.compose": "Setja virkni á textainnsetningarreit", "keyboard_shortcuts.description": "Lýsing", - "keyboard_shortcuts.direct": "Opna dálk með beinum skilaboðum", + "keyboard_shortcuts.direct": "til að opna dálk þar sem minnst er einslega á e-n", "keyboard_shortcuts.down": "Fara neðar í listanum", "keyboard_shortcuts.enter": "Opna færslu", "keyboard_shortcuts.favourite": "Eftirlætisfærsla", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bókamerki", "navigation_bar.community_timeline": "Staðvær tímalína", "navigation_bar.compose": "Semja nýja færslu", - "navigation_bar.direct": "Bein skilaboð", + "navigation_bar.direct": "Minnst einslega á", "navigation_bar.discover": "Uppgötva", "navigation_bar.domain_blocks": "Útilokuð lén", "navigation_bar.edit_profile": "Breyta notandasniði", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Ruslpóstur", "report_notification.categories.violation": "Brot á reglum", "report_notification.open": "Opin kæra", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Leita", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Leita eða líma slóð", - "search_popout.search_format": "Snið ítarlegrar leitar", - "search_popout.tips.full_text": "Einfaldur texti skilar færslum sem þú hefur skrifað, sett í eftirlæti, endurbirt eða verið minnst á þig í, ásamt samsvarandi birtingarnöfnum, notendanöfnum og myllumerkjum.", - "search_popout.tips.hashtag": "myllumerki", - "search_popout.tips.status": "færsla", - "search_popout.tips.text": "Einfaldur texti skilar samsvarandi birtingarnöfnum, notendanöfnum og myllumerkjum", - "search_popout.tips.user": "notandi", - "search_results.accounts": "Fólk", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Notendasnið", "search_results.all": "Allt", "search_results.hashtags": "Myllumerki", "search_results.nothing_found": "Gat ekki fundið neitt sem samsvarar þessum leitarorðum", @@ -557,8 +559,8 @@ "status.copy": "Afrita tengil í færslu", "status.delete": "Eyða", "status.detailed_status": "Nákvæm spjallþráðasýn", - "status.direct": "Bein skilaboð @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Minnast einslega á @{name}", + "status.direct_indicator": "Minnast einslega á", "status.edit": "Breyta", "status.edited": "Breytt {date}", "status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 108cd73c85..7ac0dfacd3 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -20,7 +20,7 @@ "account.blocked": "Bloccato", "account.browse_more_on_origin_server": "Sfoglia di più sul profilo originale", "account.cancel_follow_request": "Annulla la richiesta di seguire", - "account.direct": "Messaggio diretto a @{name}", + "account.direct": "Menziona privatamente @{name}", "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post", "account.domain_blocked": "Dominio bloccato", "account.edit_profile": "Modifica profilo", @@ -102,7 +102,7 @@ "column.blocks": "Utenti bloccati", "column.bookmarks": "Segnalibri", "column.community": "Cronologia locale", - "column.direct": "Messaggi diretti", + "column.direct": "Menzioni private", "column.directory": "Sfoglia profili", "column.domain_blocks": "Domini bloccati", "column.favourites": "Preferiti", @@ -216,7 +216,7 @@ "empty_column.blocks": "Non hai ancora bloccato alcun utente.", "empty_column.bookmarked_statuses": "Non hai ancora salvato nei segnalibri alcun post. Quando lo farai, apparirà qui.", "empty_column.community": "La cronologia locale è vuota. Scrivi qualcosa pubblicamente per dare inizio alla festa!", - "empty_column.direct": "Non hai ancora alcun messaggio diretto. Quando ne invierai o riceverai uno, apparirà qui.", + "empty_column.direct": "Non hai ancora alcuna menzione privata. Quando ne invierai o riceverai una, apparirà qui.", "empty_column.domain_blocks": "Ancora nessun dominio bloccato.", "empty_column.explore_statuses": "Nulla è in tendenza al momento. Ricontrolla più tardi!", "empty_column.favourited_statuses": "Non hai ancora alcun post preferito. Quando ne salverai uno tra i preferiti, apparirà qui.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Focalizza alla colonna", "keyboard_shortcuts.compose": "Focalizza l'area di composizione testuale", "keyboard_shortcuts.description": "Descrizione", - "keyboard_shortcuts.direct": "per aprire la colonna dei messaggi diretti", + "keyboard_shortcuts.direct": "per aprire la colonna menzioni private", "keyboard_shortcuts.down": "Scorri in basso nell'elenco", "keyboard_shortcuts.enter": "Apre il post", "keyboard_shortcuts.favourite": "Salva il post tra i preferiti", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Cronologia locale", "navigation_bar.compose": "Componi nuovo toot", - "navigation_bar.direct": "Messaggi diretti", + "navigation_bar.direct": "Menzioni private", "navigation_bar.discover": "Scopri", "navigation_bar.domain_blocks": "Domini bloccati", "navigation_bar.edit_profile": "Modifica il profilo", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Violazione delle regole", "report_notification.open": "Apri segnalazione", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Cerca", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Cerca o incolla URL", - "search_popout.search_format": "Formato di ricerca avanzato", - "search_popout.tips.full_text": "Restituisce in testo semplice i post che hai scritto, salvato tra i preferiti, rebloggato o in cui sei stato menzionato, nonché nomi utenti, nomi visualizzati e hashtag corrispondenti.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Restituisce in testo semplice i nomi utente, i nomi visualizzati e gli hashtag corrispondenti", - "search_popout.tips.user": "utente", - "search_results.accounts": "Persone", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profili", "search_results.all": "Tutto", "search_results.hashtags": "Hashtag", "search_results.nothing_found": "Impossibile trovare qualcosa per questi termini di ricerca", @@ -557,8 +559,8 @@ "status.copy": "Copia link al post", "status.delete": "Elimina", "status.detailed_status": "Vista conversazione dettagliata", - "status.direct": "Messaggio diretto a @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Menziona privatamente @{name}", + "status.direct_indicator": "Menzione privata", "status.edit": "Modifica", "status.edited": "Modificato il {date}", "status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 64f073fd3b..753f308b66 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -20,7 +20,7 @@ "account.blocked": "ブロック済み", "account.browse_more_on_origin_server": "リモートで表示", "account.cancel_follow_request": "フォローリクエストの取り消し", - "account.direct": "@{name}さんにダイレクトメッセージ", + "account.direct": "@{name}さんに非公開でメンション", "account.disable_notifications": "@{name}さんの投稿時の通知を停止", "account.domain_blocked": "ドメインブロック中", "account.edit_profile": "プロフィール編集", @@ -102,7 +102,7 @@ "column.blocks": "ブロックしたユーザー", "column.bookmarks": "ブックマーク", "column.community": "ローカルタイムライン", - "column.direct": "ダイレクトメッセージ", + "column.direct": "非公開の返信", "column.directory": "ディレクトリ", "column.domain_blocks": "ブロックしたドメイン", "column.favourites": "お気に入り", @@ -216,7 +216,7 @@ "empty_column.blocks": "まだ誰もブロックしていません。", "empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。", "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!", - "empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。", + "empty_column.direct": "非公開の返信はまだありません。非公開でやりとりをするとここに表示されます。", "empty_column.domain_blocks": "ブロックしているドメインはありません。", "empty_column.explore_statuses": "まだ何もありません。後で確認してください。", "empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "左からn番目のカラムの最新に移動", "keyboard_shortcuts.compose": "投稿の入力欄に移動", "keyboard_shortcuts.description": "説明", - "keyboard_shortcuts.direct": "ダイレクトメッセージのカラムを開く", + "keyboard_shortcuts.direct": "非公開の返信のカラムを開く", "keyboard_shortcuts.down": "カラム内一つ下に移動", "keyboard_shortcuts.enter": "投稿の詳細を表示", "keyboard_shortcuts.favourite": "お気に入り", @@ -376,7 +376,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": "プロフィールを編集", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "スパム", "report_notification.categories.violation": "ルール違反", "report_notification.open": "通報を開く", + "search.no_recent_searches": "No recent searches", "search.placeholder": "検索", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "検索またはURLを入力", - "search_popout.search_format": "高度な検索フォーマット", - "search_popout.tips.full_text": "表示名やユーザー名、ハッシュタグのほか、あなたの投稿やお気に入り、ブーストした投稿、返信に一致する単純なテキスト。", - "search_popout.tips.hashtag": "ハッシュタグ", - "search_popout.tips.status": "投稿", - "search_popout.tips.text": "表示名やユーザー名、ハッシュタグに一致する単純なテキスト", - "search_popout.tips.user": "ユーザー", - "search_results.accounts": "人々", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "ユーザー", "search_results.all": "すべて", "search_results.hashtags": "ハッシュタグ", "search_results.nothing_found": "この検索条件では何も見つかりませんでした", @@ -557,8 +559,8 @@ "status.copy": "投稿へのリンクをコピー", "status.delete": "削除", "status.detailed_status": "詳細な会話ビュー", - "status.direct": "@{name}さんにダイレクトメッセージ", - "status.direct_indicator": "Private mention", + "status.direct": "@{name}さんに非公開で投稿", + "status.direct_indicator": "非公開の返信", "status.edit": "編集", "status.edited": "{date}に編集", "status.edited_x_times": "{count}回編集", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index b6829f5dee..35e808ac16 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -20,7 +20,7 @@ "account.blocked": "დაიბლოკა", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "პირდაპირი წერილი @{name}-ს", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "დომენი დამალულია", "account.edit_profile": "პროფილის ცვლილება", @@ -102,7 +102,7 @@ "column.blocks": "დაბლოკილი მომხმარებლები", "column.bookmarks": "Bookmarks", "column.community": "ლოკალური თაიმლაინი", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "დამალული დომენები", "column.favourites": "ფავორიტები", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "აღმოაჩინე", "navigation_bar.domain_blocks": "დამალული დომენები", "navigation_bar.edit_profile": "შეცვალე პროფილი", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "ძებნა", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "დეტალური ძებნის ფორმა", - "search_popout.tips.full_text": "მარტივი ტექსტი აბრუნებს სტატუსებს რომლებიც შექმენით, აქციეთ ფავორიტად, დაბუსტეთ, ან რაშიც ასახელეთ, ასევე ემთხვევა მომხმარებლის სახელებს, დისპლეი სახელებს, და ჰეშტეგებს.", - "search_popout.tips.hashtag": "ჰეშტეგი", - "search_popout.tips.status": "სტატუსი", - "search_popout.tips.text": "მარტივი ტექსტი აბრუნებს დამთხვეულ დისპლეი სახელებს, მომხმარებლის სახელებს და ჰეშტეგებს", - "search_popout.tips.user": "მომხმარებელი", - "search_results.accounts": "ხალხი", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "ჰეშტეგები", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "წაშლა", "status.detailed_status": "Detailed conversation view", - "status.direct": "პირდაპირი წერილი @{name}-ს", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 439da7ce92..4460e4b65a 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -20,7 +20,7 @@ "account.blocked": "Yettusewḥel", "account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Izen usrid i @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}", "account.domain_blocked": "Taɣult yeffren", "account.edit_profile": "Ẓreg amaɣnu", @@ -102,7 +102,7 @@ "column.blocks": "Imiḍanen yettusḥebsen", "column.bookmarks": "Ticraḍ", "column.community": "Tasuddemt tadigant", - "column.direct": "Iznan usriden", + "column.direct": "Private mentions", "column.directory": "Inig deg imaɣnuten", "column.domain_blocks": "Taɣulin yeffren", "column.favourites": "Ismenyifen", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.", "empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Ulac ula yiwet n tjewwaqt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Ticraḍ", "navigation_bar.community_timeline": "Tasuddemt tadigant", "navigation_bar.compose": "Aru tajewwiqt tamaynut", - "navigation_bar.direct": "Iznan usridden", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Ẓer", "navigation_bar.domain_blocks": "Tiɣula yeffren", "navigation_bar.edit_profile": "Ẓreg amaɣnu", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Aspam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Ldi aneqqis", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Nadi", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Nadi neɣ senṭeḍ URL", - "search_popout.search_format": "Anadi yenneflin", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "ahacṭag", - "search_popout.tips.status": "addad", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "amseqdac", - "search_results.accounts": "Medden", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Akk", "search_results.hashtags": "Ihacṭagen", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", "status.delete": "Kkes", "status.detailed_status": "Detailed conversation view", - "status.direct": "Izen usrid i @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Ẓreg", "status.edited": "Tettwaẓreg deg {date}", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index f360fa2093..a2aea14595 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -20,7 +20,7 @@ "account.blocked": "Бұғатталған", "account.browse_more_on_origin_server": "Бастапқы профильден шолу", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "@{name} жекесіне жазу", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} постары туралы ескертпеу", "account.domain_blocked": "Домен бұғатталған", "account.edit_profile": "Профильді өңдеу", @@ -102,7 +102,7 @@ "column.blocks": "Бұғатталғандар", "column.bookmarks": "Бетбелгілер", "column.community": "Жергілікті желі", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Профильдерді аралау", "column.domain_blocks": "Жасырылған домендер", "column.favourites": "Таңдаулылар", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ешкімді бұғаттамағансыз.", "empty_column.bookmarked_statuses": "Ешқандай жазба Бетбелгілер тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.", "empty_column.community": "Жергілікті желі бос. Сіз бастап жазыңыз!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Бұғатталған домен жоқ.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Ешқандай жазба 'Таңдаулылар' тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Бетбелгілер", "navigation_bar.community_timeline": "Жергілікті желі", "navigation_bar.compose": "Жаңа жазба бастау", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "шарлау", "navigation_bar.domain_blocks": "Жабық домендер", "navigation_bar.edit_profile": "Профиль түзету", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Іздеу", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Кеңейтілген іздеу форматы", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, bоosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "хэштег", - "search_popout.tips.status": "статус", - "search_popout.tips.text": "Simple text returns matching display names, usernames аnd hashtags", - "search_popout.tips.user": "қолданушы", - "search_results.accounts": "Адамдар", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Хэштегтер", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Жазба сілтемесін көшір", "status.delete": "Өшіру", "status.detailed_status": "Толық пікірталас көрінісі", - "status.direct": "Хат жіберу @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index b89b4a31df..04edb85220 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index edb96f1169..b08e0b45c8 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -20,7 +20,7 @@ "account.blocked": "차단됨", "account.browse_more_on_origin_server": "원본 프로필에서 더 탐색하기", "account.cancel_follow_request": "팔로우 요청 취소", - "account.direct": "@{name}에게 다이렉트 메시지", + "account.direct": "@{name} 님에게 개인적으로 멘션", "account.disable_notifications": "@{name} 의 게시물 알림 끄기", "account.domain_blocked": "도메인 차단됨", "account.edit_profile": "프로필 편집", @@ -102,7 +102,7 @@ "column.blocks": "차단한 사용자", "column.bookmarks": "북마크", "column.community": "로컬 타임라인", - "column.direct": "다이렉트 메시지", + "column.direct": "개인적인 멘션", "column.directory": "프로필 둘러보기", "column.domain_blocks": "차단한 도메인", "column.favourites": "좋아요", @@ -216,7 +216,7 @@ "empty_column.blocks": "아직 아무도 차단하지 않았습니다.", "empty_column.bookmarked_statuses": "아직 북마크에 저장한 게시물이 없습니다. 게시물을 북마크 지정하면 여기에 나타납니다.", "empty_column.community": "로컬 타임라인에 아무것도 없습니다. 아무거나 적어 보세요!", - "empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.", + "empty_column.direct": "개인적인 멘션이 없습니다. 보내거나 받으면 여기에 표시됩니다.", "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.", "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!", "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "해당 컬럼에 포커스", "keyboard_shortcuts.compose": "작성창에 포커스", "keyboard_shortcuts.description": "설명", - "keyboard_shortcuts.direct": "다이렉트 메시지 컬럼 열기", + "keyboard_shortcuts.direct": "개인적인 멘션 컬럼 열기", "keyboard_shortcuts.down": "리스트에서 아래로 이동", "keyboard_shortcuts.enter": "게시물 열기", "keyboard_shortcuts.favourite": "관심글 지정", @@ -376,7 +376,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": "프로필 편집", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "스팸", "report_notification.categories.violation": "규칙 위반", "report_notification.open": "신고 열기", + "search.no_recent_searches": "No recent searches", "search.placeholder": "검색", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "검색하거나 URL 붙여넣기", - "search_popout.search_format": "고급 검색 방법", - "search_popout.tips.full_text": "단순한 텍스트 검색은 작성한 게시물 그리고 좋아요, 부스트, 받은 멘션, 사용자명, 표시 이름, 해시태그를 반환합니다.", - "search_popout.tips.hashtag": "해시태그", - "search_popout.tips.status": "게시물", - "search_popout.tips.text": "단순한 텍스트 검색은 관계된 프로필 이름, 사용자명 그리고 해시태그를 표시합니다", - "search_popout.tips.user": "사용자", - "search_results.accounts": "사람", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "프로필", "search_results.all": "전부", "search_results.hashtags": "해시태그", "search_results.nothing_found": "검색어에 대한 결과를 찾을 수 없습니다", @@ -557,8 +559,8 @@ "status.copy": "게시물 링크 복사", "status.delete": "삭제", "status.detailed_status": "대화 자세히 보기", - "status.direct": "@{name}에게 다이렉트 메시지", - "status.direct_indicator": "Private mention", + "status.direct": "@{name} 님에게 개인적으로 멘션", + "status.direct_indicator": "개인적인 멘션", "status.edit": "수정", "status.edited": "{date}에 편집됨", "status.edited_x_times": "{count}번 수정됨", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 5fb8aff26e..12124a6129 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -20,7 +20,7 @@ "account.blocked": "Astengkirî", "account.browse_more_on_origin_server": "Li pelên resen bêtir bigere", "account.cancel_follow_request": "Daxwaza şopandinê vekişîne", - "account.direct": "Peyamekê bişîne @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Êdî min agahdar neke gava @{name} diweşîne", "account.domain_blocked": "Navper hate astengkirin", "account.edit_profile": "Profîlê serrast bike", @@ -102,7 +102,7 @@ "column.blocks": "Bikarhênerên astengkirî", "column.bookmarks": "Şûnpel", "column.community": "Demnameya herêmî", - "column.direct": "Peyamên rasterast", + "column.direct": "Private mentions", "column.directory": "Li profîlan bigere", "column.domain_blocks": "Navperên astengkirî", "column.favourites": "Bijarte", @@ -216,7 +216,7 @@ "empty_column.blocks": "Te tu bikarhêner asteng nekiriye.", "empty_column.bookmarked_statuses": "Hîn tu peyamên te yên şûnpelkirî tune ne. Dema ku tu yekî şûnpel bikî, ew ê li vir xuya bibe.", "empty_column.community": "Demnameya herêmî vala ye. Tiştek ji raya giştî re binivsînin da ku rûpel biherike!", - "empty_column.direct": "Hîn peyamên te yên rasterast tune ne. Dema ku tu yekî bişînî an jî wergirî, ew ê li vir xuya bibe.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Hîn tu navperên ku hatine astengkirin tune ne.", "empty_column.explore_statuses": "Tiştek niha di rojevê de tune. Paşê vegere!", "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijare tunene. Gava ku te yekî bijart, ew ê li vir xûya bike.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Stûna balkişandinê", "keyboard_shortcuts.compose": "Bal bikşîne cîhê nivîsê/textarea", "keyboard_shortcuts.description": "Danasîn", - "keyboard_shortcuts.direct": "ji bo vekirina stûnê peyamên rasterast", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Di lîsteyê de dakêşe jêr", "keyboard_shortcuts.enter": "Şandiyê veke", "keyboard_shortcuts.favourite": "Şandiya bijarte", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Şûnpel", "navigation_bar.community_timeline": "Demnameya herêmî", "navigation_bar.compose": "Şandiyeke nû binivsîne", - "navigation_bar.direct": "Peyamên rasterast", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Vekolê", "navigation_bar.domain_blocks": "Navperên astengkirî", "navigation_bar.edit_profile": "Profîlê serrast bike", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Nexwestî (Spam)", "report_notification.categories.violation": "Binpêkirina rêzîkê", "report_notification.open": "Ragihandinê veke", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Bigere", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Bigere yan jî girêdanê pêve bike", - "search_popout.search_format": "Dirûva lêgerîna pêşketî", - "search_popout.tips.full_text": "Nivîsên hêsan, şandiyên ku te nivîsandiye, bijare kiriye, bilind kiriye an jî yên behsa te kirine û her wiha navê bikarhêneran, navên xûya dike û hashtagan vedigerîne.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "şandî", - "search_popout.tips.text": "Nivîsên hêsan, navên xûya ên ku li hev hatî, bikarhêner û hashtagan vedigerîne", - "search_popout.tips.user": "bikarhêner", - "search_results.accounts": "Mirov", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Hemû", "search_results.hashtags": "Hashtag", "search_results.nothing_found": "Ji bo van peyvên lêgerînê tiştek nehate dîtin", @@ -557,7 +559,7 @@ "status.copy": "Girêdanê jê bigire bo weşankirinê", "status.delete": "Jê bibe", "status.detailed_status": "Dîtina axaftina berfireh", - "status.direct": "Peyama rasterast @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Serrast bike", "status.edited": "Di {date} de hate serrastkirin", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index c1f25017d0..b20f93e541 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -20,7 +20,7 @@ "account.blocked": "Lettys", "account.browse_more_on_origin_server": "Peuri moy y'n profil derowel", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Messach didro dhe @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Hedhi ow gwarnya pan wra @{name} postya", "account.domain_blocked": "Gorfarth lettys", "account.edit_profile": "Golegi profil", @@ -102,7 +102,7 @@ "column.blocks": "Devnydhyoryon lettys", "column.bookmarks": "Folennosow", "column.community": "Amserlin leel", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Peuri profilys", "column.domain_blocks": "Gorfarthow lettys", "column.favourites": "Re drudh", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ny wrussowgh lettya devnydhyoryon vyth hwath.", "empty_column.bookmarked_statuses": "Nyns eus dhywgh postow gans folennos hwath. Pan wrewgh gorra onan, ev a wra omdhiskwedhes omma.", "empty_column.community": "An amserlin leel yw gwag. Skrifewgh neppytn yn poblek dh'y lonchya!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Nyns eus gorfarthow lettys hwath.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Nyns eus dhywgh postow drudh hwath. Pan wrewgh merkya onan vel drudh, ev a wra omdhiskwedhes omma.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Folennosow", "navigation_bar.community_timeline": "Amserlin leel", "navigation_bar.compose": "Komposya post nowydh", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Diskudha", "navigation_bar.domain_blocks": "Gorfarthow lettys", "navigation_bar.edit_profile": "Golegi profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Hwilas", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Furvas hwilas avonsys", - "search_popout.tips.full_text": "Tekst sempel a wra daskor postow a wrussowgh aga skrifa, merkya vel drudh, po bos menegys ynna, keffrys ha henwyn devnydhyoryon ha displetyans, ha bòlnosow a dhesedh.", - "search_popout.tips.hashtag": "bòlnos", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Tekst sempel a wra daskor henwyn displegya ha devnydhyoryon, ha bòlnosow", - "search_popout.tips.user": "devnydhyer", - "search_results.accounts": "Tus", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Bòlnosow", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Dasskrifa kolm dhe'n post", "status.delete": "Dilea", "status.detailed_status": "Gwel kesklapp a-vanyl", - "status.direct": "Messach didro dhe @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 84a8bc5604..00de10f737 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -20,7 +20,7 @@ "account.blocked": "Impeditum est", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Dominium impeditum", "account.edit_profile": "Recolere notionem", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Signa paginales", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Dilecti", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Quaerere", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Oblitterare", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Recolere", "status.edited": "Recultum {date}", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 99e669c959..d1da039df5 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -20,7 +20,7 @@ "account.blocked": "Užblokuota", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Mėgstamiausi", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 2f1f70f141..c3d82bd160 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -20,7 +20,7 @@ "account.blocked": "Bloķēts", "account.browse_more_on_origin_server": "Pārlūkot vairāk sākotnējā profilā", "account.cancel_follow_request": "Atsaukt sekošanas pieprasījumu", - "account.direct": "Privāta ziņa @{name}", + "account.direct": "Pieminēt @{name} privāti", "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} publicē ierakstu", "account.domain_blocked": "Domēns ir bloķēts", "account.edit_profile": "Rediģēt profilu", @@ -102,7 +102,7 @@ "column.blocks": "Bloķētie lietotāji", "column.bookmarks": "Grāmatzīmes", "column.community": "Vietējā laika līnija", - "column.direct": "Privātie ziņojumi", + "column.direct": "Privāti pieminēti", "column.directory": "Pārlūkot profilus", "column.domain_blocks": "Bloķētie domēni", "column.favourites": "Izlases", @@ -216,7 +216,7 @@ "empty_column.blocks": "Pašreiz tu neesi nevienu bloķējis.", "empty_column.bookmarked_statuses": "Pašreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.", "empty_column.community": "Vietējā laika līnija ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!", - "empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.", + "empty_column.direct": "Jums vēl nav nevienas privātas pieminēšanas. Nosūtot vai saņemot to, tas tiks parādīts šeit.", "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.", "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!", "empty_column.favourited_statuses": "Tev vēl nav nevienas iecienītākās ziņas. Kad pievienosi kādu izlasei, tas tiks parādīts šeit.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokusēt kolonnu", "keyboard_shortcuts.compose": "Fokusēt veidojamā teksta lauku", "keyboard_shortcuts.description": "Apraksts", - "keyboard_shortcuts.direct": "lai atvērtu privāto ziņojumu kolonnu", + "keyboard_shortcuts.direct": "lai atvērtu privāto pieminējumu sleju", "keyboard_shortcuts.down": "Pārvietoties lejup sarakstā", "keyboard_shortcuts.enter": "Atvērt ziņu", "keyboard_shortcuts.favourite": "Pievienot izlasei", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Grāmatzīmes", "navigation_bar.community_timeline": "Vietējā laika līnija", "navigation_bar.compose": "Veidot jaunu ziņu", - "navigation_bar.direct": "Privātie ziņojumi", + "navigation_bar.direct": "Privāti pieminēti", "navigation_bar.discover": "Atklāt", "navigation_bar.domain_blocks": "Bloķētie domēni", "navigation_bar.edit_profile": "Rediģēt profilu", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spams", "report_notification.categories.violation": "Noteikumu pārkāpums", "report_notification.open": "Atvērt sūdzību", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Meklēšana", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Meklē vai iekopē URL", - "search_popout.search_format": "Paplašināts meklēšanas formāts", - "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, pievienojis izlasei, izcēlis vai pieminējis, kā arī atbilstošos lietotājvārdus, parādāmos vārdus un atsauces.", - "search_popout.tips.hashtag": "tēmturis", - "search_popout.tips.status": "ieraksts", - "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un tēmturus", - "search_popout.tips.user": "lietotājs", - "search_results.accounts": "Cilvēki", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profili", "search_results.all": "Visi", "search_results.hashtags": "Tēmturi", "search_results.nothing_found": "Nevarēja atrast neko šiem meklēšanas vienumiem", @@ -557,8 +559,8 @@ "status.copy": "Kopēt saiti uz ziņu", "status.delete": "Dzēst", "status.detailed_status": "Detalizēts sarunas skats", - "status.direct": "Privāta ziņa @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Pieminēt @{name} privāti", + "status.direct_indicator": "Pieminēts privāti", "status.edit": "Rediģēt", "status.edited": "Rediģēts {date}", "status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 138d17b9d6..c3778501b9 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -20,7 +20,7 @@ "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Директна порана @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Скриен домен", "account.edit_profile": "Измени профил", @@ -102,7 +102,7 @@ "column.blocks": "Блокирани корисници", "column.bookmarks": "Bookmarks", "column.community": "Локална временска зона", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Види профили", "column.domain_blocks": "Скриени домеини", "column.favourites": "Омилени", @@ -216,7 +216,7 @@ "empty_column.blocks": "Немате сеуште блокирано корисници.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Локалниот времеплов е празен. Објавете нешто јавно за да може да почне шоуто!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Немате сокриени домеини уште.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Уреди профил", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Барај", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Напреден формат за барање", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "хештег", - "search_popout.tips.status": "состојба", - "search_popout.tips.text": "Прост текст враќа совпаднати имиња, корисници и хештагови", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 6c4975de24..cfea1b34ee 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -20,7 +20,7 @@ "account.blocked": "തടഞ്ഞു", "account.browse_more_on_origin_server": "യഥാർത്ഥ പ്രൊഫൈലിലേക്ക് പോവുക", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "@{name}-ന്(ക്ക്) നേരിട്ട് സന്ദേശം അയക്കുക", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} പോസ്റ്റുചെയ്യുന്നത് എന്നെ അറിയിക്കുന്നത് നിർത്തുക", "account.domain_blocked": "മേഖല തടഞ്ഞു", "account.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക", @@ -102,7 +102,7 @@ "column.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "column.bookmarks": "ബുക്ക്മാർക്കുകൾ", "column.community": "പ്രാദേശികമായ സമയരേഖ", - "column.direct": "നേരിട്ടുള്ള സന്ദേശങ്ങൾ", + "column.direct": "Private mentions", "column.directory": "പ്രൊഫൈലുകൾ മറിച്ചുനോക്കുക", "column.domain_blocks": "മറയ്ക്കപ്പെട്ട മേഖലകൾ", "column.favourites": "പ്രിയപ്പെട്ടവ", @@ -216,7 +216,7 @@ "empty_column.blocks": "നിങ്ങൾ ഇതുവരെ ഒരു ഉപയോക്താക്കളെയും തടഞ്ഞിട്ടില്ല.", "empty_column.bookmarked_statuses": "നിങ്ങൾക് ഇതുവരെ അടയാളപ്പെടുത്തിയ ടൂട്ടുകൾ ഇല്ല. അടയാളപ്പെടുത്തിയാൽ അത് ഇവിടെ വരും.", "empty_column.community": "പ്രാദേശികമായ സമയരേഖ ശൂന്യമാണ്. എന്തെങ്കിലും പരസ്യമായി എഴുതി തുടക്കം കുറിക്കു!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "മറയ്ക്കപ്പെട്ടിരിക്കുന്ന മേഖലകൾ ഇതുവരെ ഇല്ല.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "നിങ്ങൾക്ക് ഇത് വരെ ഒരു പ്രിയപ്പെട്ട ടൂട്ടും ഇല്ല. നിങ്ങൾ അങ്ങനെ ഒന്ന് പ്രിയപ്പെടുന്ന പക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ", "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ", "navigation_bar.compose": "പുതിയ ടൂട്ട് എഴുതുക", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "കണ്ടെത്തുക", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "തിരയുക", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "ഹാഷ്ടാഗ്", - "search_popout.tips.status": "ടൂട്ട്", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "ഉപയോക്താവ്", - "search_results.accounts": "ആളുകൾ", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "ഹാഷ്ടാഗുകൾ", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "ടൂട്ടിലേക്ക് ലിങ്ക് പകർത്തുക", "status.delete": "മായ്ക്കുക", "status.detailed_status": "വിശദമായ സംഭാഷണ കാഴ്‌ച", - "status.direct": "@{name} ന് നേരിട്ട് മെസേജ് അയക്കുക", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 9388f47922..b778c704ec 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -20,7 +20,7 @@ "account.blocked": "ब्लॉक केले आहे", "account.browse_more_on_origin_server": "मूळ प्रोफाइलवर अधिक ब्राउझ करा", "account.cancel_follow_request": "फॉलो विनंती मागे घ्या", - "account.direct": "थेट संदेश @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "जेव्हा @{name} पोस्ट करतात तेव्हा मला सूचित करणे थांबवा", "account.domain_blocked": "Domain hidden", "account.edit_profile": "प्रोफाइल एडिट करा", @@ -102,7 +102,7 @@ "column.blocks": "ब्लॉक केलेले खातेधारक", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "गुप्त डोमेन्स", "column.favourites": "आवडते", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "वर्णन", - "keyboard_shortcuts.direct": "थेट संदेश स्तंभ उघडण्यासाठी", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 317efb4c4f..456706ce6c 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -20,7 +20,7 @@ "account.blocked": "Disekat", "account.browse_more_on_origin_server": "Layari selebihnya di profil asal", "account.cancel_follow_request": "Menarik balik permintaan mengikut", - "account.direct": "Mesej terus @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran", "account.domain_blocked": "Domain disekat", "account.edit_profile": "Sunting profil", @@ -102,7 +102,7 @@ "column.blocks": "Pengguna yang disekat", "column.bookmarks": "Tanda buku", "column.community": "Garis masa tempatan", - "column.direct": "Mesej terus", + "column.direct": "Private mentions", "column.directory": "Layari profil", "column.domain_blocks": "Domain disekat", "column.favourites": "Kegemaran", @@ -216,7 +216,7 @@ "empty_column.blocks": "Anda belum menyekat sesiapa.", "empty_column.bookmarked_statuses": "Anda belum ada hantaran yang ditanda buku. Apabila anda menanda buku sesuatu, ia akan muncul di sini.", "empty_column.community": "Garis masa tempatan kosong. Tulislah secara awam untuk memulakan sesuatu!", - "empty_column.direct": "Anda belum mempunyai mesej terus. Apabila anda menghantar atau menerima mesej, mesej-mesej akan dipaparkan di sini.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Belum ada domain yang disekat.", "empty_column.explore_statuses": "Tiada apa-apa yang sohor kini sekarang. Semaklah kemudian!", "empty_column.favourited_statuses": "Anda belum ada hantaran yang digemari. Apabila anda menggemari sesuatu, ia akan muncul di sini.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Tumpu pada lajur", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Keterangan", - "keyboard_shortcuts.direct": "untuk membuka lajur mesej terus", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "Buka hantaran", "keyboard_shortcuts.favourite": "Hantaran kegemaran", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Tanda buku", "navigation_bar.community_timeline": "Garis masa tempatan", "navigation_bar.compose": "Karang hantaran baharu", - "navigation_bar.direct": "Mesej terus", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Teroka", "navigation_bar.domain_blocks": "Domain disekat", "navigation_bar.edit_profile": "Sunting profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Langgaran peraturan", "report_notification.open": "Buka laporan", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Cari", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Cari atau tampal URL", - "search_popout.search_format": "Format gelintar lanjutan", - "search_popout.tips.full_text": "Teks ringkas mengembalikan hantaran yang anda telah tulis, menggemari, menggalak, atau telah disebutkan, dan juga nama pengguna, nama paparan, dan tanda pagar yang dipadankan.", - "search_popout.tips.hashtag": "tanda pagar", - "search_popout.tips.status": "hantaran", - "search_popout.tips.text": "Teks ringkas mengembalikan nama paparan, nama pengguna dan tanda pagar yang sepadan", - "search_popout.tips.user": "pengguna", - "search_results.accounts": "Orang", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Semua", "search_results.hashtags": "Tanda pagar", "search_results.nothing_found": "Tidak dapat menemui apa-apa untuk istilah carian tersebut", @@ -557,7 +559,7 @@ "status.copy": "Salin pautan ke hantaran", "status.delete": "Padam", "status.detailed_status": "Paparan perbualan terperinci", - "status.direct": "Mesej terus @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Sunting", "status.edited": "Disunting {date}", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 502e8ca97e..838e18da15 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -20,7 +20,7 @@ "account.blocked": "ဘလော့ထားသည်", "account.browse_more_on_origin_server": "မူရင်းပရိုဖိုင်တွင် ပိုမိုကြည့်ရှုပါ။", "account.cancel_follow_request": "ဖောလိုးပယ်ဖျက်ခြင်း", - "account.direct": "@{name} ကိုတိုက်ရိုက်စာပို့မည်", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} ပို့စ်တင်သည့်အခါ ကျွန်ုပ်ကို အသိပေးခြင်းရပ်ပါ။", "account.domain_blocked": "ဒိုမိန်း ပိတ်ပင်ထားခဲ့သည်\n", "account.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", @@ -102,7 +102,7 @@ "column.blocks": "ဘလော့ထားသောအကောင့်များ", "column.bookmarks": "မှတ်တမ်းများ", "column.community": "ဒေသတွင်း အချိန်ဇယား", - "column.direct": "တိုက်ရိုက်မက်ဆေ့ခ်ျများ", + "column.direct": "Private mentions", "column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n", "column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်", "column.favourites": "အကြိုက်ဆုံးများ", @@ -216,7 +216,7 @@ "empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", "empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", "empty_column.community": "ဒေသတွင်းစာမျက်နှာမှာ အလွတ်ဖြစ်နေသည်။ အများမြင်နိုင်ရန်အတွက် တစ်ခုခုရေးပါ။", - "empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ", "empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။", "empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "ဖော်ပြချက်", - "keyboard_shortcuts.direct": "တိုက်ရိုက်မက်ဆေ့ချ်ကော်လံကို ဖွင့်ရန်", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "မှတ်ထားသည်များ", "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်", "navigation_bar.compose": "ပို့စ်အသစ်ရေးပါ", - "navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "ရှာဖွေပါ", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "စည်းကမ်းဖောက်ဖျက်ခြင်း", "report_notification.open": "အစီရင်ခံစာကိုဖွင့်ပါ", + "search.no_recent_searches": "No recent searches", "search.placeholder": "ရှာဖွေရန်", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ", - "search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်", - "search_popout.tips.status": "ပို့စ်", - "search_popout.tips.text": "ရိုးရှင်းသော စာသားသည် ကိုက်ညီသည့် ဖော်ပြအမည်များ၊ အသုံးပြုသူအမည်များနှင့် hashtag များကို ပြန်ဖော်ပြပေးသည်။\n", - "search_popout.tips.user": "အသုံးပြုသူ", - "search_results.accounts": "လူပုဂ္ဂိုလ်", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "အားလုံး", "search_results.hashtags": "ဟက်ရှ်တက်များ", "search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "ဖျက်ရန်", "status.detailed_status": "အသေးစိတ်စကားပြောဆိုမှုမြင်ကွင်း", - "status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "ပြင်ဆင်ရန်", "status.edited": "{date} ကို ပြင်ဆင်ပြီးပါပြီ", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 359a1f200b..6e080da9b5 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -20,7 +20,7 @@ "account.blocked": "Geblokkeerd", "account.browse_more_on_origin_server": "Zie meer op het originele profiel", "account.cancel_follow_request": "Volgverzoek annuleren", - "account.direct": "@{name} een direct bericht sturen", + "account.direct": "@{name} een privébericht sturen", "account.disable_notifications": "Geen melding meer geven wanneer @{name} een bericht plaatst", "account.domain_blocked": "Domein geblokkeerd", "account.edit_profile": "Profiel bewerken", @@ -102,7 +102,7 @@ "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Bladwijzers", "column.community": "Lokale tijdlijn", - "column.direct": "Directe berichten", + "column.direct": "Privéberichten", "column.directory": "Gebruikersgids", "column.domain_blocks": "Geblokkeerde domeinen", "column.favourites": "Favorieten", @@ -216,7 +216,7 @@ "empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.", "empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.", "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!", - "empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, komt deze hier te staan.", + "empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, zullen deze hier verschijnen.", "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.", "empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!", "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je een bericht als favoriet markeert, valt deze hier te zien.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Op één van de kolommen focussen", "keyboard_shortcuts.compose": "Tekstveld om een bericht te schrijven focussen", "keyboard_shortcuts.description": "Omschrijving", - "keyboard_shortcuts.direct": "Directe berichten tonen", + "keyboard_shortcuts.direct": "om de kolom met privéberichten te openen", "keyboard_shortcuts.down": "Naar beneden in de lijst bewegen", "keyboard_shortcuts.enter": "Volledig bericht tonen", "keyboard_shortcuts.favourite": "Als favoriet markeren", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bladwijzers", "navigation_bar.community_timeline": "Lokale tijdlijn", "navigation_bar.compose": "Nieuw bericht schrijven", - "navigation_bar.direct": "Directe berichten", + "navigation_bar.direct": "Privéberichten", "navigation_bar.discover": "Ontdekken", "navigation_bar.domain_blocks": "Geblokkeerde domeinen", "navigation_bar.edit_profile": "Profiel bewerken", @@ -456,7 +456,7 @@ "poll_button.remove_poll": "Poll verwijderen", "privacy.change": "Zichtbaarheid van bericht aanpassen", "privacy.direct.long": "Alleen aan vermelde gebruikers tonen", - "privacy.direct.short": "Direct bericht", + "privacy.direct.short": "Privébericht", "privacy.private.long": "Alleen aan volgers tonen", "privacy.private.short": "Alleen volgers", "privacy.public.long": "Voor iedereen zichtbaar", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Overtreden regel(s)", "report_notification.open": "Rapportage openen", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Zoeken", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Zoek of voer een URL in", - "search_popout.search_format": "Geavanceerd zoeken", - "search_popout.tips.full_text": "Gebruik gewone tekst om te zoeken in jouw berichten, gebooste berichten, favorieten en in berichten waarin je bent vermeldt, en tevens naar gebruikersnamen, weergavenamen en hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "bericht", - "search_popout.tips.text": "Gebruik gewone tekst om te zoeken op weergavenamen, gebruikersnamen en hashtags", - "search_popout.tips.user": "gebruiker", - "search_results.accounts": "Gebruikers", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profielen", "search_results.all": "Alles", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Deze zoektermen leveren geen resultaat op", @@ -557,8 +559,8 @@ "status.copy": "Link naar bericht kopiëren", "status.delete": "Verwijderen", "status.detailed_status": "Uitgebreide gespreksweergave", - "status.direct": "@{name} een direct bericht sturen", - "status.direct_indicator": "Private mention", + "status.direct": "@{name} een privébericht sturen", + "status.direct_indicator": "Privébericht", "status.edit": "Bewerken", "status.edited": "Bewerkt op {date}", "status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index d3b74204af..40b59ac4df 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -20,7 +20,7 @@ "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen", "account.cancel_follow_request": "Trekk attende fylgeførespurnad", - "account.direct": "Send melding til @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Slutt å varsle meg når @{name} skriv innlegg", "account.domain_blocked": "Domenet er sperra", "account.edit_profile": "Rediger profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokkerte brukarar", "column.bookmarks": "Bokmerke", "column.community": "Lokal tidsline", - "column.direct": "Direktemeldingar", + "column.direct": "Private mentions", "column.directory": "Sjå gjennom profilar", "column.domain_blocks": "Skjulte domene", "column.favourites": "Favorittar", @@ -216,7 +216,7 @@ "empty_column.blocks": "Du har ikkje blokkert nokon enno.", "empty_column.bookmarked_statuses": "Du har ikkje lagra noko bokmerke enno. Når du set bokmerke på eit innlegg, dukkar det opp her.", "empty_column.community": "Den lokale tidslina er tom. Skriv noko offentleg å få ballen til å rulle!", - "empty_column.direct": "Du har ingen direktemeldingar enno. Når du sender eller får ei, vil ho dukka opp her.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Det er ingen skjulte domene til no.", "empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!", "empty_column.favourited_statuses": "Du har ingen favoritt-tut ennå. Når du merkjer eit som favoritt, så dukkar det opp her.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokuskolonne", "keyboard_shortcuts.compose": "for å fokusera tekstfeltet for skriving", "keyboard_shortcuts.description": "Skildring", - "keyboard_shortcuts.direct": "for å opna direktemeldingskolonna", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Flytt nedover i lista", "keyboard_shortcuts.enter": "Opne innlegg", "keyboard_shortcuts.favourite": "Merk som favoritt", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bokmerke", "navigation_bar.community_timeline": "Lokal tidsline", "navigation_bar.compose": "Lag nytt tut", - "navigation_bar.direct": "Direktemeldingar", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Oppdag", "navigation_bar.domain_blocks": "Skjulte domene", "navigation_bar.edit_profile": "Rediger profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Søppelpost", "report_notification.categories.violation": "Regelbrot", "report_notification.open": "Opne rapport", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Søk", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Søk eller lim inn URL", - "search_popout.search_format": "Avansert søkeformat", - "search_popout.tips.full_text": "Enkel tekst returnerer statusar du har skrive, likt, framheva eller vorte nemnd i, i tillegg til samsvarande brukarnamn, visningsnamn og emneknaggar.", - "search_popout.tips.hashtag": "emneknagg", - "search_popout.tips.status": "innlegg", - "search_popout.tips.text": "Enkel tekst returnerer samsvarande visningsnamn, brukarnamn og emneknaggar", - "search_popout.tips.user": "brukar", - "search_results.accounts": "Folk", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Alt", "search_results.hashtags": "Emneknaggar", "search_results.nothing_found": "Kunne ikkje finne noko for desse søkeorda", @@ -557,7 +559,7 @@ "status.copy": "Kopier lenke til status", "status.delete": "Slett", "status.detailed_status": "Detaljert samtalevisning", - "status.direct": "Send melding til @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Rediger", "status.edited": "Redigert {date}", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 5b08219468..a03c51b0ab 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -20,7 +20,7 @@ "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", - "account.direct": "Send direktemelding til @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", "account.domain_blocked": "Domene blokkert", "account.edit_profile": "Rediger profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokkerte brukere", "column.bookmarks": "Bokmerker", "column.community": "Lokal tidslinje", - "column.direct": "Direktemeldinger", + "column.direct": "Private mentions", "column.directory": "Bla gjennom profiler", "column.domain_blocks": "Skjulte domener", "column.favourites": "Favoritter", @@ -216,7 +216,7 @@ "empty_column.blocks": "Du har ikke blokkert noen brukere enda.", "empty_column.bookmarked_statuses": "Du har ikke noen bokmerkede innlegg enda. Når du har noen bokmerkede innlegg, vil de dukke opp her.", "empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!", - "empty_column.direct": "Du har ingen direktemeldinger enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Det er ingen skjulte domener enda.", "empty_column.explore_statuses": "Ingenting er populært akkurat nå. Prøv igjen senere!", "empty_column.favourited_statuses": "Du har ikke noen favorittinnlegg enda. Når du favorittmarkerer et inlegg, vil det dukke opp her.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Gå til en kolonne", "keyboard_shortcuts.compose": "Gå til komponeringsfeltet", "keyboard_shortcuts.description": "Beskrivelse", - "keyboard_shortcuts.direct": "for å åpne kolonne med direktemeldinger", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Flytt nedover i listen", "keyboard_shortcuts.enter": "Åpne innlegg", "keyboard_shortcuts.favourite": "Marker innlegg som favoritt", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bokmerker", "navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.compose": "Skriv et nytt innlegg", - "navigation_bar.direct": "Direktemeldinger", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Oppdag", "navigation_bar.domain_blocks": "Skjulte domener", "navigation_bar.edit_profile": "Rediger profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Søppelpost", "report_notification.categories.violation": "Regelbrudd", "report_notification.open": "Åpne rapport", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Søk", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Søk eller lim inn URL", - "search_popout.search_format": "Avansert søkeformat", - "search_popout.tips.full_text": "Enkel tekst gir resultater for innlegg du har skrevet, favorittmarkert, fremhevet, eller har blitt nevnt i, i tillegg til samsvarende brukernavn, visningsnavn og emneknagger.", - "search_popout.tips.hashtag": "emneknagg", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Enkel tekst returnerer matchende visningsnavn, brukernavn og emneknagger", - "search_popout.tips.user": "bruker", - "search_results.accounts": "Folk", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Alle", "search_results.hashtags": "Emneknagger", "search_results.nothing_found": "Fant ikke noe for disse søkeordene", @@ -557,7 +559,7 @@ "status.copy": "Kopier lenken til innlegget", "status.delete": "Slett", "status.detailed_status": "Detaljert samtalevisning", - "status.direct": "Send direktemelding til @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Rediger", "status.edited": "Redigert {date}", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 255d6f2765..c333c2ecee 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -20,7 +20,7 @@ "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Navigar sul perfil original", "account.cancel_follow_request": "Retirar la demanda d’abonament", - "account.direct": "Escriure un MP a @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Quitar de m’avisar quand @{name} publica quicòm", "account.domain_blocked": "Domeni amagat", "account.edit_profile": "Modificar lo perfil", @@ -102,7 +102,7 @@ "column.blocks": "Personas blocadas", "column.bookmarks": "Marcadors", "column.community": "Flux public local", - "column.direct": "Messatges dirèctes", + "column.direct": "Private mentions", "column.directory": "Percórrer los perfils", "column.domain_blocks": "Domenis resconduts", "column.favourites": "Favorits", @@ -216,7 +216,7 @@ "empty_column.blocks": "Avètz pas blocat degun pel moment.", "empty_column.bookmarked_statuses": "Avètz pas cap de tuts marcats pel moment. Quand ne marquetz un, serà mostrat aquí.", "empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !", - "empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "I a pas encara cap de domeni amagat.", "empty_column.explore_statuses": "I a pas res en tendéncia pel moment. Tornatz mai tard !", "empty_column.favourited_statuses": "Avètz pas encara cap de tut favorit. Quand n’auretz un, apareisserà aquí.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "centrar un estatut a una colomna", "keyboard_shortcuts.compose": "anar al camp tèxte", "keyboard_shortcuts.description": "descripcion", - "keyboard_shortcuts.direct": "dobrir la colomna de messatges dirèctes", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "far davalar dins la lista", "keyboard_shortcuts.enter": "dobrir los estatuts", "keyboard_shortcuts.favourite": "apondre als favorits", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Flux public local", "navigation_bar.compose": "Escriure un nòu tut", - "navigation_bar.direct": "Messatges dirèctes", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Trobar", "navigation_bar.domain_blocks": "Domenis resconduts", "navigation_bar.edit_profile": "Modificar lo perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Messatge indesirable", "report_notification.categories.violation": "Violacion de las règlas", "report_notification.open": "Dobrir lo senhalament", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Recercar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Recercar o picar una URL", - "search_popout.search_format": "Format recèrca avançada", - "search_popout.tips.full_text": "Un tèxte simple que tòrna los estatuts qu’avètz escriches, mes en favorits, partejats, o ont sètz mencionat, e tanben los noms d’utilizaires, escais-noms e etiquetas que correspondonas.", - "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "estatut", - "search_popout.tips.text": "Lo tèxte brut tòrna escais, noms d’utilizaire e etiquetas correspondents", - "search_popout.tips.user": "utilizaire", - "search_results.accounts": "Gents", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Tot", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "Cap de resultat per aquestes tèrmes de recèrca", @@ -557,7 +559,7 @@ "status.copy": "Copiar lo ligam de l’estatut", "status.delete": "Escafar", "status.detailed_status": "Vista detalhada de la convèrsa", - "status.direct": "Messatge per @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Modificar", "status.edited": "Modificat {date}", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index ee4d3a7f98..d330c136ca 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 702c5b4d2c..31422ad9da 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -20,7 +20,7 @@ "account.blocked": "Zablokowano", "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu", "account.cancel_follow_request": "Wycofaj żądanie obserwowania", - "account.direct": "Wyślij wiadomość bezpośrednią do @{name}", + "account.direct": "Prywatna wzmianka @{name}", "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}", "account.domain_blocked": "Ukryto domenę", "account.edit_profile": "Edytuj profil", @@ -102,7 +102,7 @@ "column.blocks": "Zablokowani użytkownicy", "column.bookmarks": "Zakładki", "column.community": "Lokalna oś czasu", - "column.direct": "Wiadomości bezpośrednie", + "column.direct": "Prywatne wzmianki", "column.directory": "Przeglądaj profile", "column.domain_blocks": "Ukryte domeny", "column.favourites": "Ulubione", @@ -216,7 +216,7 @@ "empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.", "empty_column.bookmarked_statuses": "Nie dodałeś(-aś) żadnego wpisu do zakładek. Kiedy to zrobisz, pojawi się on tutaj.", "empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!", - "empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.", + "empty_column.direct": "Nie masz jeszcze żadnych prywatnych wzmianek. Kiedy je wyślesz lub otrzymasz, pojawią się tutaj.", "empty_column.domain_blocks": "Brak ukrytych domen.", "empty_column.explore_statuses": "Nic nie jest w tej chwili popularne. Sprawdź później!", "empty_column.favourited_statuses": "Nie dodałeś(-aś) żadnego wpisu do ulubionych. Kiedy to zrobisz, pojawi się on tutaj.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "aby przejść do wpisu z jednej z kolumn", "keyboard_shortcuts.compose": "aby przejść do pola tworzenia wpisu", "keyboard_shortcuts.description": "Opis", - "keyboard_shortcuts.direct": "aby otworzyć kolumnę wiadomości bezpośrednich", + "keyboard_shortcuts.direct": "aby otworzyć kolumnę z wzmiankami prywatnymi", "keyboard_shortcuts.down": "aby przejść na dół listy", "keyboard_shortcuts.enter": "aby otworzyć wpis", "keyboard_shortcuts.favourite": "aby dodać do ulubionych", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Zakładki", "navigation_bar.community_timeline": "Lokalna oś czasu", "navigation_bar.compose": "Utwórz nowy wpis", - "navigation_bar.direct": "Wiadomości bezpośrednie", + "navigation_bar.direct": "Prywatne wzmianki", "navigation_bar.discover": "Odkrywaj", "navigation_bar.domain_blocks": "Ukryte domeny", "navigation_bar.edit_profile": "Edytuj profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Naruszenie zasad", "report_notification.open": "Otwórz raport", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Szukaj", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Wyszukaj lub wklej adres", - "search_popout.search_format": "Zaawansowane wyszukiwanie", - "search_popout.tips.full_text": "Pozwala na wyszukiwanie wpisów które napisałeś(-aś), dodałeś(-aś) do ulubionych lub podbiłeś(-aś), w których o Tobie wspomniano, oraz pasujące nazwy użytkowników, pełne nazwy i hashtagi.", - "search_popout.tips.hashtag": "hasztag", - "search_popout.tips.status": "wpis", - "search_popout.tips.text": "Proste wyszukiwanie pasujących pseudonimów, nazw użytkowników i hasztagów", - "search_popout.tips.user": "użytkownik", - "search_results.accounts": "Ludzie", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profile", "search_results.all": "Wszystkie", "search_results.hashtags": "Hasztagi", "search_results.nothing_found": "Nie znaleziono innych wyników dla tego wyszukania", @@ -557,8 +559,8 @@ "status.copy": "Skopiuj odnośnik do wpisu", "status.delete": "Usuń", "status.detailed_status": "Szczegółowy widok konwersacji", - "status.direct": "Wyślij wiadomość bezpośrednią do @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Prywatna wzmianka @{name}", + "status.direct_indicator": "Prywatna wzmianka", "status.edit": "Edytuj", "status.edited": "Edytowano {date}", "status.edited_x_times": "Edytowano {count, plural, one {{count} raz} other {{count} razy}}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 8913f21e53..1c8bf8b04f 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Veja mais no perfil original", "account.cancel_follow_request": "Cancelar solicitação para seguir", - "account.direct": "Enviar toot direto para @{name}", + "account.direct": "Mencione em privado @{name}", "account.disable_notifications": "Cancelar notificações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Usuários bloqueados", "column.bookmarks": "Salvos", "column.community": "Linha local", - "column.direct": "Mensagens diretas", + "column.direct": "Menções privadas", "column.directory": "Explorar perfis", "column.domain_blocks": "Domínios bloqueados", "column.favourites": "Favoritos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Nada aqui.", "empty_column.bookmarked_statuses": "Nada aqui. Quando você salvar um toot, ele aparecerá aqui.", "empty_column.community": "A linha local está vazia. Publique algo para começar!", - "empty_column.direct": "Você ainda não tem mensagens diretas. Quando você enviar ou receber uma, será exibida aqui.", + "empty_column.direct": "Você ainda não tem mensagens privadas. Quando você enviar ou receber uma, será exibida aqui.", "empty_column.domain_blocks": "Nada aqui.", "empty_column.explore_statuses": "Nada está em alta no momento. Volte mais tarde!", "empty_column.favourited_statuses": "Nada aqui. Quando você favoritar um toot, ele aparecerá aqui.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "focar na coluna", "keyboard_shortcuts.compose": "focar no compositor", "keyboard_shortcuts.description": "Descrição", - "keyboard_shortcuts.direct": "para abrir a coluna de mensagens diretas", + "keyboard_shortcuts.direct": "para abrir a coluna de menções privadas", "keyboard_shortcuts.down": "mover para baixo", "keyboard_shortcuts.enter": "abrir toot", "keyboard_shortcuts.favourite": "favoritar toot", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Salvos", "navigation_bar.community_timeline": "Linha do tempo local", "navigation_bar.compose": "Compor novo toot", - "navigation_bar.direct": "Mensagens diretas", + "navigation_bar.direct": "Menções privadas", "navigation_bar.discover": "Descobrir", "navigation_bar.domain_blocks": "Domínios bloqueados", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Violação de regra", "report_notification.open": "Abrir denúncia", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Pesquisar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Buscar ou colar URL", - "search_popout.search_format": "Formato de pesquisa avançada", - "search_popout.tips.full_text": "Texto simples retorna toots que você escreveu, favoritou, deu boost, ou em que foi mencionado, assim como nomes de usuário e de exibição, e hashtags correspondentes.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "toot", - "search_popout.tips.text": "Texto simples retorna nomes de exibição e de usuário, e hashtags correspondentes", - "search_popout.tips.user": "usuário", - "search_results.accounts": "Pessoas", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfis", "search_results.all": "Tudo", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Não foi possível encontrar nada para estes termos de busca", @@ -557,8 +559,8 @@ "status.copy": "Copiar link", "status.delete": "Excluir", "status.detailed_status": "Visão detalhada da conversa", - "status.direct": "Enviar toot direto para @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mencione em privado @{name}", + "status.direct_indicator": "Menção privada", "status.edit": "Editar", "status.edited": "Editado em {date}", "status.edited_x_times": "Editado {count, plural, one {{count} hora} other {{count} vezes}}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 99f9c156d8..496551a87e 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -20,7 +20,7 @@ "account.blocked": "Bloqueado(a)", "account.browse_more_on_origin_server": "Encontrar mais no perfil original", "account.cancel_follow_request": "Retirar pedido para seguir", - "account.direct": "Enviar mensagem direta para @{name}", + "account.direct": "Mencionar @{name} em privado", "account.disable_notifications": "Parar de me notificar das publicações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", @@ -102,7 +102,7 @@ "column.blocks": "Utilizadores Bloqueados", "column.bookmarks": "Marcadores", "column.community": "Cronologia local", - "column.direct": "Mensagens diretas", + "column.direct": "Menções privadas", "column.directory": "Explorar perfis", "column.domain_blocks": "Domínios bloqueados", "column.favourites": "Preferidos", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.", "empty_column.bookmarked_statuses": "Ainda não adicionou nenhuma publicação aos itens salvos. Quando adicionar, eles serão exibidos 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.direct": "Ainda não tem qualquer menção privada. Quando enviar ou receber uma, ela irá aparecer aqui.", "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.", "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.", @@ -314,7 +314,7 @@ "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.direct": "para abrir a coluna de menções privadas", "keyboard_shortcuts.down": "para mover para baixo na lista", "keyboard_shortcuts.enter": "para expandir uma publicação", "keyboard_shortcuts.favourite": "Juntar aos marcadores", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronologia local", "navigation_bar.compose": "Escrever novo toot", - "navigation_bar.direct": "Mensagens diretas", + "navigation_bar.direct": "Menções privadas", "navigation_bar.discover": "Descobrir", "navigation_bar.domain_blocks": "Domínios escondidos", "navigation_bar.edit_profile": "Editar perfil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Violação de regra", "report_notification.open": "Abrir denúncia", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Pesquisar", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "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, 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 #etiquetas", - "search_popout.tips.user": "utilizador", - "search_results.accounts": "Pessoas", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Perfis", "search_results.all": "Tudo", "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "Não foi possível encontrar resultados para as expressões pesquisadas", @@ -557,8 +559,8 @@ "status.copy": "Copiar ligação para a publicação", "status.delete": "Eliminar", "status.detailed_status": "Vista pormenorizada da conversa", - "status.direct": "Mensagem direta @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Mencionar @{name} em privado", + "status.direct_indicator": "Menção privada", "status.edit": "Editar", "status.edited": "Editado em {date}", "status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 0c331b4250..aa6710685c 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -20,7 +20,7 @@ "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Vezi mai multe pe profilul original", "account.cancel_follow_request": "Retrage cererea de urmărire", - "account.direct": "Trimite-i un mesaj direct lui @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Nu îmi mai trimite notificări când postează @{name}", "account.domain_blocked": "Domeniu blocat", "account.edit_profile": "Modifică profilul", @@ -102,7 +102,7 @@ "column.blocks": "Utilizatori blocați", "column.bookmarks": "Marcaje", "column.community": "Cronologie locală", - "column.direct": "Mesaje directe", + "column.direct": "Private mentions", "column.directory": "Explorează profiluri", "column.domain_blocks": "Domenii blocate", "column.favourites": "Favorite", @@ -216,7 +216,7 @@ "empty_column.blocks": "Momentan nu ai blocat niciun utilizator.", "empty_column.bookmarked_statuses": "Momentan nu ai nicio postare marcată. Când vei marca una, va apărea aici.", "empty_column.community": "Nu există nimic în cronologia locală. Postează ceva public pentru a sparge gheața!", - "empty_column.direct": "Momentan nu ai niciun mesaj direct. Când trimiți sau primești un mesaj, va apărea aici.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Momentan nu există domenii blocate.", "empty_column.explore_statuses": "Nimic nu figurează în tendințe în acest moment. Verifică din nou mai târziu!", "empty_column.favourited_statuses": "Momentan nu ai nicio postare favorită. Când vei adăuga una, va apărea aici.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Focalizează pe coloană", "keyboard_shortcuts.compose": "Focalizează pe zona de text", "keyboard_shortcuts.description": "Descriere", - "keyboard_shortcuts.direct": "pentru a deschide coloana cu mesaje directe", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Coboară în listă", "keyboard_shortcuts.enter": "Deschide postarea", "keyboard_shortcuts.favourite": "Adaugă postarea la favorite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Marcaje", "navigation_bar.community_timeline": "Cronologie locală", "navigation_bar.compose": "Compune o nouă postare", - "navigation_bar.direct": "Mesaje directe", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Descoperă", "navigation_bar.domain_blocks": "Domenii blocate", "navigation_bar.edit_profile": "Modifică profilul", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Mesaje nedorite", "report_notification.categories.violation": "Încălcare a regulilor", "report_notification.open": "Deschide raportarea", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Caută", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Caută sau lipește un URL", - "search_popout.search_format": "Formate pentru căutare avansată", - "search_popout.tips.full_text": "Textele simple returnează postări pe care le-ai scris, favorizat, impulsionat, sau în care sunt menționate, deasemenea și utilizatorii sau hashtag-urile care se potrivesc.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "stare", - "search_popout.tips.text": "Textele simple returnează nume, nume de utilizatori și hashtag-urile care se potrivesc", - "search_popout.tips.user": "utilizator", - "search_results.accounts": "Persoane", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Toate", "search_results.hashtags": "Hashtag-uri", "search_results.nothing_found": "Nu am putut găsi nimic care să corespundă termenilor de căutare", @@ -557,7 +559,7 @@ "status.copy": "Copiează link-ul postării", "status.delete": "Șterge", "status.detailed_status": "Conversația detaliată", - "status.direct": "Mesaj direct către @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Modifică", "status.edited": "Modificat în data de {date}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 8820a67e63..4e3a1c627a 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -20,7 +20,7 @@ "account.blocked": "Заблокировано", "account.browse_more_on_origin_server": "Посмотреть в оригинальном профиле", "account.cancel_follow_request": "Отозвать запрос на подписку", - "account.direct": "Написать @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Не уведомлять о постах от @{name}", "account.domain_blocked": "Домен заблокирован", "account.edit_profile": "Редактировать профиль", @@ -102,7 +102,7 @@ "column.blocks": "Заблокированные пользователи", "column.bookmarks": "Закладки", "column.community": "Локальная лента", - "column.direct": "Личные сообщения", + "column.direct": "Private mentions", "column.directory": "Просмотр профилей", "column.domain_blocks": "Заблокированные домены", "column.favourites": "Избранное", @@ -216,7 +216,7 @@ "empty_column.blocks": "Вы ещё никого не заблокировали.", "empty_column.bookmarked_statuses": "У вас пока нет постов в закладках. Как добавите один, он отобразится здесь.", "empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!", - "empty_column.direct": "У вас пока нет личных сообщений. Как только вы отправите или получите одно, оно появится здесь.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Скрытых доменов пока нет.", "empty_column.explore_statuses": "Нет актуального. Проверьте позже!", "empty_column.favourited_statuses": "Вы не добавили ни один пост в «Избранное». Как только вы это сделаете, он появится здесь.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "фокус на одном из столбцов", "keyboard_shortcuts.compose": "фокус на поле ввода", "keyboard_shortcuts.description": "Описание", - "keyboard_shortcuts.direct": "чтобы открыть колонку с личными сообщениями", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "вниз по списку", "keyboard_shortcuts.enter": "открыть пост", "keyboard_shortcuts.favourite": "в избранное", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальная лента", "navigation_bar.compose": "Создать новый пост", - "navigation_bar.direct": "Личные сообщения", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Изучайте", "navigation_bar.domain_blocks": "Скрытые домены", "navigation_bar.edit_profile": "Изменить профиль", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Нарушение правил", "report_notification.open": "Открыть жалобу", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Поиск", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Поиск (или вставьте URL)", - "search_popout.search_format": "Продвинутый формат поиска", - "search_popout.tips.full_text": "Поиск по простому тексту отобразит посты, которые вы написали, добавили в избранное, продвинули или в которых были упомянуты, а также подходящие имена пользователей и хэштеги.", - "search_popout.tips.hashtag": "хэштег", - "search_popout.tips.status": "пост", - "search_popout.tips.text": "Простой ввод текста покажет совпадающие имена пользователей, отображаемые имена и хэштеги", - "search_popout.tips.user": "пользователь", - "search_results.accounts": "Люди", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Все", "search_results.hashtags": "Хэштеги", "search_results.nothing_found": "Ничего не найдено по этому запросу", @@ -557,7 +559,7 @@ "status.copy": "Скопировать ссылку на пост", "status.delete": "Удалить", "status.detailed_status": "Подробный просмотр обсуждения", - "status.direct": "Написать @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Изменить", "status.edited": "Последнее изменение: {date}", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 15c6fc02e6..9b16be4f88 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -20,7 +20,7 @@ "account.blocked": "अवरुद्धम्", "account.browse_more_on_origin_server": "अधिकं मूलव्यक्तिगतविवरणे दृश्यताम्", "account.cancel_follow_request": "अनुसरणयाचनामपनय", - "account.direct": "प्रत्यक्षसन्देशः @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "यदा @{name} स्थापयति तदा माम्मा ज्ञापय", "account.domain_blocked": "प्रदेशो निषिद्धः", "account.edit_profile": "सम्पाद्यताम्", @@ -102,7 +102,7 @@ "column.blocks": "निषिद्धभोक्तारः", "column.bookmarks": "पुटचिह्नानि", "column.community": "स्थानीयसमयतालिका", - "column.direct": "प्रत्यक्षसन्देशाः", + "column.direct": "Private mentions", "column.directory": "व्यक्तित्वानि दृश्यन्ताम्", "column.domain_blocks": "निषिद्धप्रदेशाः", "column.favourites": "प्रियाः", @@ -216,7 +216,7 @@ "empty_column.blocks": "नैकोऽप्युपभोक्ता निषिद्धो वर्तते", "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तपत्राणि सन्ति । यदा भविष्यति तदत्र दृश्यते ।", "empty_column.community": "स्थानीयसमयतालिका रिक्ता । सार्वजनिकत्वेनाऽत्र किमपि लिख्यताम् ।", - "empty_column.direct": "नैकोऽपि प्रत्यक्षसन्देशो वर्तते। यदा प्रेष्यते वा प्राप्यतेऽत्र दृश्यते।", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "न निषिद्धप्रदेशाः सन्ति ।", "empty_column.explore_statuses": "अधुना किमपि न प्रचलति। परे पुनः पश्य!", "empty_column.favourited_statuses": "न तव अधुना पर्यन्तं प्रियपत्राणि सन्ति। यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते।", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "वर्णनम्", - "keyboard_shortcuts.direct": "अवक्रसंदेशस्तम्भमुद्धाटयितुम्", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "पत्रं उद्घाटय", "keyboard_shortcuts.favourite": "पत्रं प्रियं कुरु", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "पुटचिह्नानि", "navigation_bar.community_timeline": "स्थानीयसमयतालिका", "navigation_bar.compose": "नूतनपत्रं रचय", - "navigation_bar.direct": "प्रत्यक्षसन्देशाः", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "आविष्कुरु", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "प्रोफैलं सम्पाद्यताम्", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "फल्गुसन्देशाः", "report_notification.categories.violation": "नियमोल्लङ्घनम्", "report_notification.open": "आवेदनमुद्धाटय", + "search.no_recent_searches": "No recent searches", "search.placeholder": "अन्विच्छ", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "URL अन्विच्छ वा लेपनं कुरु", - "search_popout.search_format": "आनीतान्वेषणप्रारूपम्", - "search_popout.tips.full_text": "सरललेखो यानि पत्राणि त्वया लिखितानि, प्रियाणि, बूस्तं कृतानि, उत येषु उल्लिखितानि, एवञ्च समीकृतानिपयोक्तृनामानि, प्रदर्शननामानि, प्रचलितवस्तूनि च प्रतिददाति।", - "search_popout.tips.hashtag": "प्रचलितवस्तु", - "search_popout.tips.status": "पत्रम्", - "search_popout.tips.text": "सरललेखो मेलनप्रदर्शननामानि, उपभोक्तृनामानि प्रचलितवस्तूनि च प्रतिददाति", - "search_popout.tips.user": "उपभोक्ता", - "search_results.accounts": "जनाः", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "सर्वम्", "search_results.hashtags": "प्रचलितवस्तूनि", "search_results.nothing_found": "एतेभ्योऽन्वेषणपदेभ्यः किमपि न प्राप्तम्", @@ -557,7 +559,7 @@ "status.copy": "सञ्चयं पत्रे प्रतिलिपिं कुरु", "status.delete": "मार्जय", "status.detailed_status": "विस्तृतसंभाषणदृश्यम्", - "status.direct": "प्रत्यक्षसन्देशः @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "सम्पादय", "status.edited": "सम्पादितं {date}", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index b61ac537c7..905d457389 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -20,7 +20,7 @@ "account.blocked": "Blocadu", "account.browse_more_on_origin_server": "Esplora de prus in su profilu originale", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Messàgiu deretu a @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios", "account.domain_blocked": "Domìniu blocadu", "account.edit_profile": "Modìfica profilu", @@ -102,7 +102,7 @@ "column.blocks": "Persones blocadas", "column.bookmarks": "Sinnalibros", "column.community": "Lìnia de tempus locale", - "column.direct": "Messàgios diretos", + "column.direct": "Private mentions", "column.directory": "Nàviga in is profilos", "column.domain_blocks": "Domìnios blocados", "column.favourites": "Preferidos", @@ -216,7 +216,7 @@ "empty_column.blocks": "No as blocadu ancora nemos.", "empty_column.bookmarked_statuses": "Non tenes ancora peruna publicatzione in is marcadores. Cando nd'as a agiùnghere una, at a èssere ammustrada inoghe.", "empty_column.community": "Sa lìnia de tempus locale est bòida. Iscrie inoghe pro cumintzare sa festa!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Non tenes ancora perunu domìniu blocadu.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Non tenes ancora peruna publicatzione in is preferidos. Cando nd'as a agiùnghere una, at a èssere ammustrada inoghe.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Sinnalibros", "navigation_bar.community_timeline": "Lìnia de tempus locale", "navigation_bar.compose": "Cumpone una publicatzione noa", - "navigation_bar.direct": "Messàgios diretos", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Iscoberi", "navigation_bar.domain_blocks": "Domìnios blocados", "navigation_bar.edit_profile": "Modìfica profilu", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Chirca", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Formadu de chirca avantzada", - "search_popout.tips.full_text": "Testu sèmplitze pro agatare publicatziones chi as iscritu, marcadu comente a preferidas, cumpartzidu o chi t'ant mentovadu, e fintzas nòmines, nòmines de utente e etichetas.", - "search_popout.tips.hashtag": "eticheta", - "search_popout.tips.status": "publicatzione", - "search_popout.tips.text": "Testu sèmplitze pro agatare nòmines visualizados, nòmines de utente e etichetas", - "search_popout.tips.user": "utente", - "search_results.accounts": "Gente", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Etichetas", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Còpia su ligòngiu a sa publicatzione tua", "status.delete": "Cantzella", "status.detailed_status": "Visualizatzione de detàlliu de arresonada", - "status.direct": "Messàgiu deretu a @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index f32d8d2e70..8794806b2f 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -20,7 +20,7 @@ "account.blocked": "Dingied", "account.browse_more_on_origin_server": "Luik mair oan the oreeginal profile", "account.cancel_follow_request": "Resile follae requeest", - "account.direct": "Direck message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stap notifyin me whan @{name} posts", "account.domain_blocked": "Domain dingied", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Dingied uisers", "column.bookmarks": "Buikmairks", "column.community": "Local timeline", - "column.direct": "Direck messages", + "column.direct": "Private mentions", "column.directory": "Broose profiles", "column.domain_blocks": "Dingied domains", "column.favourites": "Best anes", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ye huvnae dingied onie uisers yit.", "empty_column.bookmarked_statuses": "Ye dinnae hae onie buikmairkt posts yit. Efter ye buikmairk ane, it'll shaw up here.", "empty_column.community": "The loval timeline is toum. Screive socht public fir tae get gaun!", - "empty_column.direct": "Ye dinnae hae onie direck messages yit. Ance ye sen or get ane, it'll shaw up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There nae dingied domains yit.", "empty_column.explore_statuses": "Naethin is trendin the noo. Check back efter!", "empty_column.favourited_statuses": "Ye dinnae hae onie favourite posts yit. Whan ye favourite ane, it'll shaw up here.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Focus column", "keyboard_shortcuts.compose": "Focus compose text area", "keyboard_shortcuts.description": "Description", - "keyboard_shortcuts.direct": "tae open direct messages column", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Muive doon in the list", "keyboard_shortcuts.enter": "Open post", "keyboard_shortcuts.favourite": "Favourite post", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Buikmairks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Scrieve new post", - "navigation_bar.direct": "Direck messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Fin", "navigation_bar.domain_blocks": "Dingied domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Mince", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Seirch", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Seirch or paste URL", - "search_popout.search_format": "Advanced seirch format", - "search_popout.tips.full_text": "Simple text gie ye posts thit ye'v wrate, favouritit, heezed, or hae been menshied in, as weil as matchinnuisernemms, displey nemms, an hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "post", - "search_popout.tips.text": "Simple text gies ye matchin dipley nemms, uisernemms an hashtags", - "search_popout.tips.user": "uiser", - "search_results.accounts": "Fowk", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Aw", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Cuidnae fin ocht fir thir seirch terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link tae post", "status.delete": "Delete", "status.detailed_status": "Detailt conversation view", - "status.direct": "Direck message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Editit {date}", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 3e96be5fe1..82366c29cc 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -20,7 +20,7 @@ "account.blocked": "අවහිර කර ඇත", "account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "@{name} සෘජු පණිවිඩය", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න", "account.domain_blocked": "වසම අවහිර කර ඇත", "account.edit_profile": "පැතිකඩ සංස්කරණය", @@ -102,7 +102,7 @@ "column.blocks": "අවහිර කළ අය", "column.bookmarks": "පොත් යොමු", "column.community": "දේශීය කාලරේඛාව", - "column.direct": "සෘජු පණිවිඩ", + "column.direct": "Private mentions", "column.directory": "පැතිකඩ පිරික්සන්න", "column.domain_blocks": "අවහිර කළ වසම්", "column.favourites": "ප්‍රියතමයන්", @@ -216,7 +216,7 @@ "empty_column.blocks": "කිසිදු පරිශීලකයෙකු අවහිර කර නැත.", "empty_column.bookmarked_statuses": "ඔබට තවමත් පිටු සලකුණු කළ මෙවලම් කිසිවක් නොමැත. ඔබ එකක් පිටු සලකුණු කළ විට, එය මෙහි පෙන්වනු ඇත.", "empty_column.community": "දේශීය කාලරේඛාව හිස් ය. පන්දුව පෙරළීමට ප්‍රසිද්ධියේ යමක් ලියන්න!", - "empty_column.direct": "ඔබට තවමත් සෘජු පණිවිඩ කිසිවක් නොමැත. ඔබ එකක් යවන විට හෝ ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "අවහිර කරන ලද වසම් නැත.", "empty_column.explore_statuses": "දැන් කිසිවක් නැඹුරු නොවේ. පසුව නැවත පරීක්ෂා කරන්න!", "empty_column.favourited_statuses": "ඔබට තවමත් ප්‍රියතම දත් කිසිවක් නැත. ඔබ කැමති එකක් වූ විට, එය මෙහි පෙන්වනු ඇත.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "එක් තීරුවක තත්ත්වය නාභිගත කිරීමට", "keyboard_shortcuts.compose": "රචනා පාඨ ප්‍රදේශය නාභිගත කිරීමට", "keyboard_shortcuts.description": "සවිස්තරය", - "keyboard_shortcuts.direct": "සෘජු පණිවිඩ තීරුව විවෘත කිරීමට", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගමන් කිරීමට", "keyboard_shortcuts.enter": "ලිපිය අරින්න", "keyboard_shortcuts.favourite": "කැමති කිරීමට", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "පොත්යොමු", "navigation_bar.community_timeline": "දේශීය කාලරේඛාව", "navigation_bar.compose": "නව ටූට් සාදන්න", - "navigation_bar.direct": "සෘජු පණිවිඩ", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "සොයා ගන්න", "navigation_bar.domain_blocks": "අවහිර කළ වසම්", "navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "ආයාචිත", "report_notification.categories.violation": "නීතිය කඩ කිරීම", "report_notification.open": "විවෘත වාර්තාව", + "search.no_recent_searches": "No recent searches", "search.placeholder": "සොයන්න", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "උසස් සෙවුම් ආකෘතිය", - "search_popout.tips.full_text": "සරල පෙළ ඔබ ලියා ඇති, ප්‍රිය කළ, වැඩි කළ හෝ සඳහන් කර ඇති තත්ත්වයන් මෙන්ම ගැළපෙන පරිශීලක නාම, සංදර්ශක නම් සහ හැෂ් ටැග් ලබා දෙයි.", - "search_popout.tips.hashtag": "හෑෂ් ටැගය", - "search_popout.tips.status": "ලිපිය", - "search_popout.tips.text": "සරල පෙළ ගැළපෙන සංදර්ශක නම්, පරිශීලක නාම සහ හැෂ් ටැග් ලබා දෙයි", - "search_popout.tips.user": "පරිශීලක", - "search_results.accounts": "මිනිසුන්", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "සියල්ල", "search_results.hashtags": "හැෂ් ටැග්", "search_results.nothing_found": "මෙම සෙවුම් පද සඳහා කිසිවක් සොයාගත නොහැකි විය", @@ -557,7 +559,7 @@ "status.copy": "තත්වයට සබැඳිය පිටපත් කරන්න", "status.delete": "මකන්න", "status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම", - "status.direct": "@{name} සෘජු පණිවිඩයක්", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "සංස්කරණය", "status.edited": "සංශෝධිතයි {date}", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index e2f558b9b1..d8c39fabfe 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -20,7 +20,7 @@ "account.blocked": "Blokovaný/á", "account.browse_more_on_origin_server": "Prehľadávaj viac na pôvodnom profile", "account.cancel_follow_request": "Stiahni žiadosť o nasledovanie", - "account.direct": "Priama správa pre @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Prestaň ma oboznamovať, keď má @{name} príspevky", "account.domain_blocked": "Doména ukrytá", "account.edit_profile": "Uprav profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokovaní užívatelia", "column.bookmarks": "Záložky", "column.community": "Miestna časová os", - "column.direct": "Priame správy", + "column.direct": "Private mentions", "column.directory": "Prehľadávaj profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Obľúbené", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ešte si nikoho nezablokoval/a.", "empty_column.bookmarked_statuses": "Ešte nemáš žiadné záložky. Keď si pridáš príspevok k záložkám, zobrazí sa tu.", "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!", - "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!", "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "zameraj sa na príspevok v jednom zo stĺpcov", "keyboard_shortcuts.compose": "zameraj sa na písaciu plochu", "keyboard_shortcuts.description": "Popis", - "keyboard_shortcuts.direct": "pre otvorenie panelu priamých správ", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "posunúť sa dole v zozname", "keyboard_shortcuts.enter": "Otvor príspevok", "keyboard_shortcuts.favourite": "pridaj do obľúbených", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Miestna časová os", "navigation_bar.compose": "Napíš nový príspevok", - "navigation_bar.direct": "Priame správy", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Objavuj", "navigation_bar.domain_blocks": "Skryté domény", "navigation_bar.edit_profile": "Uprav profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušenie pravidla", "report_notification.open": "Otvor hlásenie", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Hľadaj", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "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", - "search_popout.tips.status": "príspevok", - "search_popout.tips.text": "Vráti jednoduchý textový výpis zhodujúcich sa mien, prezývok a haštagov", - "search_popout.tips.user": "užívateľ", - "search_results.accounts": "Ľudia", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Všetky", "search_results.hashtags": "Haštagy", "search_results.nothing_found": "Pre tieto výrazy nemožno nič nájsť", @@ -557,7 +559,7 @@ "status.copy": "Skopíruj odkaz na príspevok", "status.delete": "Zmazať", "status.detailed_status": "Podrobný náhľad celej konverzácie", - "status.direct": "Priama správa pre @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Uprav", "status.edited": "Upravené {date}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 78502dd074..3c6da433b1 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -20,7 +20,7 @@ "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Brskaj več po izvirnem profilu", "account.cancel_follow_request": "Umakni zahtevo za sledenje", - "account.direct": "Neposredno sporočilo @{name}", + "account.direct": "Zasebno omeni @{name}", "account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo", "account.domain_blocked": "Blokirana domena", "account.edit_profile": "Uredi profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokirani uporabniki", "column.bookmarks": "Zaznamki", "column.community": "Krajevna časovnica", - "column.direct": "Neposredna sporočila", + "column.direct": "Zasebne omembe", "column.directory": "Prebrskaj profile", "column.domain_blocks": "Blokirane domene", "column.favourites": "Priljubljene", @@ -216,7 +216,7 @@ "empty_column.blocks": "Niste še blokirali nobenega uporabnika.", "empty_column.bookmarked_statuses": "Zaenkrat še nimate zaznamovanih objav. Ko objavo zaznamujete, se pojavi tukaj.", "empty_column.community": "Krajevna časovnica je prazna. Napišite nekaj javnega, da se bo snežna kepa zakotalila!", - "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga boste poslali ali prejeli, se bo prikazal tukaj.", + "empty_column.direct": "Nimate še nobenih zasebnih omemb. Ko jih boste poslali ali prejeli, se bodo prikazale tukaj.", "empty_column.domain_blocks": "Zaenkrat ni blokiranih domen.", "empty_column.explore_statuses": "Trenutno ni nič v trendu. Preverite znova kasneje!", "empty_column.favourited_statuses": "Nimate priljubljenih objav. Ko boste vzljubili kakšno, bo prikazana tukaj.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Pozornost na stolpec", "keyboard_shortcuts.compose": "Pozornost na območje za sestavljanje besedila", "keyboard_shortcuts.description": "Opis", - "keyboard_shortcuts.direct": "odpri stolpec za neposredna sporočila", + "keyboard_shortcuts.direct": "za odpiranje stolpca zasebnih omemb", "keyboard_shortcuts.down": "Premakni navzdol po seznamu", "keyboard_shortcuts.enter": "Odpri objavo", "keyboard_shortcuts.favourite": "Vzljubi objavo", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Zaznamki", "navigation_bar.community_timeline": "Krajevna časovnica", "navigation_bar.compose": "Sestavi novo objavo", - "navigation_bar.direct": "Neposredna sporočila", + "navigation_bar.direct": "Zasebne omembe", "navigation_bar.discover": "Odkrijte", "navigation_bar.domain_blocks": "Blokirane domene", "navigation_bar.edit_profile": "Uredi profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Neželeno", "report_notification.categories.violation": "Kršitev pravila", "report_notification.open": "Odpri prijavo", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Iskanje", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Iščite ali prilepite URL", - "search_popout.search_format": "Napredna oblika iskanja", - "search_popout.tips.full_text": "Enostavno besedilo vrne objave, ki ste jih napisali, vzljubili, izpostavili ali ste bili v njih omenjeni, kot tudi ujemajoča se uporabniška imena, prikazna imena in ključnike.", - "search_popout.tips.hashtag": "ključnik", - "search_popout.tips.status": "objava", - "search_popout.tips.text": "Enostavno besedilo vrne ujemajoča se prikazna imena, uporabniška imena in ključnike", - "search_popout.tips.user": "uporabnik", - "search_results.accounts": "Ljudje", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profili", "search_results.all": "Vse", "search_results.hashtags": "Ključniki", "search_results.nothing_found": "Za ta iskalni niz ni zadetkov", @@ -557,8 +559,8 @@ "status.copy": "Kopiraj povezavo do objave", "status.delete": "Izbriši", "status.detailed_status": "Podroben pogled pogovora", - "status.direct": "Neposredno sporočilo @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Zasebno omeni @{name}", + "status.direct_indicator": "Zasebna omemba", "status.edit": "Uredi", "status.edited": "Urejeno {date}", "status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 7322b12aea..c0064eb7eb 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -20,7 +20,7 @@ "account.blocked": "E bllokuar", "account.browse_more_on_origin_server": "Shfletoni më tepër rreth profilit origjinal", "account.cancel_follow_request": "Tërhiq mbrapsht kërkesë për ndjekje", - "account.direct": "Mesazh i drejtpërdrejtë për @{name}", + "account.direct": "Përmendje private për @{name}", "account.disable_notifications": "Resht së njoftuari mua, kur poston @{name}", "account.domain_blocked": "Përkatësia u bllokua", "account.edit_profile": "Përpunoni profilin", @@ -102,7 +102,7 @@ "column.blocks": "Përdorues të bllokuar", "column.bookmarks": "Faqerojtës", "column.community": "Rrjedhë kohore vendore", - "column.direct": "Mesazhe të drejtpërdrejtë", + "column.direct": "Përmendje private", "column.directory": "Shfletoni profile", "column.domain_blocks": "Përkatësi të bllokuara", "column.favourites": "Të parapëlqyer", @@ -216,7 +216,7 @@ "empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.", "empty_column.bookmarked_statuses": "S’keni faqeruajtur ende ndonjë mesazh. Kur faqeruani një të tillë, ai do të shfaqet këtu.", "empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!", - "empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejtë. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.", + "empty_column.direct": "S’keni ende ndonjë përmendje private. Kur dërgoni ose merrni një të tillë, do të shfaqet këtu.", "empty_column.domain_blocks": "Ende s’ka përkatësi të fshehura.", "empty_column.explore_statuses": "Asgjë në modë tani. Kontrolloni më vonë!", "empty_column.favourited_statuses": "S’keni ende ndonjë mesazh të parapëlqyer. Kur parapëlqeni një të tillë, ai do të shfaqet këtu.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokusi mbi një shtyllë", "keyboard_shortcuts.compose": "Fokusi te fusha e hartimit të mesazheve", "keyboard_shortcuts.description": "Përshkrim", - "keyboard_shortcuts.direct": "për hapje shtylle mesazhesh të drejtpërdrejtë", + "keyboard_shortcuts.direct": "që të hapni shtyllën e përmendjeve private", "keyboard_shortcuts.down": "Për zbritje poshtë nëpër listë", "keyboard_shortcuts.enter": "Për hapje postimi", "keyboard_shortcuts.favourite": "Për t’i vënë shenjë si të parapëlqyer një postimi", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Faqerojtës", "navigation_bar.community_timeline": "Rrjedhë kohore vendore", "navigation_bar.compose": "Hartoni mesazh të ri", - "navigation_bar.direct": "Mesazhe të drejtpërdrejtë", + "navigation_bar.direct": "Përmendje private", "navigation_bar.discover": "Zbuloni", "navigation_bar.domain_blocks": "Përkatësi të bllokuara", "navigation_bar.edit_profile": "Përpunoni profilin", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "I padëshiruar", "report_notification.categories.violation": "Cenim rregullash", "report_notification.open": "Hape raportimin", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Kërkoni", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Kërkoni, ose hidhni një URL", - "search_popout.search_format": "Format kërkimi të mëtejshëm", - "search_popout.tips.full_text": "Kërkimi për tekst të thjeshtë përgjigjet me mesazhe që keni shkruar, parapëlqyer, përforcuar, ose ku jeni përmendur, si dhe emra përdoruesish, emra ekrani dhe hashtag-ë që kanë përputhje me termin e kërkimit.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "mesazh", - "search_popout.tips.text": "Kërkim për tekst të thjeshtë përgjigjet me emra, emra përdoruesish dhe hashtag-ë që kanë përputhje me termin e kërkimit", - "search_popout.tips.user": "përdorues", - "search_results.accounts": "Persona", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profile", "search_results.all": "Krejt", "search_results.hashtags": "Hashtag-ë", "search_results.nothing_found": "S’u gjet gjë për këto terma kërkimi", @@ -557,8 +559,8 @@ "status.copy": "Kopjoje lidhjen për te mesazhi", "status.delete": "Fshije", "status.detailed_status": "Pamje e hollësishme bisede", - "status.direct": "Mesazh i drejtpërdrejtë për @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Përmendje private për @{name}", + "status.direct_indicator": "Përmendje private", "status.edit": "Përpunojeni", "status.edited": "Përpunuar më {date}", "status.edited_x_times": "Përpunuar {count, plural, one {{count} herë} other {{count} herë}}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 904396610e..f35d7025c1 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -20,7 +20,7 @@ "account.blocked": "Blokiran", "account.browse_more_on_origin_server": "Pregledajte još na originalnom profilu", "account.cancel_follow_request": "Povuci zahtev za praćenje", - "account.direct": "Direktna poruka @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Zaustavi obaveštavanje za objave korisnika @{name}", "account.domain_blocked": "Domen je blokiran", "account.edit_profile": "Uredi profil", @@ -102,7 +102,7 @@ "column.blocks": "Blokirani korisnici", "column.bookmarks": "Obeleživači", "column.community": "Lokalna vremenska linija", - "column.direct": "Direktne poruke", + "column.direct": "Private mentions", "column.directory": "Pregledaj profile", "column.domain_blocks": "Blokirani domeni", "column.favourites": "Omiljeno", @@ -216,7 +216,7 @@ "empty_column.blocks": "Još uvek niste blokirali nijednog korisnika.", "empty_column.bookmarked_statuses": "Još uvek nemate objava dodanih u obeleživače. Kada dodate neku, pojaviće se ovde.", "empty_column.community": "Lokalna vremenska linija je prazna. Napišite nešto javno da započnete!", - "empty_column.direct": "Još uvek nemate nijednu direktnu poruku. Kada pošaljete ili primite neku, pojaviće se ovde.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Još uvek nema blokiranih domena.", "empty_column.explore_statuses": "Trenutno ništa nije u trendu. Proverite ponovo kasnije!", "empty_column.favourited_statuses": "Još uvek nemate objava označenih kao omiljene. Kada označite neku, pojaviće se ovde.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Fokusiraj kolonu", "keyboard_shortcuts.compose": "Fokusiraj polje za sastavljanje objave", "keyboard_shortcuts.description": "Opis", - "keyboard_shortcuts.direct": "za otvaranje kolone direktnih poruka", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Premesti nadole u listi", "keyboard_shortcuts.enter": "Otvori objavu", "keyboard_shortcuts.favourite": "Označi objavu kao omiljenu", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Obeleživači", "navigation_bar.community_timeline": "Lokalna vremenska linija", "navigation_bar.compose": "Sastavi novu objavu", - "navigation_bar.direct": "Direktne poruke", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Otkrij", "navigation_bar.domain_blocks": "Blokirani domeni", "navigation_bar.edit_profile": "Uredi profil", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Kršenje pravila", "report_notification.open": "Otvori prijavu", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Pretraga", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Pretražite ili unesite adresu", - "search_popout.search_format": "Napredni format pretrage", - "search_popout.tips.full_text": "Jednostavan tekst vraća objave koje ste napisali, dodali u omiljene, podržali ili u kojima ste bili pomenuti, kao i podudaranje korisničkih imena, prikazana imena i heš oznake.", - "search_popout.tips.hashtag": "heš oznaka", - "search_popout.tips.status": "objava", - "search_popout.tips.text": "Jednostavan tekst vraća podudaranje imena za prikaz, korisnička imena i heš oznake", - "search_popout.tips.user": "korisnik", - "search_results.accounts": "Ljudi", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Sve", "search_results.hashtags": "Heš oznake", "search_results.nothing_found": "Nije moguće pronaći ništa za ove termine za pretragu", @@ -557,7 +559,7 @@ "status.copy": "Kopiraj vezu u objavu", "status.delete": "Izbriši", "status.detailed_status": "Detaljan prikaz razgovora", - "status.direct": "Pošalji poruku @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Uredi", "status.edited": "Uređeno {date}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 665d561c62..bfdd031f87 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -20,7 +20,7 @@ "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Прегледајте још на оригиналном профилу", "account.cancel_follow_request": "Повуци захтев за праћење", - "account.direct": "Директна порука @{name}", + "account.direct": "Приватно помени @{name}", "account.disable_notifications": "Заустави обавештавање за објаве корисника @{name}", "account.domain_blocked": "Домен је блокиран", "account.edit_profile": "Уреди профил", @@ -102,7 +102,7 @@ "column.blocks": "Блокирани корисници", "column.bookmarks": "Обележивачи", "column.community": "Локална временска линија", - "column.direct": "Директне поруке", + "column.direct": "Приватна помињања", "column.directory": "Прегледај профиле", "column.domain_blocks": "Блокирани домени", "column.favourites": "Омиљено", @@ -216,7 +216,7 @@ "empty_column.blocks": "Још увек нисте блокирали ниједног корисника.", "empty_column.bookmarked_statuses": "Још увек немате објава доданих у обележиваче. Када додате неку, појавиће се овде.", "empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!", - "empty_column.direct": "Још увек немате ниједну директну поруку. Када пошаљете или примите неку, појавиће се овде.", + "empty_column.direct": "Још увек немате приватних помињања. Када пошаљете или примите једно, оно ће се појавити овде.", "empty_column.domain_blocks": "Још увек нема блокираних домена.", "empty_column.explore_statuses": "Тренутно ништа није у тренду. Проверите поново касније!", "empty_column.favourited_statuses": "Још увек немате објава означених као омиљене. Када означите неку, појавиће се овде.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Фокусирај колону", "keyboard_shortcuts.compose": "Фокусирај поље за састављање објаве", "keyboard_shortcuts.description": "Опис", - "keyboard_shortcuts.direct": "за отварање колоне директних порука", + "keyboard_shortcuts.direct": "за отварање колоне приватних помињања", "keyboard_shortcuts.down": "Премести надоле у листи", "keyboard_shortcuts.enter": "Отвори објаву", "keyboard_shortcuts.favourite": "Означи објаву као омиљену", @@ -376,7 +376,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": "Уреди профил", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Кршење правила", "report_notification.open": "Отвори пријаву", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Претрага", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Претражите или унесите адресу", - "search_popout.search_format": "Напредни формат претраге", - "search_popout.tips.full_text": "Једноставан текст враћа објаве које сте написали, додали у омиљене, подржали или у којима сте били поменути, као и одговарајућа корисничка имена, имена за приказ и хеш ознаке.", - "search_popout.tips.hashtag": "хеш ознака", - "search_popout.tips.status": "објава", - "search_popout.tips.text": "Једноставан текст враћа подударна имена за приказ, корисничка имена и хеш ознаке", - "search_popout.tips.user": "корисник", - "search_results.accounts": "Људи", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Профили", "search_results.all": "Све", "search_results.hashtags": "Хеш ознаке", "search_results.nothing_found": "Није могуће пронаћи ништа за ове термине за претрагу", @@ -557,8 +559,8 @@ "status.copy": "Копирај везу у објаву", "status.delete": "Избриши", "status.detailed_status": "Детаљан приказ разговора", - "status.direct": "Пошаљи поруку @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Приватно помени @{name}", + "status.direct_indicator": "Приватно помињање", "status.edit": "Уреди", "status.edited": "Уређено {date}", "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 90462f026c..0b78b78566 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -3,7 +3,7 @@ "about.contact": "Kontakt:", "about.disclaimer": "Mastodon är fri programvara med öppen källkod och ett varumärke tillhörande Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Okänd orsak", - "about.domain_blocks.preamble": "Som regel låter Mastodon dig interagera med användare från andra servrar i fediversumet och se deras innehåll. Detta är de undantag som gjorts på just denna servern.", + "about.domain_blocks.preamble": "Som regel låter Mastodon dig interagera med användare från andra servrar i fediversumet och se deras innehåll. Detta är de undantag som gjorts på just denna server.", "about.domain_blocks.silenced.explanation": "Såvida du inte uttryckligen söker upp dem eller samtycker till att se dem genom att följa dem kommer du i allmänhet inte se profiler från den här servern, eller deras innehåll.", "about.domain_blocks.silenced.title": "Begränsat", "about.domain_blocks.suspended.explanation": "Inga data från denna server kommer behandlas, lagras eller bytas ut, vilket omöjliggör kommunikation med användare på denna server.", @@ -20,7 +20,7 @@ "account.blocked": "Blockerad", "account.browse_more_on_origin_server": "Läs mer på den ursprungliga profilen", "account.cancel_follow_request": "Återkalla din begäran om att få följa", - "account.direct": "Skicka direktmeddelande till @{name}", + "account.direct": "Nämn @{name} privat", "account.disable_notifications": "Sluta notifiera mig när @{name} gör inlägg", "account.domain_blocked": "Domän blockerad", "account.edit_profile": "Redigera profil", @@ -32,9 +32,9 @@ "account.follow": "Följ", "account.followers": "Följare", "account.followers.empty": "Ingen följer denna användare än.", - "account.followers_counter": "{count, plural, one {{counter} Följare} other {{counter} Följare}}", + "account.followers_counter": "{count, plural, one {{counter} följare} other {{counter} följare}}", "account.following": "Följer", - "account.following_counter": "{count, plural, one {{counter} Följer} other {{counter} Följer}}", + "account.following_counter": "{count, plural, one {{counter} följd} other {{counter} följda}}", "account.follows.empty": "Denna användare följer inte någon än.", "account.follows_you": "Följer dig", "account.go_to_profile": "Gå till profilen", @@ -42,7 +42,7 @@ "account.joined_short": "Gick med", "account.languages": "Ändra vilka språk du helst vill se i ditt flöde", "account.link_verified_on": "Ägarskap för denna länk kontrollerades den {date}", - "account.locked_info": "För detta konto har ägaren valt att manuellt godkänna vem som kan följa dem.", + "account.locked_info": "För detta konto har ägaren valt att manuellt godkänna vem som kan följa hen.", "account.media": "Media", "account.mention": "Nämn @{name}", "account.moved_to": "{name} har indikerat att hen har ett nytt konto:", @@ -57,7 +57,7 @@ "account.requested_follow": "{name} har begärt att följa dig", "account.share": "Dela @{name}s profil", "account.show_reblogs": "Visa boostar från @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Inlägg} other {{counter} Inlägg}}", + "account.statuses_counter": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}", "account.unblock": "Avblockera @{name}", "account.unblock_domain": "Avblockera {domain}", "account.unblock_short": "Avblockera", @@ -102,7 +102,7 @@ "column.blocks": "Blockerade användare", "column.bookmarks": "Bokmärken", "column.community": "Lokal tidslinje", - "column.direct": "Direktmeddelanden", + "column.direct": "Privata nämningar", "column.directory": "Bläddra bland profiler", "column.domain_blocks": "Blockerade domäner", "column.favourites": "Favoriter", @@ -159,7 +159,7 @@ "confirmations.delete_list.confirm": "Radera", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.discard_edit_media.confirm": "Kasta", - "confirmations.discard_edit_media.message": "Du har o-sparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", + "confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", "confirmations.domain_block.confirm": "Dölj hela domänen", "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.", "confirmations.edit.confirm": "Redigera", @@ -167,7 +167,7 @@ "confirmations.logout.confirm": "Logga ut", "confirmations.logout.message": "Är du säker på att du vill logga ut?", "confirmations.mute.confirm": "Tysta", - "confirmations.mute.explanation": "Detta kommer dölja inlägg från dem och inlägg som nämner dem, men de tillåts fortfarande se dina inlägg och följa dig.", + "confirmations.mute.explanation": "Detta kommer dölja inlägg från hen och inlägg som nämner hen, men hen tillåts fortfarande se dina inlägg och följa dig.", "confirmations.mute.message": "Är du säker på att du vill tysta {name}?", "confirmations.redraft.confirm": "Radera & gör om", "confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.", @@ -216,14 +216,14 @@ "empty_column.blocks": "Du har ännu ej blockerat några användare.", "empty_column.bookmarked_statuses": "Du har inte bokmärkt några inlägg än. När du bokmärker ett inlägg kommer det synas här.", "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!", - "empty_column.direct": "Du har inga direktmeddelanden. När du skickar eller tar emot ett direktmeddelande kommer det att visas här.", + "empty_column.direct": "Du har inga privata nämningar. När du skickar eller tar emot ett direktmeddelande kommer det att visas här.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", "empty_column.explore_statuses": "Ingenting är trendigt just nu. Kom tillbaka senare!", "empty_column.favourited_statuses": "Du har inga favoritmarkerade inlägg än. När du favoritmarkerar ett inlägg kommer det visas här.", "empty_column.favourites": "Ingen har favoritmarkerat detta inlägg än. När någon gör det kommer de synas här.", "empty_column.follow_recommendations": "Det ser ut som om inga förslag kan genereras till dig. Du kan prova att använda sök för att leta efter personer som du kanske känner eller utforska trendande hash-taggar.", "empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.", - "empty_column.followed_tags": "Du följer inga hashtags ännu. När du gör det kommer de att dyka upp här.", + "empty_column.followed_tags": "Du följer inga hashtaggar ännu. När du gör det kommer de att dyka upp här.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", "empty_column.home": "Din hemma-tidslinje är tom! Följ fler användare för att fylla den. {suggestions}", "empty_column.home.suggestions": "Se några förslag", @@ -294,7 +294,7 @@ "home.hide_announcements": "Dölj notiser", "home.show_announcements": "Visa notiser", "interaction_modal.description.favourite": "Med ett Mastodon-konto kan du favoritmarkera detta inlägg för att visa författaren att du gillar det och för att spara det till senare.", - "interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se deras inlägg i ditt hemflöde.", + "interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se hens inlägg i ditt hemflöde.", "interaction_modal.description.reblog": "Med ett Mastodon-konto kan du boosta detta inlägg för att dela den med dina egna följare.", "interaction_modal.description.reply": "Med ett Mastodon-konto kan du svara på detta inlägg.", "interaction_modal.on_another_server": "På en annan server", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "för att fokusera en status i en av kolumnerna", "keyboard_shortcuts.compose": "för att fokusera skrivfältet", "keyboard_shortcuts.description": "Beskrivning", - "keyboard_shortcuts.direct": "för att öppna Direktmeddelanden", + "keyboard_shortcuts.direct": "för att öppna privata nämningskolumnen", "keyboard_shortcuts.down": "för att flytta nedåt i listan", "keyboard_shortcuts.enter": "Öppna inlägg", "keyboard_shortcuts.favourite": "Favoritmarkera inlägg", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bokmärken", "navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.compose": "Författa nytt inlägg", - "navigation_bar.direct": "Direktmeddelanden", + "navigation_bar.direct": "Privata nämningar", "navigation_bar.discover": "Upptäck", "navigation_bar.domain_blocks": "Dolda domäner", "navigation_bar.edit_profile": "Redigera profil", @@ -481,7 +481,7 @@ "relative_time.today": "idag", "reply_indicator.cancel": "Ångra", "report.block": "Blockera", - "report.block_explanation": "Du kommer inte se deras inlägg. De kommer inte kunna se dina inlägg eller följa dig. De kommer kunna se att de är blockerade.", + "report.block_explanation": "Du kommer inte se hens inlägg. Hen kommer inte kunna se dina inlägg eller följa dig. Hen kommer kunna se att hen är blockerad.", "report.categories.other": "Övrigt", "report.categories.spam": "Skräppost", "report.categories.violation": "Innehåll bryter mot en eller flera serverregler", @@ -494,7 +494,7 @@ "report.forward": "Vidarebefordra till {target}", "report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?", "report.mute": "Tysta", - "report.mute_explanation": "Du kommer inte se deras inlägg. De kan fortfarande följa dig och se dina inlägg. De kommer inte veta att de är tystade.", + "report.mute_explanation": "Du kommer inte se hens inlägg. Hen kan fortfarande följa dig och se dina inlägg. Hen kommer inte veta att hen är tystad.", "report.next": "Nästa", "report.placeholder": "Ytterligare kommentarer", "report.reasons.dislike": "Jag tycker inte om det", @@ -516,21 +516,23 @@ "report.thanks.title": "Vill du inte se det här?", "report.thanks.title_actionable": "Tack för att du rapporterar, vi kommer att titta på detta.", "report.unfollow": "Sluta följ @{username}", - "report.unfollow_explanation": "Du följer detta konto. Avfölj dem för att inte se deras inlägg i ditt hemflöde.", + "report.unfollow_explanation": "Du följer detta konto. Avfölj hen för att inte se hens inlägg i ditt hemflöde.", "report_notification.attached_statuses": "bifogade {count, plural, one {{count} inlägg} other {{count} inlägg}}", "report_notification.categories.other": "Övrigt", "report_notification.categories.spam": "Skräppost", "report_notification.categories.violation": "Regelöverträdelse", "report_notification.open": "Öppna rapport", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Sök", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Sök eller klistra in URL", - "search_popout.search_format": "Avancerat sökformat", - "search_popout.tips.full_text": "Enkel text returnerar inlägg du har skrivit, favoritmarkerat, boostat eller blivit nämnd i, samt matchar användarnamn, visningsnamn och hashtaggar.", - "search_popout.tips.hashtag": "hash-tagg", - "search_popout.tips.status": "inlägg", - "search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags", - "search_popout.tips.user": "användare", - "search_results.accounts": "Människor", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "Alla", "search_results.hashtags": "Hashtaggar", "search_results.nothing_found": "Kunde inte hitta något för dessa sökord", @@ -557,8 +559,8 @@ "status.copy": "Kopiera inläggslänk", "status.delete": "Radera", "status.detailed_status": "Detaljerad samtalsvy", - "status.direct": "Direktmeddela @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Nämn @{name} privat", + "status.direct_indicator": "Privat nämning", "status.edit": "Redigera", "status.edited": "Ändrad {date}", "status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 6ec6e84390..c8f0337cb5 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Ôbocz wiyncyj we ôryginalnym profilu", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domena zablokowanŏ", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 521b58fe5b..76e1447471 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -20,7 +20,7 @@ "account.blocked": "முடக்கப்பட்டது", "account.browse_more_on_origin_server": "மேலும் உலாவ சுயவிவரத்திற்குச் செல்க", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "நேரடி செய்தி @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} பதிவிட்டல் எனக்கு தெரியபடுத்த வேண்டாம்", "account.domain_blocked": "மறைக்கப்பட்டத் தளங்கள்", "account.edit_profile": "சுயவிவரத்தை மாற்று", @@ -102,7 +102,7 @@ "column.blocks": "தடுக்கப்பட்ட பயனர்கள்", "column.bookmarks": "அடையாளக்குறிகள்", "column.community": "சுய நிகழ்வு காலவரிசை", - "column.direct": "நேரடி செய்திகள்", + "column.direct": "Private mentions", "column.directory": "சுயவிவரங்களை உலாவு", "column.domain_blocks": "மறைந்திருக்கும் திரளங்கள்", "column.favourites": "பிடித்தவைகள்", @@ -216,7 +216,7 @@ "empty_column.blocks": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.", "empty_column.bookmarked_statuses": "உங்களிடம் அடையாளக்குறியிட்ட டூட்டுகள் எவையும் இல்லை. அடையாளக்குறியிட்ட பிறகு அவை இங்கே காட்டப்படும்.", "empty_column.community": "உங்கள் மாஸ்டடான் முச்சந்தியில் யாரும் இல்லை. எதையேனும் எழுதி ஆட்டத்தைத் துவக்குங்கள்!", - "empty_column.direct": "உங்களுக்குத் தனிப்பட்ட செய்திகள் ஏதும் இல்லை. செய்தியை நீங்கள் அனுப்பும்போதோ அல்லது பெறும்போதோ, அது இங்கே காண்பிக்கப்படும்.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "தடுக்கப்பட்டக் களங்கள் இதுவரை இல்லை.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "உங்களுக்குப் பிடித்த டூட்டுகள் இதுவரை இல்லை. ஒரு டூட்டில் நீங்கள் விருப்பக்குறி இட்டால், அது இங்கே காண்பிக்கப்படும்.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "அடையாளக்குறிகள்", "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு", "navigation_bar.compose": "புதியவற்றை எழுதுக toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "கண்டு பிடி", "navigation_bar.domain_blocks": "மறைந்த களங்கள்", "navigation_bar.edit_profile": "சுயவிவரத்தைத் திருத்தவும்", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "தேடு", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "மேம்பட்ட தேடல் வடிவம்", - "search_popout.tips.full_text": "எளிமையான உரை நீங்கள் எழுதப்பட்ட, புகழ், அதிகரித்தது, அல்லது குறிப்பிட்டுள்ள, அதே போல் பயனர் பெயர்கள், காட்சி பெயர்கள், மற்றும் ஹேஸ்டேகைகளை கொண்டுள்ளது என்று நிலைகளை கொடுக்கிறது.", - "search_popout.tips.hashtag": "ஹேஸ்டேக்", - "search_popout.tips.status": "நிலைமை", - "search_popout.tips.text": "எளிய உரை காட்சி பெயர்கள், பயனர்பெயர்கள் மற்றும் ஹாஷ்டேட்களுடன் பொருந்துகிறது", - "search_popout.tips.user": "பயனர்", - "search_results.accounts": "மக்கள்", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "ஹாஷ்டேக்குகளைச்", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "நிலைக்கு இணைப்பை நகலெடு", "status.delete": "நீக்கு", "status.detailed_status": "விரிவான உரையாடல் காட்சி", - "status.direct": "நேரடி செய்தி @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index 4c32ffcb53..e553ac58c6 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 2a6f612d32..1bd8a65bd6 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -20,7 +20,7 @@ "account.blocked": "బ్లాక్ అయినవి", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "@{name}కు నేరుగా సందేశం పంపు", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "డొమైన్ దాచిపెట్టబడినది", "account.edit_profile": "ప్రొఫైల్ని సవరించండి", @@ -102,7 +102,7 @@ "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "column.bookmarks": "Bookmarks", "column.community": "స్థానిక కాలక్రమం", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "దాచిన డొమైన్లు", "column.favourites": "ఇష్టపడినవి", @@ -216,7 +216,7 @@ "empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "దాచబడిన డొమైన్లు ఇంకా ఏమీ లేవు.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "మీకు ఇష్టపడిన టూట్లు ఇంకా ఎమీ లేవు. మీరు ఒకదానిని ఇష్టపడినప్పుడు, అది ఇక్కడ కనిపిస్తుంది.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "స్థానిక కాలక్రమం", "navigation_bar.compose": "కొత్త టూట్ను రాయండి", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "కనుగొను", "navigation_bar.domain_blocks": "దాచిన డొమైన్లు", "navigation_bar.edit_profile": "ప్రొఫైల్ని సవరించండి", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "శోధన", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "అధునాతన శోధన ఆకృతి", - "search_popout.tips.full_text": "సాధారణ వచనం మీరు వ్రాసిన, ఇష్టపడే, పెంచబడిన లేదా పేర్కొనబడిన, అలాగే యూజర్పేర్లు, ప్రదర్శన పేర్లు, మరియు హ్యాష్ట్యాగ్లను నమోదు చేసిన హోదాలను అందిస్తుంది.", - "search_popout.tips.hashtag": "హాష్ ట్యాగ్", - "search_popout.tips.status": "స్టేటస్", - "search_popout.tips.text": "సింపుల్ టెక్స్ట్ ప్రదర్శన పేర్లు, యూజర్ పేర్లు మరియు హ్యాష్ట్యాగ్లను సరిపోలుస్తుంది", - "search_popout.tips.user": "వాడుకరి", - "search_results.accounts": "వ్యక్తులు", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "హాష్ ట్యాగ్లు", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "లంకెను స్టేటస్కు కాపీ చేయి", "status.delete": "తొలగించు", "status.detailed_status": "వివరణాత్మక సంభాషణ వీక్షణ", - "status.direct": "@{name}కు నేరుగా సందేశం పంపు", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index eb7de5aa5e..c460b5e1b2 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -20,7 +20,7 @@ "account.blocked": "ปิดกั้นอยู่", "account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม", "account.cancel_follow_request": "ถอนคำขอติดตาม", - "account.direct": "ส่งข้อความโดยตรงถึง @{name}", + "account.direct": "กล่าวถึง @{name} แบบส่วนตัว", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.domain_blocked": "ปิดกั้นโดเมนอยู่", "account.edit_profile": "แก้ไขโปรไฟล์", @@ -102,7 +102,7 @@ "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "column.bookmarks": "ที่คั่นหน้า", "column.community": "เส้นเวลาในเซิร์ฟเวอร์", - "column.direct": "ข้อความโดยตรง", + "column.direct": "การกล่าวถึงแบบส่วนตัว", "column.directory": "เรียกดูโปรไฟล์", "column.domain_blocks": "โดเมนที่ปิดกั้นอยู่", "column.favourites": "รายการโปรด", @@ -216,7 +216,7 @@ "empty_column.blocks": "คุณยังไม่ได้ปิดกั้นผู้ใช้ใด ๆ", "empty_column.bookmarked_statuses": "คุณยังไม่มีโพสต์ที่เพิ่มที่คั่นหน้าไว้ใด ๆ เมื่อคุณเพิ่มที่คั่นหน้าโพสต์ โพสต์จะปรากฏที่นี่", "empty_column.community": "เส้นเวลาในเซิร์ฟเวอร์ว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!", - "empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่", + "empty_column.direct": "คุณยังไม่มีการกล่าวถึงแบบส่วนตัวใด ๆ เมื่อคุณส่งหรือรับการกล่าวถึง การกล่าวถึงจะปรากฏที่นี่", "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ปิดกั้นอยู่", "empty_column.explore_statuses": "ไม่มีสิ่งใดที่กำลังนิยมในตอนนี้ กลับมาตรวจสอบในภายหลัง!", "empty_column.favourited_statuses": "คุณยังไม่มีโพสต์ที่ชื่นชอบใด ๆ เมื่อคุณชื่นชอบโพสต์ โพสต์จะปรากฏที่นี่", @@ -244,7 +244,7 @@ "explore.trending_links": "ข่าว", "explore.trending_statuses": "โพสต์", "explore.trending_tags": "แฮชแท็ก", - "filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่ได้นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง", + "filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง", "filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!", "filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้", "filter_modal.added.expired_title": "ตัวกรองหมดอายุแล้ว!", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "โฟกัสคอลัมน์", "keyboard_shortcuts.compose": "โฟกัสพื้นที่เขียนข้อความ", "keyboard_shortcuts.description": "คำอธิบาย", - "keyboard_shortcuts.direct": "เพื่อเปิดคอลัมน์ข้อความโดยตรง", + "keyboard_shortcuts.direct": "เพื่อเปิดคอลัมน์การกล่าวถึงแบบส่วนตัว", "keyboard_shortcuts.down": "ย้ายลงในรายการ", "keyboard_shortcuts.enter": "เปิดโพสต์", "keyboard_shortcuts.favourite": "ชื่นชอบโพสต์", @@ -376,7 +376,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": "แก้ไขโปรไฟล์", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "สแปม", "report_notification.categories.violation": "การละเมิดกฎ", "report_notification.open": "รายงานที่เปิด", + "search.no_recent_searches": "No recent searches", "search.placeholder": "ค้นหา", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "ค้นหาหรือวาง URL", - "search_popout.search_format": "รูปแบบการค้นหาขั้นสูง", - "search_popout.tips.full_text": "ข้อความแบบง่ายส่งคืนโพสต์ที่คุณได้เขียน ชื่นชอบ ดัน หรือได้รับการกล่าวถึง เช่นเดียวกับชื่อผู้ใช้, ชื่อที่แสดง และแฮชแท็กที่ตรงกัน", - "search_popout.tips.hashtag": "แฮชแท็ก", - "search_popout.tips.status": "โพสต์", - "search_popout.tips.text": "ข้อความแบบง่ายส่งคืนชื่อที่แสดง, ชื่อผู้ใช้ และแฮชแท็กที่ตรงกัน", - "search_popout.tips.user": "ผู้ใช้", - "search_results.accounts": "ผู้คน", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "ทั้งหมด", "search_results.hashtags": "แฮชแท็ก", "search_results.nothing_found": "ไม่พบสิ่งใดสำหรับคำค้นหาเหล่านี้", @@ -557,8 +559,8 @@ "status.copy": "คัดลอกลิงก์ไปยังโพสต์", "status.delete": "ลบ", "status.detailed_status": "มุมมองการสนทนาโดยละเอียด", - "status.direct": "ส่งข้อความโดยตรงถึง @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "กล่าวถึง @{name} แบบส่วนตัว", + "status.direct_indicator": "การกล่าวถึงแบบส่วนตัว", "status.edit": "แก้ไข", "status.edited": "แก้ไขเมื่อ {date}", "status.edited_x_times": "แก้ไข {count, plural, other {{count} ครั้ง}}", @@ -632,7 +634,7 @@ "upload_error.poll": "ไม่อนุญาตการอัปโหลดไฟล์โดยมีการสำรวจความคิดเห็น", "upload_form.audio_description": "อธิบายสำหรับผู้ที่สูญเสียการได้ยิน", "upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น", - "upload_form.description_missing": "ไม่มีการเพิ่มคำอธิบาย", + "upload_form.description_missing": "ไม่ได้เพิ่มคำอธิบาย", "upload_form.edit": "แก้ไข", "upload_form.thumbnail": "เปลี่ยนภาพขนาดย่อ", "upload_form.undo": "ลบ", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 7e406f5f8c..b3cbed0249 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -20,7 +20,7 @@ "account.blocked": "Engellendi", "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın", "account.cancel_follow_request": "Takip isteğini geri çek", - "account.direct": "@{name} adlı kişiye mesaj gönder", + "account.direct": "@{name} kullanıcısına özelden değin", "account.disable_notifications": "@{name} kişisinin gönderi bildirimlerini kapat", "account.domain_blocked": "Alan adı engellendi", "account.edit_profile": "Profili düzenle", @@ -102,7 +102,7 @@ "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İşaretleri", "column.community": "Yerel zaman tüneli", - "column.direct": "Doğrudan iletiler", + "column.direct": "Özel değinmeler", "column.directory": "Profillere göz at", "column.domain_blocks": "Engellenen alan adları", "column.favourites": "Favoriler", @@ -216,7 +216,7 @@ "empty_column.blocks": "Henüz herhangi bir kullanıcıyı engellemedin.", "empty_column.bookmarked_statuses": "Henüz yer imine eklediğin toot yok. Bir tanesi yer imine eklendiğinde burada görünür.", "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!", - "empty_column.direct": "Henüz doğrudan iletiniz yok. Bir tane gönderdiğinizde veya aldığınız burada listelenecekler.", + "empty_column.direct": "Henüz doğrudan değinmeniz yok. Bir tane gönderdiğinizde veya aldığınızda burada listelenecekler.", "empty_column.domain_blocks": "Henüz engellenmiş bir alan adı yok.", "empty_column.explore_statuses": "Şu an öne çıkan birşey yok. Daha sonra tekrar bakın!", "empty_column.favourited_statuses": "Favori tootun yok. Favori tootun olduğunda burada görünür.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "sütunlardan birindeki duruma odaklanmak için", "keyboard_shortcuts.compose": "yazma alanına odaklanmak için", "keyboard_shortcuts.description": "Açıklama", - "keyboard_shortcuts.direct": "doğrudan iletiler sütununu açmak için", + "keyboard_shortcuts.direct": "özel değinmeler sütununu açmak için", "keyboard_shortcuts.down": "listede aşağıya inmek için", "keyboard_shortcuts.enter": "gönderiyi aç", "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Yer İşaretleri", "navigation_bar.community_timeline": "Yerel Zaman Tüneli", "navigation_bar.compose": "Yeni gönderi yaz", - "navigation_bar.direct": "Doğrudan iletiler", + "navigation_bar.direct": "Özel değinmeler", "navigation_bar.discover": "Keşfet", "navigation_bar.domain_blocks": "Engellenen alan adları", "navigation_bar.edit_profile": "Profili düzenle", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "İstenmeyen", "report_notification.categories.violation": "Kural ihlali", "report_notification.open": "Bildirim aç", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Ara", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Ara veya URL gir", - "search_popout.search_format": "Gelişmiş arama biçimi", - "search_popout.tips.full_text": "Basit metin yazdığınız, beğendiğiniz, teşvik ettiğiniz veya söz edilen gönderilerin yanı sıra kullanıcı adlarını, görünen adları ve etiketleri eşleşen gönderileri de döndürür.", - "search_popout.tips.hashtag": "etiket", - "search_popout.tips.status": "gönderi", - "search_popout.tips.text": "Basit metin, eşleşen görünen adları, kullanıcı adlarını ve hashtag'leri döndürür", - "search_popout.tips.user": "kullanıcı", - "search_results.accounts": "İnsanlar", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiller", "search_results.all": "Tümü", "search_results.hashtags": "Etiketler", "search_results.nothing_found": "Bu arama seçenekleriyle bir sonuç bulunamadı", @@ -557,8 +559,8 @@ "status.copy": "Bağlantı durumunu kopyala", "status.delete": "Sil", "status.detailed_status": "Ayrıntılı sohbet görünümü", - "status.direct": "@{name} adlı kişiye direkt mesaj", - "status.direct_indicator": "Private mention", + "status.direct": "@{name} kullanıcısına özelden değin", + "status.direct_indicator": "Özel değinme", "status.edit": "Düzenle", "status.edited": "{date} tarihinde düzenlenmiş", "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 8307a455c3..64b0840a58 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -20,7 +20,7 @@ "account.blocked": "Блокланган", "account.browse_more_on_origin_server": "Оригиналь профилендә күбрәк карау", "account.cancel_follow_request": "Киләсе сорау", - "account.direct": "@{name} кулланучыга язу", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", "account.domain_blocked": "Домен блокланган", "account.edit_profile": "Профильне үзгәртү", @@ -102,7 +102,7 @@ "column.blocks": "Блокланган кулланучылар", "column.bookmarks": "Кыстыргычлар", "column.community": "Локаль вакыт сызыгы", - "column.direct": "Шәхси хәбәрләр", + "column.direct": "Private mentions", "column.directory": "Профильләрне карау", "column.domain_blocks": "Блокланган доменнар", "column.favourites": "Сайланма", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Тасвирлама", - "keyboard_shortcuts.direct": "туры хәбәрләр баганасын ачу өчен", + "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Кыстыргычлар", "navigation_bar.community_timeline": "Локаль вакыт сызыгы", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Профильны үзгәртү", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Эзләү", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "кулланучы", - "search_results.accounts": "Кешеләр", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Бетерү", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Үзгәртү", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index ee4d3a7f98..d330c136ca 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -20,7 +20,7 @@ "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "Direct message @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", @@ -102,7 +102,7 @@ "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "Favourites", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "Edit profile", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 9cc83b39d4..9cbf8ad6b5 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -20,7 +20,7 @@ "account.blocked": "Заблоковані", "account.browse_more_on_origin_server": "Переглянути більше в оригінальному профілі", "account.cancel_follow_request": "Відкликати запит на стеження", - "account.direct": "Надіслати пряме повідомлення @{name}", + "account.direct": "Особиста згадка @{name}", "account.disable_notifications": "Не повідомляти мене про дописи @{name}", "account.domain_blocked": "Домен заблоковано", "account.edit_profile": "Редагувати профіль", @@ -102,7 +102,7 @@ "column.blocks": "Заблоковані користувачі", "column.bookmarks": "Закладки", "column.community": "Локальна стрічка", - "column.direct": "Особисті повідомлення", + "column.direct": "Особисті згадки", "column.directory": "Переглянути профілі", "column.domain_blocks": "Заблоковані домени", "column.favourites": "Вподобане", @@ -216,7 +216,7 @@ "empty_column.blocks": "Ви ще не заблокували жодного користувача.", "empty_column.bookmarked_statuses": "У вас ще немає дописів у закладках. Коли ви щось додасте до закладок, воно з'явиться тут.", "empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!", - "empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви щось отримаєте чи надішлете, воно з'явиться тут.", + "empty_column.direct": "У вас ще немає жодних особистих згадок. Коли ви надсилаєте чи отримуєте повідомлення, воно з'явиться тут.", "empty_column.domain_blocks": "Тут поки немає прихованих доменів.", "empty_column.explore_statuses": "Нема нічого популярного. Подивіться пізніше!", "empty_column.favourited_statuses": "У вас ще немає вподобаних дописів. Коли ви щось вподобаєте, воно з'явиться тут.", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "Фокусуватися на одній з колонок", "keyboard_shortcuts.compose": "Фокусуватися на полі введення", "keyboard_shortcuts.description": "Опис", - "keyboard_shortcuts.direct": "щоб відкрити колонку прямих повідомлень", + "keyboard_shortcuts.direct": "щоб відкрити стовпець особистих згадок", "keyboard_shortcuts.down": "Рухатися вниз стрічкою", "keyboard_shortcuts.enter": "Відкрити допис", "keyboard_shortcuts.favourite": "Вподобати допис", @@ -376,7 +376,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": "Редагувати профіль", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Порушення правил", "report_notification.open": "Відкрити скаргу", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Пошук", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Введіть адресу або пошуковий запит", - "search_popout.search_format": "Розширений формат пошуку", - "search_popout.tips.full_text": "Пошук за текстом знаходить дописи, які ви написали, вподобали, поширили, або в яких вас згадували. Також він знаходить імена користувачів, реальні імена та гештеґи.", - "search_popout.tips.hashtag": "хештеґ", - "search_popout.tips.status": "допис", - "search_popout.tips.text": "Пошук за текстом знаходить імена користувачів, реальні імена та хештеґи", - "search_popout.tips.user": "користувач", - "search_results.accounts": "Люди", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Профілі", "search_results.all": "Усі", "search_results.hashtags": "Хештеґи", "search_results.nothing_found": "Нічого не вдалося знайти за цими пошуковими термінами", @@ -557,8 +559,8 @@ "status.copy": "Копіювати посилання на допис", "status.delete": "Видалити", "status.detailed_status": "Детальний вигляд бесіди", - "status.direct": "Пряме повідомлення до @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "Особиста згадка @{name}", + "status.direct_indicator": "Особиста згадка", "status.edit": "Редагувати", "status.edited": "Відредаговано {date}", "status.edited_x_times": "Відредаговано {count, plural, one {{count} раз} few {{count} рази} many {{counter} разів} other {{counter} разів}}", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index ad21ef963b..ffb6e1068b 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -20,7 +20,7 @@ "account.blocked": "مسدود کردہ", "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "راست پیغام @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں", "account.domain_blocked": "پوشیدہ ڈومین", "account.edit_profile": "مشخص ترمیم کریں", @@ -102,7 +102,7 @@ "column.blocks": "مسدود صارفین", "column.bookmarks": "بُک مارکس", "column.community": "مقامی زمانی جدول", - "column.direct": "براہ راست پیغامات", + "column.direct": "Private mentions", "column.directory": "مشخصات کا مطالعہ کریں", "column.domain_blocks": "پوشیدہ ڈومین", "column.favourites": "پسندیدہ", @@ -216,7 +216,7 @@ "empty_column.blocks": "آپ نے ابھی کسی صارف کو مسدود نہیں کیا ہے.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "مقامی جدول خالی ہے. کچھ تحریر کریں تاکہ بات آگے بڑھے!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "ابھی تک کوئی چھپا ہوا ڈومین نہیں ہے.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "آپ کا کوئی پسندیدہ ٹوٹ نہیں ہے. جب آپ پسند کریں گے، یہاں نظر آئےگا.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "بُک مارکس", "navigation_bar.community_timeline": "مقامی ٹائم لائن", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "دریافت کریں", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "پروفائل میں ترمیم کریں", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 9c8675208c..e7502bf239 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -20,7 +20,7 @@ "account.blocked": "Bloklangan", "account.browse_more_on_origin_server": "Asl profilda ko'proq ko'rish", "account.cancel_follow_request": "Kuzatuv so‘rovini bekor qilish", - "account.direct": "To'g'ridan-to'g'ri xabar @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "@{name} post qo‘yganida menga xabar berishni to‘xtating", "account.domain_blocked": "Domen bloklangan", "account.edit_profile": "Profilni tahrirlash", @@ -102,7 +102,7 @@ "column.blocks": "Bloklangan foydalanuvchilar", "column.bookmarks": "Xatcho‘plar", "column.community": "Mahalliy", - "column.direct": "To'g'ridan-to'g'ri xabarlar", + "column.direct": "Private mentions", "column.directory": "Profillarni ko'rish", "column.domain_blocks": "Bloklangan domenlar", "column.favourites": "Sevimlilar", @@ -216,7 +216,7 @@ "empty_column.blocks": "Siz hali hech qanday foydalanuvchini bloklamagansiz.", "empty_column.bookmarked_statuses": "Sizda hali xatcho‘p qo‘yilgan postlar yo‘q. Biriga xatcho‘p qo‘ysangiz, u shu yerda ko‘rinadi.", "empty_column.community": "Mahalliy vaqt jadvali boʻsh. To'pni aylantirish uchun hammaga ochiq narsa yozing!", - "empty_column.direct": "Sizda hali hech qanday to‘g‘ridan-to‘g‘ri xabar yo‘q. Siz yuborganingizda yoki qabul qilganingizda, u shu yerda ko'rinadi.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "Hali bloklangan domenlar mavjud emas.", "empty_column.explore_statuses": "Hozir hech narsa trendda emas. Keyinroq tekshiring!", "empty_column.favourited_statuses": "Sizda hali sevimli postlar yoʻq. Sizga yoqqanida, u shu yerda chiqadi.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Xatcho‘plar", "navigation_bar.community_timeline": "Mahalliy", "navigation_bar.compose": "Yangi post yozing", - "navigation_bar.direct": "To'g'ridan-to'g'ri xabarlar", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Kashf qilish", "navigation_bar.domain_blocks": "Bloklangan domenlar", "navigation_bar.edit_profile": "Profilni tahrirlash", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Search", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "Delete", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index ad7518d989..7096268eaf 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "mở các mục", "keyboard_shortcuts.compose": "mở khung soạn tút", "keyboard_shortcuts.description": "Mô tả", - "keyboard_shortcuts.direct": "để mở cột tin nhắn", + "keyboard_shortcuts.direct": "mở mục nhắn riêng", "keyboard_shortcuts.down": "di chuyển xuống dưới danh sách", "keyboard_shortcuts.enter": "viết tút mới", "keyboard_shortcuts.favourite": "thích", @@ -522,14 +522,16 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Vi phạm nội quy", "report_notification.open": "Mở báo cáo", + "search.no_recent_searches": "No recent searches", "search.placeholder": "Tìm kiếm", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Tìm kiếm hoặc nhập URL", - "search_popout.search_format": "Gợi ý", - "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, đăng lại hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm tên người dùng, biệt danh và hashtag.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "tút", - "search_popout.tips.text": "Nội dung trả về là tên người dùng, biệt danh và hashtag", - "search_popout.tips.user": "mọi người", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", "search_results.accounts": "Mọi người", "search_results.all": "Toàn bộ", "search_results.hashtags": "Hashtags", @@ -558,7 +560,7 @@ "status.delete": "Xóa", "status.detailed_status": "Xem chi tiết thêm", "status.direct": "Nhắn riêng @{name}", - "status.direct_indicator": "Private mention", + "status.direct_indicator": "Nhắn riêng", "status.edit": "Sửa", "status.edited": "Đã sửa {date}", "status.edited_x_times": "Đã sửa {count, plural, other {{count} lần}}", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 700a6d6abc..f02d1a15de 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -20,7 +20,7 @@ "account.blocked": "ⵉⵜⵜⵓⴳⴷⵍ", "account.browse_more_on_origin_server": "ⵙⵜⴰⵔⴰ ⵓⴳⴳⴰⵔ ⴳ ⵉⴼⵔⵙ ⴰⵏⵚⵍⵉ", "account.cancel_follow_request": "Withdraw follow request", - "account.direct": "ⵜⵓⵣⵉⵏⵜ ⵜⵓⵙⵔⵉⴷⵜ @{name}", + "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ⵉⵜⵜⵓⴳⴷⵍ ⵉⴳⵔ", "account.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ", @@ -102,7 +102,7 @@ "column.blocks": "ⵉⵏⵙⵙⵎⵔⵙⵏ ⵜⵜⵓⴳⴷⵍⵏⵉⵏ", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", - "column.direct": "Direct messages", + "column.direct": "Private mentions", "column.directory": "Browse profiles", "column.domain_blocks": "Blocked domains", "column.favourites": "ⵜⵓⴼⵓⵜⵉⵏ", @@ -216,7 +216,7 @@ "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", @@ -376,7 +376,7 @@ "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Rule violation", "report_notification.open": "Open report", + "search.no_recent_searches": "No recent searches", "search.placeholder": "ⵔⵣⵓ", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "Search or paste URL", - "search_popout.search_format": "Advanced search format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "ⵎⵉⴷⴷⵏ", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "All", "search_results.hashtags": "ⵀⴰⵛⵟⴰⴳ", "search_results.nothing_found": "Could not find anything for these search terms", @@ -557,7 +559,7 @@ "status.copy": "Copy link to status", "status.delete": "ⴽⴽⵙ", "status.detailed_status": "Detailed conversation view", - "status.direct": "ⵜⵓⵣⵉⵏⵜ ⵜⵓⵙⵔⵉⴷⵜ ⵉ @{name}", + "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", "status.edited": "Edited {date}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 75554c9ea2..3b6aa203f8 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -20,7 +20,7 @@ "account.blocked": "已屏蔽", "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情", "account.cancel_follow_request": "撤回关注请求", - "account.direct": "发送私信给 @{name}", + "account.direct": "私下提及 @{name}", "account.disable_notifications": "当 @{name} 发嘟时不要通知我", "account.domain_blocked": "域名已屏蔽", "account.edit_profile": "修改个人资料", @@ -102,7 +102,7 @@ "column.blocks": "屏蔽的用户", "column.bookmarks": "书签", "column.community": "本站时间轴", - "column.direct": "私信", + "column.direct": "私下提及", "column.directory": "浏览用户资料", "column.domain_blocks": "已屏蔽的域名", "column.favourites": "喜欢", @@ -216,7 +216,7 @@ "empty_column.blocks": "你还未屏蔽任何用户。", "empty_column.bookmarked_statuses": "你还没有给任何嘟文添加过书签。在你添加书签后,嘟文就会显示在这里。", "empty_column.community": "本站时间轴暂时没有内容,快写点什么让它动起来吧!", - "empty_column.direct": "你还未使用过私信。当你发出或者收到私信时,它将显示在此。", + "empty_column.direct": "你还未使用过私下提及。当你发出或者收到私下提及时,它将显示在此。", "empty_column.domain_blocks": "暂且没有被屏蔽的站点。", "empty_column.explore_statuses": "目前没有热门话题,稍后再来看看吧!", "empty_column.favourited_statuses": "你还没有喜欢过任何嘟文。喜欢过的嘟文会显示在这里。", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "选择某栏", "keyboard_shortcuts.compose": "选择输入框", "keyboard_shortcuts.description": "说明", - "keyboard_shortcuts.direct": "打开私信栏", + "keyboard_shortcuts.direct": "打开私下提及栏", "keyboard_shortcuts.down": "在列表中让光标下移", "keyboard_shortcuts.enter": "展开嘟文", "keyboard_shortcuts.favourite": "喜欢嘟文", @@ -376,7 +376,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": "修改个人资料", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "骚扰", "report_notification.categories.violation": "违反规则", "report_notification.open": "打开举报", + "search.no_recent_searches": "No recent searches", "search.placeholder": "搜索", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "搜索或输入链接", - "search_popout.search_format": "高级搜索格式", - "search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的帖子,以及其他用户公开的用户名、昵称和话题标签。", - "search_popout.tips.hashtag": "话题标签", - "search_popout.tips.status": "嘟文", - "search_popout.tips.text": "输入关键词检索昵称、用户名和话题标签", - "search_popout.tips.user": "用户", - "search_results.accounts": "用户", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "个人资料", "search_results.all": "全部", "search_results.hashtags": "话题标签", "search_results.nothing_found": "无法找到符合这些搜索词的任何内容", @@ -557,8 +559,8 @@ "status.copy": "复制嘟文链接", "status.delete": "删除", "status.detailed_status": "详细的对话视图", - "status.direct": "私信 @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "私下提及 @{name}", + "status.direct_indicator": "私下提及", "status.edit": "编辑", "status.edited": "编辑于 {date}", "status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index db272a35a2..d130662fcf 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -20,7 +20,7 @@ "account.blocked": "已封鎖", "account.browse_more_on_origin_server": "前往原始的個人檔案頁瀏覽更多", "account.cancel_follow_request": "撤回追蹤請求", - "account.direct": "私訊 @{name}", + "account.direct": "私下提及 @{name}", "account.disable_notifications": "當 @{name} 發文時不要再通知我", "account.domain_blocked": "網域被封鎖", "account.edit_profile": "修改個人檔案", @@ -102,7 +102,7 @@ "column.blocks": "封鎖名單", "column.bookmarks": "書籤", "column.community": "本站時間軸", - "column.direct": "私訊", + "column.direct": "私人提及", "column.directory": "瀏覽個人資料", "column.domain_blocks": "封鎖的服務站", "column.favourites": "最愛的文章", @@ -162,8 +162,8 @@ "confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?", "confirmations.domain_block.confirm": "封鎖整個網站", "confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。", - "confirmations.edit.confirm": "Edit", - "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.confirm": "編輯", + "confirmations.edit.message": "現在編輯將會覆蓋你目前正在撰寫的訊息。你確定要繼續嗎?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "確定要登出嗎?", "confirmations.mute.confirm": "靜音", @@ -216,7 +216,7 @@ "empty_column.blocks": "你還沒有封鎖任何使用者。", "empty_column.bookmarked_statuses": "你還沒建立任何書籤。這裡將會顯示你建立的書籤。", "empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!", - "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將在此顯示。", + "empty_column.direct": "你還沒有私人提及。當你發送或收到時,它將顯示在這裏。", "empty_column.domain_blocks": "尚未隱藏任何網域。", "empty_column.explore_statuses": "目前沒有熱門話題,請稍候再回來看看!", "empty_column.favourited_statuses": "你還沒收藏任何文章。這裡將會顯示你收藏的嘟文。", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "把標示移動到其中一列", "keyboard_shortcuts.compose": "把標示移動到文字輸入區", "keyboard_shortcuts.description": "描述", - "keyboard_shortcuts.direct": "開啟私訊欄", + "keyboard_shortcuts.direct": "以打開私人提及欄", "keyboard_shortcuts.down": "在列表往下移動", "keyboard_shortcuts.enter": "打開文章", "keyboard_shortcuts.favourite": "收藏文章", @@ -376,7 +376,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": "修改個人資料", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "垃圾訊息", "report_notification.categories.violation": "違反規則", "report_notification.open": "打開檢舉報告", + "search.no_recent_searches": "No recent searches", "search.placeholder": "搜尋", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "搜尋或貼上網址", - "search_popout.search_format": "高級搜索格式", - "search_popout.tips.full_text": "輸入簡單的文字,搜索由你發放、收藏、轉推和提及你的文章,以及符合的使用者名稱,顯示名稱和標籤。", - "search_popout.tips.hashtag": "標籤", - "search_popout.tips.status": "文章", - "search_popout.tips.text": "輸入簡單的文字,搜索符合的顯示名稱、使用者名稱和標籤", - "search_popout.tips.user": "使用者", - "search_results.accounts": "使用者", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "Profiles", "search_results.all": "全部", "search_results.hashtags": "標籤", "search_results.nothing_found": "找不到與搜尋字詞相關的內容", @@ -557,8 +559,8 @@ "status.copy": "將連結複製到文章中", "status.delete": "刪除", "status.detailed_status": "詳細對話內容", - "status.direct": "私訊 @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "私下提及 @{name}", + "status.direct_indicator": "私人提及", "status.edit": "編輯", "status.edited": "編輯於 {date}", "status.edited_x_times": "Edited {count, plural, one {{count} 次} other {{count} 次}}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 1a73ed6f22..5245c59d8d 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -216,7 +216,7 @@ "empty_column.blocks": "您尚未封鎖任何使用者。", "empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。", "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!", - "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。", + "empty_column.direct": "您還沒有收到任何私訊。當您私訊別人或收到私訊時,它將於此顯示。", "empty_column.domain_blocks": "尚未封鎖任何網域。", "empty_column.explore_statuses": "目前沒有熱門討論,請稍候再回來看看!", "empty_column.favourited_statuses": "您還沒有加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。", @@ -314,7 +314,7 @@ "keyboard_shortcuts.column": "將游標移至其中一欄", "keyboard_shortcuts.compose": "將游標移至文字撰寫區塊", "keyboard_shortcuts.description": "說明", - "keyboard_shortcuts.direct": "開啟私訊欄", + "keyboard_shortcuts.direct": "開啟私訊對話欄", "keyboard_shortcuts.down": "往下移動", "keyboard_shortcuts.enter": "檢視嘟文", "keyboard_shortcuts.favourite": "加到最愛", @@ -422,7 +422,7 @@ "notifications.column_settings.poll": "投票結果:", "notifications.column_settings.push": "推播通知", "notifications.column_settings.reblog": "轉嘟:", - "notifications.column_settings.show": "在欄位中顯示", + "notifications.column_settings.show": "於欄位中顯示", "notifications.column_settings.sound": "播放聲音", "notifications.column_settings.status": "新嘟文:", "notifications.column_settings.unread_notifications.category": "未讀通知", @@ -522,15 +522,17 @@ "report_notification.categories.spam": "垃圾訊息", "report_notification.categories.violation": "違反規則", "report_notification.open": "開啟檢舉報告", + "search.no_recent_searches": "No recent searches", "search.placeholder": "搜尋", + "search.quick_action.account_search": "Profiles matching {x}", + "search.quick_action.go_to_account": "Go to profile {x}", + "search.quick_action.go_to_hashtag": "Go to hashtag {x}", + "search.quick_action.open_url": "Open URL in Mastodon", + "search.quick_action.status_search": "Posts matching {x}", "search.search_or_paste": "搜尋或輸入網址", - "search_popout.search_format": "進階搜尋格式", - "search_popout.tips.full_text": "輸入簡單的文字,搜尋由您撰寫、最愛、轉嘟或提您的嘟文,以及與關鍵詞匹配的使用者名稱、帳號顯示名稱和主題標籤。", - "search_popout.tips.hashtag": "主題標籤", - "search_popout.tips.status": "嘟文", - "search_popout.tips.text": "輸入簡單的文字,搜尋符合的使用者名稱,帳號名稱與標籤", - "search_popout.tips.user": "使用者", - "search_results.accounts": "使用者", + "search_popout.quick_actions": "Quick actions", + "search_popout.recent": "Recent searches", + "search_results.accounts": "個人檔案", "search_results.all": "全部", "search_results.hashtags": "主題標籤", "search_results.nothing_found": "無法找到符合搜尋條件之結果", @@ -557,8 +559,8 @@ "status.copy": "複製嘟文連結", "status.delete": "刪除", "status.detailed_status": "詳細的對話內容", - "status.direct": "發送私訊給 @{name}", - "status.direct_indicator": "Private mention", + "status.direct": "私訊 @{name}", + "status.direct_indicator": "私訊", "status.edit": "編輯", "status.edited": "編輯於 {date}", "status.edited_x_times": "已編輯 {count, plural, one {{count} 次} other {{count} 次}}", diff --git a/app/javascript/mastodon/uuid.ts b/app/javascript/mastodon/uuid.ts index 655bcf78c6..01b57ee996 100644 --- a/app/javascript/mastodon/uuid.ts +++ b/app/javascript/mastodon/uuid.ts @@ -1,3 +1,8 @@ export default function uuid(a?: string): string { - return a ? ((a as any as number) ^ Math.random() * 16 >> (a as any as number) / 4).toString(16) : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); + return a + ? ( + (a as any as number) ^ + ((Math.random() * 16) >> ((a as any as number) / 4)) + ).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); } diff --git a/app/javascript/types/resources.ts b/app/javascript/types/resources.ts index efbb1faa76..372ff7523b 100644 --- a/app/javascript/types/resources.ts +++ b/app/javascript/types/resources.ts @@ -9,5 +9,5 @@ type AccountValues = { avatar: string; avatar_static: string; [key: string]: any; -} -export type Account = MastodonMap +}; +export type Account = MastodonMap; diff --git a/config/locales/activerecord.hu.yml b/config/locales/activerecord.hu.yml index 67bad4cb45..003afa8177 100644 --- a/config/locales/activerecord.hu.yml +++ b/config/locales/activerecord.hu.yml @@ -40,7 +40,7 @@ hu: user: attributes: email: - blocked: egy letiltott e-mail szolgáltatót használ + blocked: egy letiltott email szolgáltatót használ unreachable: úgy tűnik, hogy nem létezik role_id: elevated: nem lehet magasabb, mint a jelenlegi szereped diff --git a/config/locales/de.yml b/config/locales/de.yml index e8f6c86db3..91e4e84ae4 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1696,6 +1696,7 @@ de: seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. signed_in_as: 'Angemeldet als:' verification: + explanation_html: "Du kannst bestätigen, dass die Links in deinen Profil-Metadaten dir gehören. Dafür muss die verlinkte Website einen Link zurück auf dein Mastodon-Profil enthalten. \nNach dem Hinzufügen des Links musst du möglicherweise hierhin zurückkommen und dein Profil erneut speichern, um dass die Verifikation wirksam wird. Der Link zurück muss ein rel=\"me\"-Attribut enthalten. Der Linktext ist dabei egal. Hier ist ein Beispiel:" verification: Verifizierung webauthn_credentials: add: Sicherheitsschlüssel hinzufügen diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml index dd137f14cd..3a37ec29e5 100644 --- a/config/locales/devise.hu.yml +++ b/config/locales/devise.hu.yml @@ -7,7 +7,7 @@ hu: send_paranoid_instructions: Ha az e-mail címed már szerepel az adatbázisunkban, néhány percen belül kapsz egy levelet az e-mail cím megerősítésére vonatkozó utasításokkal. Kérjük, ellenőrizd a spam mappád, ha nem látod az e-mailt. failure: already_authenticated: Már bejelentkeztél. - inactive: A fiók még nincs aktiválva. + inactive: Fiókodat még nem aktiválták. invalid: Helytelen %{authentication_keys} vagy jelszó. last_attempt: Már csak egy próbálkozásod maradt, mielőtt a fiókodat zároljuk. locked: A fiókodat zároltuk. @@ -88,9 +88,9 @@ hu: updated_not_active: A jelszó sikeresen megváltoztatásra került. registrations: destroyed: Viszontásátásra! A fiók sikeresen törlésre került. Reméljük hamarosan visszatér. - signed_up: Üdvözlet! A regisztráció sikeres volt. - signed_up_but_inactive: A regisztráció sikeres volt. Ennek ellenére nem lehet belépni, mert a fiók még nem lett aktiválva. - signed_up_but_locked: A regisztráció sikeres volt. Ennek ellenére nem lehet belépni, mert a fiók lezárásra került. + signed_up: Üdvözlünk! Sikeresen regisztráltál. + signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókodat még nem aktiválták. + signed_up_but_locked: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod le van zárva. signed_up_but_pending: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Ha kattintasz a hivatkozásra, átnézzük a kérelmedet. Értesítünk, ha jóváhagytuk. signed_up_but_unconfirmed: Egy megerősítési hivatkozással ellátott üzenetet kiküldtünk az e-mail címedre. Kérjük használd a hivatkozást a fiókod aktiválásához. Ellenőrizd a spam mappádat, ha nem kaptad meg ezt a levelet. update_needs_confirmation: A fiókodat sikeresen frissítésre került, de szükség van az email cím megerősítésére. Ellenőrizzük az emailt és kövessük a benne levő megerősítési hivatkozást az email cím megerősítéséhez. Ellenőrizzük a levélszemét mappát, ha nemérkezett volna meg ez az email. diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index e8d9d8e93f..dc9308e5f8 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -129,7 +129,7 @@ es: crypto: Cifrado de extremo a extremo favourites: Favoritos filters: Filtros - follow: Seguimientos, silenciad@s y bloqueos + follow: Seguimientos, silenciados y bloqueos follows: Seguidos lists: Listas media: Adjuntos multimedia diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index 51f42405a6..1d75beef5a 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -5,7 +5,7 @@ hu: doorkeeper/application: name: Alkalmazás neve redirect_uri: Átirányító URI - scopes: Hatáskör + scopes: Hatókör website: Az alkalmazás weboldala errors: models: @@ -19,65 +19,65 @@ hu: doorkeeper: applications: buttons: - authorize: Engedélyezés + authorize: Hitelesítés cancel: Mégsem destroy: Törlés edit: Szerkesztés submit: Elküldés confirmations: - destroy: Biztos vagy benne? + destroy: Biztos így legyen? edit: title: Alkalmazás szerkesztése form: - error: Hoppá! Ellenőrizd az űrlapot az esetleges hibák miatt + error: Hoppá! Ellenőrizük az űrlapot az esetleges hibák miatt help: - native_redirect_uri: Használj %{native_redirect_uri} a helyi tesztekhez + native_redirect_uri: "%{native_redirect_uri} használata a helyi tesztekhez" redirect_uri: Egy sor URI-nként - scopes: A hatásköröket szóközzel válaszd el. Hagyd üresen az alapértelmezett hatáskörökhöz. + scopes: A hatóköröket szóközzel válasszuk el. Hagyjuk üresen az alapértelmezett hatókörökhöz. index: application: Alkalmazás callback_url: Visszahívási URL delete: Eltávolítás - empty: Nincsenek alkalmazásaid. + empty: Nincsenek saját alkalmazások. name: Név new: Új alkalmazás - scopes: Hatáskör - show: Mutat - title: Alkalmazásaid + scopes: Hatókörök + show: Megjelenítés + title: Saját alkalmazások new: title: Új alkalmazás show: actions: Műveletek - application_id: Alkalmazás azonosító - callback_urls: Callback URL-ek + application_id: Ügyfél kulcs + callback_urls: Visszahívási URL-ek scopes: Hatáskörök - secret: Titok + secret: Ügyfél titkos kulcs title: 'Alkalmazás: %{name}' authorizations: buttons: - authorize: Engedélyezés + authorize: Hitelesítés deny: Tiltás error: title: Hiba történt new: - prompt_html: "%{client_name} szeretné elérni a fiókodat. Ez egy harmadik féltől származó alkalmazás. Ha nem bízol meg benne, ne addj felhatalmazást neki." - review_permissions: Engedélyek áttekintése - title: Engedély szükséges + prompt_html: "%{client_name} szeretné elérni a fiókomat. Ez egy harmadik féltől származó alkalmazás. Ha nem bízunk meg benne, ne adjunk hitlesítést." + review_permissions: Jogosultságok áttekintése + title: Hitelesítés szükséges show: title: Másold le ezt az engedélyező kódot és írd be az alkalmazásba. authorized_applications: buttons: revoke: Visszavonás confirmations: - revoke: Biztos vagy benne? + revoke: Biztos így legyen? index: - authorized_at: 'Felhatalmazva ekkor: %{date}' + authorized_at: 'Hitelesítés: %{date}' description_html: Ezek olyan alkalmazások, melyek API-n keresztül érhetik el a fiókodat. Ha vannak itt olyanok, melyeket nem ismersz fel, vagy valamelyik alkalmazás rosszul működik, visszavonhatod az engedélyét. - last_used_at: 'Utoljára ekkor használva: %{date}' + last_used_at: 'Utolsó használat: %{date}' never_used: Soha sem volt használva - scopes: Engedélyek + scopes: Jogosultságok superapp: Belső - title: Engedélyezett alkalmazásaid + title: Hitelesített saját alkalmazások errors: messages: access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést. @@ -92,10 +92,10 @@ hu: invalid_resource_owner: A biztosított erőforrás tulajdonosának hitelesítő adatai nem valósak, vagy az erőforrás tulajdonosa nem található. invalid_scope: A kért nézet érvénytelen, ismeretlen, vagy hibás. invalid_token: - expired: Hozzáférési kulcs lejárt - revoked: Hozzáférési kulcsot visszavonták - unknown: Hozzáférési kulcs érvénytelen - resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan. + expired: A hozzáférési kulcs lejárt. + revoked: A hozzáférési kulcsot visszavonták. + unknown: A hozzáférési kulcs érvénytelen. + resource_owner_authenticator_not_configured: Az erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan. server_error: Az engedélyező kiszolgáló váratlan körülménybe ütközött, ami megakadályozta, hogy teljesítse a kérést. temporarily_unavailable: Az engedélyezési kiszolgáló jelenleg nem tudja kezelni a kérelmet a kiszolgáló ideiglenes túlterhelése vagy karbantartása miatt. unauthorized_client: A kliens nincs feljogosítva erre a kérésre. @@ -104,14 +104,14 @@ hu: flash: applications: create: - notice: Alkalmazás létrehozva. + notice: Az alkalmazás létrejött. destroy: - notice: Alkalmazás törölve. + notice: Az alkalmazás törlésre került. update: notice: Alkalmazás frissítve. authorized_applications: destroy: - notice: Alkalmazás visszavonva. + notice: Az alkalmazás visszavonásra került. grouped_scopes: access: read: Csak olvasási elérés @@ -122,7 +122,7 @@ hu: admin/accounts: Fiókok adminisztrációja admin/all: Minden adminisztratív funkció admin/reports: Bejelentések adminisztrációja - all: Teljes hozzáférés a Mastodon fiókodhoz + all: Teljes hozzáférés a Mastodon saját fiókhoz blocks: Letiltások bookmarks: Könyvjelzők conversations: Beszélgetések @@ -164,12 +164,12 @@ hu: admin:write:ip_blocks: moderáció végrehajtása IP-blokkokon admin:write:reports: moderációs műveletek végzése bejelentéseken crypto: végpontok közti titkosítás használata - follow: fiókok követése, letiltása, tiltás feloldása és követés abbahagyása + follow: fiókok kapcsolatok módosítása push: push értesítések fogadása - read: fiókod adatainak olvasása + read: saját fiók adatainak olvasása read:accounts: fiók adatainak megtekintése read:blocks: letiltások megtekintése - read:bookmarks: könyvjelzőid megtekintése + read:bookmarks: könyvjelzőik megtekintése read:favourites: kedvencek megtekintése read:filters: szűrök megtekintése read:follows: követések megtekintése @@ -177,10 +177,10 @@ hu: read:mutes: némítások megtekintése read:notifications: értesítések megtekintése read:reports: bejelentések megtekintése - read:search: nevedben keresés + read:search: keresés saját nevemben read:statuses: bejegyzések megtekintése write: fiókod adatainak megváltoztatása - write:accounts: profilod megváltoztatása + write:accounts: saját profil megváltoztatása write:blocks: fiókok és domainek letiltása write:bookmarks: bejegyzések könyvjelzőzése write:conversations: beszélgetések némítása és törlése diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index 030acd6392..ceb81f656c 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -82,7 +82,7 @@ th: messages: access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ credential_flow_not_configured: โฟลว์ข้อมูลประจำตัวรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_from_credentials - invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่มีการรับรองความถูกต้องไคลเอ็นต์ที่รวมอยู่ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ + invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่ได้รวมการรับรองความถูกต้องไคลเอ็นต์ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ invalid_grant: การให้การรับรองความถูกต้องที่ให้มาไม่ถูกต้อง หมดอายุแล้ว เพิกถอนแล้ว ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการรับรองความถูกต้อง หรือออกให้ไคลเอ็นต์อื่น invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง invalid_request: diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index a457509eea..3345f4b713 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -536,20 +536,474 @@ en-GB: add_new: Create rule created_msg: Successfully added new IP rule delete: Delete + expires_in: + '1209600': 2 weeks + '15778476': 6 months + '2629746': 1 month + '31556952': 1 year + '86400': 1 day + '94670856': 3 years + new: + title: Create new IP rule + no_ip_block_selected: No IP rules were changed as none were selected + title: IP rules + relationships: + title: "%{acct}'s relationships" + relays: + add_new: Add new relay + delete: Delete + description_html: A federation relay is an intermediary server that exchanges large volumes of public posts between servers that subscribe and publish to it. It can help small and medium servers discover content from the fediverse, which would otherwise require local users manually following other people on remote servers. + disable: Disable + disabled: Disabled + enable: Enable + enable_hint: Once enabled, your server will subscribe to all public posts from this relay, and will begin sending this server's public posts to it. + enabled: Enabled + inbox_url: Relay URL + pending: Waiting for relay's approval + save_and_enable: Save and enable + setup: Setup a relay connection + signatures_not_enabled: Relays may not work correctly while secure mode or limited federation mode is enabled + status: Status + title: Relays + report_notes: + created_msg: Report note successfully created! + destroyed_msg: Report note successfully deleted! + reports: + account: + notes: + one: "%{count} note" + other: "%{count} notes" + action_log: Audit log + action_taken_by: Action taken by + actions: + delete_description_html: The reported posts will be deleted and a strike will be recorded to help you escalate on future infractions by the same account. + 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 customise 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 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 + assigned: Assigned moderator + by_target_domain: Domain of reported account + cancel: Cancel + category: Category + category_description_html: The reason this account and/or content was reported will be cited in communication with the reported account + comment: + none: None + comment_description_html: 'To provide more information, %{name} wrote:' + confirm: Confirm + confirm_action: Confirm moderation action against @%{acct} + created_at: Reported + delete_and_resolve: Delete posts + forwarded: Forwarded + forwarded_to: Forwarded to %{domain} + mark_as_resolved: Mark as resolved + mark_as_sensitive: Mark as sensitive + mark_as_unresolved: Mark as unresolved + no_one_assigned: No one + notes: + create: Add note + create_and_resolve: Resolve with note + create_and_unresolve: Reopen with note + delete: Delete + placeholder: Describe what actions have been taken, or any other related updates... + title: Notes + notes_description_html: View and leave notes to other moderators and your future self + processed_msg: 'Report #%{id} successfully processed' + quick_actions_description_html: 'Take a quick action or scroll down to see reported content:' + remote_user_placeholder: the remote user from %{instance} + reopen: Reopen report + report: 'Report #%{id}' + reported_account: Reported account + reported_by: Reported by + resolved: Resolved + resolved_msg: Report successfully resolved! + skip_to_actions: Skip to actions + status: Status + statuses: Reported content + statuses_description_html: Offending content will be cited in communication with the reported account + summary: + action_preambles: + delete_html: 'You are about to remove some of @%{acct}''s posts. This will:' + mark_as_sensitive_html: 'You are about to mark some of @%{acct}''s posts as sensitive. This will:' + silence_html: 'You are about to limit @%{acct}''s account. This will:' + suspend_html: 'You are about to suspend @%{acct}''s account. This will:' + actions: + delete_html: Remove the offending posts + mark_as_sensitive_html: Mark the offending posts' media as sensitive + silence_html: Severely limit @%{acct}'s reach by making their profile and contents only visible to people already following them or manually looking it profile up + suspend_html: Suspend @%{acct}, making their profile and contents inaccessible and impossible to interact with + close_report: 'Mark report #%{id} as resolved' + close_reports_html: Mark all reports against @%{acct} as resolved + delete_data_html: Delete @%{acct}'s profile and contents 30 days from now unless they get unsuspended in the meantime + preview_preamble_html: "@%{acct} will receive a warning with the following contents:" + record_strike_html: Record a strike against @%{acct} to help you escalate on future violations from this account + send_email_html: Send @%{acct} a warning e-mail + warning_placeholder: Optional additional reasoning for the moderation action. + target_origin: Origin of reported account + title: Reports + unassign: Unassign + unknown_action_msg: 'Unknown action: %{action}' + unresolved: Unresolved + updated_at: Updated + view_profile: View profile roles: + add_new: Add role + assigned_users: + one: "%{count} user" + other: "%{count} users" categories: + administration: Administration devops: DevOps + invites: Invites + moderation: Moderation + special: Special + delete: Delete + description_html: With user roles, you can customize which functions and areas of Mastodon your users can access. + edit: Edit '%{name}' role + everyone: Default permissions + everyone_full_description_html: This is the base role affecting all users, even those without an assigned role. All other roles inherit permissions from it. + permissions_count: + one: "%{count} permission" + other: "%{count} permissions" privileges: + administrator: Administrator + administrator_description: Users with this permission will bypass every permission + delete_user_data: Delete User Data + delete_user_data_description: Allows users to delete other users' data without delay + invite_users: Invite Users + invite_users_description: Allows users to invite new people to the server + manage_announcements: Manage Announcements + manage_announcements_description: Allows users to manage announcements on the server + manage_appeals: Manage Appeals + manage_appeals_description: Allows users to review appeals against moderation actions + manage_blocks: Manage Blocks + manage_blocks_description: Allows users to block e-mail providers and IP addresses + manage_custom_emojis: Manage Custom Emojis + manage_custom_emojis_description: Allows users to manage custom emojis on the server + manage_federation: Manage Federation + manage_federation_description: Allows users to block or allow federation with other domains, and control deliverability + manage_invites: Manage Invites + manage_invites_description: Allows users to browse and deactivate invite links + manage_reports: Manage Reports + manage_reports_description: Allows users to review reports and perform moderation actions against them view_devops: DevOps + settings: + registrations: + title: Registrations + registrations_mode: + modes: + approved: Approval required for sign up + none: Nobody can sign up + open: Anyone can sign up + title: Server Settings + site_uploads: + delete: Delete uploaded file + destroyed_msg: Site upload successfully deleted! + statuses: + account: Author + application: Application + back_to_account: Back to account page + back_to_report: Back to report page + batch: + remove_from_report: Remove from report + report: Report + deleted: Deleted + favourites: Favourites + history: Version history + in_reply_to: Replying to + webhooks: + enabled: Active + enabled_events: + one: 1 enabled event + other: "%{count} enabled events" + events: Events + new: New webhook + rotate_secret: Rotate secret + secret: Signing secret + status: Status + title: Webhooks + webhook: Webhook + admin_mailer: + new_appeal: + actions: + delete_statuses: to delete their posts + disable: to freeze their account + mark_statuses_as_sensitive: to mark their posts as sensitive + none: a warning + sensitive: to mark their account as sensitive + silence: to limit their account + suspend: to suspend their account + body: "%{target} is appealing a moderation decision by %{action_taken_by} from %{date}, which was %{type}. They wrote:" + next_steps: You can approve the appeal to undo the moderation decision, or ignore it. + subject: "%{username} is appealing a moderation decision on %{instance}" + new_pending_account: + body: The details of the new account are below. You can approve or reject this application. + subject: New account up for review on %{instance} (%{username}) + new_report: + body: "%{reporter} has reported %{target}" + body_remote: Someone from %{domain} has reported %{target} + subject: New report for %{instance} (#%{id}) + new_trends: + body: 'The following items need a review before they can be displayed publicly:' + new_trending_links: + title: Trending links + new_trending_statuses: + title: Trending posts + new_trending_tags: + no_approved_tags: There are currently no approved trending hashtags. + requirements: 'Any of these candidates could surpass the #%{rank} approved trending hashtag, which is currently #%{lowest_tag_name} with a score of %{lowest_tag_score}.' + title: Trending hashtags + application_mailer: + view: 'View:' + view_profile: View profile + view_status: View post + applications: + created: Application successfully created + destroyed: Application successfully deleted + logout: Logout + regenerate_token: Regenerate access token + token_regenerated: Access token successfully regenerated + warning: Be very careful with this data. Never share it with anyone! + your_token: Your access token + 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: + prefix_invited_by_user: "@%{name} invites you to join this server of Mastodon!" + prefix_sign_up: Sign up on Mastodon today! + suffix: With an account, you will be able to follow people, post updates and exchange messages with users from any Mastodon server and more! + didnt_get_confirmation: Didn't receive confirmation instructions? + dont_have_your_security_key: Don't have your security key? + forgot_password: Forgot your password? + invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one. + link_to_otp: Enter a two-factor code from your phone or a recovery code + link_to_webauth: Use your security key device + log_in_with: Log in with + login: Log in + logout: Logout + migrate_account: Move to a different account + migrate_account_html: If you wish to redirect this account to a different one, you can configure it here. + or_log_in_with: Or log in with + privacy_policy_agreement_html: I have read and agree to the
    privacy policy + providers: + cas: CAS + saml: SAML + register: Sign up + registration_closed: "%{instance} is not accepting new members" + resend_confirmation: Resend confirmation instructions + reset_password: Reset password + rules: + accept: Accept + back: Back + preamble: These are set and enforced by the %{domain} moderators. + title: Some ground rules. + security: Security + set_new_password: Set new password + setup: + email_below_hint_html: If the below e-mail address is incorrect, you can change it here and receive a new confirmation e-mail. + email_settings_hint_html: The confirmation e-mail was sent to %{email}. If that e-mail address is not correct, you can change it in account settings. + title: Setup + sign_in: + preamble_html: Sign in with your %{domain} credentials. If your account is hosted on a different server, you will not be able to log in here. + title: Sign in to %{domain} + sign_up: + preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted. + title: Let's get you set up on %{domain}. + status: + account_status: Account status + confirming: Waiting for e-mail confirmation to be completed. + functional: Your account is fully operational. + pending: Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved. + redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. + view_strikes: View past strikes against your account + too_fast: Form submitted too fast, try again. + use_security_key: Use security key + authorize_follow: + already_following: You are already following this account + already_requested: You have already sent a follow request to that account + error: Unfortunately, there was an error looking up the remote account + follow: Follow + follow_request: 'You have sent a follow request to:' + following: 'Success! You are now following:' + post_follow: + close: Or, you can just close this window. + return: Show the user's profile + web: Go to web + title: Follow %{acct} + challenge: + confirm: Continue + hint_html: "Tip: We won't ask you for your password again for the next hour." + invalid_password: Invalid password + prompt: Confirm password to continue + crypto: + errors: + invalid_key: is not a valid Ed25519 or Curve25519 key + invalid_signature: is not a valid Ed25519 signature + date: + formats: + default: "%b %d, %Y" + with_month_name: "%B %d, %Y" + datetime: + distance_in_words: + about_x_hours: "%{count}h" + about_x_months: "%{count}mo" + about_x_years: "%{count}y" + almost_x_years: "%{count}y" + half_a_minute: Just now + less_than_x_minutes: "%{count}m" + less_than_x_seconds: Just now + over_x_years: "%{count}y" + x_days: "%{count}d" + x_minutes: "%{count}m" + x_months: "%{count}mo" + x_seconds: "%{count}s" + deletes: + challenge_not_passed: The information you entered was not correct + confirm_password: Enter your current password to verify your identity + confirm_username: Enter your username to confirm the procedure + proceed: Delete account + success_msg: Your account was successfully deleted + warning: + before: 'Before proceeding, please read these notes carefully:' + caches: Content that has been cached by other servers may persist + data_removal: Your posts and other data will be permanently removed + email_change_html: You can change your e-mail address without deleting your account + email_contact_html: If it still doesn't arrive, you can e-mail %{email} for help + email_reconfirmation_html: If you are not receiving the confirmation e-mail, you can request it again + irreversible: You will not be able to restore or reactivate your account + more_details_html: For more details, see the privacy policy. + username_available: Your username will become available again + username_unavailable: Your username will remain unavailable + disputes: + strikes: + action_taken: Action taken + appeal: Appeal + appeal_approved: This strike has been successfully appealed and is no longer valid + appeal_rejected: The appeal has been rejected + appeal_submitted_at: Appeal submitted + appealed_msg: Your appeal has been submitted. If it is approved, you will be notified. + appeals: + submit: Submit appeal + approve_appeal: Approve appeal + associated_report: Associated report + created_at: Dated + description_html: These are actions taken against your account and warnings that have been sent to you by the staff of %{instance}. + recipient: Addressed to + reject_appeal: Reject appeal + status: 'Post #%{id}' + status_removed: Post already removed from system + title: "%{action} from %{date}" + title_actions: + delete_statuses: Post removal + disable: Freezing of account + mark_statuses_as_sensitive: Marking of posts as sensitive + none: Warning + sensitive: Marking of account as sensitive + silence: Limitation of account + suspend: Suspension of account + your_appeal_approved: Your appeal has been approved + your_appeal_pending: You have submitted an appeal + your_appeal_rejected: Your appeal has been rejected + domain_validator: + invalid_domain: is not a valid domain name 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': + content: Security verification failed. Are you blocking cookies? + title: Security verification failed '429': Too many requests + '500': + content: We're sorry, but something went wrong on our end. + title: This page is not correct '503': The page could not be served due to a temporary server failure. + noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the native apps for Mastodon for your platform. + existing_username_validator: + not_found: could not find a local user with that username + not_found_multiple: could not find %{usernames} + exports: + archive_takeout: + date: Date + download: Download your archive + hint_html: You can request an archive of your posts and uploaded media. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days. + in_progress: Compiling your archive... + request: Request your archive + size: Size + blocks: You block + bookmarks: Bookmarks + csv: CSV + domain_blocks: Domain blocks + lists: Lists + mutes: You mute + storage: Media storage + featured_tags: + add_new: Add new + errors: + limit: You have already featured the maximum number of hashtags + hint_html: "What are featured hashtags? They are displayed prominently on your public profile and allow people to browse your public posts specifically under those hashtags. They are a great tool for keeping track of creative works or long-term projects." + filters: + contexts: + account: Profiles + home: Home and lists + notifications: Notifications + public: Public timelines + thread: Conversations + edit: + add_keyword: Add keyword + keywords: Keywords + statuses: Individual posts + statuses_hint_html: This filter applies to select individual posts regardless of whether they match the keywords below. Review or remove posts from the filter. + title: Edit filter + errors: + deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface. + invalid_context: None or invalid context supplied + index: + contexts: Filters in %{contexts} + delete: Delete + empty: You have no filters. + expires_in: Expires in %{distance} + expires_on: Expires on %{date} + keywords: + one: "%{count} keyword" + other: "%{count} keywords" + statuses: + one: "%{count} post" + other: "%{count} posts" + statuses_long: + one: "%{count} individual post hidden" + other: "%{count} individual posts hidden" + title: Filters + new: + save: Save new filter + title: Add new filter + statuses: + back_to_filter: Back to filter + batch: + remove: Remove from filter + index: + hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface. + title: Filtered posts generic: + all: All + all_items_on_page_selected_html: + one: "%{count} item on this page is selected." + other: All %{count} items on this page are selected. + all_matching_items_selected_html: + one: "%{count} item matching your search is selected." + other: All %{count} items matching your search are selected. + changes_saved_msg: Changes successfully saved! copy: Copy delete: Delete deselect: Deselect all @@ -584,6 +1038,81 @@ en-GB: invites: delete: Deactivate expired: Expired + expires_in: + '1800': 30 minutes + '21600': 6 hours + '3600': 1 hour + '43200': 12 hours + '604800': 1 week + '86400': 1 day + expires_in_prompt: Never + generate: Generate invite link + invited_by: 'You were invited by:' + max_uses: + one: 1 use + other: "%{count} uses" + max_uses_prompt: No limit + prompt: Generate and share links with others to grant access to this server + table: + expires_at: Expires + uses: Uses + title: Invite people + lists: + errors: + limit: You have reached the maximum number of lists + login_activities: + authentication_methods: + otp: two-factor authentication app + password: password + sign_in_token: e-mail security code + webauthn: security keys + description_html: If you see activity that you don't recognise, consider changing your password and enabling two-factor authentication. + empty: No authentication history available + failed_sign_in_html: Failed sign-in attempt with %{method} from %{ip} (%{browser}) + successful_sign_in_html: Successful sign-in with %{method} from %{ip} (%{browser}) + title: Authentication history + media_attachments: + validations: + images_and_video: Cannot attach a video to a post that already contains images + not_ready: Cannot attach files that have not finished processing. Try again in a moment! + too_many: Cannot attach more than 4 files + migrations: + acct: Moved to + cancel: Cancel redirect + cancel_explanation: Cancelling the redirect will re-activate your current account, but will not bring back followers that have been moved to that account. + cancelled_msg: Successfully cancelled the redirect. + errors: + already_moved: is the same account you have already moved to + missing_also_known_as: is not an alias of this account + move_to_self: cannot be current account + not_found: could not be found + on_cooldown: You are on cooldown + followers_count: Followers at time of move + incoming_migrations: Moving from a different account + incoming_migrations_html: To move from another account to this one, first you need to create an account alias. + moved_msg: Your account is now redirecting to %{acct} and your followers are being moved over. + not_redirecting: Your account is not redirecting to any other account currently. + on_cooldown: You have recently migrated your account. This function will become available again in %{count} days. + past_migrations: Past migrations + proceed_with_move: Move followers + redirected_msg: Your account is now redirecting to %{acct}. + redirecting_to: Your account is redirecting to %{acct}. + set_redirect: Set redirect + warning: + backreference_required: The new account must first be configured to back-reference this one + before: 'Before proceeding, please read these notes carefully:' + cooldown: After moving there is a waiting period during which you will not be able to move again + disabled_account: Your current account will not be fully usable afterwards. However, you will have access to data export as well as re-activation. + followers: This action will move all followers from the current account to the new account + only_redirect_html: Alternatively, you can only put up a redirect on your profile. + other_data: No other data will be moved automatically + redirect: Your current account's profile will be updated with a redirect notice and be excluded from searches + moderation: + title: Moderation + move_handler: + carry_blocks_over_text: This user moved from %{acct}, which you had blocked. + carry_mutes_over_text: This user moved from %{acct}, which you had muted. + copy_account_note_text: 'This user moved from %{acct}, here were your previous notes about them:' navigation: toggle_menu: Toggle menu notification_mailer: diff --git a/config/locales/es.yml b/config/locales/es.yml index 3fce5035d6..22b760fec3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1696,6 +1696,7 @@ es: seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles. signed_in_as: 'Sesión iniciada como:' verification: + explanation_html: 'Puedes verificarte a ti mismo como propietario de los enlaces en los metadatos de tu perfil. Para ello, el sitio web vinculado debe contener un enlace a tu perfil de Mastodon. Después de añadir el enlace, es posible que debas volver aquí y volver a guardar tu perfil para que la verificación surta efecto. El enlace de tu sitio debe tener un atributo rel="me". El contenido textual del enlace no tiene relevancia. Aquí un ejemplo:' verification: Verificación webauthn_credentials: add: Agregar nueva clave de seguridad diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 4a1a175d6c..7cfac413e8 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1696,7 +1696,7 @@ fi: seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut tilillä:' verification: - explanation_html: 'Voit vahvistaa olevasi profiilisi metatietojen sisältämien linkkien omistaja. Tätä varten linkitetyn verkkosivuston täytyy sisältää paluulinkki Mastodon-profiiliisi. Paluulinkillä täytyy olla rel="me"-attribuutti, mutta sen tekstisisältö voi olla mitä tahansa. Tässä esimerkki:' + explanation_html: 'Voit vahvistaa olevasi profiilisi metatietojen sisältämien linkkien omistaja. Tätä varten linkitetyn verkkosivuston täytyy sisältää paluulinkki Mastodon-profiiliisi. Paluulinkillä täytyy olla määre rel="me". Linkin tekstisisällöllä ei ole merkitystä. Tässä esimerkki:' verification: Vahvistus webauthn_credentials: add: Lisää uusi suojausavain diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index 41c011c189..27d400b9f5 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -812,6 +812,12 @@ fr-QC: message_html: Vous n'avez pas défini de règles pour le serveur. sidekiq_process_check: message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq + upload_check_privacy_error: + action: Pour plus d'informations, cliquez ici + message_html: "Votre serveur web est mal configuré. La confidentialité de vos utilisateurs est en péril." + upload_check_privacy_error_object_storage: + action: Pour plus d'informations, cliquez ici + message_html: "Votre serveur web est mal configuré. La confidentialité de vos utilisateurs est en péril." tags: review: État du traitement updated_msg: Paramètres du hashtag mis à jour avec succès @@ -1684,11 +1690,13 @@ fr-QC: title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes + go_to_sso_account_settings: Accédez aux paramètres du compte de votre fournisseur d'identité invalid_otp_token: Le code d’authentification à deux facteurs est invalide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} seamless_external_login: Vous êtes connecté via un service externe, donc les paramètres concernant le mot de passe et le courriel ne sont pas disponibles. signed_in_as: 'Connecté·e en tant que :' verification: + explanation_html: 'Vous pouvez vous vérifier en tant que propriétaire des liens dans les métadonnées de votre profil. Pour cela, le site web lié doit contenir un lien vers votre profil Mastodon. Le lien de retour doit avoir un attribut rel="me" . Le texte du lien n’a pas d’importance. Voici un exemple :' verification: Vérification webauthn_credentials: add: Ajouter une nouvelle clé de sécurité diff --git a/config/locales/gd.yml b/config/locales/gd.yml index a481bbb25e..2c07fa0679 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -95,6 +95,7 @@ gd: moderation: active: Gnìomhach all: Na h-uile + disabled: À comas pending: Ri dhèiligeadh silenced: Cuingichte suspended: À rèim @@ -139,6 +140,7 @@ gd: search: Lorg search_same_email_domain: Cleachdaichean eile aig a bheil an aon àrainn puist-d search_same_ip: Cleachdaichean eile aig a bheil an t-aon IP + security: Tèarainteachd security_measures: only_password: Facal-faire a-mhàin password_and_2fa: Facal-faire ’s dà-cheumnach @@ -168,7 +170,7 @@ gd: unsubscribe: Cuir crìoch air an fho-sgrìobhadh unsuspended_msg: Chaidh an cunntas aig %{username} a chur ann an rèim a-rithist username: Ainm-cleachdaiche - view_domain: Sealladh geàrr-chunntas na h-àrainn + view_domain: Seall geàrr-chunntas na h-àrainn warn: Thoir rabhadh web: Lìon whitelisted: Ceadaichte a chùm co-nasgaidh @@ -443,6 +445,7 @@ gd: resolve: Fuasgail an àrainn title: Bac àrainn puist-d ùr no_email_domain_block_selected: Cha deach bacadh àrainn puist-d sam bith atharrachadh o nach deach gin dhiubh a thaghadh + not_permitted: Chan eil seo ceadaichte resolved_dns_records_hint_html: Thèid ainm na h-àrainne fhuasgladh nan àrainnean MX a leanas agus an urra riutha-san gun gabh iad ri post-d. Ma bhacas tu àrainn MX, bacaidh seo an clàradh o sheòladh puist-d sam bith a chleachdas an aon àrainn MX fiù ’s ma bhios ainm àrainne eadar-dhealaichte ’ga sealltainn. Thoir an aire nach bac thu solaraichean puist-d mòra. resolved_through_html: Chaidh fuasgladh slighe %{domain} title: Àrainnean puist-d ’gam bacadh @@ -493,6 +496,7 @@ gd: content_policies: comment: Nòta taobh a-staigh description_html: "’S urrainn dhut poileasaidhean susbainte a mhìneachadh a thèid a chur an sàs air a h-uile cunntas on àrainn seo ’s a fo-àrainnean-se." + limited_federation_mode_description_html: "’S urrainn dhut taghadh an ceadaich thu co-nasgadh leis an àrainn seo gus nach ceadaich." policies: reject_media: Diùlt meadhanan reject_reports: Diùlt gearanan @@ -609,11 +613,13 @@ gd: assign_to_self: Iomruin dhomh-sa assigned: Maor iomruinte by_target_domain: Àrainn cunntas a’ ghearain + cancel: Sguir dheth category: Roinn-seòrsa category_description_html: Thèid iomradh a thoirt air adhbhar a’ ghearain mun chunntas/susbaint seo sa chonaltradh leis a’ chunntas mun a chaidh an gearan a thogail comment: none: Chan eil gin comment_description_html: 'Airson barrachd fiosrachaidh a sholar, sgrìobh %{name}:' + confirm: Dearbh confirm_action: Dearbh gnìomh na maorsainneachd an aghaidh @%{acct} created_at: Chaidh an gearan a dhèanamh delete_and_resolve: Sguab às na postaichean @@ -820,6 +826,7 @@ gd: suspend: Chuir %{name} an cunntas aig %{target} à rèim appeal_approved: Air ath-thagradh appeal_pending: "’Ga ath-thagradh" + appeal_rejected: Chaidh ath-thagradh a dhiùltadh system_checks: database_schema_check: message_html: Tha imrichean stòir-dhàta ri dhèiligeadh ann. Ruith iad a dhèanamh cinnteach gum bi giùlan na h-aplacaid mar a bhiodhte ’n dùil @@ -833,6 +840,12 @@ gd: message_html: Cha do mhìnich thu riaghailtean an fhrithealaiche fhathast. sidekiq_process_check: message_html: Chan eil pròiseas Sidekiq sam bith a ruith dhan chiutha/dha na ciuthan %{value}. Thoir sùil air an rèiteachadh Sidekiq agad + upload_check_privacy_error: + action: Thoir sùil an-seo airson barrachd fiosrachaidh + message_html: "Chaidh am frithealaiche agad a dhroch-rèiteachadh. Tha prìobhaideachd an luchd-cleachdaidh agad fo chunnart." + upload_check_privacy_error_object_storage: + action: Thoir sùil an-seo airson barrachd fiosrachaidh + message_html: "Chaidh stòras nan oibseactan agad a dhroch-rèiteachadh. Tha prìobhaideachd an luchd-cleachdaidh agad fo chunnart." tags: review: Dèan lèirmheas air an staid updated_msg: Chaidh roghainnean nan tagaichean hais ùrachadh @@ -857,6 +870,7 @@ gd: two: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh title: Ceanglaichean a’ treandadh usage_comparison: Chaidh a cho-roinneadh %{today} tura(i)s an-diugh an coimeas ri %{yesterday} an-dè + not_allowed_to_trend: Chan fhaod seo treandadh only_allowed: An fheadhainn cheadaichte a-mhàin pending_review: A’ feitheamh air lèirmheas preview_card_providers: @@ -994,6 +1008,7 @@ gd: applications: created: Chaidh an t-iarrtas a chruthachadh destroyed: Chaidh an t-iarrtas a sguabadh às + logout: Clàraich a-mach regenerate_token: Ath-ghin an tòcan inntrigidh token_regenerated: Chaidh an tòcan inntrigidh ath-ghintinn warning: Bi glè chùramach leis an dàta seo. Na co-roinn le duine sam bith e! @@ -1030,6 +1045,8 @@ gd: resend_confirmation: Cuir an stiùireadh mun dearbhadh a-rithist reset_password: Ath-shuidhich am facal-faire rules: + accept: Gabh ris + back: Air ais preamble: Tha iad ’gan stèidheachadh is a chur an gnìomh leis na maoir aig %{domain}. title: Riaghailtean bunasach. security: Tèarainteachd @@ -1176,6 +1193,8 @@ gd: storage: Stòras mheadhanan featured_tags: add_new: Cuir fear ùr ris + errors: + limit: Bhrosnaich thu an uiread as motha de thagaichean hais mu thràth hint_html: "Dè th’ anns na tagaichean hais brosnaichte? Thèid an sealltainn gu follaiseach air a’ phròifil phoblach agad agus ’s urrainnear na postaichean poblach agad sa bheil na tagaichean hais sònraichte sin a bhrabhsadh leotha. ’S e deagh-acainn a th’ annta airson sùil a chumail air obair chruthachail no pròiseactan fada." filters: contexts: @@ -1297,6 +1316,9 @@ gd: expires_at: Falbhaidh an ùine air uses: Cleachdadh title: Thoir cuireadh do dhaoine + lists: + errors: + limit: Ràinig thu na tha ceadaichte dhut de liostaichean login_activities: authentication_methods: otp: aplacaid dearbhaidh dhà-cheumnaich @@ -1441,6 +1463,7 @@ gd: confirm_remove_selected_followers: A bheil thu cinnteach gu bheil thu airson an luchd-leantainn a thagh thu a thoirt air falbh? confirm_remove_selected_follows: A bheil thu cinnteach nach eil thu airson an fheadhainn a thagh thu a leantainn tuilleadh? dormant: Na thàmh + follow_failure: Cha deach le leantainn cuid dhe na cunntasan a thagh thu. follow_selected_followers: Lean an luchd-leantainn a thagh thu followers: Luchd-leantainn following: A’ leantainn @@ -1480,6 +1503,7 @@ gd: electron: Electron firefox: Firefox generic: Brabhsair nach aithne dhuinn + huawei_browser: Brabhsair Huawei ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1489,6 +1513,7 @@ gd: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Brabhsair nach aithne dhuinn weibo: Weibo current_session: An seisean làithreach description: "%{browser} air %{platform}" @@ -1501,8 +1526,10 @@ gd: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: macOS + unknown_platform: Ùrlar nach aithne dhuinn windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1627,6 +1654,7 @@ gd: '7889238': 3 mìosan min_age_label: Stairsneach aoise min_favs: Cùm na tha ’na annsachd aig co-dhiù + min_favs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’nan annsachd an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’nan annsachd min_reblogs: Cùm na tha ’ga bhrosnachadh le co-dhiù min_reblogs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’gam brosnachadh an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’gam brosnachadh stream_entries: @@ -1726,11 +1754,13 @@ gd: title: Fàilte air bòrd, %{name}! users: follow_limit_reached: Chan urrainn dhut còrr is %{limit} daoine a leantainn + go_to_sso_account_settings: Tadhail air roghainnean cunntas solaraiche na dearbh-aithne agad invalid_otp_token: Còd dà-cheumnach mì-dhligheach otp_lost_help_html: Ma chaill thu an t-inntrigeadh dhan dà chuid diubh, ’s urrainn dhut fios a chur gu %{email} seamless_external_login: Rinn thu clàradh a-steach le seirbheis on taobh a-muigh, mar sin chan eil roghainnean an fhacail-fhaire ’s a’ phuist-d ri làimh dhut. signed_in_as: 'Chlàraich thu a-steach mar:' verification: + explanation_html: '’S urrainn dhut dearbhadh gur e seilbheadair nan ceanglaichean ann am meata-dàta na pròifil agad a th’ annad. Airson sin a dhèanamh, feumaidh ceangal air ais dhan phròifil Mastodon a bhith aig an làrach-lìn cheangailte. Nuair a bhios tu air a’ cheangal a chur ris, dh’fhaoidte gum bi agad ri tilleadh an-seo agus a’ phròifil agad a shàbhaladh a-rithist mus obraich an dearbhadh. Feumaidh buadh rel="me" a bhith aig a’ cheangal air ais. Chan eil e gu diofar dè an t-susbaint a tha ann an teacsa a’ cheangail. Seo ball-eisimpleir dhut:' verification: Dearbhadh webauthn_credentials: add: Cuir iuchair tèarainteachd ùr ris diff --git a/config/locales/my.yml b/config/locales/my.yml index 5096aa0d7f..b63093c419 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -430,7 +430,9 @@ my: no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ။ export_domain_blocks: import: + description_html: ဒိုမိန်းပိတ်ဆို့စာရင်း ထည့်သွင်းပါမည်။ ဤစာရင်းကို သင်ကိုယ်တိုင် မရေးသားထားပါက ပြန်လည်သုံးသပ်ရန်လိုပါသည်။ existing_relationships_warning: လက်ရှိစောင့်ကြည့်သူများနှင့် ဆက်ဆံရေး + private_comment_description_html: ထည့်သွင်းထားသော ဒိုမိန်းပိတ်ဆို့စာရင်းများအား ကြည့်ရှုရန်အတွက် ပိတ်ဆို့စာရင်းများကို အောက်ပါသီးသန့်မှတ်ချက်ဖြင့် ဖန်တီးပါမည် - %{comment} private_comment_template: "%{date} တွင် %{source} မှ ထည့်သွင်းခဲ့သည်" title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန် invalid_domain_block: အောက်ပါအမှား(များ)ကြောင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒိုမိန်းပိတ်ပင်ထားမှုများကို ကျော်သွားခဲ့သည် - %{error} @@ -438,16 +440,19 @@ my: title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန် no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ follow_recommendations: + description_html: "အကြံပြုချက်များကို အသုံးပြုသူအသစ်များက လိုက်နာခြင်းဖြင့် စိတ်ဝင်စားစရာအကြောင်းအရာများကို လျင်မြန်စွာရှာဖွေနိုင်စေပါမည်။ အသုံးပြုသူတစ်ဦးက စိတ်ကြိုက်ပြင်ဆင်ထားသည့် အကြံပြုချက်များလိုက်နာရန်အတွက် အခြားသူများနှင့် လုံလောက်သောအပြန်အလှန်တုံ့ပြန်ခြင်းမရှိပါက ယင်းအစား ဤအကောင့်များကို အကြံပြုလိုပါသည်။ ၎င်းအကောင့်များကို မကြာသေးမီက ထိတွေ့ဆက်ဆံမှုအများဆုံးနှင့် အသုံးပြုထားသည့်ဘာသာစကားမှတစ်ဆင့် ဒေသတွင်းစောင့်ကြည့်သူဦးရေ အများဆုံးရှိသော အကောင့်များကိုအခြေခံ၍ နေ့စဉ် တွက်ချက်ထားခြင်းဖြစ်ပါသည်။" language: ဘာသာစကားအတွက် status: အခြေအနေ title: အကြံပြုချက်များကို စောင့်ကြည့်ပါ unsuppress: အကြံပြုချက်စောင့်ကြည့်ခြင်းအား ပြန်လည်ရယူပါ instances: availability: + failure_threshold_reached: "%{date} နေ့ တွင် မအောင်မြင်ခဲ့ပါ။" failures_recorded: other: "%{count} ရက်နေ့တွင် ကြိုးစားမှု မအောင်မြင်ပါ။" no_failures_recorded: မှတ်တမ်းမရှိပါ။ title: ရရှိနိုင်မှု + warning: ဤဆာဗာအသုံးပြုနိုင်ရန် နောက်ဆုံးကြိုးပမ်းမှုမှာ မအောင်မြင်ခဲ့ပါ back_to_all: အားလုံး back_to_limited: ကန့်သတ်ထားသည် back_to_warning: သတိပေးချက် @@ -463,6 +468,7 @@ my: silence: ကန့်သတ် suspend: ရပ်ဆိုင်းပါ policy: မူဝါဒ + reason: မူဝါဒဆိုင်ရာအကြောင်းအရာများ title: အကြောင်းအရာမူဝါဒများ dashboard: instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ @@ -533,6 +539,7 @@ my: disable: ပိတ်ပါ disabled: ပိတ်ထားသည် enable: ဖွင့်ပါ + enable_hint: တစ်ကြိမ်ဖွင့်ပြီးသည်နှင့် သင့်ဆာဗာသည် ဤထပ်ဆင့်လွှင့်မှုမှ အများမြင်ပို့စ်များအားလုံးကို စာရင်းသွင်းလိုက်မည်ဖြစ်ပြီး ဤဆာဗာ၏ အများမြင်ပို့စ်များကို ၎င်းထံ စတင်ပေးပို့မည်ဖြစ်သည်။ enabled: ဖွင့်ထားသည် inbox_url: ထပ်ဆင့်ပေးပို့မည့် URL pending: ထပ်ဆင့်အတည်ပြုချက်ကို စောင့်ဆိုင်းနေခြင်း @@ -550,6 +557,14 @@ my: other: "%{count} မှတ်စု" action_log: မှတ်တမ်းများစစ်ဆေးခြင်း action_taken_by: ဆောင်ရွက်ခဲ့ပါသည် + actions: + mark_as_sensitive_description_html: တိုင်ကြားထားသည့်ပို့စ်များရှိ မီဒီယာအား သတိထားရသောမီဒီယာအဖြစ် သတ်မှတ်ပြီး အကောင့်တူဖြင့် နောင် ချိုးဖောက်မှုများရှိပါက သတိပေးချက်တစ်ခုဖြင့် သင့်အတွက် မှတ်တမ်းပြုလုပ်ပေးထားပါမည်။ + other_description_html: အကောင့်ထိန်းချုပ်ရန်နှင့် တိုင်ကြားထားသည့်သို့ ဆက်သွယ်မှုကို စိတ်ကြိုက်ပြင်ဆင်ရန်တို့အတွက် နောက်ထပ်ရွေးချယ်စရာများကို ကြည့်ပါ။ + resolve_description_html: တိုင်ကြားထားသည့်အကောင့်ကို အရေးယူမည်မဟုတ်ပါ၊ လုပ်ဆောင်ချက်ကို မှတ်တမ်းတင်ထားခြင်းမရှိသည့်အပြင် တိုင်ကြားထားမှုကိုလည်း ရုပ်သိမ်းပါမည်။ + silence_description_html: အကောင့်ကို စောင့်ကြည့်ထားသူများ သို့မဟုတ် ရှာဖွေသူများသာ မြင်နိုင်မည်ဖြစ်ပါသည်။ အကောင့်တွေ့ရှိမှုအား ကန့်သတ်ထားသော်လည်း ပြန်ပြောင်းဆောင်ရွက်နိုင်ပါသည်။ ဤအကောင့်နှင့်ပတ်သက်သည့် မှတ်တမ်းအားလုံးကို ပိတ်ပါမည်။ + suspend_description_html: အကောင့်နှင့် ၎င်း၏အကြောင်းအရာအားလုံးမှာ သုံးခွင့်မရတော့သဖြင့် နောက်ဆုံးတွင် ဖျက်ပစ်မည်ဖြစ်ပါသည်။ ၎င်းနှင့် အပြန်အလှန်မတုံ့ပြန်နိုင်တော့သော်လည်း ရက် ၃၀ အတွင်း ပြန်ယူ၍ရနိုင်ပါသည်။ ဤအကောင့်နှင့်ပတ်သက်သည့် မှတ်တမ်းအားလုံးကို ပိတ်ပါမည်။ + actions_description_html: ဤမှတ်တမ်းဖြေရှင်းရန်အတွက် မည်သည့်လုပ်ဆောင်ချက် ဆောင်ရွက်မည်ကို ဆုံးဖြတ်ပါ။ တိုင်ကြားထားသောအကောင့်ကို ဆောင်ရွက်လိုပါက Spam မရွေးချယ်ဘဲ အီးမေးလ်အကြောင်းကြားစာ ပေးပို့ရပါမည်။ + actions_description_remote_html: ဤမှတ်တမ်းဖြေရှင်းရန်အတွက် မည်သည့်လုပ်ဆောင်ချက် ဆောင်ရွက်မည်ကို ဆုံးဖြတ်ပါ။ သင်၏ ဆာဗာသည် အဝေးမှထိန်းချုပ်ထားသောအကောင့်နှင့် ဆက်သွယ်ပြီး အကြောင်းအရာကိုင်တွယ်ပုံပေါ်မှာသာ သက်ရောက်မှုရှိမည်ဖြစ်သည်။ add_to_report: အစီရင်ခံစာထပ်ထည့်ရန် are_you_sure: သေချာပါသလား။ assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန် @@ -575,8 +590,11 @@ my: create_and_resolve: မှတ်စုဖြင့် ဖြေရှင်းပါ create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန် delete: ဖျက်ပါ + placeholder: မည်သည့်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ခဲ့သည်ကို ဖော်ပြပါ သို့မဟုတ် အခြားဆက်စပ် အပ်ဒိတ်များကို ဖော်ပြပါ ... title: မှတ်စုများ + notes_description_html: အခြားစိစစ်သူများနှင့် ကိုယ်တိုင်အတွက် မှတ်စုများ ထားခဲ့ပါ processed_msg: 'အကြောင်းကြားမှု #%{id} ကို ဆောင်ရွက်ပြီးပါပြီ' + quick_actions_description_html: တိုင်ကြားထားသောအကြောင်းအရာများကြည့်ရှုရန်အတွက် လုပ်ဆောင်ချက်တစ်ခု ဆောင်ရွက်ပါ သို့မဟုတ် Scroll ဆွဲ၍ ကြည့်ပါ - remote_user_placeholder: "%{instance} မှ အဝေးကနေအသုံးပြုသူ" reopen: အစီရင်ခံစာပြန်ဖွင့်ရန် report: "#%{id} အစီရင်ခံရန်" @@ -680,10 +698,14 @@ my: appearance: preamble: Mastodon ၏ ဝဘ်ပုံစံကို စိတ်ကြိုက်ပြင်ဆင်ပါ။ title: ပုံပန်းသဏ္ဌာန် + branding: + title: ခေါင်းစဉ်တပ်ခြင်း content_retention: preamble: Mastodon တွင် အသုံးပြုသူဖန်တီးထားသော အကြောင်းအရာများ မည်သို့သိမ်းဆည်းမည်ကို ထိန်းချုပ်ပါ။ + title: အကြောင်းအရာ ဆက်လက်ရှိနေခြင်း default_noindex: desc_html: ဤသတ်မှတ်ချက်ကို ကိုယ်တိုင်မပြောင်းရသေးသော အသုံးပြုသူအားလုံးအပေါ် သက်ရောက်မှုရှိသည် + title: ပုံမှန်အားဖြင့် ရှာဖွေမှုအညွှန်းကိန်းမှ သုံးစွဲသူများကို ဖယ်ထုတ်ပါ discovery: follow_recommendations: အကြံပြုချက်များကို စောင့်ကြည့်ပါ profile_directory: ပရိုဖိုင်လမ်းညွှန် @@ -771,6 +793,7 @@ my: other: ပြီးခဲ့သည့်အပတ်တွင် လူ %{count} ဦး မှ မျှဝေခဲ့သည် title: လက်ရှိခေတ်စားနေသော လင့်များ usage_comparison: မနေ့က %{yesterday} နှင့် နှိုင်းယှဉ်၍ ယနေ့ %{today} ကြိမ် မျှဝေခဲ့သည် + not_allowed_to_trend: ခေတ်စားနေသည့်အကြောင်းအရာပြုလုပ်ရန် ခွင့်မပြုပါ only_allowed: သာခွင့်ပြုသည် pending_review: ဆိုင်းငံ့ထားသော သုံးသပ်ချက် preview_card_providers: @@ -938,11 +961,13 @@ my: account_status: အကောင့်အခြေအနေ confirming: အီးမေးလ်အတည်ပြုချက် အပြီးသတ်ရန် စောင့်ဆိုင်းခြင်း functional: သင့်အကောင့်မှာ အပြည့်အဝလုပ်ဆောင်နေပါပြီ။ + redirecting_to: သင့်အကောင့်မှာ လက်ရှိတွင် %{acct} သို့ ပြန်ညွှန်းနေသောကြောင့် သုံးစွဲ၍မရပါ။ view_strikes: သင့်အကောင့်ကို ဆန့်ကျင်သည့် ယခင်ကလုပ်ဆောင်ချက်များကို ကြည့်ပါ use_security_key: လုံခြုံရေးကီးကို သုံးပါ authorize_follow: already_following: သင်သည် ဤအကောင့်ကို စောင့်ကြည့်နေပြီဖြစ်ပါသည် already_requested: သင်သည် ထိုအကောင့်စောင့်ကြည့်ရန် တောင်းဆိုမှုတစ်ခု ပေးပို့ခဲ့ပြီးပါပြီ + error: ကံမကောင်းစွာဖြင့် အဝေးမှထိန်းချုပ်သောအကောင့်ရှာဖွေရာတွင် အမှားအယွင်းတစ်ခုရှိခဲ့သည် follow: စောင့်ကြည့်မယ် follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်- following: သင် ယခု အောက်ပါအတိုင်း လုပ်ဆောင်နေပါသည် - @@ -994,6 +1019,7 @@ my: irreversible: အကောင့်ကို ပြန်လည်ရယူရန် သို့မဟုတ် ပြန်လည်အသုံးပြုရန် မဖြစ်နိုင်တော့ပါ more_details_html: အသေးစိတ်အချက်အလက်များအတွက်၊ ကိုယ်ရေးကိုယ်တာမူဝါဒ ကို ကြည့်ပါ။ username_available: သင့်အသုံးပြုသူအမည်ကို ပြန်လည်ရရှိနိုင်ပါမည် + username_unavailable: သင့်အသုံးပြုသူအမည်မှာ မရရှိနိုင်တော့ပါ disputes: strikes: action_taken: ဆောင်ရွက်ခဲ့သည် @@ -1039,7 +1065,9 @@ my: content: စိတ်မကောင်းပါ။ အဆုံးတွင် တစ်ခုမှားယွင်းသွားပါသည်။ title: ဤစာမျက်နှာမှာ မမှန်ကန်ပါ '503': ယာယီဆာဗာချို့ယွင်းမှုကြောင့် စာမျက်နှာကို ကြည့်ရှု၍မရပါ။ + noscript_html: Mastodon ဝဘ်အက်ပလီကေးရှင်းအသုံးပြုရန်အတွက် JavaScript ကို ဖွင့်ပါ။ တစ်နည်းအားဖြင့် သင့် Mastodon ပလက်ဖောင်းအတွက် မူရင်းအက်ပ်များ ထဲမှ တစ်ခုကို စမ်းကြည့်ပါ။ existing_username_validator: + not_found: ထိုအသုံးပြုသူအမည်ဖြင့် ပြည်တွင်းအသုံးပြုသူကို ရှာမတွေ့ပါ not_found_multiple: "%{usernames} ကို ရှာမတွေ့ပါ" exports: archive_takeout: @@ -1057,6 +1085,8 @@ my: storage: မီဒီယာသိုလှောင်မှု featured_tags: add_new: အသစ် ထည့်ပါ + errors: + limit: ဟက်ရှ်တဂ်အရေအတွက် အများဆုံးကို ဖော်ပြပြီးဖြစ်သည် filters: contexts: account: ပရိုဖိုင်များ @@ -1093,6 +1123,10 @@ my: title: စစ်ထုတ်ထားသော ပို့စ်များ generic: all: အားလုံး + all_items_on_page_selected_html: + other: ဤစာမျက်နှာရှိ %{count} အိုက်တမ်များအားလုံးကို ရွေးချယ်ထားသည်။ + all_matching_items_selected_html: + other: သင့်ရှာဖွေမှုနှင့် ကိုက်ညီသည့် %{count} အိုက်တမ်အားလုံးကို ရွေးချယ်ထားသည်။ changes_saved_msg: အပြောင်းအလဲများကို သိမ်းဆည်းပြီးပါပြီ။ copy: ကူးယူပါ delete: ဖျက်ပါ @@ -1166,6 +1200,7 @@ my: migrations: acct: သို့ ပြောင်းရွှေ့ရန် cancel: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ရန် + cancel_explanation: ပြန်ညွှန်းခြင်းပယ်ဖျက်ခြင်းဖြင့် သင့်လက်ရှိအကောင့်မှာ ပြန်လည်အသုံးပြု၍ရမည်ဖြစ်သော်လည်း ထိုအကောင့်သို့ ပြောင်းရွှေ့ထားသော စောင့်ကြည့်သူများကို ပြန်လည်ရရှိတော့မည်မဟုတ်ပါ။ cancelled_msg: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ပြီးပါပြီ။ errors: already_moved: သင်ပြောင်းရွှေ့ပြီးသော အကောင့်နှင့် တူညီပါသည် @@ -1187,6 +1222,7 @@ my: backreference_required: အကောင့်အသစ်က ဤအကောင့်ကို ပြန်ကိုးကားရန်အတွက် ဦးစွာ ပြင်ဆင်သတ်မှတ်ရပါမည် before: ဆက်လက်မလုပ်ဆောင်မီ ဤမှတ်စုများကို သေချာဖတ်ပါ - cooldown: ရွှေ့ပြီးပါက နောက်တစ်ကြိမ် ထပ်ရွှေ့ရန် အချိန်စောင့်ရပါမည် + disabled_account: နောက်ပိုင်းတွင် သင့်လက်ရှိအကောင့်အား အပြည့်အဝအသုံးပြုနိုင်တော့မည်မဟုတ်သော်လည်း အချက်အလက်ထုတ်ယူခြင်းနှင့် ပြန်လည်အတည်ပြုခြင်းတို့ကို ဆောင်ရွက်နိုင်မည်ဖြစ်သည်။ followers: ဤလုပ်ဆောင်ချက်မှာ စောင့်ကြည့်သူအားလုံးကို လက်ရှိအကောင့်မှ အကောင့်အသစ်သို့ ရွှေ့ပြောင်းခြင်းဖြစ်သည် only_redirect_html: တနည်းအားဖြင့် သင်သည် သင့်ပရိုဖိုင်ပေါ်တွင် ပြန်ညွှန်းခြင်းကိုသာ ပြုလုပ်နိုင်သည်။ other_data: အခြားအချက်အလက်များကို အလိုအလျောက်ရွှေ့မည်မဟုတ်ပါ diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 93d99fa4ce..66a1b7f603 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -814,10 +814,10 @@ nl: message_html: Er draait geen Sidekiqproces voor de wachtrij(en) %{value}. Controleer je Sidekiqconfiguratie upload_check_privacy_error: action: Klik hier voor meer informatie - message_html: "Uw webserver is verkeerd geconfigureerd. De privacy van uw gebruikers is in gevaar." + message_html: "Jouw webserver is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar." upload_check_privacy_error_object_storage: action: Klik hier voor meer informatie - message_html: "Je objectopslag is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar." + message_html: "Jouw objectopslag is verkeerd geconfigureerd. De privacy van je gebruikers is in gevaar." tags: review: Status beoordelen updated_msg: Instellingen hashtag succesvol bijgewerkt @@ -1551,7 +1551,7 @@ nl: sign_in_to_participate: Meld je aan om aan dit gesprek mee te doen title: '%{name}: "%{quote}"' visibilities: - direct: Direct + direct: Privébericht private: Alleen volgers private_long: Alleen aan jouw volgers tonen public: Openbaar @@ -1567,8 +1567,8 @@ nl: ignore_reblogs: Boosts negeren interaction_exceptions: Uitzonderingen op basis van interacties interaction_exceptions_explanation: Merk op dat er geen garantie is dat berichten worden verwijderd, wanneer eenmaal het aantal favorieten of boosts boven de ingestelde grenswaarde zijn geweest. - keep_direct: Directe berichten behouden - keep_direct_hint: Verwijdert geen enkel directe bericht van jou + keep_direct: Privéberichten behouden + keep_direct_hint: Verwijdert geen enkel privébericht van jou keep_media: Berichten met mediabijlagen behouden keep_media_hint: Verwijdert geen enkel bericht met mediabijlagen keep_pinned: Vastgemaakte berichten behouden @@ -1690,13 +1690,13 @@ nl: title: Welkom aan boord %{name}! users: follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen - go_to_sso_account_settings: Ga naar de accountinstellingen van uw identiteitsprovider + go_to_sso_account_settings: Ga naar de accountinstellingen van je identiteitsprovider invalid_otp_token: Ongeldige tweestaps-toegangscode otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email} seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar. signed_in_as: 'Ingelogd als:' verification: - explanation_html: 'Je kunt jezelf verifiëren als de eigenaar van de koppelingen in de metadata van jouw profiel. Hiervoor moet op de gekoppelde website een koppeling terug naar jouw Mastodonprofiel staan. Na het toevoegen van de koppeling moet je wellicht hier terug komen en je profiel opnieuw bewaren om de verificatie te bevestigen. Deze koppeling moet het rel="me"-attribuut bevatten. De omschrijving van de koppeling maakt niet uit. Hier is een voorbeeld:' + explanation_html: 'Je kunt jezelf verifiëren als de eigenaar van de links in de metadata van jouw profiel. Hiervoor moet op de gelinkte website een link terug naar jouw Mastodonprofiel staan. Na het toevoegen van de link moet je hier mogelijk terugkomen en je profiel opnieuw bewaren om de verificatie te bevestigen. Deze link moet het rel="me"-attribuut bevatten. De omschrijving van de link maakt niet uit. Hier is een voorbeeld:' verification: Verificatie webauthn_credentials: add: Nieuwe beveiligingssleutel toevoegen diff --git a/config/locales/ru.yml b/config/locales/ru.yml index f80aec27c2..de248d76d4 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -620,6 +620,7 @@ ru: none: Нет comment_description_html: 'В дополнение, %{name} добавил(а) следующий комментарий:' confirm: Подтвердить + confirm_action: Произвести модерацию учётной записи %{acct} created_at: Создана delete_and_resolve: Удалить посты forwarded: Переслано @@ -636,6 +637,7 @@ ru: placeholder: Опишите, какие действия были приняты, или любые другие подробности… title: Примечания notes_description_html: Просмотрите или оставьте примечания для остальных модераторов и себя в будущем + processed_msg: 'Жалоба #%{id} успешно обработана' quick_actions_description_html: 'Выберите действие или прокрутите вниз, чтобы увидеть контент с жалобой:' remote_user_placeholder: удаленный пользователь из %{instance} reopen: Переоткрыть жалобу @@ -651,9 +653,12 @@ ru: summary: action_preambles: delete_html: 'Вы собираетесь удалить некоторые посты @%{acct}. В результате этого:' + mark_as_sensitive_html: 'Вы собираетесь удалить некоторые посты @%{acct}. В результате этого:' + silence_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:' suspend_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:' actions: delete_html: Удалить оскорбительные сообщения + mark_as_sensitive_html: Пометить медиа-оскорбительные сообщения как чувствительные close_report: 'Отметить жалобу #%{id} как решённую' close_reports_html: Отметить все жалобы на @%{acct} как разрешённые delete_data_html: Удалить профиль и контент @%{acct} через 30 дней, если за это время они не будут разблокированы @@ -831,6 +836,11 @@ ru: message_html: Вы не определили правила сервера. sidekiq_process_check: message_html: Ни один Sidekiq не запущен для %{value} очереди(-ей). Пожалуйста, просмотрите настройки Sidekiq + upload_check_privacy_error: + action: Нажмите сюда, чтобы узнать подробности + upload_check_privacy_error_object_storage: + action: Нажмите сюда, чтобы узнать подробности + message_html: "Ваше хранилище объектов неправильно настроено. Безопасность ваших пользователей находится под угрозой" tags: review: Состояние проверки updated_msg: Настройки хэштега обновлены @@ -1178,6 +1188,8 @@ ru: storage: Ваши файлы featured_tags: add_new: Добавить + errors: + limit: Вы уже добавили максимальное число хэштегов hint_html: "Избранные хэштеги отображаются в вашем профиле и позволяют людям быстро найти посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ." filters: contexts: @@ -1299,6 +1311,9 @@ ru: expires_at: Истекает uses: Исп. title: Пригласить людей + lists: + errors: + limit: Вы достигли максимального количества пользователей login_activities: authentication_methods: otp: приложение двухфакторной аутентификации @@ -1443,6 +1458,7 @@ ru: confirm_remove_selected_followers: Вы уверены, что хотите удалить выбранных подписчиков? confirm_remove_selected_follows: Вы уверены, что хотите удалить выбранные подписки? dormant: Заброшенная + follow_failure: Не удалось подписаться за некоторыми из выбранных аккаунтов. follow_selected_followers: Подписаться на выбранных подписчиков followers: Подписчики following: Подписки @@ -1482,6 +1498,7 @@ ru: electron: Electron firefox: Firefox generic: Неизвестный браузер + huawei_browser: Huawei Browser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser @@ -1491,6 +1508,7 @@ ru: qq: QQ Browser safari: Safari uc_browser: UC Browser + unknown_browser: Неизвестный браузер weibo: Weibo current_session: Текущая сессия description: "%{browser} на %{platform}" @@ -1503,8 +1521,10 @@ ru: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: OS Кай linux: Linux mac: Mac + unknown_platform: Неизвестная платформа windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1629,6 +1649,7 @@ ru: '7889238': 3 месяца min_age_label: Возрастной порог min_favs: Порог отметок «избранного» + min_favs_hint: Не удалять ваши посты, у которых количество отметок «избранного» достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества отметок min_reblogs: Порог продвижений min_reblogs_hint: Не удаляет ваши посты, количество продвижений которых достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества продвижений. stream_entries: @@ -1728,11 +1749,13 @@ ru: title: Добро пожаловать на борт, %{name}! users: follow_limit_reached: Вы не можете подписаться больше, чем на %{limit} человек + go_to_sso_account_settings: Перейти к настройкам сторонних аккаунтов учетной записи invalid_otp_token: Введен неверный код двухфакторной аутентификации otp_lost_help_html: Если Вы потеряли доступ к обоим, свяжитесь с %{email} seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны. signed_in_as: 'Выполнен вход под именем:' verification: + explanation_html: 'Вы можете подтвердить владение любой из ссылок в таблице. Для этого страница по ссылке должна содержать обратную ссылку на ваш профиль Mastodon, а у самой ссылки должен атрибут rel="me". Текст ссылки значения не имеет. Вот пример:' verification: Верификация ссылок webauthn_credentials: add: Добавить новый ключ безопасности diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 6b4d50d8ef..dbb76208ee 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -78,6 +78,10 @@ el: backups_retention_period: Διατήρηση αρχείων χρηστών που δημιουργήθηκαν για τον καθορισμένο αριθμό ημερών. bootstrap_timeline_accounts: Αυτοί οι λογαριασμοί θα καρφιτσωθούν στην κορυφή των νέων χρηστών που ακολουθούν τις συστάσεις. closed_registrations_message: Εμφανίζεται όταν κλείνουν οι εγγραφές + content_cache_retention_period: Αναρτήσεις από άλλους διακομιστές θα διαγραφούν μετά τον καθορισμένο αριθμό ημερών όταν οριστεί μια θετική τιμή. Αυτό μπορεί να είναι μη αναστρέψιμο. + custom_css: Μπορείς να εφαρμόσεις προσαρμοσμένα στυλ στην έκδοση ιστοσελίδας του Mastodon. + mascot: Παρακάμπτει την εικονογραφία στην προηγμένη διεπαφή ιστού. + media_cache_retention_period: Τα ληφθέντα αρχεία πολυμέσων θα διαγραφούν μετά τον καθορισμένο αριθμό ημερών, όταν οριστεί σε θετική τιμή, και να γίνει εκ νέου λήψη κατά απαίτηση. form_challenge: current_password: Μπαίνεις σε ασφαλή περιοχή imports: diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 44e9e78197..8592857d4c 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -263,7 +263,7 @@ nl: interactions: must_be_follower: Meldingen van mensen die jou niet volgen blokkeren must_be_following: Meldingen van mensen die jij niet volgt blokkeren - must_be_following_dm: Directe berichten van mensen die jij niet volgt blokkeren + must_be_following_dm: Privéberichten van mensen die jij niet volgt blokkeren invite: comment: Opmerking invite_request: diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index e854dd64a5..345f8c183d 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -263,7 +263,7 @@ th: interactions: must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม - must_be_following_dm: ปิดกั้นข้อความโดยตรงจากผู้คนที่คุณไม่ได้ติดตาม + must_be_following_dm: ปิดกั้นข้อความโดยตรงจากผู้คนที่คุณไม่ติดตาม invite: comment: ความคิดเห็น invite_request: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 58537ea7fd..6e7deb9eeb 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1696,6 +1696,7 @@ sv: seamless_external_login: Du är inloggad via en extern tjänst, inställningar för lösenord och e-post är därför inte tillgängliga. signed_in_as: 'Inloggad som:' verification: + explanation_html: 'Du kan bekräfta att du är ägare till länkarna i dina profilmetadata. För detta krävs att den länkade webbplatsen innehåller en länk tillbaka till din Mastodon-profil. När du har lagt till länken kan du behöva komma tillbaka hit och spara din profil på nytt för att verifieringen ska träda i kraft. Tillbakalänken måste ha attributet rel="me". Länkens textinnehåll spelar ingen roll. Här är ett exempel:' verification: Bekräftelse webauthn_credentials: add: Lägg till ny säkerhetsnyckel diff --git a/config/locales/th.yml b/config/locales/th.yml index 5c56b1723d..574ca91e4f 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1404,7 +1404,7 @@ th: missing_resource: ไม่พบ URL การเปลี่ยนเส้นทางที่จำเป็นสำหรับบัญชีของคุณ reports: errors: - invalid_rules: ไม่ได้อ้างอิงกฎที่ถูกต้อง + invalid_rules: ไม่อ้างอิงกฎที่ถูกต้อง rss: content_warning: 'คำเตือนเนื้อหา:' descriptions: diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index b334e66d9e..566156620d 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -798,6 +798,12 @@ zh-HK: message_html: 您尚未定義任何伺服器規則 sidekiq_process_check: message_html: 沒有 %{value} 佇列的 Sidekiq 處理程序。請檢查 Sidekiq 設定檔案 + upload_check_privacy_error: + action: 在此查看更多資訊 + message_html: "你的網絡伺服器配置錯誤。你的使用者的私隱有危險。" + upload_check_privacy_error_object_storage: + action: 在此查看更多資訊 + message_html: "你的對象儲存配置錯誤。你的使用者的私隱有危險。" tags: review: 審核文章 updated_msg: 成功更新主題標籤設定 @@ -1379,6 +1385,7 @@ zh-HK: confirm_remove_selected_followers: 你確定要移除選取的追蹤者嗎? confirm_remove_selected_follows: 你確定要移除選取的追蹤者嗎? dormant: 潛在 + follow_failure: 無法追蹤部份已選的帳號。 follow_selected_followers: 關注所選的追隨者 followers: 追隨者 following: 正在關注 @@ -1418,6 +1425,7 @@ zh-HK: electron: Electron 瀏覽器 firefox: Firefox 瀏覽器 generic: 未知的瀏覽器 + huawei_browser: 華為瀏覽器 ie: Internet Explorer 瀏覽器 micro_messenger: 微信 nokia: Nokia S40 Ovi 瀏覽器 @@ -1427,6 +1435,7 @@ zh-HK: qq: QQ瀏覽器 safari: Safari 瀏覽器 uc_browser: UC 瀏覽器 + unknown_browser: 未知的瀏覽器 weibo: 新浪微博 current_session: 目前的作業階段 description: "%{platform} 上的 %{browser}" @@ -1439,8 +1448,10 @@ zh-HK: chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS + kai_os: KaiOS linux: Linux mac: Mac + unknown_platform: 未知平台 windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1647,11 +1658,13 @@ zh-HK: title: 歡迎 %{name} 加入! users: follow_limit_reached: 你不能關注多於%{limit} 人 + go_to_sso_account_settings: 前往你身份提供者的帳號設定 invalid_otp_token: 雙重認證碼不正確 otp_lost_help_html: 如果這兩者你均無法登入,你可以聯繫 %{email} seamless_external_login: 因為你正在使用第三方服務登入,所以不能設定密碼和電郵。 signed_in_as: 目前登入的帳戶: verification: + explanation_html: 你可以在你的個人檔案元數據中驗證自己是連結的擁有者。為此,連接的網站必須包含一條回到你 Mastodon 個人檔案的連結。加入連結後,你可能需要回到這裏,再次儲存你的個人檔案以便驗證生效。返回的連結必須有一個rel="me"的屬性。當中的文字內容並不重要。以下有一個例子: verification: 驗證 webauthn_credentials: add: 新增安全密鑰裝置 From 5c499f54e3ecc2fab6de2ff76441a11ddf3c503d Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 3 Apr 2023 15:05:39 +0200 Subject: [PATCH 0806/1220] Change root Chewy strategy to emit a warning instead of erroring out in production mode (#24327) --- config/application.rb | 1 + config/initializers/chewy.rb | 1 + lib/chewy/strategy/bypass_with_warning.rb | 12 ++++++++++++ 3 files changed, 14 insertions(+) create mode 100644 lib/chewy/strategy/bypass_with_warning.rb diff --git a/config/application.rb b/config/application.rb index 43631c5516..f0e65f4437 100644 --- a/config/application.rb +++ b/config/application.rb @@ -39,6 +39,7 @@ require_relative '../lib/public_file_server_middleware' require_relative '../lib/devise/two_factor_ldap_authenticatable' require_relative '../lib/devise/two_factor_pam_authenticatable' require_relative '../lib/chewy/strategy/mastodon' +require_relative '../lib/chewy/strategy/bypass_with_warning' require_relative '../lib/webpacker/manifest_extensions' require_relative '../lib/webpacker/helper_extensions' require_relative '../lib/rails/engine_extensions' diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb index 2a91efefc8..daf4a5f326 100644 --- a/config/initializers/chewy.rb +++ b/config/initializers/chewy.rb @@ -19,6 +19,7 @@ Chewy.settings = { # cycle, which takes care of checking if Elasticsearch is enabled # or not. However, mind that for the Rails console, the :urgent # strategy is set automatically with no way to override it. +Chewy.root_strategy = :bypass_with_warning if Rails.env.production? Chewy.request_strategy = :mastodon Chewy.use_after_commit_callbacks = false diff --git a/lib/chewy/strategy/bypass_with_warning.rb b/lib/chewy/strategy/bypass_with_warning.rb new file mode 100644 index 0000000000..eb6fbaab16 --- /dev/null +++ b/lib/chewy/strategy/bypass_with_warning.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Chewy + class Strategy + class BypassWithWarning < Base + def update(...) + Rails.logger.warn 'Chewy update without a root strategy' unless @warning_issued + @warning_issued = true + end + end + end +end From 5d67fc09c34a227a0c4badceef795fb12cc5f845 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 3 Apr 2023 15:06:29 +0200 Subject: [PATCH 0807/1220] Clean up JS dependencies (#24377) --- package.json | 6 +- yarn.lock | 585 +++------------------------------------------------ 2 files changed, 31 insertions(+), 560 deletions(-) diff --git a/package.json b/package.json index 0b06353a1d..2150537383 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-transform-react-inline-elements": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.0", - "@babel/preset-typescript": "^7.21.0", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", "@babel/runtime": "^7.21.0", "@gamestdio/websocket": "^0.3.2", "@github/webauthn-json": "^2.1.1", @@ -176,7 +176,6 @@ "@types/throng": "^5.0.4", "@types/uuid": "^9.0.1", "@types/webpack": "^4.41.33", - "@types/webpack-bundle-analyzer": "^4.6.0", "@types/yargs": "^17.0.22", "@typescript-eslint/eslint-plugin": "^5.55.0", "@typescript-eslint/parser": "^5.55.0", @@ -203,7 +202,8 @@ "yargs": "^17.7.1" }, "resolutions": { - "kind-of": "^6.0.3" + "kind-of": "^6.0.3", + "webpack/terser-webpack-plugin": "^4.2.3" }, "optionalDependencies": { "bufferutil": "^4.0.7", diff --git a/yarn.lock b/yarn.lock index 640fee06c8..37681e2dfc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1658,7 +1658,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -1682,14 +1682,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" @@ -2016,15 +2008,7 @@ resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.2.tgz#072b7b13784fb3cee9c2450c22f36405983f5e3c" integrity sha512-gaBLT8pdcexFztLSPRtriHeXY/Kn4907uOCZ4Q3lncFBkheAWOuNt53ypsF8szgxbEJ513UeBzcf4utN0EzEwA== -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*", "@types/eslint@^8.21.2": +"@types/eslint@^8.21.2": version "8.21.2" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== @@ -2042,11 +2026,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -2177,7 +2156,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -2508,15 +2487,6 @@ resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA== -"@types/webpack-bundle-analyzer@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.0.tgz#8863d62d2432126c2b3a9239cafa469215981c24" - integrity sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - "@types/webpack-sources@*": version "3.2.0" resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" @@ -2655,14 +2625,6 @@ "@typescript-eslint/types" "5.55.0" eslint-visitor-keys "^3.3.0" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -2672,31 +2634,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" @@ -2721,35 +2668,11 @@ dependencies: "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -2760,13 +2683,6 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -2774,13 +2690,6 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -2788,30 +2697,11 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -2826,17 +2716,6 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -2848,16 +2727,6 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -2868,18 +2737,6 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -2904,14 +2761,6 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -2964,11 +2813,6 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -2984,7 +2828,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -3127,7 +2971,7 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -"aproba@^1.0.3 || ^2.0.0", aproba@^1.1.1: +"aproba@^1.0.3 || ^2.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -3580,11 +3424,6 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - blurhash@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.5.tgz#efde729fc14a2f03571a6aa91b49cba80d1abe4b" @@ -3744,7 +3583,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: +browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: version "4.21.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== @@ -3825,27 +3664,6 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cacache@^15.0.5: version "15.0.5" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" @@ -4000,11 +3818,6 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" @@ -4250,16 +4063,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -4314,18 +4117,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -4622,11 +4413,6 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -5008,16 +4794,6 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -5092,7 +4868,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -5108,20 +4884,12 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.3: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -5187,11 +4955,6 @@ es-get-iterator@^1.1.2: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -5356,14 +5119,6 @@ eslint-plugin-react@~7.32.2: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -5372,6 +5127,14 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" @@ -5494,7 +5257,7 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0, events@^3.3.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -5718,11 +5481,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -5785,15 +5543,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -5854,14 +5603,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - follow-redirects@^1.0.0, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" @@ -5915,14 +5656,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -5949,16 +5682,6 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -6097,11 +5820,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -6207,16 +5925,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== -graceful-fs@^4.2.4: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -6543,11 +6256,6 @@ ieee754@^1.1.4, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -6617,7 +6325,7 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -7579,15 +7287,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" @@ -7712,7 +7411,7 @@ json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -7906,11 +7605,6 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" @@ -8076,14 +7770,6 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -8258,7 +7944,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -8385,22 +8071,6 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -8431,18 +8101,6 @@ mousetrap@^1.5.2: resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -8933,15 +8591,6 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -9648,14 +9297,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -9664,15 +9305,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -10065,7 +9697,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -10368,7 +10000,7 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10426,13 +10058,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - rxjs@^7.8.0: version "7.8.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" @@ -10533,15 +10158,6 @@ schema-utils@^3.0, schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - scroll-behavior@^0.9.1: version "0.9.12" resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.12.tgz#1c22d273ec4ce6cd4714a443fead50227da9424c" @@ -10562,7 +10178,7 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -10605,11 +10221,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -10624,13 +10235,6 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -10867,7 +10471,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -10980,13 +10584,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - ssri@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" @@ -11063,14 +10660,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -11082,11 +10671,6 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" @@ -11442,11 +11026,6 @@ tapable@^1.0, tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - tar@^6.0.2: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -11474,22 +11053,7 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.2.3: +terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== @@ -11504,26 +11068,6 @@ terser-webpack-plugin@^4.2.3: terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.3: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" - integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.5" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - terser@^5.0.0, terser@^5.3.4: version "5.13.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" @@ -11534,16 +11078,6 @@ terser@^5.0.0, terser@^5.3.4: source-map "~0.8.0-beta.0" source-map-support "~0.5.20" -terser@^5.16.5: - version "5.16.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" - integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - tesseract.js-core@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.2.0.tgz#6ef78051272a381969fac3e45a226e85022cffef" @@ -11587,14 +11121,6 @@ throng@^4.0.0: dependencies: lodash.defaults "^4.0.1" -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -11849,11 +11375,6 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - typescript@^4.9.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" @@ -12148,14 +11669,6 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" @@ -12292,7 +11805,7 @@ webpack-merge@^5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^1.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.0, webpack-sources@^1.1.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -12300,11 +11813,6 @@ webpack-sources@^1.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-so source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - webpack@^4.46.0: version "4.46.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" @@ -12334,36 +11842,6 @@ webpack@^4.46.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5: - version "5.76.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" - integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -12666,13 +12144,6 @@ workbox-window@6.5.4, workbox-window@^6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.5.4" -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -12748,7 +12219,7 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.1: +xtend@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== From 23813e23b3a5227fa0d9d905ce9825c25e021576 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 16:22:55 +0200 Subject: [PATCH 0808/1220] Bump uri from 0.12.0 to 0.12.1 (#24341) 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 7ac9c85948..53ae00759a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -723,7 +723,7 @@ GEM unf_ext unf_ext (0.0.8.2) unicode-display_width (2.4.2) - uri (0.12.0) + uri (0.12.1) validate_email (0.1.6) activemodel (>= 3.0) mail (>= 2.2.5) From 77bd32a26abbf8b49caf35dcdf170e312e48a277 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 3 Apr 2023 16:25:15 +0200 Subject: [PATCH 0809/1220] Add colour to follow button when hashtag is being followed (#24361) --- app/javascript/mastodon/features/hashtag_timeline/index.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx index 58423f4295..a244dbdb22 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx @@ -191,8 +191,12 @@ class HashtagTimeline extends React.PureComponent { if (tag) { const following = tag.get('following'); + const classes = classNames('column-header__button', { + active: following, + }); + followButton = ( - ); From d29cf8a044f6c0d004649223e018d240983e8437 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 3 Apr 2023 16:25:15 +0200 Subject: [PATCH 0810/1220] [Glitch] Add colour to follow button when hashtag is being followed Port 77bd32a26abbf8b49caf35dcdf170e312e48a277 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/hashtag_timeline/index.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx index 43b7f90d15..fe5afa2406 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx @@ -191,8 +191,12 @@ class HashtagTimeline extends React.PureComponent { if (tag) { const following = tag.get('following'); + const classes = classNames('column-header__button', { + active: following, + }); + followButton = ( - ); From e4c411ef1a6a4dfd5b2a2ac2bd582e0afc868c89 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Mon, 3 Apr 2023 22:16:35 +0200 Subject: [PATCH 0811/1220] Migrate emoji reactions --- app/models/concerns/has_user_settings.rb | 14 ++++++ app/models/user_settings.rb | 1 + .../preferences/appearance/show.html.haml | 16 +++---- ...0215074425_move_emoji_reaction_settings.rb | 48 +++++++++++++++++++ db/schema.rb | 2 +- lib/mastodon/version.rb | 2 +- 6 files changed, 73 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20230215074425_move_emoji_reaction_settings.rb diff --git a/app/models/concerns/has_user_settings.rb b/app/models/concerns/has_user_settings.rb index 0e9d4e1cd4..bc6af2d361 100644 --- a/app/models/concerns/has_user_settings.rb +++ b/app/models/concerns/has_user_settings.rb @@ -127,6 +127,10 @@ module HasUserSettings settings['hide_followers_count'] end + def setting_visible_reactions + integer_cast_setting('visible_reactions', 0) + end + def allows_report_emails? settings['notification_emails.report'] end @@ -170,4 +174,14 @@ module HasUserSettings def hide_all_media? settings['web.display_media'] == 'hide_all' end + + def integer_cast_setting(key, min = nil, max = nil) + i = ActiveModel::Type::Integer.new.cast(settings[key]) + # the cast above doesn't return a number if passed the string "e" + i = 0 unless i.is_a? Numeric + return min if !min.nil? && i < min + return max if !max.nil? && i > max + + i + end end diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb index 0be8c5fbce..43afe32add 100644 --- a/app/models/user_settings.rb +++ b/app/models/user_settings.rb @@ -18,6 +18,7 @@ class UserSettings setting :default_privacy, default: nil setting :default_content_type, default: 'text/plain' setting :hide_followers_count, default: false + setting :visible_reactions, default: 6 namespace :web do setting :crop_images, default: true diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index 09ca7eb411..b83ee3432d 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -40,7 +40,7 @@ = ff.input :'web.crop_images', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_crop_images') .fields-group.fields-row__column.fields-row__column-6 - = f.input :setting_visible_reactions, wrapper: :with_label, input_html: { type: 'number', min: '0', data: { default: '6' } }, hint: false + = ff.input :'visible_reactions', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_visible_reactions'), input_html: { type: 'number', min: '0', data: { default: '6' } }, hint: false %h4= t 'appearance.discovery' @@ -55,16 +55,16 @@ = ff.input :'web.favourite_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_favourite_modal'), glitch_only: true = ff.input :'web.delete_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_delete_modal') - %h4= t 'appearance.sensitive_content' + %h4= t 'appearance.sensitive_content' - .fields-group - = ff.input :'web.display_media', collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label, label: I18n.t('simple_form.labels.defaults.setting_display_media') + .fields-group + = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label - .fields-group - = ff.input :'web.use_blurhash', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'), hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash') + .fields-group + = f.input :setting_use_blurhash, as: :boolean, wrapper: :with_label - .fields-group - = ff.input :'web.expand_content_warnings', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_expand_spoilers') + .fields-group + = f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/db/migrate/20230215074425_move_emoji_reaction_settings.rb b/db/migrate/20230215074425_move_emoji_reaction_settings.rb new file mode 100644 index 0000000000..9b9a65e046 --- /dev/null +++ b/db/migrate/20230215074425_move_emoji_reaction_settings.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +class MoveEmojiReactionSettings < ActiveRecord::Migration[6.1] + class User < ApplicationRecord; end + + MAPPING = { + setting_visible_reactions: 'visible_reactions', + }.freeze + + class LegacySetting < ApplicationRecord + self.table_name = 'settings' + + def var + self[:var]&.to_sym + end + + def value + YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess]) if self[:value].present? + end + end + + def up + User.find_each do |user| + previous_settings = LegacySetting.where(thing_type: 'User', thing_id: user.id).index_by(&:var) + + user_settings = Oj.load(user.settings || '{}') + user_settings.delete('theme') + + MAPPING.each do |legacy_key, new_key| + value = previous_settings[legacy_key]&.value + + next if value.blank? + + if value.is_a?(Hash) + value.each do |nested_key, nested_value| + user_settings[MAPPING[legacy_key][nested_key.to_sym]] = nested_value + end + else + user_settings[new_key] = value + end + end + + user.update_column('settings', Oj.dump(user_settings)) # rubocop:disable Rails/SkipsModelValidations + end + end + + def down; end +end diff --git a/db/schema.rb b/db/schema.rb index 3dfd5f045d..b0b267226e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2023_02_15_074424) do +ActiveRecord::Schema.define(version: 2023_02_15_074425) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 22eb6315b1..bf1100798c 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.0.2' + '+1.0.3' end def to_a From 9c4e0606d19a6ee1f497bfe6152bef48a6badef8 Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Mon, 3 Apr 2023 22:41:16 +0200 Subject: [PATCH 0812/1220] Fix appearance/show.html.haml --- .../settings/preferences/appearance/show.html.haml | 14 +++++++------- lib/mastodon/version.rb | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index b83ee3432d..9751da546f 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -55,16 +55,16 @@ = ff.input :'web.favourite_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_favourite_modal'), glitch_only: true = ff.input :'web.delete_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_delete_modal') - %h4= t 'appearance.sensitive_content' + %h4= t 'appearance.sensitive_content' - .fields-group - = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label + .fields-group + = ff.input :'web.display_media', collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label, label: I18n.t('simple_form.labels.defaults.setting_display_media') - .fields-group - = f.input :setting_use_blurhash, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :'web.use_blurhash', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'), hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash') - .fields-group - = f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label + .fields-group + = ff.input :'web.expand_content_warnings', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_expand_spoilers') .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index bf1100798c..510e5c929c 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -25,7 +25,7 @@ module Mastodon end def suffix_version - '+1.0.3' + '+1.0.4' end def to_a From 1de6b5e7fafc334f829f417e1acca81589db3a5e Mon Sep 17 00:00:00 2001 From: Jeremy Kescher Date: Tue, 4 Apr 2023 00:19:22 +0200 Subject: [PATCH 0813/1220] Disallow access for ChatGPT --- public/robots.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/robots.txt b/public/robots.txt index 771bf2160b..db86d1d016 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,5 +1,8 @@ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +User-agent: ChatGPT-User +Disallow: / + User-agent: * Disallow: /media_proxy/ Disallow: /interact/ From 8e19c44b2c455c403dc644a6a35ef4b8c478fbd4 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 4 Apr 2023 04:48:26 -0400 Subject: [PATCH 0814/1220] Align typings with installed versions (#24410) --- .../mastodon/components/common_counter.jsx | 1 - .../mastodon/components/hashtag.jsx | 3 - package.json | 15 ++- yarn.lock | 115 ++++++++++-------- 4 files changed, 74 insertions(+), 60 deletions(-) diff --git a/app/javascript/mastodon/components/common_counter.jsx b/app/javascript/mastodon/components/common_counter.jsx index d97e7e7d62..dd9b62de9b 100644 --- a/app/javascript/mastodon/components/common_counter.jsx +++ b/app/javascript/mastodon/components/common_counter.jsx @@ -1,6 +1,5 @@ // @ts-check import React from 'react'; -// @ts-expect-error import { FormattedMessage } from 'react-intl'; /** diff --git a/app/javascript/mastodon/components/hashtag.jsx b/app/javascript/mastodon/components/hashtag.jsx index 19d87508ba..94c61b6546 100644 --- a/app/javascript/mastodon/components/hashtag.jsx +++ b/app/javascript/mastodon/components/hashtag.jsx @@ -1,7 +1,6 @@ // @ts-check import React from 'react'; import { Sparklines, SparklinesCurve } from 'react-sparklines'; -// @ts-expect-error import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; @@ -92,9 +91,7 @@ const Hashtag = ({ name, to, people, uses, history, className, description, with {withGraph && (
    - {/* @ts-expect-error */} 0)}> - {/* @ts-expect-error */} diff --git a/package.json b/package.json index 2150537383..eee43f59b3 100644 --- a/package.json +++ b/package.json @@ -147,9 +147,7 @@ "@types/babel__core": "^7.20.0", "@types/emoji-mart": "^3.0.9", "@types/escape-html": "^1.0.2", - "@types/eslint": "^8.21.2", "@types/express": "^4.17.17", - "@types/glob": "^8.1.0", "@types/http-link-header": "^1.0.3", "@types/intl": "^1.2.0", "@types/jest": "^29.4.2", @@ -161,20 +159,25 @@ "@types/prop-types": "^15.7.5", "@types/punycode": "^2.1.0", "@types/raf": "^3.4.0", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", + "@types/react": "^16.14.38", + "@types/react-dom": "^16.9.18", + "@types/react-helmet": "^6.1.6", + "@types/react-immutable-proptypes": "^2.1.0", "@types/react-intl": "2.3.18", "@types/react-motion": "^0.0.33", + "@types/react-overlays": "^3.1.0", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", + "@types/react-select": "^5.0.1", "@types/react-sparklines": "^1.7.2", "@types/react-swipeable-views": "^0.13.1", "@types/react-test-renderer": "^18.0.0", + "@types/react-textarea-autosize": "^8.0.0", "@types/react-toggle": "^4.0.3", "@types/redux-immutable": "^4.0.3", "@types/requestidlecallback": "^0.3.5", - "@types/throng": "^5.0.4", - "@types/uuid": "^9.0.1", + "@types/throng": "^4.0.2", + "@types/uuid": "^8.3.4", "@types/webpack": "^4.41.33", "@types/yargs": "^17.0.22", "@typescript-eslint/eslint-plugin": "^5.55.0", diff --git a/yarn.lock b/yarn.lock index 37681e2dfc..e7258cde07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2008,19 +2008,6 @@ resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.2.tgz#072b7b13784fb3cee9c2450c22f36405983f5e3c" integrity sha512-gaBLT8pdcexFztLSPRtriHeXY/Kn4907uOCZ4Q3lncFBkheAWOuNt53ypsF8szgxbEJ513UeBzcf4utN0EzEwA== -"@types/eslint@^8.21.2": - version "8.21.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" - integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -2059,14 +2046,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/glob@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - "@types/graceful-fs@^4.1.3": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -2156,16 +2135,16 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -2186,11 +2165,6 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -2272,13 +2246,28 @@ dependencies: "@types/react" "^17" -"@types/react-dom@^18.0.11": - version "18.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" - integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== +"@types/react-dom@^16.9.18": + version "16.9.18" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.18.tgz#1fda8b84370b1339d639a797a84c16d5a195b419" + integrity sha512-lmNARUX3+rNF/nmoAFqasG0jAA7q6MeGZK/fdeLwY3kAA4NPgHHrG5bNQe2B5xmD4B+x6Z6h0rEJQ7MEEgQxsw== + dependencies: + "@types/react" "^16" + +"@types/react-helmet@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" + integrity sha512-ZKcoOdW/Tg+kiUbkFCBtvDw0k3nD4HJ/h/B9yWxN4uDO8OkRksWTO+EL+z/Qu3aHTeTll3Ro0Cc/8UhwBCMG5A== dependencies: "@types/react" "*" +"@types/react-immutable-proptypes@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#c045fb48ba28c34c9d759abc3a51a04b5321b77a" + integrity sha512-NRH4W4mgymzyM2gnAG+i2VoOdWIBOQlJlSyAgnFiBTdJ0l8IVeyCtdWP8g6Lra59sUBj2XUO/+DkfmrRAxj6UA== + dependencies: + "@types/prop-types" "*" + immutable "^3.8.2" + "@types/react-intl@2.3.18": version "2.3.18" resolved "https://registry.yarnpkg.com/@types/react-intl/-/react-intl-2.3.18.tgz#fd2d8b7f4d0a1dd05b5f1784ab0d7fe1786a690d" @@ -2291,6 +2280,13 @@ dependencies: "@types/react" "*" +"@types/react-overlays@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/react-overlays/-/react-overlays-3.1.0.tgz#2efefa5407562c5aeb34a03336d070a0f74c6274" + integrity sha512-NzZZHFLj7M7+I+p5rDdVHtm6AeVYQPShVxALiLYhR9leJSX8XujPsYuY+vh7/mzFjv6XR7PxHBAdlFGNaN6QDQ== + dependencies: + react-overlays "*" + "@types/react-redux@^7.1.20": version "7.1.20" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" @@ -2328,6 +2324,13 @@ "@types/history" "^4.7.11" "@types/react" "*" +"@types/react-select@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-5.0.1.tgz#04fc85edd34a72675a0ab56ad4c30428aab0e444" + integrity sha512-h5Im0AP0dr4AVeHtrcvQrLV+gmPa7SA0AGdxl2jOhtwiE6KgXBFSogWw8az32/nusE6AQHlCOHQWjP1S/+oMWA== + dependencies: + react-select "*" + "@types/react-sparklines@^1.7.2": version "1.7.2" resolved "https://registry.yarnpkg.com/@types/react-sparklines/-/react-sparklines-1.7.2.tgz#c14e80623abd3669a10f18d13f6fb9fbdc322f70" @@ -2349,6 +2352,13 @@ dependencies: "@types/react" "*" +"@types/react-textarea-autosize@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@types/react-textarea-autosize/-/react-textarea-autosize-8.0.0.tgz#f68f388552aaa608328b3e352d9a23ad7e0f72e4" + integrity sha512-KVqk+/+RMQB3ZDpk7ZTpYHauU3Ue+Y0f09POvGaEpaGb+izzbpoM47tkDGlbF37iT7JYZ8QFwLzqiOPYbQaztA== + dependencies: + react-textarea-autosize "*" + "@types/react-toggle@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/react-toggle/-/react-toggle-4.0.3.tgz#8db98ac8d2c5e8c03c2d3a42027555c1cd2289da" @@ -2381,10 +2391,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.0.28": - version "18.0.28" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065" - integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== +"@types/react@^16", "@types/react@^16.14.38": + version "16.14.38" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.38.tgz#b814d157ca8906603593d5106f6d733af9b79df4" + integrity sha512-PbEjuhwkdH6IB5Sak6BFAqpVMHY/wJxa0EG3bKkr0vWA2hSDIq3iEMhHyqjXrDFMqRzkiQkdyNXOnoELrh/9aQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2455,10 +2465,10 @@ dependencies: "@types/jest" "*" -"@types/throng@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@types/throng/-/throng-5.0.4.tgz#d89173c17c6900c29e8ab964c3e7386972c600c3" - integrity sha512-/ILtJTyOCMVQFbcteY5WtMLiESDJkWjXdUfWkXhJZQmLnwvxrdYmfEXdqTb2BkFSrvwWnU63b+jB4O3YOLrClg== +"@types/throng@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/throng/-/throng-4.0.2.tgz#e352f5f86433e9dfbf3258414191852d25b2274f" + integrity sha512-7tgh3R6vwtjj01URmhWXFSkWnm4wDJjsqLm8WPwIWadYjfsKAFi0HqabMQCU2JJ4TbeSGkb51qv27bBPN5Bubw== "@types/tough-cookie@*": version "4.0.2" @@ -2477,10 +2487,10 @@ dependencies: source-map "^0.6.1" -"@types/uuid@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" - integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== +"@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== "@types/warning@^3.0.0": version "3.0.0" @@ -6261,6 +6271,11 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +immutable@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== + immutable@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" @@ -9508,7 +9523,7 @@ react-notification@^6.8.5: dependencies: prop-types "^15.6.2" -react-overlays@^5.2.1: +react-overlays@*, 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== @@ -9575,7 +9590,7 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-select@^5.7.2: +react-select@*, react-select@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.2.tgz#ccd40071b9429277983bf15526e7a5773a060e09" integrity sha512-cTlJkQ8YjV6T/js8wW0owTzht0hHGABh29vjLscY4HfZGkv7hc3FFTmRp9NzY/Ib1uQ36GieAKEjxpHdpCFpcA== @@ -9643,7 +9658,7 @@ react-test-renderer@^16.14.0: react-is "^16.8.6" scheduler "^0.19.1" -react-textarea-autosize@^8.4.1: +react-textarea-autosize@*, react-textarea-autosize@^8.4.1: version "8.4.1" resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz#bcfc5462727014b808b14ee916c01e275e8a8335" integrity sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q== From 52089d254dbd6199e56cb372334389e102d942da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 11:02:33 +0200 Subject: [PATCH 0815/1220] Bump tzinfo-data from 1.2023.2 to 1.2023.3 (#24400) 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 53ae00759a..58f2c3c111 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -717,7 +717,7 @@ GEM unf (~> 0.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2023.2) + tzinfo-data (1.2023.3) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext From dd3e2321260d7ff899f460e620a62440153ffa88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 11:04:56 +0200 Subject: [PATCH 0816/1220] Bump doorkeeper from 5.6.5 to 5.6.6 (#24399) 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 58f2c3c111..6685f6977f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -221,7 +221,7 @@ GEM docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.6.5) + doorkeeper (5.6.6) railties (>= 5) dotenv (2.8.1) dotenv-rails (2.8.1) @@ -396,7 +396,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.1) + loofah (2.20.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.8.1) From d909aa3c3b6edfcc4d01918ab3cb4131e1d4b9a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 11:09:34 +0200 Subject: [PATCH 0817/1220] Bump devise from 4.9.0 to 4.9.2 (#24393) 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 6685f6977f..fbf0faa614 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -200,7 +200,7 @@ GEM addressable date (3.3.3) debug_inspector (1.0.0) - devise (4.9.0) + devise (4.9.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) From a8cd1b12383bdfd28cd2d7ac4d5723ab4d73681a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 11:25:25 +0200 Subject: [PATCH 0818/1220] Bump glob from 9.3.2 to 9.3.4 (#24383) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index eee43f59b3..b96f6e3141 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "file-loader": "^6.2.0", "font-awesome": "^4.7.0", "fuzzysort": "^2.0.4", - "glob": "^9.3.2", + "glob": "^9.3.4", "history": "^4.10.1", "http-link-header": "^1.1.0", "immutable": "^4.3.0", diff --git a/yarn.lock b/yarn.lock index e7258cde07..aa74dd82c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5842,13 +5842,13 @@ 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@^9.2.0, glob@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda" - integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA== +glob@^9.2.0, glob@^9.3.4: + version "9.3.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af" + integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA== dependencies: fs.realpath "^1.0.0" - minimatch "^7.4.1" + minimatch "^8.0.2" minipass "^4.2.4" path-scurry "^1.6.1" @@ -8024,10 +8024,10 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^7.4.1: - version "7.4.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" - integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== +minimatch@^8.0.2: + version "8.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.3.tgz#0415cb9bb0c1d8ac758c8a673eb1d288e13f5e75" + integrity sha512-tEEvU9TkZgnFDCtpnrEYnPsjT7iUx42aXfs4bzmQ5sMA09/6hZY0jeZcGkXyDagiBOvkUjNo8Viom+Me6+2x7g== dependencies: brace-expansion "^2.0.1" From fa98363a2789f23e110312f23bf4c00234dcd59a Mon Sep 17 00:00:00 2001 From: Rubicon Rowe Date: Tue, 4 Apr 2023 17:41:05 +0800 Subject: [PATCH 0819/1220] Fix inconsistent radius in drawer (#24407) --- app/javascript/styles/mastodon/components.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 6681aa75c4..160211dd1d 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2963,6 +2963,8 @@ $ui-header-height: 55px; margin-bottom: 10px; display: flex; flex-direction: row; + border-radius: 4px; + overflow: hidden; a { transition: background 100ms ease-in; @@ -7046,6 +7048,7 @@ noscript { .drawer__pager { height: 50vh; + border-radius: 4px; } .drawer__inner { From 0e919397db4977182386b93d2092fdeb5dff1f16 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 4 Apr 2023 12:42:38 +0200 Subject: [PATCH 0820/1220] Fix unescaped user input in LDAP query (#24379) --- app/models/concerns/ldap_authenticable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/ldap_authenticable.rb b/app/models/concerns/ldap_authenticable.rb index dc5abcd5ac..775df08176 100644 --- a/app/models/concerns/ldap_authenticable.rb +++ b/app/models/concerns/ldap_authenticable.rb @@ -6,7 +6,7 @@ module LdapAuthenticable class_methods do def authenticate_with_ldap(params = {}) ldap = Net::LDAP.new(ldap_options) - filter = format(Devise.ldap_search_filter, uid: Devise.ldap_uid, mail: Devise.ldap_mail, email: params[:email]) + filter = format(Devise.ldap_search_filter, uid: Devise.ldap_uid, mail: Devise.ldap_mail, email: Net::LDAP::Filter.escape(params[:email])) if (user_info = ldap.bind_as(base: Devise.ldap_base, filter: filter, password: params[:password])) ldap_get_user(user_info.first) From 69ca6316ec6b99b896e3ff62106bb4e9dbc9b6fa Mon Sep 17 00:00:00 2001 From: Rubicon Rowe Date: Tue, 4 Apr 2023 17:41:05 +0800 Subject: [PATCH 0821/1220] [Glitch] Fix inconsistent radius in drawer Port fa98363a2789f23e110312f23bf4c00234dcd59a to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/components/drawer.scss | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss index 9de5a4435b..33a48eec44 100644 --- a/app/javascript/flavours/glitch/styles/components/drawer.scss +++ b/app/javascript/flavours/glitch/styles/components/drawer.scss @@ -50,12 +50,14 @@ } .drawer--header { + flex: none; + font-size: 16px; + background: lighten($ui-base-color, 8%); + margin-bottom: 10px; display: flex; flex-direction: row; - margin-bottom: 10px; - flex: none; - background: lighten($ui-base-color, 8%); - font-size: 16px; + border-radius: 4px; + overflow: hidden; & > * { display: block; @@ -179,6 +181,7 @@ position: relative; overflow: hidden; display: flex; + border-radius: 4px; } .drawer__inner { From 538914def2fecec336c8282fc8d56007952908d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 14:25:08 +0200 Subject: [PATCH 0822/1220] Bump addressable from 2.8.1 to 2.8.2 (#24392) 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 fbf0faa614..0fac64c927 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,7 +94,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.8.1) + addressable (2.8.2) public_suffix (>= 2.0.2, < 6.0) aes_key_wrap (1.1.0) airbrussh (1.4.1) From 0358abe73ad25b9bcfa225caea3eed51cba36e82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 15:05:12 +0200 Subject: [PATCH 0823/1220] Bump typescript from 4.9.5 to 5.0.3 (#24398) 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 b96f6e3141..eeee8e4200 100644 --- a/package.json +++ b/package.json @@ -200,7 +200,7 @@ "react-test-renderer": "^16.14.0", "stylelint": "^15.3.0", "stylelint-config-standard-scss": "^7.0.1", - "typescript": "^4.9.5", + "typescript": "^5.0.3", "webpack-dev-server": "^3.11.3", "yargs": "^17.7.1" }, diff --git a/yarn.lock b/yarn.lock index aa74dd82c9..e3ba8c8d52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11390,10 +11390,10 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== -typescript@^4.9.5: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" + integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== unbox-primitive@^1.0.2: version "1.0.2" From b80a7b031bdfc79e0498bb784abed9b7749c6f45 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 4 Apr 2023 10:32:08 -0400 Subject: [PATCH 0824/1220] Add typechecking in CI (#24405) --- .github/workflows/lint-js.yml | 9 +++++++++ .prettierignore | 2 ++ 2 files changed, 11 insertions(+) diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml index 44929f63db..e0c309c736 100644 --- a/.github/workflows/lint-js.yml +++ b/.github/workflows/lint-js.yml @@ -6,22 +6,28 @@ on: paths: - 'package.json' - 'yarn.lock' + - 'tsconfig.json' - '.nvmrc' - '.prettier*' - '.eslint*' - '**/*.js' - '**/*.jsx' + - '**/*.ts' + - '**/*.tsx' - '.github/workflows/lint-js.yml' pull_request: paths: - 'package.json' - 'yarn.lock' + - 'tsconfig.json' - '.nvmrc' - '.prettier*' - '.eslint*' - '**/*.js' - '**/*.jsx' + - '**/*.ts' + - '**/*.tsx' - '.github/workflows/lint-js.yml' jobs: @@ -43,3 +49,6 @@ jobs: - name: ESLint run: yarn test:lint:js + + - name: Typecheck + run: yarn test:typecheck diff --git a/.prettierignore b/.prettierignore index 2ea4075333..9bdf769112 100644 --- a/.prettierignore +++ b/.prettierignore @@ -70,6 +70,8 @@ app/javascript/styles/mastodon/reset.scss # Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631 *.js *.jsx +*.ts +*.tsx # Ignore HTML till cleaned and included in CI *.html From a425915ce7d1148e9505c87889936c4c497061dd Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 4 Apr 2023 10:33:33 -0400 Subject: [PATCH 0825/1220] HTML string attributes set as booleans (#24408) --- app/javascript/mastodon/features/emoji/emoji.js | 4 ++-- app/javascript/packs/public.jsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/emoji/emoji.js b/app/javascript/mastodon/features/emoji/emoji.js index bc3dd8c602..6ae4066242 100644 --- a/app/javascript/mastodon/features/emoji/emoji.js +++ b/app/javascript/mastodon/features/emoji/emoji.js @@ -50,7 +50,7 @@ const emojifyTextNode = (node, customEmojis) => { if (shortname in customEmojis) { const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url; replacement = document.createElement('img'); - replacement.setAttribute('draggable', false); + replacement.setAttribute('draggable', 'false'); replacement.setAttribute('class', 'emojione custom-emoji'); replacement.setAttribute('alt', shortname); replacement.setAttribute('title', shortname); @@ -65,7 +65,7 @@ const emojifyTextNode = (node, customEmojis) => { const { filename, shortCode } = unicodeMapping[match]; const title = shortCode ? `:${shortCode}:` : ''; replacement = document.createElement('img'); - replacement.setAttribute('draggable', false); + replacement.setAttribute('draggable', 'false'); replacement.setAttribute('class', 'emojione'); replacement.setAttribute('alt', match); replacement.setAttribute('title', title); diff --git a/app/javascript/packs/public.jsx b/app/javascript/packs/public.jsx index a5e2014f7e..3db6c5c6a0 100644 --- a/app/javascript/packs/public.jsx +++ b/app/javascript/packs/public.jsx @@ -291,10 +291,10 @@ function main() { if (sidebar.classList.contains('visible')) { document.body.style.overflow = null; - toggleButton.setAttribute('aria-expanded', false); + toggleButton.setAttribute('aria-expanded', 'false'); } else { document.body.style.overflow = 'hidden'; - toggleButton.setAttribute('aria-expanded', true); + toggleButton.setAttribute('aria-expanded', 'true'); } toggleButton.classList.toggle('active'); From ec0c104bf25f2689c31bb79f9f447be1a9b3da7f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Tue, 4 Apr 2023 10:33:44 -0400 Subject: [PATCH 0826/1220] Ensure tabIndex is number instead of string (#24409) --- .../components/admin/ReportReasonSelector.jsx | 4 ++-- .../mastodon/components/autosuggest_input.jsx | 2 +- .../components/autosuggest_textarea.jsx | 2 +- .../components/column_back_button_slim.jsx | 2 +- .../mastodon/components/dropdown_menu.jsx | 2 +- app/javascript/mastodon/components/gifv.jsx | 4 ++-- .../mastodon/components/icon_button.jsx | 4 ++-- .../intersection_observer_article.jsx | 4 ++-- .../picture_in_picture_placeholder.jsx | 2 +- app/javascript/mastodon/components/poll.jsx | 2 +- app/javascript/mastodon/components/status.jsx | 4 ++-- .../mastodon/components/status_content.jsx | 6 +++--- .../mastodon/features/about/index.jsx | 2 +- .../mastodon/features/audio/index.jsx | 8 ++++---- .../compose/components/language_dropdown.jsx | 2 +- .../features/compose/components/poll_form.jsx | 2 +- .../compose/components/privacy_dropdown.jsx | 2 +- .../features/compose/components/search.jsx | 2 +- .../features/compose/components/upload.jsx | 2 +- .../components/conversation.jsx | 2 +- .../features/filters/select_filter.jsx | 4 ++-- .../features/list_editor/components/search.jsx | 2 +- .../mastodon/features/list_editor/index.jsx | 2 +- .../mastodon/features/list_timeline/index.jsx | 4 ++-- .../components/clear_column_button.jsx | 2 +- .../components/grant_permission_button.jsx | 2 +- .../notifications/components/notification.jsx | 18 +++++++++--------- .../features/report/components/option.jsx | 2 +- .../mastodon/features/status/index.jsx | 2 +- .../features/ui/components/actions_modal.jsx | 2 +- .../features/ui/components/media_modal.jsx | 4 ++-- .../mastodon/features/video/index.jsx | 6 +++--- 32 files changed, 55 insertions(+), 55 deletions(-) diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx index 58a861fde6..cd14dac4e3 100644 --- a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx +++ b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx @@ -33,7 +33,7 @@ class Category extends React.PureComponent { const { id, text, disabled, selected, children } = this.props; return ( -
    +
    {selected && }
    @@ -74,7 +74,7 @@ class Rule extends React.PureComponent { const { id, text, disabled, selected } = this.props; return ( -
    +
    {selected && } {text} diff --git a/app/javascript/mastodon/components/autosuggest_input.jsx b/app/javascript/mastodon/components/autosuggest_input.jsx index f9616c5817..a68e2a01b4 100644 --- a/app/javascript/mastodon/components/autosuggest_input.jsx +++ b/app/javascript/mastodon/components/autosuggest_input.jsx @@ -180,7 +180,7 @@ export default class AutosuggestInput extends ImmutablePureComponent { } return ( -
    +
    {inner}
    ); diff --git a/app/javascript/mastodon/components/autosuggest_textarea.jsx b/app/javascript/mastodon/components/autosuggest_textarea.jsx index c044912983..a627bc1ec2 100644 --- a/app/javascript/mastodon/components/autosuggest_textarea.jsx +++ b/app/javascript/mastodon/components/autosuggest_textarea.jsx @@ -186,7 +186,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { } return ( -
    +
    {inner}
    ); diff --git a/app/javascript/mastodon/components/column_back_button_slim.jsx b/app/javascript/mastodon/components/column_back_button_slim.jsx index cc8bfb1515..46ac23736b 100644 --- a/app/javascript/mastodon/components/column_back_button_slim.jsx +++ b/app/javascript/mastodon/components/column_back_button_slim.jsx @@ -8,7 +8,7 @@ export default class ColumnBackButtonSlim extends ColumnBackButton { render () { return (
    -
    +
    diff --git a/app/javascript/mastodon/components/dropdown_menu.jsx b/app/javascript/mastodon/components/dropdown_menu.jsx index c04c513fbe..eaaa72fd83 100644 --- a/app/javascript/mastodon/components/dropdown_menu.jsx +++ b/app/javascript/mastodon/components/dropdown_menu.jsx @@ -119,7 +119,7 @@ class DropdownMenu extends React.PureComponent { return (
  • - + {text}
  • diff --git a/app/javascript/mastodon/components/gifv.jsx b/app/javascript/mastodon/components/gifv.jsx index 9ec201c6cc..1ce7e7c29b 100644 --- a/app/javascript/mastodon/components/gifv.jsx +++ b/app/javascript/mastodon/components/gifv.jsx @@ -46,7 +46,7 @@ export default class GIFV extends React.PureComponent { width={width} height={height} role='button' - tabIndex='0' + tabIndex={0} aria-label={alt} title={alt} lang={lang} @@ -57,7 +57,7 @@ export default class GIFV extends React.PureComponent {